var oct = Object.defineProperty;
var sct = (m, E, C) => E in m ? oct(m, E, { enumerable: !0, configurable: !0, writable: !0, value: C }) : m[E] = C;
var jD = (m, E, C) => (sct(m, typeof E != "symbol" ? E + "" : E, C), C);
class cct {
  constructor() {
    this.listeners = [], this.unexpectedErrorHandler = function(E) {
      setTimeout(() => {
        throw E.stack ? $D.isErrorNoTelemetry(E) ? new $D(E.message + `

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

` + E.stack) : E;
      }, 0);
    };
  }
  addListener(E) {
    return this.listeners.push(E), () => {
      this._removeListener(E);
    };
  }
  emit(E) {
    this.listeners.forEach((C) => {
      C(E);
    });
  }
  _removeListener(E) {
    this.listeners.splice(this.listeners.indexOf(E), 1);
  }
  setUnexpectedErrorHandler(E) {
    this.unexpectedErrorHandler = E;
  }
  getUnexpectedErrorHandler() {
    return this.unexpectedErrorHandler;
  }
  onUnexpectedError(E) {
    this.unexpectedErrorHandler(E), this.emit(E);
  }
  // For external errors, we don't want the listeners to be called
  onUnexpectedExternalError(E) {
    this.unexpectedErrorHandler(E);
  }
}
const lct = new cct();
function BRe(m) {
  uct(m) || lct.onUnexpectedError(m);
}
function _De(m) {
  if (m instanceof Error) {
    const { name: E, message: C } = m, U = m.stacktrace || m.stack;
    return {
      $isError: !0,
      name: E,
      message: C,
      stack: U,
      noTelemetry: $D.isErrorNoTelemetry(m)
    };
  }
  return m;
}
const Poe = "Canceled";
function uct(m) {
  return m instanceof dct ? !0 : m instanceof Error && m.name === Poe && m.message === Poe;
}
class dct extends Error {
  constructor() {
    super(Poe), this.name = this.message;
  }
}
class $D extends Error {
  constructor(E) {
    super(E), this.name = "CodeExpectedError";
  }
  static fromError(E) {
    if (E instanceof $D)
      return E;
    const C = new $D();
    return C.message = E.message, C.stack = E.stack, C;
  }
  static isErrorNoTelemetry(E) {
    return E.name === "CodeExpectedError";
  }
}
class ZL extends Error {
  constructor(E) {
    super(E || "An unexpected bug occurred."), Object.setPrototypeOf(this, ZL.prototype);
    debugger;
  }
}
function fct(m) {
  const E = this;
  let C = !1, U;
  return function() {
    return C || (C = !0, U = m.apply(E, arguments)), U;
  };
}
var $V;
(function(m) {
  function E(Rn) {
    return Rn && typeof Rn == "object" && typeof Rn[Symbol.iterator] == "function";
  }
  m.is = E;
  const C = Object.freeze([]);
  function U() {
    return C;
  }
  m.empty = U;
  function* le(Rn) {
    yield Rn;
  }
  m.single = le;
  function me(Rn) {
    return E(Rn) ? Rn : le(Rn);
  }
  m.wrap = me;
  function De(Rn) {
    return Rn || C;
  }
  m.from = De;
  function et(Rn) {
    return !Rn || Rn[Symbol.iterator]().next().done === !0;
  }
  m.isEmpty = et;
  function vt(Rn) {
    return Rn[Symbol.iterator]().next().value;
  }
  m.first = vt;
  function Ie(Rn, cn) {
    for (const $i of Rn)
      if (cn($i))
        return !0;
    return !1;
  }
  m.some = Ie;
  function ze(Rn, cn) {
    for (const $i of Rn)
      if (cn($i))
        return $i;
  }
  m.find = ze;
  function* Zt(Rn, cn) {
    for (const $i of Rn)
      cn($i) && (yield $i);
  }
  m.filter = Zt;
  function* sn(Rn, cn) {
    let $i = 0;
    for (const Qi of Rn)
      yield cn(Qi, $i++);
  }
  m.map = sn;
  function* Hn(...Rn) {
    for (const cn of Rn)
      for (const $i of cn)
        yield $i;
  }
  m.concat = Hn;
  function ri(Rn, cn, $i) {
    let Qi = $i;
    for (const ts of Rn)
      Qi = cn(Qi, ts);
    return Qi;
  }
  m.reduce = ri;
  function* gi(Rn, cn, $i = Rn.length) {
    for (cn < 0 && (cn += Rn.length), $i < 0 ? $i += Rn.length : $i > Rn.length && ($i = Rn.length); cn < $i; cn++)
      yield Rn[cn];
  }
  m.slice = gi;
  function Wa(Rn, cn = Number.POSITIVE_INFINITY) {
    const $i = [];
    if (cn === 0)
      return [$i, Rn];
    const Qi = Rn[Symbol.iterator]();
    for (let ts = 0; ts < cn; ts++) {
      const rd = Qi.next();
      if (rd.done)
        return [$i, m.empty()];
      $i.push(rd.value);
    }
    return [$i, { [Symbol.iterator]() {
      return Qi;
    } }];
  }
  m.consume = Wa;
})($V || ($V = {}));
globalThis && globalThis.__awaiter;
function GRe(m) {
  if ($V.is(m)) {
    const E = [];
    for (const C of m)
      if (C)
        try {
          C.dispose();
        } catch (U) {
          E.push(U);
        }
    if (E.length === 1)
      throw E[0];
    if (E.length > 1)
      throw new AggregateError(E, "Encountered errors while disposing of store");
    return Array.isArray(m) ? [] : m;
  } else if (m)
    return m.dispose(), m;
}
function _ct(...m) {
  return QV(() => GRe(m));
}
function QV(m) {
  return {
    dispose: fct(() => {
      m();
    })
  };
}
class QL {
  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 {
        GRe(this._toDispose);
      } finally {
        this._toDispose.clear();
      }
  }
  /**
   * Add a new {@link IDisposable disposable} to the collection.
   */
  add(E) {
    if (!E)
      return E;
    if (E === this)
      throw new Error("Cannot register a disposable on itself!");
    return this._isDisposed ? QL.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(E), E;
  }
}
QL.DISABLE_DISPOSED_WARNING = !1;
class aj {
  constructor() {
    this._store = new QL(), this._store;
  }
  dispose() {
    this._store.dispose();
  }
  /**
   * Adds `o` to the collection of disposables managed by this object.
   */
  _register(E) {
    if (E === this)
      throw new Error("Cannot register a disposable on itself!");
    return this._store.add(E);
  }
}
aj.None = Object.freeze({ dispose() {
} });
class pct {
  constructor() {
    this.dispose = () => {
    }, this.unset = () => {
    }, this.isset = () => !1;
  }
  set(E) {
    let C = E;
    return this.unset = () => C = void 0, this.isset = () => C !== void 0, this.dispose = () => {
      C && (C(), C = void 0);
    }, this;
  }
}
class zu {
  constructor(E) {
    this.element = E, this.next = zu.Undefined, this.prev = zu.Undefined;
  }
}
zu.Undefined = new zu(void 0);
class ZV {
  constructor() {
    this._first = zu.Undefined, this._last = zu.Undefined, this._size = 0;
  }
  get size() {
    return this._size;
  }
  isEmpty() {
    return this._first === zu.Undefined;
  }
  clear() {
    let E = this._first;
    for (; E !== zu.Undefined; ) {
      const C = E.next;
      E.prev = zu.Undefined, E.next = zu.Undefined, E = C;
    }
    this._first = zu.Undefined, this._last = zu.Undefined, this._size = 0;
  }
  unshift(E) {
    return this._insert(E, !1);
  }
  push(E) {
    return this._insert(E, !0);
  }
  _insert(E, C) {
    const U = new zu(E);
    if (this._first === zu.Undefined)
      this._first = U, this._last = U;
    else if (C) {
      const me = this._last;
      this._last = U, U.prev = me, me.next = U;
    } else {
      const me = this._first;
      this._first = U, U.next = me, me.prev = U;
    }
    this._size += 1;
    let le = !1;
    return () => {
      le || (le = !0, this._remove(U));
    };
  }
  shift() {
    if (this._first !== zu.Undefined) {
      const E = this._first.element;
      return this._remove(this._first), E;
    }
  }
  pop() {
    if (this._last !== zu.Undefined) {
      const E = this._last.element;
      return this._remove(this._last), E;
    }
  }
  _remove(E) {
    if (E.prev !== zu.Undefined && E.next !== zu.Undefined) {
      const C = E.prev;
      C.next = E.next, E.next.prev = C;
    } else
      E.prev === zu.Undefined && E.next === zu.Undefined ? (this._first = zu.Undefined, this._last = zu.Undefined) : E.next === zu.Undefined ? (this._last = this._last.prev, this._last.next = zu.Undefined) : E.prev === zu.Undefined && (this._first = this._first.next, this._first.prev = zu.Undefined);
    this._size -= 1;
  }
  *[Symbol.iterator]() {
    let E = this._first;
    for (; E !== zu.Undefined; )
      yield E.element, E = E.next;
  }
}
globalThis && globalThis.__awaiter;
let mct = typeof document < "u" && document.location && document.location.hash.indexOf("pseudo=true") >= 0;
function hct(m, E) {
  let C;
  return E.length === 0 ? C = m : C = m.replace(/\{(\d+)\}/g, (U, le) => {
    const me = le[0], De = E[me];
    let et = U;
    return typeof De == "string" ? et = De : (typeof De == "number" || typeof De == "boolean" || De === void 0 || De === null) && (et = String(De)), et;
  }), mct && (C = "［" + C.replace(/[aouei]/g, "$&$&") + "］"), C;
}
function gct(m, E, ...C) {
  return hct(E, C);
}
var koe;
const JD = "en";
let Moe = !1, Foe = !1, woe = !1, URe = !1, zV, JV = JD, pDe = JD, yct, Xb;
const ty = typeof self == "object" ? self : typeof global == "object" ? global : {};
let Em;
typeof ty.vscode < "u" && typeof ty.vscode.process < "u" ? Em = ty.vscode.process : typeof process < "u" && (Em = process);
const vct = typeof ((koe = Em == null ? void 0 : Em.versions) === null || koe === void 0 ? void 0 : koe.electron) == "string", bct = vct && (Em == null ? void 0 : Em.type) === "renderer";
if (typeof navigator == "object" && !bct)
  Xb = navigator.userAgent, Moe = Xb.indexOf("Windows") >= 0, Foe = Xb.indexOf("Macintosh") >= 0, (Xb.indexOf("Macintosh") >= 0 || Xb.indexOf("iPad") >= 0 || Xb.indexOf("iPhone") >= 0) && navigator.maxTouchPoints && navigator.maxTouchPoints > 0, woe = Xb.indexOf("Linux") >= 0, (Xb == null ? void 0 : Xb.indexOf("Mobi")) >= 0, URe = !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.
  gct({ key: "ensureLoaderPluginIsLoaded", comment: ["{Locked}"] }, "_"), zV = JD, JV = zV, pDe = navigator.language;
else if (typeof Em == "object") {
  Moe = Em.platform === "win32", Foe = Em.platform === "darwin", woe = Em.platform === "linux", woe && Em.env.SNAP && Em.env.SNAP_REVISION, Em.env.CI || Em.env.BUILD_ARTIFACTSTAGINGDIRECTORY, zV = JD, JV = JD;
  const m = Em.env.VSCODE_NLS_CONFIG;
  if (m)
    try {
      const E = JSON.parse(m), C = E.availableLanguages["*"];
      zV = E.locale, pDe = E.osLocale, JV = C || JD, yct = E._translationsConfigFile;
    } catch {
    }
} else
  console.error("Unable to resolve platform.");
const T4 = Moe, Ect = Foe;
URe && ty.importScripts;
const KE = Xb, nA = JV;
var mDe;
(function(m) {
  function E() {
    return nA;
  }
  m.value = E;
  function C() {
    return nA.length === 2 ? nA === "en" : nA.length >= 3 ? nA[0] === "e" && nA[1] === "n" && nA[2] === "-" : !1;
  }
  m.isDefaultVariant = C;
  function U() {
    return nA === "en";
  }
  m.isDefault = U;
})(mDe || (mDe = {}));
const Tct = typeof ty.postMessage == "function" && !ty.importScripts;
(() => {
  if (Tct) {
    const m = [];
    ty.addEventListener("message", (C) => {
      if (C.data && C.data.vscodeScheduleAsyncWork)
        for (let U = 0, le = m.length; U < le; U++) {
          const me = m[U];
          if (me.id === C.data.vscodeScheduleAsyncWork) {
            m.splice(U, 1), me.callback();
            return;
          }
        }
    });
    let E = 0;
    return (C) => {
      const U = ++E;
      m.push({
        id: U,
        callback: C
      }), ty.postMessage({ vscodeScheduleAsyncWork: U }, "*");
    };
  }
  return (m) => setTimeout(m);
})();
const Sct = !!(KE && KE.indexOf("Chrome") >= 0);
KE && KE.indexOf("Firefox") >= 0;
!Sct && KE && KE.indexOf("Safari") >= 0;
KE && KE.indexOf("Edg/") >= 0;
KE && KE.indexOf("Android") >= 0;
const xct = ty.performance && typeof ty.performance.now == "function";
class oj {
  static create(E = !0) {
    return new oj(E);
  }
  constructor(E) {
    this._highResolution = xct && E, this._startTime = this._now(), this._stopTime = -1;
  }
  stop() {
    this._stopTime = this._now();
  }
  reset() {
    this._startTime = this._now(), this._stopTime = -1;
  }
  elapsed() {
    return this._stopTime !== -1 ? this._stopTime - this._startTime : this._now() - this._startTime;
  }
  _now() {
    return this._highResolution ? ty.performance.now() : Date.now();
  }
}
globalThis && globalThis.__awaiter;
var Boe;
(function(m) {
  m.None = () => aj.None;
  function E(Ma, Zi) {
    return ze(Ma, () => {
    }, 0, void 0, !0, void 0, Zi);
  }
  m.defer = E;
  function C(Ma) {
    return (Zi, yn = null, ki) => {
      let co = !1, en;
      return en = Ma((Ql) => {
        if (!co)
          return en ? en.dispose() : co = !0, Zi.call(yn, Ql);
      }, null, ki), co && en.dispose(), en;
    };
  }
  m.once = C;
  function U(Ma, Zi, yn) {
    return Ie((ki, co = null, en) => Ma((Ql) => ki.call(co, Zi(Ql)), null, en), yn);
  }
  m.map = U;
  function le(Ma, Zi, yn) {
    return Ie((ki, co = null, en) => Ma((Ql) => {
      Zi(Ql), ki.call(co, Ql);
    }, null, en), yn);
  }
  m.forEach = le;
  function me(Ma, Zi, yn) {
    return Ie((ki, co = null, en) => Ma((Ql) => Zi(Ql) && ki.call(co, Ql), null, en), yn);
  }
  m.filter = me;
  function De(Ma) {
    return Ma;
  }
  m.signal = De;
  function et(...Ma) {
    return (Zi, yn = null, ki) => _ct(...Ma.map((co) => co((en) => Zi.call(yn, en), null, ki)));
  }
  m.any = et;
  function vt(Ma, Zi, yn, ki) {
    let co = yn;
    return U(Ma, (en) => (co = Zi(co, en), co), ki);
  }
  m.reduce = vt;
  function Ie(Ma, Zi) {
    let yn;
    const ki = {
      onWillAddFirstListener() {
        yn = Ma(co.fire, co);
      },
      onDidRemoveLastListener() {
        yn == null || yn.dispose();
      }
    }, co = new JE(ki);
    return Zi == null || Zi.add(co), co.event;
  }
  function ze(Ma, Zi, yn = 100, ki = !1, co = !1, en, Ql) {
    let Zs, id, wo, Zb = 0, O0;
    const A4 = {
      leakWarningThreshold: en,
      onWillAddFirstListener() {
        Zs = Ma((fa) => {
          Zb++, id = Zi(id, fa), ki && !wo && (NS.fire(id), id = void 0), O0 = () => {
            const dA = id;
            id = void 0, wo = void 0, (!ki || Zb > 1) && NS.fire(dA), Zb = 0;
          }, typeof yn == "number" ? (clearTimeout(wo), wo = setTimeout(O0, yn)) : wo === void 0 && (wo = 0, queueMicrotask(O0));
        });
      },
      onWillRemoveListener() {
        co && Zb > 0 && (O0 == null || O0());
      },
      onDidRemoveLastListener() {
        O0 = void 0, Zs.dispose();
      }
    }, NS = new JE(A4);
    return Ql == null || Ql.add(NS), NS.event;
  }
  m.debounce = ze;
  function Zt(Ma, Zi = 0, yn) {
    return m.debounce(Ma, (ki, co) => ki ? (ki.push(co), ki) : [co], Zi, void 0, !0, void 0, yn);
  }
  m.accumulate = Zt;
  function sn(Ma, Zi = (ki, co) => ki === co, yn) {
    let ki = !0, co;
    return me(Ma, (en) => {
      const Ql = ki || !Zi(en, co);
      return ki = !1, co = en, Ql;
    }, yn);
  }
  m.latch = sn;
  function Hn(Ma, Zi, yn) {
    return [
      m.filter(Ma, Zi, yn),
      m.filter(Ma, (ki) => !Zi(ki), yn)
    ];
  }
  m.split = Hn;
  function ri(Ma, Zi = !1, yn = []) {
    let ki = yn.slice(), co = Ma((Zs) => {
      ki ? ki.push(Zs) : Ql.fire(Zs);
    });
    const en = () => {
      ki == null || ki.forEach((Zs) => Ql.fire(Zs)), ki = null;
    }, Ql = new JE({
      onWillAddFirstListener() {
        co || (co = Ma((Zs) => Ql.fire(Zs)));
      },
      onDidAddFirstListener() {
        ki && (Zi ? setTimeout(en) : en());
      },
      onDidRemoveLastListener() {
        co && co.dispose(), co = null;
      }
    });
    return Ql.event;
  }
  m.buffer = ri;
  class gi {
    constructor(Zi) {
      this.event = Zi, this.disposables = new QL();
    }
    /** @see {@link Event.map} */
    map(Zi) {
      return new gi(U(this.event, Zi, this.disposables));
    }
    /** @see {@link Event.forEach} */
    forEach(Zi) {
      return new gi(le(this.event, Zi, this.disposables));
    }
    filter(Zi) {
      return new gi(me(this.event, Zi, this.disposables));
    }
    /** @see {@link Event.reduce} */
    reduce(Zi, yn) {
      return new gi(vt(this.event, Zi, yn, this.disposables));
    }
    /** @see {@link Event.reduce} */
    latch() {
      return new gi(sn(this.event, void 0, this.disposables));
    }
    debounce(Zi, yn = 100, ki = !1, co = !1, en) {
      return new gi(ze(this.event, Zi, yn, ki, co, en, this.disposables));
    }
    /**
     * Attach a listener to the event.
     */
    on(Zi, yn, ki) {
      return this.event(Zi, yn, ki);
    }
    /** @see {@link Event.once} */
    once(Zi, yn, ki) {
      return C(this.event)(Zi, yn, ki);
    }
    dispose() {
      this.disposables.dispose();
    }
  }
  function Wa(Ma) {
    return new gi(Ma);
  }
  m.chain = Wa;
  function Rn(Ma, Zi, yn = (ki) => ki) {
    const ki = (...Zs) => Ql.fire(yn(...Zs)), co = () => Ma.on(Zi, ki), en = () => Ma.removeListener(Zi, ki), Ql = new JE({ onWillAddFirstListener: co, onDidRemoveLastListener: en });
    return Ql.event;
  }
  m.fromNodeEventEmitter = Rn;
  function cn(Ma, Zi, yn = (ki) => ki) {
    const ki = (...Zs) => Ql.fire(yn(...Zs)), co = () => Ma.addEventListener(Zi, ki), en = () => Ma.removeEventListener(Zi, ki), Ql = new JE({ onWillAddFirstListener: co, onDidRemoveLastListener: en });
    return Ql.event;
  }
  m.fromDOMEventEmitter = cn;
  function $i(Ma) {
    return new Promise((Zi) => C(Ma)(Zi));
  }
  m.toPromise = $i;
  function Qi(Ma, Zi) {
    return Zi(void 0), Ma((yn) => Zi(yn));
  }
  m.runAndSubscribe = Qi;
  function ts(Ma, Zi) {
    let yn = null;
    function ki(en) {
      yn == null || yn.dispose(), yn = new QL(), Zi(en, yn);
    }
    ki(void 0);
    const co = Ma((en) => ki(en));
    return QV(() => {
      co.dispose(), yn == null || yn.dispose();
    });
  }
  m.runAndSubscribeWithStore = ts;
  class rd {
    constructor(Zi, yn) {
      this._observable = Zi, this._counter = 0, this._hasChanged = !1;
      const ki = {
        onWillAddFirstListener: () => {
          Zi.addObserver(this);
        },
        onDidRemoveLastListener: () => {
          Zi.removeObserver(this);
        }
      };
      this.emitter = new JE(ki), yn && yn.add(this.emitter);
    }
    beginUpdate(Zi) {
      this._counter++;
    }
    handlePossibleChange(Zi) {
    }
    handleChange(Zi, yn) {
      this._hasChanged = !0;
    }
    endUpdate(Zi) {
      this._counter--, this._counter === 0 && (this._observable.reportChanges(), this._hasChanged && (this._hasChanged = !1, this.emitter.fire(this._observable.get())));
    }
  }
  function wi(Ma, Zi) {
    return new rd(Ma, Zi).emitter.event;
  }
  m.fromObservable = wi;
  function Qs(Ma) {
    return (Zi) => {
      let yn = 0, ki = !1;
      const co = {
        beginUpdate() {
          yn++;
        },
        endUpdate() {
          yn--, yn === 0 && (Ma.reportChanges(), ki && (ki = !1, Zi()));
        },
        handlePossibleChange() {
        },
        handleChange() {
          ki = !0;
        }
      };
      return Ma.addObserver(co), {
        dispose() {
          Ma.removeObserver(co);
        }
      };
    };
  }
  m.fromObservableLight = Qs;
})(Boe || (Boe = {}));
class QD {
  constructor(E) {
    this.listenerCount = 0, this.invocationCount = 0, this.elapsedOverall = 0, this.durations = [], this.name = `${E}_${QD._idPool++}`, QD.all.add(this);
  }
  start(E) {
    this._stopWatch = new oj(!0), this.listenerCount = E;
  }
  stop() {
    if (this._stopWatch) {
      const E = this._stopWatch.elapsed();
      this.durations.push(E), this.elapsedOverall += E, this.invocationCount += 1, this._stopWatch = void 0;
    }
  }
}
QD.all = /* @__PURE__ */ new Set();
QD._idPool = 0;
let Act = -1;
class Cct {
  constructor(E, C = Math.random().toString(18).slice(2, 5)) {
    this.threshold = E, this.name = C, this._warnCountdown = 0;
  }
  dispose() {
    var E;
    (E = this._stacks) === null || E === void 0 || E.clear();
  }
  check(E, C) {
    const U = this.threshold;
    if (U <= 0 || C < U)
      return;
    this._stacks || (this._stacks = /* @__PURE__ */ new Map());
    const le = this._stacks.get(E.value) || 0;
    if (this._stacks.set(E.value, le + 1), this._warnCountdown -= 1, this._warnCountdown <= 0) {
      this._warnCountdown = U * 0.5;
      let me, De = 0;
      for (const [et, vt] of this._stacks)
        (!me || De < vt) && (me = et, De = vt);
      console.warn(`[${this.name}] potential listener LEAK detected, having ${C} listeners already. MOST frequent listener (${De}):`), console.warn(me);
    }
    return () => {
      const me = this._stacks.get(E.value) || 0;
      this._stacks.set(E.value, me - 1);
    };
  }
}
class tse {
  static create() {
    var E;
    return new tse((E = new Error().stack) !== null && E !== void 0 ? E : "");
  }
  constructor(E) {
    this.value = E;
  }
  print() {
    console.warn(this.value.split(`
`).slice(2).join(`
`));
  }
}
class Lct {
  constructor(E, C, U) {
    this.callback = E, this.callbackThis = C, this.stack = U, this.subscription = new pct();
  }
  invoke(E) {
    this.callback.call(this.callbackThis, E);
  }
}
class JE {
  constructor(E) {
    var C, U, le, me, De;
    this._disposed = !1, this._options = E, this._leakageMon = !((C = this._options) === null || C === void 0) && C.leakWarningThreshold ? new Cct((le = (U = this._options) === null || U === void 0 ? void 0 : U.leakWarningThreshold) !== null && le !== void 0 ? le : Act) : void 0, this._perfMon = !((me = this._options) === null || me === void 0) && me._profName ? new QD(this._options._profName) : void 0, this._deliveryQueue = (De = this._options) === null || De === void 0 ? void 0 : De.deliveryQueue;
  }
  dispose() {
    var E, C, U, le;
    this._disposed || (this._disposed = !0, this._listeners && this._listeners.clear(), (E = this._deliveryQueue) === null || E === void 0 || E.clear(this), (U = (C = this._options) === null || C === void 0 ? void 0 : C.onDidRemoveLastListener) === null || U === void 0 || U.call(C), (le = this._leakageMon) === null || le === void 0 || le.dispose());
  }
  /**
   * For the public to allow to subscribe
   * to events from this Emitter
   */
  get event() {
    return this._event || (this._event = (E, C, U) => {
      var le, me, De;
      if (this._listeners || (this._listeners = new ZV()), this._leakageMon && this._listeners.size > this._leakageMon.threshold * 3)
        return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`), aj.None;
      const et = this._listeners.isEmpty();
      et && (!((le = this._options) === null || le === void 0) && le.onWillAddFirstListener) && this._options.onWillAddFirstListener(this);
      let vt, Ie;
      this._leakageMon && this._listeners.size >= Math.ceil(this._leakageMon.threshold * 0.2) && (Ie = tse.create(), vt = this._leakageMon.check(Ie, this._listeners.size + 1));
      const ze = new Lct(E, C, Ie), Zt = this._listeners.push(ze);
      et && (!((me = this._options) === null || me === void 0) && me.onDidAddFirstListener) && this._options.onDidAddFirstListener(this), !((De = this._options) === null || De === void 0) && De.onDidAddListener && this._options.onDidAddListener(this, E, C);
      const sn = ze.subscription.set(() => {
        var Hn, ri;
        vt == null || vt(), this._disposed || ((ri = (Hn = this._options) === null || Hn === void 0 ? void 0 : Hn.onWillRemoveListener) === null || ri === void 0 || ri.call(Hn, this), Zt(), this._options && this._options.onDidRemoveLastListener && (this._listeners && !this._listeners.isEmpty() || this._options.onDidRemoveLastListener(this)));
      });
      return U instanceof QL ? U.add(sn) : Array.isArray(U) && U.push(sn), sn;
    }), this._event;
  }
  /**
   * To be kept private to fire an event to
   * subscribers
   */
  fire(E) {
    var C, U, le;
    if (this._listeners) {
      this._deliveryQueue || (this._deliveryQueue = new kct((C = this._options) === null || C === void 0 ? void 0 : C.onListenerError));
      for (const me of this._listeners)
        this._deliveryQueue.push(this, me, E);
      (U = this._perfMon) === null || U === void 0 || U.start(this._deliveryQueue.size), this._deliveryQueue.deliver(), (le = this._perfMon) === null || le === void 0 || le.stop();
    }
  }
  hasListeners() {
    return this._listeners ? !this._listeners.isEmpty() : !1;
  }
}
class Ict {
  constructor(E = BRe) {
    this._onListenerError = E, this._queue = new ZV();
  }
  get size() {
    return this._queue.size;
  }
  push(E, C, U) {
    this._queue.push(new wct(E, C, U));
  }
  clear(E) {
    const C = new ZV();
    for (const U of this._queue)
      U.emitter !== E && C.push(U);
    this._queue = C;
  }
  deliver() {
    for (; this._queue.size > 0; ) {
      const E = this._queue.shift();
      try {
        E.listener.invoke(E.event);
      } catch (C) {
        this._onListenerError(C);
      }
    }
  }
}
class kct extends Ict {
  clear(E) {
    this._queue.clear();
  }
}
class wct {
  constructor(E, C, U) {
    this.emitter = E, this.listener = C, this.event = U;
  }
}
function Dct(m) {
  return typeof m == "string";
}
function Rct(m) {
  let E = [], C = Object.getPrototypeOf(m);
  for (; Object.prototype !== C; )
    E = E.concat(Object.getOwnPropertyNames(C)), C = Object.getPrototypeOf(C);
  return E;
}
function Goe(m) {
  const E = [];
  for (const C of Rct(m))
    typeof m[C] == "function" && E.push(C);
  return E;
}
function Nct(m, E) {
  const C = (le) => function() {
    const me = Array.prototype.slice.call(arguments, 0);
    return E(le, me);
  }, U = {};
  for (const le of m)
    U[le] = C(le);
  return U;
}
const VRe = Object.freeze(function(m, E) {
  const C = setTimeout(m.bind(E), 0);
  return { dispose() {
    clearTimeout(C);
  } };
});
var ej;
(function(m) {
  function E(C) {
    return C === m.None || C === m.Cancelled || C instanceof KV ? !0 : !C || typeof C != "object" ? !1 : typeof C.isCancellationRequested == "boolean" && typeof C.onCancellationRequested == "function";
  }
  m.isCancellationToken = E, m.None = Object.freeze({
    isCancellationRequested: !1,
    onCancellationRequested: Boe.None
  }), m.Cancelled = Object.freeze({
    isCancellationRequested: !0,
    onCancellationRequested: VRe
  });
})(ej || (ej = {}));
class KV {
  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 ? VRe : (this._emitter || (this._emitter = new JE()), this._emitter.event);
  }
  dispose() {
    this._emitter && (this._emitter.dispose(), this._emitter = null);
  }
}
class Oct {
  constructor(E) {
    this._token = void 0, this._parentListener = void 0, this._parentListener = E && E.onCancellationRequested(this.cancel, this);
  }
  get token() {
    return this._token || (this._token = new KV()), this._token;
  }
  cancel() {
    this._token ? this._token instanceof KV && this._token.cancel() : this._token = ej.Cancelled;
  }
  dispose(E = !1) {
    var C;
    E && this.cancel(), (C = this._parentListener) === null || C === void 0 || C.dispose(), this._token ? this._token instanceof KV && this._token.dispose() : this._token = ej.None;
  }
}
class Pct {
  constructor(E) {
    this.fn = E, this.lastCache = void 0, this.lastArgKey = void 0;
  }
  get(E) {
    const C = JSON.stringify(E);
    return this.lastArgKey !== C && (this.lastArgKey = C, this.lastCache = this.fn(E)), this.lastCache;
  }
}
class jRe {
  constructor(E) {
    this.executor = E, this._didRun = !1;
  }
  /**
   * True if the lazy value has been resolved.
   */
  get hasValue() {
    return this._didRun;
  }
  /**
   * 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 (E) {
        this._error = E;
      } 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 HRe;
function Mct(m) {
  return m.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, "\\$&");
}
function Fct(m) {
  return m.split(/\r\n|\r|\n/);
}
function Bct(m) {
  for (let E = 0, C = m.length; E < C; E++) {
    const U = m.charCodeAt(E);
    if (U !== 32 && U !== 9)
      return E;
  }
  return -1;
}
function Gct(m, E = m.length - 1) {
  for (let C = E; C >= 0; C--) {
    const U = m.charCodeAt(C);
    if (U !== 32 && U !== 9)
      return C;
  }
  return -1;
}
function WRe(m) {
  return m >= 65 && m <= 90;
}
function Uoe(m) {
  return 55296 <= m && m <= 56319;
}
function Uct(m) {
  return 56320 <= m && m <= 57343;
}
function Vct(m, E) {
  return (m - 55296 << 10) + (E - 56320) + 65536;
}
function jct(m, E, C) {
  const U = m.charCodeAt(C);
  if (Uoe(U) && C + 1 < E) {
    const le = m.charCodeAt(C + 1);
    if (Uct(le))
      return Vct(U, le);
  }
  return U;
}
const Hct = /^[\t\n\r\x20-\x7E]*$/;
function Wct(m) {
  return Hct.test(m);
}
class R0 {
  static getInstance(E) {
    return R0.cache.get(Array.from(E));
  }
  static getLocales() {
    return R0._locales.value;
  }
  constructor(E) {
    this.confusableDictionary = E;
  }
  isAmbiguous(E) {
    return this.confusableDictionary.has(E);
  }
  /**
   * 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(E) {
    return this.confusableDictionary.get(E);
  }
  getConfusableCodePoints() {
    return new Set(this.confusableDictionary.keys());
  }
}
HRe = R0;
R0.ambiguousCharacterData = new jRe(() => 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]}'));
R0.cache = new Pct((m) => {
  function E(Ie) {
    const ze = /* @__PURE__ */ new Map();
    for (let Zt = 0; Zt < Ie.length; Zt += 2)
      ze.set(Ie[Zt], Ie[Zt + 1]);
    return ze;
  }
  function C(Ie, ze) {
    const Zt = new Map(Ie);
    for (const [sn, Hn] of ze)
      Zt.set(sn, Hn);
    return Zt;
  }
  function U(Ie, ze) {
    if (!Ie)
      return ze;
    const Zt = /* @__PURE__ */ new Map();
    for (const [sn, Hn] of Ie)
      ze.has(sn) && Zt.set(sn, Hn);
    return Zt;
  }
  const le = HRe.ambiguousCharacterData.value;
  let me = m.filter((Ie) => !Ie.startsWith("_") && Ie in le);
  me.length === 0 && (me = ["_default"]);
  let De;
  for (const Ie of me) {
    const ze = E(le[Ie]);
    De = U(De, ze);
  }
  const et = E(le._common), vt = C(et, De);
  return new R0(vt);
});
R0._locales = new jRe(() => Object.keys(R0.ambiguousCharacterData.value).filter((m) => !m.startsWith("_")));
class cA {
  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(cA.getRawData())), this._data;
  }
  static isInvisibleCharacter(E) {
    return cA.getData().has(E);
  }
  static get codePoints() {
    return cA.getData();
  }
}
cA._data = void 0;
const zct = "$initialize";
class qct {
  constructor(E, C, U, le) {
    this.vsWorker = E, this.req = C, this.method = U, this.args = le, this.type = 0;
  }
}
class hDe {
  constructor(E, C, U, le) {
    this.vsWorker = E, this.seq = C, this.res = U, this.err = le, this.type = 1;
  }
}
class Jct {
  constructor(E, C, U, le) {
    this.vsWorker = E, this.req = C, this.eventName = U, this.arg = le, this.type = 2;
  }
}
class Kct {
  constructor(E, C, U) {
    this.vsWorker = E, this.req = C, this.event = U, this.type = 3;
  }
}
class Xct {
  constructor(E, C) {
    this.vsWorker = E, this.req = C, this.type = 4;
  }
}
class Yct {
  constructor(E) {
    this._workerId = -1, this._handler = E, this._lastSentReq = 0, this._pendingReplies = /* @__PURE__ */ Object.create(null), this._pendingEmitters = /* @__PURE__ */ new Map(), this._pendingEvents = /* @__PURE__ */ new Map();
  }
  setWorkerId(E) {
    this._workerId = E;
  }
  sendMessage(E, C) {
    const U = String(++this._lastSentReq);
    return new Promise((le, me) => {
      this._pendingReplies[U] = {
        resolve: le,
        reject: me
      }, this._send(new qct(this._workerId, U, E, C));
    });
  }
  listen(E, C) {
    let U = null;
    const le = new JE({
      onWillAddFirstListener: () => {
        U = String(++this._lastSentReq), this._pendingEmitters.set(U, le), this._send(new Jct(this._workerId, U, E, C));
      },
      onDidRemoveLastListener: () => {
        this._pendingEmitters.delete(U), this._send(new Xct(this._workerId, U)), U = null;
      }
    });
    return le.event;
  }
  handleMessage(E) {
    !E || !E.vsWorker || this._workerId !== -1 && E.vsWorker !== this._workerId || this._handleMessage(E);
  }
  _handleMessage(E) {
    switch (E.type) {
      case 1:
        return this._handleReplyMessage(E);
      case 0:
        return this._handleRequestMessage(E);
      case 2:
        return this._handleSubscribeEventMessage(E);
      case 3:
        return this._handleEventMessage(E);
      case 4:
        return this._handleUnsubscribeEventMessage(E);
    }
  }
  _handleReplyMessage(E) {
    if (!this._pendingReplies[E.seq]) {
      console.warn("Got reply to unknown seq");
      return;
    }
    const C = this._pendingReplies[E.seq];
    if (delete this._pendingReplies[E.seq], E.err) {
      let U = E.err;
      E.err.$isError && (U = new Error(), U.name = E.err.name, U.message = E.err.message, U.stack = E.err.stack), C.reject(U);
      return;
    }
    C.resolve(E.res);
  }
  _handleRequestMessage(E) {
    const C = E.req;
    this._handler.handleMessage(E.method, E.args).then((le) => {
      this._send(new hDe(this._workerId, C, le, void 0));
    }, (le) => {
      le.detail instanceof Error && (le.detail = _De(le.detail)), this._send(new hDe(this._workerId, C, void 0, _De(le)));
    });
  }
  _handleSubscribeEventMessage(E) {
    const C = E.req, U = this._handler.handleEvent(E.eventName, E.arg)((le) => {
      this._send(new Kct(this._workerId, C, le));
    });
    this._pendingEvents.set(C, U);
  }
  _handleEventMessage(E) {
    if (!this._pendingEmitters.has(E.req)) {
      console.warn("Got event for unknown req");
      return;
    }
    this._pendingEmitters.get(E.req).fire(E.event);
  }
  _handleUnsubscribeEventMessage(E) {
    if (!this._pendingEvents.has(E.req)) {
      console.warn("Got unsubscribe for unknown req");
      return;
    }
    this._pendingEvents.get(E.req).dispose(), this._pendingEvents.delete(E.req);
  }
  _send(E) {
    const C = [];
    if (E.type === 0)
      for (let U = 0; U < E.args.length; U++)
        E.args[U] instanceof ArrayBuffer && C.push(E.args[U]);
    else
      E.type === 1 && E.res instanceof ArrayBuffer && C.push(E.res);
    this._handler.sendMessage(E, C);
  }
}
function zRe(m) {
  return m[0] === "o" && m[1] === "n" && WRe(m.charCodeAt(2));
}
function qRe(m) {
  return /^onDynamic/.test(m) && WRe(m.charCodeAt(9));
}
function $ct(m, E, C) {
  const U = (De) => function() {
    const et = Array.prototype.slice.call(arguments, 0);
    return E(De, et);
  }, le = (De) => function(et) {
    return C(De, et);
  }, me = {};
  for (const De of m) {
    if (qRe(De)) {
      me[De] = le(De);
      continue;
    }
    if (zRe(De)) {
      me[De] = C(De, void 0);
      continue;
    }
    me[De] = U(De);
  }
  return me;
}
class Qct {
  constructor(E, C) {
    this._requestHandlerFactory = C, this._requestHandler = null, this._protocol = new Yct({
      sendMessage: (U, le) => {
        E(U, le);
      },
      handleMessage: (U, le) => this._handleMessage(U, le),
      handleEvent: (U, le) => this._handleEvent(U, le)
    });
  }
  onmessage(E) {
    this._protocol.handleMessage(E);
  }
  _handleMessage(E, C) {
    if (E === zct)
      return this.initialize(C[0], C[1], C[2], C[3]);
    if (!this._requestHandler || typeof this._requestHandler[E] != "function")
      return Promise.reject(new Error("Missing requestHandler or method: " + E));
    try {
      return Promise.resolve(this._requestHandler[E].apply(this._requestHandler, C));
    } catch (U) {
      return Promise.reject(U);
    }
  }
  _handleEvent(E, C) {
    if (!this._requestHandler)
      throw new Error("Missing requestHandler");
    if (qRe(E)) {
      const U = this._requestHandler[E].call(this._requestHandler, C);
      if (typeof U != "function")
        throw new Error(`Missing dynamic event ${E} on request handler.`);
      return U;
    }
    if (zRe(E)) {
      const U = this._requestHandler[E];
      if (typeof U != "function")
        throw new Error(`Missing event ${E} on request handler.`);
      return U;
    }
    throw new Error(`Malformed event name ${E}`);
  }
  initialize(E, C, U, le) {
    this._protocol.setWorkerId(E);
    const et = $ct(le, (vt, Ie) => this._protocol.sendMessage(vt, Ie), (vt, Ie) => this._protocol.listen(vt, Ie));
    return this._requestHandlerFactory ? (this._requestHandler = this._requestHandlerFactory(et), Promise.resolve(Goe(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((vt, Ie) => {
      const ze = globalThis.require;
      ze([U], (Zt) => {
        if (this._requestHandler = Zt.create(et), !this._requestHandler) {
          Ie(new Error("No RequestHandler!"));
          return;
        }
        vt(Goe(this._requestHandler));
      }, Ie);
    }));
  }
}
class aA {
  /**
   * Constructs a new DiffChange with the given sequence information
   * and content.
   */
  constructor(E, C, U, le) {
    this.originalStart = E, this.originalLength = C, this.modifiedStart = U, this.modifiedLength = le;
  }
  /**
   * 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 gDe(m, E) {
  return (E << 5) - E + m | 0;
}
function Zct(m, E) {
  E = gDe(149417, E);
  for (let C = 0, U = m.length; C < U; C++)
    E = gDe(m.charCodeAt(C), E);
  return E;
}
class yDe {
  constructor(E) {
    this.source = E;
  }
  getElements() {
    const E = this.source, C = new Int32Array(E.length);
    for (let U = 0, le = E.length; U < le; U++)
      C[U] = E.charCodeAt(U);
    return C;
  }
}
function elt(m, E, C) {
  return new oA(new yDe(m), new yDe(E)).ComputeDiff(C).changes;
}
class HD {
  static Assert(E, C) {
    if (!E)
      throw new Error(C);
  }
}
class WD {
  /**
   * 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(E, C, U, le, me) {
    for (let De = 0; De < me; De++)
      U[le + De] = E[C + De];
  }
  static Copy2(E, C, U, le, me) {
    for (let De = 0; De < me; De++)
      U[le + De] = E[C + De];
  }
}
class vDe {
  /**
   * 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(E, C) {
    this.m_originalStart = Math.min(this.m_originalStart, E), 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(E, C) {
    this.m_originalStart = Math.min(this.m_originalStart, E), 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(E, C, U = null) {
    this.ContinueProcessingPredicate = U, this._originalSequence = E, this._modifiedSequence = C;
    const [le, me, De] = oA._getElements(E), [et, vt, Ie] = oA._getElements(C);
    this._hasStrings = De && Ie, this._originalStringElements = le, this._originalElementsOrHash = me, this._modifiedStringElements = et, this._modifiedElementsOrHash = vt, this.m_forwardHistory = [], this.m_reverseHistory = [];
  }
  static _isStringArray(E) {
    return E.length > 0 && typeof E[0] == "string";
  }
  static _getElements(E) {
    const C = E.getElements();
    if (oA._isStringArray(C)) {
      const U = new Int32Array(C.length);
      for (let le = 0, me = C.length; le < me; le++)
        U[le] = Zct(C[le], 0);
      return [C, U, !0];
    }
    return C instanceof Int32Array ? [[], C, !1] : [[], new Int32Array(C), !1];
  }
  ElementsAreEqual(E, C) {
    return this._originalElementsOrHash[E] !== this._modifiedElementsOrHash[C] ? !1 : this._hasStrings ? this._originalStringElements[E] === this._modifiedStringElements[C] : !0;
  }
  ElementsAreStrictEqual(E, C) {
    if (!this.ElementsAreEqual(E, C))
      return !1;
    const U = oA._getStrictElement(this._originalSequence, E), le = oA._getStrictElement(this._modifiedSequence, C);
    return U === le;
  }
  static _getStrictElement(E, C) {
    return typeof E.getStrictElement == "function" ? E.getStrictElement(C) : null;
  }
  OriginalElementsAreEqual(E, C) {
    return this._originalElementsOrHash[E] !== this._originalElementsOrHash[C] ? !1 : this._hasStrings ? this._originalStringElements[E] === this._originalStringElements[C] : !0;
  }
  ModifiedElementsAreEqual(E, C) {
    return this._modifiedElementsOrHash[E] !== this._modifiedElementsOrHash[C] ? !1 : this._hasStrings ? this._modifiedStringElements[E] === this._modifiedStringElements[C] : !0;
  }
  ComputeDiff(E) {
    return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, E);
  }
  /**
   * 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(E, C, U, le, me) {
    const De = [!1];
    let et = this.ComputeDiffRecursive(E, C, U, le, De);
    return me && (et = this.PrettifyChanges(et)), {
      quitEarly: De[0],
      changes: et
    };
  }
  /**
   * Private helper method which computes the differences on the bounded range
   * recursively.
   * @returns An array of the differences between the two input sequences.
   */
  ComputeDiffRecursive(E, C, U, le, me) {
    for (me[0] = !1; E <= C && U <= le && this.ElementsAreEqual(E, U); )
      E++, U++;
    for (; C >= E && le >= U && this.ElementsAreEqual(C, le); )
      C--, le--;
    if (E > C || U > le) {
      let Zt;
      return U <= le ? (HD.Assert(E === C + 1, "originalStart should only be one more than originalEnd"), Zt = [
        new aA(E, 0, U, le - U + 1)
      ]) : E <= C ? (HD.Assert(U === le + 1, "modifiedStart should only be one more than modifiedEnd"), Zt = [
        new aA(E, C - E + 1, U, 0)
      ]) : (HD.Assert(E === C + 1, "originalStart should only be one more than originalEnd"), HD.Assert(U === le + 1, "modifiedStart should only be one more than modifiedEnd"), Zt = []), Zt;
    }
    const De = [0], et = [0], vt = this.ComputeRecursionPoint(E, C, U, le, De, et, me), Ie = De[0], ze = et[0];
    if (vt !== null)
      return vt;
    if (!me[0]) {
      const Zt = this.ComputeDiffRecursive(E, Ie, U, ze, me);
      let sn = [];
      return me[0] ? sn = [
        new aA(Ie + 1, C - (Ie + 1) + 1, ze + 1, le - (ze + 1) + 1)
      ] : sn = this.ComputeDiffRecursive(Ie + 1, C, ze + 1, le, me), this.ConcatenateChanges(Zt, sn);
    }
    return [
      new aA(E, C - E + 1, U, le - U + 1)
    ];
  }
  WALKTRACE(E, C, U, le, me, De, et, vt, Ie, ze, Zt, sn, Hn, ri, gi, Wa, Rn, cn) {
    let $i = null, Qi = null, ts = new vDe(), rd = C, wi = U, Qs = Hn[0] - Wa[0] - le, Ma = -1073741824, Zi = this.m_forwardHistory.length - 1;
    do {
      const yn = Qs + E;
      yn === rd || yn < wi && Ie[yn - 1] < Ie[yn + 1] ? (Zt = Ie[yn + 1], ri = Zt - Qs - le, Zt < Ma && ts.MarkNextChange(), Ma = Zt, ts.AddModifiedElement(Zt + 1, ri), Qs = yn + 1 - E) : (Zt = Ie[yn - 1] + 1, ri = Zt - Qs - le, Zt < Ma && ts.MarkNextChange(), Ma = Zt - 1, ts.AddOriginalElement(Zt, ri + 1), Qs = yn - 1 - E), Zi >= 0 && (Ie = this.m_forwardHistory[Zi], E = Ie[0], rd = 1, wi = Ie.length - 1);
    } while (--Zi >= -1);
    if ($i = ts.getReverseChanges(), cn[0]) {
      let yn = Hn[0] + 1, ki = Wa[0] + 1;
      if ($i !== null && $i.length > 0) {
        const co = $i[$i.length - 1];
        yn = Math.max(yn, co.getOriginalEnd()), ki = Math.max(ki, co.getModifiedEnd());
      }
      Qi = [
        new aA(yn, sn - yn + 1, ki, gi - ki + 1)
      ];
    } else {
      ts = new vDe(), rd = De, wi = et, Qs = Hn[0] - Wa[0] - vt, Ma = 1073741824, Zi = Rn ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;
      do {
        const yn = Qs + me;
        yn === rd || yn < wi && ze[yn - 1] >= ze[yn + 1] ? (Zt = ze[yn + 1] - 1, ri = Zt - Qs - vt, Zt > Ma && ts.MarkNextChange(), Ma = Zt + 1, ts.AddOriginalElement(Zt + 1, ri + 1), Qs = yn + 1 - me) : (Zt = ze[yn - 1], ri = Zt - Qs - vt, Zt > Ma && ts.MarkNextChange(), Ma = Zt, ts.AddModifiedElement(Zt + 1, ri + 1), Qs = yn - 1 - me), Zi >= 0 && (ze = this.m_reverseHistory[Zi], me = ze[0], rd = 1, wi = ze.length - 1);
      } while (--Zi >= -1);
      Qi = ts.getChanges();
    }
    return this.ConcatenateChanges($i, Qi);
  }
  /**
   * 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(E, C, U, le, me, De, et) {
    let vt = 0, Ie = 0, ze = 0, Zt = 0, sn = 0, Hn = 0;
    E--, U--, me[0] = 0, De[0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = [];
    const ri = C - E + (le - U), gi = ri + 1, Wa = new Int32Array(gi), Rn = new Int32Array(gi), cn = le - U, $i = C - E, Qi = E - U, ts = C - le, wi = ($i - cn) % 2 === 0;
    Wa[cn] = E, Rn[$i] = C, et[0] = !1;
    for (let Qs = 1; Qs <= ri / 2 + 1; Qs++) {
      let Ma = 0, Zi = 0;
      ze = this.ClipDiagonalBound(cn - Qs, Qs, cn, gi), Zt = this.ClipDiagonalBound(cn + Qs, Qs, cn, gi);
      for (let ki = ze; ki <= Zt; ki += 2) {
        ki === ze || ki < Zt && Wa[ki - 1] < Wa[ki + 1] ? vt = Wa[ki + 1] : vt = Wa[ki - 1] + 1, Ie = vt - (ki - cn) - Qi;
        const co = vt;
        for (; vt < C && Ie < le && this.ElementsAreEqual(vt + 1, Ie + 1); )
          vt++, Ie++;
        if (Wa[ki] = vt, vt + Ie > Ma + Zi && (Ma = vt, Zi = Ie), !wi && Math.abs(ki - $i) <= Qs - 1 && vt >= Rn[ki])
          return me[0] = vt, De[0] = Ie, co <= Rn[ki] && 1447 > 0 && Qs <= 1447 + 1 ? this.WALKTRACE(cn, ze, Zt, Qi, $i, sn, Hn, ts, Wa, Rn, vt, C, me, Ie, le, De, wi, et) : null;
      }
      const yn = (Ma - E + (Zi - U) - Qs) / 2;
      if (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(Ma, yn))
        return et[0] = !0, me[0] = Ma, De[0] = Zi, yn > 0 && 1447 > 0 && Qs <= 1447 + 1 ? this.WALKTRACE(cn, ze, Zt, Qi, $i, sn, Hn, ts, Wa, Rn, vt, C, me, Ie, le, De, wi, et) : (E++, U++, [
          new aA(E, C - E + 1, U, le - U + 1)
        ]);
      sn = this.ClipDiagonalBound($i - Qs, Qs, $i, gi), Hn = this.ClipDiagonalBound($i + Qs, Qs, $i, gi);
      for (let ki = sn; ki <= Hn; ki += 2) {
        ki === sn || ki < Hn && Rn[ki - 1] >= Rn[ki + 1] ? vt = Rn[ki + 1] - 1 : vt = Rn[ki - 1], Ie = vt - (ki - $i) - ts;
        const co = vt;
        for (; vt > E && Ie > U && this.ElementsAreEqual(vt, Ie); )
          vt--, Ie--;
        if (Rn[ki] = vt, wi && Math.abs(ki - cn) <= Qs && vt <= Wa[ki])
          return me[0] = vt, De[0] = Ie, co >= Wa[ki] && 1447 > 0 && Qs <= 1447 + 1 ? this.WALKTRACE(cn, ze, Zt, Qi, $i, sn, Hn, ts, Wa, Rn, vt, C, me, Ie, le, De, wi, et) : null;
      }
      if (Qs <= 1447) {
        let ki = new Int32Array(Zt - ze + 2);
        ki[0] = cn - ze + 1, WD.Copy2(Wa, ze, ki, 1, Zt - ze + 1), this.m_forwardHistory.push(ki), ki = new Int32Array(Hn - sn + 2), ki[0] = $i - sn + 1, WD.Copy2(Rn, sn, ki, 1, Hn - sn + 1), this.m_reverseHistory.push(ki);
      }
    }
    return this.WALKTRACE(cn, ze, Zt, Qi, $i, sn, Hn, ts, Wa, Rn, vt, C, me, Ie, le, De, wi, et);
  }
  /**
   * 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(E) {
    for (let C = 0; C < E.length; C++) {
      const U = E[C], le = C < E.length - 1 ? E[C + 1].originalStart : this._originalElementsOrHash.length, me = C < E.length - 1 ? E[C + 1].modifiedStart : this._modifiedElementsOrHash.length, De = U.originalLength > 0, et = U.modifiedLength > 0;
      for (; U.originalStart + U.originalLength < le && U.modifiedStart + U.modifiedLength < me && (!De || this.OriginalElementsAreEqual(U.originalStart, U.originalStart + U.originalLength)) && (!et || this.ModifiedElementsAreEqual(U.modifiedStart, U.modifiedStart + U.modifiedLength)); ) {
        const Ie = this.ElementsAreStrictEqual(U.originalStart, U.modifiedStart);
        if (this.ElementsAreStrictEqual(U.originalStart + U.originalLength, U.modifiedStart + U.modifiedLength) && !Ie)
          break;
        U.originalStart++, U.modifiedStart++;
      }
      const vt = [null];
      if (C < E.length - 1 && this.ChangesOverlap(E[C], E[C + 1], vt)) {
        E[C] = vt[0], E.splice(C + 1, 1), C--;
        continue;
      }
    }
    for (let C = E.length - 1; C >= 0; C--) {
      const U = E[C];
      let le = 0, me = 0;
      if (C > 0) {
        const Zt = E[C - 1];
        le = Zt.originalStart + Zt.originalLength, me = Zt.modifiedStart + Zt.modifiedLength;
      }
      const De = U.originalLength > 0, et = U.modifiedLength > 0;
      let vt = 0, Ie = this._boundaryScore(U.originalStart, U.originalLength, U.modifiedStart, U.modifiedLength);
      for (let Zt = 1; ; Zt++) {
        const sn = U.originalStart - Zt, Hn = U.modifiedStart - Zt;
        if (sn < le || Hn < me || De && !this.OriginalElementsAreEqual(sn, sn + U.originalLength) || et && !this.ModifiedElementsAreEqual(Hn, Hn + U.modifiedLength))
          break;
        const gi = (sn === le && Hn === me ? 5 : 0) + this._boundaryScore(sn, U.originalLength, Hn, U.modifiedLength);
        gi > Ie && (Ie = gi, vt = Zt);
      }
      U.originalStart -= vt, U.modifiedStart -= vt;
      const ze = [null];
      if (C > 0 && this.ChangesOverlap(E[C - 1], E[C], ze)) {
        E[C - 1] = ze[0], E.splice(C, 1), C++;
        continue;
      }
    }
    if (this._hasStrings)
      for (let C = 1, U = E.length; C < U; C++) {
        const le = E[C - 1], me = E[C], De = me.originalStart - le.originalStart - le.originalLength, et = le.originalStart, vt = me.originalStart + me.originalLength, Ie = vt - et, ze = le.modifiedStart, Zt = me.modifiedStart + me.modifiedLength, sn = Zt - ze;
        if (De < 5 && Ie < 20 && sn < 20) {
          const Hn = this._findBetterContiguousSequence(et, Ie, ze, sn, De);
          if (Hn) {
            const [ri, gi] = Hn;
            (ri !== le.originalStart + le.originalLength || gi !== le.modifiedStart + le.modifiedLength) && (le.originalLength = ri - le.originalStart, le.modifiedLength = gi - le.modifiedStart, me.originalStart = ri + De, me.modifiedStart = gi + De, me.originalLength = vt - me.originalStart, me.modifiedLength = Zt - me.modifiedStart);
          }
        }
      }
    return E;
  }
  _findBetterContiguousSequence(E, C, U, le, me) {
    if (C < me || le < me)
      return null;
    const De = E + C - me + 1, et = U + le - me + 1;
    let vt = 0, Ie = 0, ze = 0;
    for (let Zt = E; Zt < De; Zt++)
      for (let sn = U; sn < et; sn++) {
        const Hn = this._contiguousSequenceScore(Zt, sn, me);
        Hn > 0 && Hn > vt && (vt = Hn, Ie = Zt, ze = sn);
      }
    return vt > 0 ? [Ie, ze] : null;
  }
  _contiguousSequenceScore(E, C, U) {
    let le = 0;
    for (let me = 0; me < U; me++) {
      if (!this.ElementsAreEqual(E + me, C + me))
        return 0;
      le += this._originalStringElements[E + me].length;
    }
    return le;
  }
  _OriginalIsBoundary(E) {
    return E <= 0 || E >= this._originalElementsOrHash.length - 1 ? !0 : this._hasStrings && /^\s*$/.test(this._originalStringElements[E]);
  }
  _OriginalRegionIsBoundary(E, C) {
    if (this._OriginalIsBoundary(E) || this._OriginalIsBoundary(E - 1))
      return !0;
    if (C > 0) {
      const U = E + C;
      if (this._OriginalIsBoundary(U - 1) || this._OriginalIsBoundary(U))
        return !0;
    }
    return !1;
  }
  _ModifiedIsBoundary(E) {
    return E <= 0 || E >= this._modifiedElementsOrHash.length - 1 ? !0 : this._hasStrings && /^\s*$/.test(this._modifiedStringElements[E]);
  }
  _ModifiedRegionIsBoundary(E, C) {
    if (this._ModifiedIsBoundary(E) || this._ModifiedIsBoundary(E - 1))
      return !0;
    if (C > 0) {
      const U = E + C;
      if (this._ModifiedIsBoundary(U - 1) || this._ModifiedIsBoundary(U))
        return !0;
    }
    return !1;
  }
  _boundaryScore(E, C, U, le) {
    const me = this._OriginalRegionIsBoundary(E, C) ? 1 : 0, De = this._ModifiedRegionIsBoundary(U, le) ? 1 : 0;
    return me + De;
  }
  /**
   * Concatenates the two input DiffChange lists and returns the resulting
   * list.
   * @param The left changes
   * @param The right changes
   * @returns The concatenated list
   */
  ConcatenateChanges(E, C) {
    const U = [];
    if (E.length === 0 || C.length === 0)
      return C.length > 0 ? C : E;
    if (this.ChangesOverlap(E[E.length - 1], C[0], U)) {
      const le = new Array(E.length + C.length - 1);
      return WD.Copy(E, 0, le, 0, E.length - 1), le[E.length - 1] = U[0], WD.Copy(C, 1, le, E.length, C.length - 1), le;
    } else {
      const le = new Array(E.length + C.length);
      return WD.Copy(E, 0, le, 0, E.length), WD.Copy(C, 0, le, E.length, C.length), le;
    }
  }
  /**
   * 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(E, C, U) {
    if (HD.Assert(E.originalStart <= C.originalStart, "Left change is not less than or equal to right change"), HD.Assert(E.modifiedStart <= C.modifiedStart, "Left change is not less than or equal to right change"), E.originalStart + E.originalLength >= C.originalStart || E.modifiedStart + E.modifiedLength >= C.modifiedStart) {
      const le = E.originalStart;
      let me = E.originalLength;
      const De = E.modifiedStart;
      let et = E.modifiedLength;
      return E.originalStart + E.originalLength >= C.originalStart && (me = C.originalStart + C.originalLength - E.originalStart), E.modifiedStart + E.modifiedLength >= C.modifiedStart && (et = C.modifiedStart + C.modifiedLength - E.modifiedStart), U[0] = new aA(le, me, De, et), !0;
    } else
      return U[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(E, C, U, le) {
    if (E >= 0 && E < le)
      return E;
    const me = U, De = le - U - 1, et = C % 2 === 0;
    if (E < 0) {
      const vt = me % 2 === 0;
      return et === vt ? 0 : 1;
    } else {
      const vt = De % 2 === 0;
      return et === vt ? le - 1 : le - 2;
    }
  }
}
let YL;
if (typeof ty.vscode < "u" && typeof ty.vscode.process < "u") {
  const m = ty.vscode.process;
  YL = {
    get platform() {
      return m.platform;
    },
    get arch() {
      return m.arch;
    },
    get env() {
      return m.env;
    },
    cwd() {
      return m.cwd();
    }
  };
} else
  typeof process < "u" ? YL = {
    get platform() {
      return process.platform;
    },
    get arch() {
      return process.arch;
    },
    get env() {
      return process.env;
    },
    cwd() {
      return process.env.VSCODE_CWD || process.cwd();
    }
  } : YL = {
    // Supported
    get platform() {
      return T4 ? "win32" : Ect ? "darwin" : "linux";
    },
    get arch() {
    },
    // Unsupported
    get env() {
      return {};
    },
    cwd() {
      return "/";
    }
  };
const tj = YL.cwd, tlt = YL.env, nlt = YL.platform;
YL.arch;
const rlt = 65, ilt = 97, alt = 90, olt = 122, lA = 46, Gp = 47, ey = 92, rA = 58, slt = 63;
class JRe extends Error {
  constructor(E, C, U) {
    let le;
    typeof C == "string" && C.indexOf("not ") === 0 ? (le = "must not be", C = C.replace(/^not /, "")) : le = "must be";
    const me = E.indexOf(".") !== -1 ? "property" : "argument";
    let De = `The "${E}" ${me} ${le} of type ${C}`;
    De += `. Received type ${typeof U}`, super(De), this.code = "ERR_INVALID_ARG_TYPE";
  }
}
function clt(m, E) {
  if (m === null || typeof m != "object")
    throw new JRe(E, "Object", m);
}
function Vf(m, E) {
  if (typeof m != "string")
    throw new JRe(E, "string", m);
}
const ny = nlt === "win32";
function Nc(m) {
  return m === Gp || m === ey;
}
function Voe(m) {
  return m === Gp;
}
function iA(m) {
  return m >= rlt && m <= alt || m >= ilt && m <= olt;
}
function nj(m, E, C, U) {
  let le = "", me = 0, De = -1, et = 0, vt = 0;
  for (let Ie = 0; Ie <= m.length; ++Ie) {
    if (Ie < m.length)
      vt = m.charCodeAt(Ie);
    else {
      if (U(vt))
        break;
      vt = Gp;
    }
    if (U(vt)) {
      if (!(De === Ie - 1 || et === 1))
        if (et === 2) {
          if (le.length < 2 || me !== 2 || le.charCodeAt(le.length - 1) !== lA || le.charCodeAt(le.length - 2) !== lA) {
            if (le.length > 2) {
              const ze = le.lastIndexOf(C);
              ze === -1 ? (le = "", me = 0) : (le = le.slice(0, ze), me = le.length - 1 - le.lastIndexOf(C)), De = Ie, et = 0;
              continue;
            } else if (le.length !== 0) {
              le = "", me = 0, De = Ie, et = 0;
              continue;
            }
          }
          E && (le += le.length > 0 ? `${C}..` : "..", me = 2);
        } else
          le.length > 0 ? le += `${C}${m.slice(De + 1, Ie)}` : le = m.slice(De + 1, Ie), me = Ie - De - 1;
      De = Ie, et = 0;
    } else
      vt === lA && et !== -1 ? ++et : et = -1;
  }
  return le;
}
function KRe(m, E) {
  clt(E, "pathObject");
  const C = E.dir || E.root, U = E.base || `${E.name || ""}${E.ext || ""}`;
  return C ? C === E.root ? `${C}${U}` : `${C}${m}${U}` : U;
}
const s_ = {
  // path.resolve([from ...], to)
  resolve(...m) {
    let E = "", C = "", U = !1;
    for (let le = m.length - 1; le >= -1; le--) {
      let me;
      if (le >= 0) {
        if (me = m[le], Vf(me, "path"), me.length === 0)
          continue;
      } else
        E.length === 0 ? me = tj() : (me = tlt[`=${E}`] || tj(), (me === void 0 || me.slice(0, 2).toLowerCase() !== E.toLowerCase() && me.charCodeAt(2) === ey) && (me = `${E}\\`));
      const De = me.length;
      let et = 0, vt = "", Ie = !1;
      const ze = me.charCodeAt(0);
      if (De === 1)
        Nc(ze) && (et = 1, Ie = !0);
      else if (Nc(ze))
        if (Ie = !0, Nc(me.charCodeAt(1))) {
          let Zt = 2, sn = Zt;
          for (; Zt < De && !Nc(me.charCodeAt(Zt)); )
            Zt++;
          if (Zt < De && Zt !== sn) {
            const Hn = me.slice(sn, Zt);
            for (sn = Zt; Zt < De && Nc(me.charCodeAt(Zt)); )
              Zt++;
            if (Zt < De && Zt !== sn) {
              for (sn = Zt; Zt < De && !Nc(me.charCodeAt(Zt)); )
                Zt++;
              (Zt === De || Zt !== sn) && (vt = `\\\\${Hn}\\${me.slice(sn, Zt)}`, et = Zt);
            }
          }
        } else
          et = 1;
      else
        iA(ze) && me.charCodeAt(1) === rA && (vt = me.slice(0, 2), et = 2, De > 2 && Nc(me.charCodeAt(2)) && (Ie = !0, et = 3));
      if (vt.length > 0)
        if (E.length > 0) {
          if (vt.toLowerCase() !== E.toLowerCase())
            continue;
        } else
          E = vt;
      if (U) {
        if (E.length > 0)
          break;
      } else if (C = `${me.slice(et)}\\${C}`, U = Ie, Ie && E.length > 0)
        break;
    }
    return C = nj(C, !U, "\\", Nc), U ? `${E}\\${C}` : `${E}${C}` || ".";
  },
  normalize(m) {
    Vf(m, "path");
    const E = m.length;
    if (E === 0)
      return ".";
    let C = 0, U, le = !1;
    const me = m.charCodeAt(0);
    if (E === 1)
      return Voe(me) ? "\\" : m;
    if (Nc(me))
      if (le = !0, Nc(m.charCodeAt(1))) {
        let et = 2, vt = et;
        for (; et < E && !Nc(m.charCodeAt(et)); )
          et++;
        if (et < E && et !== vt) {
          const Ie = m.slice(vt, et);
          for (vt = et; et < E && Nc(m.charCodeAt(et)); )
            et++;
          if (et < E && et !== vt) {
            for (vt = et; et < E && !Nc(m.charCodeAt(et)); )
              et++;
            if (et === E)
              return `\\\\${Ie}\\${m.slice(vt)}\\`;
            et !== vt && (U = `\\\\${Ie}\\${m.slice(vt, et)}`, C = et);
          }
        }
      } else
        C = 1;
    else
      iA(me) && m.charCodeAt(1) === rA && (U = m.slice(0, 2), C = 2, E > 2 && Nc(m.charCodeAt(2)) && (le = !0, C = 3));
    let De = C < E ? nj(m.slice(C), !le, "\\", Nc) : "";
    return De.length === 0 && !le && (De = "."), De.length > 0 && Nc(m.charCodeAt(E - 1)) && (De += "\\"), U === void 0 ? le ? `\\${De}` : De : le ? `${U}\\${De}` : `${U}${De}`;
  },
  isAbsolute(m) {
    Vf(m, "path");
    const E = m.length;
    if (E === 0)
      return !1;
    const C = m.charCodeAt(0);
    return Nc(C) || // Possible device root
    E > 2 && iA(C) && m.charCodeAt(1) === rA && Nc(m.charCodeAt(2));
  },
  join(...m) {
    if (m.length === 0)
      return ".";
    let E, C;
    for (let me = 0; me < m.length; ++me) {
      const De = m[me];
      Vf(De, "path"), De.length > 0 && (E === void 0 ? E = C = De : E += `\\${De}`);
    }
    if (E === void 0)
      return ".";
    let U = !0, le = 0;
    if (typeof C == "string" && Nc(C.charCodeAt(0))) {
      ++le;
      const me = C.length;
      me > 1 && Nc(C.charCodeAt(1)) && (++le, me > 2 && (Nc(C.charCodeAt(2)) ? ++le : U = !1));
    }
    if (U) {
      for (; le < E.length && Nc(E.charCodeAt(le)); )
        le++;
      le >= 2 && (E = `\\${E.slice(le)}`);
    }
    return s_.normalize(E);
  },
  // 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, E) {
    if (Vf(m, "from"), Vf(E, "to"), m === E)
      return "";
    const C = s_.resolve(m), U = s_.resolve(E);
    if (C === U || (m = C.toLowerCase(), E = U.toLowerCase(), m === E))
      return "";
    let le = 0;
    for (; le < m.length && m.charCodeAt(le) === ey; )
      le++;
    let me = m.length;
    for (; me - 1 > le && m.charCodeAt(me - 1) === ey; )
      me--;
    const De = me - le;
    let et = 0;
    for (; et < E.length && E.charCodeAt(et) === ey; )
      et++;
    let vt = E.length;
    for (; vt - 1 > et && E.charCodeAt(vt - 1) === ey; )
      vt--;
    const Ie = vt - et, ze = De < Ie ? De : Ie;
    let Zt = -1, sn = 0;
    for (; sn < ze; sn++) {
      const ri = m.charCodeAt(le + sn);
      if (ri !== E.charCodeAt(et + sn))
        break;
      ri === ey && (Zt = sn);
    }
    if (sn !== ze) {
      if (Zt === -1)
        return U;
    } else {
      if (Ie > ze) {
        if (E.charCodeAt(et + sn) === ey)
          return U.slice(et + sn + 1);
        if (sn === 2)
          return U.slice(et + sn);
      }
      De > ze && (m.charCodeAt(le + sn) === ey ? Zt = sn : sn === 2 && (Zt = 3)), Zt === -1 && (Zt = 0);
    }
    let Hn = "";
    for (sn = le + Zt + 1; sn <= me; ++sn)
      (sn === me || m.charCodeAt(sn) === ey) && (Hn += Hn.length === 0 ? ".." : "\\..");
    return et += Zt, Hn.length > 0 ? `${Hn}${U.slice(et, vt)}` : (U.charCodeAt(et) === ey && ++et, U.slice(et, vt));
  },
  toNamespacedPath(m) {
    if (typeof m != "string" || m.length === 0)
      return m;
    const E = s_.resolve(m);
    if (E.length <= 2)
      return m;
    if (E.charCodeAt(0) === ey) {
      if (E.charCodeAt(1) === ey) {
        const C = E.charCodeAt(2);
        if (C !== slt && C !== lA)
          return `\\\\?\\UNC\\${E.slice(2)}`;
      }
    } else if (iA(E.charCodeAt(0)) && E.charCodeAt(1) === rA && E.charCodeAt(2) === ey)
      return `\\\\?\\${E}`;
    return m;
  },
  dirname(m) {
    Vf(m, "path");
    const E = m.length;
    if (E === 0)
      return ".";
    let C = -1, U = 0;
    const le = m.charCodeAt(0);
    if (E === 1)
      return Nc(le) ? m : ".";
    if (Nc(le)) {
      if (C = U = 1, Nc(m.charCodeAt(1))) {
        let et = 2, vt = et;
        for (; et < E && !Nc(m.charCodeAt(et)); )
          et++;
        if (et < E && et !== vt) {
          for (vt = et; et < E && Nc(m.charCodeAt(et)); )
            et++;
          if (et < E && et !== vt) {
            for (vt = et; et < E && !Nc(m.charCodeAt(et)); )
              et++;
            if (et === E)
              return m;
            et !== vt && (C = U = et + 1);
          }
        }
      }
    } else
      iA(le) && m.charCodeAt(1) === rA && (C = E > 2 && Nc(m.charCodeAt(2)) ? 3 : 2, U = C);
    let me = -1, De = !0;
    for (let et = E - 1; et >= U; --et)
      if (Nc(m.charCodeAt(et))) {
        if (!De) {
          me = et;
          break;
        }
      } else
        De = !1;
    if (me === -1) {
      if (C === -1)
        return ".";
      me = C;
    }
    return m.slice(0, me);
  },
  basename(m, E) {
    E !== void 0 && Vf(E, "ext"), Vf(m, "path");
    let C = 0, U = -1, le = !0, me;
    if (m.length >= 2 && iA(m.charCodeAt(0)) && m.charCodeAt(1) === rA && (C = 2), E !== void 0 && E.length > 0 && E.length <= m.length) {
      if (E === m)
        return "";
      let De = E.length - 1, et = -1;
      for (me = m.length - 1; me >= C; --me) {
        const vt = m.charCodeAt(me);
        if (Nc(vt)) {
          if (!le) {
            C = me + 1;
            break;
          }
        } else
          et === -1 && (le = !1, et = me + 1), De >= 0 && (vt === E.charCodeAt(De) ? --De === -1 && (U = me) : (De = -1, U = et));
      }
      return C === U ? U = et : U === -1 && (U = m.length), m.slice(C, U);
    }
    for (me = m.length - 1; me >= C; --me)
      if (Nc(m.charCodeAt(me))) {
        if (!le) {
          C = me + 1;
          break;
        }
      } else
        U === -1 && (le = !1, U = me + 1);
    return U === -1 ? "" : m.slice(C, U);
  },
  extname(m) {
    Vf(m, "path");
    let E = 0, C = -1, U = 0, le = -1, me = !0, De = 0;
    m.length >= 2 && m.charCodeAt(1) === rA && iA(m.charCodeAt(0)) && (E = U = 2);
    for (let et = m.length - 1; et >= E; --et) {
      const vt = m.charCodeAt(et);
      if (Nc(vt)) {
        if (!me) {
          U = et + 1;
          break;
        }
        continue;
      }
      le === -1 && (me = !1, le = et + 1), vt === lA ? C === -1 ? C = et : De !== 1 && (De = 1) : C !== -1 && (De = -1);
    }
    return C === -1 || le === -1 || // We saw a non-dot character immediately before the dot
    De === 0 || // The (right-most) trimmed path component is exactly '..'
    De === 1 && C === le - 1 && C === U + 1 ? "" : m.slice(C, le);
  },
  format: KRe.bind(null, "\\"),
  parse(m) {
    Vf(m, "path");
    const E = { root: "", dir: "", base: "", ext: "", name: "" };
    if (m.length === 0)
      return E;
    const C = m.length;
    let U = 0, le = m.charCodeAt(0);
    if (C === 1)
      return Nc(le) ? (E.root = E.dir = m, E) : (E.base = E.name = m, E);
    if (Nc(le)) {
      if (U = 1, Nc(m.charCodeAt(1))) {
        let Zt = 2, sn = Zt;
        for (; Zt < C && !Nc(m.charCodeAt(Zt)); )
          Zt++;
        if (Zt < C && Zt !== sn) {
          for (sn = Zt; Zt < C && Nc(m.charCodeAt(Zt)); )
            Zt++;
          if (Zt < C && Zt !== sn) {
            for (sn = Zt; Zt < C && !Nc(m.charCodeAt(Zt)); )
              Zt++;
            Zt === C ? U = Zt : Zt !== sn && (U = Zt + 1);
          }
        }
      }
    } else if (iA(le) && m.charCodeAt(1) === rA) {
      if (C <= 2)
        return E.root = E.dir = m, E;
      if (U = 2, Nc(m.charCodeAt(2))) {
        if (C === 3)
          return E.root = E.dir = m, E;
        U = 3;
      }
    }
    U > 0 && (E.root = m.slice(0, U));
    let me = -1, De = U, et = -1, vt = !0, Ie = m.length - 1, ze = 0;
    for (; Ie >= U; --Ie) {
      if (le = m.charCodeAt(Ie), Nc(le)) {
        if (!vt) {
          De = Ie + 1;
          break;
        }
        continue;
      }
      et === -1 && (vt = !1, et = Ie + 1), le === lA ? me === -1 ? me = Ie : ze !== 1 && (ze = 1) : me !== -1 && (ze = -1);
    }
    return et !== -1 && (me === -1 || // We saw a non-dot character immediately before the dot
    ze === 0 || // The (right-most) trimmed path component is exactly '..'
    ze === 1 && me === et - 1 && me === De + 1 ? E.base = E.name = m.slice(De, et) : (E.name = m.slice(De, me), E.base = m.slice(De, et), E.ext = m.slice(me, et))), De > 0 && De !== U ? E.dir = m.slice(0, De - 1) : E.dir = E.root, E;
  },
  sep: "\\",
  delimiter: ";",
  win32: null,
  posix: null
}, llt = (() => {
  if (ny) {
    const m = /\\/g;
    return () => {
      const E = tj().replace(m, "/");
      return E.slice(E.indexOf("/"));
    };
  }
  return () => tj();
})(), w_ = {
  // path.resolve([from ...], to)
  resolve(...m) {
    let E = "", C = !1;
    for (let U = m.length - 1; U >= -1 && !C; U--) {
      const le = U >= 0 ? m[U] : llt();
      Vf(le, "path"), le.length !== 0 && (E = `${le}/${E}`, C = le.charCodeAt(0) === Gp);
    }
    return E = nj(E, !C, "/", Voe), C ? `/${E}` : E.length > 0 ? E : ".";
  },
  normalize(m) {
    if (Vf(m, "path"), m.length === 0)
      return ".";
    const E = m.charCodeAt(0) === Gp, C = m.charCodeAt(m.length - 1) === Gp;
    return m = nj(m, !E, "/", Voe), m.length === 0 ? E ? "/" : C ? "./" : "." : (C && (m += "/"), E ? `/${m}` : m);
  },
  isAbsolute(m) {
    return Vf(m, "path"), m.length > 0 && m.charCodeAt(0) === Gp;
  },
  join(...m) {
    if (m.length === 0)
      return ".";
    let E;
    for (let C = 0; C < m.length; ++C) {
      const U = m[C];
      Vf(U, "path"), U.length > 0 && (E === void 0 ? E = U : E += `/${U}`);
    }
    return E === void 0 ? "." : w_.normalize(E);
  },
  relative(m, E) {
    if (Vf(m, "from"), Vf(E, "to"), m === E || (m = w_.resolve(m), E = w_.resolve(E), m === E))
      return "";
    const C = 1, U = m.length, le = U - C, me = 1, De = E.length - me, et = le < De ? le : De;
    let vt = -1, Ie = 0;
    for (; Ie < et; Ie++) {
      const Zt = m.charCodeAt(C + Ie);
      if (Zt !== E.charCodeAt(me + Ie))
        break;
      Zt === Gp && (vt = Ie);
    }
    if (Ie === et)
      if (De > et) {
        if (E.charCodeAt(me + Ie) === Gp)
          return E.slice(me + Ie + 1);
        if (Ie === 0)
          return E.slice(me + Ie);
      } else
        le > et && (m.charCodeAt(C + Ie) === Gp ? vt = Ie : Ie === 0 && (vt = 0));
    let ze = "";
    for (Ie = C + vt + 1; Ie <= U; ++Ie)
      (Ie === U || m.charCodeAt(Ie) === Gp) && (ze += ze.length === 0 ? ".." : "/..");
    return `${ze}${E.slice(me + vt)}`;
  },
  toNamespacedPath(m) {
    return m;
  },
  dirname(m) {
    if (Vf(m, "path"), m.length === 0)
      return ".";
    const E = m.charCodeAt(0) === Gp;
    let C = -1, U = !0;
    for (let le = m.length - 1; le >= 1; --le)
      if (m.charCodeAt(le) === Gp) {
        if (!U) {
          C = le;
          break;
        }
      } else
        U = !1;
    return C === -1 ? E ? "/" : "." : E && C === 1 ? "//" : m.slice(0, C);
  },
  basename(m, E) {
    E !== void 0 && Vf(E, "ext"), Vf(m, "path");
    let C = 0, U = -1, le = !0, me;
    if (E !== void 0 && E.length > 0 && E.length <= m.length) {
      if (E === m)
        return "";
      let De = E.length - 1, et = -1;
      for (me = m.length - 1; me >= 0; --me) {
        const vt = m.charCodeAt(me);
        if (vt === Gp) {
          if (!le) {
            C = me + 1;
            break;
          }
        } else
          et === -1 && (le = !1, et = me + 1), De >= 0 && (vt === E.charCodeAt(De) ? --De === -1 && (U = me) : (De = -1, U = et));
      }
      return C === U ? U = et : U === -1 && (U = m.length), m.slice(C, U);
    }
    for (me = m.length - 1; me >= 0; --me)
      if (m.charCodeAt(me) === Gp) {
        if (!le) {
          C = me + 1;
          break;
        }
      } else
        U === -1 && (le = !1, U = me + 1);
    return U === -1 ? "" : m.slice(C, U);
  },
  extname(m) {
    Vf(m, "path");
    let E = -1, C = 0, U = -1, le = !0, me = 0;
    for (let De = m.length - 1; De >= 0; --De) {
      const et = m.charCodeAt(De);
      if (et === Gp) {
        if (!le) {
          C = De + 1;
          break;
        }
        continue;
      }
      U === -1 && (le = !1, U = De + 1), et === lA ? E === -1 ? E = De : me !== 1 && (me = 1) : E !== -1 && (me = -1);
    }
    return E === -1 || U === -1 || // We saw a non-dot character immediately before the dot
    me === 0 || // The (right-most) trimmed path component is exactly '..'
    me === 1 && E === U - 1 && E === C + 1 ? "" : m.slice(E, U);
  },
  format: KRe.bind(null, "/"),
  parse(m) {
    Vf(m, "path");
    const E = { root: "", dir: "", base: "", ext: "", name: "" };
    if (m.length === 0)
      return E;
    const C = m.charCodeAt(0) === Gp;
    let U;
    C ? (E.root = "/", U = 1) : U = 0;
    let le = -1, me = 0, De = -1, et = !0, vt = m.length - 1, Ie = 0;
    for (; vt >= U; --vt) {
      const ze = m.charCodeAt(vt);
      if (ze === Gp) {
        if (!et) {
          me = vt + 1;
          break;
        }
        continue;
      }
      De === -1 && (et = !1, De = vt + 1), ze === lA ? le === -1 ? le = vt : Ie !== 1 && (Ie = 1) : le !== -1 && (Ie = -1);
    }
    if (De !== -1) {
      const ze = me === 0 && C ? 1 : me;
      le === -1 || // We saw a non-dot character immediately before the dot
      Ie === 0 || // The (right-most) trimmed path component is exactly '..'
      Ie === 1 && le === De - 1 && le === me + 1 ? E.base = E.name = m.slice(ze, De) : (E.name = m.slice(ze, le), E.base = m.slice(ze, De), E.ext = m.slice(le, De));
    }
    return me > 0 ? E.dir = m.slice(0, me - 1) : C && (E.dir = "/"), E;
  },
  sep: "/",
  delimiter: ":",
  win32: null,
  posix: null
};
w_.win32 = s_.win32 = s_;
w_.posix = s_.posix = w_;
ny ? s_.normalize : w_.normalize;
ny ? s_.isAbsolute : w_.isAbsolute;
ny ? s_.join : w_.join;
ny ? s_.resolve : w_.resolve;
ny ? s_.relative : w_.relative;
ny ? s_.dirname : w_.dirname;
ny ? s_.basename : w_.basename;
ny ? s_.extname : w_.extname;
ny ? s_.format : w_.format;
ny ? s_.parse : w_.parse;
ny ? s_.toNamespacedPath : w_.toNamespacedPath;
ny ? s_.sep : w_.sep;
ny ? s_.delimiter : w_.delimiter;
const ult = /^\w[\w\d+.-]*$/, dlt = /^\//, flt = /^\/\//;
function bDe(m, E) {
  if (!m.scheme && E)
    throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${m.authority}", path: "${m.path}", query: "${m.query}", fragment: "${m.fragment}"}`);
  if (m.scheme && !ult.test(m.scheme))
    throw new Error("[UriError]: Scheme contains illegal characters.");
  if (m.path) {
    if (m.authority) {
      if (!dlt.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 (flt.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 _lt(m, E) {
  return !m && !E ? "file" : m;
}
function plt(m, E) {
  switch (m) {
    case "https":
    case "http":
    case "file":
      E ? E[0] !== Yb && (E = Yb + E) : E = Yb;
      break;
  }
  return E;
}
const nd = "", Yb = "/", mlt = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
class $L {
  static isUri(E) {
    return E instanceof $L ? !0 : E ? typeof E.authority == "string" && typeof E.fragment == "string" && typeof E.path == "string" && typeof E.query == "string" && typeof E.scheme == "string" && typeof E.fsPath == "string" && typeof E.with == "function" && typeof E.toString == "function" : !1;
  }
  /**
   * @internal
   */
  constructor(E, C, U, le, me, De = !1) {
    typeof E == "object" ? (this.scheme = E.scheme || nd, this.authority = E.authority || nd, this.path = E.path || nd, this.query = E.query || nd, this.fragment = E.fragment || nd) : (this.scheme = _lt(E, De), this.authority = C || nd, this.path = plt(this.scheme, U || nd), this.query = le || nd, this.fragment = me || nd, bDe(this, De));
  }
  // ---- 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 joe(this, !1);
  }
  // ---- modify to new -------------------------
  with(E) {
    if (!E)
      return this;
    let { scheme: C, authority: U, path: le, query: me, fragment: De } = E;
    return C === void 0 ? C = this.scheme : C === null && (C = nd), U === void 0 ? U = this.authority : U === null && (U = nd), le === void 0 ? le = this.path : le === null && (le = nd), me === void 0 ? me = this.query : me === null && (me = nd), De === void 0 ? De = this.fragment : De === null && (De = nd), C === this.scheme && U === this.authority && le === this.path && me === this.query && De === this.fragment ? this : new zD(C, U, le, me, De);
  }
  // ---- 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(E, C = !1) {
    const U = mlt.exec(E);
    return U ? new zD(U[2] || nd, qV(U[4] || nd), qV(U[5] || nd), qV(U[7] || nd), qV(U[9] || nd), C) : new zD(nd, nd, nd, nd, nd);
  }
  /**
   * 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(E) {
    let C = nd;
    if (T4 && (E = E.replace(/\\/g, Yb)), E[0] === Yb && E[1] === Yb) {
      const U = E.indexOf(Yb, 2);
      U === -1 ? (C = E.substring(2), E = Yb) : (C = E.substring(2, U), E = E.substring(U) || Yb);
    }
    return new zD("file", C, E, nd, nd);
  }
  static from(E) {
    const C = new zD(E.scheme, E.authority, E.path, E.query, E.fragment);
    return bDe(C, !0), 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(E, ...C) {
    if (!E.path)
      throw new Error("[UriError]: cannot call joinPath on URI without path");
    let U;
    return T4 && E.scheme === "file" ? U = $L.file(s_.join(joe(E, !0), ...C)).path : U = w_.join(E.path, ...C), E.with({ path: U });
  }
  // ---- 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(E = !1) {
    return Hoe(this, E);
  }
  toJSON() {
    return this;
  }
  static revive(E) {
    if (E) {
      if (E instanceof $L)
        return E;
      {
        const C = new zD(E);
        return C._formatted = E.external, C._fsPath = E._sep === XRe ? E.fsPath : null, C;
      }
    } else
      return E;
  }
}
const XRe = T4 ? 1 : void 0;
class zD extends $L {
  constructor() {
    super(...arguments), this._formatted = null, this._fsPath = null;
  }
  get fsPath() {
    return this._fsPath || (this._fsPath = joe(this, !1)), this._fsPath;
  }
  toString(E = !1) {
    return E ? Hoe(this, !0) : (this._formatted || (this._formatted = Hoe(this, !1)), this._formatted);
  }
  toJSON() {
    const E = {
      $mid: 1
      /* MarshalledId.Uri */
    };
    return this._fsPath && (E.fsPath = this._fsPath, E._sep = XRe), this._formatted && (E.external = this._formatted), this.path && (E.path = this.path), this.scheme && (E.scheme = this.scheme), this.authority && (E.authority = this.authority), this.query && (E.query = this.query), this.fragment && (E.fragment = this.fragment), E;
  }
}
const YRe = {
  [
    58
    /* CharCode.Colon */
  ]: "%3A",
  [
    47
    /* CharCode.Slash */
  ]: "%2F",
  [
    63
    /* CharCode.QuestionMark */
  ]: "%3F",
  [
    35
    /* CharCode.Hash */
  ]: "%23",
  [
    91
    /* CharCode.OpenSquareBracket */
  ]: "%5B",
  [
    93
    /* CharCode.CloseSquareBracket */
  ]: "%5D",
  [
    64
    /* CharCode.AtSign */
  ]: "%40",
  [
    33
    /* CharCode.ExclamationMark */
  ]: "%21",
  [
    36
    /* CharCode.DollarSign */
  ]: "%24",
  [
    38
    /* CharCode.Ampersand */
  ]: "%26",
  [
    39
    /* CharCode.SingleQuote */
  ]: "%27",
  [
    40
    /* CharCode.OpenParen */
  ]: "%28",
  [
    41
    /* CharCode.CloseParen */
  ]: "%29",
  [
    42
    /* CharCode.Asterisk */
  ]: "%2A",
  [
    43
    /* CharCode.Plus */
  ]: "%2B",
  [
    44
    /* CharCode.Comma */
  ]: "%2C",
  [
    59
    /* CharCode.Semicolon */
  ]: "%3B",
  [
    61
    /* CharCode.Equals */
  ]: "%3D",
  [
    32
    /* CharCode.Space */
  ]: "%20"
};
function EDe(m, E, C) {
  let U, le = -1;
  for (let me = 0; me < m.length; me++) {
    const De = m.charCodeAt(me);
    if (De >= 97 && De <= 122 || De >= 65 && De <= 90 || De >= 48 && De <= 57 || De === 45 || De === 46 || De === 95 || De === 126 || E && De === 47 || C && De === 91 || C && De === 93 || C && De === 58)
      le !== -1 && (U += encodeURIComponent(m.substring(le, me)), le = -1), U !== void 0 && (U += m.charAt(me));
    else {
      U === void 0 && (U = m.substr(0, me));
      const et = YRe[De];
      et !== void 0 ? (le !== -1 && (U += encodeURIComponent(m.substring(le, me)), le = -1), U += et) : le === -1 && (le = me);
    }
  }
  return le !== -1 && (U += encodeURIComponent(m.substring(le))), U !== void 0 ? U : m;
}
function hlt(m) {
  let E;
  for (let C = 0; C < m.length; C++) {
    const U = m.charCodeAt(C);
    U === 35 || U === 63 ? (E === void 0 && (E = m.substr(0, C)), E += YRe[U]) : E !== void 0 && (E += m[C]);
  }
  return E !== void 0 ? E : m;
}
function joe(m, E) {
  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 ? E ? C = m.path.substr(1) : C = m.path[1].toLowerCase() + m.path.substr(2) : C = m.path, T4 && (C = C.replace(/\//g, "\\")), C;
}
function Hoe(m, E) {
  const C = E ? hlt : EDe;
  let U = "", { scheme: le, authority: me, path: De, query: et, fragment: vt } = m;
  if (le && (U += le, U += ":"), (me || le === "file") && (U += Yb, U += Yb), me) {
    let Ie = me.indexOf("@");
    if (Ie !== -1) {
      const ze = me.substr(0, Ie);
      me = me.substr(Ie + 1), Ie = ze.lastIndexOf(":"), Ie === -1 ? U += C(ze, !1, !1) : (U += C(ze.substr(0, Ie), !1, !1), U += ":", U += C(ze.substr(Ie + 1), !1, !0)), U += "@";
    }
    me = me.toLowerCase(), Ie = me.lastIndexOf(":"), Ie === -1 ? U += C(me, !1, !0) : (U += C(me.substr(0, Ie), !1, !0), U += me.substr(Ie));
  }
  if (De) {
    if (De.length >= 3 && De.charCodeAt(0) === 47 && De.charCodeAt(2) === 58) {
      const Ie = De.charCodeAt(1);
      Ie >= 65 && Ie <= 90 && (De = `/${String.fromCharCode(Ie + 32)}:${De.substr(3)}`);
    } else if (De.length >= 2 && De.charCodeAt(1) === 58) {
      const Ie = De.charCodeAt(0);
      Ie >= 65 && Ie <= 90 && (De = `${String.fromCharCode(Ie + 32)}:${De.substr(2)}`);
    }
    U += C(De, !0, !1);
  }
  return et && (U += "?", U += C(et, !1, !1)), vt && (U += "#", U += E ? vt : EDe(vt, !1, !1)), U;
}
function $Re(m) {
  try {
    return decodeURIComponent(m);
  } catch {
    return m.length > 3 ? m.substr(0, 3) + $Re(m.substr(3)) : m;
  }
}
const TDe = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
function qV(m) {
  return m.match(TDe) ? m.replace(TDe, (E) => $Re(E)) : m;
}
class Up {
  constructor(E, C) {
    this.lineNumber = E, this.column = C;
  }
  /**
   * Create a new position from this position.
   *
   * @param newLineNumber new line number
   * @param newColumn new column
   */
  with(E = this.lineNumber, C = this.column) {
    return E === this.lineNumber && C === this.column ? this : new Up(E, C);
  }
  /**
   * Derive a new position from this position.
   *
   * @param deltaLineNumber line number delta
   * @param deltaColumn column delta
   */
  delta(E = 0, C = 0) {
    return this.with(this.lineNumber + E, this.column + C);
  }
  /**
   * Test if this position equals other position
   */
  equals(E) {
    return Up.equals(this, E);
  }
  /**
   * Test if position `a` equals position `b`
   */
  static equals(E, C) {
    return !E && !C ? !0 : !!E && !!C && E.lineNumber === C.lineNumber && E.column === C.column;
  }
  /**
   * Test if this position is before other position.
   * If the two positions are equal, the result will be false.
   */
  isBefore(E) {
    return Up.isBefore(this, E);
  }
  /**
   * Test if position `a` is before position `b`.
   * If the two positions are equal, the result will be false.
   */
  static isBefore(E, C) {
    return E.lineNumber < C.lineNumber ? !0 : C.lineNumber < E.lineNumber ? !1 : E.column < C.column;
  }
  /**
   * Test if this position is before other position.
   * If the two positions are equal, the result will be true.
   */
  isBeforeOrEqual(E) {
    return Up.isBeforeOrEqual(this, E);
  }
  /**
   * Test if position `a` is before position `b`.
   * If the two positions are equal, the result will be true.
   */
  static isBeforeOrEqual(E, C) {
    return E.lineNumber < C.lineNumber ? !0 : C.lineNumber < E.lineNumber ? !1 : E.column <= C.column;
  }
  /**
   * A function that compares positions, useful for sorting
   */
  static compare(E, C) {
    const U = E.lineNumber | 0, le = C.lineNumber | 0;
    if (U === le) {
      const me = E.column | 0, De = C.column | 0;
      return me - De;
    }
    return U - le;
  }
  /**
   * Clone this position.
   */
  clone() {
    return new Up(this.lineNumber, this.column);
  }
  /**
   * Convert to a human-readable representation.
   */
  toString() {
    return "(" + this.lineNumber + "," + this.column + ")";
  }
  // ---
  /**
   * Create a `Position` from an `IPosition`.
   */
  static lift(E) {
    return new Up(E.lineNumber, E.column);
  }
  /**
   * Test if `obj` is an `IPosition`.
   */
  static isIPosition(E) {
    return E && typeof E.lineNumber == "number" && typeof E.column == "number";
  }
}
class vl {
  constructor(E, C, U, le) {
    E > U || E === U && C > le ? (this.startLineNumber = U, this.startColumn = le, this.endLineNumber = E, this.endColumn = C) : (this.startLineNumber = E, this.startColumn = C, this.endLineNumber = U, this.endColumn = le);
  }
  /**
   * Test if this range is empty.
   */
  isEmpty() {
    return vl.isEmpty(this);
  }
  /**
   * Test if `range` is empty.
   */
  static isEmpty(E) {
    return E.startLineNumber === E.endLineNumber && E.startColumn === E.endColumn;
  }
  /**
   * Test if position is in this range. If the position is at the edges, will return true.
   */
  containsPosition(E) {
    return vl.containsPosition(this, E);
  }
  /**
   * Test if `position` is in `range`. If the position is at the edges, will return true.
   */
  static containsPosition(E, C) {
    return !(C.lineNumber < E.startLineNumber || C.lineNumber > E.endLineNumber || C.lineNumber === E.startLineNumber && C.column < E.startColumn || C.lineNumber === E.endLineNumber && C.column > E.endColumn);
  }
  /**
   * Test if `position` is in `range`. If the position is at the edges, will return false.
   * @internal
   */
  static strictContainsPosition(E, C) {
    return !(C.lineNumber < E.startLineNumber || C.lineNumber > E.endLineNumber || C.lineNumber === E.startLineNumber && C.column <= E.startColumn || C.lineNumber === E.endLineNumber && C.column >= E.endColumn);
  }
  /**
   * Test if range is in this range. If the range is equal to this range, will return true.
   */
  containsRange(E) {
    return vl.containsRange(this, E);
  }
  /**
   * Test if `otherRange` is in `range`. If the ranges are equal, will return true.
   */
  static containsRange(E, C) {
    return !(C.startLineNumber < E.startLineNumber || C.endLineNumber < E.startLineNumber || C.startLineNumber > E.endLineNumber || C.endLineNumber > E.endLineNumber || C.startLineNumber === E.startLineNumber && C.startColumn < E.startColumn || C.endLineNumber === E.endLineNumber && C.endColumn > E.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(E) {
    return vl.strictContainsRange(this, E);
  }
  /**
   * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.
   */
  static strictContainsRange(E, C) {
    return !(C.startLineNumber < E.startLineNumber || C.endLineNumber < E.startLineNumber || C.startLineNumber > E.endLineNumber || C.endLineNumber > E.endLineNumber || C.startLineNumber === E.startLineNumber && C.startColumn <= E.startColumn || C.endLineNumber === E.endLineNumber && C.endColumn >= E.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(E) {
    return vl.plusRange(this, E);
  }
  /**
   * 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(E, C) {
    let U, le, me, De;
    return C.startLineNumber < E.startLineNumber ? (U = C.startLineNumber, le = C.startColumn) : C.startLineNumber === E.startLineNumber ? (U = C.startLineNumber, le = Math.min(C.startColumn, E.startColumn)) : (U = E.startLineNumber, le = E.startColumn), C.endLineNumber > E.endLineNumber ? (me = C.endLineNumber, De = C.endColumn) : C.endLineNumber === E.endLineNumber ? (me = C.endLineNumber, De = Math.max(C.endColumn, E.endColumn)) : (me = E.endLineNumber, De = E.endColumn), new vl(U, le, me, De);
  }
  /**
   * A intersection of the two ranges.
   */
  intersectRanges(E) {
    return vl.intersectRanges(this, E);
  }
  /**
   * A intersection of the two ranges.
   */
  static intersectRanges(E, C) {
    let U = E.startLineNumber, le = E.startColumn, me = E.endLineNumber, De = E.endColumn;
    const et = C.startLineNumber, vt = C.startColumn, Ie = C.endLineNumber, ze = C.endColumn;
    return U < et ? (U = et, le = vt) : U === et && (le = Math.max(le, vt)), me > Ie ? (me = Ie, De = ze) : me === Ie && (De = Math.min(De, ze)), U > me || U === me && le > De ? null : new vl(U, le, me, De);
  }
  /**
   * Test if this range equals other.
   */
  equalsRange(E) {
    return vl.equalsRange(this, E);
  }
  /**
   * Test if range `a` equals `b`.
   */
  static equalsRange(E, C) {
    return !E && !C ? !0 : !!E && !!C && E.startLineNumber === C.startLineNumber && E.startColumn === C.startColumn && E.endLineNumber === C.endLineNumber && E.endColumn === C.endColumn;
  }
  /**
   * Return the end position (which will be after or equal to the start position)
   */
  getEndPosition() {
    return vl.getEndPosition(this);
  }
  /**
   * Return the end position (which will be after or equal to the start position)
   */
  static getEndPosition(E) {
    return new Up(E.endLineNumber, E.endColumn);
  }
  /**
   * Return the start position (which will be before or equal to the end position)
   */
  getStartPosition() {
    return vl.getStartPosition(this);
  }
  /**
   * Return the start position (which will be before or equal to the end position)
   */
  static getStartPosition(E) {
    return new Up(E.startLineNumber, E.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(E, C) {
    return new vl(this.startLineNumber, this.startColumn, E, C);
  }
  /**
   * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.
   */
  setStartPosition(E, C) {
    return new vl(E, C, this.endLineNumber, this.endColumn);
  }
  /**
   * Create a new empty range using this range's start position.
   */
  collapseToStart() {
    return vl.collapseToStart(this);
  }
  /**
   * Create a new empty range using this range's start position.
   */
  static collapseToStart(E) {
    return new vl(E.startLineNumber, E.startColumn, E.startLineNumber, E.startColumn);
  }
  /**
   * Create a new empty range using this range's end position.
   */
  collapseToEnd() {
    return vl.collapseToEnd(this);
  }
  /**
   * Create a new empty range using this range's end position.
   */
  static collapseToEnd(E) {
    return new vl(E.endLineNumber, E.endColumn, E.endLineNumber, E.endColumn);
  }
  /**
   * Moves the range by the given amount of lines.
   */
  delta(E) {
    return new vl(this.startLineNumber + E, this.startColumn, this.endLineNumber + E, this.endColumn);
  }
  // ---
  static fromPositions(E, C = E) {
    return new vl(E.lineNumber, E.column, C.lineNumber, C.column);
  }
  static lift(E) {
    return E ? new vl(E.startLineNumber, E.startColumn, E.endLineNumber, E.endColumn) : null;
  }
  /**
   * Test if `obj` is an `IRange`.
   */
  static isIRange(E) {
    return E && typeof E.startLineNumber == "number" && typeof E.startColumn == "number" && typeof E.endLineNumber == "number" && typeof E.endColumn == "number";
  }
  /**
   * Test if the two ranges are touching in any way.
   */
  static areIntersectingOrTouching(E, C) {
    return !(E.endLineNumber < C.startLineNumber || E.endLineNumber === C.startLineNumber && E.endColumn < C.startColumn || C.endLineNumber < E.startLineNumber || C.endLineNumber === E.startLineNumber && C.endColumn < E.startColumn);
  }
  /**
   * Test if the two ranges are intersecting. If the ranges are touching it returns true.
   */
  static areIntersecting(E, C) {
    return !(E.endLineNumber < C.startLineNumber || E.endLineNumber === C.startLineNumber && E.endColumn <= C.startColumn || C.endLineNumber < E.startLineNumber || C.endLineNumber === E.startLineNumber && C.endColumn <= E.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(E, C) {
    if (E && C) {
      const me = E.startLineNumber | 0, De = C.startLineNumber | 0;
      if (me === De) {
        const et = E.startColumn | 0, vt = C.startColumn | 0;
        if (et === vt) {
          const Ie = E.endLineNumber | 0, ze = C.endLineNumber | 0;
          if (Ie === ze) {
            const Zt = E.endColumn | 0, sn = C.endColumn | 0;
            return Zt - sn;
          }
          return Ie - ze;
        }
        return et - vt;
      }
      return me - De;
    }
    return (E ? 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(E, C) {
    return E.endLineNumber === C.endLineNumber ? E.endColumn === C.endColumn ? E.startLineNumber === C.startLineNumber ? E.startColumn - C.startColumn : E.startLineNumber - C.startLineNumber : E.endColumn - C.endColumn : E.endLineNumber - C.endLineNumber;
  }
  /**
   * Test if the range spans multiple lines.
   */
  static spansMultipleLines(E) {
    return E.endLineNumber > E.startLineNumber;
  }
  toJSON() {
    return this;
  }
}
globalThis && globalThis.__awaiter;
var SDe;
(function(m) {
  function E(le) {
    return le < 0;
  }
  m.isLessThan = E;
  function C(le) {
    return le > 0;
  }
  m.isGreaterThan = C;
  function U(le) {
    return le === 0;
  }
  m.isNeitherLessOrGreaterThan = U, m.greaterThan = 1, m.lessThan = -1, m.neitherLessOrGreaterThan = 0;
})(SDe || (SDe = {}));
function xDe(m) {
  return m < 0 ? 0 : m > 255 ? 255 : m | 0;
}
function qD(m) {
  return m < 0 ? 0 : m > 4294967295 ? 4294967295 : m | 0;
}
class glt {
  constructor(E) {
    this.values = E, this.prefixSum = new Uint32Array(E.length), this.prefixSumValidIndex = new Int32Array(1), this.prefixSumValidIndex[0] = -1;
  }
  getCount() {
    return this.values.length;
  }
  insertValues(E, C) {
    E = qD(E);
    const U = this.values, le = this.prefixSum, me = C.length;
    return me === 0 ? !1 : (this.values = new Uint32Array(U.length + me), this.values.set(U.subarray(0, E), 0), this.values.set(U.subarray(E), E + me), this.values.set(C, E), E - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = E - 1), this.prefixSum = new Uint32Array(this.values.length), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(le.subarray(0, this.prefixSumValidIndex[0] + 1)), !0);
  }
  setValue(E, C) {
    return E = qD(E), C = qD(C), this.values[E] === C ? !1 : (this.values[E] = C, E - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = E - 1), !0);
  }
  removeValues(E, C) {
    E = qD(E), C = qD(C);
    const U = this.values, le = this.prefixSum;
    if (E >= U.length)
      return !1;
    const me = U.length - E;
    return C >= me && (C = me), C === 0 ? !1 : (this.values = new Uint32Array(U.length - C), this.values.set(U.subarray(0, E), 0), this.values.set(U.subarray(E + C), E), this.prefixSum = new Uint32Array(this.values.length), E - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = E - 1), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(le.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(E) {
    return E < 0 ? 0 : (E = qD(E), this._getPrefixSum(E));
  }
  _getPrefixSum(E) {
    if (E <= this.prefixSumValidIndex[0])
      return this.prefixSum[E];
    let C = this.prefixSumValidIndex[0] + 1;
    C === 0 && (this.prefixSum[0] = this.values[0], C++), E >= this.values.length && (E = this.values.length - 1);
    for (let U = C; U <= E; U++)
      this.prefixSum[U] = this.prefixSum[U - 1] + this.values[U];
    return this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], E), this.prefixSum[E];
  }
  getIndexOf(E) {
    E = Math.floor(E), this.getTotalSum();
    let C = 0, U = this.values.length - 1, le = 0, me = 0, De = 0;
    for (; C <= U; )
      if (le = C + (U - C) / 2 | 0, me = this.prefixSum[le], De = me - this.values[le], E < De)
        U = le - 1;
      else if (E >= me)
        C = le + 1;
      else
        break;
    return new ylt(le, E - De);
  }
}
class ylt {
  constructor(E, C) {
    this.index = E, this.remainder = C, this._prefixSumIndexOfResultBrand = void 0, this.index = E, this.remainder = C;
  }
}
class vlt {
  constructor(E, C, U, le) {
    this._uri = E, this._lines = C, this._eol = U, this._versionId = le, 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(E) {
    E.eol && E.eol !== this._eol && (this._eol = E.eol, this._lineStarts = null);
    const C = E.changes;
    for (const U of C)
      this._acceptDeleteRange(U.range), this._acceptInsertText(new Up(U.range.startLineNumber, U.range.startColumn), U.text);
    this._versionId = E.versionId, this._cachedTextValue = null;
  }
  _ensureLineStarts() {
    if (!this._lineStarts) {
      const E = this._eol.length, C = this._lines.length, U = new Uint32Array(C);
      for (let le = 0; le < C; le++)
        U[le] = this._lines[le].length + E;
      this._lineStarts = new glt(U);
    }
  }
  /**
   * All changes to a line's text go through this method
   */
  _setLineText(E, C) {
    this._lines[E] = C, this._lineStarts && this._lineStarts.setValue(E, this._lines[E].length + this._eol.length);
  }
  _acceptDeleteRange(E) {
    if (E.startLineNumber === E.endLineNumber) {
      if (E.startColumn === E.endColumn)
        return;
      this._setLineText(E.startLineNumber - 1, this._lines[E.startLineNumber - 1].substring(0, E.startColumn - 1) + this._lines[E.startLineNumber - 1].substring(E.endColumn - 1));
      return;
    }
    this._setLineText(E.startLineNumber - 1, this._lines[E.startLineNumber - 1].substring(0, E.startColumn - 1) + this._lines[E.endLineNumber - 1].substring(E.endColumn - 1)), this._lines.splice(E.startLineNumber, E.endLineNumber - E.startLineNumber), this._lineStarts && this._lineStarts.removeValues(E.startLineNumber, E.endLineNumber - E.startLineNumber);
  }
  _acceptInsertText(E, C) {
    if (C.length === 0)
      return;
    const U = Fct(C);
    if (U.length === 1) {
      this._setLineText(E.lineNumber - 1, this._lines[E.lineNumber - 1].substring(0, E.column - 1) + U[0] + this._lines[E.lineNumber - 1].substring(E.column - 1));
      return;
    }
    U[U.length - 1] += this._lines[E.lineNumber - 1].substring(E.column - 1), this._setLineText(E.lineNumber - 1, this._lines[E.lineNumber - 1].substring(0, E.column - 1) + U[0]);
    const le = new Uint32Array(U.length - 1);
    for (let me = 1; me < U.length; me++)
      this._lines.splice(E.lineNumber + me - 1, 0, U[me]), le[me - 1] = U[me].length + this._eol.length;
    this._lineStarts && this._lineStarts.insertValues(E.lineNumber, le);
  }
}
const blt = "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";
function Elt(m = "") {
  let E = "(-?\\d*\\.\\d\\w*)|([^";
  for (const C of blt)
    m.indexOf(C) >= 0 || (E += "\\" + C);
  return E += "\\s]+)", new RegExp(E, "g");
}
const QRe = Elt();
function Tlt(m) {
  let E = QRe;
  if (m && m instanceof RegExp)
    if (m.global)
      E = m;
    else {
      let C = "g";
      m.ignoreCase && (C += "i"), m.multiline && (C += "m"), m.unicode && (C += "u"), E = new RegExp(m.source, C);
    }
  return E.lastIndex = 0, E;
}
const ZRe = new ZV();
ZRe.unshift({
  maxLen: 1e3,
  windowSize: 15,
  timeBudget: 150
});
function nse(m, E, C, U, le) {
  if (le || (le = $V.first(ZRe)), C.length > le.maxLen) {
    let Ie = m - le.maxLen / 2;
    return Ie < 0 ? Ie = 0 : U += Ie, C = C.substring(Ie, m + le.maxLen / 2), nse(m, E, C, U, le);
  }
  const me = Date.now(), De = m - 1 - U;
  let et = -1, vt = null;
  for (let Ie = 1; !(Date.now() - me >= le.timeBudget); Ie++) {
    const ze = De - le.windowSize * Ie;
    E.lastIndex = Math.max(0, ze);
    const Zt = Slt(E, C, De, et);
    if (!Zt && vt || (vt = Zt, ze <= 0))
      break;
    et = ze;
  }
  if (vt) {
    const Ie = {
      word: vt[0],
      startColumn: U + 1 + vt.index,
      endColumn: U + 1 + vt.index + vt[0].length
    };
    return E.lastIndex = 0, Ie;
  }
  return null;
}
function Slt(m, E, C, U) {
  let le;
  for (; le = m.exec(E); ) {
    const me = le.index || 0;
    if (me <= C && m.lastIndex >= C)
      return le;
    if (U > 0 && me > U)
      return null;
  }
  return null;
}
class rse {
  constructor(E) {
    const C = xDe(E);
    this._defaultValue = C, this._asciiMap = rse._createAsciiMap(C), this._map = /* @__PURE__ */ new Map();
  }
  static _createAsciiMap(E) {
    const C = new Uint8Array(256);
    return C.fill(E), C;
  }
  set(E, C) {
    const U = xDe(C);
    E >= 0 && E < 256 ? this._asciiMap[E] = U : this._map.set(E, U);
  }
  get(E) {
    return E >= 0 && E < 256 ? this._asciiMap[E] : this._map.get(E) || this._defaultValue;
  }
  clear() {
    this._asciiMap.fill(this._defaultValue), this._map.clear();
  }
}
class xlt {
  constructor(E, C, U) {
    const le = new Uint8Array(E * C);
    for (let me = 0, De = E * C; me < De; me++)
      le[me] = U;
    this._data = le, this.rows = E, this.cols = C;
  }
  get(E, C) {
    return this._data[E * this.cols + C];
  }
  set(E, C, U) {
    this._data[E * this.cols + C] = U;
  }
}
class Alt {
  constructor(E) {
    let C = 0, U = 0;
    for (let me = 0, De = E.length; me < De; me++) {
      const [et, vt, Ie] = E[me];
      vt > C && (C = vt), et > U && (U = et), Ie > U && (U = Ie);
    }
    C++, U++;
    const le = new xlt(
      U,
      C,
      0
      /* State.Invalid */
    );
    for (let me = 0, De = E.length; me < De; me++) {
      const [et, vt, Ie] = E[me];
      le.set(et, vt, Ie);
    }
    this._states = le, this._maxCharCode = C;
  }
  nextState(E, C) {
    return C < 0 || C >= this._maxCharCode ? 0 : this._states.get(E, C);
  }
}
let Doe = null;
function Clt() {
  return Doe === null && (Doe = new Alt([
    [
      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 */
    ]
  ])), Doe;
}
let y4 = null;
function Llt() {
  if (y4 === null) {
    y4 = new rse(
      0
      /* CharacterClass.None */
    );
    const m = ` 	<>'"、。｡､，．：；‘〈「『〔（［｛｢｣｝］）〕』」〉’｀～…`;
    for (let C = 0; C < m.length; C++)
      y4.set(
        m.charCodeAt(C),
        1
        /* CharacterClass.ForceTermination */
      );
    const E = ".,;:";
    for (let C = 0; C < E.length; C++)
      y4.set(
        E.charCodeAt(C),
        2
        /* CharacterClass.CannotEndIn */
      );
  }
  return y4;
}
class rj {
  static _createLink(E, C, U, le, me) {
    let De = me - 1;
    do {
      const et = C.charCodeAt(De);
      if (E.get(et) !== 2)
        break;
      De--;
    } while (De > le);
    if (le > 0) {
      const et = C.charCodeAt(le - 1), vt = C.charCodeAt(De);
      (et === 40 && vt === 41 || et === 91 && vt === 93 || et === 123 && vt === 125) && De--;
    }
    return {
      range: {
        startLineNumber: U,
        startColumn: le + 1,
        endLineNumber: U,
        endColumn: De + 2
      },
      url: C.substring(le, De + 1)
    };
  }
  static computeLinks(E, C = Clt()) {
    const U = Llt(), le = [];
    for (let me = 1, De = E.getLineCount(); me <= De; me++) {
      const et = E.getLineContent(me), vt = et.length;
      let Ie = 0, ze = 0, Zt = 0, sn = 1, Hn = !1, ri = !1, gi = !1, Wa = !1;
      for (; Ie < vt; ) {
        let Rn = !1;
        const cn = et.charCodeAt(Ie);
        if (sn === 13) {
          let $i;
          switch (cn) {
            case 40:
              Hn = !0, $i = 0;
              break;
            case 41:
              $i = Hn ? 0 : 1;
              break;
            case 91:
              gi = !0, ri = !0, $i = 0;
              break;
            case 93:
              gi = !1, $i = ri ? 0 : 1;
              break;
            case 123:
              Wa = !0, $i = 0;
              break;
            case 125:
              $i = Wa ? 0 : 1;
              break;
            case 39:
            case 34:
            case 96:
              Zt === cn ? $i = 1 : Zt === 39 || Zt === 34 || Zt === 96 ? $i = 0 : $i = 1;
              break;
            case 42:
              $i = Zt === 42 ? 1 : 0;
              break;
            case 124:
              $i = Zt === 124 ? 1 : 0;
              break;
            case 32:
              $i = gi ? 0 : 1;
              break;
            default:
              $i = U.get(cn);
          }
          $i === 1 && (le.push(rj._createLink(U, et, me, ze, Ie)), Rn = !0);
        } else if (sn === 12) {
          let $i;
          cn === 91 ? (ri = !0, $i = 0) : $i = U.get(cn), $i === 1 ? Rn = !0 : sn = 13;
        } else
          sn = C.nextState(sn, cn), sn === 0 && (Rn = !0);
        Rn && (sn = 1, Hn = !1, ri = !1, Wa = !1, ze = Ie + 1, Zt = cn), Ie++;
      }
      sn === 13 && le.push(rj._createLink(U, et, me, ze, vt));
    }
    return le;
  }
}
function Ilt(m) {
  return !m || typeof m.getLineCount != "function" || typeof m.getLineContent != "function" ? [] : rj.computeLinks(m);
}
class Woe {
  constructor() {
    this._defaultValueSet = [
      ["true", "false"],
      ["True", "False"],
      ["Private", "Public", "Friend", "ReadOnly", "Partial", "Protected", "WriteOnly"],
      ["public", "protected", "private"]
    ];
  }
  navigateValueSet(E, C, U, le, me) {
    if (E && C) {
      const De = this.doNavigateValueSet(C, me);
      if (De)
        return {
          range: E,
          value: De
        };
    }
    if (U && le) {
      const De = this.doNavigateValueSet(le, me);
      if (De)
        return {
          range: U,
          value: De
        };
    }
    return null;
  }
  doNavigateValueSet(E, C) {
    const U = this.numberReplace(E, C);
    return U !== null ? U : this.textReplace(E, C);
  }
  numberReplace(E, C) {
    const U = Math.pow(10, E.length - (E.lastIndexOf(".") + 1));
    let le = Number(E);
    const me = parseFloat(E);
    return !isNaN(le) && !isNaN(me) && le === me ? le === 0 && !C ? null : (le = Math.floor(le * U), le += C ? U : -U, String(le / U)) : null;
  }
  textReplace(E, C) {
    return this.valueSetsReplace(this._defaultValueSet, E, C);
  }
  valueSetsReplace(E, C, U) {
    let le = null;
    for (let me = 0, De = E.length; le === null && me < De; me++)
      le = this.valueSetReplace(E[me], C, U);
    return le;
  }
  valueSetReplace(E, C, U) {
    let le = E.indexOf(C);
    return le >= 0 ? (le += U ? 1 : -1, le < 0 ? le = E.length - 1 : le %= E.length, E[le]) : null;
  }
}
Woe.INSTANCE = new Woe();
class ise {
  constructor() {
    this._keyCodeToStr = [], this._strToKeyCode = /* @__PURE__ */ Object.create(null);
  }
  define(E, C) {
    this._keyCodeToStr[E] = C, this._strToKeyCode[C.toLowerCase()] = E;
  }
  keyCodeToStr(E) {
    return this._keyCodeToStr[E];
  }
  strToKeyCode(E) {
    return this._strToKeyCode[E.toLowerCase()] || 0;
  }
}
const XV = new ise(), zoe = new ise(), qoe = new ise(), klt = new Array(230), wlt = /* @__PURE__ */ Object.create(null), Dlt = /* @__PURE__ */ Object.create(null);
(function() {
  const m = "", E = [
    // 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],
    [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", 0, "VK_F20", m, m],
    [1, 118, "F21", 79, "F21", 0, "VK_F21", m, m],
    [1, 119, "F22", 80, "F22", 0, "VK_F22", m, m],
    [1, 120, "F23", 81, "F23", 0, "VK_F23", m, m],
    [1, 121, "F24", 82, "F24", 0, "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 = [], U = [];
  for (const le of E) {
    const [me, De, et, vt, Ie, ze, Zt, sn, Hn] = le;
    if (U[De] || (U[De] = !0, wlt[et] = De, Dlt[et.toLowerCase()] = De), !C[vt]) {
      if (C[vt] = !0, !Ie)
        throw new Error(`String representation missing for key code ${vt} around scan code ${et}`);
      XV.define(vt, Ie), zoe.define(vt, sn || Ie), qoe.define(vt, Hn || sn || Ie);
    }
    ze && (klt[ze] = vt);
  }
})();
var ADe;
(function(m) {
  function E(et) {
    return XV.keyCodeToStr(et);
  }
  m.toString = E;
  function C(et) {
    return XV.strToKeyCode(et);
  }
  m.fromString = C;
  function U(et) {
    return zoe.keyCodeToStr(et);
  }
  m.toUserSettingsUS = U;
  function le(et) {
    return qoe.keyCodeToStr(et);
  }
  m.toUserSettingsGeneral = le;
  function me(et) {
    return zoe.strToKeyCode(et) || qoe.strToKeyCode(et);
  }
  m.fromUserSettings = me;
  function De(et) {
    if (et >= 98 && et <= 113)
      return null;
    switch (et) {
      case 16:
        return "Up";
      case 18:
        return "Down";
      case 15:
        return "Left";
      case 17:
        return "Right";
    }
    return XV.keyCodeToStr(et);
  }
  m.toElectronAccelerator = De;
})(ADe || (ADe = {}));
function Rlt(m, E) {
  const C = (E & 65535) << 16 >>> 0;
  return (m | C) >>> 0;
}
class fv extends vl {
  constructor(E, C, U, le) {
    super(E, C, U, le), this.selectionStartLineNumber = E, this.selectionStartColumn = C, this.positionLineNumber = U, this.positionColumn = le;
  }
  /**
   * Transform to a human-readable representation.
   */
  toString() {
    return "[" + this.selectionStartLineNumber + "," + this.selectionStartColumn + " -> " + this.positionLineNumber + "," + this.positionColumn + "]";
  }
  /**
   * Test if equals other selection.
   */
  equalsSelection(E) {
    return fv.selectionsEqual(this, E);
  }
  /**
   * Test if the two selections are equal.
   */
  static selectionsEqual(E, C) {
    return E.selectionStartLineNumber === C.selectionStartLineNumber && E.selectionStartColumn === C.selectionStartColumn && E.positionLineNumber === C.positionLineNumber && E.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(E, C) {
    return this.getDirection() === 0 ? new fv(this.startLineNumber, this.startColumn, E, C) : new fv(E, C, this.startLineNumber, this.startColumn);
  }
  /**
   * Get the position at `positionLineNumber` and `positionColumn`.
   */
  getPosition() {
    return new Up(this.positionLineNumber, this.positionColumn);
  }
  /**
   * Get the position at the start of the selection.
  */
  getSelectionStart() {
    return new Up(this.selectionStartLineNumber, this.selectionStartColumn);
  }
  /**
   * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.
   */
  setStartPosition(E, C) {
    return this.getDirection() === 0 ? new fv(E, C, this.endLineNumber, this.endColumn) : new fv(this.endLineNumber, this.endColumn, E, C);
  }
  // ----
  /**
   * Create a `Selection` from one or two positions
   */
  static fromPositions(E, C = E) {
    return new fv(E.lineNumber, E.column, C.lineNumber, C.column);
  }
  /**
   * Creates a `Selection` from a range, given a direction.
   */
  static fromRange(E, C) {
    return C === 0 ? new fv(E.startLineNumber, E.startColumn, E.endLineNumber, E.endColumn) : new fv(E.endLineNumber, E.endColumn, E.startLineNumber, E.startColumn);
  }
  /**
   * Create a `Selection` from an `ISelection`.
   */
  static liftSelection(E) {
    return new fv(E.selectionStartLineNumber, E.selectionStartColumn, E.positionLineNumber, E.positionColumn);
  }
  /**
   * `a` equals `b`.
   */
  static selectionsArrEqual(E, C) {
    if (E && !C || !E && C)
      return !1;
    if (!E && !C)
      return !0;
    if (E.length !== C.length)
      return !1;
    for (let U = 0, le = E.length; U < le; U++)
      if (!this.selectionsEqual(E[U], C[U]))
        return !1;
    return !0;
  }
  /**
   * Test if `obj` is an `ISelection`.
   */
  static isISelection(E) {
    return E && typeof E.selectionStartLineNumber == "number" && typeof E.selectionStartColumn == "number" && typeof E.positionLineNumber == "number" && typeof E.positionColumn == "number";
  }
  /**
   * Create with a direction.
   */
  static createWithDirection(E, C, U, le, me) {
    return me === 0 ? new fv(E, C, U, le) : new fv(U, le, E, C);
  }
}
const CDe = /* @__PURE__ */ Object.create(null);
function Ae(m, E) {
  if (Dct(E)) {
    const C = CDe[E];
    if (C === void 0)
      throw new Error(`${m} references an unknown codicon: ${E}`);
    E = C;
  }
  return CDe[m] = E, { id: m };
}
const ps = {
  // 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),
  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),
  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),
  groupByRefType: Ae("group-by-ref-type", 60311),
  ungroupByRefType: Ae("ungroup-by-ref-type", 60312),
  account: Ae("account", 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),
  // 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"),
  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")
};
var Joe = globalThis && globalThis.__awaiter || function(m, E, C, U) {
  function le(me) {
    return me instanceof C ? me : new C(function(De) {
      De(me);
    });
  }
  return new (C || (C = Promise))(function(me, De) {
    function et(ze) {
      try {
        Ie(U.next(ze));
      } catch (Zt) {
        De(Zt);
      }
    }
    function vt(ze) {
      try {
        Ie(U.throw(ze));
      } catch (Zt) {
        De(Zt);
      }
    }
    function Ie(ze) {
      ze.done ? me(ze.value) : le(ze.value).then(et, vt);
    }
    Ie((U = U.apply(m, E || [])).next());
  });
};
class Nlt {
  constructor() {
    this._tokenizationSupports = /* @__PURE__ */ new Map(), this._factories = /* @__PURE__ */ new Map(), this._onDidChange = new JE(), this.onDidChange = this._onDidChange.event, this._colorMap = null;
  }
  handleChange(E) {
    this._onDidChange.fire({
      changedLanguages: E,
      changedColorMap: !1
    });
  }
  register(E, C) {
    return this._tokenizationSupports.set(E, C), this.handleChange([E]), QV(() => {
      this._tokenizationSupports.get(E) === C && (this._tokenizationSupports.delete(E), this.handleChange([E]));
    });
  }
  get(E) {
    return this._tokenizationSupports.get(E) || null;
  }
  registerFactory(E, C) {
    var U;
    (U = this._factories.get(E)) === null || U === void 0 || U.dispose();
    const le = new Olt(this, E, C);
    return this._factories.set(E, le), QV(() => {
      const me = this._factories.get(E);
      !me || me !== le || (this._factories.delete(E), me.dispose());
    });
  }
  getOrCreate(E) {
    return Joe(this, void 0, void 0, function* () {
      const C = this.get(E);
      if (C)
        return C;
      const U = this._factories.get(E);
      return !U || U.isResolved ? null : (yield U.resolve(), this.get(E));
    });
  }
  isResolved(E) {
    if (this.get(E))
      return !0;
    const U = this._factories.get(E);
    return !!(!U || U.isResolved);
  }
  setColorMap(E) {
    this._colorMap = E, 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 Olt extends aj {
  get isResolved() {
    return this._isResolved;
  }
  constructor(E, C, U) {
    super(), this._registry = E, this._languageId = C, this._factory = U, this._isDisposed = !1, this._resolvePromise = null, this._isResolved = !1;
  }
  dispose() {
    this._isDisposed = !0, super.dispose();
  }
  resolve() {
    return Joe(this, void 0, void 0, function* () {
      return this._resolvePromise || (this._resolvePromise = this._create()), this._resolvePromise;
    });
  }
  _create() {
    return Joe(this, void 0, void 0, function* () {
      const E = yield this._factory.tokenizationSupport;
      this._isResolved = !0, E && !this._isDisposed && this._register(this._registry.register(this._languageId, E));
    });
  }
}
class Plt {
  constructor(E, C, U) {
    this.offset = E, this.type = C, this.language = U, this._tokenBrand = void 0;
  }
  toString() {
    return "(" + this.offset + ", " + this.type + ")";
  }
}
var LDe;
(function(m) {
  const E = /* @__PURE__ */ new Map();
  E.set(0, ps.symbolMethod), E.set(1, ps.symbolFunction), E.set(2, ps.symbolConstructor), E.set(3, ps.symbolField), E.set(4, ps.symbolVariable), E.set(5, ps.symbolClass), E.set(6, ps.symbolStruct), E.set(7, ps.symbolInterface), E.set(8, ps.symbolModule), E.set(9, ps.symbolProperty), E.set(10, ps.symbolEvent), E.set(11, ps.symbolOperator), E.set(12, ps.symbolUnit), E.set(13, ps.symbolValue), E.set(15, ps.symbolEnum), E.set(14, ps.symbolConstant), E.set(15, ps.symbolEnum), E.set(16, ps.symbolEnumMember), E.set(17, ps.symbolKeyword), E.set(27, ps.symbolSnippet), E.set(18, ps.symbolText), E.set(19, ps.symbolColor), E.set(20, ps.symbolFile), E.set(21, ps.symbolReference), E.set(22, ps.symbolCustomColor), E.set(23, ps.symbolFolder), E.set(24, ps.symbolTypeParameter), E.set(25, ps.account), E.set(26, ps.issues);
  function C(me) {
    let De = E.get(me);
    return De || (console.info("No codicon found for CompletionItemKind " + me), De = ps.symbolProperty), De;
  }
  m.toIcon = C;
  const U = /* @__PURE__ */ new Map();
  U.set(
    "method",
    0
    /* CompletionItemKind.Method */
  ), U.set(
    "function",
    1
    /* CompletionItemKind.Function */
  ), U.set(
    "constructor",
    2
    /* CompletionItemKind.Constructor */
  ), U.set(
    "field",
    3
    /* CompletionItemKind.Field */
  ), U.set(
    "variable",
    4
    /* CompletionItemKind.Variable */
  ), U.set(
    "class",
    5
    /* CompletionItemKind.Class */
  ), U.set(
    "struct",
    6
    /* CompletionItemKind.Struct */
  ), U.set(
    "interface",
    7
    /* CompletionItemKind.Interface */
  ), U.set(
    "module",
    8
    /* CompletionItemKind.Module */
  ), U.set(
    "property",
    9
    /* CompletionItemKind.Property */
  ), U.set(
    "event",
    10
    /* CompletionItemKind.Event */
  ), U.set(
    "operator",
    11
    /* CompletionItemKind.Operator */
  ), U.set(
    "unit",
    12
    /* CompletionItemKind.Unit */
  ), U.set(
    "value",
    13
    /* CompletionItemKind.Value */
  ), U.set(
    "constant",
    14
    /* CompletionItemKind.Constant */
  ), U.set(
    "enum",
    15
    /* CompletionItemKind.Enum */
  ), U.set(
    "enum-member",
    16
    /* CompletionItemKind.EnumMember */
  ), U.set(
    "enumMember",
    16
    /* CompletionItemKind.EnumMember */
  ), U.set(
    "keyword",
    17
    /* CompletionItemKind.Keyword */
  ), U.set(
    "snippet",
    27
    /* CompletionItemKind.Snippet */
  ), U.set(
    "text",
    18
    /* CompletionItemKind.Text */
  ), U.set(
    "color",
    19
    /* CompletionItemKind.Color */
  ), U.set(
    "file",
    20
    /* CompletionItemKind.File */
  ), U.set(
    "reference",
    21
    /* CompletionItemKind.Reference */
  ), U.set(
    "customcolor",
    22
    /* CompletionItemKind.Customcolor */
  ), U.set(
    "folder",
    23
    /* CompletionItemKind.Folder */
  ), U.set(
    "type-parameter",
    24
    /* CompletionItemKind.TypeParameter */
  ), U.set(
    "typeParameter",
    24
    /* CompletionItemKind.TypeParameter */
  ), U.set(
    "account",
    25
    /* CompletionItemKind.User */
  ), U.set(
    "issue",
    26
    /* CompletionItemKind.Issue */
  );
  function le(me, De) {
    let et = U.get(me);
    return typeof et > "u" && !De && (et = 9), et;
  }
  m.fromString = le;
})(LDe || (LDe = {}));
var IDe;
(function(m) {
  m[m.Automatic = 0] = "Automatic", m[m.Explicit = 1] = "Explicit";
})(IDe || (IDe = {}));
var kDe;
(function(m) {
  m[m.Invoke = 1] = "Invoke", m[m.TriggerCharacter = 2] = "TriggerCharacter", m[m.ContentChange = 3] = "ContentChange";
})(kDe || (kDe = {}));
var wDe;
(function(m) {
  m[m.Text = 0] = "Text", m[m.Read = 1] = "Read", m[m.Write = 2] = "Write";
})(wDe || (wDe = {}));
var DDe;
(function(m) {
  const E = /* @__PURE__ */ new Map();
  E.set(0, ps.symbolFile), E.set(1, ps.symbolModule), E.set(2, ps.symbolNamespace), E.set(3, ps.symbolPackage), E.set(4, ps.symbolClass), E.set(5, ps.symbolMethod), E.set(6, ps.symbolProperty), E.set(7, ps.symbolField), E.set(8, ps.symbolConstructor), E.set(9, ps.symbolEnum), E.set(10, ps.symbolInterface), E.set(11, ps.symbolFunction), E.set(12, ps.symbolVariable), E.set(13, ps.symbolConstant), E.set(14, ps.symbolString), E.set(15, ps.symbolNumber), E.set(16, ps.symbolBoolean), E.set(17, ps.symbolArray), E.set(18, ps.symbolObject), E.set(19, ps.symbolKey), E.set(20, ps.symbolNull), E.set(21, ps.symbolEnumMember), E.set(22, ps.symbolStruct), E.set(23, ps.symbolEvent), E.set(24, ps.symbolOperator), E.set(25, ps.symbolTypeParameter);
  function C(U) {
    let le = E.get(U);
    return le || (console.info("No codicon found for SymbolKind " + U), le = ps.symbolProperty), le;
  }
  m.toIcon = C;
})(DDe || (DDe = {}));
var RDe;
(function(m) {
  function E(C) {
    return !C || typeof C != "object" ? !1 : typeof C.id == "string" && typeof C.title == "string";
  }
  m.is = E;
})(RDe || (RDe = {}));
var NDe;
(function(m) {
  m[m.Collapsed = 0] = "Collapsed", m[m.Expanded = 1] = "Expanded";
})(NDe || (NDe = {}));
var ODe;
(function(m) {
  m[m.Unresolved = 0] = "Unresolved", m[m.Resolved = 1] = "Resolved";
})(ODe || (ODe = {}));
var PDe;
(function(m) {
  m[m.Editing = 0] = "Editing", m[m.Preview = 1] = "Preview";
})(PDe || (PDe = {}));
var MDe;
(function(m) {
  m[m.Published = 0] = "Published", m[m.Draft = 1] = "Draft";
})(MDe || (MDe = {}));
var FDe;
(function(m) {
  m[m.Type = 1] = "Type", m[m.Parameter = 2] = "Parameter";
})(FDe || (FDe = {}));
new Nlt();
var BDe;
(function(m) {
  m[m.None = 0] = "None", m[m.Option = 1] = "Option", m[m.Default = 2] = "Default", m[m.Preferred = 3] = "Preferred";
})(BDe || (BDe = {}));
var GDe;
(function(m) {
  m[m.Unknown = 0] = "Unknown", m[m.Disabled = 1] = "Disabled", m[m.Enabled = 2] = "Enabled";
})(GDe || (GDe = {}));
var UDe;
(function(m) {
  m[m.Invoke = 1] = "Invoke", m[m.Auto = 2] = "Auto";
})(UDe || (UDe = {}));
var VDe;
(function(m) {
  m[m.None = 0] = "None", m[m.KeepWhitespace = 1] = "KeepWhitespace", m[m.InsertAsSnippet = 4] = "InsertAsSnippet";
})(VDe || (VDe = {}));
var jDe;
(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";
})(jDe || (jDe = {}));
var HDe;
(function(m) {
  m[m.Deprecated = 1] = "Deprecated";
})(HDe || (HDe = {}));
var WDe;
(function(m) {
  m[m.Invoke = 0] = "Invoke", m[m.TriggerCharacter = 1] = "TriggerCharacter", m[m.TriggerForIncompleteCompletions = 2] = "TriggerForIncompleteCompletions";
})(WDe || (WDe = {}));
var zDe;
(function(m) {
  m[m.EXACT = 0] = "EXACT", m[m.ABOVE = 1] = "ABOVE", m[m.BELOW = 2] = "BELOW";
})(zDe || (zDe = {}));
var qDe;
(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";
})(qDe || (qDe = {}));
var JDe;
(function(m) {
  m[m.LF = 1] = "LF", m[m.CRLF = 2] = "CRLF";
})(JDe || (JDe = {}));
var KDe;
(function(m) {
  m[m.Text = 0] = "Text", m[m.Read = 1] = "Read", m[m.Write = 2] = "Write";
})(KDe || (KDe = {}));
var XDe;
(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";
})(XDe || (XDe = {}));
var YDe;
(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.autoClosingBrackets = 5] = "autoClosingBrackets", m[m.screenReaderAnnounceInlineSuggestion = 6] = "screenReaderAnnounceInlineSuggestion", m[m.autoClosingDelete = 7] = "autoClosingDelete", m[m.autoClosingOvertype = 8] = "autoClosingOvertype", m[m.autoClosingQuotes = 9] = "autoClosingQuotes", m[m.autoIndent = 10] = "autoIndent", m[m.automaticLayout = 11] = "automaticLayout", m[m.autoSurround = 12] = "autoSurround", m[m.bracketPairColorization = 13] = "bracketPairColorization", m[m.guides = 14] = "guides", m[m.codeLens = 15] = "codeLens", m[m.codeLensFontFamily = 16] = "codeLensFontFamily", m[m.codeLensFontSize = 17] = "codeLensFontSize", m[m.colorDecorators = 18] = "colorDecorators", m[m.colorDecoratorsLimit = 19] = "colorDecoratorsLimit", m[m.columnSelection = 20] = "columnSelection", m[m.comments = 21] = "comments", m[m.contextmenu = 22] = "contextmenu", m[m.copyWithSyntaxHighlighting = 23] = "copyWithSyntaxHighlighting", m[m.cursorBlinking = 24] = "cursorBlinking", m[m.cursorSmoothCaretAnimation = 25] = "cursorSmoothCaretAnimation", m[m.cursorStyle = 26] = "cursorStyle", m[m.cursorSurroundingLines = 27] = "cursorSurroundingLines", m[m.cursorSurroundingLinesStyle = 28] = "cursorSurroundingLinesStyle", m[m.cursorWidth = 29] = "cursorWidth", m[m.disableLayerHinting = 30] = "disableLayerHinting", m[m.disableMonospaceOptimizations = 31] = "disableMonospaceOptimizations", m[m.domReadOnly = 32] = "domReadOnly", m[m.dragAndDrop = 33] = "dragAndDrop", m[m.dropIntoEditor = 34] = "dropIntoEditor", m[m.emptySelectionClipboard = 35] = "emptySelectionClipboard", m[m.experimentalWhitespaceRendering = 36] = "experimentalWhitespaceRendering", m[m.extraEditorClassName = 37] = "extraEditorClassName", m[m.fastScrollSensitivity = 38] = "fastScrollSensitivity", m[m.find = 39] = "find", m[m.fixedOverflowWidgets = 40] = "fixedOverflowWidgets", m[m.folding = 41] = "folding", m[m.foldingStrategy = 42] = "foldingStrategy", m[m.foldingHighlight = 43] = "foldingHighlight", m[m.foldingImportsByDefault = 44] = "foldingImportsByDefault", m[m.foldingMaximumRegions = 45] = "foldingMaximumRegions", m[m.unfoldOnClickAfterEndOfLine = 46] = "unfoldOnClickAfterEndOfLine", m[m.fontFamily = 47] = "fontFamily", m[m.fontInfo = 48] = "fontInfo", m[m.fontLigatures = 49] = "fontLigatures", m[m.fontSize = 50] = "fontSize", m[m.fontWeight = 51] = "fontWeight", m[m.fontVariations = 52] = "fontVariations", m[m.formatOnPaste = 53] = "formatOnPaste", m[m.formatOnType = 54] = "formatOnType", m[m.glyphMargin = 55] = "glyphMargin", m[m.gotoLocation = 56] = "gotoLocation", m[m.hideCursorInOverviewRuler = 57] = "hideCursorInOverviewRuler", m[m.hover = 58] = "hover", m[m.inDiffEditor = 59] = "inDiffEditor", m[m.inlineSuggest = 60] = "inlineSuggest", m[m.letterSpacing = 61] = "letterSpacing", m[m.lightbulb = 62] = "lightbulb", m[m.lineDecorationsWidth = 63] = "lineDecorationsWidth", m[m.lineHeight = 64] = "lineHeight", m[m.lineNumbers = 65] = "lineNumbers", m[m.lineNumbersMinChars = 66] = "lineNumbersMinChars", m[m.linkedEditing = 67] = "linkedEditing", m[m.links = 68] = "links", m[m.matchBrackets = 69] = "matchBrackets", m[m.minimap = 70] = "minimap", m[m.mouseStyle = 71] = "mouseStyle", m[m.mouseWheelScrollSensitivity = 72] = "mouseWheelScrollSensitivity", m[m.mouseWheelZoom = 73] = "mouseWheelZoom", m[m.multiCursorMergeOverlapping = 74] = "multiCursorMergeOverlapping", m[m.multiCursorModifier = 75] = "multiCursorModifier", m[m.multiCursorPaste = 76] = "multiCursorPaste", m[m.multiCursorLimit = 77] = "multiCursorLimit", m[m.occurrencesHighlight = 78] = "occurrencesHighlight", m[m.overviewRulerBorder = 79] = "overviewRulerBorder", m[m.overviewRulerLanes = 80] = "overviewRulerLanes", m[m.padding = 81] = "padding", m[m.parameterHints = 82] = "parameterHints", m[m.peekWidgetDefaultFocus = 83] = "peekWidgetDefaultFocus", m[m.definitionLinkOpensInPeek = 84] = "definitionLinkOpensInPeek", m[m.quickSuggestions = 85] = "quickSuggestions", m[m.quickSuggestionsDelay = 86] = "quickSuggestionsDelay", m[m.readOnly = 87] = "readOnly", m[m.renameOnType = 88] = "renameOnType", m[m.renderControlCharacters = 89] = "renderControlCharacters", m[m.renderFinalNewline = 90] = "renderFinalNewline", m[m.renderLineHighlight = 91] = "renderLineHighlight", m[m.renderLineHighlightOnlyWhenFocus = 92] = "renderLineHighlightOnlyWhenFocus", m[m.renderValidationDecorations = 93] = "renderValidationDecorations", m[m.renderWhitespace = 94] = "renderWhitespace", m[m.revealHorizontalRightPadding = 95] = "revealHorizontalRightPadding", m[m.roundedSelection = 96] = "roundedSelection", m[m.rulers = 97] = "rulers", m[m.scrollbar = 98] = "scrollbar", m[m.scrollBeyondLastColumn = 99] = "scrollBeyondLastColumn", m[m.scrollBeyondLastLine = 100] = "scrollBeyondLastLine", m[m.scrollPredominantAxis = 101] = "scrollPredominantAxis", m[m.selectionClipboard = 102] = "selectionClipboard", m[m.selectionHighlight = 103] = "selectionHighlight", m[m.selectOnLineNumbers = 104] = "selectOnLineNumbers", m[m.showFoldingControls = 105] = "showFoldingControls", m[m.showUnused = 106] = "showUnused", m[m.snippetSuggestions = 107] = "snippetSuggestions", m[m.smartSelect = 108] = "smartSelect", m[m.smoothScrolling = 109] = "smoothScrolling", m[m.stickyScroll = 110] = "stickyScroll", m[m.stickyTabStops = 111] = "stickyTabStops", m[m.stopRenderingLineAfter = 112] = "stopRenderingLineAfter", m[m.suggest = 113] = "suggest", m[m.suggestFontSize = 114] = "suggestFontSize", m[m.suggestLineHeight = 115] = "suggestLineHeight", m[m.suggestOnTriggerCharacters = 116] = "suggestOnTriggerCharacters", m[m.suggestSelection = 117] = "suggestSelection", m[m.tabCompletion = 118] = "tabCompletion", m[m.tabIndex = 119] = "tabIndex", m[m.unicodeHighlighting = 120] = "unicodeHighlighting", m[m.unusualLineTerminators = 121] = "unusualLineTerminators", m[m.useShadowDOM = 122] = "useShadowDOM", m[m.useTabStops = 123] = "useTabStops", m[m.wordBreak = 124] = "wordBreak", m[m.wordSeparators = 125] = "wordSeparators", m[m.wordWrap = 126] = "wordWrap", m[m.wordWrapBreakAfterCharacters = 127] = "wordWrapBreakAfterCharacters", m[m.wordWrapBreakBeforeCharacters = 128] = "wordWrapBreakBeforeCharacters", m[m.wordWrapColumn = 129] = "wordWrapColumn", m[m.wordWrapOverride1 = 130] = "wordWrapOverride1", m[m.wordWrapOverride2 = 131] = "wordWrapOverride2", m[m.wrappingIndent = 132] = "wrappingIndent", m[m.wrappingStrategy = 133] = "wrappingStrategy", m[m.showDeprecated = 134] = "showDeprecated", m[m.inlayHints = 135] = "inlayHints", m[m.editorClassName = 136] = "editorClassName", m[m.pixelRatio = 137] = "pixelRatio", m[m.tabFocusMode = 138] = "tabFocusMode", m[m.layoutInfo = 139] = "layoutInfo", m[m.wrappingInfo = 140] = "wrappingInfo", m[m.defaultColorDecorators = 141] = "defaultColorDecorators";
})(YDe || (YDe = {}));
var $De;
(function(m) {
  m[m.TextDefined = 0] = "TextDefined", m[m.LF = 1] = "LF", m[m.CRLF = 2] = "CRLF";
})($De || ($De = {}));
var QDe;
(function(m) {
  m[m.LF = 0] = "LF", m[m.CRLF = 1] = "CRLF";
})(QDe || (QDe = {}));
var ZDe;
(function(m) {
  m[m.Left = 1] = "Left", m[m.Right = 2] = "Right";
})(ZDe || (ZDe = {}));
var eRe;
(function(m) {
  m[m.None = 0] = "None", m[m.Indent = 1] = "Indent", m[m.IndentOutdent = 2] = "IndentOutdent", m[m.Outdent = 3] = "Outdent";
})(eRe || (eRe = {}));
var tRe;
(function(m) {
  m[m.Both = 0] = "Both", m[m.Right = 1] = "Right", m[m.Left = 2] = "Left", m[m.None = 3] = "None";
})(tRe || (tRe = {}));
var nRe;
(function(m) {
  m[m.Type = 1] = "Type", m[m.Parameter = 2] = "Parameter";
})(nRe || (nRe = {}));
var rRe;
(function(m) {
  m[m.Automatic = 0] = "Automatic", m[m.Explicit = 1] = "Explicit";
})(rRe || (rRe = {}));
var Koe;
(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";
})(Koe || (Koe = {}));
var Xoe;
(function(m) {
  m[m.Hint = 1] = "Hint", m[m.Info = 2] = "Info", m[m.Warning = 4] = "Warning", m[m.Error = 8] = "Error";
})(Xoe || (Xoe = {}));
var Yoe;
(function(m) {
  m[m.Unnecessary = 1] = "Unnecessary", m[m.Deprecated = 2] = "Deprecated";
})(Yoe || (Yoe = {}));
var iRe;
(function(m) {
  m[m.Inline = 1] = "Inline", m[m.Gutter = 2] = "Gutter";
})(iRe || (iRe = {}));
var aRe;
(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";
})(aRe || (aRe = {}));
var oRe;
(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";
})(oRe || (oRe = {}));
var sRe;
(function(m) {
  m[m.Left = 1] = "Left", m[m.Center = 2] = "Center", m[m.Right = 4] = "Right", m[m.Full = 7] = "Full";
})(sRe || (sRe = {}));
var cRe;
(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";
})(cRe || (cRe = {}));
var lRe;
(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";
})(lRe || (lRe = {}));
var uRe;
(function(m) {
  m[m.None = 0] = "None", m[m.Text = 1] = "Text", m[m.Blocks = 2] = "Blocks";
})(uRe || (uRe = {}));
var dRe;
(function(m) {
  m[m.Smooth = 0] = "Smooth", m[m.Immediate = 1] = "Immediate";
})(dRe || (dRe = {}));
var fRe;
(function(m) {
  m[m.Auto = 1] = "Auto", m[m.Hidden = 2] = "Hidden", m[m.Visible = 3] = "Visible";
})(fRe || (fRe = {}));
var $oe;
(function(m) {
  m[m.LTR = 0] = "LTR", m[m.RTL = 1] = "RTL";
})($oe || ($oe = {}));
var _Re;
(function(m) {
  m[m.Invoke = 1] = "Invoke", m[m.TriggerCharacter = 2] = "TriggerCharacter", m[m.ContentChange = 3] = "ContentChange";
})(_Re || (_Re = {}));
var pRe;
(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";
})(pRe || (pRe = {}));
var mRe;
(function(m) {
  m[m.Deprecated = 1] = "Deprecated";
})(mRe || (mRe = {}));
var hRe;
(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";
})(hRe || (hRe = {}));
var gRe;
(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";
})(gRe || (gRe = {}));
var yRe;
(function(m) {
  m[m.AlwaysGrowsWhenTypingAtEdges = 0] = "AlwaysGrowsWhenTypingAtEdges", m[m.NeverGrowsWhenTypingAtEdges = 1] = "NeverGrowsWhenTypingAtEdges", m[m.GrowsOnlyWhenTypingBefore = 2] = "GrowsOnlyWhenTypingBefore", m[m.GrowsOnlyWhenTypingAfter = 3] = "GrowsOnlyWhenTypingAfter";
})(yRe || (yRe = {}));
var vRe;
(function(m) {
  m[m.None = 0] = "None", m[m.Same = 1] = "Same", m[m.Indent = 2] = "Indent", m[m.DeepIndent = 3] = "DeepIndent";
})(vRe || (vRe = {}));
class x4 {
  static chord(E, C) {
    return Rlt(E, C);
  }
}
x4.CtrlCmd = 2048;
x4.Shift = 1024;
x4.Alt = 512;
x4.WinCtrl = 256;
function Mlt() {
  return {
    editor: void 0,
    languages: void 0,
    CancellationTokenSource: Oct,
    Emitter: JE,
    KeyCode: Koe,
    KeyMod: x4,
    Position: Up,
    Range: vl,
    Selection: fv,
    SelectionDirection: $oe,
    MarkerSeverity: Xoe,
    MarkerTag: Yoe,
    Uri: $L,
    Token: Plt
  };
}
var bRe;
(function(m) {
  m[m.Left = 1] = "Left", m[m.Center = 2] = "Center", m[m.Right = 4] = "Right", m[m.Full = 7] = "Full";
})(bRe || (bRe = {}));
var ERe;
(function(m) {
  m[m.Left = 1] = "Left", m[m.Right = 2] = "Right";
})(ERe || (ERe = {}));
var TRe;
(function(m) {
  m[m.Inline = 1] = "Inline", m[m.Gutter = 2] = "Gutter";
})(TRe || (TRe = {}));
var SRe;
(function(m) {
  m[m.Both = 0] = "Both", m[m.Right = 1] = "Right", m[m.Left = 2] = "Left", m[m.None = 3] = "None";
})(SRe || (SRe = {}));
function Flt(m, E, C, U, le) {
  if (U === 0)
    return !0;
  const me = E.charCodeAt(U - 1);
  if (m.get(me) !== 0 || me === 13 || me === 10)
    return !0;
  if (le > 0) {
    const De = E.charCodeAt(U);
    if (m.get(De) !== 0)
      return !0;
  }
  return !1;
}
function Blt(m, E, C, U, le) {
  if (U + le === C)
    return !0;
  const me = E.charCodeAt(U + le);
  if (m.get(me) !== 0 || me === 13 || me === 10)
    return !0;
  if (le > 0) {
    const De = E.charCodeAt(U + le - 1);
    if (m.get(De) !== 0)
      return !0;
  }
  return !1;
}
function Glt(m, E, C, U, le) {
  return Flt(m, E, C, U, le) && Blt(m, E, C, U, le);
}
class Ult {
  constructor(E, C) {
    this._wordSeparators = E, this._searchRegex = C, this._prevMatchStartIndex = -1, this._prevMatchLength = 0;
  }
  reset(E) {
    this._searchRegex.lastIndex = E, this._prevMatchStartIndex = -1, this._prevMatchLength = 0;
  }
  next(E) {
    const C = E.length;
    let U;
    do {
      if (this._prevMatchStartIndex + this._prevMatchLength === C || (U = this._searchRegex.exec(E), !U))
        return null;
      const le = U.index, me = U[0].length;
      if (le === this._prevMatchStartIndex && me === this._prevMatchLength) {
        if (me === 0) {
          jct(E, C, this._searchRegex.lastIndex) > 65535 ? this._searchRegex.lastIndex += 2 : this._searchRegex.lastIndex += 1;
          continue;
        }
        return null;
      }
      if (this._prevMatchStartIndex = le, this._prevMatchLength = me, !this._wordSeparators || Glt(this._wordSeparators, E, C, le, me))
        return U;
    } while (U);
    return null;
  }
}
function Vlt(m, E = "Unreachable") {
  throw new Error(E);
}
function ase(m) {
  if (!m()) {
    debugger;
    m(), BRe(new ZL("Assertion Failed"));
  }
}
function eNe(m, E) {
  let C = 0;
  for (; C < m.length - 1; ) {
    const U = m[C], le = m[C + 1];
    if (!E(U, le))
      return !1;
    C++;
  }
  return !0;
}
class jlt {
  static computeUnicodeHighlights(E, C, U) {
    const le = U ? U.startLineNumber : 1, me = U ? U.endLineNumber : E.getLineCount(), De = new xRe(C), et = De.getCandidateCodePoints();
    let vt;
    et === "allNonBasicAscii" ? vt = new RegExp("[^\\t\\n\\r\\x20-\\x7E]", "g") : vt = new RegExp(`${Hlt(Array.from(et))}`, "g");
    const Ie = new Ult(null, vt), ze = [];
    let Zt = !1, sn, Hn = 0, ri = 0, gi = 0;
    e:
      for (let Wa = le, Rn = me; Wa <= Rn; Wa++) {
        const cn = E.getLineContent(Wa), $i = cn.length;
        Ie.reset(0);
        do
          if (sn = Ie.next(cn), sn) {
            let Qi = sn.index, ts = sn.index + sn[0].length;
            if (Qi > 0) {
              const Ma = cn.charCodeAt(Qi - 1);
              Uoe(Ma) && Qi--;
            }
            if (ts + 1 < $i) {
              const Ma = cn.charCodeAt(ts - 1);
              Uoe(Ma) && ts++;
            }
            const rd = cn.substring(Qi, ts);
            let wi = nse(Qi + 1, QRe, cn, 0);
            wi && wi.endColumn <= Qi + 1 && (wi = null);
            const Qs = De.shouldHighlightNonBasicASCII(rd, wi ? wi.word : null);
            if (Qs !== 0) {
              Qs === 3 ? Hn++ : Qs === 2 ? ri++ : Qs === 1 ? gi++ : Vlt();
              const Ma = 1e3;
              if (ze.length >= Ma) {
                Zt = !0;
                break e;
              }
              ze.push(new vl(Wa, Qi + 1, Wa, ts + 1));
            }
          }
        while (sn);
      }
    return {
      ranges: ze,
      hasMore: Zt,
      ambiguousCharacterCount: Hn,
      invisibleCharacterCount: ri,
      nonBasicAsciiCharacterCount: gi
    };
  }
  static computeUnicodeHighlightReason(E, C) {
    const U = new xRe(C);
    switch (U.shouldHighlightNonBasicASCII(E, null)) {
      case 0:
        return null;
      case 2:
        return {
          kind: 1
          /* UnicodeHighlighterReasonKind.Invisible */
        };
      case 3: {
        const me = E.codePointAt(0), De = U.ambiguousCharacters.getPrimaryConfusable(me), et = R0.getLocales().filter((vt) => !R0.getInstance(/* @__PURE__ */ new Set([...C.allowedLocales, vt])).isAmbiguous(me));
        return { kind: 0, confusableWith: String.fromCodePoint(De), notAmbiguousInLocales: et };
      }
      case 1:
        return {
          kind: 2
          /* UnicodeHighlighterReasonKind.NonBasicAscii */
        };
    }
  }
}
function Hlt(m, E) {
  return `[${Mct(m.map((U) => String.fromCodePoint(U)).join(""))}]`;
}
class xRe {
  constructor(E) {
    this.options = E, this.allowedCodePoints = new Set(E.allowedCodePoints), this.ambiguousCharacters = R0.getInstance(new Set(E.allowedLocales));
  }
  getCandidateCodePoints() {
    if (this.options.nonBasicASCII)
      return "allNonBasicAscii";
    const E = /* @__PURE__ */ new Set();
    if (this.options.invisibleCharacters)
      for (const C of cA.codePoints)
        ARe(String.fromCodePoint(C)) || E.add(C);
    if (this.options.ambiguousCharacters)
      for (const C of this.ambiguousCharacters.getConfusableCodePoints())
        E.add(C);
    for (const C of this.allowedCodePoints)
      E.delete(C);
    return E;
  }
  shouldHighlightNonBasicASCII(E, C) {
    const U = E.codePointAt(0);
    if (this.allowedCodePoints.has(U))
      return 0;
    if (this.options.nonBasicASCII)
      return 1;
    let le = !1, me = !1;
    if (C)
      for (const De of C) {
        const et = De.codePointAt(0), vt = Wct(De);
        le = le || vt, !vt && !this.ambiguousCharacters.isAmbiguous(et) && !cA.isInvisibleCharacter(et) && (me = !0);
      }
    return (
      /* Don't allow mixing weird looking characters with ASCII */
      !le && /* Is there an obviously weird looking character? */
      me ? 0 : this.options.invisibleCharacters && !ARe(E) && cA.isInvisibleCharacter(U) ? 2 : this.options.ambiguousCharacters && this.ambiguousCharacters.isAmbiguous(U) ? 3 : 0
    );
  }
}
function ARe(m) {
  return m === " " || m === `
` || m === "	";
}
class tNe {
  constructor(E, C) {
    this.changes = E, this.hitTimeout = C;
  }
}
class ij {
  constructor(E, C, U) {
    this.originalRange = E, this.modifiedRange = C, this.innerChanges = U;
  }
  toString() {
    return `{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`;
  }
  get changedLineCount() {
    return Math.max(this.originalRange.length, this.modifiedRange.length);
  }
}
class nNe {
  constructor(E, C) {
    this.originalRange = E, this.modifiedRange = C;
  }
  toString() {
    return `{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`;
  }
}
class $b {
  /**
   * @param lineRanges An array of sorted line ranges.
   */
  static joinMany(E) {
    if (E.length === 0)
      return [];
    let C = E[0];
    for (let U = 1; U < E.length; U++)
      C = this.join(C, E[U]);
    return C;
  }
  /**
   * @param lineRanges1 Must be sorted.
   * @param lineRanges2 Must be sorted.
   */
  static join(E, C) {
    if (E.length === 0)
      return C;
    if (C.length === 0)
      return E;
    const U = [];
    let le = 0, me = 0, De = null;
    for (; le < E.length || me < C.length; ) {
      let et = null;
      if (le < E.length && me < C.length) {
        const vt = E[le], Ie = C[me];
        vt.startLineNumber < Ie.startLineNumber ? (et = vt, le++) : (et = Ie, me++);
      } else
        le < E.length ? (et = E[le], le++) : (et = C[me], me++);
      De === null ? De = et : De.endLineNumberExclusive >= et.startLineNumber ? De = new $b(De.startLineNumber, Math.max(De.endLineNumberExclusive, et.endLineNumberExclusive)) : (U.push(De), De = et);
    }
    return De !== null && U.push(De), U;
  }
  constructor(E, C) {
    if (E > C)
      throw new ZL(`startLineNumber ${E} cannot be after endLineNumberExclusive ${C}`);
    this.startLineNumber = E, this.endLineNumberExclusive = C;
  }
  /**
   * Indicates if this line range contains the given line number.
   */
  contains(E) {
    return this.startLineNumber <= E && E < 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(E) {
    return new $b(this.startLineNumber + E, this.endLineNumberExclusive + E);
  }
  /**
   * 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(E) {
    return new $b(Math.min(this.startLineNumber, E.startLineNumber), Math.max(this.endLineNumberExclusive, E.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(E) {
    const C = Math.max(this.startLineNumber, E.startLineNumber), U = Math.min(this.endLineNumberExclusive, E.endLineNumberExclusive);
    if (C <= U)
      return new $b(C, U);
  }
  overlapOrTouch(E) {
    return this.startLineNumber <= E.endLineNumberExclusive && E.startLineNumber <= this.endLineNumberExclusive;
  }
  equals(E) {
    return this.startLineNumber === E.startLineNumber && this.endLineNumberExclusive === E.endLineNumberExclusive;
  }
}
const Wlt = 3;
class zlt {
  computeDiff(E, C, U) {
    var le;
    const De = new iNe(E, C, {
      maxComputationTime: U.maxComputationTimeMs,
      shouldIgnoreTrimWhitespace: U.ignoreTrimWhitespace,
      shouldComputeCharChanges: !0,
      shouldMakePrettyDiff: !0,
      shouldPostProcessCharChanges: !0
    }).computeDiff(), et = [];
    let vt = null;
    for (const Ie of De.changes) {
      let ze;
      Ie.originalEndLineNumber === 0 ? ze = new $b(Ie.originalStartLineNumber + 1, Ie.originalStartLineNumber + 1) : ze = new $b(Ie.originalStartLineNumber, Ie.originalEndLineNumber + 1);
      let Zt;
      Ie.modifiedEndLineNumber === 0 ? Zt = new $b(Ie.modifiedStartLineNumber + 1, Ie.modifiedStartLineNumber + 1) : Zt = new $b(Ie.modifiedStartLineNumber, Ie.modifiedEndLineNumber + 1);
      let sn = new ij(ze, Zt, (le = Ie.charChanges) === null || le === void 0 ? void 0 : le.map((Hn) => new nNe(new vl(Hn.originalStartLineNumber, Hn.originalStartColumn, Hn.originalEndLineNumber, Hn.originalEndColumn), new vl(Hn.modifiedStartLineNumber, Hn.modifiedStartColumn, Hn.modifiedEndLineNumber, Hn.modifiedEndColumn))));
      vt && (vt.modifiedRange.endLineNumberExclusive === sn.modifiedRange.startLineNumber || vt.originalRange.endLineNumberExclusive === sn.originalRange.startLineNumber) && (sn = new ij(vt.originalRange.join(sn.originalRange), vt.modifiedRange.join(sn.modifiedRange), vt.innerChanges && sn.innerChanges ? vt.innerChanges.concat(sn.innerChanges) : void 0), et.pop()), et.push(sn), vt = sn;
    }
    return ase(() => eNe(et, (Ie, ze) => ze.originalRange.startLineNumber - Ie.originalRange.endLineNumberExclusive === ze.modifiedRange.startLineNumber - Ie.modifiedRange.endLineNumberExclusive && // There has to be an unchanged line in between (otherwise both diffs should have been joined)
    Ie.originalRange.endLineNumberExclusive < ze.originalRange.startLineNumber && Ie.modifiedRange.endLineNumberExclusive < ze.modifiedRange.startLineNumber)), new tNe(et, De.quitEarly);
  }
}
function rNe(m, E, C, U) {
  return new oA(m, E, C).ComputeDiff(U);
}
let CRe = class {
  constructor(E) {
    const C = [], U = [];
    for (let le = 0, me = E.length; le < me; le++)
      C[le] = Qoe(E[le], 1), U[le] = Zoe(E[le], 1);
    this.lines = E, this._startColumns = C, this._endColumns = U;
  }
  getElements() {
    const E = [];
    for (let C = 0, U = this.lines.length; C < U; C++)
      E[C] = this.lines[C].substring(this._startColumns[C] - 1, this._endColumns[C] - 1);
    return E;
  }
  getStrictElement(E) {
    return this.lines[E];
  }
  getStartLineNumber(E) {
    return E + 1;
  }
  getEndLineNumber(E) {
    return E + 1;
  }
  createCharSequence(E, C, U) {
    const le = [], me = [], De = [];
    let et = 0;
    for (let vt = C; vt <= U; vt++) {
      const Ie = this.lines[vt], ze = E ? this._startColumns[vt] : 1, Zt = E ? this._endColumns[vt] : Ie.length + 1;
      for (let sn = ze; sn < Zt; sn++)
        le[et] = Ie.charCodeAt(sn - 1), me[et] = vt + 1, De[et] = sn, et++;
      !E && vt < U && (le[et] = 10, me[et] = vt + 1, De[et] = Ie.length + 1, et++);
    }
    return new qlt(le, me, De);
  }
};
class qlt {
  constructor(E, C, U) {
    this._charCodes = E, this._lineNumbers = C, this._columns = U;
  }
  toString() {
    return "[" + this._charCodes.map((E, C) => (E === 10 ? "\\n" : String.fromCharCode(E)) + `-(${this._lineNumbers[C]},${this._columns[C]})`).join(", ") + "]";
  }
  _assertIndex(E, C) {
    if (E < 0 || E >= C.length)
      throw new Error("Illegal index");
  }
  getElements() {
    return this._charCodes;
  }
  getStartLineNumber(E) {
    return E > 0 && E === this._lineNumbers.length ? this.getEndLineNumber(E - 1) : (this._assertIndex(E, this._lineNumbers), this._lineNumbers[E]);
  }
  getEndLineNumber(E) {
    return E === -1 ? this.getStartLineNumber(E + 1) : (this._assertIndex(E, this._lineNumbers), this._charCodes[E] === 10 ? this._lineNumbers[E] + 1 : this._lineNumbers[E]);
  }
  getStartColumn(E) {
    return E > 0 && E === this._columns.length ? this.getEndColumn(E - 1) : (this._assertIndex(E, this._columns), this._columns[E]);
  }
  getEndColumn(E) {
    return E === -1 ? this.getStartColumn(E + 1) : (this._assertIndex(E, this._columns), this._charCodes[E] === 10 ? 1 : this._columns[E] + 1);
  }
}
class YD {
  constructor(E, C, U, le, me, De, et, vt) {
    this.originalStartLineNumber = E, this.originalStartColumn = C, this.originalEndLineNumber = U, this.originalEndColumn = le, this.modifiedStartLineNumber = me, this.modifiedStartColumn = De, this.modifiedEndLineNumber = et, this.modifiedEndColumn = vt;
  }
  static createFromDiffChange(E, C, U) {
    const le = C.getStartLineNumber(E.originalStart), me = C.getStartColumn(E.originalStart), De = C.getEndLineNumber(E.originalStart + E.originalLength - 1), et = C.getEndColumn(E.originalStart + E.originalLength - 1), vt = U.getStartLineNumber(E.modifiedStart), Ie = U.getStartColumn(E.modifiedStart), ze = U.getEndLineNumber(E.modifiedStart + E.modifiedLength - 1), Zt = U.getEndColumn(E.modifiedStart + E.modifiedLength - 1);
    return new YD(le, me, De, et, vt, Ie, ze, Zt);
  }
}
function Jlt(m) {
  if (m.length <= 1)
    return m;
  const E = [m[0]];
  let C = E[0];
  for (let U = 1, le = m.length; U < le; U++) {
    const me = m[U], De = me.originalStart - (C.originalStart + C.originalLength), et = me.modifiedStart - (C.modifiedStart + C.modifiedLength);
    Math.min(De, et) < Wlt ? (C.originalLength = me.originalStart + me.originalLength - C.originalStart, C.modifiedLength = me.modifiedStart + me.modifiedLength - C.modifiedStart) : (E.push(me), C = me);
  }
  return E;
}
class E4 {
  constructor(E, C, U, le, me) {
    this.originalStartLineNumber = E, this.originalEndLineNumber = C, this.modifiedStartLineNumber = U, this.modifiedEndLineNumber = le, this.charChanges = me;
  }
  static createFromDiffResult(E, C, U, le, me, De, et) {
    let vt, Ie, ze, Zt, sn;
    if (C.originalLength === 0 ? (vt = U.getStartLineNumber(C.originalStart) - 1, Ie = 0) : (vt = U.getStartLineNumber(C.originalStart), Ie = U.getEndLineNumber(C.originalStart + C.originalLength - 1)), C.modifiedLength === 0 ? (ze = le.getStartLineNumber(C.modifiedStart) - 1, Zt = 0) : (ze = le.getStartLineNumber(C.modifiedStart), Zt = le.getEndLineNumber(C.modifiedStart + C.modifiedLength - 1)), De && C.originalLength > 0 && C.originalLength < 20 && C.modifiedLength > 0 && C.modifiedLength < 20 && me()) {
      const Hn = U.createCharSequence(E, C.originalStart, C.originalStart + C.originalLength - 1), ri = le.createCharSequence(E, C.modifiedStart, C.modifiedStart + C.modifiedLength - 1);
      if (Hn.getElements().length > 0 && ri.getElements().length > 0) {
        let gi = rNe(Hn, ri, me, !0).changes;
        et && (gi = Jlt(gi)), sn = [];
        for (let Wa = 0, Rn = gi.length; Wa < Rn; Wa++)
          sn.push(YD.createFromDiffChange(gi[Wa], Hn, ri));
      }
    }
    return new E4(vt, Ie, ze, Zt, sn);
  }
}
class iNe {
  constructor(E, C, U) {
    this.shouldComputeCharChanges = U.shouldComputeCharChanges, this.shouldPostProcessCharChanges = U.shouldPostProcessCharChanges, this.shouldIgnoreTrimWhitespace = U.shouldIgnoreTrimWhitespace, this.shouldMakePrettyDiff = U.shouldMakePrettyDiff, this.originalLines = E, this.modifiedLines = C, this.original = new CRe(E), this.modified = new CRe(C), this.continueLineDiff = LRe(U.maxComputationTime), this.continueCharDiff = LRe(U.maxComputationTime === 0 ? 0 : Math.min(U.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 E = rNe(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff), C = E.changes, U = E.quitEarly;
    if (this.shouldIgnoreTrimWhitespace) {
      const et = [];
      for (let vt = 0, Ie = C.length; vt < Ie; vt++)
        et.push(E4.createFromDiffResult(this.shouldIgnoreTrimWhitespace, C[vt], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));
      return {
        quitEarly: U,
        changes: et
      };
    }
    const le = [];
    let me = 0, De = 0;
    for (let et = -1, vt = C.length; et < vt; et++) {
      const Ie = et + 1 < vt ? C[et + 1] : null, ze = Ie ? Ie.originalStart : this.originalLines.length, Zt = Ie ? Ie.modifiedStart : this.modifiedLines.length;
      for (; me < ze && De < Zt; ) {
        const sn = this.originalLines[me], Hn = this.modifiedLines[De];
        if (sn !== Hn) {
          {
            let ri = Qoe(sn, 1), gi = Qoe(Hn, 1);
            for (; ri > 1 && gi > 1; ) {
              const Wa = sn.charCodeAt(ri - 2), Rn = Hn.charCodeAt(gi - 2);
              if (Wa !== Rn)
                break;
              ri--, gi--;
            }
            (ri > 1 || gi > 1) && this._pushTrimWhitespaceCharChange(le, me + 1, 1, ri, De + 1, 1, gi);
          }
          {
            let ri = Zoe(sn, 1), gi = Zoe(Hn, 1);
            const Wa = sn.length + 1, Rn = Hn.length + 1;
            for (; ri < Wa && gi < Rn; ) {
              const cn = sn.charCodeAt(ri - 1), $i = sn.charCodeAt(gi - 1);
              if (cn !== $i)
                break;
              ri++, gi++;
            }
            (ri < Wa || gi < Rn) && this._pushTrimWhitespaceCharChange(le, me + 1, ri, Wa, De + 1, gi, Rn);
          }
        }
        me++, De++;
      }
      Ie && (le.push(E4.createFromDiffResult(this.shouldIgnoreTrimWhitespace, Ie, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)), me += Ie.originalLength, De += Ie.modifiedLength);
    }
    return {
      quitEarly: U,
      changes: le
    };
  }
  _pushTrimWhitespaceCharChange(E, C, U, le, me, De, et) {
    if (this._mergeTrimWhitespaceCharChange(E, C, U, le, me, De, et))
      return;
    let vt;
    this.shouldComputeCharChanges && (vt = [new YD(C, U, C, le, me, De, me, et)]), E.push(new E4(C, C, me, me, vt));
  }
  _mergeTrimWhitespaceCharChange(E, C, U, le, me, De, et) {
    const vt = E.length;
    if (vt === 0)
      return !1;
    const Ie = E[vt - 1];
    return Ie.originalEndLineNumber === 0 || Ie.modifiedEndLineNumber === 0 ? !1 : Ie.originalEndLineNumber === C && Ie.modifiedEndLineNumber === me ? (this.shouldComputeCharChanges && Ie.charChanges && Ie.charChanges.push(new YD(C, U, C, le, me, De, me, et)), !0) : Ie.originalEndLineNumber + 1 === C && Ie.modifiedEndLineNumber + 1 === me ? (Ie.originalEndLineNumber = C, Ie.modifiedEndLineNumber = me, this.shouldComputeCharChanges && Ie.charChanges && Ie.charChanges.push(new YD(C, U, C, le, me, De, me, et)), !0) : !1;
  }
}
function Qoe(m, E) {
  const C = Bct(m);
  return C === -1 ? E : C + 1;
}
function Zoe(m, E) {
  const C = Gct(m);
  return C === -1 ? E : C + 2;
}
function LRe(m) {
  if (m === 0)
    return () => !0;
  const E = Date.now();
  return () => Date.now() - E < m;
}
class o_ {
  static addRange(E, C) {
    let U = 0;
    for (; U < C.length && C[U].endExclusive < E.start; )
      U++;
    let le = U;
    for (; le < C.length && C[le].start <= E.endExclusive; )
      le++;
    if (U === le)
      C.splice(U, 0, E);
    else {
      const me = Math.min(E.start, C[U].start), De = Math.max(E.endExclusive, C[le - 1].endExclusive);
      C.splice(U, le - U, new o_(me, De));
    }
  }
  static tryCreate(E, C) {
    if (!(E > C))
      return new o_(E, C);
  }
  constructor(E, C) {
    if (this.start = E, this.endExclusive = C, E > C)
      throw new ZL(`Invalid range: ${this.toString()}`);
  }
  get isEmpty() {
    return this.start === this.endExclusive;
  }
  delta(E) {
    return new o_(this.start + E, this.endExclusive + E);
  }
  get length() {
    return this.endExclusive - this.start;
  }
  toString() {
    return `[${this.start}, ${this.endExclusive})`;
  }
  equals(E) {
    return this.start === E.start && this.endExclusive === E.endExclusive;
  }
  containsRange(E) {
    return this.start <= E.start && E.endExclusive <= this.endExclusive;
  }
  contains(E) {
    return this.start <= E && E < 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(E) {
    return new o_(Math.min(this.start, E.start), Math.max(this.endExclusive, E.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(E) {
    const C = Math.max(this.start, E.start), U = Math.min(this.endExclusive, E.endExclusive);
    if (C <= U)
      return new o_(C, U);
  }
}
class RS {
  static trivial(E, C) {
    return new RS([new N0(new o_(0, E.length), new o_(0, C.length))], !1);
  }
  static trivialTimedOut(E, C) {
    return new RS([new N0(new o_(0, E.length), new o_(0, C.length))], !0);
  }
  constructor(E, C) {
    this.diffs = E, this.hitTimeout = C;
  }
}
class N0 {
  constructor(E, C) {
    this.seq1Range = E, this.seq2Range = C;
  }
  reverse() {
    return new N0(this.seq2Range, this.seq1Range);
  }
  toString() {
    return `${this.seq1Range} <-> ${this.seq2Range}`;
  }
  join(E) {
    return new N0(this.seq1Range.join(E.seq1Range), this.seq2Range.join(E.seq2Range));
  }
}
class S4 {
  isValid() {
    return !0;
  }
}
S4.instance = new S4();
class Klt {
  constructor(E) {
    if (this.timeout = E, this.startTime = Date.now(), this.valid = !0, E <= 0)
      throw new ZL("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;
  }
  disable() {
    this.timeout = Number.MAX_SAFE_INTEGER, this.isValid = () => !0, this.valid = !0;
  }
}
class Roe {
  constructor(E, C) {
    this.width = E, this.height = C, this.array = [], this.array = new Array(E * C);
  }
  get(E, C) {
    return this.array[E + C * this.width];
  }
  set(E, C, U) {
    this.array[E + C * this.width] = U;
  }
}
class Xlt {
  compute(E, C, U = S4.instance, le) {
    if (E.length === 0 || C.length === 0)
      return RS.trivial(E, C);
    const me = new Roe(E.length, C.length), De = new Roe(E.length, C.length), et = new Roe(E.length, C.length);
    for (let ri = 0; ri < E.length; ri++)
      for (let gi = 0; gi < C.length; gi++) {
        if (!U.isValid())
          return RS.trivialTimedOut(E, C);
        const Wa = ri === 0 ? 0 : me.get(ri - 1, gi), Rn = gi === 0 ? 0 : me.get(ri, gi - 1);
        let cn;
        E.getElement(ri) === C.getElement(gi) ? (ri === 0 || gi === 0 ? cn = 0 : cn = me.get(ri - 1, gi - 1), ri > 0 && gi > 0 && De.get(ri - 1, gi - 1) === 3 && (cn += et.get(ri - 1, gi - 1)), cn += le ? le(ri, gi) : 1) : cn = -1;
        const $i = Math.max(Wa, Rn, cn);
        if ($i === cn) {
          const Qi = ri > 0 && gi > 0 ? et.get(ri - 1, gi - 1) : 0;
          et.set(ri, gi, Qi + 1), De.set(ri, gi, 3);
        } else
          $i === Wa ? (et.set(ri, gi, 0), De.set(ri, gi, 1)) : $i === Rn && (et.set(ri, gi, 0), De.set(ri, gi, 2));
        me.set(ri, gi, $i);
      }
    const vt = [];
    let Ie = E.length, ze = C.length;
    function Zt(ri, gi) {
      (ri + 1 !== Ie || gi + 1 !== ze) && vt.push(new N0(new o_(ri + 1, Ie), new o_(gi + 1, ze))), Ie = ri, ze = gi;
    }
    let sn = E.length - 1, Hn = C.length - 1;
    for (; sn >= 0 && Hn >= 0; )
      De.get(sn, Hn) === 3 ? (Zt(sn, Hn), sn--, Hn--) : De.get(sn, Hn) === 1 ? sn-- : Hn--;
    return Zt(-1, -1), vt.reverse(), new RS(vt, !1);
  }
}
function IRe(m, E, C) {
  let U = C;
  return U = $lt(m, E, U), U = Qlt(m, E, U), U;
}
function Ylt(m, E, C) {
  const U = [];
  for (const le of C) {
    const me = U[U.length - 1];
    if (!me) {
      U.push(le);
      continue;
    }
    le.seq1Range.start - me.seq1Range.endExclusive <= 2 || le.seq2Range.start - me.seq2Range.endExclusive <= 2 ? U[U.length - 1] = new N0(me.seq1Range.join(le.seq1Range), me.seq2Range.join(le.seq2Range)) : U.push(le);
  }
  return U;
}
function $lt(m, E, C) {
  const U = [];
  C.length > 0 && U.push(C[0]);
  for (let le = 1; le < C.length; le++) {
    const me = U[U.length - 1], De = C[le];
    if (De.seq1Range.isEmpty) {
      let et = !0;
      const vt = De.seq1Range.start - me.seq1Range.endExclusive;
      for (let Ie = 1; Ie <= vt; Ie++)
        if (E.getElement(De.seq2Range.start - Ie) !== E.getElement(De.seq2Range.endExclusive - Ie)) {
          et = !1;
          break;
        }
      if (et) {
        U[U.length - 1] = new N0(me.seq1Range, new o_(me.seq2Range.start, De.seq2Range.endExclusive - vt));
        continue;
      }
    }
    U.push(De);
  }
  return U;
}
function Qlt(m, E, C) {
  if (!m.getBoundaryScore || !E.getBoundaryScore)
    return C;
  for (let U = 0; U < C.length; U++) {
    const le = C[U];
    if (le.seq1Range.isEmpty) {
      const me = U > 0 ? C[U - 1].seq2Range.endExclusive : -1, De = U + 1 < C.length ? C[U + 1].seq2Range.start : E.length;
      C[U] = kRe(le, m, E, De, me);
    } else if (le.seq2Range.isEmpty) {
      const me = U > 0 ? C[U - 1].seq1Range.endExclusive : -1, De = U + 1 < C.length ? C[U + 1].seq1Range.start : m.length;
      C[U] = kRe(le.reverse(), E, m, De, me).reverse();
    }
  }
  return C;
}
function kRe(m, E, C, U, le) {
  let De = 1;
  for (; m.seq2Range.start - De > le && C.getElement(m.seq2Range.start - De) === C.getElement(m.seq2Range.endExclusive - De) && De < 20; )
    De++;
  De--;
  let et = 0;
  for (; m.seq2Range.start + et < U && C.getElement(m.seq2Range.start + et) === C.getElement(m.seq2Range.endExclusive + et) && et < 20; )
    et++;
  if (De === 0 && et === 0)
    return m;
  let vt = 0, Ie = -1;
  for (let ze = -De; ze <= et; ze++) {
    const Zt = m.seq2Range.start + ze, sn = m.seq2Range.endExclusive + ze, Hn = m.seq1Range.start + ze, ri = E.getBoundaryScore(Hn) + C.getBoundaryScore(Zt) + C.getBoundaryScore(sn);
    ri > Ie && (Ie = ri, vt = ze);
  }
  return vt !== 0 ? new N0(m.seq1Range.delta(vt), m.seq2Range.delta(vt)) : m;
}
class Zlt {
  compute(E, C, U = S4.instance) {
    if (E.length === 0 || C.length === 0)
      return RS.trivial(E, C);
    function le(Hn, ri) {
      for (; Hn < E.length && ri < C.length && E.getElement(Hn) === C.getElement(ri); )
        Hn++, ri++;
      return Hn;
    }
    let me = 0;
    const De = new eut();
    De.set(0, le(0, 0));
    const et = new tut();
    et.set(0, De.get(0) === 0 ? null : new wRe(null, 0, 0, De.get(0)));
    let vt = 0;
    e:
      for (; ; )
        for (me++, vt = -me; vt <= me; vt += 2) {
          if (!U.isValid())
            return RS.trivialTimedOut(E, C);
          const Hn = vt === me ? -1 : De.get(vt + 1), ri = vt === -me ? -1 : De.get(vt - 1) + 1, gi = Math.min(Math.max(Hn, ri), E.length), Wa = gi - vt, Rn = le(gi, Wa);
          De.set(vt, Rn);
          const cn = gi === Hn ? et.get(vt + 1) : et.get(vt - 1);
          if (et.set(vt, Rn !== gi ? new wRe(cn, gi, Wa, Rn - gi) : cn), De.get(vt) === E.length && De.get(vt) - vt === C.length)
            break e;
        }
    let Ie = et.get(vt);
    const ze = [];
    let Zt = E.length, sn = C.length;
    for (; ; ) {
      const Hn = Ie ? Ie.x + Ie.length : 0, ri = Ie ? Ie.y + Ie.length : 0;
      if ((Hn !== Zt || ri !== sn) && ze.push(new N0(new o_(Hn, Zt), new o_(ri, sn))), !Ie)
        break;
      Zt = Ie.x, sn = Ie.y, Ie = Ie.prev;
    }
    return ze.reverse(), new RS(ze, !1);
  }
}
class wRe {
  constructor(E, C, U, le) {
    this.prev = E, this.x = C, this.y = U, this.length = le;
  }
}
class eut {
  constructor() {
    this.positiveArr = new Int32Array(10), this.negativeArr = new Int32Array(10);
  }
  get(E) {
    return E < 0 ? (E = -E - 1, this.negativeArr[E]) : this.positiveArr[E];
  }
  set(E, C) {
    if (E < 0) {
      if (E = -E - 1, E >= this.negativeArr.length) {
        const U = this.negativeArr;
        this.negativeArr = new Int32Array(U.length * 2), this.negativeArr.set(U);
      }
      this.negativeArr[E] = C;
    } else {
      if (E >= this.positiveArr.length) {
        const U = this.positiveArr;
        this.positiveArr = new Int32Array(U.length * 2), this.positiveArr.set(U);
      }
      this.positiveArr[E] = C;
    }
  }
}
class tut {
  constructor() {
    this.positiveArr = [], this.negativeArr = [];
  }
  get(E) {
    return E < 0 ? (E = -E - 1, this.negativeArr[E]) : this.positiveArr[E];
  }
  set(E, C) {
    E < 0 ? (E = -E - 1, this.negativeArr[E] = C) : this.positiveArr[E] = C;
  }
}
class nut {
  constructor() {
    this.dynamicProgrammingDiffing = new Xlt(), this.myersDiffingAlgorithm = new Zlt();
  }
  computeDiff(E, C, U) {
    const le = U.maxComputationTimeMs === 0 ? S4.instance : new Klt(U.maxComputationTimeMs), me = !U.ignoreTrimWhitespace, De = /* @__PURE__ */ new Map();
    function et(Qi) {
      let ts = De.get(Qi);
      return ts === void 0 && (ts = De.size, De.set(Qi, ts)), ts;
    }
    const vt = E.map((Qi) => et(Qi.trim())), Ie = C.map((Qi) => et(Qi.trim())), ze = new DRe(vt, E), Zt = new DRe(Ie, C), sn = (() => ze.length + Zt.length < 1500 ? this.dynamicProgrammingDiffing.compute(ze, Zt, le, (Qi, ts) => E[Qi] === C[ts] ? C[ts].length === 0 ? 0.1 : 1 + Math.log(1 + C[ts].length) : 0.99) : this.myersDiffingAlgorithm.compute(ze, Zt))();
    let Hn = sn.diffs, ri = sn.hitTimeout;
    Hn = IRe(ze, Zt, Hn);
    const gi = [], Wa = (Qi) => {
      if (me)
        for (let ts = 0; ts < Qi; ts++) {
          const rd = Rn + ts, wi = cn + ts;
          if (E[rd] !== C[wi]) {
            const Qs = this.refineDiff(E, C, new N0(new o_(rd, rd + 1), new o_(wi, wi + 1)), le, me);
            for (const Ma of Qs.mappings)
              gi.push(Ma);
            Qs.hitTimeout && (ri = !0);
          }
        }
    };
    let Rn = 0, cn = 0;
    for (const Qi of Hn) {
      ase(() => Qi.seq1Range.start - Rn === Qi.seq2Range.start - cn);
      const ts = Qi.seq1Range.start - Rn;
      Wa(ts), Rn = Qi.seq1Range.endExclusive, cn = Qi.seq2Range.endExclusive;
      const rd = this.refineDiff(E, C, Qi, le, me);
      rd.hitTimeout && (ri = !0);
      for (const wi of rd.mappings)
        gi.push(wi);
    }
    Wa(E.length - Rn);
    const $i = aut(gi, E, C);
    return new tNe($i, ri);
  }
  refineDiff(E, C, U, le, me) {
    const De = new NRe(E, U.seq1Range, me), et = new NRe(C, U.seq2Range, me), vt = De.length + et.length < 500 ? this.dynamicProgrammingDiffing.compute(De, et, le) : this.myersDiffingAlgorithm.compute(De, et, le);
    let Ie = vt.diffs;
    return Ie = IRe(De, et, Ie), Ie = rut(De, et, Ie), Ie = Ylt(De, et, Ie), {
      mappings: Ie.map((Zt) => new nNe(De.translateRange(Zt.seq1Range), et.translateRange(Zt.seq2Range))),
      hitTimeout: vt.hitTimeout
    };
  }
}
function rut(m, E, C) {
  const U = [];
  let le;
  function me() {
    if (!le)
      return;
    const et = le.s1Range.length - le.deleted;
    le.s2Range.length - le.added, Math.max(le.deleted, le.added) + (le.count - 1) > et && U.push(new N0(le.s1Range, le.s2Range)), le = void 0;
  }
  for (const et of C) {
    let vt = function(Hn, ri) {
      var gi, Wa, Rn, cn;
      if (!le || !le.s1Range.containsRange(Hn) || !le.s2Range.containsRange(ri))
        if (le && !(le.s1Range.endExclusive < Hn.start && le.s2Range.endExclusive < ri.start)) {
          const ts = o_.tryCreate(le.s1Range.endExclusive, Hn.start), rd = o_.tryCreate(le.s2Range.endExclusive, ri.start);
          le.deleted += (gi = ts == null ? void 0 : ts.length) !== null && gi !== void 0 ? gi : 0, le.added += (Wa = rd == null ? void 0 : rd.length) !== null && Wa !== void 0 ? Wa : 0, le.s1Range = le.s1Range.join(Hn), le.s2Range = le.s2Range.join(ri);
        } else
          me(), le = { added: 0, deleted: 0, count: 0, s1Range: Hn, s2Range: ri };
      const $i = Hn.intersect(et.seq1Range), Qi = ri.intersect(et.seq2Range);
      le.count++, le.deleted += (Rn = $i == null ? void 0 : $i.length) !== null && Rn !== void 0 ? Rn : 0, le.added += (cn = Qi == null ? void 0 : Qi.length) !== null && cn !== void 0 ? cn : 0;
    };
    const Ie = m.findWordContaining(et.seq1Range.start - 1), ze = E.findWordContaining(et.seq2Range.start - 1), Zt = m.findWordContaining(et.seq1Range.endExclusive), sn = E.findWordContaining(et.seq2Range.endExclusive);
    Ie && Zt && ze && sn && Ie.equals(Zt) && ze.equals(sn) ? vt(Ie, ze) : (Ie && ze && vt(Ie, ze), Zt && sn && vt(Zt, sn));
  }
  return me(), iut(C, U);
}
function iut(m, E) {
  const C = [];
  for (; m.length > 0 || E.length > 0; ) {
    const U = m[0], le = E[0];
    let me;
    U && (!le || U.seq1Range.start < le.seq1Range.start) ? me = m.shift() : me = E.shift(), C.length > 0 && C[C.length - 1].seq1Range.endExclusive >= me.seq1Range.start ? C[C.length - 1] = C[C.length - 1].join(me) : C.push(me);
  }
  return C;
}
function aut(m, E, C) {
  const U = [];
  for (const le of sut(m.map((me) => out(me, E, C)), (me, De) => me.originalRange.overlapOrTouch(De.originalRange) || me.modifiedRange.overlapOrTouch(De.modifiedRange))) {
    const me = le[0], De = le[le.length - 1];
    U.push(new ij(me.originalRange.join(De.originalRange), me.modifiedRange.join(De.modifiedRange), le.map((et) => et.innerChanges[0])));
  }
  return ase(() => eNe(U, (le, me) => me.originalRange.startLineNumber - le.originalRange.endLineNumberExclusive === me.modifiedRange.startLineNumber - le.modifiedRange.endLineNumberExclusive && // There has to be an unchanged line in between (otherwise both diffs should have been joined)
  le.originalRange.endLineNumberExclusive < me.originalRange.startLineNumber && le.modifiedRange.endLineNumberExclusive < me.modifiedRange.startLineNumber)), U;
}
function out(m, E, C) {
  let U = 0, le = 0;
  m.modifiedRange.startColumn - 1 >= C[m.modifiedRange.startLineNumber - 1].length && m.originalRange.startColumn - 1 >= E[m.originalRange.startLineNumber - 1].length && (U = 1), m.modifiedRange.endColumn === 1 && m.originalRange.endColumn === 1 && m.originalRange.startLineNumber + U <= m.originalRange.endLineNumber && m.modifiedRange.startLineNumber + U <= m.modifiedRange.endLineNumber && (le = -1);
  const me = new $b(m.originalRange.startLineNumber + U, m.originalRange.endLineNumber + 1 + le), De = new $b(m.modifiedRange.startLineNumber + U, m.modifiedRange.endLineNumber + 1 + le);
  return new ij(me, De, [m]);
}
function* sut(m, E) {
  let C, U;
  for (const le of m)
    U !== void 0 && E(U, le) ? C.push(le) : (C && (yield C), C = [le]), U = le;
  C && (yield C);
}
class DRe {
  constructor(E, C) {
    this.trimmedHash = E, this.lines = C;
  }
  getElement(E) {
    return this.trimmedHash[E];
  }
  get length() {
    return this.trimmedHash.length;
  }
  getBoundaryScore(E) {
    const C = E === 0 ? 0 : RRe(this.lines[E - 1]), U = E === this.lines.length ? 0 : RRe(this.lines[E]);
    return 1e3 - (C + U);
  }
}
function RRe(m) {
  let E = 0;
  for (; E < m.length && (m.charCodeAt(E) === 32 || m.charCodeAt(E) === 9); )
    E++;
  return E;
}
class NRe {
  constructor(E, C, U) {
    this.lines = E, this.considerWhitespaceChanges = U, this.elements = [], this.firstCharOffsetByLineMinusOne = [], this.offsetByLine = [];
    let le = !1;
    C.start > 0 && C.endExclusive >= E.length && (C = new o_(C.start - 1, C.endExclusive), le = !0), this.lineRange = C;
    for (let me = this.lineRange.start; me < this.lineRange.endExclusive; me++) {
      let De = E[me], et = 0;
      if (le)
        et = De.length, De = "", le = !1;
      else if (!U) {
        const vt = De.trimStart();
        et = De.length - vt.length, De = vt.trimEnd();
      }
      this.offsetByLine.push(et);
      for (let vt = 0; vt < De.length; vt++)
        this.elements.push(De.charCodeAt(vt));
      me < E.length - 1 && (this.elements.push(`
`.charCodeAt(0)), this.firstCharOffsetByLineMinusOne[me - this.lineRange.start] = this.elements.length);
    }
    this.offsetByLine.push(0);
  }
  toString() {
    return `Slice: "${this.text}"`;
  }
  get text() {
    return [...this.elements].map((E) => String.fromCharCode(E)).join("");
  }
  getElement(E) {
    return this.elements[E];
  }
  get length() {
    return this.elements.length;
  }
  getBoundaryScore(E) {
    const C = PRe(E > 0 ? this.elements[E - 1] : -1), U = PRe(E < this.elements.length ? this.elements[E] : -1);
    if (C === 6 && U === 7)
      return 0;
    let le = 0;
    return C !== U && (le += 10, U === 1 && (le += 1)), le += ORe(C), le += ORe(U), le;
  }
  translateOffset(E) {
    if (this.lineRange.isEmpty)
      return new Up(this.lineRange.start + 1, 1);
    let C = 0, U = this.firstCharOffsetByLineMinusOne.length;
    for (; C < U; ) {
      const me = Math.floor((C + U) / 2);
      this.firstCharOffsetByLineMinusOne[me] > E ? U = me : C = me + 1;
    }
    const le = C === 0 ? 0 : this.firstCharOffsetByLineMinusOne[C - 1];
    return new Up(this.lineRange.start + C + 1, E - le + 1 + this.offsetByLine[C]);
  }
  translateRange(E) {
    return vl.fromPositions(this.translateOffset(E.start), this.translateOffset(E.endExclusive));
  }
  /**
   * Finds the word that contains the character at the given offset
   */
  findWordContaining(E) {
    if (E < 0 || E >= this.elements.length || !Noe(this.elements[E]))
      return;
    let C = E;
    for (; C > 0 && Noe(this.elements[C - 1]); )
      C--;
    let U = E;
    for (; U < this.elements.length && Noe(this.elements[U]); )
      U++;
    return new o_(C, U);
  }
}
function Noe(m) {
  return m >= 97 && m <= 122 || m >= 65 && m <= 90 || m >= 48 && m <= 57;
}
const cut = {
  [
    0
    /* CharBoundaryCategory.WordLower */
  ]: 0,
  [
    1
    /* CharBoundaryCategory.WordUpper */
  ]: 0,
  [
    2
    /* CharBoundaryCategory.WordNumber */
  ]: 0,
  [
    3
    /* CharBoundaryCategory.End */
  ]: 10,
  [
    4
    /* CharBoundaryCategory.Other */
  ]: 2,
  [
    5
    /* CharBoundaryCategory.Space */
  ]: 3,
  [
    6
    /* CharBoundaryCategory.LineBreakCR */
  ]: 10,
  [
    7
    /* CharBoundaryCategory.LineBreakLF */
  ]: 10
};
function ORe(m) {
  return cut[m];
}
function PRe(m) {
  return m === 10 ? 7 : m === 13 ? 6 : lut(m) ? 5 : m >= 97 && m <= 122 ? 0 : m >= 65 && m <= 90 ? 1 : m >= 48 && m <= 57 ? 2 : m === -1 ? 3 : 4;
}
function lut(m) {
  return m === 32 || m === 9;
}
const Ooe = {
  legacy: new zlt(),
  advanced: new nut()
};
function uA(m, E) {
  const C = Math.pow(10, E);
  return Math.round(m * C) / C;
}
class a_ {
  constructor(E, C, U, le = 1) {
    this._rgbaBrand = void 0, this.r = Math.min(255, Math.max(0, E)) | 0, this.g = Math.min(255, Math.max(0, C)) | 0, this.b = Math.min(255, Math.max(0, U)) | 0, this.a = uA(Math.max(Math.min(1, le), 0), 3);
  }
  static equals(E, C) {
    return E.r === C.r && E.g === C.g && E.b === C.b && E.a === C.a;
  }
}
class D0 {
  constructor(E, C, U, le) {
    this._hslaBrand = void 0, this.h = Math.max(Math.min(360, E), 0) | 0, this.s = uA(Math.max(Math.min(1, C), 0), 3), this.l = uA(Math.max(Math.min(1, U), 0), 3), this.a = uA(Math.max(Math.min(1, le), 0), 3);
  }
  static equals(E, C) {
    return E.h === C.h && E.s === C.s && E.l === C.l && E.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(E) {
    const C = E.r / 255, U = E.g / 255, le = E.b / 255, me = E.a, De = Math.max(C, U, le), et = Math.min(C, U, le);
    let vt = 0, Ie = 0;
    const ze = (et + De) / 2, Zt = De - et;
    if (Zt > 0) {
      switch (Ie = Math.min(ze <= 0.5 ? Zt / (2 * ze) : Zt / (2 - 2 * ze), 1), De) {
        case C:
          vt = (U - le) / Zt + (U < le ? 6 : 0);
          break;
        case U:
          vt = (le - C) / Zt + 2;
          break;
        case le:
          vt = (C - U) / Zt + 4;
          break;
      }
      vt *= 60, vt = Math.round(vt);
    }
    return new D0(vt, Ie, ze, me);
  }
  static _hue2rgb(E, C, U) {
    return U < 0 && (U += 1), U > 1 && (U -= 1), U < 1 / 6 ? E + (C - E) * 6 * U : U < 1 / 2 ? C : U < 2 / 3 ? E + (C - E) * (2 / 3 - U) * 6 : E;
  }
  /**
   * 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(E) {
    const C = E.h / 360, { s: U, l: le, a: me } = E;
    let De, et, vt;
    if (U === 0)
      De = et = vt = le;
    else {
      const Ie = le < 0.5 ? le * (1 + U) : le + U - le * U, ze = 2 * le - Ie;
      De = D0._hue2rgb(ze, Ie, C + 1 / 3), et = D0._hue2rgb(ze, Ie, C), vt = D0._hue2rgb(ze, Ie, C - 1 / 3);
    }
    return new a_(Math.round(De * 255), Math.round(et * 255), Math.round(vt * 255), me);
  }
}
class KD {
  constructor(E, C, U, le) {
    this._hsvaBrand = void 0, this.h = Math.max(Math.min(360, E), 0) | 0, this.s = uA(Math.max(Math.min(1, C), 0), 3), this.v = uA(Math.max(Math.min(1, U), 0), 3), this.a = uA(Math.max(Math.min(1, le), 0), 3);
  }
  static equals(E, C) {
    return E.h === C.h && E.s === C.s && E.v === C.v && E.a === C.a;
  }
  // from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm
  static fromRGBA(E) {
    const C = E.r / 255, U = E.g / 255, le = E.b / 255, me = Math.max(C, U, le), De = Math.min(C, U, le), et = me - De, vt = me === 0 ? 0 : et / me;
    let Ie;
    return et === 0 ? Ie = 0 : me === C ? Ie = ((U - le) / et % 6 + 6) % 6 : me === U ? Ie = (le - C) / et + 2 : Ie = (C - U) / et + 4, new KD(Math.round(Ie * 60), vt, me, E.a);
  }
  // from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm
  static toRGBA(E) {
    const { h: C, s: U, v: le, a: me } = E, De = le * U, et = De * (1 - Math.abs(C / 60 % 2 - 1)), vt = le - De;
    let [Ie, ze, Zt] = [0, 0, 0];
    return C < 60 ? (Ie = De, ze = et) : C < 120 ? (Ie = et, ze = De) : C < 180 ? (ze = De, Zt = et) : C < 240 ? (ze = et, Zt = De) : C < 300 ? (Ie = et, Zt = De) : C <= 360 && (Ie = De, Zt = et), Ie = Math.round((Ie + vt) * 255), ze = Math.round((ze + vt) * 255), Zt = Math.round((Zt + vt) * 255), new a_(Ie, ze, Zt, me);
  }
}
class ol {
  static fromHex(E) {
    return ol.Format.CSS.parseHex(E) || ol.red;
  }
  static equals(E, C) {
    return !E && !C ? !0 : !E || !C ? !1 : E.equals(C);
  }
  get hsla() {
    return this._hsla ? this._hsla : D0.fromRGBA(this.rgba);
  }
  get hsva() {
    return this._hsva ? this._hsva : KD.fromRGBA(this.rgba);
  }
  constructor(E) {
    if (E)
      if (E instanceof a_)
        this.rgba = E;
      else if (E instanceof D0)
        this._hsla = E, this.rgba = D0.toRGBA(E);
      else if (E instanceof KD)
        this._hsva = E, this.rgba = KD.toRGBA(E);
      else
        throw new Error("Invalid color ctor argument");
    else
      throw new Error("Color needs a value");
  }
  equals(E) {
    return !!E && a_.equals(this.rgba, E.rgba) && D0.equals(this.hsla, E.hsla) && KD.equals(this.hsva, E.hsva);
  }
  /**
   * http://www.w3.org/TR/WCAG20/#relativeluminancedef
   * Returns the number in the set [0, 1]. O => Darkest Black. 1 => Lightest white.
   */
  getRelativeLuminance() {
    const E = ol._relativeLuminanceForComponent(this.rgba.r), C = ol._relativeLuminanceForComponent(this.rgba.g), U = ol._relativeLuminanceForComponent(this.rgba.b), le = 0.2126 * E + 0.7152 * C + 0.0722 * U;
    return uA(le, 4);
  }
  static _relativeLuminanceForComponent(E) {
    const C = E / 255;
    return C <= 0.03928 ? C / 12.92 : Math.pow((C + 0.055) / 1.055, 2.4);
  }
  /**
   * http://www.w3.org/TR/WCAG20/#contrast-ratiodef
   * Returns the contrast ration number in the set [1, 21].
   */
  getContrastRatio(E) {
    const C = this.getRelativeLuminance(), U = E.getRelativeLuminance();
    return C > U ? (C + 0.05) / (U + 0.05) : (U + 0.05) / (C + 0.05);
  }
  /**
   *	http://24ways.org/2010/calculating-color-contrast
   *  Return 'true' if darker color otherwise 'false'
   */
  isDarker() {
    return (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1e3 < 128;
  }
  /**
   *	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(E) {
    const C = this.getRelativeLuminance(), U = E.getRelativeLuminance();
    return C > U;
  }
  isDarkerThan(E) {
    const C = this.getRelativeLuminance(), U = E.getRelativeLuminance();
    return C < U;
  }
  lighten(E) {
    return new ol(new D0(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * E, this.hsla.a));
  }
  darken(E) {
    return new ol(new D0(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * E, this.hsla.a));
  }
  transparent(E) {
    const { r: C, g: U, b: le, a: me } = this.rgba;
    return new ol(new a_(C, U, le, me * E));
  }
  isTransparent() {
    return this.rgba.a === 0;
  }
  isOpaque() {
    return this.rgba.a === 1;
  }
  opposite() {
    return new ol(new a_(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));
  }
  blend(E) {
    const C = E.rgba, U = this.rgba.a, le = C.a, me = U + le * (1 - U);
    if (me < 1e-6)
      return ol.transparent;
    const De = this.rgba.r * U / me + C.r * le * (1 - U) / me, et = this.rgba.g * U / me + C.g * le * (1 - U) / me, vt = this.rgba.b * U / me + C.b * le * (1 - U) / me;
    return new ol(new a_(De, et, vt, me));
  }
  makeOpaque(E) {
    if (this.isOpaque() || E.rgba.a !== 1)
      return this;
    const { r: C, g: U, b: le, a: me } = this.rgba;
    return new ol(new a_(E.rgba.r - me * (E.rgba.r - C), E.rgba.g - me * (E.rgba.g - U), E.rgba.b - me * (E.rgba.b - le), 1));
  }
  flatten(...E) {
    const C = E.reduceRight((U, le) => ol._flatten(le, U));
    return ol._flatten(this, C);
  }
  static _flatten(E, C) {
    const U = 1 - E.rgba.a;
    return new ol(new a_(U * C.rgba.r + E.rgba.a * E.rgba.r, U * C.rgba.g + E.rgba.a * E.rgba.g, U * C.rgba.b + E.rgba.a * E.rgba.b));
  }
  toString() {
    return this._toString || (this._toString = ol.Format.CSS.format(this)), this._toString;
  }
  static getLighterColor(E, C, U) {
    if (E.isLighterThan(C))
      return E;
    U = U || 0.5;
    const le = E.getRelativeLuminance(), me = C.getRelativeLuminance();
    return U = U * (me - le) / me, E.lighten(U);
  }
  static getDarkerColor(E, C, U) {
    if (E.isDarkerThan(C))
      return E;
    U = U || 0.5;
    const le = E.getRelativeLuminance(), me = C.getRelativeLuminance();
    return U = U * (le - me) / le, E.darken(U);
  }
}
ol.white = new ol(new a_(255, 255, 255, 1));
ol.black = new ol(new a_(0, 0, 0, 1));
ol.red = new ol(new a_(255, 0, 0, 1));
ol.blue = new ol(new a_(0, 0, 255, 1));
ol.green = new ol(new a_(0, 255, 0, 1));
ol.cyan = new ol(new a_(0, 255, 255, 1));
ol.lightgrey = new ol(new a_(211, 211, 211, 1));
ol.transparent = new ol(new a_(0, 0, 0, 0));
(function(m) {
  (function(E) {
    (function(C) {
      function U(Hn) {
        return Hn.rgba.a === 1 ? `rgb(${Hn.rgba.r}, ${Hn.rgba.g}, ${Hn.rgba.b})` : m.Format.CSS.formatRGBA(Hn);
      }
      C.formatRGB = U;
      function le(Hn) {
        return `rgba(${Hn.rgba.r}, ${Hn.rgba.g}, ${Hn.rgba.b}, ${+Hn.rgba.a.toFixed(2)})`;
      }
      C.formatRGBA = le;
      function me(Hn) {
        return Hn.hsla.a === 1 ? `hsl(${Hn.hsla.h}, ${(Hn.hsla.s * 100).toFixed(2)}%, ${(Hn.hsla.l * 100).toFixed(2)}%)` : m.Format.CSS.formatHSLA(Hn);
      }
      C.formatHSL = me;
      function De(Hn) {
        return `hsla(${Hn.hsla.h}, ${(Hn.hsla.s * 100).toFixed(2)}%, ${(Hn.hsla.l * 100).toFixed(2)}%, ${Hn.hsla.a.toFixed(2)})`;
      }
      C.formatHSLA = De;
      function et(Hn) {
        const ri = Hn.toString(16);
        return ri.length !== 2 ? "0" + ri : ri;
      }
      function vt(Hn) {
        return `#${et(Hn.rgba.r)}${et(Hn.rgba.g)}${et(Hn.rgba.b)}`;
      }
      C.formatHex = vt;
      function Ie(Hn, ri = !1) {
        return ri && Hn.rgba.a === 1 ? m.Format.CSS.formatHex(Hn) : `#${et(Hn.rgba.r)}${et(Hn.rgba.g)}${et(Hn.rgba.b)}${et(Math.round(Hn.rgba.a * 255))}`;
      }
      C.formatHexA = Ie;
      function ze(Hn) {
        return Hn.isOpaque() ? m.Format.CSS.formatHex(Hn) : m.Format.CSS.formatRGBA(Hn);
      }
      C.format = ze;
      function Zt(Hn) {
        const ri = Hn.length;
        if (ri === 0 || Hn.charCodeAt(0) !== 35)
          return null;
        if (ri === 7) {
          const gi = 16 * sn(Hn.charCodeAt(1)) + sn(Hn.charCodeAt(2)), Wa = 16 * sn(Hn.charCodeAt(3)) + sn(Hn.charCodeAt(4)), Rn = 16 * sn(Hn.charCodeAt(5)) + sn(Hn.charCodeAt(6));
          return new m(new a_(gi, Wa, Rn, 1));
        }
        if (ri === 9) {
          const gi = 16 * sn(Hn.charCodeAt(1)) + sn(Hn.charCodeAt(2)), Wa = 16 * sn(Hn.charCodeAt(3)) + sn(Hn.charCodeAt(4)), Rn = 16 * sn(Hn.charCodeAt(5)) + sn(Hn.charCodeAt(6)), cn = 16 * sn(Hn.charCodeAt(7)) + sn(Hn.charCodeAt(8));
          return new m(new a_(gi, Wa, Rn, cn / 255));
        }
        if (ri === 4) {
          const gi = sn(Hn.charCodeAt(1)), Wa = sn(Hn.charCodeAt(2)), Rn = sn(Hn.charCodeAt(3));
          return new m(new a_(16 * gi + gi, 16 * Wa + Wa, 16 * Rn + Rn));
        }
        if (ri === 5) {
          const gi = sn(Hn.charCodeAt(1)), Wa = sn(Hn.charCodeAt(2)), Rn = sn(Hn.charCodeAt(3)), cn = sn(Hn.charCodeAt(4));
          return new m(new a_(16 * gi + gi, 16 * Wa + Wa, 16 * Rn + Rn, (16 * cn + cn) / 255));
        }
        return null;
      }
      C.parseHex = Zt;
      function sn(Hn) {
        switch (Hn) {
          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;
      }
    })(E.CSS || (E.CSS = {}));
  })(m.Format || (m.Format = {}));
})(ol || (ol = {}));
function aNe(m) {
  const E = [];
  for (const C of m) {
    const U = Number(C);
    (U || U === 0 && C.replace(/\s/g, "") !== "") && E.push(U);
  }
  return E;
}
function ose(m, E, C, U) {
  return {
    red: m / 255,
    blue: C / 255,
    green: E / 255,
    alpha: U
  };
}
function v4(m, E) {
  const C = E.index, U = E[0].length;
  if (!C)
    return;
  const le = m.positionAt(C);
  return {
    startLineNumber: le.lineNumber,
    startColumn: le.column,
    endLineNumber: le.lineNumber,
    endColumn: le.column + U
  };
}
function uut(m, E) {
  if (!m)
    return;
  const C = ol.Format.CSS.parseHex(E);
  if (C)
    return {
      range: m,
      color: ose(C.rgba.r, C.rgba.g, C.rgba.b, C.rgba.a)
    };
}
function MRe(m, E, C) {
  if (!m || E.length !== 1)
    return;
  const le = E[0].values(), me = aNe(le);
  return {
    range: m,
    color: ose(me[0], me[1], me[2], C ? me[3] : 1)
  };
}
function FRe(m, E, C) {
  if (!m || E.length !== 1)
    return;
  const le = E[0].values(), me = aNe(le), De = new ol(new D0(me[0], me[1] / 100, me[2] / 100, C ? me[3] : 1));
  return {
    range: m,
    color: ose(De.rgba.r, De.rgba.g, De.rgba.b, De.rgba.a)
  };
}
function b4(m, E) {
  return typeof m == "string" ? [...m.matchAll(E)] : m.findMatches(E);
}
function dut(m) {
  const E = [], U = b4(m, /\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);
  if (U.length > 0)
    for (const le of U) {
      const me = le.filter((Ie) => Ie !== void 0), De = me[1], et = me[2];
      if (!et)
        continue;
      let vt;
      if (De === "rgb") {
        const Ie = /^\(\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;
        vt = MRe(v4(m, le), b4(et, Ie), !1);
      } else if (De === "rgba") {
        const Ie = /^\(\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;
        vt = MRe(v4(m, le), b4(et, Ie), !0);
      } else if (De === "hsl") {
        const Ie = /^\(\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;
        vt = FRe(v4(m, le), b4(et, Ie), !1);
      } else if (De === "hsla") {
        const Ie = /^\(\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;
        vt = FRe(v4(m, le), b4(et, Ie), !0);
      } else
        De === "#" && (vt = uut(v4(m, le), De + et));
      vt && E.push(vt);
    }
  return E;
}
function fut(m) {
  return !m || typeof m.getValue != "function" || typeof m.positionAt != "function" ? [] : dut(m);
}
var qE = globalThis && globalThis.__awaiter || function(m, E, C, U) {
  function le(me) {
    return me instanceof C ? me : new C(function(De) {
      De(me);
    });
  }
  return new (C || (C = Promise))(function(me, De) {
    function et(ze) {
      try {
        Ie(U.next(ze));
      } catch (Zt) {
        De(Zt);
      }
    }
    function vt(ze) {
      try {
        Ie(U.throw(ze));
      } catch (Zt) {
        De(Zt);
      }
    }
    function Ie(ze) {
      ze.done ? me(ze.value) : le(ze.value).then(et, vt);
    }
    Ie((U = U.apply(m, E || [])).next());
  });
};
class _ut extends vlt {
  get uri() {
    return this._uri;
  }
  get eol() {
    return this._eol;
  }
  getValue() {
    return this.getText();
  }
  findMatches(E) {
    const C = [];
    for (let U = 0; U < this._lines.length; U++) {
      const le = this._lines[U], me = this.offsetAt(new Up(U + 1, 1)), De = le.matchAll(E);
      for (const et of De)
        (et.index || et.index === 0) && (et.index = et.index + me), C.push(et);
    }
    return C;
  }
  getLinesContent() {
    return this._lines.slice(0);
  }
  getLineCount() {
    return this._lines.length;
  }
  getLineContent(E) {
    return this._lines[E - 1];
  }
  getWordAtPosition(E, C) {
    const U = nse(E.column, Tlt(C), this._lines[E.lineNumber - 1], 0);
    return U ? new vl(E.lineNumber, U.startColumn, E.lineNumber, U.endColumn) : null;
  }
  getWordUntilPosition(E, C) {
    const U = this.getWordAtPosition(E, C);
    return U ? {
      word: this._lines[E.lineNumber - 1].substring(U.startColumn - 1, E.column - 1),
      startColumn: U.startColumn,
      endColumn: E.column
    } : {
      word: "",
      startColumn: E.column,
      endColumn: E.column
    };
  }
  words(E) {
    const C = this._lines, U = this._wordenize.bind(this);
    let le = 0, me = "", De = 0, et = [];
    return {
      *[Symbol.iterator]() {
        for (; ; )
          if (De < et.length) {
            const vt = me.substring(et[De].start, et[De].end);
            De += 1, yield vt;
          } else if (le < C.length)
            me = C[le], et = U(me, E), De = 0, le += 1;
          else
            break;
      }
    };
  }
  getLineWords(E, C) {
    const U = this._lines[E - 1], le = this._wordenize(U, C), me = [];
    for (const De of le)
      me.push({
        word: U.substring(De.start, De.end),
        startColumn: De.start + 1,
        endColumn: De.end + 1
      });
    return me;
  }
  _wordenize(E, C) {
    const U = [];
    let le;
    for (C.lastIndex = 0; (le = C.exec(E)) && le[0].length !== 0; )
      U.push({ start: le.index, end: le.index + le[0].length });
    return U;
  }
  getValueInRange(E) {
    if (E = this._validateRange(E), E.startLineNumber === E.endLineNumber)
      return this._lines[E.startLineNumber - 1].substring(E.startColumn - 1, E.endColumn - 1);
    const C = this._eol, U = E.startLineNumber - 1, le = E.endLineNumber - 1, me = [];
    me.push(this._lines[U].substring(E.startColumn - 1));
    for (let De = U + 1; De < le; De++)
      me.push(this._lines[De]);
    return me.push(this._lines[le].substring(0, E.endColumn - 1)), me.join(C);
  }
  offsetAt(E) {
    return E = this._validatePosition(E), this._ensureLineStarts(), this._lineStarts.getPrefixSum(E.lineNumber - 2) + (E.column - 1);
  }
  positionAt(E) {
    E = Math.floor(E), E = Math.max(0, E), this._ensureLineStarts();
    const C = this._lineStarts.getIndexOf(E), U = this._lines[C.index].length;
    return {
      lineNumber: 1 + C.index,
      column: 1 + Math.min(C.remainder, U)
    };
  }
  _validateRange(E) {
    const C = this._validatePosition({ lineNumber: E.startLineNumber, column: E.startColumn }), U = this._validatePosition({ lineNumber: E.endLineNumber, column: E.endColumn });
    return C.lineNumber !== E.startLineNumber || C.column !== E.startColumn || U.lineNumber !== E.endLineNumber || U.column !== E.endColumn ? {
      startLineNumber: C.lineNumber,
      startColumn: C.column,
      endLineNumber: U.lineNumber,
      endColumn: U.column
    } : E;
  }
  _validatePosition(E) {
    if (!Up.isIPosition(E))
      throw new Error("bad position");
    let { lineNumber: C, column: U } = E, le = !1;
    if (C < 1)
      C = 1, U = 1, le = !0;
    else if (C > this._lines.length)
      C = this._lines.length, U = this._lines[C - 1].length + 1, le = !0;
    else {
      const me = this._lines[C - 1].length + 1;
      U < 1 ? (U = 1, le = !0) : U > me && (U = me, le = !0);
    }
    return le ? { lineNumber: C, column: U } : E;
  }
}
class sA {
  constructor(E, C) {
    this._host = E, this._models = /* @__PURE__ */ Object.create(null), this._foreignModuleFactory = C, this._foreignModule = null;
  }
  dispose() {
    this._models = /* @__PURE__ */ Object.create(null);
  }
  _getModel(E) {
    return this._models[E];
  }
  _getModels() {
    const E = [];
    return Object.keys(this._models).forEach((C) => E.push(this._models[C])), E;
  }
  acceptNewModel(E) {
    this._models[E.url] = new _ut($L.parse(E.url), E.lines, E.EOL, E.versionId);
  }
  acceptModelChanged(E, C) {
    if (!this._models[E])
      return;
    this._models[E].onEvents(C);
  }
  acceptRemovedModel(E) {
    this._models[E] && delete this._models[E];
  }
  computeUnicodeHighlights(E, C, U) {
    return qE(this, void 0, void 0, function* () {
      const le = this._getModel(E);
      return le ? jlt.computeUnicodeHighlights(le, C, U) : { ranges: [], hasMore: !1, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 };
    });
  }
  // ---- BEGIN diff --------------------------------------------------------------------------
  computeDiff(E, C, U, le) {
    return qE(this, void 0, void 0, function* () {
      const me = this._getModel(E), De = this._getModel(C);
      return !me || !De ? null : sA.computeDiff(me, De, U, le);
    });
  }
  static computeDiff(E, C, U, le) {
    const me = le === "advanced" ? Ooe.advanced : Ooe.legacy, De = E.getLinesContent(), et = C.getLinesContent(), vt = me.computeDiff(De, et, U);
    return {
      identical: vt.changes.length > 0 ? !1 : this._modelsAreIdentical(E, C),
      quitEarly: vt.hitTimeout,
      changes: vt.changes.map((ze) => {
        var Zt;
        return [ze.originalRange.startLineNumber, ze.originalRange.endLineNumberExclusive, ze.modifiedRange.startLineNumber, ze.modifiedRange.endLineNumberExclusive, (Zt = ze.innerChanges) === null || Zt === void 0 ? void 0 : Zt.map((sn) => [
          sn.originalRange.startLineNumber,
          sn.originalRange.startColumn,
          sn.originalRange.endLineNumber,
          sn.originalRange.endColumn,
          sn.modifiedRange.startLineNumber,
          sn.modifiedRange.startColumn,
          sn.modifiedRange.endLineNumber,
          sn.modifiedRange.endColumn
        ])];
      })
    };
  }
  static _modelsAreIdentical(E, C) {
    const U = E.getLineCount(), le = C.getLineCount();
    if (U !== le)
      return !1;
    for (let me = 1; me <= U; me++) {
      const De = E.getLineContent(me), et = C.getLineContent(me);
      if (De !== et)
        return !1;
    }
    return !0;
  }
  computeDirtyDiff(E, C, U) {
    return qE(this, void 0, void 0, function* () {
      const le = this._getModel(E), me = this._getModel(C);
      if (!le || !me)
        return null;
      const De = le.getLinesContent(), et = me.getLinesContent();
      return new iNe(De, et, {
        shouldComputeCharChanges: !1,
        shouldPostProcessCharChanges: !1,
        shouldIgnoreTrimWhitespace: U,
        shouldMakePrettyDiff: !0,
        maxComputationTime: 1e3
      }).computeDiff().changes;
    });
  }
  computeMoreMinimalEdits(E, C, U) {
    return qE(this, void 0, void 0, function* () {
      const le = this._getModel(E);
      if (!le)
        return C;
      const me = [];
      let De;
      C = C.slice(0).sort((et, vt) => {
        if (et.range && vt.range)
          return vl.compareRangesUsingStarts(et.range, vt.range);
        const Ie = et.range ? 0 : 1, ze = vt.range ? 0 : 1;
        return Ie - ze;
      });
      for (let { range: et, text: vt, eol: Ie } of C) {
        if (typeof Ie == "number" && (De = Ie), vl.isEmpty(et) && !vt)
          continue;
        const ze = le.getValueInRange(et);
        if (vt = vt.replace(/\r\n|\n|\r/g, le.eol), ze === vt)
          continue;
        if (Math.max(vt.length, ze.length) > sA._diffLimit) {
          me.push({ range: et, text: vt });
          continue;
        }
        const Zt = elt(ze, vt, U), sn = le.offsetAt(vl.lift(et).getStartPosition());
        for (const Hn of Zt) {
          const ri = le.positionAt(sn + Hn.originalStart), gi = le.positionAt(sn + Hn.originalStart + Hn.originalLength), Wa = {
            text: vt.substr(Hn.modifiedStart, Hn.modifiedLength),
            range: { startLineNumber: ri.lineNumber, startColumn: ri.column, endLineNumber: gi.lineNumber, endColumn: gi.column }
          };
          le.getValueInRange(Wa.range) !== Wa.text && me.push(Wa);
        }
      }
      return typeof De == "number" && me.push({ eol: De, text: "", range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } }), me;
    });
  }
  computeHumanReadableDiff(E, C, U) {
    return qE(this, void 0, void 0, function* () {
      const le = this._getModel(E);
      if (!le)
        return C;
      const me = [];
      let De;
      C = C.slice(0).sort((et, vt) => {
        if (et.range && vt.range)
          return vl.compareRangesUsingStarts(et.range, vt.range);
        const Ie = et.range ? 0 : 1, ze = vt.range ? 0 : 1;
        return Ie - ze;
      });
      for (let { range: et, text: vt, eol: Ie } of C) {
        let gi = function(Rn, cn) {
          return new Up(Rn.lineNumber + cn.lineNumber - 1, cn.lineNumber === 1 ? Rn.column + cn.column - 1 : cn.column);
        }, Wa = function(Rn, cn) {
          const $i = [];
          for (let Qi = cn.startLineNumber; Qi <= cn.endLineNumber; Qi++) {
            const ts = Rn[Qi - 1];
            Qi === cn.startLineNumber && Qi === cn.endLineNumber ? $i.push(ts.substring(cn.startColumn - 1, cn.endColumn - 1)) : Qi === cn.startLineNumber ? $i.push(ts.substring(cn.startColumn - 1)) : Qi === cn.endLineNumber ? $i.push(ts.substring(0, cn.endColumn - 1)) : $i.push(ts);
          }
          return $i;
        };
        if (typeof Ie == "number" && (De = Ie), vl.isEmpty(et) && !vt)
          continue;
        const ze = le.getValueInRange(et);
        if (vt = vt.replace(/\r\n|\n|\r/g, le.eol), ze === vt)
          continue;
        if (Math.max(vt.length, ze.length) > sA._diffLimit) {
          me.push({ range: et, text: vt });
          continue;
        }
        const Zt = ze.split(/\r\n|\n|\r/), sn = vt.split(/\r\n|\n|\r/), Hn = Ooe.advanced.computeDiff(Zt, sn, U), ri = vl.lift(et).getStartPosition();
        for (const Rn of Hn.changes)
          if (Rn.innerChanges)
            for (const cn of Rn.innerChanges)
              me.push({
                range: vl.fromPositions(gi(ri, cn.originalRange.getStartPosition()), gi(ri, cn.originalRange.getEndPosition())),
                text: Wa(sn, cn.modifiedRange).join(le.eol)
              });
          else
            throw new ZL("The experimental diff algorithm always produces inner changes");
      }
      return typeof De == "number" && me.push({ eol: De, text: "", range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } }), me;
    });
  }
  // ---- END minimal edits ---------------------------------------------------------------
  computeLinks(E) {
    return qE(this, void 0, void 0, function* () {
      const C = this._getModel(E);
      return C ? Ilt(C) : null;
    });
  }
  // --- BEGIN default document colors -----------------------------------------------------------
  computeDefaultDocumentColors(E) {
    return qE(this, void 0, void 0, function* () {
      const C = this._getModel(E);
      return C ? fut(C) : null;
    });
  }
  textualSuggest(E, C, U, le) {
    return qE(this, void 0, void 0, function* () {
      const me = new oj(!0), De = new RegExp(U, le), et = /* @__PURE__ */ new Set();
      e:
        for (const vt of E) {
          const Ie = this._getModel(vt);
          if (Ie) {
            for (const ze of Ie.words(De))
              if (!(ze === C || !isNaN(Number(ze))) && (et.add(ze), et.size > sA._suggestionsLimit))
                break e;
          }
        }
      return { words: Array.from(et), duration: me.elapsed() };
    });
  }
  // ---- END suggest --------------------------------------------------------------------------
  //#region -- word ranges --
  computeWordRanges(E, C, U, le) {
    return qE(this, void 0, void 0, function* () {
      const me = this._getModel(E);
      if (!me)
        return /* @__PURE__ */ Object.create(null);
      const De = new RegExp(U, le), et = /* @__PURE__ */ Object.create(null);
      for (let vt = C.startLineNumber; vt < C.endLineNumber; vt++) {
        const Ie = me.getLineWords(vt, De);
        for (const ze of Ie) {
          if (!isNaN(Number(ze.word)))
            continue;
          let Zt = et[ze.word];
          Zt || (Zt = [], et[ze.word] = Zt), Zt.push({
            startLineNumber: vt,
            startColumn: ze.startColumn,
            endLineNumber: vt,
            endColumn: ze.endColumn
          });
        }
      }
      return et;
    });
  }
  //#endregion
  navigateValueSet(E, C, U, le, me) {
    return qE(this, void 0, void 0, function* () {
      const De = this._getModel(E);
      if (!De)
        return null;
      const et = new RegExp(le, me);
      C.startColumn === C.endColumn && (C = {
        startLineNumber: C.startLineNumber,
        startColumn: C.startColumn,
        endLineNumber: C.endLineNumber,
        endColumn: C.endColumn + 1
      });
      const vt = De.getValueInRange(C), Ie = De.getWordAtPosition({ lineNumber: C.startLineNumber, column: C.startColumn }, et);
      if (!Ie)
        return null;
      const ze = De.getValueInRange(Ie);
      return Woe.INSTANCE.navigateValueSet(C, vt, Ie, ze, U);
    });
  }
  // ---- BEGIN foreign module support --------------------------------------------------------------------------
  loadForeignModule(E, C, U) {
    const De = {
      host: Nct(U, (et, vt) => this._host.fhr(et, vt)),
      getMirrorModels: () => this._getModels()
    };
    return this._foreignModuleFactory ? (this._foreignModule = this._foreignModuleFactory(De, C), Promise.resolve(Goe(this._foreignModule))) : Promise.reject(new Error("Unexpected usage"));
  }
  // foreign method request
  fmr(E, C) {
    if (!this._foreignModule || typeof this._foreignModule[E] != "function")
      return Promise.reject(new Error("Missing requestHandler or method: " + E));
    try {
      return Promise.resolve(this._foreignModule[E].apply(this._foreignModule, C));
    } catch (U) {
      return Promise.reject(U);
    }
  }
}
sA._diffLimit = 1e5;
sA._suggestionsLimit = 1e4;
typeof importScripts == "function" && (globalThis.monaco = Mlt());
let ese = !1;
function oNe(m) {
  if (ese)
    return;
  ese = !0;
  const E = new Qct((C) => {
    globalThis.postMessage(C);
  }, (C) => new sA(C, m));
  globalThis.onmessage = (C) => {
    E.onmessage(C.data);
  };
}
globalThis.onmessage = (m) => {
  ese || oNe(null);
};
/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Version: 0.38.0(0e330ae453813de4e6cf272460fb79c7117073d0)
 * Released under the MIT license
 * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
 *-----------------------------------------------------------------------------*/
var put = Object.defineProperty, mut = (m, E) => {
  for (var C in E)
    put(m, C, { get: E[C], enumerable: !0 });
}, sNe = {};
mut(sNe, {
  EndOfLineState: () => yut,
  IndentStyle: () => but,
  ScriptKind: () => XL,
  ScriptTarget: () => Eut,
  TokenClass: () => Tut,
  createClassifier: () => hut,
  createLanguageService: () => cNe,
  displayPartsToString: () => gut,
  flattenDiagnosticMessageText: () => vut,
  typescript: () => lNe
});
var Kb = void 0, YV = { exports: {} }, Qb = (() => {
  var m = Object.defineProperty, E = Object.getOwnPropertyNames, C = (e, t) => function() {
    return e && (t = (0, e[E(e)[0]])(e = 0)), t;
  }, U = (e, t) => function() {
    return t || (0, e[E(e)[0]])((t = { exports: {} }).exports, t), t.exports;
  }, le = (e, t) => {
    for (var r in t)
      m(e, r, { get: t[r], enumerable: !0 });
  }, me, De, et, vt = C({
    "src/compiler/corePublic.ts"() {
      me = "5.0", De = "5.0.2", et = /* @__PURE__ */ ((e) => (e[e.LessThan = -1] = "LessThan", e[e.EqualTo = 0] = "EqualTo", e[e.GreaterThan = 1] = "GreaterThan", e))(et || {});
    }
  });
  function Ie(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 Zt(e, t) {
    if (e)
      for (let r = e.length - 1; r >= 0; r--) {
        const i = t(e[r], r);
        if (i)
          return i;
      }
  }
  function sn(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 Hn(e, t) {
    for (const r of e) {
      const i = t(r);
      if (i !== void 0)
        return i;
    }
  }
  function ri(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 gi(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 Wa(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 Rn(e, t) {
    if (e) {
      for (let r = 0; r < e.length; r++)
        if (!t(e[r], r))
          return !1;
    }
    return !0;
  }
  function cn(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 $i(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 Qi(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 ts(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 rd(e, t) {
    for (let r = 0; r < e.length; r++) {
      const i = t(e[r], r);
      if (i)
        return i;
    }
    return D.fail();
  }
  function wi(e, t, r = M0) {
    if (e) {
      for (const i of e)
        if (r(i, t))
          return !0;
    }
    return !1;
  }
  function Qs(e, t, r = M0) {
    return e.length === t.length && e.every((i, o) => r(i, t[o]));
  }
  function Ma(e, t, r) {
    for (let i = r || 0; i < e.length; i++)
      if (wi(t, e.charCodeAt(i)))
        return i;
    return -1;
  }
  function Zi(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 yn(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 ki(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 co(e) {
    e.length = 0;
  }
  function en(e, t) {
    let r;
    if (e) {
      r = [];
      for (let i = 0; i < e.length; i++)
        r.push(t(e[i], i));
    }
    return r;
  }
  function* Ql(e, t) {
    for (const r of e)
      yield t(r);
  }
  function Zs(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 id(e) {
    const t = [];
    for (const r of e)
      r && (Ba(r) ? bi(t, r) : t.push(r));
    return t;
  }
  function wo(e, t) {
    let r;
    if (e)
      for (let i = 0; i < e.length; i++) {
        const o = t(e[i], i);
        o && (Ba(o) ? r = bi(r, o) : r = Bn(r, o));
      }
    return r || rt;
  }
  function Zb(e, t) {
    const r = [];
    if (e)
      for (let i = 0; i < e.length; i++) {
        const o = t(e[i], i);
        o && (Ba(o) ? bi(r, o) : r.push(o));
      }
    return r;
  }
  function* O0(e, t) {
    for (const r of e) {
      const i = t(r);
      i && (yield* i);
    }
  }
  function A4(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 || Ba(s)) && (r || (r = e.slice(0, i)), Ba(s) ? bi(r, s) : r.push(s));
      }
    return r || e;
  }
  function NS(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 fa(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* dA(e, t) {
    for (const r of e) {
      const i = t(r);
      i !== void 0 && (yield i);
    }
  }
  function uNe(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 [l, f] = s;
        l !== void 0 && f !== void 0 && r.set(l, f);
      }
    }), r;
  }
  function ZD(e, t, r) {
    if (e.has(t))
      return e.get(t);
    const i = r();
    return e.set(t, i), i;
  }
  function e1(e, t) {
    return e.has(t) ? !1 : (e.add(t), !0);
  }
  function* dNe(e) {
    yield e;
  }
  function C4(e, t, r) {
    let i;
    if (e) {
      i = [];
      const o = e.length;
      let s, l, f = 0, d = 0;
      for (; f < o; ) {
        for (; d < o; ) {
          const y = e[d];
          if (l = t(y, d), d === 0)
            s = l;
          else if (l !== s)
            break;
          d++;
        }
        if (f < d) {
          const y = r(e.slice(f, d), s, f, d);
          y && i.push(y), f = d;
        }
        s = l, d++;
      }
    }
    return i;
  }
  function sse(e, t) {
    if (!e)
      return;
    const r = /* @__PURE__ */ new Map();
    return e.forEach((i, o) => {
      const [s, l] = t(o, i);
      r.set(s, l);
    }), 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 sj(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 ma(e, t) {
    return kt(t) ? kt(e) ? [...e, ...t] : t : e;
  }
  function fNe(e, t) {
    return t;
  }
  function eR(e) {
    return e.map(fNe);
  }
  function _Ne(e, t, r) {
    const i = eR(e);
    use(e, i, r);
    let o = e[i[0]];
    const s = [i[0]];
    for (let l = 1; l < i.length; l++) {
      const f = i[l], d = e[f];
      t(o, d) || (s.push(f), o = d);
    }
    return s.sort(), s.map((l) => e[l]);
  }
  function pNe(e, t) {
    const r = [];
    for (const i of e)
      c_(r, i, t);
    return r;
  }
  function fA(e, t, r) {
    return e.length === 0 ? [] : e.length === 1 ? e.slice() : r ? _Ne(e, t, r) : pNe(e, t);
  }
  function mNe(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 cj() {
    return [];
  }
  function _v(e, t, r, i) {
    if (e.length === 0)
      return e.push(t), !0;
    const o = pv(e, t, pc, r);
    return o < 0 ? (e.splice(~o, 0, t), !0) : i ? (e.splice(o, 0, t), !0) : !1;
  }
  function tR(e, t, r) {
    return mNe(eI(e, t), r || t || ku);
  }
  function cse(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 L4(e, t, r, i) {
    let o = 3;
    if (e.length < 2)
      return o;
    let s = t(e[0]);
    for (let l = 1, f = e.length; l < f && o !== 0; l++) {
      const d = t(e[l]);
      o & 1 && r(s, d) > 0 && (o &= -2), o & 2 && i(s, d) > 0 && (o &= -3), s = d;
    }
    return o;
  }
  function Vp(e, t, r = M0) {
    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 nR(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 lse(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 l = o; o < e.length; o++)
            switch (o > l && 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 Bn(e, t) {
    return t === void 0 ? e : e === void 0 ? [t] : (e.push(t), e);
  }
  function _A(e, t) {
    return e === void 0 ? t : t === void 0 ? e : Ba(e) ? Ba(t) ? ma(e, t) : Bn(e, t) : Ba(t) ? Bn(t, e) : [e, t];
  }
  function lj(e, t) {
    return t < 0 ? e.length + t : t;
  }
  function bi(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 : lj(t, r), i = i === void 0 ? t.length : lj(t, i);
    for (let o = r; o < i && o < t.length; o++)
      t[o] !== void 0 && e.push(t[o]);
    return e;
  }
  function c_(e, t, r) {
    return wi(e, t, r) ? !1 : (e.push(t), !0);
  }
  function ry(e, t, r) {
    return e ? (c_(e, t, r), e) : [t];
  }
  function use(e, t, r) {
    t.sort((i, o) => r(e[i], e[o]) || Vs(i, o));
  }
  function eI(e, t) {
    return e.length === 0 ? e : e.slice().sort(t);
  }
  function* hNe(e) {
    for (let t = e.length - 1; t >= 0; t--)
      yield e[t];
  }
  function iy(e, t) {
    const r = eR(e);
    return use(e, r, t), r.map((i) => e[i]);
  }
  function uj(e, t, r, i) {
    for (; r < i; ) {
      if (e[r] !== t[r])
        return !1;
      r++;
    }
    return !0;
  }
  function zl(e) {
    return e === void 0 || e.length === 0 ? void 0 : e[0];
  }
  function I4(e) {
    if (e)
      for (const t of e)
        return t;
  }
  function ss(e) {
    return D.assert(e.length !== 0), e[0];
  }
  function dse(e) {
    for (const t of e)
      return t;
    D.fail("iterator is empty");
  }
  function ec(e) {
    return e === void 0 || e.length === 0 ? void 0 : e[e.length - 1];
  }
  function Ho(e) {
    return D.assert(e.length !== 0), e[e.length - 1];
  }
  function Tm(e) {
    return e && e.length === 1 ? e[0] : void 0;
  }
  function dj(e) {
    return D.checkDefined(Tm(e));
  }
  function Sm(e) {
    return e && e.length === 1 ? e[0] : e;
  }
  function fj(e, t, r) {
    const i = e.slice(0);
    return i[t] = r, i;
  }
  function pv(e, t, r, i, o) {
    return OS(e, r(t), r, i, o);
  }
  function OS(e, t, r, i, o) {
    if (!kt(e))
      return -1;
    let s = o || 0, l = e.length - 1;
    for (; s <= l; ) {
      const f = s + (l - s >> 1), d = r(e[f], f);
      switch (i(d, t)) {
        case -1:
          s = f + 1;
          break;
        case 0:
          return f;
        case 1:
          l = f - 1;
          break;
      }
    }
    return ~s;
  }
  function Iu(e, t, r, i, o) {
    if (e && e.length > 0) {
      const s = e.length;
      if (s > 0) {
        let l = i === void 0 || i < 0 ? 0 : i;
        const f = o === void 0 || l + o > s - 1 ? s - 1 : l + o;
        let d;
        for (arguments.length <= 2 ? (d = e[l], l++) : d = r; l <= f; )
          d = t(d, e[l], l), l++;
        return d;
      }
    }
    return r;
  }
  function Rs(e, t) {
    return sy.call(e, t);
  }
  function rR(e, t) {
    return sy.call(e, t) ? e[t] : void 0;
  }
  function $h(e) {
    const t = [];
    for (const r in e)
      sy.call(e, r) && t.push(r);
    return t;
  }
  function gNe(e) {
    const t = [];
    do {
      const r = Object.getOwnPropertyNames(e);
      for (const i of r)
        c_(t, i);
    } while (e = Object.getPrototypeOf(e));
    return t;
  }
  function PS(e) {
    const t = [];
    for (const r in e)
      sy.call(e, r) && t.push(e[r]);
    return t;
  }
  function fse(e, t) {
    const r = new Array(e);
    for (let i = 0; i < e; i++)
      r[i] = t(i);
    return r;
  }
  function Do(e, t) {
    const r = [];
    for (const i of e)
      r.push(t ? t(i) : i);
    return r;
  }
  function iR(e, ...t) {
    for (const r of t)
      if (r !== void 0)
        for (const i in r)
          Rs(r, i) && (e[i] = r[i]);
    return e;
  }
  function _se(e, t, r = M0) {
    if (e === t)
      return !0;
    if (!e || !t)
      return !1;
    for (const i in e)
      if (sy.call(e, i) && (!sy.call(t, i) || !r(e[i], t[i])))
        return !1;
    for (const i in t)
      if (sy.call(t, i) && !sy.call(e, i))
        return !1;
    return !0;
  }
  function t1(e, t, r = pc) {
    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 pse(e, t, r = pc) {
    const i = [];
    for (const o of e)
      i[t(o)] = r(o);
    return i;
  }
  function aR(e, t, r = pc) {
    const i = l_();
    for (const o of e)
      i.add(t(o), r(o));
    return i;
  }
  function tI(e, t, r = pc) {
    return Do(aR(e, t).values(), r);
  }
  function mse(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 _j(e) {
    const t = {};
    for (const r in e)
      sy.call(e, r) && (t[r] = e[r]);
    return t;
  }
  function k4(e, t) {
    const r = {};
    for (const i in t)
      sy.call(t, i) && (r[i] = t[i]);
    for (const i in e)
      sy.call(e, i) && (r[i] = e[i]);
    return r;
  }
  function pj(e, t) {
    for (const r in t)
      sy.call(t, r) && (e[r] = t[r]);
  }
  function Fo(e, t) {
    return t ? t.bind(e) : void 0;
  }
  function l_() {
    const e = /* @__PURE__ */ new Map();
    return e.add = yNe, e.remove = vNe, e;
  }
  function yNe(e, t) {
    let r = this.get(e);
    return r ? r.push(t) : this.set(e, r = [t]), r;
  }
  function vNe(e, t) {
    const r = this.get(e);
    r && (cR(r, t), r.length || this.delete(e));
  }
  function hse() {
    return l_();
  }
  function mj(e) {
    const t = (e == null ? void 0 : e.slice()) || [];
    let r = 0;
    function i() {
      return r === t.length;
    }
    function o(...l) {
      t.push(...l);
    }
    function s() {
      if (i())
        throw new Error("Queue is empty");
      const l = 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 l;
    }
    return {
      enqueue: o,
      dequeue: s,
      isEmpty: i
    };
  }
  function bNe(e, t) {
    const r = /* @__PURE__ */ new Map();
    let i = 0;
    function* o() {
      for (const l of r.values())
        Ba(l) ? yield* l : yield l;
    }
    const s = {
      has(l) {
        const f = e(l);
        if (!r.has(f))
          return !1;
        const d = r.get(f);
        if (!Ba(d))
          return t(d, l);
        for (const y of d)
          if (t(y, l))
            return !0;
        return !1;
      },
      add(l) {
        const f = e(l);
        if (r.has(f)) {
          const d = r.get(f);
          if (Ba(d))
            wi(d, l, t) || (d.push(l), i++);
          else {
            const y = d;
            t(y, l) || (r.set(f, [y, l]), i++);
          }
        } else
          r.set(f, l), i++;
        return this;
      },
      delete(l) {
        const f = e(l);
        if (!r.has(f))
          return !1;
        const d = r.get(f);
        if (Ba(d)) {
          for (let y = 0; y < d.length; y++)
            if (t(d[y], l))
              return d.length === 1 ? r.delete(f) : d.length === 2 ? r.set(f, d[1 - y]) : gj(d, y), i--, !0;
        } else if (t(d, l))
          return r.delete(f), i--, !0;
        return !1;
      },
      clear() {
        r.clear(), i = 0;
      },
      get size() {
        return i;
      },
      forEach(l) {
        for (const f of Do(r.values()))
          if (Ba(f))
            for (const d of f)
              l(d, d, s);
          else {
            const d = f;
            l(d, d, s);
          }
      },
      keys() {
        return o();
      },
      values() {
        return o();
      },
      *entries() {
        for (const l of o())
          yield [l, l];
      },
      [Symbol.iterator]: () => o(),
      [Symbol.toStringTag]: r[Symbol.toStringTag]
    };
    return s;
  }
  function Ba(e) {
    return Array.isArray(e);
  }
  function oR(e) {
    return Ba(e) ? e : [e];
  }
  function Ua(e) {
    return typeof e == "string";
  }
  function ay(e) {
    return typeof e == "number";
  }
  function ii(e, t) {
    return e !== void 0 && t(e) ? e : void 0;
  }
  function ro(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 io(e) {
  }
  function n1() {
    return !1;
  }
  function r1() {
    return !0;
  }
  function P0() {
  }
  function pc(e) {
    return e;
  }
  function gse(e) {
    return e.toLowerCase();
  }
  function D_(e) {
    return Tj.test(e) ? e.replace(Tj, gse) : e;
  }
  function Va() {
    throw new Error("Not implemented");
  }
  function yd(e) {
    let t;
    return () => (e && (t = e(), e = void 0), t);
  }
  function xm(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 ENe(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 yse(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 TNe(e, t, r, i, o) {
    if (o) {
      const s = [];
      for (let l = 0; l < arguments.length; l++)
        s[l] = arguments[l];
      return (l) => Iu(s, (f, d) => d(f), l);
    } 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 M0(e, t) {
    return e === t;
  }
  function MS(e, t) {
    return e === t || e !== void 0 && t !== void 0 && e.toUpperCase() === t.toUpperCase();
  }
  function FS(e, t) {
    return M0(e, t);
  }
  function vse(e, t) {
    return e === t ? 0 : e === void 0 ? -1 : t === void 0 ? 1 : e < t ? -1 : 1;
  }
  function Vs(e, t) {
    return vse(e, t);
  }
  function w4(e, t) {
    return Vs(e == null ? void 0 : e.start, t == null ? void 0 : t.start) || Vs(e == null ? void 0 : e.length, t == null ? void 0 : t.length);
  }
  function hj(e, t) {
    return Iu(e, (r, i) => t(r, i) === -1 ? r : i);
  }
  function D4(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 bse(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 ku(e, t) {
    return vse(e, t);
  }
  function R4(e) {
    return e ? D4 : ku;
  }
  function Ese() {
    return U4;
  }
  function Tse(e) {
    U4 !== e && (U4 = e, xj = void 0);
  }
  function sR(e, t) {
    return (xj || (xj = Nse(U4)))(e, t);
  }
  function Sse(e, t, r, i) {
    return e === t ? 0 : e === void 0 ? -1 : t === void 0 ? 1 : i(e[r], t[r]);
  }
  function i1(e, t) {
    return Vs(e ? 1 : 0, t ? 1 : 0);
  }
  function nI(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 l of t) {
      const f = r(l);
      if (f !== void 0 && Math.abs(f.length - e.length) <= i) {
        if (f === e || f.length < 3 && f.toLowerCase() !== e.toLowerCase())
          continue;
        const d = SNe(e, f, o - 0.1);
        if (d === void 0)
          continue;
        D.assert(d < o), o = d, s = l;
      }
    }
    return s;
  }
  function SNe(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 b = 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, b = Math.min(b, O);
      }
      for (let L = h + 1; L <= t.length; L++)
        o[L] = s;
      if (b > r)
        return;
      const A = i;
      i = o, o = A;
    }
    const l = i[t.length];
    return l > r ? void 0 : l;
  }
  function tl(e, t) {
    const r = e.length - t.length;
    return r >= 0 && e.indexOf(t, r) === r;
  }
  function pA(e, t) {
    return tl(e, t) ? e.slice(0, e.length - t.length) : e;
  }
  function xse(e, t) {
    return tl(e, t) ? e.slice(0, e.length - t.length) : void 0;
  }
  function uu(e, t) {
    return e.indexOf(t) !== -1;
  }
  function Ase(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 N4(e, t) {
    for (let r = 0; r < e.length; r++)
      if (e[r] === t)
        return a1(e, r), !0;
    return !1;
  }
  function a1(e, t) {
    for (let r = t; r < e.length - 1; r++)
      e[r] = e[r + 1];
    e.pop();
  }
  function gj(e, t) {
    e[t] = e[e.length - 1], e.pop();
  }
  function cR(e, t) {
    return xNe(e, (r) => r === t);
  }
  function xNe(e, t) {
    for (let r = 0; r < e.length; r++)
      if (t(e[r]))
        return gj(e, r), !0;
    return !1;
  }
  function Zl(e) {
    return e ? pc : D_;
  }
  function Cse({ prefix: e, suffix: t }) {
    return `${e}*${t}`;
  }
  function Lse(e, t) {
    return D.assert(O4(e, t)), t.substring(e.prefix.length, t.length - e.suffix.length);
  }
  function yj(e, t, r) {
    let i, o = -1;
    for (const s of e) {
      const l = t(s);
      O4(l, r) && l.prefix.length > o && (o = l.prefix.length, i = s);
    }
    return i;
  }
  function ba(e, t) {
    return e.lastIndexOf(t, 0) === 0;
  }
  function rI(e, t) {
    return ba(e, t) ? e.substr(t.length) : e;
  }
  function vj(e, t, r = pc) {
    return ba(r(e), r(t)) ? e.substring(t.length) : void 0;
  }
  function O4({ prefix: e, suffix: t }, r) {
    return r.length >= e.length + t.length && ba(r, e) && tl(r, t);
  }
  function P4(e, t) {
    return (r) => e(r) && t(r);
  }
  function Am(...e) {
    return (...t) => {
      let r;
      for (const i of e)
        if (r = i(...t), r)
          return r;
      return r;
    };
  }
  function M4(e) {
    return (...t) => !e(...t);
  }
  function ANe(e) {
  }
  function XE(e) {
    return e === void 0 ? void 0 : [e];
  }
  function Ise(e, t, r, i, o, s) {
    s = s || io;
    let l = 0, f = 0;
    const d = e.length, y = t.length;
    let h = !1;
    for (; l < d && f < y; ) {
      const b = e[l], A = t[f], L = r(b, A);
      L === -1 ? (i(b), l++, h = !0) : L === 1 ? (o(A), f++, h = !0) : (s(A, b), l++, f++);
    }
    for (; l < d; )
      i(e[l++]), h = !0;
    for (; f < y; )
      o(t[f++]), h = !0;
    return h;
  }
  function kse(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 BS(e, t, r = " ") {
    return t <= e.length ? e : r.repeat(t - e.length) + e;
  }
  function CNe(e, t, r = " ") {
    return t <= e.length ? e : e + r.repeat(t - e.length);
  }
  function F4(e, t) {
    if (e) {
      const r = e.length;
      let i = 0;
      for (; i < r && t(e[i]); )
        i++;
      return e.slice(0, i);
    }
  }
  function Dse(e, t) {
    if (e) {
      const r = e.length;
      let i = 0;
      for (; i < r && t(e[i]); )
        i++;
      return e.slice(i);
    }
  }
  function LNe(e) {
    let t = e.length - 1;
    for (; t >= 0 && tg(e.charCodeAt(t)); )
      t--;
    return e.slice(0, t + 1);
  }
  function bj() {
    return typeof process < "u" && process.nextTick && !process.browser && typeof YV == "object";
  }
  var rt, B4, Rse, Ej, oy, sy, G4, Tj, Sj, Nse, xj, U4, o1, lR, iI, INe = C({
    "src/compiler/core.ts"() {
      wa(), rt = [], B4 = /* @__PURE__ */ new Map(), Rse = /* @__PURE__ */ new Set(), Ej = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.CaseSensitive = 1] = "CaseSensitive", e[e.CaseInsensitive = 2] = "CaseInsensitive", e[e.Both = 3] = "Both", e))(Ej || {}), oy = Array.prototype.at ? (e, t) => e == null ? void 0 : e.at(t) : (e, t) => {
        if (e && (t = lj(e, t), t < e.length))
          return e[t];
      }, sy = Object.prototype.hasOwnProperty, G4 = {
        push: io,
        length: 0
      }, Tj = /[^\u0130\u0131\u00DFa-z0-9\\/:\-_\. ]+/g, Sj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Normal = 1] = "Normal", e[e.Aggressive = 2] = "Aggressive", e[e.VeryAggressive = 3] = "VeryAggressive", e))(Sj || {}), Nse = (() => {
        let e, t;
        const r = f();
        return d;
        function i(y, h, b) {
          if (y === h)
            return 0;
          if (y === void 0)
            return -1;
          if (h === void 0)
            return 1;
          const A = b(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 (b, A) => i(b, A, h);
        }
        function s(y) {
          if (y !== void 0)
            return l();
          return (b, A) => i(b, A, h);
          function h(b, A) {
            return b.localeCompare(A);
          }
        }
        function l() {
          return (b, A) => i(b, A, y);
          function y(b, A) {
            return h(b.toUpperCase(), A.toUpperCase()) || h(b, A);
          }
          function h(b, A) {
            return b < A ? -1 : b > 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 : l;
        }
        function d(y) {
          return y === void 0 ? e || (e = r(y)) : y === "en-US" ? t || (t = r(y)) : r(y);
        }
      })(), o1 = String.prototype.trim ? (e) => e.trim() : (e) => lR(iI(e)), lR = String.prototype.trimEnd ? (e) => e.trimEnd() : LNe, iI = String.prototype.trimStart ? (e) => e.trimStart() : (e) => e.replace(/^\s+/g, "");
    }
  }), Aj, D, kNe = C({
    "src/compiler/debug.ts"() {
      wa(), wa(), Aj = /* @__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))(Aj || {}), ((e) => {
        let t = 0;
        e.currentLogLevel = 2, e.isDebugging = !1;
        function r(Ht) {
          return e.currentLogLevel <= Ht;
        }
        e.shouldLog = r;
        function i(Ht, dn) {
          e.loggingHost && r(Ht) && e.loggingHost.log(Ht, dn);
        }
        function o(Ht) {
          i(3, Ht);
        }
        e.log = o, ((Ht) => {
          function dn(pi) {
            i(1, pi);
          }
          Ht.error = dn;
          function ir(pi) {
            i(2, pi);
          }
          Ht.warn = ir;
          function lr(pi) {
            i(3, pi);
          }
          Ht.log = lr;
          function Ni(pi) {
            i(4, pi);
          }
          Ht.trace = Ni;
        })(o = e.log || (e.log = {}));
        const s = {};
        function l() {
          return t;
        }
        e.getAssertionLevel = l;
        function f(Ht) {
          const dn = t;
          if (t = Ht, Ht > dn)
            for (const ir of $h(s)) {
              const lr = s[ir];
              lr !== void 0 && e[ir] !== lr.assertion && Ht >= lr.level && (e[ir] = lr, s[ir] = void 0);
            }
        }
        e.setAssertionLevel = f;
        function d(Ht) {
          return t >= Ht;
        }
        e.shouldAssert = d;
        function y(Ht, dn) {
          return d(Ht) ? !0 : (s[dn] = { level: Ht, assertion: e[dn] }, e[dn] = io, !1);
        }
        function h(Ht, dn) {
          const ir = new Error(Ht ? `Debug Failure. ${Ht}` : "Debug Failure.");
          throw Error.captureStackTrace && Error.captureStackTrace(ir, dn || h), ir;
        }
        e.fail = h;
        function b(Ht, dn, ir) {
          return h(`${dn || "Unexpected node."}\r
Node ${$e(Ht.kind)} was unexpected.`, ir || b);
        }
        e.failBadSyntaxKind = b;
        function A(Ht, dn, ir, lr) {
          Ht || (dn = dn ? `False expression: ${dn}` : "False expression.", ir && (dn += `\r
Verbose Debug Information: ` + (typeof ir == "string" ? ir : ir())), h(dn, lr || A));
        }
        e.assert = A;
        function L(Ht, dn, ir, lr, Ni) {
          if (Ht !== dn) {
            const pi = ir ? lr ? `${ir} ${lr}` : ir : "";
            h(`Expected ${Ht} === ${dn}. ${pi}`, Ni || L);
          }
        }
        e.assertEqual = L;
        function I(Ht, dn, ir, lr) {
          Ht >= dn && h(`Expected ${Ht} < ${dn}. ${ir || ""}`, lr || I);
        }
        e.assertLessThan = I;
        function O(Ht, dn, ir) {
          Ht > dn && h(`Expected ${Ht} <= ${dn}`, ir || O);
        }
        e.assertLessThanOrEqual = O;
        function k(Ht, dn, ir) {
          Ht < dn && h(`Expected ${Ht} >= ${dn}`, ir || k);
        }
        e.assertGreaterThanOrEqual = k;
        function B(Ht, dn, ir) {
          Ht == null && h(dn, ir || B);
        }
        e.assertIsDefined = B;
        function V(Ht, dn, ir) {
          return B(Ht, dn, ir || V), Ht;
        }
        e.checkDefined = V;
        function H(Ht, dn, ir) {
          for (const lr of Ht)
            B(lr, dn, ir || H);
        }
        e.assertEachIsDefined = H;
        function te(Ht, dn, ir) {
          return H(Ht, dn, ir || te), Ht;
        }
        e.checkEachDefined = te;
        function X(Ht, dn = "Illegal value:", ir) {
          const lr = typeof Ht == "object" && Rs(Ht, "kind") && Rs(Ht, "pos") ? "SyntaxKind: " + $e(Ht.kind) : JSON.stringify(Ht);
          return h(`${dn} ${lr}`, ir || X);
        }
        e.assertNever = X;
        function Y(Ht, dn, ir, lr) {
          y(1, "assertEachNode") && A(dn === void 0 || Rn(Ht, dn), ir || "Unexpected node.", () => `Node array did not pass test '${ce(dn)}'.`, lr || Y);
        }
        e.assertEachNode = Y;
        function P(Ht, dn, ir, lr) {
          y(1, "assertNode") && A(Ht !== void 0 && (dn === void 0 || dn(Ht)), ir || "Unexpected node.", () => `Node ${$e(Ht == null ? void 0 : Ht.kind)} did not pass test '${ce(dn)}'.`, lr || P);
        }
        e.assertNode = P;
        function de(Ht, dn, ir, lr) {
          y(1, "assertNotNode") && A(Ht === void 0 || dn === void 0 || !dn(Ht), ir || "Unexpected node.", () => `Node ${$e(Ht.kind)} should not have passed test '${ce(dn)}'.`, lr || de);
        }
        e.assertNotNode = de;
        function ne(Ht, dn, ir, lr) {
          y(1, "assertOptionalNode") && A(dn === void 0 || Ht === void 0 || dn(Ht), ir || "Unexpected node.", () => `Node ${$e(Ht == null ? void 0 : Ht.kind)} did not pass test '${ce(dn)}'.`, lr || ne);
        }
        e.assertOptionalNode = ne;
        function ye(Ht, dn, ir, lr) {
          y(1, "assertOptionalToken") && A(dn === void 0 || Ht === void 0 || Ht.kind === dn, ir || "Unexpected node.", () => `Node ${$e(Ht == null ? void 0 : Ht.kind)} was not a '${$e(dn)}' token.`, lr || ye);
        }
        e.assertOptionalToken = ye;
        function ie(Ht, dn, ir) {
          y(1, "assertMissingNode") && A(Ht === void 0, dn || "Unexpected node.", () => `Node ${$e(Ht.kind)} was unexpected'.`, ir || ie);
        }
        e.assertMissingNode = ie;
        function W(Ht) {
        }
        e.type = W;
        function ce(Ht) {
          if (typeof Ht != "function")
            return "";
          if (Rs(Ht, "name"))
            return Ht.name;
          {
            const dn = Function.prototype.toString.call(Ht), ir = /^function\s+([\w\$]+)\s*\(/.exec(dn);
            return ir ? ir[1] : "";
          }
        }
        e.getFunctionName = ce;
        function pe(Ht) {
          return `{ name: ${ta(Ht.escapedName)}; flags: ${Xe(Ht.flags)}; declarations: ${en(Ht.declarations, (dn) => $e(dn.kind))} }`;
        }
        e.formatSymbol = pe;
        function ve(Ht = 0, dn, ir) {
          const lr = ee(dn);
          if (Ht === 0)
            return lr.length > 0 && lr[0][0] === 0 ? lr[0][1] : "0";
          if (ir) {
            const Ni = [];
            let pi = Ht;
            for (const [Nn, nn] of lr) {
              if (Nn > Ht)
                break;
              Nn !== 0 && Nn & Ht && (Ni.push(nn), pi &= ~Nn);
            }
            if (pi === 0)
              return Ni.join("|");
          } else
            for (const [Ni, pi] of lr)
              if (Ni === Ht)
                return pi;
          return Ht.toString();
        }
        e.formatEnum = ve;
        const Te = /* @__PURE__ */ new Map();
        function ee(Ht) {
          const dn = Te.get(Ht);
          if (dn)
            return dn;
          const ir = [];
          for (const Ni in Ht) {
            const pi = Ht[Ni];
            typeof pi == "number" && ir.push([pi, Ni]);
          }
          const lr = iy(ir, (Ni, pi) => Vs(Ni[0], pi[0]));
          return Te.set(Ht, lr), lr;
        }
        function $e(Ht) {
          return ve(Ht, z4, !1);
        }
        e.formatSyntaxKind = $e;
        function Ue(Ht) {
          return ve(Ht, rM, !1);
        }
        e.formatSnippetKind = Ue;
        function Be(Ht) {
          return ve(Ht, q4, !0);
        }
        e.formatNodeFlags = Be;
        function We(Ht) {
          return ve(Ht, J4, !0);
        }
        e.formatModifierFlags = We;
        function Oe(Ht) {
          return ve(Ht, nM, !0);
        }
        e.formatTransformFlags = Oe;
        function Me(Ht) {
          return ve(Ht, iM, !0);
        }
        e.formatEmitFlags = Me;
        function Xe(Ht) {
          return ve(Ht, $4, !0);
        }
        e.formatSymbolFlags = Xe;
        function He(Ht) {
          return ve(Ht, Q4, !0);
        }
        e.formatTypeFlags = He;
        function Fe(Ht) {
          return ve(Ht, eM, !0);
        }
        e.formatSignatureFlags = Fe;
        function st(Ht) {
          return ve(Ht, Z4, !0);
        }
        e.formatObjectFlags = st;
        function Ct(Ht) {
          return ve(Ht, _R, !0);
        }
        e.formatFlowFlags = Ct;
        function Et(Ht) {
          return ve(Ht, K4, !0);
        }
        e.formatRelationComparisonResult = Et;
        function Vt(Ht) {
          return ve(Ht, D5, !0);
        }
        e.formatCheckMode = Vt;
        function tt(Ht) {
          return ve(Ht, R5, !0);
        }
        e.formatSignatureCheckMode = tt;
        function at(Ht) {
          return ve(Ht, k5, !0);
        }
        e.formatTypeFacts = at;
        let an = !1, Xt;
        function Pn(Ht) {
          "__debugFlowFlags" in Ht || Object.defineProperties(Ht, {
            __tsDebuggerDisplay: {
              value() {
                const dn = 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", ir = this.flags & ~(2048 - 1);
                return `${dn}${ir ? ` (${Ct(ir)})` : ""}`;
              }
            },
            __debugFlowFlags: { get() {
              return ve(this.flags, _R, !0);
            } },
            __debugToString: { value() {
              return vn(this);
            } }
          });
        }
        function Wn(Ht) {
          an && (typeof Object.setPrototypeOf == "function" ? (Xt || (Xt = Object.create(Object.prototype), Pn(Xt)), Object.setPrototypeOf(Ht, Xt)) : Pn(Ht));
        }
        e.attachFlowNodeDebugInfo = Wn;
        let In;
        function Yt(Ht) {
          "__tsDebuggerDisplay" in Ht || Object.defineProperties(Ht, {
            __tsDebuggerDisplay: {
              value(dn) {
                return dn = String(dn).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/, "]"), `NodeArray ${dn}`;
              }
            }
          });
        }
        function _r(Ht) {
          an && (typeof Object.setPrototypeOf == "function" ? (In || (In = Object.create(Array.prototype), Yt(In)), Object.setPrototypeOf(Ht, In)) : Yt(Ht));
        }
        e.attachNodeArrayDebugInfo = _r;
        function Ai() {
          if (an)
            return;
          const Ht = /* @__PURE__ */ new WeakMap(), dn = /* @__PURE__ */ new WeakMap();
          Object.defineProperties(Bl.getSymbolConstructor().prototype, {
            __tsDebuggerDisplay: {
              value() {
                const lr = this.flags & 33554432 ? "TransientSymbol" : "Symbol", Ni = this.flags & -33554433;
                return `${lr} '${Oc(this)}'${Ni ? ` (${Xe(Ni)})` : ""}`;
              }
            },
            __debugFlags: { get() {
              return Xe(this.flags);
            } }
          }), Object.defineProperties(Bl.getTypeConstructor().prototype, {
            __tsDebuggerDisplay: {
              value() {
                const lr = 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", Ni = this.flags & 524288 ? this.objectFlags & -1344 : 0;
                return `${lr}${this.symbol ? ` '${Oc(this.symbol)}'` : ""}${Ni ? ` (${st(Ni)})` : ""}`;
              }
            },
            __debugFlags: { get() {
              return He(this.flags);
            } },
            __debugObjectFlags: { get() {
              return this.flags & 524288 ? st(this.objectFlags) : "";
            } },
            __debugTypeToString: {
              value() {
                let lr = Ht.get(this);
                return lr === void 0 && (lr = this.checker.typeToString(this), Ht.set(this, lr)), lr;
              }
            }
          }), Object.defineProperties(Bl.getSignatureConstructor().prototype, {
            __debugFlags: { get() {
              return Fe(this.flags);
            } },
            __debugSignatureToString: { value() {
              var lr;
              return (lr = this.checker) == null ? void 0 : lr.signatureToString(this);
            } }
          });
          const ir = [
            Bl.getNodeConstructor(),
            Bl.getIdentifierConstructor(),
            Bl.getTokenConstructor(),
            Bl.getSourceFileConstructor()
          ];
          for (const lr of ir)
            Rs(lr.prototype, "__debugKind") || Object.defineProperties(lr.prototype, {
              __tsDebuggerDisplay: {
                value() {
                  return `${Tc(this) ? "GeneratedIdentifier" : Ve(this) ? `Identifier '${Pr(this)}'` : Di(this) ? `PrivateIdentifier '${Pr(this)}'` : Go(this) ? `StringLiteral ${JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...")}` : h_(this) ? `NumericLiteral ${this.text}` : S7(this) ? `BigIntLiteral ${this.text}n` : Pc(this) ? "TypeParameterDeclaration" : Oa(this) ? "ParameterDeclaration" : Hc(this) ? "ConstructorDeclaration" : H_(this) ? "GetAccessorDeclaration" : Yf(this) ? "SetAccessorDeclaration" : _C(this) ? "CallSignatureDeclaration" : TO(this) ? "ConstructSignatureDeclaration" : Ex(this) ? "IndexSignatureDeclaration" : L7(this) ? "TypePredicateNode" : W_(this) ? "TypeReferenceNode" : Sh(this) ? "FunctionTypeNode" : Sk(this) ? "ConstructorTypeNode" : xk(this) ? "TypeQueryNode" : of(this) ? "TypeLiteralNode" : rJ(this) ? "ArrayTypeNode" : pC(this) ? "TupleTypeNode" : iJ(this) ? "OptionalTypeNode" : aJ(this) ? "RestTypeNode" : Tx(this) ? "UnionTypeNode" : SO(this) ? "IntersectionTypeNode" : mC(this) ? "ConditionalTypeNode" : hC(this) ? "InferTypeNode" : Sx(this) ? "ParenthesizedTypeNode" : I7(this) ? "ThisTypeNode" : xx(this) ? "TypeOperatorNode" : Ax(this) ? "IndexedAccessTypeNode" : Ck(this) ? "MappedTypeNode" : Q0(this) ? "LiteralTypeNode" : Ak(this) ? "NamedTupleMember" : _g(this) ? "ImportTypeNode" : $e(this.kind)}${this.flags ? ` (${Be(this.flags)})` : ""}`;
                }
              },
              __debugKind: { get() {
                return $e(this.kind);
              } },
              __debugNodeFlags: { get() {
                return Be(this.flags);
              } },
              __debugModifierFlags: { get() {
                return We(zue(this));
              } },
              __debugTransformFlags: { get() {
                return Oe(this.transformFlags);
              } },
              __debugIsParseTreeNode: { get() {
                return hI(this);
              } },
              __debugEmitFlags: { get() {
                return Me(go(this));
              } },
              __debugGetText: {
                value(Ni) {
                  if (Ys(this))
                    return "";
                  let pi = dn.get(this);
                  if (pi === void 0) {
                    const Nn = ga(this), nn = Nn && er(Nn);
                    pi = nn ? h1(nn, Nn, Ni) : "", dn.set(this, pi);
                  }
                  return pi;
                }
              }
            });
          an = !0;
        }
        e.enableDebugInfo = Ai;
        function Ki(Ht) {
          const dn = Ht & 7;
          let ir = dn === 0 ? "in out" : dn === 3 ? "[bivariant]" : dn === 2 ? "in" : dn === 1 ? "out" : dn === 4 ? "[independent]" : "";
          return Ht & 8 ? ir += " (unmeasurable)" : Ht & 16 && (ir += " (unreliable)"), ir;
        }
        e.formatVariance = Ki;
        class Xi {
          __debugToString() {
            var dn;
            switch (this.kind) {
              case 3:
                return ((dn = this.debugInfo) == null ? void 0 : dn.call(this)) || "(function mapper)";
              case 0:
                return `${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;
              case 1:
                return gi(this.sources, this.targets || en(this.sources, () => "any"), (ir, lr) => `${ir.__debugTypeToString()} -> ${typeof lr == "string" ? lr : lr.__debugTypeToString()}`).join(", ");
              case 2:
                return gi(this.sources, this.targets, (ir, lr) => `${ir.__debugTypeToString()} -> ${lr().__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 = Xi;
        function Nr(Ht) {
          return e.isDebugging ? Object.setPrototypeOf(Ht, Xi.prototype) : Ht;
        }
        e.attachDebugPrototypeIfDebug = Nr;
        function At(Ht) {
          return console.log(vn(Ht));
        }
        e.printControlFlowGraph = At;
        function vn(Ht) {
          let dn = -1;
          function ir(K) {
            return K.id || (K.id = dn, dn--), K.id;
          }
          let lr;
          ((K) => {
            K.lr = "─", K.ud = "│", K.dr = "╭", K.dl = "╮", K.ul = "╯", K.ur = "╰", K.udr = "├", K.udl = "┤", K.dlr = "┬", K.ulr = "┴", K.udlr = "╫";
          })(lr || (lr = {}));
          let Ni;
          ((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";
          })(Ni || (Ni = {}));
          const pi = 2032, Nn = 882, nn = /* @__PURE__ */ Object.create(null), Mn = [], Ar = he(Ht, /* @__PURE__ */ new Set());
          for (const K of Mn)
            K.text = Er(K.flowNode, K.circular), je(K);
          const Vr = Qe(Ar), ke = Ke(Vr);
          return Ut(Ar, 0), ue();
          function gt(K) {
            return !!(K.flags & 128);
          }
          function Nt(K) {
            return !!(K.flags & 12) && !!K.antecedents;
          }
          function xe(K) {
            return !!(K.flags & pi);
          }
          function _t(K) {
            return !!(K.flags & Nn);
          }
          function _e(K) {
            const Pe = [];
            for (const Z of K.edges)
              Z.source === K && Pe.push(Z.target);
            return Pe;
          }
          function re(K) {
            const Pe = [];
            for (const Z of K.edges)
              Z.target === K && Pe.push(Z.source);
            return Pe;
          }
          function he(K, Pe) {
            const Z = ir(K);
            let Re = nn[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"
              }, Mn.push(Re), Re;
            if (Pe.add(K), !Re)
              if (nn[Z] = Re = { id: Z, flowNode: K, edges: [], text: "", lane: -1, endLane: -1, level: -1, circular: !1 }, Mn.push(Re), Nt(K))
                for (const q of K.antecedents)
                  j(Re, q, Pe);
              else
                xe(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 je(K) {
            if (K.level !== -1)
              return K.level;
            let Pe = 0;
            for (const Z of re(K))
              Pe = Math.max(Pe, je(Z) + 1);
            return K.level = Pe;
          }
          function Qe(K) {
            let Pe = 0;
            for (const Z of _e(K))
              Pe = Math.max(Pe, Qe(Z));
            return Pe + 1;
          }
          function Ke(K) {
            const Pe = Wt(Array(K), 0);
            for (const Z of Mn)
              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 ln(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 = er(K);
            return h1(Pe, K, !1);
          }
          function Er(K, Pe) {
            let Z = ln(K.flags);
            if (Pe && (Z = `${Z}#${ir(K)}`), _t(K))
              K.node && (Z += ` (${Sn(K.node)})`);
            else if (gt(K)) {
              const Re = [];
              for (let q = K.clauseStart; q < K.clauseEnd; q++) {
                const Rt = K.switchStatement.caseBlock.clauses[q];
                wO(Rt) ? Re.push("default") : Re.push(Sn(Rt.expression));
              }
              Z += ` (${Re.join(", ")})`;
            }
            return Pe === "circularity" ? `Circular(${Z})` : Z;
          }
          function ue() {
            const K = ke.length, Pe = Mn.reduce((ht, dt) => Math.max(ht, dt.lane), 0) + 1, Z = Wt(Array(Pe), ""), Re = ke.map(() => Array(Pe)), q = ke.map(() => Wt(Array(Pe), 0));
            for (const ht of Mn) {
              Re[ht.level][ht.lane] = ht;
              const dt = _e(ht);
              for (let Qn = 0; Qn < dt.length; Qn++) {
                const ai = dt[Qn];
                let Si = 8;
                ai.lane === ht.lane && (Si |= 4), Qn > 0 && (Si |= 1), Qn < dt.length - 1 && (Si |= 2), q[ht.level][ai.lane] |= Si;
              }
              dt.length === 0 && (q[ht.level][ht.lane] |= 16);
              const fn = re(ht);
              for (let Qn = 0; Qn < fn.length; Qn++) {
                const ai = fn[Qn];
                let Si = 4;
                Qn > 0 && (Si |= 1), Qn < fn.length - 1 && (Si |= 2), q[ht.level - 1][ai.lane] |= Si;
              }
            }
            for (let ht = 0; ht < K; ht++)
              for (let dt = 0; dt < Pe; dt++) {
                const fn = ht > 0 ? q[ht - 1][dt] : 0, Qn = dt > 0 ? q[ht][dt - 1] : 0;
                let ai = q[ht][dt];
                ai || (fn & 8 && (ai |= 12), Qn & 2 && (ai |= 3), q[ht][dt] = ai);
              }
            for (let ht = 0; ht < K; ht++)
              for (let dt = 0; dt < Z.length; dt++) {
                const fn = q[ht][dt], Qn = fn & 4 ? "─" : " ", ai = Re[ht][dt];
                ai ? (Rt(dt, ai.text), ht < K - 1 && (Rt(dt, " "), Rt(dt, it(Qn, ke[ht] - ai.text.length)))) : ht < K - 1 && Rt(dt, it(Qn, ke[ht] + 1)), Rt(dt, pt(fn)), Rt(dt, fn & 8 && ht < K - 1 && !Re[ht + 1][dt] ? "─" : " ");
              }
            return `
${Z.join(`
`)}
`;
            function Rt(ht, dt) {
              Z[ht] += dt;
            }
          }
          function pt(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 Wt(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 Ose(e) {
    const t = Mse.exec(e);
    if (!t)
      return;
    const [, r, i = "0", o = "0", s = "", l = ""] = t;
    if (!(s && !Fse.test(s)) && !(l && !Gse.test(l)))
      return {
        major: parseInt(r, 10),
        minor: parseInt(i, 10),
        patch: parseInt(o, 10),
        prerelease: s,
        build: l
      };
  }
  function wNe(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 l = Lj.test(o), f = Lj.test(s);
      if (l || f) {
        if (l !== f)
          return l ? -1 : 1;
        const d = Vs(+o, +s);
        if (d)
          return d;
      } else {
        const d = ku(o, s);
        if (d)
          return d;
      }
    }
    return Vs(e.length, t.length);
  }
  function Pse(e) {
    const t = [];
    for (let r of o1(e).split(Vse)) {
      if (!r)
        continue;
      const i = [];
      r = o1(r);
      const o = Wse.exec(r);
      if (o) {
        if (!DNe(o[1], o[2], i))
          return;
      } else
        for (const s of r.split(jse)) {
          const l = zse.exec(o1(s));
          if (!l || !RNe(l[1], l[2], i))
            return;
        }
      t.push(i);
    }
    return t;
  }
  function Cj(e) {
    const t = Hse.exec(e);
    if (!t)
      return;
    const [, r, i = "*", o = "*", s, l] = t;
    return { version: new R_(jf(r) ? 0 : parseInt(r, 10), jf(r) || jf(i) ? 0 : parseInt(i, 10), jf(r) || jf(i) || jf(o) ? 0 : parseInt(o, 10), s, l), major: r, minor: i, patch: o };
  }
  function DNe(e, t, r) {
    const i = Cj(e);
    if (!i)
      return !1;
    const o = Cj(t);
    return o ? (jf(i.major) || r.push(jp(">=", i.version)), jf(o.major) || r.push(jf(o.minor) ? jp("<", o.version.increment("major")) : jf(o.patch) ? jp("<", o.version.increment("minor")) : jp("<=", o.version)), !0) : !1;
  }
  function RNe(e, t, r) {
    const i = Cj(t);
    if (!i)
      return !1;
    const { version: o, major: s, minor: l, patch: f } = i;
    if (jf(s))
      (e === "<" || e === ">") && r.push(jp("<", R_.zero));
    else
      switch (e) {
        case "~":
          r.push(jp(">=", o)), r.push(jp("<", o.increment(jf(l) ? "major" : "minor")));
          break;
        case "^":
          r.push(jp(">=", o)), r.push(jp("<", o.increment(o.major > 0 || jf(l) ? "major" : o.minor > 0 || jf(f) ? "minor" : "patch")));
          break;
        case "<":
        case ">=":
          r.push(jf(l) || jf(f) ? jp(e, o.with({ prerelease: "0" })) : jp(e, o));
          break;
        case "<=":
        case ">":
          r.push(jf(l) ? jp(e === "<=" ? "<" : ">=", o.increment("major").with({ prerelease: "0" })) : jf(f) ? jp(e === "<=" ? "<" : ">=", o.increment("minor").with({ prerelease: "0" })) : jp(e, o));
          break;
        case "=":
        case void 0:
          jf(l) || jf(f) ? (r.push(jp(">=", o.with({ prerelease: "0" }))), r.push(jp("<", o.increment(jf(l) ? "major" : "minor").with({ prerelease: "0" })))) : r.push(jp("=", o));
          break;
        default:
          return !1;
      }
    return !0;
  }
  function jf(e) {
    return e === "*" || e === "x" || e === "X";
  }
  function jp(e, t) {
    return { operator: e, operand: t };
  }
  function NNe(e, t) {
    if (t.length === 0)
      return !0;
    for (const r of t)
      if (ONe(e, r))
        return !0;
    return !1;
  }
  function ONe(e, t) {
    for (const r of t)
      if (!PNe(e, r.operator, r.operand))
        return !1;
    return !0;
  }
  function PNe(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 MNe(e) {
    return en(e, FNe).join(" || ") || "*";
  }
  function FNe(e) {
    return en(e, BNe).join(" ");
  }
  function BNe(e) {
    return `${e.operator}${e.operand}`;
  }
  var Mse, Fse, Bse, Gse, Use, Lj, GS, R_, mA, Vse, jse, Hse, Wse, zse, GNe = C({
    "src/compiler/semver.ts"() {
      wa(), Mse = /^(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i, Fse = /^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)(?:\.(?:0|[1-9]\d*|[a-z-][a-z0-9-]*))*$/i, Bse = /^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)$/i, Gse = /^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/i, Use = /^[a-z0-9-]+$/i, Lj = /^(0|[1-9]\d*)$/, GS = class {
        constructor(e, t = 0, r = 0, i = "", o = "") {
          typeof e == "string" && ({ major: e, minor: t, patch: r, prerelease: i, build: o } = D.checkDefined(Ose(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 ? Ba(i) ? i : i.split(".") : rt, l = o ? Ba(o) ? o : o.split(".") : rt;
          D.assert(Rn(s, (f) => Bse.test(f)), "Invalid argument: prerelease"), D.assert(Rn(l, (f) => Use.test(f)), "Invalid argument: build"), this.major = e, this.minor = t, this.patch = r, this.prerelease = s, this.build = l;
        }
        static tryParse(e) {
          const t = Ose(e);
          if (!t)
            return;
          const { major: r, minor: i, patch: o, prerelease: s, build: l } = t;
          return new GS(r, i, o, s, l);
        }
        compareTo(e) {
          return this === e ? 0 : e === void 0 ? 1 : Vs(this.major, e.major) || Vs(this.minor, e.minor) || Vs(this.patch, e.patch) || wNe(this.prerelease, e.prerelease);
        }
        increment(e) {
          switch (e) {
            case "major":
              return new GS(this.major + 1, 0, 0);
            case "minor":
              return new GS(this.major, this.minor + 1, 0);
            case "patch":
              return new GS(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 GS(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;
        }
      }, R_ = GS, R_.zero = new GS(0, 0, 0, ["0"]), mA = class {
        constructor(e) {
          this._alternatives = e ? D.checkDefined(Pse(e), "Invalid range spec.") : rt;
        }
        static tryParse(e) {
          const t = Pse(e);
          if (t) {
            const r = new mA("");
            return r._alternatives = t, r;
          }
        }
        test(e) {
          return typeof e == "string" && (e = new R_(e)), NNe(e, this._alternatives);
        }
        toString() {
          return MNe(this._alternatives);
        }
      }, Vse = /\|\|/g, jse = /\s+/g, Hse = /^([xX*0]|[1-9]\d*)(?:\.([xX*0]|[1-9]\d*)(?:\.([xX*0]|[1-9]\d*)(?:-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i, Wse = /^\s*([a-z0-9-+.*]+)\s+-\s+([a-z0-9-+.*]+)\s*$/i, zse = /^(~|\^|<|<=|>|>=|=)?\s*([a-z0-9-+.*]+)$/i;
    }
  });
  function qse(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 UNe() {
    if (typeof performance == "object" && typeof PerformanceObserver == "function" && qse(performance, PerformanceObserver))
      return {
        shouldWriteNativeEvents: !0,
        performance,
        PerformanceObserver
      };
  }
  function VNe() {
    if (bj())
      try {
        let e;
        const { performance: t, PerformanceObserver: r } = Kb("perf_hooks");
        if (qse(t, r)) {
          e = t;
          const i = new R_(process.versions.node);
          return new mA("<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, l = "nodeStart", f) {
              f === void 0 && (f = "__performance.measure-fix__", t.mark(f)), t.measure(s, l, 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 Jse() {
    return V4;
  }
  var V4, Ij, rc, jNe = C({
    "src/compiler/performanceCore.ts"() {
      wa(), V4 = UNe() || VNe(), Ij = V4 == null ? void 0 : V4.performance, rc = Ij ? () => Ij.now() : Date.now ? Date.now : () => +/* @__PURE__ */ new Date();
    }
  }), Kse, uR, Xse, Hp, HNe = C({
    "src/compiler/perfLogger.ts"() {
      wa(), Kse = {
        logEvent: io,
        logErrEvent: io,
        logPerfEvent: io,
        logInfoEvent: io,
        logStartCommand: io,
        logStopCommand: io,
        logStartUpdateProgram: io,
        logStopUpdateProgram: io,
        logStartUpdateGraph: io,
        logStopUpdateGraph: io,
        logStartResolveModule: io,
        logStopResolveModule: io,
        logStartParseSourceFile: io,
        logStopParseSourceFile: io,
        logStartReadFile: io,
        logStopReadFile: io,
        logStartBindFile: io,
        logStopBindFile: io,
        logStartScheduledOperation: io,
        logStopScheduledOperation: io
      };
      try {
        const e = (Xse = process.env.TS_ETW_MODULE_PATH) != null ? Xse : "./node_modules/@microsoft/typescript-etw";
        uR = Kb(e);
      } catch {
        uR = void 0;
      }
      Hp = uR != null && uR.logEvent ? uR : Kse;
    }
  });
  function Yse(e, t, r, i) {
    return e ? j4(t, r, i) : H4;
  }
  function j4(e, t, r) {
    let i = 0;
    return {
      enter: o,
      exit: s
    };
    function o() {
      ++i === 1 && ic(t);
    }
    function s() {
      --i === 0 ? (ic(r), Hf(e, t, r)) : i < 0 && D.fail("enter/exit count does not match.");
    }
  }
  function ic(e) {
    var t;
    if (US) {
      const r = (t = hA.get(e)) != null ? t : 0;
      hA.set(e, r + 1), VS.set(e, rc()), s1 == null || s1.mark(e), typeof onProfilerEvent == "function" && onProfilerEvent(e);
    }
  }
  function Hf(e, t, r) {
    var i, o;
    if (US) {
      const s = (i = r !== void 0 ? VS.get(r) : void 0) != null ? i : rc(), l = (o = t !== void 0 ? VS.get(t) : void 0) != null ? o : kj, f = jS.get(e) || 0;
      jS.set(e, f + (s - l)), s1 == null || s1.measure(e, t, r);
    }
  }
  function WNe(e) {
    return hA.get(e) || 0;
  }
  function zNe(e) {
    return jS.get(e) || 0;
  }
  function qNe(e) {
    jS.forEach((t, r) => e(r, t));
  }
  function JNe(e) {
    VS.forEach((t, r) => e(r));
  }
  function KNe(e) {
    e !== void 0 ? jS.delete(e) : jS.clear(), s1 == null || s1.clearMeasures(e);
  }
  function XNe(e) {
    e !== void 0 ? (hA.delete(e), VS.delete(e)) : (hA.clear(), VS.clear()), s1 == null || s1.clearMarks(e);
  }
  function YNe() {
    return US;
  }
  function $Ne(e = ql) {
    var t;
    return US || (US = !0, aI || (aI = Jse()), aI && (kj = aI.performance.timeOrigin, (aI.shouldWriteNativeEvents || (t = e == null ? void 0 : e.cpuProfilingEnabled) != null && t.call(e) || e != null && e.debugMode) && (s1 = aI.performance))), !0;
  }
  function QNe() {
    US && (VS.clear(), hA.clear(), jS.clear(), s1 = void 0, US = !1);
  }
  var aI, s1, H4, US, kj, VS, hA, jS, ZNe = C({
    "src/compiler/performance.ts"() {
      wa(), H4 = { enter: io, exit: io }, US = !1, kj = rc(), VS = /* @__PURE__ */ new Map(), hA = /* @__PURE__ */ new Map(), jS = /* @__PURE__ */ new Map();
    }
  }), dR = {};
  le(dR, {
    clearMarks: () => XNe,
    clearMeasures: () => KNe,
    createTimer: () => j4,
    createTimerIf: () => Yse,
    disable: () => QNe,
    enable: () => $Ne,
    forEachMark: () => JNe,
    forEachMeasure: () => qNe,
    getCount: () => WNe,
    getDuration: () => zNe,
    isEnabled: () => YNe,
    mark: () => ic,
    measure: () => Hf,
    nullTimer: () => H4
  });
  var c1 = C({
    "src/compiler/_namespaces/ts.performance.ts"() {
      ZNe();
    }
  }), yi, fR, $se, Qse, eOe = C({
    "src/compiler/tracing.ts"() {
      wa(), c1(), ((e) => {
        let t, r = 0, i = 0, o;
        const s = [];
        let l;
        const f = [];
        function d(Y, P, de) {
          if (D.assert(!yi, "Tracing already started"), t === void 0)
            try {
              t = Kb("fs");
            } catch (ce) {
              throw new Error(`tracing requires having fs
(original error: ${ce.message || ce})`);
            }
          o = Y, s.length = 0, l === void 0 && (l = Pi(P, "legend.json")), t.existsSync(P) || t.mkdirSync(P, { recursive: !0 });
          const ne = o === "build" ? `.${process.pid}-${++r}` : o === "server" ? `.${process.pid}` : "", ye = Pi(P, `trace${ne}.json`), ie = Pi(P, `types${ne}.json`);
          f.push({
            configFilePath: de,
            tracePath: ye,
            typesPath: ie
          }), i = t.openSync(ye, "w"), yi = e;
          const W = { cat: "__metadata", ph: "M", ts: 1e3 * rc(), 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(yi, "Tracing is not in progress"), D.assert(!!s.length == (o !== "server")), t.writeSync(i, `
]
`), t.closeSync(i), yi = 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 b(Y, P, de) {
          V("I", Y, P, de, '"s":"g"');
        }
        e.instant = b;
        const A = [];
        function L(Y, P, de, ne = !1) {
          ne && V("B", Y, P, de), A.push({ phase: Y, name: P, args: de, time: 1e3 * rc(), separateBeginAndEnd: ne });
        }
        e.push = L;
        function I(Y) {
          D.assert(A.length > 0), B(A.length - 1, 1e3 * rc(), Y), A.length--;
        }
        e.pop = I;
        function O() {
          const Y = 1e3 * rc();
          for (let P = A.length - 1; P >= 0; P--)
            B(P, Y);
          A.length = 0;
        }
        e.popAll = O;
        const k = 1e3 * 10;
        function B(Y, P, de) {
          const { phase: ne, name: ye, args: ie, time: W, separateBeginAndEnd: ce } = A[Y];
          ce ? (D.assert(!de, "`results` are not supported for events with `separateBeginAndEnd`"), V("E", ne, ye, ie, void 0, P)) : k - W % k <= P - W && V("X", ne, ye, { ...ie, results: de }, `"dur":${P - W}`, W);
        }
        function V(Y, P, de, ne, ye, ie = 1e3 * rc()) {
          o === "server" && P === "checkTypes" || (ic("beginTracing"), t.writeSync(i, `,
{"pid":1,"tid":1,"ph":"${Y}","cat":"${P}","ts":${ie},"name":"${de}"`), ye && t.writeSync(i, `,${ye}`), ne && t.writeSync(i, `,"args":${JSON.stringify(ne)}`), t.writeSync(i, "}"), ic("endTracing"), Hf("Tracing", "beginTracing", "endTracing"));
        }
        function H(Y) {
          const P = er(Y);
          return P ? {
            path: P.path,
            start: de(ac(P, Y.pos)),
            end: de(ac(P, Y.end))
          } : void 0;
          function de(ne) {
            return {
              line: ne.line + 1,
              character: ne.character + 1
            };
          }
        }
        function te(Y) {
          var P, de, ne, ye, ie, W, ce, pe, ve, Te, ee, $e, Ue, Be, We, Oe, Me, Xe, He, Fe, st, Ct;
          ic("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 an = 0; an < at; an++) {
            const Xt = Y[an], Pn = Xt.objectFlags, Wn = (P = Xt.aliasSymbol) != null ? P : Xt.symbol;
            let In;
            if (Pn & 16 | Xt.flags & 2944)
              try {
                In = (de = Xt.checker) == null ? void 0 : de.typeToString(Xt);
              } catch {
                In = void 0;
              }
            let Yt = {};
            if (Xt.flags & 8388608) {
              const dn = Xt;
              Yt = {
                indexedAccessObjectType: (ne = dn.objectType) == null ? void 0 : ne.id,
                indexedAccessIndexType: (ye = dn.indexType) == null ? void 0 : ye.id
              };
            }
            let _r = {};
            if (Pn & 4) {
              const dn = Xt;
              _r = {
                instantiatedType: (ie = dn.target) == null ? void 0 : ie.id,
                typeArguments: (W = dn.resolvedTypeArguments) == null ? void 0 : W.map((ir) => ir.id),
                referenceLocation: H(dn.node)
              };
            }
            let Ai = {};
            if (Xt.flags & 16777216) {
              const dn = Xt;
              Ai = {
                conditionalCheckType: (ce = dn.checkType) == null ? void 0 : ce.id,
                conditionalExtendsType: (pe = dn.extendsType) == null ? void 0 : pe.id,
                conditionalTrueType: (Te = (ve = dn.resolvedTrueType) == null ? void 0 : ve.id) != null ? Te : -1,
                conditionalFalseType: ($e = (ee = dn.resolvedFalseType) == null ? void 0 : ee.id) != null ? $e : -1
              };
            }
            let Ki = {};
            if (Xt.flags & 33554432) {
              const dn = Xt;
              Ki = {
                substitutionBaseType: (Ue = dn.baseType) == null ? void 0 : Ue.id,
                constraintType: (Be = dn.constraint) == null ? void 0 : Be.id
              };
            }
            let Xi = {};
            if (Pn & 1024) {
              const dn = Xt;
              Xi = {
                reverseMappedSourceType: (We = dn.source) == null ? void 0 : We.id,
                reverseMappedMappedType: (Oe = dn.mappedType) == null ? void 0 : Oe.id,
                reverseMappedConstraintType: (Me = dn.constraintType) == null ? void 0 : Me.id
              };
            }
            let Nr = {};
            if (Pn & 256) {
              const dn = Xt;
              Nr = {
                evolvingArrayElementType: dn.elementType.id,
                evolvingArrayFinalType: (Xe = dn.finalArrayType) == null ? void 0 : Xe.id
              };
            }
            let At;
            const vn = Xt.checker.getRecursionIdentity(Xt);
            vn && (At = tt.get(vn), At || (At = tt.size, tt.set(vn, At)));
            const Ht = {
              id: Xt.id,
              intrinsicName: Xt.intrinsicName,
              symbolName: (Wn == null ? void 0 : Wn.escapedName) && ta(Wn.escapedName),
              recursionId: At,
              isTuple: Pn & 8 ? !0 : void 0,
              unionTypes: Xt.flags & 1048576 ? (He = Xt.types) == null ? void 0 : He.map((dn) => dn.id) : void 0,
              intersectionTypes: Xt.flags & 2097152 ? Xt.types.map((dn) => dn.id) : void 0,
              aliasTypeArguments: (Fe = Xt.aliasTypeArguments) == null ? void 0 : Fe.map((dn) => dn.id),
              keyofType: Xt.flags & 4194304 ? (st = Xt.type) == null ? void 0 : st.id : void 0,
              ...Yt,
              ..._r,
              ...Ai,
              ...Ki,
              ...Xi,
              ...Nr,
              destructuringPattern: H(Xt.pattern),
              firstDeclaration: H((Ct = Wn == null ? void 0 : Wn.declarations) == null ? void 0 : Ct[0]),
              flags: D.formatTypeFlags(Xt.flags).split("|"),
              display: In
            };
            t.writeSync(Vt, JSON.stringify(Ht)), an < at - 1 && t.writeSync(Vt, `,
`);
          }
          t.writeSync(Vt, `]
`), t.closeSync(Vt), ic("endDumpTypes"), Hf("Dump types", "beginDumpTypes", "endDumpTypes");
        }
        function X() {
          l && t.writeFileSync(l, JSON.stringify(f));
        }
        e.dumpLegend = X;
      })(fR || (fR = {})), $se = fR.startTracing, Qse = fR.dumpLegend;
    }
  });
  function W4(e, t = !0) {
    const r = pR[e.category];
    return t ? r.toLowerCase() : r;
  }
  var z4, q4, J4, wj, K4, X4, Dj, _R, Rj, oI, Y4, Nj, Oj, Pj, Mj, Fj, Bj, Gj, Uj, Vj, jj, Hj, Wj, zj, qj, $4, Jj, Kj, Xj, Yj, Q4, Z4, $j, Qj, Zj, eH, tH, eM, nH, rH, iH, aH, oH, sH, pR, mR, cH, lH, uH, dH, tM, fH, _H, pH, mH, hH, gH, yH, vH, bH, nM, rM, iM, EH, TH, SH, xH, AH, CH, LH, IH, hR, Zse = C({
    "src/compiler/types.ts"() {
      z4 = /* @__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))(z4 || {}), q4 = /* @__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))(q4 || {}), J4 = /* @__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))(J4 || {}), wj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.IntrinsicNamedElement = 1] = "IntrinsicNamedElement", e[e.IntrinsicIndexedElement = 2] = "IntrinsicIndexedElement", e[e.IntrinsicElement = 3] = "IntrinsicElement", e))(wj || {}), K4 = /* @__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))(K4 || {}), X4 = /* @__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))(X4 || {}), Dj = /* @__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))(Dj || {}), _R = /* @__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))(_R || {}), Rj = /* @__PURE__ */ ((e) => (e[e.ExpectError = 0] = "ExpectError", e[e.Ignore = 1] = "Ignore", e))(Rj || {}), oI = class {
      }, Y4 = /* @__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))(Y4 || {}), Nj = /* @__PURE__ */ ((e) => (e[e.FilePreprocessingReferencedDiagnostic = 0] = "FilePreprocessingReferencedDiagnostic", e[e.FilePreprocessingFileExplainingDiagnostic = 1] = "FilePreprocessingFileExplainingDiagnostic", e[e.ResolutionDiagnostics = 2] = "ResolutionDiagnostics", e))(Nj || {}), Oj = /* @__PURE__ */ ((e) => (e[e.Js = 0] = "Js", e[e.Dts = 1] = "Dts", e))(Oj || {}), Pj = /* @__PURE__ */ ((e) => (e[e.Not = 0] = "Not", e[e.SafeModules = 1] = "SafeModules", e[e.Completely = 2] = "Completely", e))(Pj || {}), Mj = /* @__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))(Mj || {}), Fj = /* @__PURE__ */ ((e) => (e[e.Ok = 0] = "Ok", e[e.NeedsOverride = 1] = "NeedsOverride", e[e.HasInvalidOverride = 2] = "HasInvalidOverride", e))(Fj || {}), Bj = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Literal = 1] = "Literal", e[e.Subtype = 2] = "Subtype", e))(Bj || {}), Gj = /* @__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))(Gj || {}), Uj = /* @__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))(Uj || {}), Vj = /* @__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))(Vj || {}), jj = /* @__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))(jj || {}), Hj = /* @__PURE__ */ ((e) => (e[e.Accessible = 0] = "Accessible", e[e.NotAccessible = 1] = "NotAccessible", e[e.CannotBeNamed = 2] = "CannotBeNamed", e))(Hj || {}), Wj = /* @__PURE__ */ ((e) => (e[e.UnionOrIntersection = 0] = "UnionOrIntersection", e[e.Spread = 1] = "Spread", e))(Wj || {}), zj = /* @__PURE__ */ ((e) => (e[e.This = 0] = "This", e[e.Identifier = 1] = "Identifier", e[e.AssertsThis = 2] = "AssertsThis", e[e.AssertsIdentifier = 3] = "AssertsIdentifier", e))(zj || {}), qj = /* @__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))(qj || {}), $4 = /* @__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))($4 || {}), Jj = /* @__PURE__ */ ((e) => (e[e.Numeric = 0] = "Numeric", e[e.Literal = 1] = "Literal", e))(Jj || {}), Kj = /* @__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))(Kj || {}), Xj = /* @__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))(Xj || {}), Yj = /* @__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))(Yj || {}), Q4 = /* @__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))(Q4 || {}), Z4 = /* @__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))(Z4 || {}), $j = /* @__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))($j || {}), Qj = /* @__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))(Qj || {}), Zj = /* @__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))(Zj || {}), eH = /* @__PURE__ */ ((e) => (e[e.Component = 0] = "Component", e[e.Function = 1] = "Function", e[e.Mixed = 2] = "Mixed", e))(eH || {}), tH = /* @__PURE__ */ ((e) => (e[e.Call = 0] = "Call", e[e.Construct = 1] = "Construct", e))(tH || {}), eM = /* @__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))(eM || {}), nH = /* @__PURE__ */ ((e) => (e[e.String = 0] = "String", e[e.Number = 1] = "Number", e))(nH || {}), rH = /* @__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))(rH || {}), iH = /* @__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))(iH || {}), aH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.NoDefault = 1] = "NoDefault", e[e.AnyDefault = 2] = "AnyDefault", e[e.SkippedGenericFunction = 4] = "SkippedGenericFunction", e))(aH || {}), oH = /* @__PURE__ */ ((e) => (e[e.False = 0] = "False", e[e.Unknown = 1] = "Unknown", e[e.Maybe = 3] = "Maybe", e[e.True = -1] = "True", e))(oH || {}), sH = /* @__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))(sH || {}), pR = /* @__PURE__ */ ((e) => (e[e.Warning = 0] = "Warning", e[e.Error = 1] = "Error", e[e.Suggestion = 2] = "Suggestion", e[e.Message = 3] = "Message", e))(pR || {}), mR = /* @__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))(mR || {}), cH = /* @__PURE__ */ ((e) => (e[e.Legacy = 1] = "Legacy", e[e.Auto = 2] = "Auto", e[e.Force = 3] = "Force", e))(cH || {}), lH = /* @__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))(lH || {}), uH = /* @__PURE__ */ ((e) => (e[e.UseFsEvents = 0] = "UseFsEvents", e[e.FixedPollingInterval = 1] = "FixedPollingInterval", e[e.DynamicPriorityPolling = 2] = "DynamicPriorityPolling", e[e.FixedChunkSizePolling = 3] = "FixedChunkSizePolling", e))(uH || {}), dH = /* @__PURE__ */ ((e) => (e[e.FixedInterval = 0] = "FixedInterval", e[e.PriorityInterval = 1] = "PriorityInterval", e[e.DynamicPriority = 2] = "DynamicPriority", e[e.FixedChunkSize = 3] = "FixedChunkSize", e))(dH || {}), tM = /* @__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))(tM || {}), fH = /* @__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))(fH || {}), _H = /* @__PURE__ */ ((e) => (e[e.Remove = 0] = "Remove", e[e.Preserve = 1] = "Preserve", e[e.Error = 2] = "Error", e))(_H || {}), pH = /* @__PURE__ */ ((e) => (e[e.CarriageReturnLineFeed = 0] = "CarriageReturnLineFeed", e[e.LineFeed = 1] = "LineFeed", e))(pH || {}), mH = /* @__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))(mH || {}), hH = /* @__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))(hH || {}), gH = /* @__PURE__ */ ((e) => (e[e.Standard = 0] = "Standard", e[e.JSX = 1] = "JSX", e))(gH || {}), yH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Recursive = 1] = "Recursive", e))(yH || {}), vH = /* @__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))(vH || {}), bH = /* @__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))(bH || {}), nM = /* @__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))(nM || {}), rM = /* @__PURE__ */ ((e) => (e[e.TabStop = 0] = "TabStop", e[e.Placeholder = 1] = "Placeholder", e[e.Choice = 2] = "Choice", e[e.Variable = 3] = "Variable", e))(rM || {}), iM = /* @__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))(iM || {}), EH = /* @__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))(EH || {}), TH = /* @__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))(TH || {}), SH = /* @__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))(SH || {}), xH = /* @__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))(xH || {}), AH = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.InParameters = 1] = "InParameters", e[e.VariablesHoistedInParameters = 2] = "VariablesHoistedInParameters", e))(AH || {}), CH = /* @__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))(CH || {}), LH = /* @__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))(LH || {}), IH = /* @__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))(IH || {}), hR = {
        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 gR(e) {
    let t = 5381;
    for (let r = 0; r < e.length; r++)
      t = (t << 5) + t + e.charCodeAt(r);
    return t.toString();
  }
  function tOe() {
    Error.stackTraceLimit < 100 && (Error.stackTraceLimit = 100);
  }
  function HS(e, t) {
    return e.getModifiedTime(t) || Qh;
  }
  function kH(e) {
    return {
      [250]: e.Low,
      [500]: e.Medium,
      [2e3]: e.High
    };
  }
  function nOe(e) {
    if (!e.getEnvironmentVariable)
      return;
    const t = o("TSC_WATCH_POLLINGINTERVAL", aM);
    bR = s("TSC_WATCH_POLLINGCHUNKSIZE", vR) || bR, ER = s("TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS", vR) || ER;
    function r(l, f) {
      return e.getEnvironmentVariable(`${l}_${f.toUpperCase()}`);
    }
    function i(l) {
      let f;
      return d("Low"), d("Medium"), d("High"), f;
      function d(y) {
        const h = r(l, y);
        h && ((f || (f = {}))[y] = Number(h));
      }
    }
    function o(l, f) {
      const d = i(l);
      if (d)
        return y("Low"), y("Medium"), y("High"), !0;
      return !1;
      function y(h) {
        f[h] = d[h] || f[h];
      }
    }
    function s(l, f) {
      const d = i(l);
      return (t || d) && kH(d ? { ...f, ...d } : f);
    }
  }
  function ece(e, t, r, i, o) {
    let s = r;
    for (let f = t.length; i && f; l(), f--) {
      const d = t[r];
      if (d) {
        if (d.isClosed) {
          t[r] = void 0;
          continue;
        }
      } else
        continue;
      i--;
      const y = oOe(d, HS(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 l() {
      r++, r === t.length && (s < r && (t.length = s), r = 0, s = 0);
    }
  }
  function rOe(e) {
    const t = [], r = [], i = f(250), o = f(500), s = f(2e3);
    return l;
    function l(k, B, V) {
      const H = {
        fileName: k,
        callback: B,
        unchangedPolls: 0,
        mtime: HS(e, k)
      };
      return t.push(H), A(H, V), {
        close: () => {
          H.isClosed = !0, cR(t, H);
        }
      };
    }
    function f(k) {
      const B = [];
      return B.pollingInterval = k, B.pollIndex = 0, B.pollScheduled = !1, B;
    }
    function d(k) {
      k.pollIndex = h(k, k.pollingInterval, k.pollIndex, bR[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, B, V, H) {
      return ece(e, k, V, H, te);
      function te(X, Y, P) {
        P ? (X.unchangedPolls = 0, k !== r && (k[Y] = void 0, L(X))) : X.unchangedPolls !== ER[B] ? X.unchangedPolls++ : k === r ? (X.unchangedPolls = 1, k[Y] = void 0, A(X, 250)) : B !== 2e3 && (X.unchangedPolls++, k[Y] = void 0, A(X, B === 250 ? 500 : 2e3));
      }
    }
    function b(k) {
      switch (k) {
        case 250:
          return i;
        case 500:
          return o;
        case 2e3:
          return s;
      }
    }
    function A(k, B) {
      b(B).push(k), I(B);
    }
    function L(k) {
      r.push(k), I(250);
    }
    function I(k) {
      b(k).pollScheduled || O(k);
    }
    function O(k) {
      b(k).pollScheduled = e.setTimeout(k === 250 ? y : d, k, b(k));
    }
  }
  function iOe(e, t) {
    const r = l_(), i = /* @__PURE__ */ new Map(), o = Zl(t);
    return s;
    function s(f, d, y, h) {
      const b = o(f);
      r.add(b, d);
      const A = _i(b) || ".", L = i.get(A) || l(_i(f) || ".", A, h);
      return L.referenceCount++, {
        close: () => {
          L.referenceCount === 1 ? (L.close(), i.delete(A)) : L.referenceCount--, r.remove(b, d);
        }
      };
    }
    function l(f, d, y) {
      const h = e(f, 1, (b, A, L) => {
        if (!Ua(A))
          return;
        const I = Da(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 aOe(e) {
    const t = [];
    let r = 0, i;
    return o;
    function o(f, d) {
      const y = {
        fileName: f,
        callback: d,
        mtime: HS(e, f)
      };
      return t.push(y), l(), {
        close: () => {
          y.isClosed = !0, cR(t, y);
        }
      };
    }
    function s() {
      i = void 0, r = ece(e, t, r, bR[250]), l();
    }
    function l() {
      !t.length || i || (i = e.setTimeout(s, 2e3));
    }
  }
  function tce(e, t, r, i, o) {
    const l = Zl(t)(r), f = e.get(l);
    return f ? f.callbacks.push(i) : e.set(l, {
      watcher: o((d, y, h) => {
        var b;
        return (b = e.get(l)) == null ? void 0 : b.callbacks.slice().forEach((A) => A(d, y, h));
      }),
      callbacks: [i]
    }), {
      close: () => {
        const d = e.get(l);
        d && (!N4(d.callbacks, i) || d.callbacks.length || (e.delete(l), zm(d)));
      }
    };
  }
  function oOe(e, t) {
    const r = e.mtime.getTime(), i = t.getTime();
    return r !== i ? (e.mtime = t, e.callback(e.fileName, nce(r, i), t), !0) : !1;
  }
  function nce(e, t) {
    return e === 0 ? 0 : t === 0 ? 2 : 1;
  }
  function yR(e) {
    return DH(e);
  }
  function rce(e) {
    DH = e;
  }
  function sOe({
    watchDirectory: e,
    useCaseSensitiveFileNames: t,
    getCurrentDirectory: r,
    getAccessibleSortedChildDirectories: i,
    fileSystemEntryExists: o,
    realpath: s,
    setTimeout: l,
    clearTimeout: f
  }) {
    const d = /* @__PURE__ */ new Map(), y = l_(), h = /* @__PURE__ */ new Map();
    let b;
    const A = R4(!t), L = Zl(t);
    return (P, de, ne, ye) => ne ? I(P, ye, de) : e(P, de, ne, ye);
    function I(P, de, ne) {
      const ye = L(P);
      let ie = d.get(ye);
      ie ? ie.refCount++ : (ie = {
        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, ie), te(P, ye, de));
      const W = ne && { dirName: P, callback: ne };
      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), zm(ce), ce.childWatches.forEach(Fm));
        }
      };
    }
    function O(P, de, ne) {
      let ye, ie;
      Ua(de) ? ye = de : ie = de, y.forEach((W, ce) => {
        if (!(ie && ie.get(ce) === !0) && (ce === P || ba(P, ce) && P[ce.length] === Ns))
          if (ie)
            if (ne) {
              const pe = ie.get(ce);
              pe ? pe.push(...ne) : ie.set(ce, ne.slice());
            } else
              ie.set(ce, !0);
          else
            W.forEach(({ callback: pe }) => pe(ye));
      });
    }
    function k(P, de, ne, ye) {
      const ie = d.get(de);
      if (ie && o(P, 1)) {
        B(P, de, ne, ye);
        return;
      }
      O(de, ne), H(ie);
    }
    function B(P, de, ne, ye) {
      const ie = h.get(de);
      ie ? ie.fileNames.push(ne) : h.set(de, { dirName: P, options: ye, fileNames: [ne] }), b && (f(b), b = void 0), b = l(V, 1e3);
    }
    function V() {
      b = void 0, yR(`sysLog:: onTimerToUpdateChildWatches:: ${h.size}`);
      const P = rc(), de = /* @__PURE__ */ new Map();
      for (; !b && h.size; ) {
        const ye = h.entries().next();
        D.assert(!ye.done);
        const { value: [ie, { dirName: W, options: ce, fileNames: pe }] } = ye;
        h.delete(ie);
        const ve = te(W, ie, ce);
        O(ie, de, ve ? void 0 : pe);
      }
      yR(`sysLog:: invokingWatchers:: Elapsed:: ${rc() - P}ms:: ${h.size}`), y.forEach((ye, ie) => {
        const W = de.get(ie);
        W && ye.forEach(({ callback: ce, dirName: pe }) => {
          Ba(W) ? W.forEach(ce) : ce(pe);
        });
      });
      const ne = rc() - P;
      yR(`sysLog:: Elapsed:: ${ne}ms:: onTimerToUpdateChildWatches:: ${h.size} ${b}`);
    }
    function H(P) {
      if (!P)
        return;
      const de = P.childWatches;
      P.childWatches = rt;
      for (const ne of de)
        ne.close(), H(d.get(L(ne.dirName)));
    }
    function te(P, de, ne) {
      const ye = d.get(de);
      if (!ye)
        return !1;
      let ie;
      const W = Ise(o(P, 1) ? fa(i(P), (ve) => {
        const Te = Da(ve, P);
        return !X(Te, ne) && A(Te, Wo(s(Te))) === 0 ? Te : void 0;
      }) : rt, ye.childWatches, (ve, Te) => A(ve, Te.dirName), ce, Fm, pe);
      return ye.childWatches = ie || rt, W;
      function ce(ve) {
        const Te = I(ve, ne);
        pe(Te);
      }
      function pe(ve) {
        (ie || (ie = [])).push(ve);
      }
    }
    function X(P, de) {
      return kt(TR, (ne) => Y(P, ne)) || ice(P, de, t, r);
    }
    function Y(P, de) {
      return uu(P, de) ? !0 : t ? !1 : uu(L(P), de);
    }
  }
  function cOe(e) {
    return (t, r, i) => e(r === 1 ? "change" : "rename", "", i);
  }
  function lOe(e, t, r) {
    return (i, o, s) => {
      i === "rename" ? (s || (s = r(e) || Qh), t(e, s !== Qh ? 0 : 2, s)) : t(e, 1, s);
    };
  }
  function ice(e, t, r, i) {
    return ((t == null ? void 0 : t.excludeDirectories) || (t == null ? void 0 : t.excludeFiles)) && (n5(e, t == null ? void 0 : t.excludeFiles, r, i()) || n5(e, t == null ? void 0 : t.excludeDirectories, r, i()));
  }
  function ace(e, t, r, i, o) {
    return (s, l) => {
      if (s === "rename") {
        const f = l ? Wo(Pi(e, l)) : e;
        (!l || !ice(f, r, i, o)) && t(f);
      }
    };
  }
  function oce({
    pollingWatchFileWorker: e,
    getModifiedTime: t,
    setTimeout: r,
    clearTimeout: i,
    fsWatchWorker: o,
    fileSystemEntryExists: s,
    useCaseSensitiveFileNames: l,
    getCurrentDirectory: f,
    fsSupportsRecursiveFsWatch: d,
    getAccessibleSortedChildDirectories: y,
    realpath: h,
    tscWatchFile: b,
    useNonPollingWatchers: A,
    tscWatchDirectory: L,
    inodeWatching: I,
    sysLog: O
  }) {
    const k = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map(), V = /* @__PURE__ */ new Map();
    let H, te, X, Y, P = !1;
    return {
      watchFile: de,
      watchDirectory: ce
    };
    function de(Ue, Be, We, Oe) {
      Oe = ie(Oe, A);
      const Me = D.checkDefined(Oe.watchFile);
      switch (Me) {
        case 0:
          return Te(Ue, Be, 250, void 0);
        case 1:
          return Te(Ue, Be, We, void 0);
        case 2:
          return ne()(Ue, Be, We, void 0);
        case 3:
          return ye()(Ue, Be, void 0, void 0);
        case 4:
          return ee(Ue, 0, lOe(Ue, Be, t), !1, We, A8(Oe));
        case 5:
          return X || (X = iOe(ee, l)), X(Ue, Be, We, A8(Oe));
        default:
          D.assertNever(Me);
      }
    }
    function ne() {
      return H || (H = rOe({ getModifiedTime: t, setTimeout: r }));
    }
    function ye() {
      return te || (te = aOe({ getModifiedTime: t, setTimeout: r }));
    }
    function ie(Ue, Be) {
      if (Ue && Ue.watchFile !== void 0)
        return Ue;
      switch (b) {
        case "PriorityPollingInterval":
          return { watchFile: 1 };
        case "DynamicPriorityPolling":
          return { watchFile: 2 };
        case "UseFsEvents":
          return W(4, 1, Ue);
        case "UseFsEventsWithFallbackDynamicPolling":
          return W(4, 2, Ue);
        case "UseFsEventsOnParentDirectory":
          Be = !0;
        default:
          return Be ? W(5, 1, Ue) : { watchFile: 4 };
      }
    }
    function W(Ue, Be, We) {
      const Oe = We == null ? void 0 : We.fallbackPolling;
      return {
        watchFile: Ue,
        fallbackPolling: Oe === void 0 ? Be : Oe
      };
    }
    function ce(Ue, Be, We, Oe) {
      return d ? ee(Ue, 1, ace(Ue, Be, Oe, l, f), We, 500, A8(Oe)) : (Y || (Y = sOe({
        useCaseSensitiveFileNames: l,
        getCurrentDirectory: f,
        fileSystemEntryExists: s,
        getAccessibleSortedChildDirectories: y,
        watchDirectory: pe,
        realpath: h,
        setTimeout: r,
        clearTimeout: i
      })), Y(Ue, Be, We, Oe));
    }
    function pe(Ue, Be, We, Oe) {
      D.assert(!We);
      const Me = ve(Oe), Xe = D.checkDefined(Me.watchDirectory);
      switch (Xe) {
        case 1:
          return Te(Ue, () => Be(Ue), 500, void 0);
        case 2:
          return ne()(Ue, () => Be(Ue), 500, void 0);
        case 3:
          return ye()(Ue, () => Be(Ue), void 0, void 0);
        case 0:
          return ee(Ue, 1, ace(Ue, Be, Oe, l, f), We, 500, A8(Me));
        default:
          D.assertNever(Xe);
      }
    }
    function ve(Ue) {
      if (Ue && Ue.watchDirectory !== void 0)
        return Ue;
      switch (L) {
        case "RecursiveDirectoryUsingFsWatchFile":
          return { watchDirectory: 1 };
        case "RecursiveDirectoryUsingDynamicPriorityPolling":
          return { watchDirectory: 2 };
        default:
          const Be = Ue == null ? void 0 : Ue.fallbackPolling;
          return {
            watchDirectory: 0,
            fallbackPolling: Be !== void 0 ? Be : void 0
          };
      }
    }
    function Te(Ue, Be, We, Oe) {
      return tce(k, l, Ue, Be, (Me) => e(Ue, Me, We, Oe));
    }
    function ee(Ue, Be, We, Oe, Me, Xe) {
      return tce(Oe ? V : B, l, Ue, We, (He) => $e(Ue, Be, He, Oe, Me, Xe));
    }
    function $e(Ue, Be, We, Oe, Me, Xe) {
      let He, Fe;
      I && (He = Ue.substring(Ue.lastIndexOf(Ns)), Fe = He.slice(Ns.length));
      let st = s(Ue, Be) ? Et() : at();
      return {
        close: () => {
          st && (st.close(), st = void 0);
        }
      };
      function Ct(an) {
        st && (O(`sysLog:: ${Ue}:: Changing watcher to ${an === Et ? "Present" : "Missing"}FileSystemEntryWatcher`), st.close(), st = an());
      }
      function Et() {
        if (P)
          return O(`sysLog:: ${Ue}:: Defaulting to watchFile`), tt();
        try {
          const an = o(Ue, Oe, I ? Vt : We);
          return an.on("error", () => {
            We("rename", ""), Ct(at);
          }), an;
        } catch (an) {
          return P || (P = an.code === "ENOSPC"), O(`sysLog:: ${Ue}:: Changing to watchFile`), tt();
        }
      }
      function Vt(an, Xt) {
        let Pn;
        if (Xt && tl(Xt, "~") && (Pn = Xt, Xt = Xt.slice(0, Xt.length - 1)), an === "rename" && (!Xt || Xt === Fe || tl(Xt, He))) {
          const Wn = t(Ue) || Qh;
          Pn && We(an, Pn, Wn), We(an, Xt, Wn), I ? Ct(Wn === Qh ? at : Et) : Wn === Qh && Ct(at);
        } else
          Pn && We(an, Pn), We(an, Xt);
      }
      function tt() {
        return de(Ue, cOe(We), Me, Xe);
      }
      function at() {
        return de(Ue, (an, Xt, Pn) => {
          Xt === 0 && (Pn || (Pn = t(Ue) || Qh), Pn !== Qh && (We("rename", "", Pn), Ct(Et)));
        }, Me, Xe);
      }
    }
  }
  function sce(e) {
    const t = e.writeFile;
    e.writeFile = (r, i, o) => Iz(r, i, !!o, (s, l, f) => t.call(e, s, l, f), (s) => e.createDirectory(s), (s) => e.directoryExists(s));
  }
  function uOe(e) {
    ql = e;
  }
  var wH, aM, Qh, vR, bR, ER, TR, DH, RH, ql, dOe = C({
    "src/compiler/sys.ts"() {
      wa(), wH = /* @__PURE__ */ ((e) => (e[e.Created = 0] = "Created", e[e.Changed = 1] = "Changed", e[e.Deleted = 2] = "Deleted", e))(wH || {}), aM = /* @__PURE__ */ ((e) => (e[e.High = 2e3] = "High", e[e.Medium = 500] = "Medium", e[e.Low = 250] = "Low", e))(aM || {}), Qh = /* @__PURE__ */ new Date(0), vR = { Low: 32, Medium: 64, High: 256 }, bR = kH(vR), ER = kH(vR), TR = ["/node_modules/.", "/.git", "/.#"], DH = io, RH = /* @__PURE__ */ ((e) => (e[e.File = 0] = "File", e[e.Directory = 1] = "Directory", e))(RH || {}), ql = (() => {
        const e = "\uFEFF";
        function t() {
          const i = /^native |^\([^)]+\)$|^(internal[\\/]|[a-zA-Z0-9_\s]+(\.js)?$)/, o = Kb("fs"), s = Kb("path"), l = Kb("os");
          let f;
          try {
            f = Kb("crypto");
          } catch {
            f = void 0;
          }
          let d, y = "./profile.cpuprofile";
          const h = Kb("buffer").Buffer, b = process.platform === "linux" || process.platform === "darwin", A = l.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", B = yd(() => process.cwd()), { watchFile: V, watchDirectory: H } = oce({
            pollingWatchFileWorker: W,
            getModifiedTime: He,
            setTimeout,
            clearTimeout,
            fsWatchWorker: ce,
            useCaseSensitiveFileNames: L,
            getCurrentDirectory: B,
            fileSystemEntryExists: Ue,
            fsSupportsRecursiveFsWatch: k,
            getAccessibleSortedChildDirectories: (Et) => ee(Et).directories,
            realpath: Xe,
            tscWatchFile: process.env.TSC_WATCHFILE,
            useNonPollingWatchers: process.env.TSC_NONPOLLING_WATCHER,
            tscWatchDirectory: process.env.TSC_WATCHDIRECTORY,
            inodeWatching: b,
            sysLog: yR
          }), te = {
            args: process.argv.slice(2),
            newLine: l.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: We,
            createDirectory(Et) {
              if (!te.directoryExists(Et))
                try {
                  o.mkdirSync(Et);
                } catch (Vt) {
                  if (Vt.code !== "EEXIST")
                    throw Vt;
                }
            },
            getExecutingFilePath() {
              return O;
            },
            getCurrentDirectory: B,
            getDirectories: Oe,
            getEnvironmentVariable(Et) {
              return process.env[Et] || "";
            },
            readDirectory: $e,
            getModifiedTime: He,
            setModifiedTime: Fe,
            deleteFile: st,
            createHash: f ? Ct : gR,
            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 || wi(process.execArgv, "--cpu-prof") || wi(process.execArgv, "--prof"),
            realpath: Xe,
            debugMode: !!process.env.NODE_INSPECTOR_IPC || !!process.env.VSCODE_INSPECTOR_OPTIONS || kt(process.execArgv, (Et) => /^--(inspect|debug)(-brk)?(=\d+)?$/i.test(Et)),
            tryEnableSourceMapsForHost() {
              try {
                Kb("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: ne,
            base64decode: (Et) => ne(Et, "base64").toString("utf8"),
            base64encode: (Et) => ne(Et).toString("base64"),
            require: (Et, Vt) => {
              try {
                const tt = Gpe(Vt, Et, te);
                return { module: Kb(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 = Kb("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 = Jl(s.dirname(O)), an = `file://${Wp(at) === 1 ? "" : "/"}${at}`;
            for (const Xt of Et.nodes)
              if (Xt.callFrame.url) {
                const Pn = Jl(Xt.callFrame.url);
                gv(an, Pn, L) ? Xt.callFrame.url = WS(an, Pn, an, Zl(L), !0) : i.test(Pn) || (Xt.callFrame.url = (tt.has(Pn) ? tt : tt.set(Pn, `external${Vt}.js`)).get(Pn), Vt++);
              }
            return Et;
          }
          function de(Et) {
            if (d && d !== "stopping") {
              const Vt = d;
              return d.post("Profiler.stop", (tt, { profile: at }) => {
                var an;
                if (!tt) {
                  try {
                    (an = X(y)) != null && an.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 ne(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(ie(__filename));
          }
          function ie(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 }, an);
            let at;
            return {
              close: () => o.unwatchFile(Et, an)
            };
            function an(Xt, Pn) {
              const Wn = +Pn.mtime == 0 || at === 2;
              if (+Xt.mtime == 0) {
                if (Wn)
                  return;
                at = 2;
              } else if (Wn)
                at = 0;
              else {
                if (+Xt.mtime == +Pn.mtime)
                  return;
                at = 1;
              }
              Vt(Et, at, Xt.mtime);
            }
          }
          function ce(Et, Vt, tt) {
            return o.watch(Et, k ? { persistent: !0, recursive: !!Vt } : { persistent: !0 }, tt);
          }
          function pe(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 an = 0; an < at; an += 2) {
                const Xt = tt[an];
                tt[an] = tt[an + 1], tt[an + 1] = Xt;
              }
              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) {
            Hp.logStartReadFile(Et);
            const tt = pe(Et);
            return Hp.logStopReadFile(), tt;
          }
          function Te(Et, Vt, tt) {
            Hp.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) {
            Hp.logEvent("ReadDir: " + (Et || "."));
            try {
              const Vt = o.readdirSync(Et || ".", { withFileTypes: !0 }), tt = [], at = [];
              for (const an of Vt) {
                const Xt = typeof an == "string" ? an : an.name;
                if (Xt === "." || Xt === "..")
                  continue;
                let Pn;
                if (typeof an == "string" || an.isSymbolicLink()) {
                  const Wn = Pi(Et, Xt);
                  try {
                    if (Pn = X(Wn), !Pn)
                      continue;
                  } catch {
                    continue;
                  }
                } else
                  Pn = an;
                Pn.isFile() ? tt.push(Xt) : Pn.isDirectory() && at.push(Xt);
              }
              return tt.sort(), at.sort(), { files: tt, directories: at };
            } catch {
              return K3;
            }
          }
          function $e(Et, Vt, tt, at, an) {
            return rq(Et, Vt, tt, at, L, process.cwd(), an, ee, Xe);
          }
          function Ue(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 Ue(Et, 0);
          }
          function We(Et) {
            return Ue(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 Xe(Et) {
            try {
              return I(Et);
            } catch {
              return Et;
            }
          }
          function He(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 bj() && (r = t()), r && sce(r), r;
      })(), ql && ql.getEnvironmentVariable && (nOe(ql), D.setAssertionLevel(/^development$/i.test(ql.getEnvironmentVariable("NODE_ENV")) ? 1 : 0)), ql && ql.debugMode && (D.isDebugging = !0);
    }
  });
  function NH(e) {
    return e === 47 || e === 92;
  }
  function cce(e) {
    return SR(e) < 0;
  }
  function Cm(e) {
    return SR(e) > 0;
  }
  function fOe(e) {
    const t = SR(e);
    return t > 0 && t === e.length;
  }
  function sI(e) {
    return SR(e) !== 0;
  }
  function vf(e) {
    return /^\.\.?($|[\\/])/.test(e);
  }
  function OH(e) {
    return !sI(e) && !vf(e);
  }
  function gA(e) {
    return uu(du(e), ".");
  }
  function sl(e, t) {
    return e.length > t.length && tl(e, t);
  }
  function bl(e, t) {
    for (const r of t)
      if (sl(e, r))
        return !0;
    return !1;
  }
  function mv(e) {
    return e.length > 0 && NH(e.charCodeAt(e.length - 1));
  }
  function lce(e) {
    return e >= 97 && e <= 122 || e >= 65 && e <= 90;
  }
  function _Oe(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 SR(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 ? Ns : CR, 2);
      return i < 0 ? e.length : i + 1;
    }
    if (lce(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(UH);
    if (r !== -1) {
      const i = r + UH.length, o = e.indexOf(Ns, i);
      if (o !== -1) {
        const s = e.slice(0, r), l = e.slice(i, o);
        if (s === "file" && (l === "" || l === "localhost") && lce(e.charCodeAt(o + 1))) {
          const f = _Oe(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 Wp(e) {
    const t = SR(e);
    return t < 0 ? ~t : t;
  }
  function _i(e) {
    e = Jl(e);
    const t = Wp(e);
    return t === e.length ? e : (e = $E(e), e.slice(0, Math.max(t, e.lastIndexOf(Ns))));
  }
  function du(e, t, r) {
    if (e = Jl(e), Wp(e) === e.length)
      return "";
    e = $E(e);
    const o = e.slice(Math.max(Wp(e), e.lastIndexOf(Ns) + 1)), s = t !== void 0 && r !== void 0 ? oM(o, t, r) : void 0;
    return s ? o.slice(0, o.length - s.length) : o;
  }
  function uce(e, t, r) {
    if (ba(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 pOe(e, t, r) {
    if (typeof t == "string")
      return uce(e, t, r) || "";
    for (const i of t) {
      const o = uce(e, i, r);
      if (o)
        return o;
    }
    return "";
  }
  function oM(e, t, r) {
    if (t)
      return pOe($E(e), t, r ? MS : FS);
    const i = du(e), o = i.lastIndexOf(".");
    return o >= 0 ? i.substring(o) : "";
  }
  function mOe(e, t) {
    const r = e.substring(0, t), i = e.substring(t).split(Ns);
    return i.length && !ec(i) && i.pop(), [r, ...i];
  }
  function ad(e, t = "") {
    return e = Pi(t, e), mOe(e, Wp(e));
  }
  function l1(e) {
    return e.length === 0 ? "" : (e[0] && wu(e[0])) + e.slice(1).join(Ns);
  }
  function Jl(e) {
    return e.indexOf("\\") !== -1 ? e.replace(dce, Ns) : 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 Pi(e, ...t) {
    e && (e = Jl(e));
    for (let r of t)
      r && (r = Jl(r), !e || Wp(r) !== 0 ? e = r : e = wu(e) + r);
    return e;
  }
  function hv(e, ...t) {
    return Wo(kt(t) ? Pi(e, ...t) : Jl(e));
  }
  function xR(e, t) {
    return YE(ad(e, t));
  }
  function Da(e, t) {
    return l1(xR(e, t));
  }
  function Wo(e) {
    if (e = Jl(e), !LR.test(e))
      return e;
    const t = e.replace(/\/\.\//g, "/").replace(/^\.\//, "");
    if (t !== e && (e = t, !LR.test(e)))
      return e;
    const r = l1(YE(ad(e)));
    return r && mv(e) ? wu(r) : r;
  }
  function hOe(e) {
    return e.length === 0 ? "" : e.slice(1).join(Ns);
  }
  function PH(e, t) {
    return hOe(xR(e, t));
  }
  function js(e, t, r) {
    const i = Cm(e) ? Wo(e) : Da(e, t);
    return r(i);
  }
  function $E(e) {
    return mv(e) ? e.substr(0, e.length - 1) : e;
  }
  function wu(e) {
    return mv(e) ? e : e + Ns;
  }
  function u1(e) {
    return !sI(e) && !vf(e) ? "./" + e : e;
  }
  function MH(e, t, r, i) {
    const o = r !== void 0 && i !== void 0 ? oM(e, r, i) : oM(e);
    return o ? e.slice(0, e.length - o.length) + (ba(t, ".") ? t : "." + t) : e;
  }
  function FH(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, Wp(e)), o = t.substring(0, Wp(t)), s = D4(i, o);
    if (s !== 0)
      return s;
    const l = e.substring(i.length), f = t.substring(o.length);
    if (!LR.test(l) && !LR.test(f))
      return r(l, f);
    const d = YE(ad(e)), y = YE(ad(t)), h = Math.min(d.length, y.length);
    for (let b = 1; b < h; b++) {
      const A = r(d[b], y[b]);
      if (A !== 0)
        return A;
    }
    return Vs(d.length, y.length);
  }
  function gOe(e, t) {
    return FH(e, t, ku);
  }
  function yOe(e, t) {
    return FH(e, t, D4);
  }
  function QE(e, t, r, i) {
    return typeof r == "string" ? (e = Pi(r, e), t = Pi(r, t)) : typeof r == "boolean" && (i = r), FH(e, t, R4(i));
  }
  function gv(e, t, r, i) {
    if (typeof r == "string" ? (e = Pi(r, e), t = Pi(r, t)) : typeof r == "boolean" && (i = r), e === void 0 || t === void 0)
      return !1;
    if (e === t)
      return !0;
    const o = YE(ad(e)), s = YE(ad(t));
    if (s.length < o.length)
      return !1;
    const l = i ? MS : FS;
    for (let f = 0; f < o.length; f++)
      if (!(f === 0 ? MS : l)(o[f], s[f]))
        return !1;
    return !0;
  }
  function BH(e, t, r) {
    const i = r(e), o = r(t);
    return ba(i, o + "/") || ba(i, o + "\\");
  }
  function GH(e, t, r, i) {
    const o = YE(ad(e)), s = YE(ad(t));
    let l;
    for (l = 0; l < o.length && l < s.length; l++) {
      const y = i(o[l]), h = i(s[l]);
      if (!(l === 0 ? MS : r)(y, h))
        break;
    }
    if (l === 0)
      return s;
    const f = s.slice(l), d = [];
    for (; l < o.length; l++)
      d.push("..");
    return ["", ...d, ...f];
  }
  function Lm(e, t, r) {
    D.assert(Wp(e) > 0 == Wp(t) > 0, "Paths must either both be absolute or both be relative");
    const s = GH(e, t, (typeof r == "boolean" ? r : !1) ? MS : FS, typeof r == "function" ? r : pc);
    return l1(s);
  }
  function cI(e, t, r) {
    return Cm(e) ? WS(t, e, t, r, !1) : e;
  }
  function AR(e, t, r) {
    return u1(Lm(_i(e), t, r));
  }
  function WS(e, t, r, i, o) {
    const s = GH(hv(r, e), hv(r, t), FS, i), l = s[0];
    if (o && Cm(l)) {
      const f = l.charAt(0) === Ns ? "file://" : "file:///";
      s[0] = f + l;
    }
    return l1(s);
  }
  function Zh(e, t) {
    for (; ; ) {
      const r = t(e);
      if (r !== void 0)
        return r;
      const i = _i(e);
      if (i === e)
        return;
      e = i;
    }
  }
  function sM(e) {
    return tl(e, "/node_modules");
  }
  var Ns, CR, UH, dce, LR, vOe = C({
    "src/compiler/path.ts"() {
      wa(), Ns = "/", CR = "\\", UH = "://", dce = /\\/g, LR = /(?:\/\/)|(?:^|\/)\.\.?(?:$|\/)/;
    }
  });
  function T(e, t, r, i, o, s, l) {
    return { code: e, category: t, key: r, message: i, reportsUnnecessary: o, elidedInCompatabilityPyramid: s, reportsDeprecated: l };
  }
  var _, bOe = C({
    "src/compiler/diagnosticInformationMap.generated.ts"() {
      Zse(), _ = {
        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 qu(e) {
    return e >= 79;
  }
  function fce(e) {
    return e === 31 || qu(e);
  }
  function lI(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 cM(e, t) {
    return t >= 2 ? lI(e, Tce) : t === 1 ? lI(e, bce) : lI(e, yce);
  }
  function EOe(e, t) {
    return t >= 2 ? lI(e, Sce) : t === 1 ? lI(e, Ece) : lI(e, vce);
  }
  function TOe(e) {
    const t = [];
    return e.forEach((r, i) => {
      t[r] = i;
    }), t;
  }
  function ho(e) {
    return Cce[e];
  }
  function ZE(e) {
    return zH.get(e);
  }
  function IR(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 && fu(o) && (t.push(i), i = r);
          break;
      }
    }
    return t.push(i), t;
  }
  function kR(e, t, r, i) {
    return e.getPositionOfLineAndCharacter ? e.getPositionOfLineAndCharacter(t, r, i) : VH(eg(e), t, r, e.text, i);
  }
  function VH(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 ? Qs(e, IR(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 eg(e) {
    return e.lineMap || (e.lineMap = IR(e.text));
  }
  function wR(e, t) {
    const r = uI(e, t);
    return {
      line: r,
      character: t - e[r]
    };
  }
  function uI(e, t, r) {
    let i = pv(e, t, pc, Vs, r);
    return i < 0 && (i = ~i - 1, D.assert(i !== -1, "position cannot precede the beginning of the file")), i;
  }
  function dI(e, t, r) {
    if (t === r)
      return 0;
    const i = eg(e), o = Math.min(t, r), s = o === r, l = s ? t : r, f = uI(i, o), d = uI(i, l, f);
    return s ? f - d : d - f;
  }
  function ac(e, t) {
    return wR(eg(e), t);
  }
  function tg(e) {
    return Im(e) || fu(e);
  }
  function Im(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 fu(e) {
    return e === 10 || e === 13 || e === 8232 || e === 8233;
  }
  function fI(e) {
    return e >= 48 && e <= 57;
  }
  function lM(e) {
    return fI(e) || e >= 65 && e <= 70 || e >= 97 && e <= 102;
  }
  function SOe(e) {
    return e <= 1114111;
  }
  function jH(e) {
    return e >= 48 && e <= 55;
  }
  function _ce(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 zo(e, t, r, i, o) {
    if (Yp(t))
      return t;
    let s = !1;
    for (; ; ) {
      const l = e.charCodeAt(t);
      switch (l) {
        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 && !fu(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 (yA(e, t)) {
            t = _I(e, t), s = !1;
            continue;
          }
          break;
        case 35:
          if (t === 0 && HH(e, t)) {
            t = WH(e, t), s = !1;
            continue;
          }
          break;
        case 42:
          if (s) {
            t++, s = !1;
            continue;
          }
          break;
        default:
          if (l > 127 && tg(l)) {
            t++;
            continue;
          }
          break;
      }
      return t;
    }
  }
  function yA(e, t) {
    if (D.assert(t >= 0), t === 0 || fu(e.charCodeAt(t - 1))) {
      const r = e.charCodeAt(t);
      if (t + OR < e.length) {
        for (let i = 0; i < OR; i++)
          if (e.charCodeAt(t + i) !== r)
            return !1;
        return r === 61 || e.charCodeAt(t + OR) === 32;
      }
    }
    return !1;
  }
  function _I(e, t, r) {
    r && r(_.Merge_conflict_marker_encountered, t, OR);
    const i = e.charCodeAt(t), o = e.length;
    if (i === 60 || i === 62)
      for (; t < o && !fu(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 && yA(e, t))
          break;
        t++;
      }
    return t;
  }
  function HH(e, t) {
    return D.assert(t === 0), fM.test(e);
  }
  function WH(e, t) {
    const r = fM.exec(e)[0];
    return t = t + r.length, t;
  }
  function uM(e, t, r, i, o, s, l) {
    let f, d, y, h, b = !1, A = i, L = l;
    if (r === 0) {
      A = !0;
      const I = dM(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, b && (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 B = O === 47 ? 2 : 3, V = r;
              if (r += 2, O === 47)
                for (; r < t.length; ) {
                  if (fu(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 (b && (L = o(f, d, y, h, s, L), !e && L))
                  return L;
                f = V, d = r, y = B, h = k, b = !0;
              }
              continue;
            }
            break e;
          default:
            if (I > 127 && tg(I)) {
              b && fu(I) && (h = !0), r++;
              continue;
            }
            break e;
        }
      }
    return b && (L = o(f, d, y, h, s, L)), L;
  }
  function DR(e, t, r, i) {
    return uM(!1, e, t, !1, r, i);
  }
  function RR(e, t, r, i) {
    return uM(!1, e, t, !0, r, i);
  }
  function pce(e, t, r, i, o) {
    return uM(!0, e, t, !1, r, i, o);
  }
  function mce(e, t, r, i, o) {
    return uM(!0, e, t, !0, r, i, o);
  }
  function hce(e, t, r, i, o, s = []) {
    return s.push({ kind: r, pos: e, end: t, hasTrailingNewLine: i }), s;
  }
  function dh(e, t) {
    return pce(e, t, hce, void 0, void 0);
  }
  function F0(e, t) {
    return mce(e, t, hce, void 0, void 0);
  }
  function dM(e) {
    const t = fM.exec(e);
    if (t)
      return t[0];
  }
  function fh(e, t) {
    return e >= 65 && e <= 90 || e >= 97 && e <= 122 || e === 36 || e === 95 || e > 127 && cM(e, t);
  }
  function B0(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 && EOe(e, t);
  }
  function N_(e, t, r) {
    let i = ly(e, 0);
    if (!fh(i, t))
      return !1;
    for (let o = yv(i); o < e.length; o += yv(i))
      if (!B0(i = ly(e, o), t, r))
        return !1;
    return !0;
  }
  function cy(e, t, r = 0, i, o, s, l) {
    var f = i, d, y, h, b, A, L, I, O, k = 0;
    Ht(f, s, l);
    var B = {
      getStartPos: () => h,
      getTextPos: () => d,
      getToken: () => A,
      getTokenPos: () => b,
      getTokenText: () => f.substring(b, 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: Xe,
      reScanAsteriskEqualsToken: He,
      reScanSlashToken: Fe,
      reScanTemplateToken: Et,
      reScanTemplateHeadOrNoSubstitutionTemplate: Vt,
      scanJsxIdentifier: Wn,
      scanJsxAttributeValue: In,
      reScanJsxAttributeValue: Yt,
      reScanJsxToken: tt,
      reScanLessThanToken: at,
      reScanHashToken: an,
      reScanQuestionToken: Xt,
      reScanInvalidIdentifier: Oe,
      scanJsxToken: Pn,
      scanJsDocToken: _r,
      scan: We,
      getText: At,
      clearCommentDirectives: vn,
      setText: Ht,
      setScriptTarget: ir,
      setLanguageVariant: lr,
      setOnError: dn,
      setTextPos: Ni,
      setInJSDocType: pi,
      tryScan: Nr,
      lookAhead: Xi,
      scanRange: Ki
    };
    return D.isDebugging && Object.defineProperty(B, "__debugShowCurrentPositionInText", {
      get: () => {
        const Nn = B.getText();
        return Nn.slice(0, B.getStartPos()) + "║" + Nn.slice(B.getStartPos());
      }
    }), B;
    function V(Nn, nn = d, Mn) {
      if (o) {
        const Ar = d;
        d = nn, o(Nn, Mn || 0), d = Ar;
      }
    }
    function H() {
      let Nn = d, nn = !1, Mn = !1, Ar = "";
      for (; ; ) {
        const Vr = f.charCodeAt(d);
        if (Vr === 95) {
          I |= 512, nn ? (nn = !1, Mn = !0, Ar += f.substring(Nn, d)) : V(Mn ? _.Multiple_consecutive_numeric_separators_are_not_permitted : _.Numeric_separators_are_not_allowed_here, d, 1), d++, Nn = d;
          continue;
        }
        if (fI(Vr)) {
          nn = !0, Mn = !1, d++;
          continue;
        }
        break;
      }
      return f.charCodeAt(d - 1) === 95 && V(_.Numeric_separators_are_not_allowed_here, d - 1, 1), Ar + f.substring(Nn, d);
    }
    function te() {
      const Nn = d, nn = H();
      let Mn, Ar;
      f.charCodeAt(d) === 46 && (d++, Mn = H());
      let Vr = d;
      if (f.charCodeAt(d) === 69 || f.charCodeAt(d) === 101) {
        d++, I |= 16, (f.charCodeAt(d) === 43 || f.charCodeAt(d) === 45) && d++;
        const gt = d, Nt = H();
        Nt ? (Ar = f.substring(Vr, gt) + Nt, Vr = d) : V(_.Digit_expected);
      }
      let ke;
      if (I & 512 ? (ke = nn, Mn && (ke += "." + Mn), Ar && (ke += Ar)) : ke = f.substring(Nn, Vr), Mn !== void 0 || I & 16)
        return X(Nn, Mn === void 0 && !!(I & 16)), {
          type: 8,
          value: "" + +ke
        };
      {
        L = ke;
        const gt = Be();
        return X(Nn), { type: gt, value: L };
      }
    }
    function X(Nn, nn) {
      if (!fh(ly(f, d), e))
        return;
      const Mn = d, { length: Ar } = ee();
      Ar === 1 && f[Mn] === "n" ? V(nn ? _.A_bigint_literal_cannot_use_exponential_notation : _.A_bigint_literal_must_be_an_integer, Nn, Mn - Nn + 1) : (V(_.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal, Mn, Ar), d = Mn);
    }
    function Y() {
      const Nn = d;
      for (; jH(f.charCodeAt(d)); )
        d++;
      return +f.substring(Nn, d);
    }
    function P(Nn, nn) {
      const Mn = ne(Nn, !1, nn);
      return Mn ? parseInt(Mn, 16) : -1;
    }
    function de(Nn, nn) {
      return ne(Nn, !0, nn);
    }
    function ne(Nn, nn, Mn) {
      let Ar = [], Vr = !1, ke = !1;
      for (; Ar.length < Nn || nn; ) {
        let gt = f.charCodeAt(d);
        if (Mn && gt === 95) {
          I |= 512, Vr ? (Vr = !1, ke = !0) : V(ke ? _.Multiple_consecutive_numeric_separators_are_not_permitted : _.Numeric_separators_are_not_allowed_here, d, 1), d++;
          continue;
        }
        if (Vr = Mn, gt >= 65 && gt <= 70)
          gt += 97 - 65;
        else if (!(gt >= 48 && gt <= 57 || gt >= 97 && gt <= 102))
          break;
        Ar.push(gt), d++, ke = !1;
      }
      return Ar.length < Nn && (Ar = []), f.charCodeAt(d - 1) === 95 && V(_.Numeric_separators_are_not_allowed_here, d - 1, 1), String.fromCharCode(...Ar);
    }
    function ye(Nn = !1) {
      const nn = f.charCodeAt(d);
      d++;
      let Mn = "", Ar = d;
      for (; ; ) {
        if (d >= y) {
          Mn += f.substring(Ar, d), I |= 4, V(_.Unterminated_string_literal);
          break;
        }
        const Vr = f.charCodeAt(d);
        if (Vr === nn) {
          Mn += f.substring(Ar, d), d++;
          break;
        }
        if (Vr === 92 && !Nn) {
          Mn += f.substring(Ar, d), Mn += W(), Ar = d;
          continue;
        }
        if (fu(Vr) && !Nn) {
          Mn += f.substring(Ar, d), I |= 4, V(_.Unterminated_string_literal);
          break;
        }
        d++;
      }
      return Mn;
    }
    function ie(Nn) {
      const nn = f.charCodeAt(d) === 96;
      d++;
      let Mn = d, Ar = "", Vr;
      for (; ; ) {
        if (d >= y) {
          Ar += f.substring(Mn, d), I |= 4, V(_.Unterminated_template_literal), Vr = nn ? 14 : 17;
          break;
        }
        const ke = f.charCodeAt(d);
        if (ke === 96) {
          Ar += f.substring(Mn, d), d++, Vr = nn ? 14 : 17;
          break;
        }
        if (ke === 36 && d + 1 < y && f.charCodeAt(d + 1) === 123) {
          Ar += f.substring(Mn, d), d += 2, Vr = nn ? 15 : 16;
          break;
        }
        if (ke === 92) {
          Ar += f.substring(Mn, d), Ar += W(Nn), Mn = d;
          continue;
        }
        if (ke === 13) {
          Ar += f.substring(Mn, d), d++, d < y && f.charCodeAt(d) === 10 && d++, Ar += `
`, Mn = d;
          continue;
        }
        d++;
      }
      return D.assert(Vr !== void 0), L = Ar, Vr;
    }
    function W(Nn) {
      const nn = d;
      if (d++, d >= y)
        return V(_.Unexpected_end_of_text), "";
      const Mn = f.charCodeAt(d);
      switch (d++, Mn) {
        case 48:
          return Nn && d < y && fI(f.charCodeAt(d)) ? (d++, I |= 2048, f.substring(nn, 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 (Nn) {
            for (let Ar = d; Ar < d + 4; Ar++)
              if (Ar < y && !lM(f.charCodeAt(Ar)) && f.charCodeAt(Ar) !== 123)
                return d = Ar, I |= 2048, f.substring(nn, d);
          }
          if (d < y && f.charCodeAt(d) === 123) {
            if (d++, Nn && !lM(f.charCodeAt(d)))
              return I |= 2048, f.substring(nn, d);
            if (Nn) {
              const Ar = d, Vr = de(1, !1), ke = Vr ? parseInt(Vr, 16) : -1;
              if (!SOe(ke) || f.charCodeAt(d) !== 125)
                return I |= 2048, f.substring(nn, d);
              d = Ar;
            }
            return I |= 8, pe();
          }
          return I |= 1024, ce(4);
        case 120:
          if (Nn)
            if (lM(f.charCodeAt(d))) {
              if (!lM(f.charCodeAt(d + 1)))
                return d++, I |= 2048, f.substring(nn, d);
            } else
              return I |= 2048, f.substring(nn, d);
          return ce(2);
        case 13:
          d < y && f.charCodeAt(d) === 10 && d++;
        case 10:
        case 8232:
        case 8233:
          return "";
        default:
          return String.fromCharCode(Mn);
      }
    }
    function ce(Nn) {
      const nn = P(Nn, !1);
      return nn >= 0 ? String.fromCharCode(nn) : (V(_.Hexadecimal_digit_expected), "");
    }
    function pe() {
      const Nn = de(1, !1), nn = Nn ? parseInt(Nn, 16) : -1;
      let Mn = !1;
      return nn < 0 ? (V(_.Hexadecimal_digit_expected), Mn = !0) : nn > 1114111 && (V(_.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive), Mn = !0), d >= y ? (V(_.Unexpected_end_of_text), Mn = !0) : f.charCodeAt(d) === 125 ? d++ : (V(_.Unterminated_Unicode_escape_sequence), Mn = !0), Mn ? "" : pI(nn);
    }
    function ve() {
      if (d + 5 < y && f.charCodeAt(d + 1) === 117) {
        const Nn = d;
        d += 2;
        const nn = P(4, !1);
        return d = Nn, nn;
      }
      return -1;
    }
    function Te() {
      if (ly(f, d + 1) === 117 && ly(f, d + 2) === 123) {
        const Nn = d;
        d += 3;
        const nn = de(1, !1), Mn = nn ? parseInt(nn, 16) : -1;
        return d = Nn, Mn;
      }
      return -1;
    }
    function ee() {
      let Nn = "", nn = d;
      for (; d < y; ) {
        let Mn = ly(f, d);
        if (B0(Mn, e))
          d += yv(Mn);
        else if (Mn === 92) {
          if (Mn = Te(), Mn >= 0 && B0(Mn, e)) {
            d += 3, I |= 8, Nn += pe(), nn = d;
            continue;
          }
          if (Mn = ve(), !(Mn >= 0 && B0(Mn, e)))
            break;
          I |= 1024, Nn += f.substring(nn, d), Nn += pI(Mn), d += 6, nn = d;
        } else
          break;
      }
      return Nn += f.substring(nn, d), Nn;
    }
    function $e() {
      const Nn = L.length;
      if (Nn >= 2 && Nn <= 12) {
        const nn = L.charCodeAt(0);
        if (nn >= 97 && nn <= 122) {
          const Mn = gce.get(L);
          if (Mn !== void 0)
            return A = Mn;
        }
      }
      return A = 79;
    }
    function Ue(Nn) {
      let nn = "", Mn = !1, Ar = !1;
      for (; ; ) {
        const Vr = f.charCodeAt(d);
        if (Vr === 95) {
          I |= 512, Mn ? (Mn = !1, Ar = !0) : V(Ar ? _.Multiple_consecutive_numeric_separators_are_not_permitted : _.Numeric_separators_are_not_allowed_here, d, 1), d++;
          continue;
        }
        if (Mn = !0, !fI(Vr) || Vr - 48 >= Nn)
          break;
        nn += f[d], d++, Ar = !1;
      }
      return f.charCodeAt(d - 1) === 95 && V(_.Numeric_separators_are_not_allowed_here, d - 1, 1), nn;
    }
    function Be() {
      return f.charCodeAt(d) === 110 ? (L += "n", I & 384 && (L = lk(L) + "n"), d++, 9) : (L = "" + (I & 128 ? parseInt(L.slice(2), 2) : I & 256 ? parseInt(L.slice(2), 8) : +L), 8);
    }
    function We() {
      h = d, I = 0;
      let Nn = !1;
      for (; ; ) {
        if (b = d, d >= y)
          return A = 1;
        const nn = ly(f, d);
        if (nn === 35 && d === 0 && HH(f, d)) {
          if (d = WH(f, d), t)
            continue;
          return A = 6;
        }
        switch (nn) {
          case 10:
          case 13:
            if (I |= 1, t) {
              d++;
              continue;
            } else
              return nn === 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 && Im(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 = ie(!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 && !Nn && I & 1) {
              Nn = !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 fI(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 && !fu(f.charCodeAt(d)); )
                d++;
              if (O = st(O, f.slice(b, d), xce, b), 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, xe = b;
              for (; d < y; ) {
                const _t = f.charCodeAt(d);
                if (_t === 42 && f.charCodeAt(d + 1) === 47) {
                  d += 2, Nt = !0;
                  break;
                }
                d++, fu(_t) && (xe = d, I |= 1);
              }
              if (O = st(O, f.slice(xe, d), Ace, xe), 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 = Ue(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 = Ue(8), L || (V(_.Octal_digit_expected), L = "0"), L = "0o" + L, I |= 256, A = Be();
            if (d + 1 < y && jH(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 (yA(f, d)) {
              if (d = _I(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 (yA(f, d)) {
              if (d = _I(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 (yA(f, d)) {
              if (d = _I(f, d, V), t)
                continue;
              return A = 7;
            }
            return d++, A = 31;
          case 63:
            return f.charCodeAt(d + 1) === 46 && !fI(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 (yA(f, d)) {
              if (d = _I(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 Mn = Te();
            if (Mn >= 0 && fh(Mn, e))
              return d += 3, I |= 8, L = pe() + ee(), A = $e();
            const Ar = ve();
            return Ar >= 0 && fh(Ar, e) ? (d += 6, I |= 1024, L = String.fromCharCode(Ar) + ee(), A = $e()) : (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 Vr = ly(f, d + 1);
            if (Vr === 92) {
              d++;
              const Nt = Te();
              if (Nt >= 0 && fh(Nt, e))
                return d += 3, I |= 8, L = "#" + pe() + ee(), A = 80;
              const xe = ve();
              if (xe >= 0 && fh(xe, e))
                return d += 6, I |= 1024, L = "#" + String.fromCharCode(xe) + ee(), A = 80;
              d--;
            }
            return fh(Vr, e) ? (d++, Me(Vr, e)) : (L = "#", V(_.Invalid_character, d++, yv(nn))), A = 80;
          default:
            const ke = Me(nn, e);
            if (ke)
              return A = ke;
            if (Im(nn)) {
              d += yv(nn);
              continue;
            } else if (fu(nn)) {
              I |= 1, d += yv(nn);
              continue;
            }
            const gt = yv(nn);
            return V(_.Invalid_character, d, gt), d += gt, A = 0;
        }
      }
    }
    function Oe() {
      D.assert(A === 0, "'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."), d = b = h, I = 0;
      const Nn = ly(f, d), nn = Me(Nn, 99);
      return nn ? A = nn : (d += yv(Nn), A);
    }
    function Me(Nn, nn) {
      let Mn = Nn;
      if (fh(Mn, nn)) {
        for (d += yv(Mn); d < y && B0(Mn = ly(f, d), nn); )
          d += yv(Mn);
        return L = f.substring(b, d), Mn === 92 && (L += ee()), $e();
      }
    }
    function Xe() {
      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 He() {
      return D.assert(A === 66, "'reScanAsteriskEqualsToken' should only be called on a '*='"), d = b + 1, A = 63;
    }
    function Fe() {
      if (A === 43 || A === 68) {
        let Nn = b + 1, nn = !1, Mn = !1;
        for (; ; ) {
          if (Nn >= y) {
            I |= 4, V(_.Unterminated_regular_expression_literal);
            break;
          }
          const Ar = f.charCodeAt(Nn);
          if (fu(Ar)) {
            I |= 4, V(_.Unterminated_regular_expression_literal);
            break;
          }
          if (nn)
            nn = !1;
          else if (Ar === 47 && !Mn) {
            Nn++;
            break;
          } else
            Ar === 91 ? Mn = !0 : Ar === 92 ? nn = !0 : Ar === 93 && (Mn = !1);
          Nn++;
        }
        for (; Nn < y && B0(f.charCodeAt(Nn), e); )
          Nn++;
        d = Nn, L = f.substring(b, d), A = 13;
      }
      return A;
    }
    function st(Nn, nn, Mn, Ar) {
      const Vr = Ct(iI(nn), Mn);
      return Vr === void 0 ? Nn : Bn(Nn, {
        range: { pos: Ar, end: d },
        type: Vr
      });
    }
    function Ct(Nn, nn) {
      const Mn = nn.exec(Nn);
      if (Mn)
        switch (Mn[1]) {
          case "ts-expect-error":
            return 0;
          case "ts-ignore":
            return 1;
        }
    }
    function Et(Nn) {
      return D.assert(A === 19, "'reScanTemplateToken' should only be called on a '}'"), d = b, A = ie(Nn);
    }
    function Vt() {
      return d = b, A = ie(!0);
    }
    function tt(Nn = !0) {
      return d = b = h, A = Pn(Nn);
    }
    function at() {
      return A === 47 ? (d = b + 1, A = 29) : A;
    }
    function an() {
      return A === 80 ? (d = b + 1, A = 62) : A;
    }
    function Xt() {
      return D.assert(A === 60, "'reScanQuestionToken' should only be called on a '??'"), d = b + 1, A = 57;
    }
    function Pn(Nn = !0) {
      if (h = b = d, d >= y)
        return A = 1;
      let nn = f.charCodeAt(d);
      if (nn === 60)
        return f.charCodeAt(d + 1) === 47 ? (d += 2, A = 30) : (d++, A = 29);
      if (nn === 123)
        return d++, A = 18;
      let Mn = 0;
      for (; d < y && (nn = f.charCodeAt(d), nn !== 123); ) {
        if (nn === 60) {
          if (yA(f, d))
            return d = _I(f, d, V), A = 7;
          break;
        }
        if (nn === 62 && V(_.Unexpected_token_Did_you_mean_or_gt, d, 1), nn === 125 && V(_.Unexpected_token_Did_you_mean_or_rbrace, d, 1), fu(nn) && Mn === 0)
          Mn = -1;
        else {
          if (!Nn && fu(nn) && Mn > 0)
            break;
          tg(nn) || (Mn = d);
        }
        d++;
      }
      return L = f.substring(h, d), Mn === -1 ? 12 : 11;
    }
    function Wn() {
      if (qu(A)) {
        let Nn = !1;
        for (; d < y; ) {
          const nn = f.charCodeAt(d);
          if (nn === 45) {
            L += "-", d++;
            continue;
          } else if (nn === 58 && !Nn) {
            L += ":", d++, Nn = !0, A = 79;
            continue;
          }
          const Mn = d;
          if (L += ee(), d === Mn)
            break;
        }
        return L.slice(-1) === ":" && (L = L.slice(0, -1), d--), $e();
      }
      return A;
    }
    function In() {
      switch (h = d, f.charCodeAt(d)) {
        case 34:
        case 39:
          return L = ye(!0), A = 10;
        default:
          return We();
      }
    }
    function Yt() {
      return d = b = h, In();
    }
    function _r() {
      if (h = b = d, I = 0, d >= y)
        return A = 1;
      const Nn = ly(f, d);
      switch (d += yv(Nn), Nn) {
        case 9:
        case 11:
        case 12:
        case 32:
          for (; d < y && Im(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 nn = Te();
          if (nn >= 0 && fh(nn, e))
            return d += 3, I |= 8, L = pe() + ee(), A = $e();
          const Mn = ve();
          return Mn >= 0 && fh(Mn, e) ? (d += 6, I |= 1024, L = String.fromCharCode(Mn) + ee(), A = $e()) : (d++, A = 0);
      }
      if (fh(Nn, e)) {
        let nn = Nn;
        for (; d < y && B0(nn = ly(f, d), e) || f.charCodeAt(d) === 45; )
          d += yv(nn);
        return L = f.substring(b, d), nn === 92 && (L += ee()), A = $e();
      } else
        return A = 0;
    }
    function Ai(Nn, nn) {
      const Mn = d, Ar = h, Vr = b, ke = A, gt = L, Nt = I, xe = Nn();
      return (!xe || nn) && (d = Mn, h = Ar, b = Vr, A = ke, L = gt, I = Nt), xe;
    }
    function Ki(Nn, nn, Mn) {
      const Ar = y, Vr = d, ke = h, gt = b, Nt = A, xe = L, _t = I, _e = O;
      Ht(f, Nn, nn);
      const re = Mn();
      return y = Ar, d = Vr, h = ke, b = gt, A = Nt, L = xe, I = _t, O = _e, re;
    }
    function Xi(Nn) {
      return Ai(Nn, !0);
    }
    function Nr(Nn) {
      return Ai(Nn, !1);
    }
    function At() {
      return f;
    }
    function vn() {
      O = void 0;
    }
    function Ht(Nn, nn, Mn) {
      f = Nn || "", y = Mn === void 0 ? f.length : nn + Mn, Ni(nn || 0);
    }
    function dn(Nn) {
      o = Nn;
    }
    function ir(Nn) {
      e = Nn;
    }
    function lr(Nn) {
      r = Nn;
    }
    function Ni(Nn) {
      D.assert(Nn >= 0), d = Nn, h = Nn, b = Nn, A = 0, L = void 0, I = 0;
    }
    function pi(Nn) {
      k += Nn ? 1 : -1;
    }
  }
  function yv(e) {
    return e >= 65536 ? 2 : 1;
  }
  function xOe(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 pI(e) {
    return Lce(e);
  }
  var NR, gce, zH, yce, vce, bce, Ece, Tce, Sce, xce, Ace, Cce, OR, fM, ly, Lce, AOe = C({
    "src/compiler/scanner.ts"() {
      wa(), NR = {
        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
      }, gce = new Map(Object.entries(NR)), zH = new Map(Object.entries({
        ...NR,
        "{": 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
      })), yce = [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], vce = [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], bce = [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], Ece = [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], Tce = [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], Sce = [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], xce = /^\/\/\/?\s*@(ts-expect-error|ts-ignore)/, Ace = /^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/, Cce = TOe(zH), OR = 7, fM = /^#!.*/, ly = 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;
      }, Lce = String.fromCodePoint ? (e) => String.fromCodePoint(e) : xOe;
    }
  });
  function Pl(e) {
    return vf(e) || Cm(e);
  }
  function vA(e) {
    return tR(e, ik);
  }
  function _M(e) {
    switch ($o(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 eu(e) {
    return e.start + e.length;
  }
  function Ice(e) {
    return e.length === 0;
  }
  function qH(e, t) {
    return t >= e.start && t < eu(e);
  }
  function pM(e, t) {
    return t >= e.pos && t <= e.end;
  }
  function kce(e, t) {
    return t.start >= e.start && eu(t) <= eu(e);
  }
  function COe(e, t) {
    return wce(e, t) !== void 0;
  }
  function wce(e, t) {
    const r = Rce(e, t);
    return r && r.length === 0 ? void 0 : r;
  }
  function LOe(e, t) {
    return hM(e.start, e.length, t.start, t.length);
  }
  function mM(e, t, r) {
    return hM(e.start, e.length, t, r);
  }
  function hM(e, t, r, i) {
    const o = e + t, s = r + i;
    return r <= o && s >= e;
  }
  function Dce(e, t) {
    return t <= eu(e) && t >= e.start;
  }
  function Rce(e, t) {
    const r = Math.max(e.start, t.start), i = Math.min(eu(e), eu(t));
    return r <= i ? _l(r, i) : void 0;
  }
  function Ll(e, t) {
    if (e < 0)
      throw new Error("start < 0");
    if (t < 0)
      throw new Error("length < 0");
    return { start: e, length: t };
  }
  function _l(e, t) {
    return Ll(e, t - e);
  }
  function mI(e) {
    return Ll(e.span.start, e.newLength);
  }
  function Nce(e) {
    return Ice(e.span) && e.newLength === 0;
  }
  function PR(e, t) {
    if (t < 0)
      throw new Error("newLength < 0");
    return { span: e, newLength: t };
  }
  function IOe(e) {
    if (e.length === 0)
      return SW;
    if (e.length === 1)
      return e[0];
    const t = e[0];
    let r = t.span.start, i = eu(t.span), o = r + t.newLength;
    for (let s = 1; s < e.length; s++) {
      const l = e[s], f = r, d = i, y = o, h = l.span.start, b = eu(l.span), A = h + l.newLength;
      r = Math.min(f, h), i = Math.max(d, d + (b - y)), o = Math.max(A, A + (y - b));
    }
    return PR(_l(r, i), o - r);
  }
  function kOe(e) {
    if (e && e.kind === 165) {
      for (let t = e; t; t = t.parent)
        if (qa(t) || li(t) || t.kind === 261)
          return t;
    }
  }
  function Qd(e, t) {
    return Oa(e) && Kr(e, 16476) && t.kind === 173;
  }
  function Oce(e) {
    return Ja(e) ? Rn(e.elements, Pce) : !1;
  }
  function Pce(e) {
    return kl(e) ? !0 : Oce(e.name);
  }
  function bA(e) {
    let t = e.parent;
    for (; us(t.parent); )
      t = t.parent.parent;
    return t.parent;
  }
  function JH(e, t) {
    us(e) && (e = bA(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 uy(e) {
    return JH(e, Ru);
  }
  function KH(e) {
    return JH(e, Hue);
  }
  function _p(e) {
    return JH(e, (t) => t.flags);
  }
  function wOe(e, t, r) {
    const i = e.toLowerCase(), o = /^([a-z]+)([_\-]([a-z]+))?$/.exec(i);
    if (!o) {
      r && r.push(Os(_.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, "en", "ja-jp"));
      return;
    }
    const s = o[1], l = o[3];
    wi(xW, i) && !f(s, l, r) && f(s, void 0, r), Tse(e);
    function f(d, y, h) {
      const b = Wo(t.getExecutingFilePath()), A = _i(b);
      let L = Pi(A, d);
      if (y && (L = L + "-" + y), L = t.resolvePath(Pi(L, "diagnosticMessages.generated.json")), !t.fileExists(L))
        return !1;
      let I = "";
      try {
        I = t.readFile(L);
      } catch {
        return h && h.push(Os(_.Unable_to_open_file_0, L)), !1;
      }
      try {
        dde(JSON.parse(I));
      } catch {
        return h && h.push(Os(_.Corrupted_locale_file_0, L)), !1;
      }
      return !0;
    }
  }
  function Ec(e, t) {
    if (e)
      for (; e.original !== void 0; )
        e = e.original;
    return !e || !t || t(e) ? e : void 0;
  }
  function rr(e, t) {
    for (; e; ) {
      const r = t(e);
      if (r === "quit")
        return;
      if (r)
        return e;
      e = e.parent;
    }
  }
  function hI(e) {
    return (e.flags & 8) === 0;
  }
  function ga(e, t) {
    if (e === void 0 || hI(e))
      return e;
    for (e = e.original; e; ) {
      if (hI(e))
        return !t || t(e) ? e : void 0;
      e = e.original;
    }
  }
  function oc(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 Pr(e) {
    return ta(e.escapedText);
  }
  function G0(e) {
    const t = ZE(e.escapedText);
    return t ? ii(t, Td) : void 0;
  }
  function Oc(e) {
    return e.valueDeclaration && Ju(e.valueDeclaration) ? Pr(e.valueDeclaration.name) : ta(e.escapedName);
  }
  function Mce(e) {
    const t = e.parent.parent;
    if (t) {
      if (mu(t))
        return gM(t);
      switch (t.kind) {
        case 240:
          if (t.declarationList && t.declarationList.declarations[0])
            return gM(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 (Ve(i))
                return i;
          }
          break;
        case 214:
          return gM(t.expression);
        case 253: {
          if (mu(t.statement) || yt(t.statement))
            return gM(t.statement);
          break;
        }
      }
    }
  }
  function gM(e) {
    const t = Aa(e);
    return t && Ve(t) ? t : void 0;
  }
  function MR(e, t) {
    return !!(_u(e) && Ve(e.name) && Pr(e.name) === Pr(t) || cl(e) && kt(e.declarationList.declarations, (r) => MR(r, t)));
  }
  function Fce(e) {
    return e.name || Mce(e);
  }
  function _u(e) {
    return !!e.name;
  }
  function XH(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 (Ac(r)) {
          case 1:
          case 4:
          case 5:
          case 3:
            return c3(r.left);
          case 7:
          case 8:
          case 9:
            return r.arguments[1];
          default:
            return;
        }
      }
      case 349:
        return Fce(e);
      case 343:
        return Mce(e);
      case 274: {
        const { expression: r } = e;
        return Ve(r) ? r : void 0;
      }
      case 209:
        const t = e;
        if (s3(t))
          return t.argumentExpression;
    }
    return e.name;
  }
  function Aa(e) {
    if (e !== void 0)
      return XH(e) || (Ps(e) || Ws(e) || Pu(e) ? YH(e) : void 0);
  }
  function YH(e) {
    if (e.parent) {
      if (Vl(e.parent) || us(e.parent))
        return e.parent.name;
      if (br(e.parent) && e === e.parent.right) {
        if (Ve(e.parent.left))
          return e.parent.left;
        if (sc(e.parent.left))
          return c3(e.parent.left);
      } else if (zi(e.parent) && Ve(e.parent.name))
        return e.parent.name;
    } else
      return;
  }
  function vv(e) {
    if (Jf(e))
      return yn(e.modifiers, Nu);
  }
  function eT(e) {
    if (Kr(e, 126975))
      return yn(e.modifiers, lo);
  }
  function Bce(e, t) {
    if (e.name)
      if (Ve(e.name)) {
        const r = e.name.escapedText;
        return yI(e.parent, t).filter((i) => tm(i) && Ve(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 = yI(e.parent, t).filter(tm);
        if (r < i.length)
          return [i[r]];
      }
    return rt;
  }
  function gI(e) {
    return Bce(e, !1);
  }
  function Gce(e) {
    return Bce(e, !0);
  }
  function Uce(e, t) {
    const r = e.name.escapedText;
    return yI(e.parent, t).filter((i) => yp(i) && i.typeParameters.some((o) => o.name.escapedText === r));
  }
  function Vce(e) {
    return Uce(e, !1);
  }
  function jce(e) {
    return Uce(e, !0);
  }
  function Hce(e) {
    return !!Wf(e, tm);
  }
  function Wce(e) {
    return Wf(e, xC);
  }
  function zce(e) {
    return tW(e, bJ);
  }
  function $H(e) {
    return Wf(e, qfe);
  }
  function DOe(e) {
    return Wf(e, pJ);
  }
  function qce(e) {
    return Wf(e, pJ, !0);
  }
  function ROe(e) {
    return Wf(e, mJ);
  }
  function Jce(e) {
    return Wf(e, mJ, !0);
  }
  function NOe(e) {
    return Wf(e, hJ);
  }
  function Kce(e) {
    return Wf(e, hJ, !0);
  }
  function OOe(e) {
    return Wf(e, gJ);
  }
  function Xce(e) {
    return Wf(e, gJ, !0);
  }
  function Yce(e) {
    return Wf(e, P7, !0);
  }
  function QH(e) {
    return Wf(e, yJ);
  }
  function $ce(e) {
    return Wf(e, yJ, !0);
  }
  function ZH(e) {
    return Wf(e, DO);
  }
  function yM(e) {
    return Wf(e, Jfe);
  }
  function Qce(e) {
    return Wf(e, M7);
  }
  function POe(e) {
    return Wf(e, yp);
  }
  function eW(e) {
    return Wf(e, F7);
  }
  function d1(e) {
    const t = Wf(e, Pk);
    if (t && t.typeExpression && t.typeExpression.type)
      return t;
  }
  function bv(e) {
    let t = Wf(e, Pk);
    return !t && Oa(e) && (t = cn(gI(e), (r) => !!r.typeExpression)), t && t.typeExpression && t.typeExpression.type;
  }
  function FR(e) {
    const t = Qce(e);
    if (t && t.typeExpression)
      return t.typeExpression.type;
    const r = d1(e);
    if (r && r.typeExpression) {
      const i = r.typeExpression.type;
      if (of(i)) {
        const o = cn(i.members, _C);
        return o && o.type;
      }
      if (Sh(i) || SC(i))
        return i.type;
    }
  }
  function yI(e, t) {
    var r, i;
    if (!EN(e))
      return rt;
    let o = (r = e.jsDoc) == null ? void 0 : r.jsDocCache;
    if (o === void 0 || t) {
      const s = sz(e, t);
      D.assert(s.length < 2 || s[0] !== s[1]), o = wo(s, (l) => Hm(l) ? l.tags : l), t || ((i = e.jsDoc) != null || (e.jsDoc = []), e.jsDoc.jsDocCache = o);
    }
    return o;
  }
  function f1(e) {
    return yI(e, !1);
  }
  function MOe(e) {
    return yI(e, !0);
  }
  function Wf(e, t, r) {
    return cn(yI(e, r), t);
  }
  function tW(e, t) {
    return f1(e).filter(t);
  }
  function FOe(e, t) {
    return f1(e).filter((r) => r.kind === t);
  }
  function BR(e) {
    return typeof e == "string" ? e : e == null ? void 0 : e.map((t) => t.kind === 324 ? t.text : BOe(t)).join("");
  }
  function BOe(e) {
    const t = e.kind === 327 ? "link" : e.kind === 328 ? "linkcode" : "linkplain", r = e.name ? Ef(e.name) : "", i = e.name && e.text.startsWith("://") ? "" : " ";
    return `{@${t} ${r}${i}${e.text}}`;
  }
  function Ev(e) {
    if (M1(e)) {
      if (Ok(e.parent)) {
        const t = BI(e.parent);
        if (t && Ie(t.tags))
          return wo(t.tags, (r) => yp(r) ? r.typeParameters : void 0);
      }
      return rt;
    }
    if (f_(e))
      return D.assert(e.parent.kind === 323), wo(e.parent.tags, (t) => yp(t) ? t.typeParameters : void 0);
    if (e.typeParameters || i_e(e) && e.typeParameters)
      return e.typeParameters;
    if (fr(e)) {
      const t = v3(e);
      if (t.length)
        return t;
      const r = bv(e);
      if (r && Sh(r) && r.typeParameters)
        return r.typeParameters;
    }
    return rt;
  }
  function EA(e) {
    return e.constraint ? e.constraint : yp(e.parent) && e === e.parent.typeParameters[0] ? e.parent.constraint : void 0;
  }
  function ng(e) {
    return e.kind === 79 || e.kind === 80;
  }
  function vM(e) {
    return e.kind === 175 || e.kind === 174;
  }
  function bM(e) {
    return Mr(e) && !!(e.flags & 32);
  }
  function nW(e) {
    return cc(e) && !!(e.flags & 32);
  }
  function tT(e) {
    return eo(e) && !!(e.flags & 32);
  }
  function pu(e) {
    const t = e.kind;
    return !!(e.flags & 32) && (t === 208 || t === 209 || t === 210 || t === 232);
  }
  function vI(e) {
    return pu(e) && !Lx(e) && !!e.questionDotToken;
  }
  function EM(e) {
    return vI(e.parent) && e.parent.expression === e;
  }
  function bI(e) {
    return !pu(e.parent) || vI(e.parent) || e !== e.parent.expression;
  }
  function rW(e) {
    return e.kind === 223 && e.operatorToken.kind === 60;
  }
  function rg(e) {
    return W_(e) && Ve(e.typeName) && e.typeName.escapedText === "const" && !e.typeArguments;
  }
  function O_(e) {
    return hu(e, 8);
  }
  function TM(e) {
    return Lx(e) && !!(e.flags & 32);
  }
  function EI(e) {
    return e.kind === 249 || e.kind === 248;
  }
  function iW(e) {
    return e.kind === 277 || e.kind === 276;
  }
  function Zce(e) {
    switch (e.kind) {
      case 305:
      case 306:
        return !0;
      default:
        return !1;
    }
  }
  function aW(e) {
    return Zce(e) || e.kind === 303 || e.kind === 307;
  }
  function SM(e) {
    return e.kind === 351 || e.kind === 344;
  }
  function GOe(e) {
    return GR(e.kind);
  }
  function GR(e) {
    return e >= 163;
  }
  function oW(e) {
    return e >= 0 && e <= 162;
  }
  function zS(e) {
    return oW(e.kind);
  }
  function _1(e) {
    return Rs(e, "pos") && Rs(e, "end");
  }
  function TI(e) {
    return 8 <= e && e <= 14;
  }
  function nT(e) {
    return TI(e.kind);
  }
  function sW(e) {
    switch (e.kind) {
      case 207:
      case 206:
      case 13:
      case 215:
      case 228:
        return !0;
    }
    return !1;
  }
  function Tv(e) {
    return 14 <= e && e <= 17;
  }
  function ele(e) {
    return Tv(e.kind);
  }
  function xM(e) {
    const t = e.kind;
    return t === 16 || t === 17;
  }
  function qS(e) {
    return xd(e) || cd(e);
  }
  function cW(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 tle(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 p1(e) {
    return cW(e) || tle(e);
  }
  function nle(e) {
    return Go(e) || Ve(e);
  }
  function lW(e) {
    return e.kind === 10 || Tv(e.kind);
  }
  function Tc(e) {
    var t;
    return Ve(e) && ((t = e.emitNode) == null ? void 0 : t.autoGenerate) !== void 0;
  }
  function JS(e) {
    var t;
    return Di(e) && ((t = e.emitNode) == null ? void 0 : t.autoGenerate) !== void 0;
  }
  function Ju(e) {
    return (Za(e) || xA(e)) && Di(e.name);
  }
  function TA(e) {
    return Mr(e) && Di(e.name);
  }
  function dy(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 SI(e) {
    return !!(lx(e) & 16476);
  }
  function uW(e) {
    return SI(e) || e === 124 || e === 161 || e === 127;
  }
  function lo(e) {
    return dy(e.kind);
  }
  function Zd(e) {
    const t = e.kind;
    return t === 163 || t === 79;
  }
  function gc(e) {
    const t = e.kind;
    return t === 79 || t === 80 || t === 10 || t === 8 || t === 164;
  }
  function _h(e) {
    const t = e.kind;
    return t === 79 || t === 203 || t === 204;
  }
  function qa(e) {
    return !!e && KS(e.kind);
  }
  function SA(e) {
    return !!e && (KS(e.kind) || Lc(e));
  }
  function Xs(e) {
    return e && ile(e.kind);
  }
  function rle(e) {
    return e.kind === 110 || e.kind === 95;
  }
  function ile(e) {
    switch (e) {
      case 259:
      case 171:
      case 173:
      case 174:
      case 175:
      case 215:
      case 216:
        return !0;
      default:
        return !1;
    }
  }
  function KS(e) {
    switch (e) {
      case 170:
      case 176:
      case 326:
      case 177:
      case 178:
      case 181:
      case 320:
      case 182:
        return !0;
      default:
        return ile(e);
    }
  }
  function dW(e) {
    return Hi(e) || Zp(e) || oo(e) && qa(e.parent);
  }
  function Ml(e) {
    const t = e.kind;
    return t === 173 || t === 169 || t === 171 || t === 174 || t === 175 || t === 178 || t === 172 || t === 237;
  }
  function li(e) {
    return e && (e.kind === 260 || e.kind === 228);
  }
  function U0(e) {
    return e && (e.kind === 174 || e.kind === 175);
  }
  function ef(e) {
    return Za(e) && Pm(e);
  }
  function xA(e) {
    switch (e.kind) {
      case 171:
      case 174:
      case 175:
        return !0;
      default:
        return !1;
    }
  }
  function ale(e) {
    switch (e.kind) {
      case 171:
      case 174:
      case 175:
      case 169:
        return !0;
      default:
        return !1;
    }
  }
  function tc(e) {
    return lo(e) || Nu(e);
  }
  function rT(e) {
    const t = e.kind;
    return t === 177 || t === 176 || t === 168 || t === 170 || t === 178 || t === 174 || t === 175;
  }
  function AM(e) {
    return rT(e) || Ml(e);
  }
  function fy(e) {
    const t = e.kind;
    return t === 299 || t === 300 || t === 301 || t === 171 || t === 174 || t === 175;
  }
  function Mi(e) {
    return zz(e.kind);
  }
  function ole(e) {
    switch (e.kind) {
      case 181:
      case 182:
        return !0;
    }
    return !1;
  }
  function Ja(e) {
    if (e) {
      const t = e.kind;
      return t === 204 || t === 203;
    }
    return !1;
  }
  function xI(e) {
    const t = e.kind;
    return t === 206 || t === 207;
  }
  function CM(e) {
    const t = e.kind;
    return t === 205 || t === 229;
  }
  function UR(e) {
    switch (e.kind) {
      case 257:
      case 166:
      case 205:
        return !0;
    }
    return !1;
  }
  function sle(e) {
    return zi(e) || Oa(e) || jR(e) || HR(e);
  }
  function VR(e) {
    return fW(e) || _W(e);
  }
  function fW(e) {
    switch (e.kind) {
      case 203:
      case 207:
        return !0;
    }
    return !1;
  }
  function jR(e) {
    switch (e.kind) {
      case 205:
      case 299:
      case 300:
      case 301:
        return !0;
    }
    return !1;
  }
  function _W(e) {
    switch (e.kind) {
      case 204:
      case 206:
        return !0;
    }
    return !1;
  }
  function HR(e) {
    switch (e.kind) {
      case 205:
      case 229:
      case 227:
      case 206:
      case 207:
      case 79:
      case 208:
      case 209:
        return !0;
    }
    return Yu(e, !0);
  }
  function cle(e) {
    const t = e.kind;
    return t === 208 || t === 163 || t === 202;
  }
  function lle(e) {
    const t = e.kind;
    return t === 208 || t === 163;
  }
  function XS(e) {
    switch (e.kind) {
      case 283:
      case 282:
      case 210:
      case 211:
      case 212:
      case 167:
        return !0;
      default:
        return !1;
    }
  }
  function ig(e) {
    return e.kind === 210 || e.kind === 211;
  }
  function AA(e) {
    const t = e.kind;
    return t === 225 || t === 14;
  }
  function vd(e) {
    return ule(O_(e).kind);
  }
  function ule(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 pW(e) {
    return dle(O_(e).kind);
  }
  function dle(e) {
    switch (e) {
      case 221:
      case 222:
      case 217:
      case 218:
      case 219:
      case 220:
      case 213:
        return !0;
      default:
        return ule(e);
    }
  }
  function fle(e) {
    switch (e.kind) {
      case 222:
        return !0;
      case 221:
        return e.operator === 45 || e.operator === 46;
      default:
        return !1;
    }
  }
  function _le(e) {
    switch (e.kind) {
      case 104:
      case 110:
      case 95:
      case 221:
        return !0;
      default:
        return nT(e);
    }
  }
  function yt(e) {
    return UOe(O_(e).kind);
  }
  function UOe(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 dle(e);
    }
  }
  function iT(e) {
    const t = e.kind;
    return t === 213 || t === 231;
  }
  function VOe(e) {
    return uJ(e) || D7(e);
  }
  function Sv(e, t) {
    switch (e.kind) {
      case 245:
      case 246:
      case 247:
      case 243:
      case 244:
        return !0;
      case 253:
        return t && Sv(e.statement, t);
    }
    return !1;
  }
  function ple(e) {
    return Mc(e) || Xl(e);
  }
  function mle(e) {
    return kt(e, ple);
  }
  function LM(e) {
    return !QR(e) && !Mc(e) && !Kr(e, 1) && !Du(e);
  }
  function WR(e) {
    return QR(e) || Mc(e) || Kr(e, 1);
  }
  function CA(e) {
    return e.kind === 246 || e.kind === 247;
  }
  function IM(e) {
    return oo(e) || yt(e);
  }
  function mW(e) {
    return oo(e);
  }
  function zp(e) {
    return Mu(e) || yt(e);
  }
  function hle(e) {
    const t = e.kind;
    return t === 265 || t === 264 || t === 79;
  }
  function jOe(e) {
    const t = e.kind;
    return t === 265 || t === 264;
  }
  function HOe(e) {
    const t = e.kind;
    return t === 79 || t === 264;
  }
  function hW(e) {
    const t = e.kind;
    return t === 272 || t === 271;
  }
  function zR(e) {
    return e.kind === 264 || e.kind === 263;
  }
  function km(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 wm(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 WOe(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 gW(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 yW(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 mu(e) {
    return e.kind === 165 ? e.parent && e.parent.kind !== 348 || fr(e) : WOe(e.kind);
  }
  function gle(e) {
    return gW(e.kind);
  }
  function qR(e) {
    return yW(e.kind);
  }
  function Ca(e) {
    const t = e.kind;
    return yW(t) || gW(t) || zOe(e);
  }
  function zOe(e) {
    return e.kind !== 238 || e.parent !== void 0 && (e.parent.kind === 255 || e.parent.kind === 295) ? !1 : !uT(e);
  }
  function yle(e) {
    const t = e.kind;
    return yW(t) || gW(t) || t === 238;
  }
  function vle(e) {
    const t = e.kind;
    return t === 280 || t === 163 || t === 79;
  }
  function AI(e) {
    const t = e.kind;
    return t === 108 || t === 79 || t === 208;
  }
  function JR(e) {
    const t = e.kind;
    return t === 281 || t === 291 || t === 282 || t === 11 || t === 285;
  }
  function kM(e) {
    const t = e.kind;
    return t === 288 || t === 290;
  }
  function ble(e) {
    const t = e.kind;
    return t === 10 || t === 291;
  }
  function Ku(e) {
    const t = e.kind;
    return t === 283 || t === 282;
  }
  function vW(e) {
    const t = e.kind;
    return t === 292 || t === 293;
  }
  function LA(e) {
    return e.kind >= 312 && e.kind <= 353;
  }
  function bW(e) {
    return e.kind === 323 || e.kind === 322 || e.kind === 324 || YS(e) || CI(e) || Nk(e) || M1(e);
  }
  function CI(e) {
    return e.kind >= 330 && e.kind <= 353;
  }
  function _y(e) {
    return e.kind === 175;
  }
  function xv(e) {
    return e.kind === 174;
  }
  function bf(e) {
    if (!EN(e))
      return !1;
    const { jsDoc: t } = e;
    return !!t && t.length > 0;
  }
  function wM(e) {
    return !!e.type;
  }
  function Av(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 EW(e) {
    return e.kind === 288 || e.kind === 290 || fy(e);
  }
  function DM(e) {
    return e.kind === 180 || e.kind === 230;
  }
  function Ele(e) {
    let t = AW;
    for (const r of e) {
      if (!r.length)
        continue;
      let i = 0;
      for (; i < r.length && i < t && tg(r.charCodeAt(i)); i++)
        ;
      if (i < t && (t = i), t === 0)
        return 0;
    }
    return t === AW ? void 0 : t;
  }
  function Es(e) {
    return e.kind === 10 || e.kind === 14;
  }
  function YS(e) {
    return e.kind === 327 || e.kind === 328 || e.kind === 329;
  }
  function TW(e) {
    const t = ec(e.parameters);
    return !!t && ph(t);
  }
  function ph(e) {
    const t = tm(e) ? e.typeExpression && e.typeExpression.type : e.type;
    return e.dotDotDotToken !== void 0 || !!t && t.kind === 321;
  }
  var SW, xW, AW, qOe = C({
    "src/compiler/utilitiesPublic.ts"() {
      wa(), SW = PR(Ll(0, 0), 0), xW = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-br", "ru", "tr", "zh-cn", "zh-tw"], AW = 1073741823;
    }
  });
  function Sc(e, t) {
    const r = e.declarations;
    if (r) {
      for (const i of r)
        if (i.kind === t)
          return i;
    }
  }
  function Tle(e, t) {
    return yn(e.declarations || rt, (r) => r.kind === t);
  }
  function ao(e) {
    const t = /* @__PURE__ */ new Map();
    if (e)
      for (const r of e)
        t.set(r.escapedName, r);
    return t;
  }
  function Dm(e) {
    return (e.flags & 33554432) !== 0;
  }
  function JOe() {
    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 && tg(e.charCodeAt(e.length - 1)),
      writeLine: () => e += " ",
      increaseIndent: io,
      decreaseIndent: io,
      clear: () => e = ""
    };
  }
  function CW(e, t) {
    return e.configFilePath !== t.configFilePath || Sle(e, t);
  }
  function Sle(e, t) {
    return IA(e, t, i5);
  }
  function xle(e, t) {
    return IA(e, t, uK);
  }
  function IA(e, t, r) {
    return e !== t && r.some((i) => !uq(w3(e, i), w3(t, i)));
  }
  function Ale(e, t) {
    for (; ; ) {
      const r = t(e);
      if (r === "quit")
        return;
      if (r !== void 0)
        return r;
      if (Hi(e))
        return;
      e = e.parent;
    }
  }
  function tf(e, t) {
    const r = e.entries();
    for (const [i, o] of r) {
      const s = t(o, i);
      if (s)
        return s;
    }
  }
  function LI(e, t) {
    const r = e.keys();
    for (const i of r) {
      const o = t(i);
      if (o)
        return o;
    }
  }
  function KR(e, t) {
    e.forEach((r, i) => {
      t.set(i, r);
    });
  }
  function II(e) {
    const t = mk.getText();
    try {
      return e(mk), mk.getText();
    } finally {
      mk.clear(), mk.writeKeyword(t);
    }
  }
  function XR(e) {
    return e.end - e.pos;
  }
  function kA(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 Cle(e, t, r, i) {
    e.resolvedModules || (e.resolvedModules = OT()), e.resolvedModules.set(t, i, r);
  }
  function Lle(e, t, r, i) {
    e.resolvedTypeReferenceDirectiveNames || (e.resolvedTypeReferenceDirectiveNames = OT()), e.resolvedTypeReferenceDirectiveNames.set(t, i, r);
  }
  function KOe(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 LW(e, t) {
    return e.path === t.path && !e.prepend == !t.prepend && !e.circular == !t.circular;
  }
  function Ile(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 && XOe(e.resolvedModule.packageId, t.resolvedModule.packageId);
  }
  function XOe(e, t) {
    return e === t || !!e && !!t && e.name === t.name && e.subModuleName === t.subModuleName && e.version === t.version;
  }
  function RM({ name: e, subModuleName: t }) {
    return t ? `${e}/${t}` : e;
  }
  function oT(e) {
    return `${RM(e)}@${e.version}`;
  }
  function kle(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 IW(e, t, r, i, o, s) {
    D.assert(e.length === r.length);
    for (let l = 0; l < e.length; l++) {
      const f = r[l], d = e[l], y = s.getName(d), h = s.getMode(d, t), b = i && i.get(y, h);
      if (b ? !f || !o(b, f) : f)
        return !0;
    }
    return !1;
  }
  function YR(e) {
    return YOe(e), (e.flags & 524288) !== 0;
  }
  function YOe(e) {
    e.flags & 1048576 || ((e.flags & 131072 || Ra(e, YR)) && (e.flags |= 524288), e.flags |= 1048576);
  }
  function er(e) {
    for (; e && e.kind !== 308; )
      e = e.parent;
    return e;
  }
  function NM(e) {
    return er(e.valueDeclaration || FW(e));
  }
  function OM(e, t) {
    return !!e && (e.scriptKind === 1 || e.scriptKind === 2) && !e.checkJsDirective && t === void 0;
  }
  function wle(e) {
    switch (e.kind) {
      case 238:
      case 266:
      case 245:
      case 246:
      case 247:
        return !0;
    }
    return !1;
  }
  function Cv(e, t) {
    return D.assert(e >= 0), eg(t)[e];
  }
  function $Oe(e) {
    const t = er(e), r = ac(t, e.pos);
    return `${t.fileName}(${r.line + 1},${r.character + 1})`;
  }
  function $R(e, t) {
    D.assert(e >= 0);
    const r = eg(t), i = e, o = t.text;
    if (i + 1 === r.length)
      return o.length - 1;
    {
      const s = r[i];
      let l = r[i + 1] - 1;
      for (D.assert(fu(o.charCodeAt(l))); s <= l && fu(o.charCodeAt(l)); )
        l--;
      return l;
    }
  }
  function PM(e, t, r) {
    return !(r && r(t)) && !e.identifiers.has(t);
  }
  function xc(e) {
    return e === void 0 ? !0 : e.pos === e.end && e.pos >= 0 && e.kind !== 1;
  }
  function u_(e) {
    return !xc(e);
  }
  function Dle(e, t) {
    return Pc(e) ? t === e.expression : Lc(e) ? t === e.modifiers : xf(e) ? t === e.initializer : Za(e) ? t === e.questionToken && ef(e) : Vl(e) ? t === e.modifiers || t === e.questionToken || t === e.exclamationToken || kI(e.modifiers, t, tc) : $f(e) ? t === e.equalsToken || t === e.modifiers || t === e.questionToken || t === e.exclamationToken || kI(e.modifiers, t, tc) : nl(e) ? t === e.exclamationToken : Hc(e) ? t === e.typeParameters || t === e.type || kI(e.typeParameters, t, Pc) : H_(e) ? t === e.typeParameters || kI(e.typeParameters, t, Pc) : Yf(e) ? t === e.typeParameters || t === e.type || kI(e.typeParameters, t, Pc) : kO(e) ? t === e.modifiers || kI(e.modifiers, t, tc) : !1;
  }
  function kI(e, t, r) {
    return !e || Ba(t) || !r(t) ? !1 : wi(e, t);
  }
  function Rle(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 Nle(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 Ole(e) {
    return pp(e) || !!(go(e) & 2097152);
  }
  function Rm(e, t) {
    return Rle(e, t, pp);
  }
  function kW(e, t) {
    return Rle(e, t, Ole);
  }
  function QOe(e, t) {
    return Nle(e, t, pp);
  }
  function m1(e, t) {
    return Nle(e, t, Ole);
  }
  function wW(e, t, r) {
    if (e.charCodeAt(t + 1) === 47 && t + 2 < r && e.charCodeAt(t + 2) === 47) {
      const i = e.substring(t, r);
      return !!(bq.test(i) || Eq.test(i) || Vde.test(i) || jde.test(i));
    }
    return !1;
  }
  function MM(e, t) {
    return e.charCodeAt(t + 1) === 42 && e.charCodeAt(t + 2) === 33;
  }
  function Ple(e, t) {
    const r = new Map(t.map((l) => [
      `${ac(e, l.range.end).line}`,
      l
    ])), i = /* @__PURE__ */ new Map();
    return { getUnusedExpectations: o, markUsed: s };
    function o() {
      return Do(r.entries()).filter(([l, f]) => f.type === 0 && !i.get(l)).map(([l, f]) => f);
    }
    function s(l) {
      return r.has(`${l}`) ? (i.set(`${l}`, !0), !0) : !1;
    }
  }
  function sT(e, t, r) {
    return xc(e) ? e.pos : LA(e) || e.kind === 11 ? zo((t || er(e)).text, e.pos, !1, !0) : r && bf(e) ? sT(e.jsDoc[0], t) : e.kind === 354 && e._children.length > 0 ? sT(e._children[0], t, r) : zo((t || er(e)).text, e.pos, !1, !1, oN(e));
  }
  function DW(e, t) {
    const r = !xc(e) && q_(e) ? $i(e.modifiers, Nu) : void 0;
    return r ? zo((t || er(e)).text, r.end) : sT(e, t);
  }
  function h1(e, t, r = !1) {
    return wI(e.text, t, r);
  }
  function ZOe(e) {
    return !!rr(e, wT);
  }
  function FM(e) {
    return !!(Xl(e) && e.exportClause && Ah(e.exportClause) && e.exportClause.name.escapedText === "default");
  }
  function wI(e, t, r = !1) {
    if (xc(t))
      return "";
    let i = e.substring(r ? t.pos : zo(e, t.pos), t.end);
    return ZOe(t) && (i = i.split(/\r\n|\n|\r/).map((o) => iI(o.replace(/^\s*\*/, ""))).join(`
`)), i;
  }
  function El(e, t = !1) {
    return h1(er(e), e, t);
  }
  function e8e(e) {
    return e.pos;
  }
  function wA(e, t) {
    return pv(e, t, e8e, Vs);
  }
  function go(e) {
    const t = e.emitNode;
    return t && t.flags || 0;
  }
  function P_(e) {
    const t = e.emitNode;
    return t && t.internalFlags || 0;
  }
  function RW() {
    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 Mle(e, t, r) {
    var i;
    if (t && t8e(e, r))
      return h1(t, e);
    switch (e.kind) {
      case 10: {
        const o = r & 2 ? bz : r & 1 || go(e) & 33554432 ? ax : NN;
        return e.singleQuote ? "'" + o(e.text, 39) + "'" : '"' + o(e.text, 34) + '"';
      }
      case 14:
      case 15:
      case 16:
      case 17: {
        const o = r & 1 || go(e) & 33554432 ? ax : NN, s = (i = e.rawText) != null ? i : T8e(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 t8e(e, t) {
    return Ys(e) || !e.parent || t & 4 && e.isUnterminated ? !1 : h_(e) && e.numericLiteralFlags & 512 ? !!(t & 8) : !S7(e);
  }
  function Fle(e) {
    return Ua(e) ? '"' + NN(e) + '"' : "" + e;
  }
  function Ble(e) {
    return du(e).replace(/^(\d)/, "_$1").replace(/\W/g, "_");
  }
  function NW(e) {
    return (_p(e) & 3) !== 0 || OW(e);
  }
  function OW(e) {
    const t = Om(e);
    return t.kind === 257 && t.parent.kind === 295;
  }
  function Du(e) {
    return Wc(e) && (e.name.kind === 10 || qp(e));
  }
  function BM(e) {
    return Wc(e) && e.name.kind === 10;
  }
  function PW(e) {
    return Wc(e) && Go(e.name);
  }
  function Gle(e) {
    return Wc(e) || Ve(e);
  }
  function DI(e) {
    return n8e(e.valueDeclaration);
  }
  function n8e(e) {
    return !!e && e.kind === 264 && !e.body;
  }
  function Ule(e) {
    return e.kind === 308 || e.kind === 264 || SA(e);
  }
  function qp(e) {
    return !!(e.flags & 1024);
  }
  function g1(e) {
    return Du(e) && MW(e);
  }
  function MW(e) {
    switch (e.parent.kind) {
      case 308:
        return Yc(e.parent);
      case 265:
        return Du(e.parent.parent) && Hi(e.parent.parent.parent) && !Yc(e.parent.parent.parent);
    }
    return !1;
  }
  function FW(e) {
    var t;
    return (t = e.declarations) == null ? void 0 : t.find((r) => !g1(r) && !(Wc(r) && qp(r)));
  }
  function r8e(e) {
    return e === 1 || e === 100 || e === 199;
  }
  function $S(e, t) {
    return Yc(e) || U_(t) || r8e(tu(t)) && !!e.commonJsModuleIndicator;
  }
  function BW(e, t) {
    switch (e.scriptKind) {
      case 1:
      case 3:
      case 2:
      case 4:
        break;
      default:
        return !1;
    }
    return e.isDeclarationFile ? !1 : m_(t, "alwaysStrict") || Zfe(e.statements) ? !0 : Yc(e) || U_(t) ? tu(t) >= 5 ? !0 : !t.noImplicitUseStrict : !1;
  }
  function GW(e) {
    return !!(e.flags & 16777216) || Kr(e, 2);
  }
  function UW(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 !SA(t);
    }
    return !1;
  }
  function VW(e) {
    switch (D.type(e), e.kind) {
      case 341:
      case 349:
      case 326:
        return !0;
      default:
        return jW(e);
    }
  }
  function jW(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 cT(e) {
    switch (e.kind) {
      case 269:
      case 268:
        return !0;
      default:
        return !1;
    }
  }
  function Vle(e) {
    return cT(e) || E1(e);
  }
  function GM(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 jle(e) {
    return QR(e) || Wc(e) || _g(e) || rf(e);
  }
  function QR(e) {
    return cT(e) || Xl(e);
  }
  function Nm(e) {
    return rr(e.parent, (t) => UW(t, t.parent));
  }
  function Hle(e, t) {
    let r = Nm(e);
    for (; r; )
      t(r), r = Nm(r);
  }
  function Ls(e) {
    return !e || XR(e) === 0 ? "(Missing)" : El(e);
  }
  function Wle(e) {
    return e.declaration ? Ls(e.declaration.parameters[0].name) : void 0;
  }
  function ZR(e) {
    return e.kind === 164 && !zf(e.expression);
  }
  function UM(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 oc(e.text);
      case 164:
        return zf(e.expression) ? oc(e.expression.text) : void 0;
      default:
        return D.assertNever(e);
    }
  }
  function DA(e) {
    return D.checkDefined(UM(e));
  }
  function Ef(e) {
    switch (e.kind) {
      case 108:
        return "this";
      case 80:
      case 79:
        return XR(e) === 0 ? Pr(e) : El(e);
      case 163:
        return Ef(e.left) + "." + Ef(e.right);
      case 208:
        return Ve(e.name) || Di(e.name) ? Ef(e.expression) + "." + Ef(e.name) : D.assertNever(e.name);
      case 314:
        return Ef(e.left) + Ef(e.right);
      default:
        return D.assertNever(e);
    }
  }
  function Rr(e, t, r, i, o, s) {
    const l = er(e);
    return od(l, e, t, r, i, o, s);
  }
  function RA(e, t, r, i, o, s, l) {
    const f = zo(e.text, t.pos);
    return Il(e, f, t.end - f, r, i, o, s, l);
  }
  function od(e, t, r, i, o, s, l) {
    const f = y1(e, t);
    return Il(e, f.start, f.length, r, i, o, s, l);
  }
  function ag(e, t, r, i) {
    const o = y1(e, t);
    return VM(e, o.start, o.length, r, i);
  }
  function eN(e, t, r, i) {
    const o = zo(e.text, t.pos);
    return VM(e, o, t.end - o, r, i);
  }
  function HW(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 VM(e, t, r, i, o) {
    return HW(e, t, r), {
      file: e,
      start: t,
      length: r,
      code: i.code,
      category: i.category,
      messageText: i.next ? i : i.messageText,
      relatedInformation: o
    };
  }
  function WW(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 zle(e) {
    return typeof e.messageText == "string" ? {
      code: e.code,
      category: e.category,
      messageText: e.messageText,
      next: e.next
    } : e.messageText;
  }
  function zW(e, t, r) {
    return {
      file: e,
      start: t.pos,
      length: t.end - t.pos,
      code: r.code,
      category: r.category,
      messageText: r.message
    };
  }
  function py(e, t) {
    const r = cy(e.languageVersion, !0, e.languageVariant, e.text, void 0, t);
    r.scan();
    const i = r.getTokenPos();
    return _l(i, r.getTextPos());
  }
  function qle(e, t) {
    const r = cy(e.languageVersion, !0, e.languageVariant, e.text, void 0, t);
    return r.scan(), r.getToken();
  }
  function i8e(e, t) {
    const r = zo(e.text, t.pos);
    if (t.body && t.body.kind === 238) {
      const { line: i } = ac(e, t.body.pos), { line: o } = ac(e, t.body.end);
      if (i < o)
        return Ll(r, $R(i, e) - r + 1);
    }
    return _l(r, t.end);
  }
  function y1(e, t) {
    let r = t;
    switch (t.kind) {
      case 308:
        const s = zo(e.text, 0, !1);
        return s === e.text.length ? Ll(0, 0) : py(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 i8e(e, t);
      case 292:
      case 293:
        const l = zo(e.text, t.pos), f = t.statements.length > 0 ? t.statements[0].pos : t.end;
        return _l(l, f);
    }
    if (r === void 0)
      return py(e, t.pos);
    D.assert(!Hm(r));
    const i = xc(r), o = i || yx(t) ? r.pos : zo(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")), _l(o, r.end);
  }
  function nf(e) {
    return (e.externalModuleIndicator || e.commonJsModuleIndicator) !== void 0;
  }
  function d_(e) {
    return e.scriptKind === 6;
  }
  function v1(e) {
    return !!(uy(e) & 2048);
  }
  function jM(e) {
    return !!(uy(e) & 64 && !Qd(e, e.parent));
  }
  function og(e) {
    return !!(_p(e) & 2);
  }
  function RI(e) {
    return !!(_p(e) & 1);
  }
  function NA(e) {
    return e.kind === 210 && e.expression.kind === 106;
  }
  function rf(e) {
    return e.kind === 210 && e.expression.kind === 100;
  }
  function OA(e) {
    return Lk(e) && e.keywordToken === 100 && e.name.escapedText === "meta";
  }
  function V0(e) {
    return _g(e) && Q0(e.argument) && Go(e.argument.literal);
  }
  function pp(e) {
    return e.kind === 241 && e.expression.kind === 10;
  }
  function HM(e) {
    return !!(go(e) & 2097152);
  }
  function WM(e) {
    return HM(e) && ml(e);
  }
  function a8e(e) {
    return Ve(e.name) && !e.initializer;
  }
  function zM(e) {
    return HM(e) && cl(e) && Rn(e.declarationList.declarations, a8e);
  }
  function qW(e, t) {
    return e.kind !== 11 ? dh(t.text, e.pos) : void 0;
  }
  function JW(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 ? ma(F0(t, e.pos), dh(t, e.pos)) : dh(t, e.pos);
    return yn(r, (i) => t.charCodeAt(i.pos + 1) === 42 && t.charCodeAt(i.pos + 2) === 42 && t.charCodeAt(i.pos + 3) !== 47);
  }
  function mh(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 Bd(e.parent) && !GN(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 Bd(t.parent) && !GN(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 wi(t.typeArguments, e);
          case 212:
            return !1;
        }
      }
    }
    return !1;
  }
  function KW(e, t) {
    for (; e; ) {
      if (e.kind === t)
        return !0;
      e = e.parent;
    }
    return !1;
  }
  function lT(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 Ra(i, r);
      }
    }
  }
  function Jle(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 (qa(i)) {
            if (i.name && i.name.kind === 164) {
              r(i.name.expression);
              return;
            }
          } else
            mh(i) || Ra(i, r);
      }
    }
  }
  function XW(e) {
    return e && e.kind === 185 ? e.elementType : e && e.kind === 180 ? Tm(e.typeArguments) : void 0;
  }
  function Kle(e) {
    switch (e.kind) {
      case 261:
      case 260:
      case 228:
      case 184:
        return e.members;
      case 207:
        return e.properties;
    }
  }
  function PA(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 Xle(e) {
    return PA(e) || U0(e);
  }
  function qM(e) {
    return e.parent.kind === 258 && e.parent.parent.kind === 240;
  }
  function Yle(e) {
    return fr(e) ? xs(e.parent) && br(e.parent.parent) && Ac(e.parent.parent) === 2 || JM(e.parent) : !1;
  }
  function JM(e) {
    return fr(e) ? br(e) && Ac(e) === 1 : !1;
  }
  function $le(e) {
    return (zi(e) ? og(e) && Ve(e.name) && qM(e) : Za(e) ? JI(e) && pl(e) : xf(e) && JI(e)) || JM(e);
  }
  function Qle(e) {
    switch (e.kind) {
      case 171:
      case 170:
      case 173:
      case 174:
      case 175:
      case 259:
      case 215:
        return !0;
    }
    return !1;
  }
  function YW(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 && qa(e.parent);
  }
  function M_(e) {
    return e && e.kind === 171 && e.parent.kind === 207;
  }
  function KM(e) {
    return (e.kind === 171 || e.kind === 174 || e.kind === 175) && (e.parent.kind === 207 || e.parent.kind === 228);
  }
  function Zle(e) {
    return e && e.kind === 1;
  }
  function o8e(e) {
    return e && e.kind === 0;
  }
  function MA(e, t, r) {
    return e.properties.filter((i) => {
      if (i.kind === 299) {
        const o = UM(i.name);
        return t === o || !!r && r === o;
      }
      return !1;
    });
  }
  function eue(e, t, r) {
    return sn(MA(e, t), (i) => Ou(i.initializer) ? cn(i.initializer.elements, (o) => Go(o) && o.text === r) : void 0);
  }
  function NI(e) {
    if (e && e.statements.length) {
      const t = e.statements[0].expression;
      return ii(t, xs);
    }
  }
  function XM(e, t, r) {
    return sn(tN(e, t), (i) => Ou(i.initializer) ? cn(i.initializer.elements, (o) => Go(o) && o.text === r) : void 0);
  }
  function tN(e, t) {
    const r = NI(e);
    return r ? MA(r, t) : rt;
  }
  function Tf(e) {
    return rr(e.parent, qa);
  }
  function tue(e) {
    return rr(e.parent, Xs);
  }
  function Tl(e) {
    return rr(e.parent, li);
  }
  function s8e(e) {
    return rr(e.parent, (t) => li(t) || qa(t) ? "quit" : Lc(t));
  }
  function YM(e) {
    return rr(e.parent, SA);
  }
  function bd(e, t, r) {
    for (D.assert(e.kind !== 308); ; ) {
      if (e = e.parent, !e)
        return D.fail();
      switch (e.kind) {
        case 164:
          if (r && li(e.parent.parent))
            return e;
          e = e.parent.parent;
          break;
        case 167:
          e.parent.kind === 166 && Ml(e.parent.parent) ? e = e.parent.parent : Ml(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 nue(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 $M(e) {
    Ve(e) && (wl(e.parent) || ml(e.parent)) && e.parent.name === e && (e = e.parent);
    const t = bd(e, !0, !1);
    return Hi(t);
  }
  function rue(e) {
    const t = bd(e, !1, !1);
    if (t)
      switch (t.kind) {
        case 173:
        case 259:
        case 215:
          return t;
      }
  }
  function nN(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 && Ml(e.parent.parent) ? e = e.parent.parent : Ml(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 c8e(e) {
    return e.kind === 106 || sd(e);
  }
  function sd(e) {
    const t = e.kind;
    return (t === 208 || t === 209) && e.expression.kind === 106;
  }
  function rN(e) {
    const t = e.kind;
    return (t === 208 || t === 209) && e.expression.kind === 108;
  }
  function QM(e) {
    var t;
    return !!e && zi(e) && ((t = e.initializer) == null ? void 0 : t.kind) === 108;
  }
  function iue(e) {
    return !!e && ($f(e) || Vl(e)) && br(e.parent.parent) && e.parent.parent.operatorToken.kind === 63 && e.parent.parent.right.kind === 108;
  }
  function iN(e) {
    switch (e.kind) {
      case 180:
        return e.typeName;
      case 230:
        return jc(e.expression) ? e.expression : void 0;
      case 79:
      case 163:
        return e;
    }
  }
  function ZM(e) {
    switch (e.kind) {
      case 212:
        return e.tag;
      case 283:
      case 282:
        return e.tagName;
      default:
        return e.expression;
    }
  }
  function e3(e, t, r, i) {
    if (e && _u(t) && Di(t.name))
      return !1;
    switch (t.kind) {
      case 260:
        return !0;
      case 228:
        return !e;
      case 169:
        return r !== void 0 && (e ? wl(r) : li(r) && !C1(t) && !Dz(t));
      case 174:
      case 175:
      case 171:
        return t.body !== void 0 && r !== void 0 && (e ? wl(r) : li(r));
      case 166:
        return e ? r !== void 0 && r.body !== void 0 && (r.kind === 173 || r.kind === 171 || r.kind === 175) && x1(r) !== t && i !== void 0 && i.kind === 260 : !1;
    }
    return !1;
  }
  function FA(e, t, r, i) {
    return Jf(t) && e3(e, t, r, i);
  }
  function aN(e, t, r, i) {
    return FA(e, t, r, i) || OI(e, t, r);
  }
  function OI(e, t, r) {
    switch (t.kind) {
      case 260:
        return kt(t.members, (i) => aN(e, i, t, r));
      case 228:
        return !e && kt(t.members, (i) => aN(e, i, t, r));
      case 171:
      case 175:
      case 173:
        return kt(t.parameters, (i) => FA(e, i, t, r));
      default:
        return !1;
    }
  }
  function b1(e, t) {
    if (FA(e, t))
      return !0;
    const r = yh(t);
    return !!r && OI(e, r, t);
  }
  function $W(e, t, r) {
    let i;
    if (U0(t)) {
      const { firstAccessor: o, secondAccessor: s, setAccessor: l } = vT(r.members, t), f = Jf(o) ? o : s && Jf(s) ? s : void 0;
      if (!f || t !== f)
        return !1;
      i = l == null ? void 0 : l.parameters;
    } else
      nl(t) && (i = t.parameters);
    if (FA(e, t, r))
      return !0;
    if (i) {
      for (const o of i)
        if (!A1(o) && FA(e, o, t, r))
          return !0;
    }
    return !1;
  }
  function QW(e) {
    if (e.textSourceNode) {
      switch (e.textSourceNode.kind) {
        case 10:
          return QW(e.textSourceNode);
        case 14:
          return e.text === "";
      }
      return !1;
    }
    return e.text === "";
  }
  function PI(e) {
    const { parent: t } = e;
    return t.kind === 283 || t.kind === 282 || t.kind === 284 ? t.tagName === e : !1;
  }
  function sg(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 !Bd(e.parent) && !xC(e.parent);
      case 163:
        for (; e.parent.kind === 163; )
          e = e.parent;
        return e.parent.kind === 183 || YS(e.parent) || Rk(e.parent) || eb(e.parent) || PI(e);
      case 314:
        for (; eb(e.parent); )
          e = e.parent;
        return e.parent.kind === 183 || YS(e.parent) || Rk(e.parent) || eb(e.parent) || PI(e);
      case 80:
        return br(e.parent) && e.parent.left === e && e.parent.operatorToken.kind === 101;
      case 79:
        if (e.parent.kind === 183 || YS(e.parent) || Rk(e.parent) || eb(e.parent) || PI(e))
          return !0;
      case 8:
      case 9:
      case 10:
      case 14:
      case 108:
        return t3(e);
      default:
        return !1;
    }
  }
  function t3(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 && !mh(t);
      case 300:
        return t.objectAssignmentInitializer === e;
      case 235:
        return e === t.expression;
      default:
        return sg(t);
    }
  }
  function n3(e) {
    for (; e.kind === 163 || e.kind === 79; )
      e = e.parent;
    return e.kind === 183;
  }
  function aue(e) {
    return Ah(e) && !!e.parent.moduleSpecifier;
  }
  function j0(e) {
    return e.kind === 268 && e.moduleReference.kind === 280;
  }
  function MI(e) {
    return D.assert(j0(e)), e.moduleReference.expression;
  }
  function ZW(e) {
    return E1(e) && nk(e.initializer).arguments[0];
  }
  function BA(e) {
    return e.kind === 268 && e.moduleReference.kind !== 280;
  }
  function Xu(e) {
    return fr(e);
  }
  function l8e(e) {
    return !fr(e);
  }
  function fr(e) {
    return !!e && !!(e.flags & 262144);
  }
  function r3(e) {
    return !!e && !!(e.flags & 67108864);
  }
  function ez(e) {
    return !d_(e);
  }
  function oN(e) {
    return !!e && !!(e.flags & 8388608);
  }
  function i3(e) {
    return W_(e) && Ve(e.typeName) && e.typeName.escapedText === "Object" && e.typeArguments && e.typeArguments.length === 2 && (e.typeArguments[0].kind === 152 || e.typeArguments[0].kind === 148);
  }
  function Ed(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 || Es(o);
  }
  function tz(e) {
    return sue(e, !1);
  }
  function E1(e) {
    return sue(e, !0);
  }
  function oue(e) {
    return us(e) && E1(e.parent.parent);
  }
  function sue(e, t) {
    return zi(e) && !!e.initializer && Ed(t ? nk(e.initializer) : e.initializer, !0);
  }
  function nz(e) {
    return cl(e) && e.declarationList.declarations.length > 0 && Rn(e.declarationList.declarations, (t) => tz(t));
  }
  function sN(e) {
    return e === 39 || e === 34;
  }
  function a3(e, t) {
    return h1(t, e).charCodeAt(0) === 34;
  }
  function FI(e) {
    return br(e) || sc(e) || Ve(e) || eo(e);
  }
  function cN(e) {
    return fr(e) && e.initializer && br(e.initializer) && (e.initializer.operatorToken.kind === 56 || e.initializer.operatorToken.kind === 60) && e.name && jc(e.name) && GA(e.name, e.initializer.left) ? e.initializer.right : e.initializer;
  }
  function lN(e) {
    const t = cN(e);
    return t && H0(t, J0(e.name));
  }
  function u8e(e, t) {
    return ze(e.properties, (r) => Vl(r) && Ve(r.name) && r.name.escapedText === "value" && r.initializer && H0(r.initializer, t));
  }
  function QS(e) {
    if (e && e.parent && br(e.parent) && e.parent.operatorToken.kind === 63) {
      const t = J0(e.parent.left);
      return H0(e.parent.right, t) || d8e(e.parent.left, e.parent.right, t);
    }
    if (e && eo(e) && ZS(e)) {
      const t = u8e(e.arguments[2], e.arguments[1].text === "prototype");
      if (t)
        return t;
    }
  }
  function H0(e, t) {
    if (eo(e)) {
      const r = Gs(e.expression);
      return r.kind === 215 || r.kind === 216 ? e : void 0;
    }
    if (e.kind === 215 || e.kind === 228 || e.kind === 216 || xs(e) && (e.properties.length === 0 || t))
      return e;
  }
  function d8e(e, t, r) {
    const i = br(t) && (t.operatorToken.kind === 56 || t.operatorToken.kind === 60) && H0(t.right, r);
    if (i && GA(e, t.left))
      return i;
  }
  function cue(e) {
    const t = zi(e.parent) ? e.parent.name : br(e.parent) && e.parent.operatorToken.kind === 63 ? e.parent.left : void 0;
    return t && H0(e.right, J0(t)) && jc(t) && GA(t, e.left);
  }
  function rz(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 && Ve(t.left))
        return t.left;
    } else if (zi(e.parent))
      return e.parent.name;
  }
  function GA(e, t) {
    return F_(e) && F_(t) ? B_(e) === B_(t) : ng(e) && o3(t) && (t.expression.kind === 108 || Ve(t.expression) && (t.expression.escapedText === "window" || t.expression.escapedText === "self" || t.expression.escapedText === "global")) ? GA(e, fN(t)) : o3(e) && o3(t) ? cg(e) === cg(t) && GA(e.expression, t.expression) : !1;
  }
  function uN(e) {
    for (; Yu(e, !0); )
      e = e.right;
    return e;
  }
  function fT(e) {
    return Ve(e) && e.escapedText === "exports";
  }
  function iz(e) {
    return Ve(e) && e.escapedText === "module";
  }
  function hh(e) {
    return (Mr(e) || dN(e)) && iz(e.expression) && cg(e) === "exports";
  }
  function Ac(e) {
    const t = f8e(e);
    return t === 5 || fr(e) ? t : 0;
  }
  function ZS(e) {
    return Ie(e.arguments) === 3 && Mr(e.expression) && Ve(e.expression.expression) && Pr(e.expression.expression) === "Object" && Pr(e.expression.name) === "defineProperty" && zf(e.arguments[1]) && ex(e.arguments[0], !0);
  }
  function o3(e) {
    return Mr(e) || dN(e);
  }
  function dN(e) {
    return cc(e) && zf(e.argumentExpression);
  }
  function _T(e, t) {
    return Mr(e) && (!t && e.expression.kind === 108 || Ve(e.name) && ex(e.expression, !0)) || s3(e, t);
  }
  function s3(e, t) {
    return dN(e) && (!t && e.expression.kind === 108 || jc(e.expression) || _T(e.expression, !0));
  }
  function ex(e, t) {
    return jc(e) || _T(e, t);
  }
  function fN(e) {
    return Mr(e) ? e.name : e.argumentExpression;
  }
  function f8e(e) {
    if (eo(e)) {
      if (!ZS(e))
        return 0;
      const t = e.arguments[0];
      return fT(t) || hh(t) ? 8 : _T(t) && cg(t) === "prototype" ? 9 : 7;
    }
    return e.operatorToken.kind !== 63 || !sc(e.left) || _8e(uN(e)) ? 0 : ex(e.left.expression, !0) && cg(e.left) === "prototype" && xs(az(e)) ? 6 : _N(e.left);
  }
  function _8e(e) {
    return Cx(e) && h_(e.expression) && e.expression.text === "0";
  }
  function c3(e) {
    if (Mr(e))
      return e.name;
    const t = Gs(e.argumentExpression);
    return h_(t) || Es(t) ? t : e;
  }
  function cg(e) {
    const t = c3(e);
    if (t) {
      if (Ve(t))
        return t.escapedText;
      if (Es(t) || h_(t))
        return oc(t.text);
    }
  }
  function _N(e) {
    if (e.expression.kind === 108)
      return 4;
    if (hh(e))
      return 2;
    if (ex(e.expression, !0)) {
      if (J0(e.expression))
        return 3;
      let t = e;
      for (; !Ve(t.expression); )
        t = t.expression;
      const r = t.expression;
      if ((r.escapedText === "exports" || r.escapedText === "module" && cg(t) === "exports") && _T(e))
        return 1;
      if (ex(e, !0) || cc(e) && p3(e))
        return 5;
    }
    return 0;
  }
  function az(e) {
    for (; br(e.right); )
      e = e.right;
    return e.right;
  }
  function pN(e) {
    return br(e) && Ac(e) === 3;
  }
  function lue(e) {
    return fr(e) && e.parent && e.parent.kind === 241 && (!cc(e) || dN(e)) && !!d1(e.parent);
  }
  function mN(e, t) {
    const { valueDeclaration: r } = e;
    (!r || !(t.flags & 16777216 && !fr(t) && !(r.flags & 16777216)) && FI(r) && !FI(t) || r.kind !== t.kind && Gle(r)) && (e.valueDeclaration = t);
  }
  function uue(e) {
    if (!e || !e.valueDeclaration)
      return !1;
    const t = e.valueDeclaration;
    return t.kind === 259 || zi(t) && t.initializer && qa(t.initializer);
  }
  function hN(e) {
    var t, r;
    switch (e.kind) {
      case 257:
      case 205:
        return (t = rr(e.initializer, (i) => Ed(i, !0))) == null ? void 0 : t.arguments[0];
      case 269:
        return ii(e.moduleSpecifier, Es);
      case 268:
        return ii((r = ii(e.moduleReference, jm)) == null ? void 0 : r.expression, Es);
      case 270:
      case 277:
        return ii(e.parent.moduleSpecifier, Es);
      case 271:
      case 278:
        return ii(e.parent.parent.moduleSpecifier, Es);
      case 273:
        return ii(e.parent.parent.parent.moduleSpecifier, Es);
      default:
        D.assertNever(e);
    }
  }
  function gN(e) {
    return yN(e) || D.failBadSyntaxKind(e.parent);
  }
  function yN(e) {
    switch (e.parent.kind) {
      case 269:
      case 275:
        return e.parent;
      case 280:
        return e.parent.parent;
      case 210:
        return rf(e.parent) || Ed(e.parent, !1) ? e.parent : void 0;
      case 198:
        return D.assert(Go(e)), ii(e.parent.parent, _g);
      default:
        return;
    }
  }
  function UA(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 V0(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 VA(e) {
    switch (e.kind) {
      case 269:
        return e.importClause && ii(e.importClause.namedBindings, Pv);
      case 268:
        return e;
      case 275:
        return e.exportClause && ii(e.exportClause, Ah);
      default:
        return D.assertNever(e);
    }
  }
  function tx(e) {
    return e.kind === 269 && !!e.importClause && !!e.importClause.name;
  }
  function l3(e, t) {
    if (e.name) {
      const r = t(e);
      if (r)
        return r;
    }
    if (e.namedBindings) {
      const r = Pv(e.namedBindings) ? t(e.namedBindings) : ze(e.namedBindings.elements, t);
      if (r)
        return r;
    }
  }
  function nx(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 jA(e) {
    const t = SC(e) ? zl(e.parameters) : void 0, r = ii(t && t.name, Ve);
    return !!r && r.escapedText === "new";
  }
  function f_(e) {
    return e.kind === 349 || e.kind === 341 || e.kind === 343;
  }
  function vN(e) {
    return f_(e) || Qp(e);
  }
  function p8e(e) {
    return nu(e) && br(e.expression) && e.expression.operatorToken.kind === 63 ? uN(e.expression) : void 0;
  }
  function due(e) {
    return nu(e) && br(e.expression) && Ac(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 oz(e) {
    switch (e.kind) {
      case 240:
        const t = HA(e);
        return t && t.initializer;
      case 169:
        return e.initializer;
      case 299:
        return e.initializer;
    }
  }
  function HA(e) {
    return cl(e) ? zl(e.declarationList.declarations) : void 0;
  }
  function fue(e) {
    return Wc(e) && e.body && e.body.kind === 264 ? e.body : void 0;
  }
  function bN(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 EN(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 sz(e, t) {
    let r;
    PA(e) && Av(e) && bf(e.initializer) && (r = bi(r, _ue(e, Ho(e.initializer.jsDoc))));
    let i = e;
    for (; i && i.parent; ) {
      if (bf(i) && (r = bi(r, _ue(e, Ho(i.jsDoc)))), i.kind === 166) {
        r = bi(r, (t ? Gce : gI)(i));
        break;
      }
      if (i.kind === 165) {
        r = bi(r, (t ? jce : Vce)(i));
        break;
      }
      i = cz(i);
    }
    return r || rt;
  }
  function _ue(e, t) {
    if (Hm(t)) {
      const r = yn(t.tags, (i) => pue(e, i));
      return t.tags === r ? [t] : r;
    }
    return pue(e, t) ? [t] : void 0;
  }
  function pue(e, t) {
    return !(Pk(t) || F7(t)) || !t.parent || !Hm(t.parent) || !Fd(t.parent.parent) || t.parent.parent === e;
  }
  function cz(e) {
    const t = e.parent;
    if (t.kind === 299 || t.kind === 274 || t.kind === 169 || t.kind === 241 && e.kind === 208 || t.kind === 250 || fue(t) || br(e) && e.operatorToken.kind === 63)
      return t;
    if (t.parent && (HA(t.parent) === e || br(t) && t.operatorToken.kind === 63))
      return t.parent;
    if (t.parent && t.parent.parent && (HA(t.parent.parent) || oz(t.parent.parent) === e || due(t.parent.parent)))
      return t.parent.parent;
  }
  function TN(e) {
    if (e.symbol)
      return e.symbol;
    if (!Ve(e.name))
      return;
    const t = e.name.escapedText, r = W0(e);
    if (!r)
      return;
    const i = cn(r.parameters, (o) => o.name.kind === 79 && o.name.escapedText === t);
    return i && i.symbol;
  }
  function u3(e) {
    if (Hm(e.parent) && e.parent.tags) {
      const t = cn(e.parent.tags, f_);
      if (t)
        return t;
    }
    return W0(e);
  }
  function W0(e) {
    const t = WA(e);
    if (t)
      return xf(t) && t.type && qa(t.type) ? t.type : qa(t) ? t : void 0;
  }
  function WA(e) {
    const t = rx(e);
    if (t)
      return due(t) || p8e(t) || oz(t) || HA(t) || fue(t) || t;
  }
  function rx(e) {
    const t = BI(e);
    if (!t)
      return;
    const r = t.parent;
    if (r && r.jsDoc && t === ec(r.jsDoc))
      return r;
  }
  function BI(e) {
    return rr(e.parent, Hm);
  }
  function mue(e) {
    const t = e.name.escapedText, { typeParameters: r } = e.parent.parent.parent;
    return r && cn(r, (i) => i.name.escapedText === t);
  }
  function m8e(e) {
    return !!e.typeArguments;
  }
  function pT(e) {
    let t = e.parent;
    for (; ; ) {
      switch (t.kind) {
        case 223:
          const r = t.operatorToken.kind;
          return my(r) && t.left === e ? r === 63 || KI(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 gh(e) {
    return pT(e) !== 0;
  }
  function hue(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 gue(e) {
    return Ps(e) || Ws(e) || xA(e) || ml(e) || Hc(e);
  }
  function yue(e, t) {
    for (; e && e.kind === t; )
      e = e.parent;
    return e;
  }
  function SN(e) {
    return yue(e, 193);
  }
  function Lv(e) {
    return yue(e, 214);
  }
  function vue(e) {
    let t;
    for (; e && e.kind === 193; )
      t = e, e = e.parent;
    return [t, e];
  }
  function lz(e) {
    for (; Sx(e); )
      e = e.type;
    return e;
  }
  function Gs(e, t) {
    return hu(e, t ? 17 : 1);
  }
  function uz(e) {
    return e.kind !== 208 && e.kind !== 209 ? !1 : (e = Lv(e.parent), e && e.kind === 217);
  }
  function mT(e, t) {
    for (; e; ) {
      if (e === t)
        return !0;
      e = e.parent;
    }
    return !1;
  }
  function lg(e) {
    return !Hi(e) && !Ja(e) && mu(e.parent) && e.parent.name === e;
  }
  function xN(e) {
    const t = e.parent;
    switch (e.kind) {
      case 10:
      case 14:
      case 8:
        if (Ts(t))
          return t.parent;
      case 79:
        if (mu(t))
          return t.name === e ? t : void 0;
        if (Sd(t)) {
          const r = t.parent;
          return tm(r) && r.name === t ? r : void 0;
        } else {
          const r = t.parent;
          return br(r) && Ac(r) !== 0 && (r.left.symbol || r.symbol) && Aa(r) === e ? r : void 0;
        }
      case 80:
        return mu(t) && t.name === e ? t : void 0;
      default:
        return;
    }
  }
  function AN(e) {
    return zf(e) && e.parent.kind === 164 && mu(e.parent.parent);
  }
  function bue(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 h8e(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 && zA(e) ? !0 : fr(e) && (br(e) && Ac(e) === 2 && zA(e) || Mr(e) && br(e.parent) && e.parent.left === e && e.parent.operatorToken.kind === 63 && CN(e.parent.right));
  }
  function dz(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 dz(e);
    }
  }
  function CN(e) {
    return jc(e) || Pu(e);
  }
  function zA(e) {
    const t = fz(e);
    return CN(t);
  }
  function fz(e) {
    return Mc(e) ? e.expression : e.right;
  }
  function Eue(e) {
    return e.kind === 300 ? e.name : e.kind === 299 ? e.initializer : e.parent.right;
  }
  function Jp(e) {
    const t = T1(e);
    if (t && fr(e)) {
      const r = Wce(e);
      if (r)
        return r.class;
    }
    return t;
  }
  function T1(e) {
    const t = LN(e.heritageClauses, 94);
    return t && t.types.length > 0 ? t.types[0] : void 0;
  }
  function qA(e) {
    if (fr(e))
      return zce(e).map((t) => t.class);
    {
      const t = LN(e.heritageClauses, 117);
      return t == null ? void 0 : t.types;
    }
  }
  function GI(e) {
    return Qu(e) ? UI(e) || rt : li(e) && ma(XE(Jp(e)), qA(e)) || rt;
  }
  function UI(e) {
    const t = LN(e.heritageClauses, 94);
    return t ? t.types : void 0;
  }
  function LN(e, t) {
    if (e) {
      for (const r of e)
        if (r.token === t)
          return r;
    }
  }
  function z0(e, t) {
    for (; e; ) {
      if (e.kind === t)
        return e;
      e = e.parent;
    }
  }
  function Td(e) {
    return 81 <= e && e <= 162;
  }
  function d3(e) {
    return 126 <= e && e <= 162;
  }
  function Tue(e) {
    return Td(e) && !d3(e);
  }
  function g8e(e) {
    return 117 <= e && e <= 125;
  }
  function ix(e) {
    const t = ZE(e);
    return t !== void 0 && Tue(t);
  }
  function y8e(e) {
    const t = ZE(e);
    return t !== void 0 && Td(t);
  }
  function f3(e) {
    const t = G0(e);
    return !!t && !d3(t);
  }
  function JA(e) {
    return 2 <= e && e <= 7;
  }
  function Fl(e) {
    if (!e)
      return 4;
    let t = 0;
    switch (e.kind) {
      case 259:
      case 215:
      case 171:
        e.asteriskToken && (t |= 1);
      case 216:
        Kr(e, 512) && (t |= 2);
        break;
    }
    return e.body || (t |= 4), t;
  }
  function KA(e) {
    switch (e.kind) {
      case 259:
      case 215:
      case 216:
      case 171:
        return e.body !== void 0 && e.asteriskToken === void 0 && Kr(e, 512);
    }
    return !1;
  }
  function zf(e) {
    return Es(e) || h_(e);
  }
  function _3(e) {
    return Ov(e) && (e.operator === 39 || e.operator === 40) && h_(e.operand);
  }
  function Iv(e) {
    const t = Aa(e);
    return !!t && p3(t);
  }
  function p3(e) {
    if (!(e.kind === 164 || e.kind === 209))
      return !1;
    const t = cc(e) ? Gs(e.argumentExpression) : e.expression;
    return !zf(t) && !_3(t);
  }
  function S1(e) {
    switch (e.kind) {
      case 79:
      case 80:
        return e.escapedText;
      case 10:
      case 8:
        return oc(e.text);
      case 164:
        const t = e.expression;
        return zf(t) ? oc(t.text) : _3(t) ? t.operator === 40 ? ho(t.operator) + t.operand.text : t.operand.text : void 0;
      default:
        return D.assertNever(e);
    }
  }
  function F_(e) {
    switch (e.kind) {
      case 79:
      case 10:
      case 14:
      case 8:
        return !0;
      default:
        return !1;
    }
  }
  function B_(e) {
    return ng(e) ? Pr(e) : e.text;
  }
  function VI(e) {
    return ng(e) ? e.escapedText : oc(e.text);
  }
  function v8e(e) {
    return `__@${yo(e)}@${e.escapedName}`;
  }
  function IN(e, t) {
    return `__#${yo(e)}@${t}`;
  }
  function kN(e) {
    return ba(e.escapedName, "__@");
  }
  function Sue(e) {
    return ba(e.escapedName, "__#");
  }
  function b8e(e) {
    return e.kind === 79 && e.escapedText === "Symbol";
  }
  function xue(e) {
    return Ve(e) ? Pr(e) === "__proto__" : Go(e) && e.text === "__proto__";
  }
  function jI(e, t) {
    switch (e = hu(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 _z(e) {
    switch (e.kind) {
      case 299:
        return !xue(e.name);
      case 300:
        return !!e.objectAssignmentInitializer;
      case 257:
        return Ve(e.name) && !!e.initializer;
      case 166:
        return Ve(e.name) && !!e.initializer && !e.dotDotDotToken;
      case 205:
        return Ve(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 Ve(e.left);
        }
        break;
      case 274:
        return !0;
    }
    return !1;
  }
  function qf(e, t) {
    if (!_z(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 pz(e) {
    return e.escapedText === "push" || e.escapedText === "unshift";
  }
  function hT(e) {
    return Om(e).kind === 166;
  }
  function Om(e) {
    for (; e.kind === 205; )
      e = e.parent.parent;
    return e;
  }
  function mz(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 Ys(e) {
    return Yp(e.pos) || Yp(e.end);
  }
  function E8e(e) {
    return ga(e, Hi) || e;
  }
  function hz(e) {
    const t = yz(e), r = e.kind === 211 && e.arguments !== void 0;
    return gz(e.kind, t, r);
  }
  function gz(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 m3(e) {
    const t = yz(e), r = e.kind === 211 && e.arguments !== void 0;
    return wN(e.kind, t, r);
  }
  function yz(e) {
    return e.kind === 223 ? e.operatorToken.kind : e.kind === 221 || e.kind === 222 ? e.operator : e.kind;
  }
  function wN(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 DN(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 DN(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 RN(e) {
    return yn(e, (t) => {
      switch (t.kind) {
        case 291:
          return !!t.expression;
        case 11:
          return !t.containsOnlyTriviaWhiteSpaces;
        default:
          return !0;
      }
    });
  }
  function XA() {
    let e = [];
    const t = [], r = /* @__PURE__ */ new Map();
    let i = !1;
    return {
      add: s,
      lookup: o,
      getGlobalDiagnostics: l,
      getDiagnostics: f
    };
    function o(d) {
      let y;
      if (d.file ? y = r.get(d.file.fileName) : y = e, !y)
        return;
      const h = pv(y, d, pc, C3);
      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), _v(t, d.file.fileName, ku))) : (i && (i = !1, e = e.slice()), y = e), _v(y, d, C3);
    }
    function l() {
      return i = !0, e;
    }
    function f(d) {
      if (d)
        return r.get(d) || [];
      const y = Zb(t, (h) => r.get(h));
      return e.length && y.unshift(...e), y;
    }
  }
  function T8e(e) {
    return e.replace(Hde, "\\${");
  }
  function vz(e) {
    return e && !!(vx(e) ? e.templateFlags : e.head.templateFlags || kt(e.templateSpans, (t) => !!t.literal.templateFlags));
  }
  function Aue(e) {
    return "\\u" + ("0000" + e.toString(16).toUpperCase()).slice(-4);
  }
  function S8e(e, t, r) {
    if (e.charCodeAt(0) === 0) {
      const i = r.charCodeAt(t + e.length);
      return i >= 48 && i <= 57 ? "\\x00" : "\\0";
    }
    return Jde.get(e) || Aue(e.charCodeAt(0));
  }
  function ax(e, t) {
    const r = t === 96 ? qde : t === 39 ? zde : Wde;
    return e.replace(r, S8e);
  }
  function NN(e, t) {
    return e = ax(e, t), Cq.test(e) ? e.replace(Cq, (r) => Aue(r.charCodeAt(0))) : e;
  }
  function x8e(e) {
    return "&#x" + e.toString(16).toUpperCase() + ";";
  }
  function A8e(e) {
    return e.charCodeAt(0) === 0 ? "&#0;" : Yde.get(e) || x8e(e.charCodeAt(0));
  }
  function bz(e, t) {
    const r = t === 39 ? Xde : Kde;
    return e.replace(r, A8e);
  }
  function G_(e) {
    const t = e.length;
    return t >= 2 && e.charCodeAt(0) === e.charCodeAt(t - 1) && C8e(e.charCodeAt(0)) ? e.substring(1, t - 1) : e;
  }
  function C8e(e) {
    return e === 39 || e === 34 || e === 96;
  }
  function HI(e) {
    const t = e.charCodeAt(0);
    return t >= 97 && t <= 122 || uu(e, "-") || uu(e, ":");
  }
  function h3(e) {
    const t = sC[1];
    for (let r = sC.length; r <= e; r++)
      sC.push(sC[r - 1] + t);
    return sC[e];
  }
  function YA() {
    return sC[1].length;
  }
  function ON() {
    return uu(De, "-dev") || uu(De, "-insiders");
  }
  function PN(e) {
    var t, r, i, o, s, l = !1;
    function f(k) {
      const B = IR(k);
      B.length > 1 ? (o = o + B.length - 1, s = t.length - k.length + Ho(B), i = s - t.length === 0) : i = !1;
    }
    function d(k) {
      k && k.length && (i && (k = h3(r) + k, i = !1), t += k, f(k));
    }
    function y(k) {
      k && (l = !1), d(k);
    }
    function h(k) {
      k && (l = !0), d(k);
    }
    function b() {
      t = "", r = 0, i = !0, o = 0, s = 0, l = !1;
    }
    function A(k) {
      k !== void 0 && (t += k, f(k), l = !1);
    }
    function L(k) {
      k && k.length && y(k);
    }
    function I(k) {
      (!i || k) && (t += e, o++, s = t.length, i = !0, l = !1);
    }
    function O() {
      return i ? t.length : t.length + e.length;
    }
    return b(), {
      write: y,
      rawWrite: A,
      writeLiteral: L,
      writeLine: I,
      increaseIndent: () => {
        r++;
      },
      decreaseIndent: () => {
        r--;
      },
      getIndent: () => r,
      getTextPos: () => t.length,
      getLine: () => o,
      getColumn: () => i ? r * YA() : t.length - s,
      getText: () => t,
      isAtStartOfLine: () => i,
      hasTrailingComment: () => l,
      hasTrailingWhitespace: () => !!t.length && tg(t.charCodeAt(t.length - 1)),
      clear: b,
      writeKeyword: y,
      writeOperator: y,
      writeParameter: y,
      writeProperty: y,
      writePunctuation: y,
      writeSpace: y,
      writeStringLiteral: y,
      writeSymbol: (k, B) => y(k),
      writeTrailingSemicolon: y,
      writeComment: h,
      getTextPosWithWriteLine: O
    };
  }
  function Ez(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 MN(e) {
    return e.useCaseSensitiveFileNames ? e.useCaseSensitiveFileNames() : !1;
  }
  function q0(e) {
    return Zl(MN(e));
  }
  function g3(e, t, r) {
    return t.moduleName || Tz(e, t.fileName, r && r.fileName);
  }
  function Cue(e, t) {
    return e.getCanonicalFileName(Da(t, e.getCurrentDirectory()));
  }
  function Lue(e, t, r) {
    const i = t.getExternalModuleFileFromDeclaration(r);
    if (!i || i.isDeclarationFile)
      return;
    const o = UA(r);
    if (!(o && Es(o) && !vf(o.text) && Cue(e, i.path).indexOf(Cue(e, wu(e.getCommonSourceDirectory()))) === -1))
      return g3(e, i);
  }
  function Tz(e, t, r) {
    const i = (d) => e.getCanonicalFileName(d), o = js(r ? _i(r) : e.getCommonSourceDirectory(), e.getCurrentDirectory(), i), s = Da(t, e.getCurrentDirectory()), l = WS(o, s, o, i, !1), f = Md(l);
    return r ? u1(f) : f;
  }
  function Iue(e, t, r) {
    const i = t.getCompilerOptions();
    let o;
    return i.outDir ? o = Md(y3(e, t, i.outDir)) : o = Md(e), o + r;
  }
  function kue(e, t) {
    return Sz(e, t.getCompilerOptions(), t.getCurrentDirectory(), t.getCommonSourceDirectory(), (r) => t.getCanonicalFileName(r));
  }
  function Sz(e, t, r, i, o) {
    const s = t.declarationDir || t.outDir, l = s ? Lz(e, s, r, i, o) : e, f = xz(l);
    return Md(l) + f;
  }
  function xz(e) {
    return bl(e, [".mjs", ".mts"]) ? ".d.mts" : bl(e, [".cjs", ".cts"]) ? ".d.cts" : bl(e, [".json"]) ? ".d.json.ts" : ".d.ts";
  }
  function wue(e) {
    return bl(e, [".d.mts", ".mjs", ".mts"]) ? [".mts", ".mjs"] : bl(e, [".d.cts", ".cjs", ".cts"]) ? [".cts", ".cjs"] : bl(e, [".d.json.ts"]) ? [".json"] : [".tsx", ".ts", ".jsx", ".js"];
  }
  function Hs(e) {
    return e.outFile || e.out;
  }
  function Az(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 Cz(e, t, r) {
    const i = e.getCompilerOptions();
    if (Hs(i)) {
      const o = tu(i), s = i.emitDeclarationOnly || o === 2 || o === 4;
      return yn(e.getSourceFiles(), (l) => (s || !Yc(l)) && ox(l, e, r));
    } else {
      const o = t === void 0 ? e.getSourceFiles() : [t];
      return yn(o, (s) => ox(s, e, r));
    }
  }
  function ox(e, t, r) {
    return !(t.getCompilerOptions().noEmitForJsFiles && Xu(e)) && !e.isDeclarationFile && !t.isSourceFileFromExternalLibrary(e) && (r || !(d_(e) && t.getResolvedProjectReferenceToRedirect(e.fileName)) && !t.isSourceOfProjectReferenceRedirect(e.fileName));
  }
  function y3(e, t, r) {
    return Lz(e, r, t.getCurrentDirectory(), t.getCommonSourceDirectory(), (i) => t.getCanonicalFileName(i));
  }
  function Lz(e, t, r, i, o) {
    let s = Da(e, r);
    return s = o(s).indexOf(o(i)) === 0 ? s.substring(i.length) : s, Pi(t, s);
  }
  function WI(e, t, r, i, o, s, l) {
    e.writeFile(r, i, o, (f) => {
      t.add(Os(_.Could_not_write_file_0_Colon_1, r, f));
    }, s, l);
  }
  function Due(e, t, r) {
    if (e.length > Wp(e) && !r(e)) {
      const i = _i(e);
      Due(i, t, r), t(e);
    }
  }
  function Iz(e, t, r, i, o, s) {
    try {
      i(e, t, r);
    } catch {
      Due(_i(Wo(e)), o, s), i(e, t, r);
    }
  }
  function zI(e, t) {
    const r = eg(e);
    return uI(r, t);
  }
  function gT(e, t) {
    return uI(e, t);
  }
  function yh(e) {
    return cn(e.members, (t) => Hc(t) && u_(t.body));
  }
  function qI(e) {
    if (e && e.parameters.length > 0) {
      const t = e.parameters.length === 2 && A1(e.parameters[0]);
      return e.parameters[t ? 1 : 0];
    }
  }
  function Rue(e) {
    const t = qI(e);
    return t && t.type;
  }
  function x1(e) {
    if (e.parameters.length && !M1(e)) {
      const t = e.parameters[0];
      if (A1(t))
        return t;
    }
  }
  function A1(e) {
    return yT(e.name);
  }
  function yT(e) {
    return !!e && e.kind === 79 && kz(e);
  }
  function sx(e) {
    if (!yT(e))
      return !1;
    for (; Sd(e.parent) && e.parent.left === e; )
      e = e.parent;
    return e.parent.kind === 183;
  }
  function kz(e) {
    return e.escapedText === "this";
  }
  function vT(e, t) {
    let r, i, o, s;
    return Iv(t) ? (r = t, t.kind === 174 ? o = t : t.kind === 175 ? s = t : D.fail("Accessor has wrong kind")) : ze(e, (l) => {
      if (U0(l) && za(l) === za(t)) {
        const f = S1(l.name), d = S1(t.name);
        f === d && (r ? i || (i = l) : r = l, l.kind === 174 && !o && (o = l), l.kind === 175 && !s && (s = l));
      }
    }), {
      firstAccessor: r,
      secondAccessor: i,
      getAccessor: o,
      setAccessor: s
    };
  }
  function Kl(e) {
    if (!fr(e) && ml(e))
      return;
    const t = e.type;
    return t || !fr(e) ? t : SM(e) ? e.typeExpression && e.typeExpression.type : bv(e);
  }
  function Nue(e) {
    return e.type;
  }
  function mp(e) {
    return M1(e) ? e.type && e.type.typeExpression && e.type.typeExpression.type : e.type || (fr(e) ? FR(e) : void 0);
  }
  function v3(e) {
    return wo(f1(e), (t) => L8e(t) ? t.typeParameters : void 0);
  }
  function L8e(e) {
    return yp(e) && !(e.parent.kind === 323 && (e.parent.tags.some(f_) || e.parent.tags.some(Ok)));
  }
  function Oue(e) {
    const t = qI(e);
    return t && Kl(t);
  }
  function Pue(e, t, r, i) {
    Mue(e, t, r.pos, i);
  }
  function Mue(e, t, r, i) {
    i && i.length && r !== i[0].pos && gT(e, r) !== gT(e, i[0].pos) && t.writeLine();
  }
  function Fue(e, t, r, i) {
    r !== i && gT(e, r) !== gT(e, i) && t.writeLine();
  }
  function Bue(e, t, r, i, o, s, l, 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, l), y.hasTrailingNewLine ? r.writeLine() : d = !0;
      d && s && r.writeSpace(" ");
    }
  }
  function Gue(e, t, r, i, o, s, l) {
    let f, d;
    if (l ? o.pos === 0 && (f = yn(dh(e, o.pos), y)) : f = dh(e, o.pos), f) {
      const h = [];
      let b;
      for (const A of f) {
        if (b) {
          const L = gT(t, b.end);
          if (gT(t, A.pos) >= L + 2)
            break;
        }
        h.push(A), b = A;
      }
      if (h.length) {
        const A = gT(t, Ho(h).end);
        gT(t, zo(e, o.pos)) >= A + 2 && (Pue(t, r, o, f), Bue(e, t, r, h, !1, !0, s, i), d = { nodePos: o.pos, detachedCommentEndPos: Ho(h).end });
      }
    }
    return d;
    function y(h) {
      return MM(e, h.pos);
    }
  }
  function $A(e, t, r, i, o, s) {
    if (e.charCodeAt(i + 1) === 42) {
      const l = wR(t, i), f = t.length;
      let d;
      for (let y = i, h = l.line; y < o; h++) {
        const b = h + 1 === f ? e.length + 1 : t[h + 1];
        if (y !== i) {
          d === void 0 && (d = Uue(e, t[l.line], i));
          const L = r.getIndent() * YA() - d + Uue(e, y, b);
          if (L > 0) {
            let I = L % YA();
            const O = h3((L - I) / YA());
            for (r.rawWrite(O); I; )
              r.rawWrite(" "), I--;
          } else
            r.rawWrite("");
        }
        I8e(e, o, r, s, y, b), y = b;
      }
    } else
      r.writeComment(e.substring(i, o));
  }
  function I8e(e, t, r, i, o, s) {
    const l = Math.min(t, s - 1), f = o1(e.substring(o, l));
    f ? (r.writeComment(f), l !== t && r.writeLine()) : r.rawWrite(i);
  }
  function Uue(e, t, r) {
    let i = 0;
    for (; t < r && Im(e.charCodeAt(t)); t++)
      e.charCodeAt(t) === 9 ? i += YA() - i % YA() : i++;
    return i;
  }
  function b3(e) {
    return Ru(e) !== 0;
  }
  function Vue(e) {
    return kv(e) !== 0;
  }
  function Pd(e, t) {
    return !!cx(e, t);
  }
  function Kr(e, t) {
    return !!jue(e, t);
  }
  function za(e) {
    return Ml(e) && pl(e) || Lc(e);
  }
  function pl(e) {
    return Kr(e, 32);
  }
  function wz(e) {
    return Pd(e, 16384);
  }
  function C1(e) {
    return Kr(e, 256);
  }
  function Dz(e) {
    return Kr(e, 2);
  }
  function Pm(e) {
    return Kr(e, 128);
  }
  function JI(e) {
    return Pd(e, 64);
  }
  function Jf(e) {
    return Kr(e, 131072);
  }
  function cx(e, t) {
    return Ru(e) & t;
  }
  function jue(e, t) {
    return kv(e) & t;
  }
  function Rz(e, t, r) {
    return e.kind >= 0 && e.kind <= 162 ? 0 : (e.modifierFlagsCache & 536870912 || (e.modifierFlagsCache = Nz(e) | 536870912), t && !(e.modifierFlagsCache & 4096) && (r || fr(e)) && e.parent && (e.modifierFlagsCache |= Wue(e) | 4096), e.modifierFlagsCache & -536875009);
  }
  function Ru(e) {
    return Rz(e, !0);
  }
  function Hue(e) {
    return Rz(e, !0, !0);
  }
  function kv(e) {
    return Rz(e, !1);
  }
  function Wue(e) {
    let t = 0;
    return e.parent && !Oa(e) && (fr(e) && (qce(e) && (t |= 4), Jce(e) && (t |= 8), Kce(e) && (t |= 16), Xce(e) && (t |= 64), Yce(e) && (t |= 16384)), $ce(e) && (t |= 8192)), t;
  }
  function zue(e) {
    return Nz(e) | Wue(e);
  }
  function Nz(e) {
    let t = q_(e) ? Mm(e.modifiers) : 0;
    return (e.flags & 4 || e.kind === 79 && e.flags & 2048) && (t |= 1), t;
  }
  function Mm(e) {
    let t = 0;
    if (e)
      for (const r of e)
        t |= lx(r.kind);
    return t;
  }
  function lx(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 que(e) {
    return e === 56 || e === 55;
  }
  function Jue(e) {
    return que(e) || e === 53;
  }
  function KI(e) {
    return e === 75 || e === 76 || e === 77;
  }
  function Oz(e) {
    return br(e) && KI(e.operatorToken.kind);
  }
  function FN(e) {
    return que(e) || e === 60;
  }
  function BN(e) {
    return br(e) && FN(e.operatorToken.kind);
  }
  function my(e) {
    return e >= 63 && e <= 78;
  }
  function Pz(e) {
    const t = Mz(e);
    return t && !t.isImplements ? t.class : void 0;
  }
  function Mz(e) {
    if (by(e)) {
      if (Bd(e.parent) && li(e.parent.parent))
        return { class: e.parent.parent, isImplements: e.parent.token === 117 };
      if (xC(e.parent)) {
        const t = WA(e.parent);
        if (t && li(t))
          return { class: t, isImplements: !1 };
      }
    }
  }
  function Yu(e, t) {
    return br(e) && (t ? e.operatorToken.kind === 63 : my(e.operatorToken.kind)) && vd(e.left);
  }
  function k8e(e) {
    return Yu(e.parent) && e.parent.left === e;
  }
  function hy(e) {
    if (Yu(e, !0)) {
      const t = e.left.kind;
      return t === 207 || t === 206;
    }
    return !1;
  }
  function GN(e) {
    return Pz(e) !== void 0;
  }
  function jc(e) {
    return e.kind === 79 || UN(e);
  }
  function Sf(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 XI(e) {
    return e.kind === 79 || e.kind === 108 || e.kind === 106 || e.kind === 233 || e.kind === 208 && XI(e.expression) || e.kind === 214 && XI(e.expression);
  }
  function UN(e) {
    return Mr(e) && Ve(e.name) && jc(e.expression);
  }
  function VN(e) {
    if (Mr(e)) {
      const t = VN(e.expression);
      if (t !== void 0)
        return t + "." + Ef(e.name);
    } else if (cc(e)) {
      const t = VN(e.expression);
      if (t !== void 0 && gc(e.argumentExpression))
        return t + "." + S1(e.argumentExpression);
    } else if (Ve(e))
      return ta(e.escapedText);
  }
  function J0(e) {
    return _T(e) && cg(e) === "prototype";
  }
  function YI(e) {
    return e.parent.kind === 163 && e.parent.right === e || e.parent.kind === 208 && e.parent.name === e;
  }
  function Kue(e) {
    return Mr(e.parent) && e.parent.name === e || cc(e.parent) && e.parent.argumentExpression === e;
  }
  function Xue(e) {
    return Sd(e.parent) && e.parent.right === e || Mr(e.parent) && e.parent.name === e || eb(e.parent) && e.parent.right === e;
  }
  function Fz(e) {
    return e.kind === 207 && e.properties.length === 0;
  }
  function Yue(e) {
    return e.kind === 206 && e.elements.length === 0;
  }
  function QA(e) {
    if (!(!w8e(e) || !e.declarations)) {
      for (const t of e.declarations)
        if (t.localSymbol)
          return t.localSymbol;
    }
  }
  function w8e(e) {
    return e && Ie(e.declarations) > 0 && Kr(e.declarations[0], 1024);
  }
  function E3(e) {
    return cn(tfe, (t) => sl(e, t));
  }
  function D8e(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 $ue(e) {
    let t = "";
    const r = D8e(e);
    let i = 0;
    const o = r.length;
    let s, l, f, d;
    for (; i < o; )
      s = r[i] >> 2, l = (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 += w1.charAt(s) + w1.charAt(l) + w1.charAt(f) + w1.charAt(d), i += 3;
    return t;
  }
  function R8e(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 l = e[r];
        for (; (l & 192) === 128; )
          s = s << 6 | l & 63, r++, l = e[r];
        t += String.fromCharCode(s);
      } else
        t += String.fromCharCode(o), r++;
    }
    return t;
  }
  function Que(e, t) {
    return e && e.base64encode ? e.base64encode(t) : $ue(t);
  }
  function Zue(e, t) {
    if (e && e.base64decode)
      return e.base64decode(t);
    const r = t.length, i = [];
    let o = 0;
    for (; o < r && t.charCodeAt(o) !== w1.charCodeAt(64); ) {
      const s = w1.indexOf(t[o]), l = w1.indexOf(t[o + 1]), f = w1.indexOf(t[o + 2]), d = w1.indexOf(t[o + 3]), y = (s & 63) << 2 | l >> 4 & 3, h = (l & 15) << 4 | f >> 2 & 15, b = (f & 3) << 6 | d & 63;
      h === 0 && f !== 0 ? i.push(y) : b === 0 && d !== 0 ? i.push(y, h) : i.push(y, h, b), o += 4;
    }
    return R8e(i);
  }
  function Bz(e, t) {
    const r = Ua(t) ? t : t.readFile(e);
    if (!r)
      return;
    const i = zJ(e, r);
    return i.error ? void 0 : i.config;
  }
  function $I(e, t) {
    return Bz(e, t) || {};
  }
  function Kp(e, t) {
    return !t.directoryExists || t.directoryExists(e);
  }
  function K0(e) {
    switch (e.newLine) {
      case 0:
        return $de;
      case 1:
      case void 0:
        return Qde;
    }
  }
  function __(e, t = e) {
    return D.assert(t >= e || t === -1), { pos: e, end: t };
  }
  function T3(e, t) {
    return __(e.pos, t);
  }
  function X0(e, t) {
    return __(t, e.end);
  }
  function wv(e) {
    const t = q_(e) ? $i(e.modifiers, Nu) : void 0;
    return t && !Yp(t.end) ? X0(e, t.end) : e;
  }
  function Xp(e) {
    if (Za(e) || nl(e))
      return X0(e, e.name.pos);
    const t = q_(e) ? ec(e.modifiers) : void 0;
    return t && !Yp(t.end) ? X0(e, t.end) : wv(e);
  }
  function N8e(e) {
    return e.pos === e.end;
  }
  function Gz(e, t) {
    return __(e, e + ho(t).length);
  }
  function bT(e, t) {
    return tde(e, e, t);
  }
  function S3(e, t, r) {
    return p_(QI(e, r, !1), QI(t, r, !1), r);
  }
  function ede(e, t, r) {
    return p_(e.end, t.end, r);
  }
  function tde(e, t, r) {
    return p_(QI(e, r, !1), t.end, r);
  }
  function jN(e, t, r) {
    return p_(e.end, QI(t, r, !1), r);
  }
  function Uz(e, t, r, i) {
    const o = QI(t, r, i);
    return dI(r, e.end, o);
  }
  function O8e(e, t, r) {
    return dI(r, e.end, t.end);
  }
  function nde(e, t) {
    return !p_(e.pos, e.end, t);
  }
  function p_(e, t, r) {
    return dI(r, e, t) === 0;
  }
  function QI(e, t, r) {
    return Yp(e.pos) ? -1 : zo(t.text, e.pos, !1, r);
  }
  function rde(e, t, r, i) {
    const o = zo(r.text, e, !1, i), s = P8e(o, t, r);
    return dI(r, s ?? t, o);
  }
  function ide(e, t, r, i) {
    const o = zo(r.text, e, !1, i);
    return dI(r, e, Math.min(t, o));
  }
  function P8e(e, t = 0, r) {
    for (; e-- > t; )
      if (!tg(r.text.charCodeAt(e)))
        return e;
  }
  function HN(e) {
    const t = ga(e);
    if (t)
      switch (t.parent.kind) {
        case 263:
        case 264:
          return t === t.parent.name;
      }
    return !1;
  }
  function ZI(e) {
    return yn(e.declarations, Vz);
  }
  function Vz(e) {
    return zi(e) && e.initializer !== void 0;
  }
  function M8e(e) {
    return e.watch && Rs(e, "watch");
  }
  function Fm(e) {
    e.close();
  }
  function Cc(e) {
    return e.flags & 33554432 ? e.links.checkFlags : 0;
  }
  function Kf(e, t = !1) {
    if (e.valueDeclaration) {
      const r = t && e.declarations && cn(e.declarations, Yf) || e.flags & 32768 && cn(e.declarations, H_) || e.valueDeclaration, i = uy(r);
      return e.parent && e.parent.flags & 32 ? i : i & -29;
    }
    if (Cc(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 af(e, t) {
    return e.flags & 2097152 ? t.getAliasedSymbol(e) : e;
  }
  function ek(e) {
    return e.exportSymbol ? e.exportSymbol.flags | e.flags : e.flags;
  }
  function jz(e) {
    return ZA(e) === 1;
  }
  function tk(e) {
    return ZA(e) !== 0;
  }
  function ZA(e) {
    const { parent: t } = e;
    if (!t)
      return 0;
    switch (t.kind) {
      case 214:
        return ZA(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 && my(s.kind) ? s.kind === 63 ? 1 : r() : 0;
      case 208:
        return t.name !== e ? 0 : ZA(t);
      case 299: {
        const l = ZA(t.parent);
        return e === t.name ? F8e(l) : l;
      }
      case 300:
        return e === t.objectAssignmentInitializer ? 0 : ZA(t.parent);
      case 206:
        return ZA(t);
      default:
        return 0;
    }
    function r() {
      return t.parent && Lv(t.parent).kind === 241 ? 1 : 2;
    }
  }
  function F8e(e) {
    switch (e) {
      case 0:
        return 1;
      case 1:
        return 0;
      case 2:
        return 2;
      default:
        return D.assertNever(e);
    }
  }
  function Hz(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 (!Hz(e[r], t[r]))
          return !1;
      } else if (typeof e[r] != "function" && e[r] !== t[r])
        return !1;
    return !0;
  }
  function Xf(e, t) {
    e.forEach(t), e.clear();
  }
  function ug(e, t, r) {
    const { onDeleteValue: i, onExistingValue: o } = r;
    e.forEach((s, l) => {
      const f = t.get(l);
      f === void 0 ? (e.delete(l), i(s, l)) : o && o(s, f, l);
    });
  }
  function eC(e, t, r) {
    ug(e, t, r);
    const { createNewValue: i } = r;
    t.forEach((o, s) => {
      e.has(s) || e.set(s, i(s, o));
    });
  }
  function ade(e) {
    if (e.flags & 32) {
      const t = dg(e);
      return !!t && Kr(t, 256);
    }
    return !1;
  }
  function dg(e) {
    var t;
    return (t = e.declarations) == null ? void 0 : t.find(li);
  }
  function Zr(e) {
    return e.flags & 3899393 ? e.objectFlags : 0;
  }
  function B8e(e, t) {
    return !!Zh(e, (r) => t(r) ? !0 : void 0);
  }
  function x3(e) {
    return !!e && !!e.declarations && !!e.declarations[0] && kO(e.declarations[0]);
  }
  function ode({ moduleSpecifier: e }) {
    return Go(e) ? e.text : El(e);
  }
  function Wz(e) {
    let t;
    return Ra(e, (r) => {
      u_(r) && (t = r);
    }, (r) => {
      for (let i = r.length - 1; i >= 0; i--)
        if (u_(r[i])) {
          t = r[i];
          break;
        }
    }), t;
  }
  function hp(e, t, r = !0) {
    return e.has(t) ? !1 : (e.set(t, r), !0);
  }
  function ux(e) {
    return li(e) || Qu(e) || of(e);
  }
  function zz(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 sc(e) {
    return e.kind === 208 || e.kind === 209;
  }
  function sde(e) {
    return e.kind === 208 ? e.name : (D.assert(e.kind === 209), e.argumentExpression);
  }
  function cde(e) {
    switch (e.kind) {
      case "text":
      case "internal":
        return !0;
      default:
        return !1;
    }
  }
  function qz(e) {
    return e.kind === 272 || e.kind === 276;
  }
  function nk(e) {
    for (; sc(e); )
      e = e.expression;
    return e;
  }
  function G8e(e, t) {
    if (sc(e.parent) && Kue(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 (Ve(i.argumentExpression) || Es(i.argumentExpression)) {
          const o = t(i.argumentExpression);
          if (o !== void 0)
            return o;
        } else
          return;
      if (sc(i.expression))
        return r(i.expression);
      if (Ve(i.expression))
        return t(i.expression);
    }
  }
  function rk(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 U8e(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 V8e(e, t) {
    this.flags = t, (D.isDebugging || yi) && (this.checker = e);
  }
  function j8e(e, t) {
    this.flags = t, D.isDebugging && (this.checker = e);
  }
  function Jz(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 H8e(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 W8e(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 z8e(e, t, r) {
    this.fileName = e, this.text = t, this.skipTrivia = r || ((i) => i);
  }
  function lde(e) {
    Lq.push(e), e(Bl);
  }
  function ude(e) {
    Object.assign(Bl, e), ze(Lq, (t) => t(Bl));
  }
  function vh(e, t, r = 0) {
    return e.replace(/{(\d+)}/g, (i, o) => "" + D.checkDefined(t[+o + r]));
  }
  function dde(e) {
    oO = e;
  }
  function fde(e) {
    !oO && e && (oO = e());
  }
  function Ro(e) {
    return oO && oO[e.key] || e.message;
  }
  function tC(e, t, r, i) {
    HW(void 0, t, r);
    let o = Ro(i);
    return arguments.length > 4 && (o = vh(o, arguments, 4)), {
      file: void 0,
      start: t,
      length: r,
      messageText: o,
      category: i.category,
      code: i.code,
      reportsUnnecessary: i.reportsUnnecessary,
      fileName: e
    };
  }
  function q8e(e) {
    return e.file === void 0 && e.start !== void 0 && e.length !== void 0 && typeof e.fileName == "string";
  }
  function _de(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)
        q8e(s) && s.fileName === r ? (D.assertLessThanOrEqual(s.start, i), D.assertLessThanOrEqual(s.start + s.length, i), o.relatedInformation.push(_de(s, t))) : o.relatedInformation.push(s);
    }
    return o;
  }
  function dx(e, t) {
    const r = [];
    for (const i of e)
      r.push(_de(i, t));
    return r;
  }
  function Il(e, t, r, i) {
    HW(e, t, r);
    let o = Ro(i);
    return arguments.length > 4 && (o = vh(o, arguments, 4)), {
      file: e,
      start: t,
      length: r,
      messageText: o,
      category: i.category,
      code: i.code,
      reportsUnnecessary: i.reportsUnnecessary,
      reportsDeprecated: i.reportsDeprecated
    };
  }
  function Kz(e, t) {
    let r = Ro(t);
    return arguments.length > 2 && (r = vh(r, arguments, 2)), r;
  }
  function Os(e) {
    let t = Ro(e);
    return arguments.length > 1 && (t = vh(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 A3(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 ka(e, t) {
    let r = Ro(t);
    return arguments.length > 2 && (r = vh(r, arguments, 2)), {
      messageText: r,
      category: t.category,
      code: t.code,
      next: e === void 0 || Array.isArray(e) ? e : [e]
    };
  }
  function pde(e, t) {
    let r = e;
    for (; r.next; )
      r = r.next[0];
    r.next = [t];
  }
  function mde(e) {
    return e.file ? e.file.path : void 0;
  }
  function ik(e, t) {
    return C3(e, t) || J8e(e, t) || 0;
  }
  function C3(e, t) {
    return ku(mde(e), mde(t)) || Vs(e.start, t.start) || Vs(e.length, t.length) || Vs(e.code, t.code) || hde(e.messageText, t.messageText) || 0;
  }
  function J8e(e, t) {
    return !e.relatedInformation && !t.relatedInformation ? 0 : e.relatedInformation && t.relatedInformation ? Vs(e.relatedInformation.length, t.relatedInformation.length) || ze(e.relatedInformation, (r, i) => {
      const o = t.relatedInformation[i];
      return ik(r, o);
    }) || 0 : e.relatedInformation ? -1 : 1;
  }
  function hde(e, t) {
    if (typeof e == "string" && typeof t == "string")
      return ku(e, t);
    if (typeof e == "string")
      return -1;
    if (typeof t == "string")
      return 1;
    let r = ku(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 = hde(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 WN(e) {
    return e === 4 || e === 2 || e === 1 || e === 6 ? 1 : 0;
  }
  function gde(e) {
    if (e.transformFlags & 2)
      return Ku(e) || Dx(e) ? e : Ra(e, gde);
  }
  function K8e(e) {
    return e.isDeclarationFile ? void 0 : gde(e);
  }
  function X8e(e) {
    return (e.impliedNodeFormat === 99 || bl(e.fileName, [".cjs", ".cts", ".mjs", ".mts"])) && !e.isDeclarationFile ? !0 : void 0;
  }
  function zN(e) {
    switch (yde(e)) {
      case 3:
        return (o) => {
          o.externalModuleIndicator = UO(o) || !o.isDeclarationFile || void 0;
        };
      case 1:
        return (o) => {
          o.externalModuleIndicator = UO(o);
        };
      case 2:
        const t = [UO];
        (e.jsx === 4 || e.jsx === 5) && t.push(K8e), t.push(X8e);
        const r = Am(...t);
        return (o) => void (o.externalModuleIndicator = r(o));
    }
  }
  function $o(e) {
    var t;
    return (t = e.target) != null ? t : e.module === 100 && 9 || e.module === 199 && 99 || 1;
  }
  function tu(e) {
    return typeof e.module == "number" ? e.module : $o(e) >= 2 ? 5 : 1;
  }
  function Xz(e) {
    return e >= 5 && e <= 99;
  }
  function yc(e) {
    let t = e.moduleResolution;
    if (t === void 0)
      switch (tu(e)) {
        case 1:
          t = 2;
          break;
        case 100:
          t = 3;
          break;
        case 199:
          t = 99;
          break;
        default:
          t = 1;
          break;
      }
    return t;
  }
  function yde(e) {
    return e.moduleDetection || (tu(e) === 100 || tu(e) === 199 ? 3 : 2);
  }
  function L3(e) {
    switch (tu(e)) {
      case 1:
      case 2:
      case 5:
      case 6:
      case 7:
      case 99:
      case 100:
      case 199:
        return !0;
      default:
        return !1;
    }
  }
  function U_(e) {
    return !!(e.isolatedModules || e.verbatimModuleSyntax);
  }
  function I3(e) {
    return e.verbatimModuleSyntax || e.isolatedModules && e.preserveValueImports;
  }
  function vde(e) {
    return e.allowUnreachableCode === !1;
  }
  function bde(e) {
    return e.allowUnusedLabels === !1;
  }
  function k3(e) {
    return !!(j_(e) && e.declarationMap);
  }
  function V_(e) {
    if (e.esModuleInterop !== void 0)
      return e.esModuleInterop;
    switch (tu(e)) {
      case 100:
      case 199:
        return !0;
    }
  }
  function ET(e) {
    return e.allowSyntheticDefaultImports !== void 0 ? e.allowSyntheticDefaultImports : V_(e) || tu(e) === 4 || yc(e) === 100;
  }
  function fx(e) {
    return e >= 3 && e <= 99 || e === 100;
  }
  function Yz(e) {
    const t = yc(e);
    if (!fx(t))
      return !1;
    if (e.resolvePackageJsonExports !== void 0)
      return e.resolvePackageJsonExports;
    switch (t) {
      case 3:
      case 99:
      case 100:
        return !0;
    }
    return !1;
  }
  function Y8e(e) {
    const t = yc(e);
    if (!fx(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 : yc(e) === 100;
  }
  function j_(e) {
    return !!(e.declaration || e.composite);
  }
  function L1(e) {
    return !!(e.preserveConstEnums || U_(e));
  }
  function qN(e) {
    return !!(e.incremental || e.composite);
  }
  function m_(e, t) {
    return e[t] === void 0 ? !!e.strict : !!e[t];
  }
  function JN(e) {
    return e.allowJs === void 0 ? !!e.checkJs : e.allowJs;
  }
  function KN(e) {
    return e.useDefineForClassFields === void 0 ? $o(e) >= 9 : e.useDefineForClassFields;
  }
  function Ede(e, t) {
    return IA(t, e, sK);
  }
  function Tde(e, t) {
    return IA(t, e, cK);
  }
  function Sde(e, t) {
    return IA(t, e, lK);
  }
  function w3(e, t) {
    return t.strictFlag ? m_(e, t.name) : e[t.name];
  }
  function $z(e) {
    const t = e.jsx;
    return t === 2 || t === 4 || t === 5;
  }
  function D3(e, t) {
    const r = t == null ? void 0 : t.pragmas.get("jsximportsource"), i = Ba(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 R3(e, t) {
    return e ? `${e}/${t.jsx === 5 ? "jsx-dev-runtime" : "jsx-runtime"}` : void 0;
  }
  function Qz(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 xde(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 = js(f, e, t);
        fk(y) || (y = wu(y), d !== !1 && !(r != null && r.has(y)) && (i || (i = l_())).add(wu(d.realPath), f), (r || (r = /* @__PURE__ */ new Map())).set(y, d));
      },
      setSymlinksFromResolutions(f, d) {
        var y, h;
        D.assert(!s), s = !0;
        for (const b of f)
          (y = b.resolvedModules) == null || y.forEach((A) => l(this, A.resolvedModule)), (h = b.resolvedTypeReferenceDirectiveNames) == null || h.forEach((A) => l(this, A.resolvedTypeReferenceDirective));
        d.forEach((b) => l(this, b.resolvedTypeReferenceDirective));
      },
      hasProcessedResolutions: () => s
    };
    function l(f, d) {
      if (!d || !d.originalPath || !d.resolvedFileName)
        return;
      const { resolvedFileName: y, originalPath: h } = d;
      f.setSymlinkedFile(js(h, e, t), y);
      const [b, A] = $8e(y, h, e, t) || rt;
      b && A && f.setSymlinkedDirectory(A, { real: b, realPath: js(b, e, t) });
    }
  }
  function $8e(e, t, r, i) {
    const o = ad(Da(e, r)), s = ad(Da(t, r));
    let l = !1;
    for (; o.length >= 2 && s.length >= 2 && !Ade(o[o.length - 2], i) && !Ade(s[s.length - 2], i) && i(o[o.length - 1]) === i(s[s.length - 1]); )
      o.pop(), s.pop(), l = !0;
    return l ? [l1(o), l1(s)] : void 0;
  }
  function Ade(e, t) {
    return e !== void 0 && (t(e) === "node_modules" || ba(e, "@"));
  }
  function Q8e(e) {
    return NH(e.charCodeAt(0)) ? e.slice(1) : void 0;
  }
  function Zz(e, t, r) {
    const i = vj(e, t, r);
    return i === void 0 ? void 0 : Q8e(i);
  }
  function Z8e(e) {
    return e.replace(H3, e6e);
  }
  function e6e(e) {
    return "\\" + e;
  }
  function ak(e, t, r) {
    const i = N3(e, t, r);
    return !i || !i.length ? void 0 : `^(${i.map((l) => `(${l})`).join("|")})${r === "exclude" ? "($|/)" : "$"}`;
  }
  function N3(e, t, r) {
    if (!(e === void 0 || e.length === 0))
      return wo(e, (i) => i && Cde(i, t, r, Rq[r]));
  }
  function eq(e) {
    return !/[.*?]/.test(e);
  }
  function tq(e, t, r) {
    const i = e && Cde(e, t, r, Rq[r]);
    return i && `^(${i})${r === "exclude" ? "($|/)" : "$"}`;
  }
  function Cde(e, t, r, { singleAsteriskRegexFragment: i, doubleAsteriskRegexFragment: o, replaceWildcardCharacter: s }) {
    let l = "", f = !1;
    const d = xR(e, t), y = Ho(d);
    if (r !== "exclude" && y === "**")
      return;
    d[0] = $E(d[0]), eq(y) && d.push("**", "*");
    let h = 0;
    for (let b of d) {
      if (b === "**")
        l += o;
      else if (r === "directories" && (l += "(", h++), f && (l += Ns), r !== "exclude") {
        let A = "";
        b.charCodeAt(0) === 42 ? (A += "([^./]" + i + ")?", b = b.substr(1)) : b.charCodeAt(0) === 63 && (A += "[^./]", b = b.substr(1)), A += b.replace(H3, s), A !== b && (l += W3), l += A;
      } else
        l += b.replace(H3, s);
      f = !0;
    }
    for (; h > 0; )
      l += ")?", h--;
    return l;
  }
  function nq(e, t) {
    return e === "*" ? t : e === "?" ? "[^/]" : "\\" + e;
  }
  function ok(e, t, r, i, o) {
    e = Wo(e), o = Wo(o);
    const s = Pi(o, e);
    return {
      includeFilePatterns: en(N3(r, s, "files"), (l) => `^${l}$`),
      includeFilePattern: ak(r, s, "files"),
      includeDirectoryPattern: ak(r, s, "directories"),
      excludePattern: ak(t, s, "exclude"),
      basePaths: t6e(e, r, i)
    };
  }
  function Dv(e, t) {
    return new RegExp(e, t ? "" : "i");
  }
  function rq(e, t, r, i, o, s, l, f, d) {
    e = Wo(e), s = Wo(s);
    const y = ok(e, r, i, o, s), h = y.includeFilePatterns && y.includeFilePatterns.map((B) => Dv(B, o)), b = y.includeDirectoryPattern && Dv(y.includeDirectoryPattern, o), A = y.excludePattern && Dv(y.excludePattern, o), L = h ? h.map(() => []) : [[]], I = /* @__PURE__ */ new Map(), O = Zl(o);
    for (const B of y.basePaths)
      k(B, Pi(s, B), l);
    return id(L);
    function k(B, V, H) {
      const te = O(d(V));
      if (I.has(te))
        return;
      I.set(te, !0);
      const { files: X, directories: Y } = f(B);
      for (const P of eI(X, ku)) {
        const de = Pi(B, P), ne = Pi(V, P);
        if (!(t && !bl(de, t)) && !(A && A.test(ne)))
          if (!h)
            L[0].push(de);
          else {
            const ye = Qi(h, (ie) => ie.test(ne));
            ye !== -1 && L[ye].push(de);
          }
      }
      if (!(H !== void 0 && (H--, H === 0)))
        for (const P of eI(Y, ku)) {
          const de = Pi(B, P), ne = Pi(V, P);
          (!b || b.test(ne)) && (!A || !A.test(ne)) && k(de, ne, H);
        }
    }
  }
  function t6e(e, t, r) {
    const i = [e];
    if (t) {
      const o = [];
      for (const s of t) {
        const l = Cm(s) ? s : Wo(Pi(e, s));
        o.push(n6e(l));
      }
      o.sort(R4(!r));
      for (const s of o)
        Rn(i, (l) => !gv(l, s, e, !r)) && i.push(s);
    }
    return i;
  }
  function n6e(e) {
    const t = Ma(e, Zde);
    return t < 0 ? gA(e) ? $E(_i(e)) : e : e.substring(0, e.lastIndexOf(Ns, t));
  }
  function O3(e, t) {
    return t || iq(e) || 3;
  }
  function iq(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 sk(e, t) {
    const r = e && JN(e);
    if (!t || t.length === 0)
      return r ? sO : cC;
    const i = r ? sO : cC, o = id(i);
    return [
      ...i,
      ...fa(t, (l) => l.scriptKind === 7 || r && r6e(l.scriptKind) && o.indexOf(l.extension) === -1 ? [l.extension] : void 0)
    ];
  }
  function XN(e, t) {
    return !e || !TT(e) ? t : t === sO ? nfe : t === cC ? efe : [...t, [".json"]];
  }
  function r6e(e) {
    return e === 1 || e === 2;
  }
  function _x(e) {
    return kt(hk, (t) => sl(e, t));
  }
  function YN(e) {
    return kt(Nq, (t) => sl(e, t));
  }
  function Lde({ imports: e }, t = Am(_x, YN)) {
    return sn(e, ({ text: r }) => vf(r) ? t(r) : void 0) || !1;
  }
  function aq(e, t, r, i) {
    if (e === "js" || t === 99)
      return qk(r) && o() !== 2 ? 3 : 2;
    if (e === "minimal")
      return 0;
    if (e === "index")
      return 1;
    if (!qk(r))
      return Lde(i) ? 2 : 0;
    return o();
    function o() {
      let s = !1;
      const l = i.imports.length ? i.imports.map((f) => f.text) : Xu(i) ? i6e(i).map((f) => f.arguments[0].text) : rt;
      for (const f of l)
        if (vf(f)) {
          if (YN(f))
            return 3;
          _x(f) && (s = !0);
        }
      return s ? 2 : 0;
    }
  }
  function i6e(e) {
    let t = 0, r;
    for (const i of e.statements) {
      if (t > 3)
        break;
      nz(i) ? r = ma(r, i.declarationList.declarations.map((o) => o.initializer)) : nu(i) && Ed(i.expression, !0) ? r = Bn(r, i.expression) : t++;
    }
    return r || rt;
  }
  function Ide(e, t, r) {
    if (!e)
      return !1;
    const i = sk(t, r);
    for (const o of id(XN(t, i)))
      if (sl(e, o))
        return !0;
    return !1;
  }
  function kde(e) {
    const t = e.match(/\//g);
    return t ? t.length : 0;
  }
  function $N(e, t) {
    return Vs(kde(e), kde(t));
  }
  function Md(e) {
    for (const t of J3) {
      const r = wde(e, t);
      if (r !== void 0)
        return r;
    }
    return e;
  }
  function wde(e, t) {
    return sl(e, t) ? QN(e, t) : void 0;
  }
  function QN(e, t) {
    return e.substring(0, e.length - t.length);
  }
  function I1(e, t) {
    return MH(e, t, J3, !1);
  }
  function nC(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 P3(e) {
    return fa($h(e), (t) => nC(t));
  }
  function Yp(e) {
    return !(e >= 0);
  }
  function M3(e) {
    return e === ".ts" || e === ".tsx" || e === ".d.ts" || e === ".cts" || e === ".mts" || e === ".d.mts" || e === ".d.cts" || ba(e, ".d.") && tl(e, ".ts");
  }
  function ZN(e) {
    return M3(e) || e === ".json";
  }
  function eO(e) {
    const t = bh(e);
    return t !== void 0 ? t : D.fail(`File ${e} has unknown extension.`);
  }
  function a6e(e) {
    return bh(e) !== void 0;
  }
  function bh(e) {
    return cn(J3, (t) => sl(e, t));
  }
  function tO(e, t) {
    return e.checkJsDirective ? e.checkJsDirective.enabled : t.checkJs;
  }
  function oq(e, t) {
    const r = [];
    for (const i of e) {
      if (i === t)
        return t;
      Ua(i) || r.push(i);
    }
    return yj(r, (i) => i, t);
  }
  function sq(e, t) {
    const r = e.indexOf(t);
    return D.assert(r !== -1), e.slice(r);
  }
  function qo(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 Dde(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 cq(e) {
    return { pos: sT(e), end: e.end };
  }
  function lq(e, t) {
    const r = t.pos - 1, i = Math.min(e.text.length, zo(e.text, t.end) + 1);
    return { pos: r, end: i };
  }
  function ck(e, t, r) {
    return t.skipLibCheck && e.isDeclarationFile || t.skipDefaultLibCheck && e.hasNoDefaultLib || r.isSourceOfProjectReferenceRedirect(e.fileName);
  }
  function uq(e, t) {
    return e === t || typeof e == "object" && e !== null && typeof t == "object" && t !== null && _se(e, t, uq);
  }
  function lk(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 b = h >>> 4, A = e.charCodeAt(y), I = (A <= 57 ? A - 48 : 10 + A - (A <= 70 ? 65 : 97)) << (h & 15);
      s[b] |= I;
      const O = I >>> 16;
      O && (s[b + 1] |= O);
    }
    let l = "", f = s.length - 1, d = !0;
    for (; d; ) {
      let y = 0;
      d = !1;
      for (let h = f; h >= 0; h--) {
        const b = y << 16 | s[h], A = b / 10 | 0;
        s[h] = A, y = b - A * 10, A && !d && (f = h, d = !0);
      }
      l = y + l;
    }
    return l;
  }
  function k1({ negative: e, base10Value: t }) {
    return (e && t !== "0" ? "-" : "") + t;
  }
  function Rde(e) {
    if (F3(e, !1))
      return dq(e);
  }
  function dq(e) {
    const t = e.startsWith("-"), r = lk(`${t ? e.slice(1) : e}n`);
    return { negative: t, base10Value: r };
  }
  function F3(e, t) {
    if (e === "")
      return !1;
    const r = cy(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 l = r.getTokenFlags();
    return i && o === 9 && r.getTextPos() === e.length + 1 && !(l & 512) && (!t || e === k1({ negative: s, base10Value: lk(r.getTokenValue()) }));
  }
  function px(e) {
    return !!(e.flags & 16777216) || n3(e) || c6e(e) || s6e(e) || !(sg(e) || o6e(e));
  }
  function o6e(e) {
    return Ve(e) && $f(e.parent) && e.parent.name === e;
  }
  function s6e(e) {
    for (; e.kind === 79 || e.kind === 208; )
      e = e.parent;
    if (e.kind !== 164)
      return !1;
    if (Kr(e.parent, 256))
      return !0;
    const t = e.parent.parent.kind;
    return t === 261 || t === 184;
  }
  function c6e(e) {
    if (e.kind !== 79)
      return !1;
    const t = rr(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 Nde(e) {
    return W_(e) && Ve(e.typeName);
  }
  function Ode(e, t = M0) {
    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 uk(e, t) {
    return e.pos = t, e;
  }
  function rC(e, t) {
    return e.end = t, e;
  }
  function Bm(e, t, r) {
    return rC(uk(e, t), r);
  }
  function dk(e, t, r) {
    return Bm(e, t, t + r);
  }
  function Pde(e, t) {
    return e && (e.flags = t), e;
  }
  function Bo(e, t) {
    return e && t && (e.parent = t), e;
  }
  function iC(e, t) {
    if (e)
      for (const r of e)
        Bo(r, t);
    return e;
  }
  function Rv(e, t) {
    if (!e)
      return e;
    return VO(e, LA(e) ? r : o), e;
    function r(s, l) {
      if (t && s.parent === l)
        return "skip";
      Bo(s, l);
    }
    function i(s) {
      if (bf(s))
        for (const l of s.jsDoc)
          r(l, s), VO(l, r);
    }
    function o(s, l) {
      return r(s, l) || i(s);
    }
  }
  function l6e(e) {
    return !kl(e);
  }
  function fq(e) {
    return Ou(e) && Rn(e.elements, l6e);
  }
  function Mde(e) {
    for (D.assertIsDefined(e.parent); ; ) {
      const t = e.parent;
      if (Fd(t)) {
        e = t;
        continue;
      }
      if (nu(t) || Cx(t) || LT(t) && (t.initializer === e || t.incrementor === e))
        return !0;
      if (Ik(t)) {
        if (e !== Ho(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 fk(e) {
    return kt(TR, (t) => uu(e, t));
  }
  function Fde(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 Px(i) ? i.modifiers : void 0;
      }
      case 294:
        return e.parent.heritageClauses;
    }
    const { parent: t } = e;
    if (CI(e))
      return Nk(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 Mi(e) ? t.typeArguments : t.expression === e ? void 0 : t.arguments;
      case 281:
      case 285:
        return JR(e) ? t.children : void 0;
      case 283:
      case 282:
        return Mi(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 Ml(e) ? t.members : void 0;
      case 263:
        return P1(e) ? t.members : void 0;
      case 308:
        return t.statements;
    }
  }
  function B3(e) {
    if (!e.typeParameters) {
      if (kt(e.parameters, (t) => !Kl(t)))
        return !0;
      if (e.kind !== 216) {
        const t = zl(e.parameters);
        if (!(t && A1(t)))
          return !0;
      }
    }
    return !1;
  }
  function _k(e) {
    return e === "Infinity" || e === "-Infinity" || e === "NaN";
  }
  function Bde(e) {
    return e.kind === 257 && e.parent.kind === 295;
  }
  function _q(e) {
    const t = e.valueDeclaration && Om(e.valueDeclaration);
    return !!t && (Oa(t) || Bde(t));
  }
  function aC(e) {
    return e.kind === 215 || e.kind === 216;
  }
  function ST(e) {
    return e.replace(/\$/gm, () => "\\$");
  }
  function Eh(e) {
    return (+e).toString() === e;
  }
  function G3(e, t, r, i) {
    return N_(e, t) ? N.createIdentifier(e) : !i && Eh(e) && +e >= 0 ? N.createNumericLiteral(+e) : N.createStringLiteral(e, !!r);
  }
  function pk(e) {
    return !!(e.flags & 262144 && e.isThisType);
  }
  function pq(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 l = 0, f = 0, d = 0;
    for (; f >= 0; )
      switch (l = f, f = e.indexOf("/", l + 1), d) {
        case 0:
          e.indexOf(Sy, l) === l && (t = l, r = f, d = 1);
          break;
        case 1:
        case 2:
          d === 1 && e.charAt(l + 1) === "@" ? d = 2 : (i = f, d = 3);
          break;
        case 3:
          e.indexOf(Sy, l) === l ? d = 1 : d = 3;
          break;
      }
    return o = l, d > 1 ? { topLevelNodeModulesIndex: t, topLevelPackageNameIndex: r, packageRootIndex: i, fileNameIndex: o } : void 0;
  }
  function u6e(e) {
    var t;
    return e.kind === 344 ? (t = e.typeExpression) == null ? void 0 : t.type : e.type;
  }
  function oC(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 nO(e) {
    return Z0(e) || cl(e) || ml(e) || wl(e) || Qu(e) || oC(e) || Wc(e) && !g1(e) && !qp(e);
  }
  function rO(e) {
    if (!SM(e))
      return !1;
    const { isBracketed: t, typeExpression: r } = e;
    return t || !!r && r.type.kind === 319;
  }
  function mq(e, t) {
    if (e.length === 0)
      return !1;
    const r = e.charCodeAt(0);
    return r === 35 ? e.length > 1 && fh(e.charCodeAt(1), t) : fh(r, t);
  }
  function Gde(e) {
    var t;
    return ((t = qq(e)) == null ? void 0 : t.kind) === 0;
  }
  function iO(e) {
    return fr(e) && (e.type && e.type.kind === 319 || gI(e).some(({ isBracketed: t, typeExpression: r }) => t || !!r && r.type.kind === 319));
  }
  function hq(e) {
    switch (e.kind) {
      case 169:
      case 168:
        return !!e.questionToken;
      case 166:
        return !!e.questionToken || iO(e);
      case 351:
      case 344:
        return rO(e);
      default:
        return !1;
    }
  }
  function Ude(e) {
    const t = e.kind;
    return (t === 208 || t === 209) && Lx(e.expression);
  }
  function gq(e) {
    return fr(e) && Fd(e) && bf(e) && !!eW(e);
  }
  function yq(e) {
    return D.checkDefined(U3(e));
  }
  function U3(e) {
    const t = eW(e);
    return t && t.typeExpression && t.typeExpression.type;
  }
  var V3, Y0, aO, j3, mk, vq, bq, Vde, Eq, jde, Tq, Sq, xq, Aq, Hde, Wde, zde, qde, Jde, Cq, Kde, Xde, Yde, sC, w1, $de, Qde, Bl, Lq, oO, H3, Zde, Iq, W3, kq, wq, Dq, Rq, cC, Nq, efe, tfe, Oq, hk, sO, nfe, z3, q3, Pq, J3, K3, d6e = C({
    "src/compiler/utilities.ts"() {
      wa(), V3 = [], Y0 = "tslib", aO = 160, j3 = 1e6, mk = JOe(), vq = /* @__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))(vq || {}), bq = /^(\/\/\/\s*<reference\s+path\s*=\s*)(('[^']*')|("[^"]*")).*?\/>/, Vde = /^(\/\/\/\s*<reference\s+types\s*=\s*)(('[^']*')|("[^"]*")).*?\/>/, Eq = /^(\/\/\/\s*<amd-dependency\s+path\s*=\s*)(('[^']*')|("[^"]*")).*?\/>/, jde = /^(\/\/\/\s*<reference\s+no-default-lib\s*=\s*)(('[^']*')|("[^"]*"))\s*\/>/, Tq = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Definite = 1] = "Definite", e[e.Compound = 2] = "Compound", e))(Tq || {}), Sq = /* @__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))(Sq || {}), xq = /* @__PURE__ */ ((e) => (e[e.Left = 0] = "Left", e[e.Right = 1] = "Right", e))(xq || {}), Aq = /* @__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))(Aq || {}), Hde = /\$\{/g, Wde = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g, zde = /[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g, qde = /\r\n|[\\\`\u0000-\u001f\t\v\f\b\r\u2028\u2029\u0085]/g, Jde = new Map(Object.entries({
        "	": "\\t",
        "\v": "\\v",
        "\f": "\\f",
        "\b": "\\b",
        "\r": "\\r",
        "\n": "\\n",
        "\\": "\\\\",
        '"': '\\"',
        "'": "\\'",
        "`": "\\`",
        "\u2028": "\\u2028",
        "\u2029": "\\u2029",
        "": "\\u0085",
        "\r\n": "\\r\\n"
      })), Cq = /[^\u0000-\u007F]/g, Kde = /[\"\u0000-\u001f\u2028\u2029\u0085]/g, Xde = /[\'\u0000-\u001f\u2028\u2029\u0085]/g, Yde = new Map(Object.entries({
        '"': "&quot;",
        "'": "&apos;"
      })), sC = ["", "    "], w1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", $de = `\r
`, Qde = `
`, Bl = {
        getNodeConstructor: () => Jz,
        getTokenConstructor: () => H8e,
        getIdentifierConstructor: () => W8e,
        getPrivateIdentifierConstructor: () => Jz,
        getSourceFileConstructor: () => Jz,
        getSymbolConstructor: () => U8e,
        getTypeConstructor: () => V8e,
        getSignatureConstructor: () => j8e,
        getSourceMapSourceConstructor: () => z8e
      }, Lq = [], H3 = /[^\w\s\/]/g, Zde = [42, 63], Iq = ["node_modules", "bower_components", "jspm_packages"], W3 = `(?!(${Iq.join("|")})(/|$))`, kq = {
        singleAsteriskRegexFragment: "([^./]|(\\.(?!min\\.js$))?)*",
        doubleAsteriskRegexFragment: `(/${W3}[^/.][^/]*)*?`,
        replaceWildcardCharacter: (e) => nq(e, kq.singleAsteriskRegexFragment)
      }, wq = {
        singleAsteriskRegexFragment: "[^/]*",
        doubleAsteriskRegexFragment: `(/${W3}[^/.][^/]*)*?`,
        replaceWildcardCharacter: (e) => nq(e, wq.singleAsteriskRegexFragment)
      }, Dq = {
        singleAsteriskRegexFragment: "[^/]*",
        doubleAsteriskRegexFragment: "(/.+?)?",
        replaceWildcardCharacter: (e) => nq(e, Dq.singleAsteriskRegexFragment)
      }, Rq = {
        files: kq,
        directories: wq,
        exclude: Dq
      }, cC = [[".ts", ".tsx", ".d.ts"], [".cts", ".d.cts"], [".mts", ".d.mts"]], Nq = id(cC), efe = [...cC, [".json"]], tfe = [".d.ts", ".d.cts", ".d.mts", ".cts", ".mts", ".ts", ".tsx", ".cts", ".mts"], Oq = [[".js", ".jsx"], [".mjs"], [".cjs"]], hk = id(Oq), sO = [[".ts", ".tsx", ".d.ts", ".js", ".jsx"], [".cts", ".d.cts", ".cjs"], [".mts", ".d.mts", ".mjs"]], nfe = [...sO, [".json"]], z3 = [".d.ts", ".d.cts", ".d.mts"], q3 = [".ts", ".cts", ".mts", ".tsx"], Pq = /* @__PURE__ */ ((e) => (e[e.Minimal = 0] = "Minimal", e[e.Index = 1] = "Index", e[e.JsExtension = 2] = "JsExtension", e[e.TsExtension = 3] = "TsExtension", e))(Pq || {}), J3 = [".d.ts", ".d.mts", ".d.cts", ".mjs", ".mts", ".cjs", ".cts", ".ts", ".js", ".tsx", ".jsx", ".json"], K3 = {
        files: rt,
        directories: rt
      };
    }
  });
  function rfe() {
    let e, t, r, i, o;
    return {
      createBaseSourceFileNode: s,
      createBaseIdentifierNode: l,
      createBasePrivateIdentifierNode: f,
      createBaseTokenNode: d,
      createBaseNode: y
    };
    function s(h) {
      return new (o || (o = Bl.getSourceFileConstructor()))(h, -1, -1);
    }
    function l(h) {
      return new (r || (r = Bl.getIdentifierConstructor()))(h, -1, -1);
    }
    function f(h) {
      return new (i || (i = Bl.getPrivateIdentifierConstructor()))(h, -1, -1);
    }
    function d(h) {
      return new (t || (t = Bl.getTokenConstructor()))(h, -1, -1);
    }
    function y(h) {
      return new (e || (e = Bl.getNodeConstructor()))(h, -1, -1);
    }
  }
  var f6e = C({
    "src/compiler/factory/baseNodeFactory.ts"() {
      wa();
    }
  });
  function ife(e) {
    let t, r;
    return {
      getParenthesizeLeftSideOfBinaryForOperator: i,
      getParenthesizeRightSideOfBinaryForOperator: o,
      parenthesizeLeftSideOfBinary: y,
      parenthesizeRightSideOfBinary: h,
      parenthesizeExpressionOfComputedPropertyName: b,
      parenthesizeConditionOfConditionalExpression: A,
      parenthesizeBranchOfConditionalExpression: L,
      parenthesizeExpressionOfExportDefault: I,
      parenthesizeExpressionOfNew: O,
      parenthesizeLeftSideOfAccess: k,
      parenthesizeOperandOfPostfixUnary: B,
      parenthesizeOperandOfPrefixUnary: V,
      parenthesizeExpressionsOfCommaDelimitedList: H,
      parenthesizeExpressionForDisallowedComma: te,
      parenthesizeExpressionOfExpressionStatement: X,
      parenthesizeConciseBodyOfArrowFunction: Y,
      parenthesizeCheckTypeOfConditionalType: P,
      parenthesizeExtendsTypeOfConditionalType: de,
      parenthesizeConstituentTypesOfUnionType: ye,
      parenthesizeConstituentTypeOfUnionType: ne,
      parenthesizeConstituentTypesOfIntersectionType: W,
      parenthesizeConstituentTypeOfIntersectionType: ie,
      parenthesizeOperandOfTypeOperator: ce,
      parenthesizeOperandOfReadonlyTypeOperator: pe,
      parenthesizeNonArrayTypeOfPostfixType: ve,
      parenthesizeElementTypesOfTupleType: Te,
      parenthesizeElementTypeOfTupleType: ee,
      parenthesizeTypeOfOptionalType: Ue,
      parenthesizeTypeArguments: Oe,
      parenthesizeLeadingTypeArgument: Be
    };
    function i(Me) {
      t || (t = /* @__PURE__ */ new Map());
      let Xe = t.get(Me);
      return Xe || (Xe = (He) => y(Me, He), t.set(Me, Xe)), Xe;
    }
    function o(Me) {
      r || (r = /* @__PURE__ */ new Map());
      let Xe = r.get(Me);
      return Xe || (Xe = (He) => h(Me, void 0, He), r.set(Me, Xe)), Xe;
    }
    function s(Me, Xe, He, Fe) {
      const st = wN(223, Me), Ct = gz(223, Me), Et = O_(Xe);
      if (!He && Xe.kind === 216 && st > 3)
        return !0;
      const Vt = m3(Et);
      switch (Vs(Vt, st)) {
        case -1:
          return !(!He && Ct === 1 && Xe.kind === 226);
        case 1:
          return !1;
        case 0:
          if (He)
            return Ct === 1;
          if (br(Et) && Et.operatorToken.kind === Me) {
            if (l(Me))
              return !1;
            if (Me === 39) {
              const at = Fe ? f(Fe) : 0;
              if (TI(at) && at === f(Et))
                return !1;
            }
          }
          return hz(Et) === 0;
      }
    }
    function l(Me) {
      return Me === 41 || Me === 51 || Me === 50 || Me === 52 || Me === 27;
    }
    function f(Me) {
      if (Me = O_(Me), TI(Me.kind))
        return Me.kind;
      if (Me.kind === 223 && Me.operatorToken.kind === 39) {
        if (Me.cachedLiteralKind !== void 0)
          return Me.cachedLiteralKind;
        const Xe = f(Me.left), He = TI(Xe) && Xe === f(Me.right) ? Xe : 0;
        return Me.cachedLiteralKind = He, He;
      }
      return 0;
    }
    function d(Me, Xe, He, Fe) {
      return O_(Xe).kind === 214 ? Xe : s(Me, Xe, He, Fe) ? e.createParenthesizedExpression(Xe) : Xe;
    }
    function y(Me, Xe) {
      return d(Me, Xe, !0);
    }
    function h(Me, Xe, He) {
      return d(Me, He, !1, Xe);
    }
    function b(Me) {
      return Mk(Me) ? e.createParenthesizedExpression(Me) : Me;
    }
    function A(Me) {
      const Xe = wN(224, 57), He = O_(Me), Fe = m3(He);
      return Vs(Fe, Xe) !== 1 ? e.createParenthesizedExpression(Me) : Me;
    }
    function L(Me) {
      const Xe = O_(Me);
      return Mk(Xe) ? e.createParenthesizedExpression(Me) : Me;
    }
    function I(Me) {
      const Xe = O_(Me);
      let He = Mk(Xe);
      if (!He)
        switch (rk(Xe, !1).kind) {
          case 228:
          case 215:
            He = !0;
        }
      return He ? e.createParenthesizedExpression(Me) : Me;
    }
    function O(Me) {
      const Xe = rk(Me, !0);
      switch (Xe.kind) {
        case 210:
          return e.createParenthesizedExpression(Me);
        case 211:
          return Xe.arguments ? Me : e.createParenthesizedExpression(Me);
      }
      return k(Me);
    }
    function k(Me, Xe) {
      const He = O_(Me);
      return vd(He) && (He.kind !== 211 || He.arguments) && (Xe || !pu(He)) ? Me : mt(e.createParenthesizedExpression(Me), Me);
    }
    function B(Me) {
      return vd(Me) ? Me : mt(e.createParenthesizedExpression(Me), Me);
    }
    function V(Me) {
      return pW(Me) ? Me : mt(e.createParenthesizedExpression(Me), Me);
    }
    function H(Me) {
      const Xe = Zs(Me, te);
      return mt(e.createNodeArray(Xe, Me.hasTrailingComma), Me);
    }
    function te(Me) {
      const Xe = O_(Me), He = m3(Xe), Fe = wN(223, 27);
      return He > Fe ? Me : mt(e.createParenthesizedExpression(Me), Me);
    }
    function X(Me) {
      const Xe = O_(Me);
      if (eo(Xe)) {
        const Fe = Xe.expression, st = O_(Fe).kind;
        if (st === 215 || st === 216) {
          const Ct = e.updateCallExpression(Xe, mt(e.createParenthesizedExpression(Fe), Fe), Xe.typeArguments, Xe.arguments);
          return e.restoreOuterExpressions(Me, Ct, 8);
        }
      }
      const He = rk(Xe, !1).kind;
      return He === 207 || He === 215 ? mt(e.createParenthesizedExpression(Me), Me) : Me;
    }
    function Y(Me) {
      return !oo(Me) && (Mk(Me) || rk(Me, !1).kind === 207) ? mt(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 ne(Me) {
      switch (Me.kind) {
        case 189:
        case 190:
          return e.createParenthesizedType(Me);
      }
      return P(Me);
    }
    function ye(Me) {
      return e.createNodeArray(Zs(Me, ne));
    }
    function ie(Me) {
      switch (Me.kind) {
        case 189:
        case 190:
          return e.createParenthesizedType(Me);
      }
      return ne(Me);
    }
    function W(Me) {
      return e.createNodeArray(Zs(Me, ie));
    }
    function ce(Me) {
      switch (Me.kind) {
        case 190:
          return e.createParenthesizedType(Me);
      }
      return ie(Me);
    }
    function pe(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(Zs(Me, ee));
    }
    function ee(Me) {
      return $e(Me) ? e.createParenthesizedType(Me) : Me;
    }
    function $e(Me) {
      return TC(Me) ? Me.postfix : Ak(Me) || Sh(Me) || Sk(Me) || xx(Me) ? $e(Me.type) : mC(Me) ? $e(Me.falseType) : Tx(Me) || SO(Me) ? $e(Ho(Me.types)) : hC(Me) ? !!Me.typeParameter.constraint && $e(Me.typeParameter.constraint) : !1;
    }
    function Ue(Me) {
      return $e(Me) ? e.createParenthesizedType(Me) : ve(Me);
    }
    function Be(Me) {
      return ole(Me) && Me.typeParameters ? e.createParenthesizedType(Me) : Me;
    }
    function We(Me, Xe) {
      return Xe === 0 ? Be(Me) : Me;
    }
    function Oe(Me) {
      if (kt(Me))
        return e.createNodeArray(Zs(Me, We));
    }
  }
  var Mq, _6e = C({
    "src/compiler/factory/parenthesizerRules.ts"() {
      wa(), Mq = {
        getParenthesizeLeftSideOfBinaryForOperator: (e) => pc,
        getParenthesizeRightSideOfBinaryForOperator: (e) => pc,
        parenthesizeLeftSideOfBinary: (e, t) => t,
        parenthesizeRightSideOfBinary: (e, t, r) => r,
        parenthesizeExpressionOfComputedPropertyName: pc,
        parenthesizeConditionOfConditionalExpression: pc,
        parenthesizeBranchOfConditionalExpression: pc,
        parenthesizeExpressionOfExportDefault: pc,
        parenthesizeExpressionOfNew: (e) => ro(e, vd),
        parenthesizeLeftSideOfAccess: (e) => ro(e, vd),
        parenthesizeOperandOfPostfixUnary: (e) => ro(e, vd),
        parenthesizeOperandOfPrefixUnary: (e) => ro(e, pW),
        parenthesizeExpressionsOfCommaDelimitedList: (e) => ro(e, _1),
        parenthesizeExpressionForDisallowedComma: pc,
        parenthesizeExpressionOfExpressionStatement: pc,
        parenthesizeConciseBodyOfArrowFunction: pc,
        parenthesizeCheckTypeOfConditionalType: pc,
        parenthesizeExtendsTypeOfConditionalType: pc,
        parenthesizeConstituentTypesOfUnionType: (e) => ro(e, _1),
        parenthesizeConstituentTypeOfUnionType: pc,
        parenthesizeConstituentTypesOfIntersectionType: (e) => ro(e, _1),
        parenthesizeConstituentTypeOfIntersectionType: pc,
        parenthesizeOperandOfTypeOperator: pc,
        parenthesizeOperandOfReadonlyTypeOperator: pc,
        parenthesizeNonArrayTypeOfPostfixType: pc,
        parenthesizeElementTypesOfTupleType: (e) => ro(e, _1),
        parenthesizeElementTypeOfTupleType: pc,
        parenthesizeTypeOfOptionalType: pc,
        parenthesizeTypeArguments: (e) => e && ro(e, _1),
        parenthesizeLeadingTypeArgument: pc
      };
    }
  });
  function afe(e) {
    return {
      convertToFunctionBlock: t,
      convertToFunctionExpression: r,
      convertToArrayAssignmentElement: i,
      convertToObjectAssignmentElement: o,
      convertToAssignmentPattern: s,
      convertToObjectAssignmentPattern: l,
      convertToArrayAssignmentPattern: f,
      convertToAssignmentElementTarget: d
    };
    function t(y, h) {
      if (oo(y))
        return y;
      const b = e.createReturnStatement(y);
      mt(b, y);
      const A = e.createBlock([b], h);
      return mt(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 jr(h, y), mt(h, y), _O(y) && zq(h, !0), h;
    }
    function i(y) {
      if (us(y)) {
        if (y.dotDotDotToken)
          return D.assertNode(y.name, Ve), jr(mt(e.createSpreadElement(y.name), y), y);
        const h = d(y.name);
        return y.initializer ? jr(mt(e.createAssignment(h, y.initializer), y), y) : h;
      }
      return ro(y, yt);
    }
    function o(y) {
      if (us(y)) {
        if (y.dotDotDotToken)
          return D.assertNode(y.name, Ve), jr(mt(e.createSpreadAssignment(y.name), y), y);
        if (y.propertyName) {
          const h = d(y.name);
          return jr(mt(e.createPropertyAssignment(y.propertyName, y.initializer ? e.createAssignment(h, y.initializer) : h), y), y);
        }
        return D.assertNode(y.name, Ve), jr(mt(e.createShorthandPropertyAssignment(y.name, y.initializer), y), y);
      }
      return ro(y, fy);
    }
    function s(y) {
      switch (y.kind) {
        case 204:
        case 206:
          return f(y);
        case 203:
        case 207:
          return l(y);
      }
    }
    function l(y) {
      return Um(y) ? jr(mt(e.createObjectLiteralExpression(en(y.elements, o)), y), y) : ro(y, xs);
    }
    function f(y) {
      return gC(y) ? jr(mt(e.createArrayLiteralExpression(en(y.elements, i)), y), y) : ro(y, Ou);
    }
    function d(y) {
      return Ja(y) ? s(y) : ro(y, yt);
    }
  }
  var Fq, p6e = C({
    "src/compiler/factory/nodeConverters.ts"() {
      wa(), Fq = {
        convertToFunctionBlock: Va,
        convertToFunctionExpression: Va,
        convertToArrayAssignmentElement: Va,
        convertToObjectAssignmentElement: Va,
        convertToAssignmentPattern: Va,
        convertToObjectAssignmentPattern: Va,
        convertToArrayAssignmentPattern: Va,
        convertToAssignmentElementTarget: Va
      };
    }
  });
  function m6e(e) {
    jq.push(e);
  }
  function cO(e, t) {
    const r = e & 8 ? h6e : g6e, i = yd(() => e & 1 ? Mq : ife(B)), o = yd(() => e & 2 ? Fq : afe(B)), s = xm((v) => (w, F) => G(w, v, F)), l = xm((v) => (w) => E_(v, w)), f = xm((v) => (w) => Y_(w, v)), d = xm((v) => () => oE(v)), y = xm((v) => (w) => Oy(v, w)), h = xm((v) => (w, F) => ks(v, w, F)), b = xm((v) => (w, F) => mS(v, w, F)), A = xm((v) => (w, F) => sE(v, w, F)), L = xm((v) => (w, F) => Ph(v, w, F)), I = xm((v) => (w, F, oe) => a0(v, w, F, oe)), O = xm((v) => (w, F, oe) => o0(v, w, F, oe)), k = xm((v) => (w, F, oe, qe) => su(v, w, F, oe, qe)), B = {
      get parenthesizer() {
        return i();
      },
      get converters() {
        return o();
      },
      baseFactory: t,
      flags: e,
      createNodeArray: V,
      createNumericLiteral: Y,
      createBigIntLiteral: P,
      createStringLiteral: ne,
      createStringLiteralFromNode: ye,
      createRegularExpressionLiteral: ie,
      createLiteralLikeNode: W,
      createIdentifier: ve,
      createTempVariable: Te,
      createLoopVariable: ee,
      createUniqueName: $e,
      getGeneratedNameForNode: Ue,
      createPrivateIdentifier: We,
      createUniquePrivateName: Me,
      getGeneratedPrivateNameForNode: Xe,
      createToken: Fe,
      createSuper: st,
      createThis: Ct,
      createNull: Et,
      createTrue: Vt,
      createFalse: tt,
      createModifier: at,
      createModifiersFromModifierFlags: an,
      createQualifiedName: Xt,
      updateQualifiedName: Pn,
      createComputedPropertyName: Wn,
      updateComputedPropertyName: In,
      createTypeParameterDeclaration: Yt,
      updateTypeParameterDeclaration: _r,
      createParameterDeclaration: Ai,
      updateParameterDeclaration: Ki,
      createDecorator: Xi,
      updateDecorator: Nr,
      createPropertySignature: At,
      updatePropertySignature: vn,
      createPropertyDeclaration: dn,
      updatePropertyDeclaration: ir,
      createMethodSignature: lr,
      updateMethodSignature: Ni,
      createMethodDeclaration: pi,
      updateMethodDeclaration: Nn,
      createConstructorDeclaration: ke,
      updateConstructorDeclaration: gt,
      createGetAccessorDeclaration: xe,
      updateGetAccessorDeclaration: _t,
      createSetAccessorDeclaration: re,
      updateSetAccessorDeclaration: he,
      createCallSignature: je,
      updateCallSignature: Qe,
      createConstructSignature: Ke,
      updateConstructSignature: Ut,
      createIndexSignature: ln,
      updateIndexSignature: Sn,
      createClassStaticBlockDeclaration: Mn,
      updateClassStaticBlockDeclaration: Ar,
      createTemplateLiteralTypeSpan: Er,
      updateTemplateLiteralTypeSpan: ue,
      createKeywordTypeNode: pt,
      createTypePredicateNode: Wt,
      updateTypePredicateNode: it,
      createTypeReferenceNode: K,
      updateTypeReferenceNode: Pe,
      createFunctionTypeNode: Z,
      updateFunctionTypeNode: Re,
      createConstructorTypeNode: Rt,
      updateConstructorTypeNode: fn,
      createTypeQueryNode: Si,
      updateTypeQueryNode: xi,
      createTypeLiteralNode: Gi,
      updateTypeLiteralNode: _o,
      createArrayTypeNode: bo,
      updateArrayTypeNode: no,
      createTupleTypeNode: sa,
      updateTupleTypeNode: Ui,
      createNamedTupleMember: Jr,
      updateNamedTupleMember: is,
      createOptionalTypeNode: di,
      updateOptionalTypeNode: ca,
      createRestTypeNode: wn,
      updateRestTypeNode: ua,
      createUnionTypeNode: Fc,
      updateUnionTypeNode: qc,
      createIntersectionTypeNode: Bc,
      updateIntersectionTypeNode: xo,
      createConditionalTypeNode: Sa,
      updateConditionalTypeNode: Jo,
      createInferTypeNode: Gc,
      updateInferTypeNode: Yl,
      createImportTypeNode: Hl,
      updateImportTypeNode: Is,
      createParenthesizedType: mc,
      updateParenthesizedType: $s,
      createThisTypeNode: zs,
      createTypeOperatorNode: tn,
      updateTypeOperatorNode: Uc,
      createIndexedAccessTypeNode: bu,
      updateIndexedAccessTypeNode: Uu,
      createMappedTypeNode: fe,
      updateMappedTypeNode: It,
      createLiteralTypeNode: jt,
      updateLiteralTypeNode: Q,
      createTemplateLiteralType: jd,
      updateTemplateLiteralType: rl,
      createObjectBindingPattern: ot,
      updateObjectBindingPattern: xt,
      createArrayBindingPattern: pn,
      updateArrayBindingPattern: wr,
      createBindingElement: Or,
      updateBindingElement: ya,
      createArrayLiteralExpression: as,
      updateArrayLiteralExpression: po,
      createObjectLiteralExpression: Uo,
      updateObjectLiteralExpression: Ka,
      createPropertyAccessExpression: e & 4 ? (v, w) => sr(ll(v, w), 262144) : ll,
      updatePropertyAccessExpression: ud,
      createPropertyAccessChain: e & 4 ? (v, w, F) => sr(ys(v, w, F), 262144) : ys,
      updatePropertyAccessChain: cs,
      createElementAccessExpression: Hd,
      updateElementAccessExpression: Vc,
      createElementAccessChain: kf,
      updateElementAccessChain: Se,
      createCallExpression: On,
      updateCallExpression: qi,
      createCallChain: Ao,
      updateCallChain: ae,
      createNewExpression: lt,
      updateNewExpression: Mt,
      createTaggedTemplateExpression: Pt,
      updateTaggedTemplateExpression: un,
      createTypeAssertion: jn,
      updateTypeAssertion: Dr,
      createParenthesizedExpression: ei,
      updateParenthesizedExpression: Oi,
      createFunctionExpression: Ga,
      updateFunctionExpression: Vo,
      createArrowFunction: vs,
      updateArrowFunction: qs,
      createDeleteExpression: dd,
      updateDeleteExpression: lf,
      createTypeOfExpression: Qc,
      updateTypeOfExpression: Wd,
      createVoidExpression: Eu,
      updateVoidExpression: uf,
      createAwaitExpression: b_,
      updateAwaitExpression: Ko,
      createPrefixUnaryExpression: E_,
      updatePrefixUnaryExpression: df,
      createPostfixUnaryExpression: Y_,
      updatePostfixUnaryExpression: Ap,
      createBinaryExpression: G,
      updateBinaryExpression: zt,
      createConditionalExpression: $n,
      updateConditionalExpression: La,
      createTemplateExpression: xa,
      updateTemplateExpression: Ce,
      createTemplateHead: Tn,
      createTemplateMiddle: zn,
      createTemplateTail: Wr,
      createNoSubstitutionTemplateLiteral: Wi,
      createTemplateLiteralLikeNode: bn,
      createYieldExpression: nr,
      updateYieldExpression: _n,
      createSpreadElement: dr,
      updateSpreadElement: Ea,
      createClassExpression: Js,
      updateClassExpression: il,
      createOmittedExpression: Jm,
      createExpressionWithTypeArguments: bg,
      updateExpressionWithTypeArguments: $_,
      createAsExpression: lb,
      updateAsExpression: Kv,
      createNonNullExpression: l2,
      updateNonNullExpression: rS,
      createSatisfiesExpression: u2,
      updateSatisfiesExpression: Eg,
      createNonNullChain: Q_,
      updateNonNullChain: Xv,
      createMetaProperty: Dh,
      updateMetaProperty: Cp,
      createTemplateSpan: Yv,
      updateTemplateSpan: Y1,
      createSemicolonClassElement: ub,
      createBlock: Tg,
      updateBlock: iS,
      createVariableStatement: $1,
      updateVariableStatement: Q1,
      createEmptyStatement: Z1,
      createExpressionStatement: $v,
      updateExpressionStatement: d2,
      createIfStatement: eE,
      updateIfStatement: tE,
      createDoStatement: Qv,
      updateDoStatement: db,
      createWhileStatement: Zv,
      updateWhileStatement: aS,
      createForStatement: Sg,
      updateForStatement: Xo,
      createForInStatement: nE,
      updateForInStatement: sL,
      createForOfStatement: Ry,
      updateForOfStatement: xg,
      createContinueStatement: Km,
      updateContinueStatement: Z_,
      createBreakStatement: Cd,
      updateBreakStatement: Ld,
      createReturnStatement: Id,
      updateReturnStatement: fb,
      createWithStatement: _b,
      updateWithStatement: f2,
      createSwitchStatement: pb,
      updateSwitchStatement: Ag,
      createLabeledStatement: mb,
      updateLabeledStatement: oS,
      createThrowStatement: hb,
      updateThrowStatement: cL,
      createTryStatement: _2,
      updateTryStatement: e0,
      createDebuggerStatement: rE,
      createVariableDeclaration: Je,
      updateVariableDeclaration: Ny,
      createVariableDeclarationList: im,
      updateVariableDeclarationList: t0,
      createFunctionDeclaration: gb,
      updateFunctionDeclaration: n0,
      createClassDeclaration: sS,
      updateClassDeclaration: Qo,
      createInterfaceDeclaration: ep,
      updateInterfaceDeclaration: iE,
      createTypeAliasDeclaration: hl,
      updateTypeAliasDeclaration: Rh,
      createEnumDeclaration: yb,
      updateEnumDeclaration: tp,
      createModuleDeclaration: vb,
      updateModuleDeclaration: au,
      createModuleBlock: Lg,
      updateModuleBlock: Rl,
      createCaseBlock: cS,
      updateCaseBlock: lL,
      createNamespaceExportDeclaration: Vi,
      updateNamespaceExportDeclaration: zr,
      createImportEqualsDeclaration: zd,
      updateImportEqualsDeclaration: aE,
      createImportDeclaration: Ig,
      updateImportDeclaration: Nh,
      createImportClause: Ym,
      updateImportClause: fc,
      createAssertClause: bb,
      updateAssertClause: lS,
      createAssertEntry: Eb,
      updateAssertEntry: uS,
      createImportTypeAssertionContainer: Zf,
      updateImportTypeAssertionContainer: p2,
      createNamespaceImport: m2,
      updateNamespaceImport: r0,
      createNamespaceExport: dS,
      updateNamespaceExport: fS,
      createNamedImports: h2,
      updateNamedImports: Tb,
      createImportSpecifier: _S,
      updateImportSpecifier: wf,
      createExportAssignment: kg,
      updateExportAssignment: Lp,
      createExportDeclaration: np,
      updateExportDeclaration: g2,
      createNamedExports: am,
      updateNamedExports: pS,
      createExportSpecifier: fd,
      updateExportSpecifier: wg,
      createMissingDeclaration: om,
      createExternalModuleReference: sm,
      updateExternalModuleReference: Dg,
      get createJSDocAllType() {
        return d(315);
      },
      get createJSDocUnknownType() {
        return d(316);
      },
      get createJSDocNonNullableType() {
        return b(318);
      },
      get updateJSDocNonNullableType() {
        return A(318);
      },
      get createJSDocNullableType() {
        return b(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: Py,
      updateJSDocFunctionType: y2,
      createJSDocTypeLiteral: xb,
      updateJSDocTypeLiteral: Ab,
      createJSDocTypeExpression: v2,
      updateJSDocTypeExpression: uL,
      createJSDocSignature: b2,
      updateJSDocSignature: pr,
      createJSDocTemplateTag: i0,
      updateJSDocTemplateTag: $m,
      createJSDocTypedefTag: ar,
      updateJSDocTypedefTag: E2,
      createJSDocParameterTag: My,
      updateJSDocParameterTag: Al,
      createJSDocPropertyTag: T_,
      updateJSDocPropertyTag: Ip,
      createJSDocCallbackTag: Fy,
      updateJSDocCallbackTag: cE,
      createJSDocOverloadTag: rp,
      updateJSDocOverloadTag: By,
      createJSDocAugmentsTag: Jc,
      updateJSDocAugmentsTag: Zc,
      createJSDocImplementsTag: Rg,
      updateJSDocImplementsTag: Ng,
      createJSDocSeeTag: ou,
      updateJSDocSeeTag: S_,
      createJSDocNameReference: Qm,
      updateJSDocNameReference: kd,
      createJSDocMemberName: lE,
      updateJSDocMemberName: Cb,
      createJSDocLink: Lb,
      updateJSDocLink: kp,
      createJSDocLinkCode: Oh,
      updateJSDocLinkCode: uE,
      createJSDocLinkPlain: Gy,
      updateJSDocLinkPlain: Dc,
      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: dE,
      updateJSDocEnumTag: Fh,
      createJSDocUnknownTag: Mh,
      updateJSDocUnknownTag: gl,
      createJSDocText: Ib,
      updateJSDocText: _d,
      createJSDocComment: Zm,
      updateJSDocComment: kb,
      createJsxElement: s0,
      updateJsxElement: fE,
      createJsxSelfClosingElement: Uy,
      updateJsxSelfClosingElement: hS,
      createJsxOpeningElement: c0,
      updateJsxOpeningElement: Og,
      createJsxClosingElement: Rf,
      updateJsxClosingElement: _E,
      createJsxFragment: ff,
      createJsxText: l0,
      updateJsxText: T2,
      createJsxOpeningFragment: ns,
      createJsxJsxClosingFragment: Ir,
      updateJsxFragment: Bh,
      createJsxAttribute: qd,
      updateJsxAttribute: pd,
      createJsxAttributes: gS,
      updateJsxAttributes: pE,
      createJsxSpreadAttribute: Vy,
      updateJsxSpreadAttribute: S2,
      createJsxExpression: jy,
      updateJsxExpression: cm,
      createCaseClause: wp,
      updateCaseClause: Pg,
      createDefaultClause: u0,
      updateDefaultClause: Gh,
      createHeritageClause: lm,
      updateHeritageClause: yS,
      createCatchClause: Kc,
      updateCatchClause: _f,
      createPropertyAssignment: eh,
      updatePropertyAssignment: wd,
      createShorthandPropertyAssignment: Hy,
      updateShorthandPropertyAssignment: Mg,
      createSpreadAssignment: Nf,
      updateSpreadAssignment: ws,
      createEnumMember: hE,
      updateEnumMember: gE,
      createSourceFile: Fg,
      updateSourceFile: EE,
      createRedirectedSourceFile: d0,
      createBundle: TE,
      updateBundle: Wy,
      createUnparsedSource: Jd,
      createUnparsedPrologue: dL,
      createUnparsedPrepend: Bg,
      createUnparsedTextLike: A2,
      createUnparsedSyntheticReference: C2,
      createInputFiles: S,
      createSyntheticExpression: se,
      createSyntaxList: Le,
      createNotEmittedStatement: rn,
      createPartiallyEmittedExpression: Cr,
      updatePartiallyEmittedExpression: Ei,
      createCommaListExpression: Bi,
      updateCommaListExpression: uo,
      createEndOfDeclarationMarker: $l,
      createMergeDeclarationMarker: Kd,
      createSyntheticReferenceExpression: pf,
      updateSyntheticReferenceExpression: zy,
      cloneNode: x_,
      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 l(39);
      },
      get createPrefixMinus() {
        return l(40);
      },
      get createPrefixIncrement() {
        return l(45);
      },
      get createPrefixDecrement() {
        return l(46);
      },
      get createBitwiseNot() {
        return l(54);
      },
      get createLogicalNot() {
        return l(53);
      },
      get createPostfixIncrement() {
        return f(45);
      },
      get createPostfixDecrement() {
        return f(46);
      },
      createImmediatelyInvokedFunctionExpression: SE,
      createImmediatelyInvokedArrowFunction: Of,
      createVoidZero: th,
      createExportDefault: Jy,
      createExternalModuleExport: e_,
      createTypeCheck: xE,
      createMethodCall: p0,
      createGlobalMethodCall: Zo,
      createFunctionBindCall: ul,
      createFunctionCallCall: aP,
      createFunctionApplyCall: bs,
      createArraySliceCall: L2,
      createArrayConcatCall: I2,
      createObjectDefinePropertyCall: z,
      createObjectGetOwnPropertyDescriptorCall: be,
      createReflectGetCall: Ye,
      createReflectSetCall: Tt,
      createPropertyDescriptor: Cn,
      createCallBinding: As,
      createAssignmentTargetWrapper: Co,
      inlineExpressions: es,
      getInternalName: Dp,
      getLocalName: um,
      getExportName: Gg,
      getDeclarationName: A_,
      getNamespaceMemberName: Ky,
      getExternalModuleOrNamespaceExportName: k2,
      restoreOuterExpressions: Ti,
      restoreEnclosingLabel: Ci,
      createUseStrictPrologue: ip,
      copyPrologue: AE,
      copyStandardPrologue: m0,
      copyCustomPrologue: _L,
      ensureUseStrict: Pf,
      liftToBlock: w2,
      mergeLexicalEnvironment: Jw,
      updateModifiers: Kw
    };
    return ze(jq, (v) => v(B)), B;
    function V(v, w) {
      if (v === void 0 || v === rt)
        v = [];
      else if (_1(v)) {
        if (w === void 0 || v.hasTrailingComma === w)
          return v.transformFlags === void 0 && ofe(v), D.attachNodeArrayDebugInfo(v), v;
        const qe = v.slice();
        return qe.pos = v.pos, qe.end = v.end, qe.hasTrailingComma = w, qe.transformFlags = v.transformFlags, D.attachNodeArrayDebugInfo(qe), qe;
      }
      const F = v.length, oe = F >= 1 && F <= 4 ? v.slice() : v;
      return oe.pos = -1, oe.end = -1, oe.hasTrailingComma = !!w, oe.transformFlags = 0, ofe(oe), D.attachNodeArrayDebugInfo(oe), oe;
    }
    function H(v) {
      return t.createBaseNode(v);
    }
    function te(v) {
      const w = H(v);
      return w.symbol = void 0, w.localSymbol = void 0, w;
    }
    function X(v, w) {
      return v !== w && (v.typeArguments = w.typeArguments), r(v, w);
    }
    function Y(v, w = 0) {
      const F = te(8);
      return F.text = typeof v == "number" ? v + "" : v, F.numericLiteralFlags = w, w & 384 && (F.transformFlags |= 1024), F;
    }
    function P(v) {
      const w = He(9);
      return w.text = typeof v == "string" ? v : k1(v) + "n", w.transformFlags |= 4, w;
    }
    function de(v, w) {
      const F = te(10);
      return F.text = v, F.singleQuote = w, F;
    }
    function ne(v, w, F) {
      const oe = de(v, w);
      return oe.hasExtendedUnicodeEscape = F, F && (oe.transformFlags |= 1024), oe;
    }
    function ye(v) {
      const w = de(B_(v), void 0);
      return w.textSourceNode = v, w;
    }
    function ie(v) {
      const w = He(13);
      return w.text = v, w;
    }
    function W(v, w) {
      switch (v) {
        case 8:
          return Y(w, 0);
        case 9:
          return P(w);
        case 10:
          return ne(w, void 0);
        case 11:
          return l0(w, !1);
        case 12:
          return l0(w, !0);
        case 13:
          return ie(w);
        case 14:
          return bn(v, w, void 0, 0);
      }
    }
    function ce(v) {
      const w = t.createBaseIdentifierNode(79);
      return w.escapedText = v, w.jsDoc = void 0, w.flowNode = void 0, w.symbol = void 0, w;
    }
    function pe(v, w, F, oe) {
      const qe = ce(oc(v));
      return hO(qe, {
        flags: w,
        id: uO,
        prefix: F,
        suffix: oe
      }), uO++, qe;
    }
    function ve(v, w, F) {
      w === void 0 && v && (w = ZE(v)), w === 79 && (w = void 0);
      const oe = ce(oc(v));
      return F && (oe.flags |= 128), oe.escapedText === "await" && (oe.transformFlags |= 67108864), oe.flags & 128 && (oe.transformFlags |= 1024), oe;
    }
    function Te(v, w, F, oe) {
      let qe = 1;
      w && (qe |= 8);
      const qt = pe("", qe, F, oe);
      return v && v(qt), qt;
    }
    function ee(v) {
      let w = 2;
      return v && (w |= 8), pe("", w, void 0, void 0);
    }
    function $e(v, w = 0, F, oe) {
      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"), pe(v, 3 | w, F, oe);
    }
    function Ue(v, w = 0, F, oe) {
      D.assert(!(w & 7), "Argument out of range: flags");
      const qe = v ? ng(v) ? RT(!1, F, v, oe, Pr) : `generated@${ds(v)}` : "";
      (F || oe) && (w |= 16);
      const qt = pe(qe, 4 | w, F, oe);
      return qt.original = v, qt;
    }
    function Be(v) {
      const w = t.createBasePrivateIdentifierNode(80);
      return w.escapedText = v, w.transformFlags |= 16777216, w;
    }
    function We(v) {
      return ba(v, "#") || D.fail("First character of private identifier must be #: " + v), Be(oc(v));
    }
    function Oe(v, w, F, oe) {
      const qe = Be(oc(v));
      return hO(qe, {
        flags: w,
        id: uO,
        prefix: F,
        suffix: oe
      }), uO++, qe;
    }
    function Me(v, w, F) {
      v && !ba(v, "#") && D.fail("First character of private identifier must be #: " + v);
      const oe = 8 | (v ? 3 : 1);
      return Oe(v ?? "", oe, w, F);
    }
    function Xe(v, w, F) {
      const oe = ng(v) ? RT(!0, w, v, F, Pr) : `#generated@${ds(v)}`, qt = Oe(oe, 4 | (w || F ? 16 : 0), w, F);
      return qt.original = v, qt;
    }
    function He(v) {
      return t.createBaseTokenNode(v);
    }
    function Fe(v) {
      D.assert(v >= 0 && v <= 162, "Invalid token"), D.assert(v <= 14 || v >= 17, "Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."), D.assert(v <= 8 || v >= 14, "Invalid token. Use 'createLiteralLikeNode' to create literals."), D.assert(v !== 79, "Invalid token. Use 'createIdentifier' to create identifiers");
      const w = He(v);
      let F = 0;
      switch (v) {
        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(v) {
      return Fe(v);
    }
    function an(v) {
      const w = [];
      return v & 1 && w.push(at(93)), v & 2 && w.push(at(136)), v & 1024 && w.push(at(88)), v & 2048 && w.push(at(85)), v & 4 && w.push(at(123)), v & 8 && w.push(at(121)), v & 16 && w.push(at(122)), v & 256 && w.push(at(126)), v & 32 && w.push(at(124)), v & 16384 && w.push(at(161)), v & 64 && w.push(at(146)), v & 128 && w.push(at(127)), v & 512 && w.push(at(132)), v & 32768 && w.push(at(101)), v & 65536 && w.push(at(145)), w.length ? w : void 0;
    }
    function Xt(v, w) {
      const F = H(163);
      return F.left = v, F.right = bc(w), F.transformFlags |= hr(F.left) | gk(F.right), F.flowNode = void 0, F;
    }
    function Pn(v, w, F) {
      return v.left !== w || v.right !== F ? r(Xt(w, F), v) : v;
    }
    function Wn(v) {
      const w = H(164);
      return w.expression = i().parenthesizeExpressionOfComputedPropertyName(v), w.transformFlags |= hr(w.expression) | 1024 | 131072, w;
    }
    function In(v, w) {
      return v.expression !== w ? r(Wn(w), v) : v;
    }
    function Yt(v, w, F, oe) {
      const qe = te(165);
      return qe.modifiers = Lo(v), qe.name = bc(w), qe.constraint = F, qe.default = oe, qe.transformFlags = 1, qe.expression = void 0, qe.jsDoc = void 0, qe;
    }
    function _r(v, w, F, oe, qe) {
      return v.modifiers !== w || v.name !== F || v.constraint !== oe || v.default !== qe ? r(Yt(w, F, oe, qe), v) : v;
    }
    function Ai(v, w, F, oe, qe, qt) {
      var Br, ea;
      const Xa = te(166);
      return Xa.modifiers = Lo(v), Xa.dotDotDotToken = w, Xa.name = bc(F), Xa.questionToken = oe, Xa.type = qe, Xa.initializer = Yy(qt), yT(Xa.name) ? Xa.transformFlags = 1 : Xa.transformFlags = No(Xa.modifiers) | hr(Xa.dotDotDotToken) | gy(Xa.name) | hr(Xa.questionToken) | hr(Xa.initializer) | (((Br = Xa.questionToken) != null ? Br : Xa.type) ? 1 : 0) | (((ea = Xa.dotDotDotToken) != null ? ea : Xa.initializer) ? 1024 : 0) | (Mm(Xa.modifiers) & 16476 ? 8192 : 0), Xa.jsDoc = void 0, Xa;
    }
    function Ki(v, w, F, oe, qe, qt, Br) {
      return v.modifiers !== w || v.dotDotDotToken !== F || v.name !== oe || v.questionToken !== qe || v.type !== qt || v.initializer !== Br ? r(Ai(w, F, oe, qe, qt, Br), v) : v;
    }
    function Xi(v) {
      const w = H(167);
      return w.expression = i().parenthesizeLeftSideOfAccess(v, !1), w.transformFlags |= hr(w.expression) | 1 | 8192 | 33554432, w;
    }
    function Nr(v, w) {
      return v.expression !== w ? r(Xi(w), v) : v;
    }
    function At(v, w, F, oe) {
      const qe = te(168);
      return qe.modifiers = Lo(v), qe.name = bc(w), qe.type = oe, qe.questionToken = F, qe.transformFlags = 1, qe.initializer = void 0, qe.jsDoc = void 0, qe;
    }
    function vn(v, w, F, oe, qe) {
      return v.modifiers !== w || v.name !== F || v.questionToken !== oe || v.type !== qe ? Ht(At(w, F, oe, qe), v) : v;
    }
    function Ht(v, w) {
      return v !== w && (v.initializer = w.initializer), r(v, w);
    }
    function dn(v, w, F, oe, qe) {
      const qt = te(169);
      qt.modifiers = Lo(v), qt.name = bc(w), qt.questionToken = F && Nv(F) ? F : void 0, qt.exclamationToken = F && EO(F) ? F : void 0, qt.type = oe, qt.initializer = Yy(qe);
      const Br = qt.flags & 16777216 || Mm(qt.modifiers) & 2;
      return qt.transformFlags = No(qt.modifiers) | gy(qt.name) | hr(qt.initializer) | (Br || qt.questionToken || qt.exclamationToken || qt.type ? 1 : 0) | (Ts(qt.name) || Mm(qt.modifiers) & 32 && qt.initializer ? 8192 : 0) | 16777216, qt.jsDoc = void 0, qt;
    }
    function ir(v, w, F, oe, qe, qt) {
      return v.modifiers !== w || v.name !== F || v.questionToken !== (oe !== void 0 && Nv(oe) ? oe : void 0) || v.exclamationToken !== (oe !== void 0 && EO(oe) ? oe : void 0) || v.type !== qe || v.initializer !== qt ? r(dn(w, F, oe, qe, qt), v) : v;
    }
    function lr(v, w, F, oe, qe, qt) {
      const Br = te(170);
      return Br.modifiers = Lo(v), Br.name = bc(w), Br.questionToken = F, Br.typeParameters = Lo(oe), Br.parameters = Lo(qe), Br.type = qt, Br.transformFlags = 1, Br.jsDoc = void 0, Br.locals = void 0, Br.nextContainer = void 0, Br.typeArguments = void 0, Br;
    }
    function Ni(v, w, F, oe, qe, qt, Br) {
      return v.modifiers !== w || v.name !== F || v.questionToken !== oe || v.typeParameters !== qe || v.parameters !== qt || v.type !== Br ? X(lr(w, F, oe, qe, qt, Br), v) : v;
    }
    function pi(v, w, F, oe, qe, qt, Br, ea) {
      const Xa = te(171);
      if (Xa.modifiers = Lo(v), Xa.asteriskToken = w, Xa.name = bc(F), Xa.questionToken = oe, Xa.exclamationToken = void 0, Xa.typeParameters = Lo(qe), Xa.parameters = V(qt), Xa.type = Br, Xa.body = ea, !Xa.body)
        Xa.transformFlags = 1;
      else {
        const mf = Mm(Xa.modifiers) & 512, Ug = !!Xa.asteriskToken, Vg = mf && Ug;
        Xa.transformFlags = No(Xa.modifiers) | hr(Xa.asteriskToken) | gy(Xa.name) | hr(Xa.questionToken) | No(Xa.typeParameters) | No(Xa.parameters) | hr(Xa.type) | hr(Xa.body) & -67108865 | (Vg ? 128 : mf ? 256 : Ug ? 2048 : 0) | (Xa.questionToken || Xa.typeParameters || Xa.type ? 1 : 0) | 1024;
      }
      return Xa.typeArguments = void 0, Xa.jsDoc = void 0, Xa.locals = void 0, Xa.nextContainer = void 0, Xa.flowNode = void 0, Xa.endFlowNode = void 0, Xa.returnFlowNode = void 0, Xa;
    }
    function Nn(v, w, F, oe, qe, qt, Br, ea, Xa) {
      return v.modifiers !== w || v.asteriskToken !== F || v.name !== oe || v.questionToken !== qe || v.typeParameters !== qt || v.parameters !== Br || v.type !== ea || v.body !== Xa ? nn(pi(w, F, oe, qe, qt, Br, ea, Xa), v) : v;
    }
    function nn(v, w) {
      return v !== w && (v.exclamationToken = w.exclamationToken), r(v, w);
    }
    function Mn(v) {
      const w = te(172);
      return w.body = v, w.transformFlags = hr(v) | 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(v, w) {
      return v.body !== w ? Vr(Mn(w), v) : v;
    }
    function Vr(v, w) {
      return v !== w && (v.modifiers = w.modifiers), r(v, w);
    }
    function ke(v, w, F) {
      const oe = te(173);
      return oe.modifiers = Lo(v), oe.parameters = V(w), oe.body = F, oe.transformFlags = No(oe.modifiers) | No(oe.parameters) | hr(oe.body) & -67108865 | 1024, oe.typeParameters = void 0, oe.type = void 0, oe.typeArguments = void 0, oe.jsDoc = void 0, oe.locals = void 0, oe.nextContainer = void 0, oe.endFlowNode = void 0, oe.returnFlowNode = void 0, oe;
    }
    function gt(v, w, F, oe) {
      return v.modifiers !== w || v.parameters !== F || v.body !== oe ? Nt(ke(w, F, oe), v) : v;
    }
    function Nt(v, w) {
      return v !== w && (v.typeParameters = w.typeParameters, v.type = w.type), X(v, w);
    }
    function xe(v, w, F, oe, qe) {
      const qt = te(174);
      return qt.modifiers = Lo(v), qt.name = bc(w), qt.parameters = V(F), qt.type = oe, qt.body = qe, qt.body ? qt.transformFlags = No(qt.modifiers) | gy(qt.name) | No(qt.parameters) | hr(qt.type) | hr(qt.body) & -67108865 | (qt.type ? 1 : 0) : qt.transformFlags = 1, qt.typeArguments = void 0, qt.typeParameters = void 0, qt.jsDoc = void 0, qt.locals = void 0, qt.nextContainer = void 0, qt.flowNode = void 0, qt.endFlowNode = void 0, qt.returnFlowNode = void 0, qt;
    }
    function _t(v, w, F, oe, qe, qt) {
      return v.modifiers !== w || v.name !== F || v.parameters !== oe || v.type !== qe || v.body !== qt ? _e(xe(w, F, oe, qe, qt), v) : v;
    }
    function _e(v, w) {
      return v !== w && (v.typeParameters = w.typeParameters), X(v, w);
    }
    function re(v, w, F, oe) {
      const qe = te(175);
      return qe.modifiers = Lo(v), qe.name = bc(w), qe.parameters = V(F), qe.body = oe, qe.body ? qe.transformFlags = No(qe.modifiers) | gy(qe.name) | No(qe.parameters) | hr(qe.body) & -67108865 | (qe.type ? 1 : 0) : qe.transformFlags = 1, qe.typeArguments = void 0, qe.typeParameters = void 0, qe.type = void 0, qe.jsDoc = void 0, qe.locals = void 0, qe.nextContainer = void 0, qe.flowNode = void 0, qe.endFlowNode = void 0, qe.returnFlowNode = void 0, qe;
    }
    function he(v, w, F, oe, qe) {
      return v.modifiers !== w || v.name !== F || v.parameters !== oe || v.body !== qe ? j(re(w, F, oe, qe), v) : v;
    }
    function j(v, w) {
      return v !== w && (v.typeParameters = w.typeParameters, v.type = w.type), X(v, w);
    }
    function je(v, w, F) {
      const oe = te(176);
      return oe.typeParameters = Lo(v), oe.parameters = Lo(w), oe.type = F, oe.transformFlags = 1, oe.jsDoc = void 0, oe.locals = void 0, oe.nextContainer = void 0, oe.typeArguments = void 0, oe;
    }
    function Qe(v, w, F, oe) {
      return v.typeParameters !== w || v.parameters !== F || v.type !== oe ? X(je(w, F, oe), v) : v;
    }
    function Ke(v, w, F) {
      const oe = te(177);
      return oe.typeParameters = Lo(v), oe.parameters = Lo(w), oe.type = F, oe.transformFlags = 1, oe.jsDoc = void 0, oe.locals = void 0, oe.nextContainer = void 0, oe.typeArguments = void 0, oe;
    }
    function Ut(v, w, F, oe) {
      return v.typeParameters !== w || v.parameters !== F || v.type !== oe ? X(Ke(w, F, oe), v) : v;
    }
    function ln(v, w, F) {
      const oe = te(178);
      return oe.modifiers = Lo(v), oe.parameters = Lo(w), oe.type = F, oe.transformFlags = 1, oe.jsDoc = void 0, oe.locals = void 0, oe.nextContainer = void 0, oe.typeArguments = void 0, oe;
    }
    function Sn(v, w, F, oe) {
      return v.parameters !== F || v.type !== oe || v.modifiers !== w ? X(ln(w, F, oe), v) : v;
    }
    function Er(v, w) {
      const F = H(201);
      return F.type = v, F.literal = w, F.transformFlags = 1, F;
    }
    function ue(v, w, F) {
      return v.type !== w || v.literal !== F ? r(Er(w, F), v) : v;
    }
    function pt(v) {
      return Fe(v);
    }
    function Wt(v, w, F) {
      const oe = H(179);
      return oe.assertsModifier = v, oe.parameterName = bc(w), oe.type = F, oe.transformFlags = 1, oe;
    }
    function it(v, w, F, oe) {
      return v.assertsModifier !== w || v.parameterName !== F || v.type !== oe ? r(Wt(w, F, oe), v) : v;
    }
    function K(v, w) {
      const F = H(180);
      return F.typeName = bc(v), F.typeArguments = w && i().parenthesizeTypeArguments(V(w)), F.transformFlags = 1, F;
    }
    function Pe(v, w, F) {
      return v.typeName !== w || v.typeArguments !== F ? r(K(w, F), v) : v;
    }
    function Z(v, w, F) {
      const oe = te(181);
      return oe.typeParameters = Lo(v), oe.parameters = Lo(w), oe.type = F, oe.transformFlags = 1, oe.modifiers = void 0, oe.jsDoc = void 0, oe.locals = void 0, oe.nextContainer = void 0, oe.typeArguments = void 0, oe;
    }
    function Re(v, w, F, oe) {
      return v.typeParameters !== w || v.parameters !== F || v.type !== oe ? q(Z(w, F, oe), v) : v;
    }
    function q(v, w) {
      return v !== w && (v.modifiers = w.modifiers), X(v, w);
    }
    function Rt(...v) {
      return v.length === 4 ? ht(...v) : v.length === 3 ? dt(...v) : D.fail("Incorrect number of arguments specified.");
    }
    function ht(v, w, F, oe) {
      const qe = te(182);
      return qe.modifiers = Lo(v), qe.typeParameters = Lo(w), qe.parameters = Lo(F), qe.type = oe, qe.transformFlags = 1, qe.jsDoc = void 0, qe.locals = void 0, qe.nextContainer = void 0, qe.typeArguments = void 0, qe;
    }
    function dt(v, w, F) {
      return ht(void 0, v, w, F);
    }
    function fn(...v) {
      return v.length === 5 ? Qn(...v) : v.length === 4 ? ai(...v) : D.fail("Incorrect number of arguments specified.");
    }
    function Qn(v, w, F, oe, qe) {
      return v.modifiers !== w || v.typeParameters !== F || v.parameters !== oe || v.type !== qe ? X(Rt(w, F, oe, qe), v) : v;
    }
    function ai(v, w, F, oe) {
      return Qn(v, v.modifiers, w, F, oe);
    }
    function Si(v, w) {
      const F = H(183);
      return F.exprName = v, F.typeArguments = w && i().parenthesizeTypeArguments(w), F.transformFlags = 1, F;
    }
    function xi(v, w, F) {
      return v.exprName !== w || v.typeArguments !== F ? r(Si(w, F), v) : v;
    }
    function Gi(v) {
      const w = te(184);
      return w.members = V(v), w.transformFlags = 1, w;
    }
    function _o(v, w) {
      return v.members !== w ? r(Gi(w), v) : v;
    }
    function bo(v) {
      const w = H(185);
      return w.elementType = i().parenthesizeNonArrayTypeOfPostfixType(v), w.transformFlags = 1, w;
    }
    function no(v, w) {
      return v.elementType !== w ? r(bo(w), v) : v;
    }
    function sa(v) {
      const w = H(186);
      return w.elements = V(i().parenthesizeElementTypesOfTupleType(v)), w.transformFlags = 1, w;
    }
    function Ui(v, w) {
      return v.elements !== w ? r(sa(w), v) : v;
    }
    function Jr(v, w, F, oe) {
      const qe = te(199);
      return qe.dotDotDotToken = v, qe.name = w, qe.questionToken = F, qe.type = oe, qe.transformFlags = 1, qe.jsDoc = void 0, qe;
    }
    function is(v, w, F, oe, qe) {
      return v.dotDotDotToken !== w || v.name !== F || v.questionToken !== oe || v.type !== qe ? r(Jr(w, F, oe, qe), v) : v;
    }
    function di(v) {
      const w = H(187);
      return w.type = i().parenthesizeTypeOfOptionalType(v), w.transformFlags = 1, w;
    }
    function ca(v, w) {
      return v.type !== w ? r(di(w), v) : v;
    }
    function wn(v) {
      const w = H(188);
      return w.type = v, w.transformFlags = 1, w;
    }
    function ua(v, w) {
      return v.type !== w ? r(wn(w), v) : v;
    }
    function $c(v, w, F) {
      const oe = H(v);
      return oe.types = B.createNodeArray(F(w)), oe.transformFlags = 1, oe;
    }
    function nc(v, w, F) {
      return v.types !== w ? r($c(v.kind, w, F), v) : v;
    }
    function Fc(v) {
      return $c(189, v, i().parenthesizeConstituentTypesOfUnionType);
    }
    function qc(v, w) {
      return nc(v, w, i().parenthesizeConstituentTypesOfUnionType);
    }
    function Bc(v) {
      return $c(190, v, i().parenthesizeConstituentTypesOfIntersectionType);
    }
    function xo(v, w) {
      return nc(v, w, i().parenthesizeConstituentTypesOfIntersectionType);
    }
    function Sa(v, w, F, oe) {
      const qe = H(191);
      return qe.checkType = i().parenthesizeCheckTypeOfConditionalType(v), qe.extendsType = i().parenthesizeExtendsTypeOfConditionalType(w), qe.trueType = F, qe.falseType = oe, qe.transformFlags = 1, qe.locals = void 0, qe.nextContainer = void 0, qe;
    }
    function Jo(v, w, F, oe, qe) {
      return v.checkType !== w || v.extendsType !== F || v.trueType !== oe || v.falseType !== qe ? r(Sa(w, F, oe, qe), v) : v;
    }
    function Gc(v) {
      const w = H(192);
      return w.typeParameter = v, w.transformFlags = 1, w;
    }
    function Yl(v, w) {
      return v.typeParameter !== w ? r(Gc(w), v) : v;
    }
    function jd(v, w) {
      const F = H(200);
      return F.head = v, F.templateSpans = V(w), F.transformFlags = 1, F;
    }
    function rl(v, w, F) {
      return v.head !== w || v.templateSpans !== F ? r(jd(w, F), v) : v;
    }
    function Hl(v, w, F, oe, qe = !1) {
      const qt = H(202);
      return qt.argument = v, qt.assertions = w, qt.qualifier = F, qt.typeArguments = oe && i().parenthesizeTypeArguments(oe), qt.isTypeOf = qe, qt.transformFlags = 1, qt;
    }
    function Is(v, w, F, oe, qe, qt = v.isTypeOf) {
      return v.argument !== w || v.assertions !== F || v.qualifier !== oe || v.typeArguments !== qe || v.isTypeOf !== qt ? r(Hl(w, F, oe, qe, qt), v) : v;
    }
    function mc(v) {
      const w = H(193);
      return w.type = v, w.transformFlags = 1, w;
    }
    function $s(v, w) {
      return v.type !== w ? r(mc(w), v) : v;
    }
    function zs() {
      const v = H(194);
      return v.transformFlags = 1, v;
    }
    function tn(v, w) {
      const F = H(195);
      return F.operator = v, F.type = v === 146 ? i().parenthesizeOperandOfReadonlyTypeOperator(w) : i().parenthesizeOperandOfTypeOperator(w), F.transformFlags = 1, F;
    }
    function Uc(v, w) {
      return v.type !== w ? r(tn(v.operator, w), v) : v;
    }
    function bu(v, w) {
      const F = H(196);
      return F.objectType = i().parenthesizeNonArrayTypeOfPostfixType(v), F.indexType = w, F.transformFlags = 1, F;
    }
    function Uu(v, w, F) {
      return v.objectType !== w || v.indexType !== F ? r(bu(w, F), v) : v;
    }
    function fe(v, w, F, oe, qe, qt) {
      const Br = te(197);
      return Br.readonlyToken = v, Br.typeParameter = w, Br.nameType = F, Br.questionToken = oe, Br.type = qe, Br.members = qt && V(qt), Br.transformFlags = 1, Br.locals = void 0, Br.nextContainer = void 0, Br;
    }
    function It(v, w, F, oe, qe, qt, Br) {
      return v.readonlyToken !== w || v.typeParameter !== F || v.nameType !== oe || v.questionToken !== qe || v.type !== qt || v.members !== Br ? r(fe(w, F, oe, qe, qt, Br), v) : v;
    }
    function jt(v) {
      const w = H(198);
      return w.literal = v, w.transformFlags = 1, w;
    }
    function Q(v, w) {
      return v.literal !== w ? r(jt(w), v) : v;
    }
    function ot(v) {
      const w = H(203);
      return w.elements = V(v), w.transformFlags |= No(w.elements) | 1024 | 524288, w.transformFlags & 32768 && (w.transformFlags |= 65664), w;
    }
    function xt(v, w) {
      return v.elements !== w ? r(ot(w), v) : v;
    }
    function pn(v) {
      const w = H(204);
      return w.elements = V(v), w.transformFlags |= No(w.elements) | 1024 | 524288, w;
    }
    function wr(v, w) {
      return v.elements !== w ? r(pn(w), v) : v;
    }
    function Or(v, w, F, oe) {
      const qe = te(205);
      return qe.dotDotDotToken = v, qe.propertyName = bc(w), qe.name = bc(F), qe.initializer = Yy(oe), qe.transformFlags |= hr(qe.dotDotDotToken) | gy(qe.propertyName) | gy(qe.name) | hr(qe.initializer) | (qe.dotDotDotToken ? 32768 : 0) | 1024, qe.flowNode = void 0, qe;
    }
    function ya(v, w, F, oe, qe) {
      return v.propertyName !== F || v.dotDotDotToken !== w || v.name !== oe || v.initializer !== qe ? r(Or(w, F, oe, qe), v) : v;
    }
    function as(v, w) {
      const F = H(206), oe = v && ec(v), qe = V(v, oe && kl(oe) ? !0 : void 0);
      return F.elements = i().parenthesizeExpressionsOfCommaDelimitedList(qe), F.multiLine = w, F.transformFlags |= No(F.elements), F;
    }
    function po(v, w) {
      return v.elements !== w ? r(as(w, v.multiLine), v) : v;
    }
    function Uo(v, w) {
      const F = te(207);
      return F.properties = V(v), F.multiLine = w, F.transformFlags |= No(F.properties), F.jsDoc = void 0, F;
    }
    function Ka(v, w) {
      return v.properties !== w ? r(Uo(w, v.multiLine), v) : v;
    }
    function uc(v, w, F) {
      const oe = te(208);
      return oe.expression = v, oe.questionDotToken = w, oe.name = F, oe.transformFlags = hr(oe.expression) | hr(oe.questionDotToken) | (Ve(oe.name) ? gk(oe.name) : hr(oe.name) | 536870912), oe.jsDoc = void 0, oe.flowNode = void 0, oe;
    }
    function ll(v, w) {
      const F = uc(i().parenthesizeLeftSideOfAccess(v, !1), void 0, bc(w));
      return Ek(v) && (F.transformFlags |= 384), F;
    }
    function ud(v, w, F) {
      return bM(v) ? cs(v, w, v.questionDotToken, ro(F, Ve)) : v.expression !== w || v.name !== F ? r(ll(w, F), v) : v;
    }
    function ys(v, w, F) {
      const oe = uc(i().parenthesizeLeftSideOfAccess(v, !0), w, bc(F));
      return oe.flags |= 32, oe.transformFlags |= 32, oe;
    }
    function cs(v, w, F, oe) {
      return D.assert(!!(v.flags & 32), "Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."), v.expression !== w || v.questionDotToken !== F || v.name !== oe ? r(ys(w, F, oe), v) : v;
    }
    function dc(v, w, F) {
      const oe = te(209);
      return oe.expression = v, oe.questionDotToken = w, oe.argumentExpression = F, oe.transformFlags |= hr(oe.expression) | hr(oe.questionDotToken) | hr(oe.argumentExpression), oe.jsDoc = void 0, oe.flowNode = void 0, oe;
    }
    function Hd(v, w) {
      const F = dc(i().parenthesizeLeftSideOfAccess(v, !1), void 0, h0(w));
      return Ek(v) && (F.transformFlags |= 384), F;
    }
    function Vc(v, w, F) {
      return nW(v) ? Se(v, w, v.questionDotToken, F) : v.expression !== w || v.argumentExpression !== F ? r(Hd(w, F), v) : v;
    }
    function kf(v, w, F) {
      const oe = dc(i().parenthesizeLeftSideOfAccess(v, !0), w, h0(F));
      return oe.flags |= 32, oe.transformFlags |= 32, oe;
    }
    function Se(v, w, F, oe) {
      return D.assert(!!(v.flags & 32), "Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."), v.expression !== w || v.questionDotToken !== F || v.argumentExpression !== oe ? r(kf(w, F, oe), v) : v;
    }
    function Dt(v, w, F, oe) {
      const qe = te(210);
      return qe.expression = v, qe.questionDotToken = w, qe.typeArguments = F, qe.arguments = oe, qe.transformFlags |= hr(qe.expression) | hr(qe.questionDotToken) | No(qe.typeArguments) | No(qe.arguments), qe.typeArguments && (qe.transformFlags |= 1), sd(qe.expression) && (qe.transformFlags |= 16384), qe;
    }
    function On(v, w, F) {
      const oe = Dt(i().parenthesizeLeftSideOfAccess(v, !1), void 0, Lo(w), i().parenthesizeExpressionsOfCommaDelimitedList(V(F)));
      return Tk(oe.expression) && (oe.transformFlags |= 8388608), oe;
    }
    function qi(v, w, F, oe) {
      return tT(v) ? ae(v, w, v.questionDotToken, F, oe) : v.expression !== w || v.typeArguments !== F || v.arguments !== oe ? r(On(w, F, oe), v) : v;
    }
    function Ao(v, w, F, oe) {
      const qe = Dt(i().parenthesizeLeftSideOfAccess(v, !0), w, Lo(F), i().parenthesizeExpressionsOfCommaDelimitedList(V(oe)));
      return qe.flags |= 32, qe.transformFlags |= 32, qe;
    }
    function ae(v, w, F, oe, qe) {
      return D.assert(!!(v.flags & 32), "Cannot update a CallExpression using updateCallChain. Use updateCall instead."), v.expression !== w || v.questionDotToken !== F || v.typeArguments !== oe || v.arguments !== qe ? r(Ao(w, F, oe, qe), v) : v;
    }
    function lt(v, w, F) {
      const oe = te(211);
      return oe.expression = i().parenthesizeExpressionOfNew(v), oe.typeArguments = Lo(w), oe.arguments = F ? i().parenthesizeExpressionsOfCommaDelimitedList(F) : void 0, oe.transformFlags |= hr(oe.expression) | No(oe.typeArguments) | No(oe.arguments) | 32, oe.typeArguments && (oe.transformFlags |= 1), oe;
    }
    function Mt(v, w, F, oe) {
      return v.expression !== w || v.typeArguments !== F || v.arguments !== oe ? r(lt(w, F, oe), v) : v;
    }
    function Pt(v, w, F) {
      const oe = H(212);
      return oe.tag = i().parenthesizeLeftSideOfAccess(v, !1), oe.typeArguments = Lo(w), oe.template = F, oe.transformFlags |= hr(oe.tag) | No(oe.typeArguments) | hr(oe.template) | 1024, oe.typeArguments && (oe.transformFlags |= 1), vz(oe.template) && (oe.transformFlags |= 128), oe;
    }
    function un(v, w, F, oe) {
      return v.tag !== w || v.typeArguments !== F || v.template !== oe ? r(Pt(w, F, oe), v) : v;
    }
    function jn(v, w) {
      const F = H(213);
      return F.expression = i().parenthesizeOperandOfPrefixUnary(w), F.type = v, F.transformFlags |= hr(F.expression) | hr(F.type) | 1, F;
    }
    function Dr(v, w, F) {
      return v.type !== w || v.expression !== F ? r(jn(w, F), v) : v;
    }
    function ei(v) {
      const w = H(214);
      return w.expression = v, w.transformFlags = hr(w.expression), w.jsDoc = void 0, w;
    }
    function Oi(v, w) {
      return v.expression !== w ? r(ei(w), v) : v;
    }
    function Ga(v, w, F, oe, qe, qt, Br) {
      const ea = te(215);
      ea.modifiers = Lo(v), ea.asteriskToken = w, ea.name = bc(F), ea.typeParameters = Lo(oe), ea.parameters = V(qe), ea.type = qt, ea.body = Br;
      const Xa = Mm(ea.modifiers) & 512, mf = !!ea.asteriskToken, Ug = Xa && mf;
      return ea.transformFlags = No(ea.modifiers) | hr(ea.asteriskToken) | gy(ea.name) | No(ea.typeParameters) | No(ea.parameters) | hr(ea.type) | hr(ea.body) & -67108865 | (Ug ? 128 : Xa ? 256 : mf ? 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 Vo(v, w, F, oe, qe, qt, Br, ea) {
      return v.name !== oe || v.modifiers !== w || v.asteriskToken !== F || v.typeParameters !== qe || v.parameters !== qt || v.type !== Br || v.body !== ea ? X(Ga(w, F, oe, qe, qt, Br, ea), v) : v;
    }
    function vs(v, w, F, oe, qe, qt) {
      const Br = te(216);
      Br.modifiers = Lo(v), Br.typeParameters = Lo(w), Br.parameters = V(F), Br.type = oe, Br.equalsGreaterThanToken = qe ?? Fe(38), Br.body = i().parenthesizeConciseBodyOfArrowFunction(qt);
      const ea = Mm(Br.modifiers) & 512;
      return Br.transformFlags = No(Br.modifiers) | No(Br.typeParameters) | No(Br.parameters) | hr(Br.type) | hr(Br.equalsGreaterThanToken) | hr(Br.body) & -67108865 | (Br.typeParameters || Br.type ? 1 : 0) | (ea ? 16640 : 0) | 1024, Br.typeArguments = void 0, Br.jsDoc = void 0, Br.locals = void 0, Br.nextContainer = void 0, Br.flowNode = void 0, Br.endFlowNode = void 0, Br.returnFlowNode = void 0, Br;
    }
    function qs(v, w, F, oe, qe, qt, Br) {
      return v.modifiers !== w || v.typeParameters !== F || v.parameters !== oe || v.type !== qe || v.equalsGreaterThanToken !== qt || v.body !== Br ? X(vs(w, F, oe, qe, qt, Br), v) : v;
    }
    function dd(v) {
      const w = H(217);
      return w.expression = i().parenthesizeOperandOfPrefixUnary(v), w.transformFlags |= hr(w.expression), w;
    }
    function lf(v, w) {
      return v.expression !== w ? r(dd(w), v) : v;
    }
    function Qc(v) {
      const w = H(218);
      return w.expression = i().parenthesizeOperandOfPrefixUnary(v), w.transformFlags |= hr(w.expression), w;
    }
    function Wd(v, w) {
      return v.expression !== w ? r(Qc(w), v) : v;
    }
    function Eu(v) {
      const w = H(219);
      return w.expression = i().parenthesizeOperandOfPrefixUnary(v), w.transformFlags |= hr(w.expression), w;
    }
    function uf(v, w) {
      return v.expression !== w ? r(Eu(w), v) : v;
    }
    function b_(v) {
      const w = H(220);
      return w.expression = i().parenthesizeOperandOfPrefixUnary(v), w.transformFlags |= hr(w.expression) | 256 | 128 | 2097152, w;
    }
    function Ko(v, w) {
      return v.expression !== w ? r(b_(w), v) : v;
    }
    function E_(v, w) {
      const F = H(221);
      return F.operator = v, F.operand = i().parenthesizeOperandOfPrefixUnary(w), F.transformFlags |= hr(F.operand), (v === 45 || v === 46) && Ve(F.operand) && !Tc(F.operand) && !Mv(F.operand) && (F.transformFlags |= 268435456), F;
    }
    function df(v, w) {
      return v.operand !== w ? r(E_(v.operator, w), v) : v;
    }
    function Y_(v, w) {
      const F = H(222);
      return F.operator = w, F.operand = i().parenthesizeOperandOfPostfixUnary(v), F.transformFlags |= hr(F.operand), Ve(F.operand) && !Tc(F.operand) && !Mv(F.operand) && (F.transformFlags |= 268435456), F;
    }
    function Ap(v, w) {
      return v.operand !== w ? r(Y_(w, v.operator), v) : v;
    }
    function G(v, w, F) {
      const oe = te(223), qe = Xw(w), qt = qe.kind;
      return oe.left = i().parenthesizeLeftSideOfBinary(qt, v), oe.operatorToken = qe, oe.right = i().parenthesizeRightSideOfBinary(qt, oe.left, F), oe.transformFlags |= hr(oe.left) | hr(oe.operatorToken) | hr(oe.right), qt === 60 ? oe.transformFlags |= 32 : qt === 63 ? xs(oe.left) ? oe.transformFlags |= 5248 | Ze(oe.left) : Ou(oe.left) && (oe.transformFlags |= 5120 | Ze(oe.left)) : qt === 42 || qt === 67 ? oe.transformFlags |= 512 : KI(qt) && (oe.transformFlags |= 16), qt === 101 && Di(oe.left) && (oe.transformFlags |= 536870912), oe.jsDoc = void 0, oe;
    }
    function Ze(v) {
      return GO(v) ? 65536 : 0;
    }
    function zt(v, w, F, oe) {
      return v.left !== w || v.operatorToken !== F || v.right !== oe ? r(G(w, F, oe), v) : v;
    }
    function $n(v, w, F, oe, qe) {
      const qt = H(224);
      return qt.condition = i().parenthesizeConditionOfConditionalExpression(v), qt.questionToken = w ?? Fe(57), qt.whenTrue = i().parenthesizeBranchOfConditionalExpression(F), qt.colonToken = oe ?? Fe(58), qt.whenFalse = i().parenthesizeBranchOfConditionalExpression(qe), qt.transformFlags |= hr(qt.condition) | hr(qt.questionToken) | hr(qt.whenTrue) | hr(qt.colonToken) | hr(qt.whenFalse), qt;
    }
    function La(v, w, F, oe, qe, qt) {
      return v.condition !== w || v.questionToken !== F || v.whenTrue !== oe || v.colonToken !== qe || v.whenFalse !== qt ? r($n(w, F, oe, qe, qt), v) : v;
    }
    function xa(v, w) {
      const F = H(225);
      return F.head = v, F.templateSpans = V(w), F.transformFlags |= hr(F.head) | No(F.templateSpans) | 1024, F;
    }
    function Ce(v, w, F) {
      return v.head !== w || v.templateSpans !== F ? r(xa(w, F), v) : v;
    }
    function Ge(v, w, F, oe = 0) {
      D.assert(!(oe & -2049), "Unsupported template flags.");
      let qe;
      if (F !== void 0 && F !== w && (qe = y6e(v, F), typeof qe == "object"))
        return D.fail("Invalid raw text");
      if (w === void 0) {
        if (qe === void 0)
          return D.fail("Arguments 'text' and 'rawText' may not both be undefined.");
        w = qe;
      } else
        qe !== void 0 && D.assert(w === qe, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");
      return w;
    }
    function Lt(v) {
      let w = 1024;
      return v && (w |= 128), w;
    }
    function Ot(v, w, F, oe) {
      const qe = He(v);
      return qe.text = w, qe.rawText = F, qe.templateFlags = oe & 2048, qe.transformFlags = Lt(qe.templateFlags), qe;
    }
    function mn(v, w, F, oe) {
      const qe = te(v);
      return qe.text = w, qe.rawText = F, qe.templateFlags = oe & 2048, qe.transformFlags = Lt(qe.templateFlags), qe;
    }
    function bn(v, w, F, oe) {
      return v === 14 ? mn(v, w, F, oe) : Ot(v, w, F, oe);
    }
    function Tn(v, w, F) {
      return v = Ge(15, v, w, F), bn(15, v, w, F);
    }
    function zn(v, w, F) {
      return v = Ge(15, v, w, F), bn(16, v, w, F);
    }
    function Wr(v, w, F) {
      return v = Ge(15, v, w, F), bn(17, v, w, F);
    }
    function Wi(v, w, F) {
      return v = Ge(15, v, w, F), mn(14, v, w, F);
    }
    function nr(v, w) {
      D.assert(!v || !!w, "A `YieldExpression` with an asteriskToken must have an expression.");
      const F = H(226);
      return F.expression = w && i().parenthesizeExpressionForDisallowedComma(w), F.asteriskToken = v, F.transformFlags |= hr(F.expression) | hr(F.asteriskToken) | 1024 | 128 | 1048576, F;
    }
    function _n(v, w, F) {
      return v.expression !== F || v.asteriskToken !== w ? r(nr(w, F), v) : v;
    }
    function dr(v) {
      const w = H(227);
      return w.expression = i().parenthesizeExpressionForDisallowedComma(v), w.transformFlags |= hr(w.expression) | 1024 | 32768, w;
    }
    function Ea(v, w) {
      return v.expression !== w ? r(dr(w), v) : v;
    }
    function Js(v, w, F, oe, qe) {
      const qt = te(228);
      return qt.modifiers = Lo(v), qt.name = bc(w), qt.typeParameters = Lo(F), qt.heritageClauses = Lo(oe), qt.members = V(qe), qt.transformFlags |= No(qt.modifiers) | gy(qt.name) | No(qt.typeParameters) | No(qt.heritageClauses) | No(qt.members) | (qt.typeParameters ? 1 : 0) | 1024, qt.jsDoc = void 0, qt;
    }
    function il(v, w, F, oe, qe, qt) {
      return v.modifiers !== w || v.name !== F || v.typeParameters !== oe || v.heritageClauses !== qe || v.members !== qt ? r(Js(w, F, oe, qe, qt), v) : v;
    }
    function Jm() {
      return H(229);
    }
    function bg(v, w) {
      const F = H(230);
      return F.expression = i().parenthesizeLeftSideOfAccess(v, !1), F.typeArguments = w && i().parenthesizeTypeArguments(w), F.transformFlags |= hr(F.expression) | No(F.typeArguments) | 1024, F;
    }
    function $_(v, w, F) {
      return v.expression !== w || v.typeArguments !== F ? r(bg(w, F), v) : v;
    }
    function lb(v, w) {
      const F = H(231);
      return F.expression = v, F.type = w, F.transformFlags |= hr(F.expression) | hr(F.type) | 1, F;
    }
    function Kv(v, w, F) {
      return v.expression !== w || v.type !== F ? r(lb(w, F), v) : v;
    }
    function l2(v) {
      const w = H(232);
      return w.expression = i().parenthesizeLeftSideOfAccess(v, !1), w.transformFlags |= hr(w.expression) | 1, w;
    }
    function rS(v, w) {
      return TM(v) ? Xv(v, w) : v.expression !== w ? r(l2(w), v) : v;
    }
    function u2(v, w) {
      const F = H(235);
      return F.expression = v, F.type = w, F.transformFlags |= hr(F.expression) | hr(F.type) | 1, F;
    }
    function Eg(v, w, F) {
      return v.expression !== w || v.type !== F ? r(u2(w, F), v) : v;
    }
    function Q_(v) {
      const w = H(232);
      return w.flags |= 32, w.expression = i().parenthesizeLeftSideOfAccess(v, !0), w.transformFlags |= hr(w.expression) | 1, w;
    }
    function Xv(v, w) {
      return D.assert(!!(v.flags & 32), "Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."), v.expression !== w ? r(Q_(w), v) : v;
    }
    function Dh(v, w) {
      const F = H(233);
      switch (F.keywordToken = v, F.name = w, F.transformFlags |= hr(F.name), v) {
        case 103:
          F.transformFlags |= 1024;
          break;
        case 100:
          F.transformFlags |= 4;
          break;
        default:
          return D.assertNever(v);
      }
      return F.flowNode = void 0, F;
    }
    function Cp(v, w) {
      return v.name !== w ? r(Dh(v.keywordToken, w), v) : v;
    }
    function Yv(v, w) {
      const F = H(236);
      return F.expression = v, F.literal = w, F.transformFlags |= hr(F.expression) | hr(F.literal) | 1024, F;
    }
    function Y1(v, w, F) {
      return v.expression !== w || v.literal !== F ? r(Yv(w, F), v) : v;
    }
    function ub() {
      const v = H(237);
      return v.transformFlags |= 1024, v;
    }
    function Tg(v, w) {
      const F = H(238);
      return F.statements = V(v), F.multiLine = w, F.transformFlags |= No(F.statements), F.jsDoc = void 0, F.locals = void 0, F.nextContainer = void 0, F;
    }
    function iS(v, w) {
      return v.statements !== w ? r(Tg(w, v.multiLine), v) : v;
    }
    function $1(v, w) {
      const F = H(240);
      return F.modifiers = Lo(v), F.declarationList = Ba(w) ? im(w) : w, F.transformFlags |= No(F.modifiers) | hr(F.declarationList), Mm(F.modifiers) & 2 && (F.transformFlags = 1), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function Q1(v, w, F) {
      return v.modifiers !== w || v.declarationList !== F ? r($1(w, F), v) : v;
    }
    function Z1() {
      const v = H(239);
      return v.jsDoc = void 0, v;
    }
    function $v(v) {
      const w = H(241);
      return w.expression = i().parenthesizeExpressionOfExpressionStatement(v), w.transformFlags |= hr(w.expression), w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function d2(v, w) {
      return v.expression !== w ? r($v(w), v) : v;
    }
    function eE(v, w, F) {
      const oe = H(242);
      return oe.expression = v, oe.thenStatement = Rd(w), oe.elseStatement = Rd(F), oe.transformFlags |= hr(oe.expression) | hr(oe.thenStatement) | hr(oe.elseStatement), oe.jsDoc = void 0, oe.flowNode = void 0, oe;
    }
    function tE(v, w, F, oe) {
      return v.expression !== w || v.thenStatement !== F || v.elseStatement !== oe ? r(eE(w, F, oe), v) : v;
    }
    function Qv(v, w) {
      const F = H(243);
      return F.statement = Rd(v), F.expression = w, F.transformFlags |= hr(F.statement) | hr(F.expression), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function db(v, w, F) {
      return v.statement !== w || v.expression !== F ? r(Qv(w, F), v) : v;
    }
    function Zv(v, w) {
      const F = H(244);
      return F.expression = v, F.statement = Rd(w), F.transformFlags |= hr(F.expression) | hr(F.statement), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function aS(v, w, F) {
      return v.expression !== w || v.statement !== F ? r(Zv(w, F), v) : v;
    }
    function Sg(v, w, F, oe) {
      const qe = H(245);
      return qe.initializer = v, qe.condition = w, qe.incrementor = F, qe.statement = Rd(oe), qe.transformFlags |= hr(qe.initializer) | hr(qe.condition) | hr(qe.incrementor) | hr(qe.statement), qe.jsDoc = void 0, qe.locals = void 0, qe.nextContainer = void 0, qe.flowNode = void 0, qe;
    }
    function Xo(v, w, F, oe, qe) {
      return v.initializer !== w || v.condition !== F || v.incrementor !== oe || v.statement !== qe ? r(Sg(w, F, oe, qe), v) : v;
    }
    function nE(v, w, F) {
      const oe = H(246);
      return oe.initializer = v, oe.expression = w, oe.statement = Rd(F), oe.transformFlags |= hr(oe.initializer) | hr(oe.expression) | hr(oe.statement), oe.jsDoc = void 0, oe.locals = void 0, oe.nextContainer = void 0, oe.flowNode = void 0, oe;
    }
    function sL(v, w, F, oe) {
      return v.initializer !== w || v.expression !== F || v.statement !== oe ? r(nE(w, F, oe), v) : v;
    }
    function Ry(v, w, F, oe) {
      const qe = H(247);
      return qe.awaitModifier = v, qe.initializer = w, qe.expression = i().parenthesizeExpressionForDisallowedComma(F), qe.statement = Rd(oe), qe.transformFlags |= hr(qe.awaitModifier) | hr(qe.initializer) | hr(qe.expression) | hr(qe.statement) | 1024, v && (qe.transformFlags |= 128), qe.jsDoc = void 0, qe.locals = void 0, qe.nextContainer = void 0, qe.flowNode = void 0, qe;
    }
    function xg(v, w, F, oe, qe) {
      return v.awaitModifier !== w || v.initializer !== F || v.expression !== oe || v.statement !== qe ? r(Ry(w, F, oe, qe), v) : v;
    }
    function Km(v) {
      const w = H(248);
      return w.label = bc(v), w.transformFlags |= hr(w.label) | 4194304, w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function Z_(v, w) {
      return v.label !== w ? r(Km(w), v) : v;
    }
    function Cd(v) {
      const w = H(249);
      return w.label = bc(v), w.transformFlags |= hr(w.label) | 4194304, w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function Ld(v, w) {
      return v.label !== w ? r(Cd(w), v) : v;
    }
    function Id(v) {
      const w = H(250);
      return w.expression = v, w.transformFlags |= hr(w.expression) | 128 | 4194304, w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function fb(v, w) {
      return v.expression !== w ? r(Id(w), v) : v;
    }
    function _b(v, w) {
      const F = H(251);
      return F.expression = v, F.statement = Rd(w), F.transformFlags |= hr(F.expression) | hr(F.statement), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function f2(v, w, F) {
      return v.expression !== w || v.statement !== F ? r(_b(w, F), v) : v;
    }
    function pb(v, w) {
      const F = H(252);
      return F.expression = i().parenthesizeExpressionForDisallowedComma(v), F.caseBlock = w, F.transformFlags |= hr(F.expression) | hr(F.caseBlock), F.jsDoc = void 0, F.flowNode = void 0, F.possiblyExhaustive = !1, F;
    }
    function Ag(v, w, F) {
      return v.expression !== w || v.caseBlock !== F ? r(pb(w, F), v) : v;
    }
    function mb(v, w) {
      const F = H(253);
      return F.label = bc(v), F.statement = Rd(w), F.transformFlags |= hr(F.label) | hr(F.statement), F.jsDoc = void 0, F.flowNode = void 0, F;
    }
    function oS(v, w, F) {
      return v.label !== w || v.statement !== F ? r(mb(w, F), v) : v;
    }
    function hb(v) {
      const w = H(254);
      return w.expression = v, w.transformFlags |= hr(w.expression), w.jsDoc = void 0, w.flowNode = void 0, w;
    }
    function cL(v, w) {
      return v.expression !== w ? r(hb(w), v) : v;
    }
    function _2(v, w, F) {
      const oe = H(255);
      return oe.tryBlock = v, oe.catchClause = w, oe.finallyBlock = F, oe.transformFlags |= hr(oe.tryBlock) | hr(oe.catchClause) | hr(oe.finallyBlock), oe.jsDoc = void 0, oe.flowNode = void 0, oe;
    }
    function e0(v, w, F, oe) {
      return v.tryBlock !== w || v.catchClause !== F || v.finallyBlock !== oe ? r(_2(w, F, oe), v) : v;
    }
    function rE() {
      const v = H(256);
      return v.jsDoc = void 0, v.flowNode = void 0, v;
    }
    function Je(v, w, F, oe) {
      var qe;
      const qt = te(257);
      return qt.name = bc(v), qt.exclamationToken = w, qt.type = F, qt.initializer = Yy(oe), qt.transformFlags |= gy(qt.name) | hr(qt.initializer) | (((qe = qt.exclamationToken) != null ? qe : qt.type) ? 1 : 0), qt.jsDoc = void 0, qt;
    }
    function Ny(v, w, F, oe, qe) {
      return v.name !== w || v.type !== oe || v.exclamationToken !== F || v.initializer !== qe ? r(Je(w, F, oe, qe), v) : v;
    }
    function im(v, w = 0) {
      const F = H(258);
      return F.flags |= w & 3, F.declarations = V(v), F.transformFlags |= No(F.declarations) | 4194304, w & 3 && (F.transformFlags |= 263168), F;
    }
    function t0(v, w) {
      return v.declarations !== w ? r(im(w, v.flags), v) : v;
    }
    function gb(v, w, F, oe, qe, qt, Br) {
      const ea = te(259);
      if (ea.modifiers = Lo(v), ea.asteriskToken = w, ea.name = bc(F), ea.typeParameters = Lo(oe), ea.parameters = V(qe), ea.type = qt, ea.body = Br, !ea.body || Mm(ea.modifiers) & 2)
        ea.transformFlags = 1;
      else {
        const Xa = Mm(ea.modifiers) & 512, mf = !!ea.asteriskToken, Ug = Xa && mf;
        ea.transformFlags = No(ea.modifiers) | hr(ea.asteriskToken) | gy(ea.name) | No(ea.typeParameters) | No(ea.parameters) | hr(ea.type) | hr(ea.body) & -67108865 | (Ug ? 128 : Xa ? 256 : mf ? 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 n0(v, w, F, oe, qe, qt, Br, ea) {
      return v.modifiers !== w || v.asteriskToken !== F || v.name !== oe || v.typeParameters !== qe || v.parameters !== qt || v.type !== Br || v.body !== ea ? Cg(gb(w, F, oe, qe, qt, Br, ea), v) : v;
    }
    function Cg(v, w) {
      return v !== w && v.modifiers === w.modifiers && (v.modifiers = w.modifiers), X(v, w);
    }
    function sS(v, w, F, oe, qe) {
      const qt = te(260);
      return qt.modifiers = Lo(v), qt.name = bc(w), qt.typeParameters = Lo(F), qt.heritageClauses = Lo(oe), qt.members = V(qe), Mm(qt.modifiers) & 2 ? qt.transformFlags = 1 : (qt.transformFlags |= No(qt.modifiers) | gy(qt.name) | No(qt.typeParameters) | No(qt.heritageClauses) | No(qt.members) | (qt.typeParameters ? 1 : 0) | 1024, qt.transformFlags & 8192 && (qt.transformFlags |= 1)), qt.jsDoc = void 0, qt;
    }
    function Qo(v, w, F, oe, qe, qt) {
      return v.modifiers !== w || v.name !== F || v.typeParameters !== oe || v.heritageClauses !== qe || v.members !== qt ? r(sS(w, F, oe, qe, qt), v) : v;
    }
    function ep(v, w, F, oe, qe) {
      const qt = te(261);
      return qt.modifiers = Lo(v), qt.name = bc(w), qt.typeParameters = Lo(F), qt.heritageClauses = Lo(oe), qt.members = V(qe), qt.transformFlags = 1, qt.jsDoc = void 0, qt;
    }
    function iE(v, w, F, oe, qe, qt) {
      return v.modifiers !== w || v.name !== F || v.typeParameters !== oe || v.heritageClauses !== qe || v.members !== qt ? r(ep(w, F, oe, qe, qt), v) : v;
    }
    function hl(v, w, F, oe) {
      const qe = te(262);
      return qe.modifiers = Lo(v), qe.name = bc(w), qe.typeParameters = Lo(F), qe.type = oe, qe.transformFlags = 1, qe.jsDoc = void 0, qe.locals = void 0, qe.nextContainer = void 0, qe;
    }
    function Rh(v, w, F, oe, qe) {
      return v.modifiers !== w || v.name !== F || v.typeParameters !== oe || v.type !== qe ? r(hl(w, F, oe, qe), v) : v;
    }
    function yb(v, w, F) {
      const oe = te(263);
      return oe.modifiers = Lo(v), oe.name = bc(w), oe.members = V(F), oe.transformFlags |= No(oe.modifiers) | hr(oe.name) | No(oe.members) | 1, oe.transformFlags &= -67108865, oe.jsDoc = void 0, oe;
    }
    function tp(v, w, F, oe) {
      return v.modifiers !== w || v.name !== F || v.members !== oe ? r(yb(w, F, oe), v) : v;
    }
    function vb(v, w, F, oe = 0) {
      const qe = te(264);
      return qe.modifiers = Lo(v), qe.flags |= oe & 1044, qe.name = w, qe.body = F, Mm(qe.modifiers) & 2 ? qe.transformFlags = 1 : qe.transformFlags |= No(qe.modifiers) | hr(qe.name) | hr(qe.body) | 1, qe.transformFlags &= -67108865, qe.jsDoc = void 0, qe.locals = void 0, qe.nextContainer = void 0, qe;
    }
    function au(v, w, F, oe) {
      return v.modifiers !== w || v.name !== F || v.body !== oe ? r(vb(w, F, oe, v.flags), v) : v;
    }
    function Lg(v) {
      const w = H(265);
      return w.statements = V(v), w.transformFlags |= No(w.statements), w.jsDoc = void 0, w;
    }
    function Rl(v, w) {
      return v.statements !== w ? r(Lg(w), v) : v;
    }
    function cS(v) {
      const w = H(266);
      return w.clauses = V(v), w.transformFlags |= No(w.clauses), w.locals = void 0, w.nextContainer = void 0, w;
    }
    function lL(v, w) {
      return v.clauses !== w ? r(cS(w), v) : v;
    }
    function Vi(v) {
      const w = te(267);
      return w.name = bc(v), w.transformFlags |= gk(w.name) | 1, w.modifiers = void 0, w.jsDoc = void 0, w;
    }
    function zr(v, w) {
      return v.name !== w ? Xm(Vi(w), v) : v;
    }
    function Xm(v, w) {
      return v !== w && (v.modifiers = w.modifiers), r(v, w);
    }
    function zd(v, w, F, oe) {
      const qe = te(268);
      return qe.modifiers = Lo(v), qe.name = bc(F), qe.isTypeOnly = w, qe.moduleReference = oe, qe.transformFlags |= No(qe.modifiers) | gk(qe.name) | hr(qe.moduleReference), jm(qe.moduleReference) || (qe.transformFlags |= 1), qe.transformFlags &= -67108865, qe.jsDoc = void 0, qe;
    }
    function aE(v, w, F, oe, qe) {
      return v.modifiers !== w || v.isTypeOnly !== F || v.name !== oe || v.moduleReference !== qe ? r(zd(w, F, oe, qe), v) : v;
    }
    function Ig(v, w, F, oe) {
      const qe = H(269);
      return qe.modifiers = Lo(v), qe.importClause = w, qe.moduleSpecifier = F, qe.assertClause = oe, qe.transformFlags |= hr(qe.importClause) | hr(qe.moduleSpecifier), qe.transformFlags &= -67108865, qe.jsDoc = void 0, qe;
    }
    function Nh(v, w, F, oe, qe) {
      return v.modifiers !== w || v.importClause !== F || v.moduleSpecifier !== oe || v.assertClause !== qe ? r(Ig(w, F, oe, qe), v) : v;
    }
    function Ym(v, w, F) {
      const oe = te(270);
      return oe.isTypeOnly = v, oe.name = w, oe.namedBindings = F, oe.transformFlags |= hr(oe.name) | hr(oe.namedBindings), v && (oe.transformFlags |= 1), oe.transformFlags &= -67108865, oe;
    }
    function fc(v, w, F, oe) {
      return v.isTypeOnly !== w || v.name !== F || v.namedBindings !== oe ? r(Ym(w, F, oe), v) : v;
    }
    function bb(v, w) {
      const F = H(296);
      return F.elements = V(v), F.multiLine = w, F.transformFlags |= 4, F;
    }
    function lS(v, w, F) {
      return v.elements !== w || v.multiLine !== F ? r(bb(w, F), v) : v;
    }
    function Eb(v, w) {
      const F = H(297);
      return F.name = v, F.value = w, F.transformFlags |= 4, F;
    }
    function uS(v, w, F) {
      return v.name !== w || v.value !== F ? r(Eb(w, F), v) : v;
    }
    function Zf(v, w) {
      const F = H(298);
      return F.assertClause = v, F.multiLine = w, F;
    }
    function p2(v, w, F) {
      return v.assertClause !== w || v.multiLine !== F ? r(Zf(w, F), v) : v;
    }
    function m2(v) {
      const w = te(271);
      return w.name = v, w.transformFlags |= hr(w.name), w.transformFlags &= -67108865, w;
    }
    function r0(v, w) {
      return v.name !== w ? r(m2(w), v) : v;
    }
    function dS(v) {
      const w = te(277);
      return w.name = v, w.transformFlags |= hr(w.name) | 4, w.transformFlags &= -67108865, w;
    }
    function fS(v, w) {
      return v.name !== w ? r(dS(w), v) : v;
    }
    function h2(v) {
      const w = H(272);
      return w.elements = V(v), w.transformFlags |= No(w.elements), w.transformFlags &= -67108865, w;
    }
    function Tb(v, w) {
      return v.elements !== w ? r(h2(w), v) : v;
    }
    function _S(v, w, F) {
      const oe = te(273);
      return oe.isTypeOnly = v, oe.propertyName = w, oe.name = F, oe.transformFlags |= hr(oe.propertyName) | hr(oe.name), oe.transformFlags &= -67108865, oe;
    }
    function wf(v, w, F, oe) {
      return v.isTypeOnly !== w || v.propertyName !== F || v.name !== oe ? r(_S(w, F, oe), v) : v;
    }
    function kg(v, w, F) {
      const oe = te(274);
      return oe.modifiers = Lo(v), oe.isExportEquals = w, oe.expression = w ? i().parenthesizeRightSideOfBinary(63, void 0, F) : i().parenthesizeExpressionOfExportDefault(F), oe.transformFlags |= No(oe.modifiers) | hr(oe.expression), oe.transformFlags &= -67108865, oe.jsDoc = void 0, oe;
    }
    function Lp(v, w, F) {
      return v.modifiers !== w || v.expression !== F ? r(kg(w, v.isExportEquals, F), v) : v;
    }
    function np(v, w, F, oe, qe) {
      const qt = te(275);
      return qt.modifiers = Lo(v), qt.isTypeOnly = w, qt.exportClause = F, qt.moduleSpecifier = oe, qt.assertClause = qe, qt.transformFlags |= No(qt.modifiers) | hr(qt.exportClause) | hr(qt.moduleSpecifier), qt.transformFlags &= -67108865, qt.jsDoc = void 0, qt;
    }
    function g2(v, w, F, oe, qe, qt) {
      return v.modifiers !== w || v.isTypeOnly !== F || v.exportClause !== oe || v.moduleSpecifier !== qe || v.assertClause !== qt ? Sb(np(w, F, oe, qe, qt), v) : v;
    }
    function Sb(v, w) {
      return v !== w && v.modifiers === w.modifiers && (v.modifiers = w.modifiers), r(v, w);
    }
    function am(v) {
      const w = H(276);
      return w.elements = V(v), w.transformFlags |= No(w.elements), w.transformFlags &= -67108865, w;
    }
    function pS(v, w) {
      return v.elements !== w ? r(am(w), v) : v;
    }
    function fd(v, w, F) {
      const oe = H(278);
      return oe.isTypeOnly = v, oe.propertyName = bc(w), oe.name = bc(F), oe.transformFlags |= hr(oe.propertyName) | hr(oe.name), oe.transformFlags &= -67108865, oe.jsDoc = void 0, oe;
    }
    function wg(v, w, F, oe) {
      return v.isTypeOnly !== w || v.propertyName !== F || v.name !== oe ? r(fd(w, F, oe), v) : v;
    }
    function om() {
      const v = te(279);
      return v.jsDoc = void 0, v;
    }
    function sm(v) {
      const w = H(280);
      return w.expression = v, w.transformFlags |= hr(w.expression), w.transformFlags &= -67108865, w;
    }
    function Dg(v, w) {
      return v.expression !== w ? r(sm(w), v) : v;
    }
    function oE(v) {
      return H(v);
    }
    function mS(v, w, F = !1) {
      const oe = Oy(v, F ? w && i().parenthesizeNonArrayTypeOfPostfixType(w) : w);
      return oe.postfix = F, oe;
    }
    function Oy(v, w) {
      const F = H(v);
      return F.type = w, F;
    }
    function sE(v, w, F) {
      return w.type !== F ? r(mS(v, F, w.postfix), w) : w;
    }
    function ks(v, w, F) {
      return w.type !== F ? r(Oy(v, F), w) : w;
    }
    function Py(v, w) {
      const F = te(320);
      return F.parameters = Lo(v), F.type = w, F.transformFlags = No(F.parameters) | (F.type ? 1 : 0), F.jsDoc = void 0, F.locals = void 0, F.nextContainer = void 0, F.typeArguments = void 0, F;
    }
    function y2(v, w, F) {
      return v.parameters !== w || v.type !== F ? r(Py(w, F), v) : v;
    }
    function xb(v, w = !1) {
      const F = te(325);
      return F.jsDocPropertyTags = Lo(v), F.isArrayType = w, F;
    }
    function Ab(v, w, F) {
      return v.jsDocPropertyTags !== w || v.isArrayType !== F ? r(xb(w, F), v) : v;
    }
    function v2(v) {
      const w = H(312);
      return w.type = v, w;
    }
    function uL(v, w) {
      return v.type !== w ? r(v2(w), v) : v;
    }
    function b2(v, w, F) {
      const oe = te(326);
      return oe.typeParameters = Lo(v), oe.parameters = V(w), oe.type = F, oe.jsDoc = void 0, oe.locals = void 0, oe.nextContainer = void 0, oe;
    }
    function pr(v, w, F, oe) {
      return v.typeParameters !== w || v.parameters !== F || v.type !== oe ? r(b2(w, F, oe), v) : v;
    }
    function wc(v) {
      const w = X3(v.kind);
      return v.tagName.escapedText === oc(w) ? v.tagName : ve(w);
    }
    function la(v, w, F) {
      const oe = H(v);
      return oe.tagName = w, oe.comment = F, oe;
    }
    function Df(v, w, F) {
      const oe = te(v);
      return oe.tagName = w, oe.comment = F, oe;
    }
    function i0(v, w, F, oe) {
      const qe = la(348, v ?? ve("template"), oe);
      return qe.constraint = w, qe.typeParameters = V(F), qe;
    }
    function $m(v, w = wc(v), F, oe, qe) {
      return v.tagName !== w || v.constraint !== F || v.typeParameters !== oe || v.comment !== qe ? r(i0(w, F, oe, qe), v) : v;
    }
    function ar(v, w, F, oe) {
      const qe = Df(349, v ?? ve("typedef"), oe);
      return qe.typeExpression = w, qe.fullName = F, qe.name = wJ(F), qe.locals = void 0, qe.nextContainer = void 0, qe;
    }
    function E2(v, w = wc(v), F, oe, qe) {
      return v.tagName !== w || v.typeExpression !== F || v.fullName !== oe || v.comment !== qe ? r(ar(w, F, oe, qe), v) : v;
    }
    function My(v, w, F, oe, qe, qt) {
      const Br = Df(344, v ?? ve("param"), qt);
      return Br.typeExpression = oe, Br.name = w, Br.isNameFirst = !!qe, Br.isBracketed = F, Br;
    }
    function Al(v, w = wc(v), F, oe, qe, qt, Br) {
      return v.tagName !== w || v.name !== F || v.isBracketed !== oe || v.typeExpression !== qe || v.isNameFirst !== qt || v.comment !== Br ? r(My(w, F, oe, qe, qt, Br), v) : v;
    }
    function T_(v, w, F, oe, qe, qt) {
      const Br = Df(351, v ?? ve("prop"), qt);
      return Br.typeExpression = oe, Br.name = w, Br.isNameFirst = !!qe, Br.isBracketed = F, Br;
    }
    function Ip(v, w = wc(v), F, oe, qe, qt, Br) {
      return v.tagName !== w || v.name !== F || v.isBracketed !== oe || v.typeExpression !== qe || v.isNameFirst !== qt || v.comment !== Br ? r(T_(w, F, oe, qe, qt, Br), v) : v;
    }
    function Fy(v, w, F, oe) {
      const qe = Df(341, v ?? ve("callback"), oe);
      return qe.typeExpression = w, qe.fullName = F, qe.name = wJ(F), qe.locals = void 0, qe.nextContainer = void 0, qe;
    }
    function cE(v, w = wc(v), F, oe, qe) {
      return v.tagName !== w || v.typeExpression !== F || v.fullName !== oe || v.comment !== qe ? r(Fy(w, F, oe, qe), v) : v;
    }
    function rp(v, w, F) {
      const oe = la(342, v ?? ve("overload"), F);
      return oe.typeExpression = w, oe;
    }
    function By(v, w = wc(v), F, oe) {
      return v.tagName !== w || v.typeExpression !== F || v.comment !== oe ? r(rp(w, F, oe), v) : v;
    }
    function Jc(v, w, F) {
      const oe = la(331, v ?? ve("augments"), F);
      return oe.class = w, oe;
    }
    function Zc(v, w = wc(v), F, oe) {
      return v.tagName !== w || v.class !== F || v.comment !== oe ? r(Jc(w, F, oe), v) : v;
    }
    function Rg(v, w, F) {
      const oe = la(332, v ?? ve("implements"), F);
      return oe.class = w, oe;
    }
    function ou(v, w, F) {
      const oe = la(350, v ?? ve("see"), F);
      return oe.name = w, oe;
    }
    function S_(v, w, F, oe) {
      return v.tagName !== w || v.name !== F || v.comment !== oe ? r(ou(w, F, oe), v) : v;
    }
    function Qm(v) {
      const w = H(313);
      return w.name = v, w;
    }
    function kd(v, w) {
      return v.name !== w ? r(Qm(w), v) : v;
    }
    function lE(v, w) {
      const F = H(314);
      return F.left = v, F.right = w, F.transformFlags |= hr(F.left) | hr(F.right), F;
    }
    function Cb(v, w, F) {
      return v.left !== w || v.right !== F ? r(lE(w, F), v) : v;
    }
    function Lb(v, w) {
      const F = H(327);
      return F.name = v, F.text = w, F;
    }
    function kp(v, w, F) {
      return v.name !== w ? r(Lb(w, F), v) : v;
    }
    function Oh(v, w) {
      const F = H(328);
      return F.name = v, F.text = w, F;
    }
    function uE(v, w, F) {
      return v.name !== w ? r(Oh(w, F), v) : v;
    }
    function Gy(v, w) {
      const F = H(329);
      return F.name = v, F.text = w, F;
    }
    function Dc(v, w, F) {
      return v.name !== w ? r(Gy(w, F), v) : v;
    }
    function Ng(v, w = wc(v), F, oe) {
      return v.tagName !== w || v.class !== F || v.comment !== oe ? r(Rg(w, F, oe), v) : v;
    }
    function Ph(v, w, F) {
      return la(v, w ?? ve(X3(v)), F);
    }
    function a0(v, w, F = wc(w), oe) {
      return w.tagName !== F || w.comment !== oe ? r(Ph(v, F, oe), w) : w;
    }
    function o0(v, w, F, oe) {
      const qe = la(v, w ?? ve(X3(v)), oe);
      return qe.typeExpression = F, qe;
    }
    function su(v, w, F = wc(w), oe, qe) {
      return w.tagName !== F || w.typeExpression !== oe || w.comment !== qe ? r(o0(v, F, oe, qe), w) : w;
    }
    function Mh(v, w) {
      return la(330, v, w);
    }
    function gl(v, w, F) {
      return v.tagName !== w || v.comment !== F ? r(Mh(w, F), v) : v;
    }
    function dE(v, w, F) {
      const oe = Df(343, v ?? ve(X3(343)), F);
      return oe.typeExpression = w, oe.locals = void 0, oe.nextContainer = void 0, oe;
    }
    function Fh(v, w = wc(v), F, oe) {
      return v.tagName !== w || v.typeExpression !== F || v.comment !== oe ? r(dE(w, F, oe), v) : v;
    }
    function Ib(v) {
      const w = H(324);
      return w.text = v, w;
    }
    function _d(v, w) {
      return v.text !== w ? r(Ib(w), v) : v;
    }
    function Zm(v, w) {
      const F = H(323);
      return F.comment = v, F.tags = Lo(w), F;
    }
    function kb(v, w, F) {
      return v.comment !== w || v.tags !== F ? r(Zm(w, F), v) : v;
    }
    function s0(v, w, F) {
      const oe = H(281);
      return oe.openingElement = v, oe.children = V(w), oe.closingElement = F, oe.transformFlags |= hr(oe.openingElement) | No(oe.children) | hr(oe.closingElement) | 2, oe;
    }
    function fE(v, w, F, oe) {
      return v.openingElement !== w || v.children !== F || v.closingElement !== oe ? r(s0(w, F, oe), v) : v;
    }
    function Uy(v, w, F) {
      const oe = H(282);
      return oe.tagName = v, oe.typeArguments = Lo(w), oe.attributes = F, oe.transformFlags |= hr(oe.tagName) | No(oe.typeArguments) | hr(oe.attributes) | 2, oe.typeArguments && (oe.transformFlags |= 1), oe;
    }
    function hS(v, w, F, oe) {
      return v.tagName !== w || v.typeArguments !== F || v.attributes !== oe ? r(Uy(w, F, oe), v) : v;
    }
    function c0(v, w, F) {
      const oe = H(283);
      return oe.tagName = v, oe.typeArguments = Lo(w), oe.attributes = F, oe.transformFlags |= hr(oe.tagName) | No(oe.typeArguments) | hr(oe.attributes) | 2, w && (oe.transformFlags |= 1), oe;
    }
    function Og(v, w, F, oe) {
      return v.tagName !== w || v.typeArguments !== F || v.attributes !== oe ? r(c0(w, F, oe), v) : v;
    }
    function Rf(v) {
      const w = H(284);
      return w.tagName = v, w.transformFlags |= hr(w.tagName) | 2, w;
    }
    function _E(v, w) {
      return v.tagName !== w ? r(Rf(w), v) : v;
    }
    function ff(v, w, F) {
      const oe = H(285);
      return oe.openingFragment = v, oe.children = V(w), oe.closingFragment = F, oe.transformFlags |= hr(oe.openingFragment) | No(oe.children) | hr(oe.closingFragment) | 2, oe;
    }
    function Bh(v, w, F, oe) {
      return v.openingFragment !== w || v.children !== F || v.closingFragment !== oe ? r(ff(w, F, oe), v) : v;
    }
    function l0(v, w) {
      const F = H(11);
      return F.text = v, F.containsOnlyTriviaWhiteSpaces = !!w, F.transformFlags |= 2, F;
    }
    function T2(v, w, F) {
      return v.text !== w || v.containsOnlyTriviaWhiteSpaces !== F ? r(l0(w, F), v) : v;
    }
    function ns() {
      const v = H(286);
      return v.transformFlags |= 2, v;
    }
    function Ir() {
      const v = H(287);
      return v.transformFlags |= 2, v;
    }
    function qd(v, w) {
      const F = te(288);
      return F.name = v, F.initializer = w, F.transformFlags |= hr(F.name) | hr(F.initializer) | 2, F;
    }
    function pd(v, w, F) {
      return v.name !== w || v.initializer !== F ? r(qd(w, F), v) : v;
    }
    function gS(v) {
      const w = te(289);
      return w.properties = V(v), w.transformFlags |= No(w.properties) | 2, w;
    }
    function pE(v, w) {
      return v.properties !== w ? r(gS(w), v) : v;
    }
    function Vy(v) {
      const w = H(290);
      return w.expression = v, w.transformFlags |= hr(w.expression) | 2, w;
    }
    function S2(v, w) {
      return v.expression !== w ? r(Vy(w), v) : v;
    }
    function jy(v, w) {
      const F = H(291);
      return F.dotDotDotToken = v, F.expression = w, F.transformFlags |= hr(F.dotDotDotToken) | hr(F.expression) | 2, F;
    }
    function cm(v, w) {
      return v.expression !== w ? r(jy(v.dotDotDotToken, w), v) : v;
    }
    function wp(v, w) {
      const F = H(292);
      return F.expression = i().parenthesizeExpressionForDisallowedComma(v), F.statements = V(w), F.transformFlags |= hr(F.expression) | No(F.statements), F.jsDoc = void 0, F;
    }
    function Pg(v, w, F) {
      return v.expression !== w || v.statements !== F ? r(wp(w, F), v) : v;
    }
    function u0(v) {
      const w = H(293);
      return w.statements = V(v), w.transformFlags = No(w.statements), w;
    }
    function Gh(v, w) {
      return v.statements !== w ? r(u0(w), v) : v;
    }
    function lm(v, w) {
      const F = H(294);
      switch (F.token = v, F.types = V(w), F.transformFlags |= No(F.types), v) {
        case 94:
          F.transformFlags |= 1024;
          break;
        case 117:
          F.transformFlags |= 1;
          break;
        default:
          return D.assertNever(v);
      }
      return F;
    }
    function yS(v, w) {
      return v.types !== w ? r(lm(v.token, w), v) : v;
    }
    function Kc(v, w) {
      const F = H(295);
      return F.variableDeclaration = Yw(v), F.block = w, F.transformFlags |= hr(F.variableDeclaration) | hr(F.block) | (v ? 0 : 64), F.locals = void 0, F.nextContainer = void 0, F;
    }
    function _f(v, w, F) {
      return v.variableDeclaration !== w || v.block !== F ? r(Kc(w, F), v) : v;
    }
    function eh(v, w) {
      const F = te(299);
      return F.name = bc(v), F.initializer = i().parenthesizeExpressionForDisallowedComma(w), F.transformFlags |= gy(F.name) | hr(F.initializer), F.modifiers = void 0, F.questionToken = void 0, F.exclamationToken = void 0, F.jsDoc = void 0, F;
    }
    function wd(v, w, F) {
      return v.name !== w || v.initializer !== F ? mE(eh(w, F), v) : v;
    }
    function mE(v, w) {
      return v !== w && (v.modifiers = w.modifiers, v.questionToken = w.questionToken, v.exclamationToken = w.exclamationToken), r(v, w);
    }
    function Hy(v, w) {
      const F = te(300);
      return F.name = bc(v), F.objectAssignmentInitializer = w && i().parenthesizeExpressionForDisallowedComma(w), F.transformFlags |= gk(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 Mg(v, w, F) {
      return v.name !== w || v.objectAssignmentInitializer !== F ? x2(Hy(w, F), v) : v;
    }
    function x2(v, w) {
      return v !== w && (v.modifiers = w.modifiers, v.questionToken = w.questionToken, v.exclamationToken = w.exclamationToken, v.equalsToken = w.equalsToken), r(v, w);
    }
    function Nf(v) {
      const w = te(301);
      return w.expression = i().parenthesizeExpressionForDisallowedComma(v), w.transformFlags |= hr(w.expression) | 128 | 65536, w.jsDoc = void 0, w;
    }
    function ws(v, w) {
      return v.expression !== w ? r(Nf(w), v) : v;
    }
    function hE(v, w) {
      const F = te(302);
      return F.name = bc(v), F.initializer = w && i().parenthesizeExpressionForDisallowedComma(w), F.transformFlags |= hr(F.name) | hr(F.initializer) | 1, F.jsDoc = void 0, F;
    }
    function gE(v, w, F) {
      return v.name !== w || v.initializer !== F ? r(hE(w, F), v) : v;
    }
    function Fg(v, w, F) {
      const oe = t.createBaseSourceFileNode(308);
      return oe.statements = V(v), oe.endOfFileToken = w, oe.flags |= F, oe.text = "", oe.fileName = "", oe.path = "", oe.resolvedPath = "", oe.originalFileName = "", oe.languageVersion = 0, oe.languageVariant = 0, oe.scriptKind = 0, oe.isDeclarationFile = !1, oe.hasNoDefaultLib = !1, oe.transformFlags |= No(oe.statements) | hr(oe.endOfFileToken), oe.locals = void 0, oe.nextContainer = void 0, oe.endFlowNode = void 0, oe.nodeCount = 0, oe.identifierCount = 0, oe.symbolCount = 0, oe.parseDiagnostics = void 0, oe.bindDiagnostics = void 0, oe.bindSuggestionDiagnostics = void 0, oe.lineMap = void 0, oe.externalModuleIndicator = void 0, oe.setExternalModuleIndicator = void 0, oe.pragmas = void 0, oe.checkJsDirective = void 0, oe.referencedFiles = void 0, oe.typeReferenceDirectives = void 0, oe.libReferenceDirectives = void 0, oe.amdDependencies = void 0, oe.commentDirectives = void 0, oe.identifiers = void 0, oe.packageJsonLocations = void 0, oe.packageJsonScope = void 0, oe.imports = void 0, oe.moduleAugmentations = void 0, oe.ambientModuleNames = void 0, oe.resolvedModules = void 0, oe.classifiableNames = void 0, oe.impliedNodeFormat = void 0, oe;
    }
    function d0(v) {
      const w = Object.create(v.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 = v, w;
    }
    function vS(v) {
      const w = d0(v.redirectInfo);
      return w.flags |= v.flags & -9, w.fileName = v.fileName, w.path = v.path, w.resolvedPath = v.resolvedPath, w.originalFileName = v.originalFileName, w.packageJsonLocations = v.packageJsonLocations, w.packageJsonScope = v.packageJsonScope, w.emitNode = void 0, w;
    }
    function yE(v) {
      const w = t.createBaseSourceFileNode(308);
      w.flags |= v.flags & -9;
      for (const F in v)
        if (!(Rs(w, F) || !Rs(v, F))) {
          if (F === "emitNode") {
            w.emitNode = void 0;
            continue;
          }
          w[F] = v[F];
        }
      return w;
    }
    function vE(v) {
      const w = v.redirectInfo ? vS(v) : yE(v);
      return jr(w, v), w;
    }
    function bE(v, w, F, oe, qe, qt, Br) {
      const ea = vE(v);
      return ea.statements = V(w), ea.isDeclarationFile = F, ea.referencedFiles = oe, ea.typeReferenceDirectives = qe, ea.hasNoDefaultLib = qt, ea.libReferenceDirectives = Br, ea.transformFlags = No(ea.statements) | hr(ea.endOfFileToken), ea;
    }
    function EE(v, w, F = v.isDeclarationFile, oe = v.referencedFiles, qe = v.typeReferenceDirectives, qt = v.hasNoDefaultLib, Br = v.libReferenceDirectives) {
      return v.statements !== w || v.isDeclarationFile !== F || v.referencedFiles !== oe || v.typeReferenceDirectives !== qe || v.hasNoDefaultLib !== qt || v.libReferenceDirectives !== Br ? r(bE(v, w, F, oe, qe, qt, Br), v) : v;
    }
    function TE(v, w = rt) {
      const F = H(309);
      return F.prepends = w, F.sourceFiles = v, F.syntheticFileReferences = void 0, F.syntheticTypeReferences = void 0, F.syntheticLibReferences = void 0, F.hasNoDefaultLib = void 0, F;
    }
    function Wy(v, w, F = rt) {
      return v.sourceFiles !== w || v.prepends !== F ? r(TE(w, F), v) : v;
    }
    function Jd(v, w, F) {
      const oe = H(310);
      return oe.prologues = v, oe.syntheticReferences = w, oe.texts = F, oe.fileName = "", oe.text = "", oe.referencedFiles = rt, oe.libReferenceDirectives = rt, oe.getLineAndCharacterOfPosition = (qe) => ac(oe, qe), oe;
    }
    function Uh(v, w) {
      const F = H(v);
      return F.data = w, F;
    }
    function dL(v) {
      return Uh(303, v);
    }
    function Bg(v, w) {
      const F = Uh(304, v);
      return F.texts = w, F;
    }
    function A2(v, w) {
      return Uh(w ? 306 : 305, v);
    }
    function C2(v) {
      const w = H(307);
      return w.data = v.data, w.section = v, w;
    }
    function S() {
      const v = H(311);
      return v.javascriptText = "", v.declarationText = "", v;
    }
    function se(v, w = !1, F) {
      const oe = H(234);
      return oe.type = v, oe.isSpread = w, oe.tupleNameSource = F, oe;
    }
    function Le(v) {
      const w = H(354);
      return w._children = v, w;
    }
    function rn(v) {
      const w = H(355);
      return w.original = v, mt(w, v), w;
    }
    function Cr(v, w) {
      const F = H(356);
      return F.expression = v, F.original = w, F.transformFlags |= hr(F.expression) | 1, mt(F, w), F;
    }
    function Ei(v, w) {
      return v.expression !== w ? r(Cr(w, v.original), v) : v;
    }
    function si(v) {
      if (Ys(v) && !hI(v) && !v.original && !v.emitNode && !v.id) {
        if (Ik(v))
          return v.elements;
        if (br(v) && Sfe(v.operatorToken))
          return [v.left, v.right];
      }
      return v;
    }
    function Bi(v) {
      const w = H(357);
      return w.elements = V(A4(v, si)), w.transformFlags |= No(w.elements), w;
    }
    function uo(v, w) {
      return v.elements !== w ? r(Bi(w), v) : v;
    }
    function $l(v) {
      const w = H(359);
      return w.emitNode = {}, w.original = v, w;
    }
    function Kd(v) {
      const w = H(358);
      return w.emitNode = {}, w.original = v, w;
    }
    function pf(v, w) {
      const F = H(360);
      return F.expression = v, F.thisArg = w, F.transformFlags |= hr(F.expression) | hr(F.thisArg), F;
    }
    function zy(v, w, F) {
      return v.expression !== w || v.thisArg !== F ? r(pf(w, F), v) : v;
    }
    function Xd(v) {
      const w = ce(v.escapedText);
      return w.flags |= v.flags & -9, w.transformFlags = v.transformFlags, jr(w, v), hO(w, { ...v.emitNode.autoGenerate }), w;
    }
    function f0(v) {
      const w = ce(v.escapedText);
      w.flags |= v.flags & -9, w.jsDoc = v.jsDoc, w.flowNode = v.flowNode, w.symbol = v.symbol, w.transformFlags = v.transformFlags, jr(w, v);
      const F = xT(v);
      return F && vy(w, F), w;
    }
    function _0(v) {
      const w = Be(v.escapedText);
      return w.flags |= v.flags & -9, w.transformFlags = v.transformFlags, jr(w, v), hO(w, { ...v.emitNode.autoGenerate }), w;
    }
    function qy(v) {
      const w = Be(v.escapedText);
      return w.flags |= v.flags & -9, w.transformFlags = v.transformFlags, jr(w, v), w;
    }
    function x_(v) {
      if (v === void 0)
        return v;
      if (Hi(v))
        return vE(v);
      if (Tc(v))
        return Xd(v);
      if (Ve(v))
        return f0(v);
      if (JS(v))
        return _0(v);
      if (Di(v))
        return qy(v);
      const w = GR(v.kind) ? t.createBaseNode(v.kind) : t.createBaseTokenNode(v.kind);
      w.flags |= v.flags & -9, w.transformFlags = v.transformFlags, jr(w, v);
      for (const F in v)
        Rs(w, F) || !Rs(v, F) || (w[F] = v[F]);
      return w;
    }
    function SE(v, w, F) {
      return On(Ga(void 0, void 0, void 0, void 0, w ? [w] : [], void 0, Tg(v, !0)), void 0, F ? [F] : []);
    }
    function Of(v, w, F) {
      return On(vs(void 0, void 0, w ? [w] : [], void 0, void 0, Tg(v, !0)), void 0, F ? [F] : []);
    }
    function th() {
      return Eu(Y("0"));
    }
    function Jy(v) {
      return kg(void 0, !1, v);
    }
    function e_(v) {
      return np(void 0, !1, am([
        fd(!1, void 0, v)
      ]));
    }
    function xE(v, w) {
      return w === "undefined" ? B.createStrictEquality(v, th()) : B.createStrictEquality(Qc(v), ne(w));
    }
    function p0(v, w, F) {
      return tT(v) ? Ao(ys(v, void 0, w), void 0, void 0, F) : On(ll(v, w), void 0, F);
    }
    function ul(v, w, F) {
      return p0(v, "bind", [w, ...F]);
    }
    function aP(v, w, F) {
      return p0(v, "call", [w, ...F]);
    }
    function bs(v, w, F) {
      return p0(v, "apply", [w, F]);
    }
    function Zo(v, w, F) {
      return p0(ve(v), w, F);
    }
    function L2(v, w) {
      return p0(v, "slice", w === void 0 ? [] : [h0(w)]);
    }
    function I2(v, w) {
      return p0(v, "concat", w);
    }
    function z(v, w, F) {
      return Zo("Object", "defineProperty", [v, h0(w), F]);
    }
    function be(v, w) {
      return Zo("Object", "getOwnPropertyDescriptor", [v, h0(w)]);
    }
    function Ye(v, w, F) {
      return Zo("Reflect", "get", F ? [v, w, F] : [v, w]);
    }
    function Tt(v, w, F, oe) {
      return Zo("Reflect", "set", oe ? [v, w, F, oe] : [v, w, F]);
    }
    function Gt(v, w, F) {
      return F ? (v.push(eh(w, F)), !0) : !1;
    }
    function Cn(v, w) {
      const F = [];
      Gt(F, "enumerable", h0(v.enumerable)), Gt(F, "configurable", h0(v.configurable));
      let oe = Gt(F, "writable", h0(v.writable));
      oe = Gt(F, "value", v.value) || oe;
      let qe = Gt(F, "get", v.get);
      return qe = Gt(F, "set", v.set) || qe, D.assert(!(oe && qe), "A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."), Uo(F, !w);
    }
    function Fr(v, w) {
      switch (v.kind) {
        case 214:
          return Oi(v, w);
        case 213:
          return Dr(v, v.type, w);
        case 231:
          return Kv(v, w, v.type);
        case 235:
          return Eg(v, w, v.type);
        case 232:
          return rS(v, w);
        case 356:
          return Ei(v, w);
      }
    }
    function mi(v) {
      return Fd(v) && Ys(v) && Ys($0(v)) && Ys(Gm(v)) && !kt(lC(v)) && !kt(mO(v));
    }
    function Ti(v, w, F = 15) {
      return v && V7(v, F) && !mi(v) ? Fr(v, Ti(v.expression, w)) : w;
    }
    function Ci(v, w, F) {
      if (!w)
        return v;
      const oe = oS(w, w.label, N1(w.statement) ? Ci(v, w.statement) : v);
      return F && F(w), oe;
    }
    function Na(v, w) {
      const F = Gs(v);
      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 As(v, w, F, oe = !1) {
      const qe = hu(v, 15);
      let qt, Br;
      return sd(qe) ? (qt = Ct(), Br = qe) : Ek(qe) ? (qt = Ct(), Br = F !== void 0 && F < 2 ? mt(ve("_super"), qe) : qe) : go(qe) & 8192 ? (qt = th(), Br = i().parenthesizeLeftSideOfAccess(qe, !1)) : Mr(qe) ? Na(qe.expression, oe) ? (qt = Te(w), Br = ll(mt(B.createAssignment(qt, qe.expression), qe.expression), qe.name), mt(Br, qe)) : (qt = qe.expression, Br = qe) : cc(qe) ? Na(qe.expression, oe) ? (qt = Te(w), Br = Hd(mt(B.createAssignment(qt, qe.expression), qe.expression), qe.argumentExpression), mt(Br, qe)) : (qt = qe.expression, Br = qe) : (qt = th(), Br = i().parenthesizeLeftSideOfAccess(v, !1)), { target: Br, thisArg: qt };
    }
    function Co(v, w) {
      return ll(ei(Uo([
        re(void 0, "value", [Ai(void 0, void 0, v, void 0, void 0, void 0)], Tg([
          $v(w)
        ]))
      ])), "value");
    }
    function es(v) {
      return v.length > 10 ? Bi(v) : Iu(v, B.createComma);
    }
    function Dd(v, w, F, oe = 0) {
      const qe = Aa(v);
      if (qe && Ve(qe) && !Tc(qe)) {
        const qt = Bo(mt(x_(qe), qe), qe.parent);
        return oe |= go(qe), F || (oe |= 96), w || (oe |= 3072), oe && sr(qt, oe), qt;
      }
      return Ue(v);
    }
    function Dp(v, w, F) {
      return Dd(v, w, F, 98304);
    }
    function um(v, w, F) {
      return Dd(v, w, F, 32768);
    }
    function Gg(v, w, F) {
      return Dd(v, w, F, 16384);
    }
    function A_(v, w, F) {
      return Dd(v, w, F);
    }
    function Ky(v, w, F, oe) {
      const qe = ll(v, Ys(w) ? w : x_(w));
      mt(qe, w);
      let qt = 0;
      return oe || (qt |= 96), F || (qt |= 3072), qt && sr(qe, qt), qe;
    }
    function k2(v, w, F, oe) {
      return v && Kr(w, 1) ? Ky(v, Dd(w), F, oe) : Gg(w, F, oe);
    }
    function AE(v, w, F, oe) {
      const qe = m0(v, w, 0, F);
      return _L(v, w, qe, oe);
    }
    function fL(v) {
      return Go(v.expression) && v.expression.text === "use strict";
    }
    function ip() {
      return Fu($v(ne("use strict")));
    }
    function m0(v, w, F = 0, oe) {
      D.assert(w.length === 0, "Prologue directives should be at the first statement in the target statements array");
      let qe = !1;
      const qt = v.length;
      for (; F < qt; ) {
        const Br = v[F];
        if (pp(Br))
          fL(Br) && (qe = !0), w.push(Br);
        else
          break;
        F++;
      }
      return oe && !qe && w.push(ip()), F;
    }
    function _L(v, w, F, oe, qe = r1) {
      const qt = v.length;
      for (; F !== void 0 && F < qt; ) {
        const Br = v[F];
        if (go(Br) & 2097152 && qe(Br))
          Bn(w, oe ? ct(Br, oe, Ca) : Br);
        else
          break;
        F++;
      }
      return F;
    }
    function Pf(v) {
      return LJ(v) ? v : mt(V([ip(), ...v]), v);
    }
    function w2(v) {
      return D.assert(Rn(v, yle), "Cannot lift nodes to a Block."), Tm(v) || Tg(v);
    }
    function Xy(v, w, F) {
      let oe = F;
      for (; oe < v.length && w(v[oe]); )
        oe++;
      return oe;
    }
    function Jw(v, w) {
      if (!kt(w))
        return v;
      const F = Xy(v, pp, 0), oe = Xy(v, WM, F), qe = Xy(v, zM, oe), qt = Xy(w, pp, 0), Br = Xy(w, WM, qt), ea = Xy(w, zM, Br), Xa = Xy(w, HM, ea);
      D.assert(Xa === w.length, "Expected declarations to be valid standard or custom prologues");
      const mf = _1(v) ? v.slice() : v;
      if (Xa > ea && mf.splice(qe, 0, ...w.slice(ea, Xa)), ea > Br && mf.splice(oe, 0, ...w.slice(Br, ea)), Br > qt && mf.splice(F, 0, ...w.slice(qt, Br)), qt > 0)
        if (F === 0)
          mf.splice(0, 0, ...w.slice(0, qt));
        else {
          const Ug = /* @__PURE__ */ new Map();
          for (let Vg = 0; Vg < F; Vg++) {
            const jg = v[Vg];
            Ug.set(jg.expression.text, !0);
          }
          for (let Vg = qt - 1; Vg >= 0; Vg--) {
            const jg = w[Vg];
            Ug.has(jg.expression.text) || mf.unshift(jg);
          }
        }
      return _1(v) ? mt(V(mf, v.hasTrailingComma), v) : v;
    }
    function Kw(v, w) {
      var F;
      let oe;
      return typeof w == "number" ? oe = an(w) : oe = w, Pc(v) ? _r(v, oe, v.name, v.constraint, v.default) : Oa(v) ? Ki(v, oe, v.dotDotDotToken, v.name, v.questionToken, v.type, v.initializer) : Sk(v) ? Qn(v, oe, v.typeParameters, v.parameters, v.type) : xf(v) ? vn(v, oe, v.name, v.questionToken, v.type) : Za(v) ? ir(v, oe, v.name, (F = v.questionToken) != null ? F : v.exclamationToken, v.type, v.initializer) : Th(v) ? Ni(v, oe, v.name, v.questionToken, v.typeParameters, v.parameters, v.type) : nl(v) ? Nn(v, oe, v.asteriskToken, v.name, v.questionToken, v.typeParameters, v.parameters, v.type, v.body) : Hc(v) ? gt(v, oe, v.parameters, v.body) : H_(v) ? _t(v, oe, v.name, v.parameters, v.type, v.body) : Yf(v) ? he(v, oe, v.name, v.parameters, v.body) : Ex(v) ? Sn(v, oe, v.parameters, v.type) : Ps(v) ? Vo(v, oe, v.asteriskToken, v.name, v.typeParameters, v.parameters, v.type, v.body) : Ws(v) ? qs(v, oe, v.typeParameters, v.parameters, v.type, v.equalsGreaterThanToken, v.body) : Pu(v) ? il(v, oe, v.name, v.typeParameters, v.heritageClauses, v.members) : cl(v) ? Q1(v, oe, v.declarationList) : ml(v) ? n0(v, oe, v.asteriskToken, v.name, v.typeParameters, v.parameters, v.type, v.body) : wl(v) ? Qo(v, oe, v.name, v.typeParameters, v.heritageClauses, v.members) : Qu(v) ? iE(v, oe, v.name, v.typeParameters, v.heritageClauses, v.members) : Qp(v) ? Rh(v, oe, v.name, v.typeParameters, v.type) : Z0(v) ? tp(v, oe, v.name, v.members) : Wc(v) ? au(v, oe, v.name, v.body) : ru(v) ? aE(v, oe, v.isTypeOnly, v.name, v.moduleReference) : Ul(v) ? Nh(v, oe, v.importClause, v.moduleSpecifier, v.assertClause) : Mc(v) ? Lp(v, oe, v.expression) : Xl(v) ? g2(v, oe, v.isTypeOnly, v.exportClause, v.moduleSpecifier, v.assertClause) : D.assertNever(v);
    }
    function Lo(v) {
      return v ? V(v) : void 0;
    }
    function bc(v) {
      return typeof v == "string" ? ve(v) : v;
    }
    function h0(v) {
      return typeof v == "string" ? ne(v) : typeof v == "number" ? Y(v) : typeof v == "boolean" ? v ? Vt() : tt() : v;
    }
    function Yy(v) {
      return v && i().parenthesizeExpressionForDisallowedComma(v);
    }
    function Xw(v) {
      return typeof v == "number" ? Fe(v) : v;
    }
    function Rd(v) {
      return v && uJ(v) ? mt(jr(Z1(), v), v) : v;
    }
    function Yw(v) {
      return typeof v == "string" || v && !zi(v) ? Je(v, void 0, void 0, void 0) : v;
    }
  }
  function h6e(e, t) {
    return e !== t && mt(e, t), e;
  }
  function g6e(e, t) {
    return e !== t && (jr(e, t), mt(e, t)), e;
  }
  function X3(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 y6e(e, t) {
    switch (fg || (fg = cy(99, !1, 0)), e) {
      case 14:
        fg.setText("`" + t + "`");
        break;
      case 15:
        fg.setText("`" + t + "${");
        break;
      case 16:
        fg.setText("}" + t + "${");
        break;
      case 17:
        fg.setText("}" + t + "`");
        break;
    }
    let r = fg.scan();
    if (r === 19 && (r = fg.reScanTemplateToken(!1)), fg.isUnterminated())
      return fg.setText(void 0), Hq;
    let i;
    switch (r) {
      case 14:
      case 15:
      case 16:
      case 17:
        i = fg.getTokenValue();
        break;
    }
    return i === void 0 || fg.scan() !== 1 ? (fg.setText(void 0), Hq) : (fg.setText(void 0), i);
  }
  function gy(e) {
    return e && Ve(e) ? gk(e) : hr(e);
  }
  function gk(e) {
    return hr(e) & -67108865;
  }
  function v6e(e, t) {
    return t | e.transformFlags & 134234112;
  }
  function hr(e) {
    if (!e)
      return 0;
    const t = e.transformFlags & ~sfe(e.kind);
    return _u(e) && gc(e.name) ? v6e(e.name, t) : t;
  }
  function No(e) {
    return e ? e.transformFlags : 0;
  }
  function ofe(e) {
    let t = 0;
    for (const r of e)
      t |= hr(r);
    e.transformFlags = t;
  }
  function sfe(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 lO(e) {
    return e.flags |= 8, e;
  }
  function Bq(e, t, r) {
    let i, o, s, l, f, d, y, h, b, A;
    Ua(e) ? (s = "", l = 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, b = () => 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 ? E6e(D.checkDefined(o)) : b6e(o, i, f);
    return L.fileName = s, L.sourceMapPath = d, L.oldFileOfCurrentEmit = A, h && b ? (Object.defineProperty(L, "text", { get: h }), Object.defineProperty(L, "sourceMapText", { get: b })) : (D.assert(!A), L.text = l ?? "", L.sourceMapText = y), L;
  }
  function b6e(e, t, r) {
    let i, o, s, l, f, d, y, h;
    for (const A of e ? e.sections : rt)
      switch (A.kind) {
        case "prologue":
          i = Bn(i, mt(N.createUnparsedPrologue(A.data), A));
          break;
        case "emitHelpers":
          o = Bn(o, Yq().get(A.data));
          break;
        case "no-default-lib":
          h = !0;
          break;
        case "reference":
          s = Bn(s, { pos: -1, end: -1, fileName: A.data });
          break;
        case "type":
          l = Bn(l, { pos: -1, end: -1, fileName: A.data });
          break;
        case "type-import":
          l = Bn(l, { pos: -1, end: -1, fileName: A.data, resolutionMode: 99 });
          break;
        case "type-require":
          l = Bn(l, { pos: -1, end: -1, fileName: A.data, resolutionMode: 1 });
          break;
        case "lib":
          f = Bn(f, { pos: -1, end: -1, fileName: A.data });
          break;
        case "prepend":
          let L;
          for (const I of A.texts)
            (!t || I.kind !== "internal") && (L = Bn(L, mt(N.createUnparsedTextLike(I.data, I.kind === "internal"), I)));
          d = bi(d, L), y = Bn(y, N.createUnparsedPrepend(A.data, L ?? rt));
          break;
        case "internal":
          if (t) {
            y || (y = []);
            break;
          }
        case "text":
          y = Bn(y, mt(N.createUnparsedTextLike(A.data, A.kind === "internal"), A));
          break;
        default:
          D.assertNever(A);
      }
    if (!y) {
      const A = N.createUnparsedTextLike(void 0, !1);
      dk(A, 0, typeof r == "function" ? r() : r), y = [A];
    }
    const b = Wm.createUnparsedSource(i ?? rt, void 0, y);
    return iC(i, b), iC(y, b), iC(d, b), b.hasNoDefaultLib = h, b.helpers = o, b.referencedFiles = s || rt, b.typeReferenceDirectives = l, b.libReferenceDirectives = f || rt, b;
  }
  function E6e(e) {
    let t, r;
    for (const o of e.sections)
      switch (o.kind) {
        case "internal":
        case "text":
          t = Bn(t, mt(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 = Bn(r, mt(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 iC(r, i), iC(t, i), i.helpers = en(e.sources && e.sources.helpers, (o) => Yq().get(o)), i;
  }
  function T6e(e, t, r, i, o, s) {
    return Ua(e) ? Uq(void 0, e, r, i, void 0, t, o, s) : Gq(e, t, r, i, o, s);
  }
  function Gq(e, t, r, i, o, s, l, f) {
    const d = Wm.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;
    }, b = (I) => {
      const O = h(I);
      return O !== void 0 ? O : `/* Input file ${I} was missing */\r
`;
    };
    let A;
    return Object.defineProperties(d, {
      javascriptText: { get: () => b(t) },
      javascriptMapText: { get: () => h(r) },
      declarationText: { get: () => b(D.checkDefined(i)) },
      declarationMapText: { get: () => h(o) },
      buildInfo: { get: () => {
        var I, O;
        if (A === void 0 && s)
          if (l != null && l.getBuildInfo)
            A = (I = l.getBuildInfo(s, f.configFilePath)) != null ? I : !1;
          else {
            const k = h(s);
            A = k !== void 0 && (O = z5(s, k)) != null ? O : !1;
          }
        return A || void 0;
      } }
    }), d;
  }
  function Uq(e, t, r, i, o, s, l, f, d, y, h) {
    const b = Wm.createInputFiles();
    return b.javascriptPath = e, b.javascriptText = t, b.javascriptMapPath = r, b.javascriptMapText = i, b.declarationPath = o, b.declarationText = s, b.declarationMapPath = l, b.declarationMapText = f, b.buildInfoPath = d, b.buildInfo = y, b.oldFileOfCurrentEmit = h, b;
  }
  function S6e(e, t, r) {
    return new (lfe || (lfe = Bl.getSourceMapSourceConstructor()))(e, t, r);
  }
  function jr(e, t) {
    if (e.original = t, t) {
      const r = t.emitNode;
      r && (e.emitNode = x6e(r, e.emitNode));
    }
    return e;
  }
  function x6e(e, t) {
    const {
      flags: r,
      internalFlags: i,
      leadingComments: o,
      trailingComments: s,
      commentRange: l,
      sourceMapRange: f,
      tokenSourceMapRanges: d,
      constantValue: y,
      helpers: h,
      startsOnNewLine: b,
      snippetElement: A
    } = e;
    if (t || (t = {}), o && (t.leadingComments = bi(o.slice(), t.leadingComments)), s && (t.trailingComments = bi(s.slice(), t.trailingComments)), r && (t.flags = r), i && (t.internalFlags = i & -9), l && (t.commentRange = l), f && (t.sourceMapRange = f), d && (t.tokenSourceMapRanges = A6e(d, t.tokenSourceMapRanges)), y !== void 0 && (t.constantValue = y), h)
      for (const L of h)
        t.helpers = ry(t.helpers, L);
    return b !== void 0 && (t.startsOnNewLine = b), A !== void 0 && (t.snippetElement = A), t;
  }
  function A6e(e, t) {
    t || (t = []);
    for (const r in e)
      t[r] = e[r];
    return t;
  }
  var uO, Vq, jq, fg, Hq, yk, cfe, N, lfe, C6e = C({
    "src/compiler/factory/nodeFactory.ts"() {
      wa(), uO = 0, Vq = /* @__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))(Vq || {}), jq = [], Hq = {}, yk = rfe(), cfe = {
        createBaseSourceFileNode: (e) => lO(yk.createBaseSourceFileNode(e)),
        createBaseIdentifierNode: (e) => lO(yk.createBaseIdentifierNode(e)),
        createBasePrivateIdentifierNode: (e) => lO(yk.createBasePrivateIdentifierNode(e)),
        createBaseTokenNode: (e) => lO(yk.createBaseTokenNode(e)),
        createBaseNode: (e) => lO(yk.createBaseNode(e))
      }, N = cO(4, cfe);
    }
  });
  function $u(e) {
    var t;
    if (e.emitNode)
      D.assert(!(e.emitNode.internalFlags & 8), "Invalid attempt to mutate an immutable node.");
    else {
      if (hI(e)) {
        if (e.kind === 308)
          return e.emitNode = { annotatedNodes: [e] };
        const r = (t = er(ga(er(e)))) != null ? t : D.fail("Could not determine parsed source file.");
        $u(r).annotatedNodes.push(e);
      }
      e.emitNode = {};
    }
    return e.emitNode;
  }
  function Wq(e) {
    var t, r;
    const i = (r = (t = er(ga(e))) == null ? void 0 : t.emitNode) == null ? void 0 : r.annotatedNodes;
    if (i)
      for (const o of i)
        o.emitNode = void 0;
  }
  function dO(e) {
    const t = $u(e);
    return t.flags |= 3072, t.leadingComments = void 0, t.trailingComments = void 0, e;
  }
  function sr(e, t) {
    return $u(e).flags = t, e;
  }
  function $p(e, t) {
    const r = $u(e);
    return r.flags = r.flags | t, e;
  }
  function fO(e, t) {
    return $u(e).internalFlags = t, e;
  }
  function mx(e, t) {
    const r = $u(e);
    return r.internalFlags = r.internalFlags | t, e;
  }
  function $0(e) {
    var t, r;
    return (r = (t = e.emitNode) == null ? void 0 : t.sourceMapRange) != null ? r : e;
  }
  function ls(e, t) {
    return $u(e).sourceMapRange = t, e;
  }
  function L6e(e, t) {
    var r, i;
    return (i = (r = e.emitNode) == null ? void 0 : r.tokenSourceMapRanges) == null ? void 0 : i[t];
  }
  function ufe(e, t, r) {
    var i;
    const o = $u(e), s = (i = o.tokenSourceMapRanges) != null ? i : o.tokenSourceMapRanges = [];
    return s[t] = r, e;
  }
  function _O(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.startsOnNewLine;
  }
  function zq(e, t) {
    return $u(e).startsOnNewLine = t, e;
  }
  function Gm(e) {
    var t, r;
    return (r = (t = e.emitNode) == null ? void 0 : t.commentRange) != null ? r : e;
  }
  function Gl(e, t) {
    return $u(e).commentRange = t, e;
  }
  function lC(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.leadingComments;
  }
  function D1(e, t) {
    return $u(e).leadingComments = t, e;
  }
  function pO(e, t, r, i) {
    return D1(e, Bn(lC(e), { kind: t, pos: -1, end: -1, hasTrailingNewLine: i, text: r }));
  }
  function mO(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.trailingComments;
  }
  function uC(e, t) {
    return $u(e).trailingComments = t, e;
  }
  function Y3(e, t, r, i) {
    return uC(e, Bn(mO(e), { kind: t, pos: -1, end: -1, hasTrailingNewLine: i, text: r }));
  }
  function dfe(e, t) {
    D1(e, lC(t)), uC(e, mO(t));
    const r = $u(t);
    return r.leadingComments = void 0, r.trailingComments = void 0, e;
  }
  function ffe(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.constantValue;
  }
  function _fe(e, t) {
    const r = $u(e);
    return r.constantValue = t, e;
  }
  function hx(e, t) {
    const r = $u(e);
    return r.helpers = Bn(r.helpers, t), e;
  }
  function yy(e, t) {
    if (kt(t)) {
      const r = $u(e);
      for (const i of t)
        r.helpers = ry(r.helpers, i);
    }
    return e;
  }
  function I6e(e, t) {
    var r;
    const i = (r = e.emitNode) == null ? void 0 : r.helpers;
    return i ? N4(i, t) : !1;
  }
  function $3(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.helpers;
  }
  function pfe(e, t, r) {
    const i = e.emitNode, o = i && i.helpers;
    if (!kt(o))
      return;
    const s = $u(t);
    let l = 0;
    for (let f = 0; f < o.length; f++) {
      const d = o[f];
      r(d) ? (l++, s.helpers = ry(s.helpers, d)) : l > 0 && (o[f - l] = d);
    }
    l > 0 && (o.length -= l);
  }
  function qq(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.snippetElement;
  }
  function Jq(e, t) {
    const r = $u(e);
    return r.snippetElement = t, e;
  }
  function Kq(e) {
    return $u(e).internalFlags |= 4, e;
  }
  function mfe(e, t) {
    const r = $u(e);
    return r.typeNode = t, e;
  }
  function hfe(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.typeNode;
  }
  function vy(e, t) {
    return $u(e).identifierTypeArguments = t, e;
  }
  function xT(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.identifierTypeArguments;
  }
  function hO(e, t) {
    return $u(e).autoGenerate = t, e;
  }
  function k6e(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.autoGenerate;
  }
  function gfe(e, t) {
    return $u(e).generatedImportReference = t, e;
  }
  function yfe(e) {
    var t;
    return (t = e.emitNode) == null ? void 0 : t.generatedImportReference;
  }
  var w6e = C({
    "src/compiler/factory/emitNode.ts"() {
      wa();
    }
  });
  function vfe(e) {
    const t = e.factory, r = yd(() => fO(t.createTrue(), 8)), i = yd(() => fO(t.createFalse(), 8));
    return {
      getUnscopedHelperName: o,
      createDecorateHelper: s,
      createMetadataHelper: l,
      createParamHelper: f,
      createESDecorateHelper: O,
      createRunInitializersHelper: k,
      createAssignHelper: B,
      createAwaitHelper: V,
      createAsyncGeneratorHelper: H,
      createAsyncDelegatorHelper: te,
      createAsyncValuesHelper: X,
      createRestHelper: Y,
      createAwaiterHelper: P,
      createExtendsHelper: de,
      createTemplateObjectHelper: ne,
      createSpreadArrayHelper: ye,
      createPropKeyHelper: ie,
      createSetFunctionNameHelper: W,
      createValuesHelper: ce,
      createReadHelper: pe,
      createGeneratorHelper: ve,
      createCreateBindingHelper: Te,
      createImportStarHelper: ee,
      createImportStarCallbackHelper: $e,
      createImportDefaultHelper: Ue,
      createExportStarHelper: Be,
      createClassPrivateFieldGetHelper: We,
      createClassPrivateFieldSetHelper: Oe,
      createClassPrivateFieldInHelper: Me
    };
    function o(Xe) {
      return sr(t.createIdentifier(Xe), 8196);
    }
    function s(Xe, He, Fe, st) {
      e.requestEmitHelper(Q3);
      const Ct = [];
      return Ct.push(t.createArrayLiteralExpression(Xe, !0)), Ct.push(He), Fe && (Ct.push(Fe), st && Ct.push(st)), t.createCallExpression(o("__decorate"), void 0, Ct);
    }
    function l(Xe, He) {
      return e.requestEmitHelper(Z3), t.createCallExpression(o("__metadata"), void 0, [
        t.createStringLiteral(Xe),
        He
      ]);
    }
    function f(Xe, He, Fe) {
      return e.requestEmitHelper(e7), mt(t.createCallExpression(o("__param"), void 0, [
        t.createNumericLiteral(He + ""),
        Xe
      ]), Fe);
    }
    function d(Xe) {
      return t.createObjectLiteralExpression([
        t.createPropertyAssignment(t.createIdentifier("kind"), t.createStringLiteral("class")),
        t.createPropertyAssignment(t.createIdentifier("name"), Xe.name)
      ]);
    }
    function y(Xe) {
      const He = Xe.computed ? t.createElementAccessExpression(t.createIdentifier("obj"), Xe.name) : t.createPropertyAccessExpression(t.createIdentifier("obj"), Xe.name);
      return t.createPropertyAssignment("get", t.createArrowFunction(void 0, void 0, [t.createParameterDeclaration(void 0, void 0, t.createIdentifier("obj"))], void 0, void 0, He));
    }
    function h(Xe) {
      const He = Xe.computed ? t.createElementAccessExpression(t.createIdentifier("obj"), Xe.name) : t.createPropertyAccessExpression(t.createIdentifier("obj"), Xe.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(He, t.createIdentifier("value")))
      ])));
    }
    function b(Xe) {
      const He = Xe.computed ? Xe.name : Ve(Xe.name) ? t.createStringLiteralFromNode(Xe.name) : Xe.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(He, 101, t.createIdentifier("obj"))));
    }
    function A(Xe, He) {
      const Fe = [];
      return Fe.push(b(Xe)), He.get && Fe.push(y(Xe)), He.set && Fe.push(h(Xe)), t.createObjectLiteralExpression(Fe);
    }
    function L(Xe) {
      return t.createObjectLiteralExpression([
        t.createPropertyAssignment(t.createIdentifier("kind"), t.createStringLiteral(Xe.kind)),
        t.createPropertyAssignment(t.createIdentifier("name"), Xe.name.computed ? Xe.name.name : t.createStringLiteralFromNode(Xe.name.name)),
        t.createPropertyAssignment(t.createIdentifier("static"), Xe.static ? t.createTrue() : t.createFalse()),
        t.createPropertyAssignment(t.createIdentifier("private"), Xe.private ? t.createTrue() : t.createFalse()),
        t.createPropertyAssignment(t.createIdentifier("access"), A(Xe.name, Xe.access))
      ]);
    }
    function I(Xe) {
      return Xe.kind === "class" ? d(Xe) : L(Xe);
    }
    function O(Xe, He, Fe, st, Ct, Et) {
      return e.requestEmitHelper(t7), t.createCallExpression(o("__esDecorate"), void 0, [
        Xe ?? t.createNull(),
        He ?? t.createNull(),
        Fe,
        I(st),
        Ct,
        Et
      ]);
    }
    function k(Xe, He, Fe) {
      return e.requestEmitHelper(n7), t.createCallExpression(o("__runInitializers"), void 0, Fe ? [Xe, He, Fe] : [Xe, He]);
    }
    function B(Xe) {
      return $o(e.getCompilerOptions()) >= 2 ? t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"), "assign"), void 0, Xe) : (e.requestEmitHelper(r7), t.createCallExpression(o("__assign"), void 0, Xe));
    }
    function V(Xe) {
      return e.requestEmitHelper(gx), t.createCallExpression(o("__await"), void 0, [Xe]);
    }
    function H(Xe, He) {
      return e.requestEmitHelper(gx), e.requestEmitHelper(i7), (Xe.emitNode || (Xe.emitNode = {})).flags |= 1572864, t.createCallExpression(o("__asyncGenerator"), void 0, [
        He ? t.createThis() : t.createVoidZero(),
        t.createIdentifier("arguments"),
        Xe
      ]);
    }
    function te(Xe) {
      return e.requestEmitHelper(gx), e.requestEmitHelper(a7), t.createCallExpression(o("__asyncDelegator"), void 0, [Xe]);
    }
    function X(Xe) {
      return e.requestEmitHelper(o7), t.createCallExpression(o("__asyncValues"), void 0, [Xe]);
    }
    function Y(Xe, He, Fe, st) {
      e.requestEmitHelper(s7);
      const Ct = [];
      let Et = 0;
      for (let Vt = 0; Vt < He.length - 1; Vt++) {
        const tt = kJ(He[Vt]);
        if (tt)
          if (Ts(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, [
        Xe,
        mt(t.createArrayLiteralExpression(Ct), st)
      ]);
    }
    function P(Xe, He, Fe, st) {
      e.requestEmitHelper(c7);
      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, [
        Xe ? t.createThis() : t.createVoidZero(),
        He ? t.createIdentifier("arguments") : t.createVoidZero(),
        Fe ? NO(t, Fe) : t.createVoidZero(),
        Ct
      ]);
    }
    function de(Xe) {
      return e.requestEmitHelper(l7), t.createCallExpression(o("__extends"), void 0, [Xe, t.createUniqueName("_super", 48)]);
    }
    function ne(Xe, He) {
      return e.requestEmitHelper(u7), t.createCallExpression(o("__makeTemplateObject"), void 0, [Xe, He]);
    }
    function ye(Xe, He, Fe) {
      return e.requestEmitHelper(f7), t.createCallExpression(o("__spreadArray"), void 0, [Xe, He, Fe ? r() : i()]);
    }
    function ie(Xe) {
      return e.requestEmitHelper(_7), t.createCallExpression(o("__propKey"), void 0, [Xe]);
    }
    function W(Xe, He, Fe) {
      return e.requestEmitHelper(p7), e.factory.createCallExpression(o("__setFunctionName"), void 0, Fe ? [Xe, He, e.factory.createStringLiteral(Fe)] : [Xe, He]);
    }
    function ce(Xe) {
      return e.requestEmitHelper(m7), t.createCallExpression(o("__values"), void 0, [Xe]);
    }
    function pe(Xe, He) {
      return e.requestEmitHelper(d7), t.createCallExpression(o("__read"), void 0, He !== void 0 ? [Xe, t.createNumericLiteral(He + "")] : [Xe]);
    }
    function ve(Xe) {
      return e.requestEmitHelper(h7), t.createCallExpression(o("__generator"), void 0, [t.createThis(), Xe]);
    }
    function Te(Xe, He, Fe) {
      return e.requestEmitHelper(dC), t.createCallExpression(o("__createBinding"), void 0, [t.createIdentifier("exports"), Xe, He, ...Fe ? [Fe] : []]);
    }
    function ee(Xe) {
      return e.requestEmitHelper(gO), t.createCallExpression(o("__importStar"), void 0, [Xe]);
    }
    function $e() {
      return e.requestEmitHelper(gO), o("__importStar");
    }
    function Ue(Xe) {
      return e.requestEmitHelper(y7), t.createCallExpression(o("__importDefault"), void 0, [Xe]);
    }
    function Be(Xe, He = t.createIdentifier("exports")) {
      return e.requestEmitHelper(v7), e.requestEmitHelper(dC), t.createCallExpression(o("__exportStar"), void 0, [Xe, He]);
    }
    function We(Xe, He, Fe, st) {
      e.requestEmitHelper(b7);
      let Ct;
      return st ? Ct = [Xe, He, t.createStringLiteral(Fe), st] : Ct = [Xe, He, t.createStringLiteral(Fe)], t.createCallExpression(o("__classPrivateFieldGet"), void 0, Ct);
    }
    function Oe(Xe, He, Fe, st, Ct) {
      e.requestEmitHelper(E7);
      let Et;
      return Ct ? Et = [Xe, He, Fe, t.createStringLiteral(st), Ct] : Et = [Xe, He, Fe, t.createStringLiteral(st)], t.createCallExpression(o("__classPrivateFieldSet"), void 0, Et);
    }
    function Me(Xe, He) {
      return e.requestEmitHelper(T7), t.createCallExpression(o("__classPrivateFieldIn"), void 0, [Xe, He]);
    }
  }
  function bfe(e, t) {
    return e === t || e.priority === t.priority ? 0 : e.priority === void 0 ? 1 : t.priority === void 0 ? -1 : Vs(e.priority, t.priority);
  }
  function Xq(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 Yq() {
    return Efe || (Efe = t1([
      Q3,
      Z3,
      e7,
      t7,
      n7,
      r7,
      gx,
      i7,
      a7,
      o7,
      s7,
      c7,
      l7,
      u7,
      f7,
      m7,
      d7,
      _7,
      p7,
      h7,
      gO,
      y7,
      v7,
      b7,
      E7,
      T7,
      dC,
      g7
    ], (e) => e.name));
  }
  function vk(e, t) {
    return eo(e) && Ve(e.expression) && (go(e.expression) & 8192) !== 0 && e.expression.escapedText === t;
  }
  var $q, Q3, Z3, e7, t7, n7, r7, gx, i7, a7, o7, s7, c7, l7, u7, d7, f7, _7, p7, m7, h7, dC, g7, gO, y7, v7, b7, E7, T7, Efe, yO, vO, D6e = C({
    "src/compiler/factory/emitHelpers.ts"() {
      wa(), $q = /* @__PURE__ */ ((e) => (e.Field = "f", e.Method = "m", e.Accessor = "a", e))($q || {}), Q3 = {
        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;
            };`
      }, Z3 = {
        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);
            };`
      }, e7 = {
        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); }
            };`
      }, t7 = {
        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;
        };`
      }, n7 = {
        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;
        };`
      }, r7 = {
        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);
            };`
      }, gx = {
        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); }`
      }, i7 = {
        name: "typescript:asyncGenerator",
        importName: "__asyncGenerator",
        scoped: !1,
        dependencies: [gx],
        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]); }
            };`
      }, a7 = {
        name: "typescript:asyncDelegator",
        importName: "__asyncDelegator",
        scoped: !1,
        dependencies: [gx],
        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; }
            };`
      }, o7 = {
        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); }
            };`
      }, s7 = {
        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;
            };`
      }, c7 = {
        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());
                });
            };`
      }, l7 = {
        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 __());
                };
            })();`
      }, u7 = {
        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;
            };`
      }, d7 = {
        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;
            };`
      }, f7 = {
        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));
            };`
      }, _7 = {
        name: "typescript:propKey",
        importName: "__propKey",
        scoped: !1,
        text: `
        var __propKey = (this && this.__propKey) || function (x) {
            return typeof x === "symbol" ? x : "".concat(x);
        };`
      }, p7 = {
        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 });
        };`
      }, m7 = {
        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.");
            };`
      }, h7 = {
        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 };
                }
            };`
      }, dC = {
        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];
            }));`
      }, g7 = {
        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;
            });`
      }, gO = {
        name: "typescript:commonjsimportstar",
        importName: "__importStar",
        scoped: !1,
        dependencies: [dC, g7],
        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;
            };`
      }, y7 = {
        name: "typescript:commonjsimportdefault",
        importName: "__importDefault",
        scoped: !1,
        text: `
            var __importDefault = (this && this.__importDefault) || function (mod) {
                return (mod && mod.__esModule) ? mod : { "default": mod };
            };`
      }, v7 = {
        name: "typescript:export-star",
        importName: "__exportStar",
        scoped: !1,
        dependencies: [dC],
        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);
            };`
      }, b7 = {
        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);
            };`
      }, E7 = {
        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;
            };`
      }, T7 = {
        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);
            };`
      }, yO = {
        name: "typescript:async-super",
        scoped: !0,
        text: Xq`
            const ${"_superIndex"} = name => super[name];`
      }, vO = {
        name: "typescript:advanced-async-super",
        scoped: !0,
        text: Xq`
            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 h_(e) {
    return e.kind === 8;
  }
  function S7(e) {
    return e.kind === 9;
  }
  function Go(e) {
    return e.kind === 10;
  }
  function yx(e) {
    return e.kind === 11;
  }
  function Qq(e) {
    return e.kind === 13;
  }
  function vx(e) {
    return e.kind === 14;
  }
  function fC(e) {
    return e.kind === 15;
  }
  function Tfe(e) {
    return e.kind === 16;
  }
  function Zq(e) {
    return e.kind === 17;
  }
  function x7(e) {
    return e.kind === 25;
  }
  function Sfe(e) {
    return e.kind === 27;
  }
  function eJ(e) {
    return e.kind === 39;
  }
  function tJ(e) {
    return e.kind === 40;
  }
  function bO(e) {
    return e.kind === 41;
  }
  function EO(e) {
    return e.kind === 53;
  }
  function Nv(e) {
    return e.kind === 57;
  }
  function xfe(e) {
    return e.kind === 58;
  }
  function A7(e) {
    return e.kind === 28;
  }
  function Afe(e) {
    return e.kind === 38;
  }
  function Ve(e) {
    return e.kind === 79;
  }
  function Di(e) {
    return e.kind === 80;
  }
  function C7(e) {
    return e.kind === 93;
  }
  function Cfe(e) {
    return e.kind === 88;
  }
  function bk(e) {
    return e.kind === 132;
  }
  function Lfe(e) {
    return e.kind === 129;
  }
  function nJ(e) {
    return e.kind === 133;
  }
  function Ife(e) {
    return e.kind === 146;
  }
  function bx(e) {
    return e.kind === 124;
  }
  function kfe(e) {
    return e.kind === 126;
  }
  function wfe(e) {
    return e.kind === 161;
  }
  function Dfe(e) {
    return e.kind === 127;
  }
  function Ek(e) {
    return e.kind === 106;
  }
  function Tk(e) {
    return e.kind === 100;
  }
  function Rfe(e) {
    return e.kind === 82;
  }
  function Sd(e) {
    return e.kind === 163;
  }
  function Ts(e) {
    return e.kind === 164;
  }
  function Pc(e) {
    return e.kind === 165;
  }
  function Oa(e) {
    return e.kind === 166;
  }
  function Nu(e) {
    return e.kind === 167;
  }
  function xf(e) {
    return e.kind === 168;
  }
  function Za(e) {
    return e.kind === 169;
  }
  function Th(e) {
    return e.kind === 170;
  }
  function nl(e) {
    return e.kind === 171;
  }
  function Lc(e) {
    return e.kind === 172;
  }
  function Hc(e) {
    return e.kind === 173;
  }
  function H_(e) {
    return e.kind === 174;
  }
  function Yf(e) {
    return e.kind === 175;
  }
  function _C(e) {
    return e.kind === 176;
  }
  function TO(e) {
    return e.kind === 177;
  }
  function Ex(e) {
    return e.kind === 178;
  }
  function L7(e) {
    return e.kind === 179;
  }
  function W_(e) {
    return e.kind === 180;
  }
  function Sh(e) {
    return e.kind === 181;
  }
  function Sk(e) {
    return e.kind === 182;
  }
  function xk(e) {
    return e.kind === 183;
  }
  function of(e) {
    return e.kind === 184;
  }
  function rJ(e) {
    return e.kind === 185;
  }
  function pC(e) {
    return e.kind === 186;
  }
  function Ak(e) {
    return e.kind === 199;
  }
  function iJ(e) {
    return e.kind === 187;
  }
  function aJ(e) {
    return e.kind === 188;
  }
  function Tx(e) {
    return e.kind === 189;
  }
  function SO(e) {
    return e.kind === 190;
  }
  function mC(e) {
    return e.kind === 191;
  }
  function hC(e) {
    return e.kind === 192;
  }
  function Sx(e) {
    return e.kind === 193;
  }
  function I7(e) {
    return e.kind === 194;
  }
  function xx(e) {
    return e.kind === 195;
  }
  function Ax(e) {
    return e.kind === 196;
  }
  function Ck(e) {
    return e.kind === 197;
  }
  function Q0(e) {
    return e.kind === 198;
  }
  function _g(e) {
    return e.kind === 202;
  }
  function Nfe(e) {
    return e.kind === 201;
  }
  function R6e(e) {
    return e.kind === 200;
  }
  function Um(e) {
    return e.kind === 203;
  }
  function gC(e) {
    return e.kind === 204;
  }
  function us(e) {
    return e.kind === 205;
  }
  function Ou(e) {
    return e.kind === 206;
  }
  function xs(e) {
    return e.kind === 207;
  }
  function Mr(e) {
    return e.kind === 208;
  }
  function cc(e) {
    return e.kind === 209;
  }
  function eo(e) {
    return e.kind === 210;
  }
  function R1(e) {
    return e.kind === 211;
  }
  function AT(e) {
    return e.kind === 212;
  }
  function Ofe(e) {
    return e.kind === 213;
  }
  function Fd(e) {
    return e.kind === 214;
  }
  function Ps(e) {
    return e.kind === 215;
  }
  function Ws(e) {
    return e.kind === 216;
  }
  function Pfe(e) {
    return e.kind === 217;
  }
  function yC(e) {
    return e.kind === 218;
  }
  function Cx(e) {
    return e.kind === 219;
  }
  function vC(e) {
    return e.kind === 220;
  }
  function Ov(e) {
    return e.kind === 221;
  }
  function oJ(e) {
    return e.kind === 222;
  }
  function br(e) {
    return e.kind === 223;
  }
  function bC(e) {
    return e.kind === 224;
  }
  function k7(e) {
    return e.kind === 225;
  }
  function w7(e) {
    return e.kind === 226;
  }
  function xh(e) {
    return e.kind === 227;
  }
  function Pu(e) {
    return e.kind === 228;
  }
  function kl(e) {
    return e.kind === 229;
  }
  function by(e) {
    return e.kind === 230;
  }
  function xO(e) {
    return e.kind === 231;
  }
  function N6e(e) {
    return e.kind === 235;
  }
  function Lx(e) {
    return e.kind === 232;
  }
  function Lk(e) {
    return e.kind === 233;
  }
  function O6e(e) {
    return e.kind === 234;
  }
  function D7(e) {
    return e.kind === 356;
  }
  function Ik(e) {
    return e.kind === 357;
  }
  function kk(e) {
    return e.kind === 236;
  }
  function Mfe(e) {
    return e.kind === 237;
  }
  function oo(e) {
    return e.kind === 238;
  }
  function cl(e) {
    return e.kind === 240;
  }
  function sJ(e) {
    return e.kind === 239;
  }
  function nu(e) {
    return e.kind === 241;
  }
  function CT(e) {
    return e.kind === 242;
  }
  function P6e(e) {
    return e.kind === 243;
  }
  function M6e(e) {
    return e.kind === 244;
  }
  function LT(e) {
    return e.kind === 245;
  }
  function cJ(e) {
    return e.kind === 246;
  }
  function AO(e) {
    return e.kind === 247;
  }
  function F6e(e) {
    return e.kind === 248;
  }
  function B6e(e) {
    return e.kind === 249;
  }
  function gp(e) {
    return e.kind === 250;
  }
  function Ffe(e) {
    return e.kind === 251;
  }
  function CO(e) {
    return e.kind === 252;
  }
  function N1(e) {
    return e.kind === 253;
  }
  function lJ(e) {
    return e.kind === 254;
  }
  function LO(e) {
    return e.kind === 255;
  }
  function G6e(e) {
    return e.kind === 256;
  }
  function zi(e) {
    return e.kind === 257;
  }
  function Mu(e) {
    return e.kind === 258;
  }
  function ml(e) {
    return e.kind === 259;
  }
  function wl(e) {
    return e.kind === 260;
  }
  function Qu(e) {
    return e.kind === 261;
  }
  function Qp(e) {
    return e.kind === 262;
  }
  function Z0(e) {
    return e.kind === 263;
  }
  function Wc(e) {
    return e.kind === 264;
  }
  function Zp(e) {
    return e.kind === 265;
  }
  function IO(e) {
    return e.kind === 266;
  }
  function kO(e) {
    return e.kind === 267;
  }
  function ru(e) {
    return e.kind === 268;
  }
  function Ul(e) {
    return e.kind === 269;
  }
  function Vm(e) {
    return e.kind === 270;
  }
  function Bfe(e) {
    return e.kind === 298;
  }
  function R7(e) {
    return e.kind === 296;
  }
  function Gfe(e) {
    return e.kind === 297;
  }
  function Pv(e) {
    return e.kind === 271;
  }
  function Ah(e) {
    return e.kind === 277;
  }
  function Ey(e) {
    return e.kind === 272;
  }
  function xd(e) {
    return e.kind === 273;
  }
  function Mc(e) {
    return e.kind === 274;
  }
  function Xl(e) {
    return e.kind === 275;
  }
  function z_(e) {
    return e.kind === 276;
  }
  function cd(e) {
    return e.kind === 278;
  }
  function U6e(e) {
    return e.kind === 279;
  }
  function uJ(e) {
    return e.kind === 355;
  }
  function Ix(e) {
    return e.kind === 360;
  }
  function V6e(e) {
    return e.kind === 358;
  }
  function j6e(e) {
    return e.kind === 359;
  }
  function jm(e) {
    return e.kind === 280;
  }
  function Ty(e) {
    return e.kind === 281;
  }
  function kx(e) {
    return e.kind === 282;
  }
  function Ch(e) {
    return e.kind === 283;
  }
  function wx(e) {
    return e.kind === 284;
  }
  function Dx(e) {
    return e.kind === 285;
  }
  function Rx(e) {
    return e.kind === 286;
  }
  function Ufe(e) {
    return e.kind === 287;
  }
  function em(e) {
    return e.kind === 288;
  }
  function O1(e) {
    return e.kind === 289;
  }
  function IT(e) {
    return e.kind === 290;
  }
  function wk(e) {
    return e.kind === 291;
  }
  function Dk(e) {
    return e.kind === 292;
  }
  function wO(e) {
    return e.kind === 293;
  }
  function Bd(e) {
    return e.kind === 294;
  }
  function EC(e) {
    return e.kind === 295;
  }
  function Vl(e) {
    return e.kind === 299;
  }
  function $f(e) {
    return e.kind === 300;
  }
  function Nx(e) {
    return e.kind === 301;
  }
  function P1(e) {
    return e.kind === 302;
  }
  function Vfe(e) {
    return e.kind === 304;
  }
  function Hi(e) {
    return e.kind === 308;
  }
  function dJ(e) {
    return e.kind === 309;
  }
  function kT(e) {
    return e.kind === 310;
  }
  function wT(e) {
    return e.kind === 312;
  }
  function Rk(e) {
    return e.kind === 313;
  }
  function eb(e) {
    return e.kind === 314;
  }
  function jfe(e) {
    return e.kind === 327;
  }
  function Hfe(e) {
    return e.kind === 328;
  }
  function H6e(e) {
    return e.kind === 329;
  }
  function Wfe(e) {
    return e.kind === 315;
  }
  function zfe(e) {
    return e.kind === 316;
  }
  function TC(e) {
    return e.kind === 317;
  }
  function N7(e) {
    return e.kind === 318;
  }
  function fJ(e) {
    return e.kind === 319;
  }
  function SC(e) {
    return e.kind === 320;
  }
  function O7(e) {
    return e.kind === 321;
  }
  function W6e(e) {
    return e.kind === 322;
  }
  function Hm(e) {
    return e.kind === 323;
  }
  function Nk(e) {
    return e.kind === 325;
  }
  function M1(e) {
    return e.kind === 326;
  }
  function xC(e) {
    return e.kind === 331;
  }
  function z6e(e) {
    return e.kind === 333;
  }
  function qfe(e) {
    return e.kind === 335;
  }
  function _J(e) {
    return e.kind === 341;
  }
  function pJ(e) {
    return e.kind === 336;
  }
  function mJ(e) {
    return e.kind === 337;
  }
  function hJ(e) {
    return e.kind === 338;
  }
  function gJ(e) {
    return e.kind === 339;
  }
  function P7(e) {
    return e.kind === 340;
  }
  function Ok(e) {
    return e.kind === 342;
  }
  function yJ(e) {
    return e.kind === 334;
  }
  function q6e(e) {
    return e.kind === 350;
  }
  function DO(e) {
    return e.kind === 343;
  }
  function tm(e) {
    return e.kind === 344;
  }
  function M7(e) {
    return e.kind === 345;
  }
  function Jfe(e) {
    return e.kind === 346;
  }
  function Pk(e) {
    return e.kind === 347;
  }
  function yp(e) {
    return e.kind === 348;
  }
  function vJ(e) {
    return e.kind === 349;
  }
  function J6e(e) {
    return e.kind === 330;
  }
  function Kfe(e) {
    return e.kind === 351;
  }
  function bJ(e) {
    return e.kind === 332;
  }
  function F7(e) {
    return e.kind === 353;
  }
  function K6e(e) {
    return e.kind === 352;
  }
  function AC(e) {
    return e.kind === 354;
  }
  var X6e = C({
    "src/compiler/factory/nodeTests.ts"() {
      wa();
    }
  });
  function RO(e) {
    return e.createExportDeclaration(void 0, !1, e.createNamedExports([]), void 0);
  }
  function DT(e, t, r, i) {
    if (Ts(r))
      return mt(e.createElementAccessExpression(t, r.expression), i);
    {
      const o = mt(ng(r) ? e.createPropertyAccessExpression(t, r) : e.createElementAccessExpression(t, r), r);
      return $p(o, 128), o;
    }
  }
  function EJ(e, t) {
    const r = Wm.createIdentifier(e || "React");
    return Bo(r, ga(t)), r;
  }
  function TJ(e, t, r) {
    if (Sd(t)) {
      const i = TJ(e, t.left, r), o = e.createIdentifier(Pr(t.right));
      return o.escapedText = t.right.escapedText, e.createPropertyAccessExpression(i, o);
    } else
      return EJ(Pr(t), r);
  }
  function SJ(e, t, r, i) {
    return t ? TJ(e, t, i) : e.createPropertyAccessExpression(EJ(r, i), "createElement");
  }
  function Y6e(e, t, r, i) {
    return t ? TJ(e, t, i) : e.createPropertyAccessExpression(EJ(r, i), "Fragment");
  }
  function Xfe(e, t, r, i, o, s) {
    const l = [r];
    if (i && l.push(i), o && o.length > 0)
      if (i || l.push(e.createNull()), o.length > 1)
        for (const f of o)
          Fu(f), l.push(f);
      else
        l.push(o[0]);
    return mt(e.createCallExpression(t, void 0, l), s);
  }
  function Yfe(e, t, r, i, o, s, l) {
    const d = [Y6e(e, r, i, s), e.createNull()];
    if (o && o.length > 0)
      if (o.length > 1)
        for (const y of o)
          Fu(y), d.push(y);
      else
        d.push(o[0]);
    return mt(e.createCallExpression(SJ(e, t, i, s), void 0, d), l);
  }
  function xJ(e, t, r) {
    if (Mu(t)) {
      const i = ss(t.declarations), o = e.updateVariableDeclaration(i, i.name, void 0, void 0, r);
      return mt(e.createVariableStatement(void 0, e.updateVariableDeclarationList(t, [o])), t);
    } else {
      const i = mt(e.createAssignment(t, r), t);
      return mt(e.createExpressionStatement(i), t);
    }
  }
  function $6e(e, t, r) {
    return oo(t) ? e.updateBlock(t, mt(e.createNodeArray([r, ...t.statements]), t.statements)) : e.createBlock(e.createNodeArray([t, r]), !0);
  }
  function NO(e, t) {
    if (Sd(t)) {
      const r = NO(e, t.left), i = Bo(mt(e.cloneNode(t.right), t.right), t.right.parent);
      return mt(e.createPropertyAccessExpression(r, i), t);
    } else
      return Bo(mt(e.cloneNode(t), t), t.parent);
  }
  function AJ(e, t) {
    return Ve(t) ? e.createStringLiteralFromNode(t) : Ts(t) ? Bo(mt(e.cloneNode(t.expression), t.expression), t.expression.parent) : Bo(mt(e.cloneNode(t), t), t.parent);
  }
  function Q6e(e, t, r, i, o) {
    const { firstAccessor: s, getAccessor: l, setAccessor: f } = vT(t, r);
    if (r === s)
      return mt(e.createObjectDefinePropertyCall(i, AJ(e, r.name), e.createPropertyDescriptor({
        enumerable: e.createFalse(),
        configurable: !0,
        get: l && mt(jr(e.createFunctionExpression(eT(l), void 0, void 0, void 0, l.parameters, void 0, l.body), l), l),
        set: f && mt(jr(e.createFunctionExpression(eT(f), void 0, void 0, void 0, f.parameters, void 0, f.body), f), f)
      }, !o)), s);
  }
  function Z6e(e, t, r) {
    return jr(mt(e.createAssignment(DT(e, r, t.name, t.name), t.initializer), t), t);
  }
  function ePe(e, t, r) {
    return jr(mt(e.createAssignment(DT(e, r, t.name, t.name), e.cloneNode(t.name)), t), t);
  }
  function tPe(e, t, r) {
    return jr(mt(e.createAssignment(DT(e, r, t.name, t.name), jr(mt(e.createFunctionExpression(eT(t), t.asteriskToken, void 0, void 0, t.parameters, void 0, t.body), t), t)), t), t);
  }
  function $fe(e, t, r, i) {
    switch (r.name && Di(r.name) && D.failBadSyntaxKind(r.name, "Private identifiers are not allowed in object literals."), r.kind) {
      case 174:
      case 175:
        return Q6e(e, t.properties, r, i, !!t.multiLine);
      case 299:
        return Z6e(e, r, i);
      case 300:
        return ePe(e, r, i);
      case 171:
        return tPe(e, r, i);
    }
  }
  function B7(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 l = e.createTempVariable(i);
    r = e.createAssignment(l, r), mt(r, t.operand);
    let f = Ov(t) ? e.createPrefixUnaryExpression(s, l) : e.createPostfixUnaryExpression(l, s);
    return mt(f, t), o && (f = e.createAssignment(o, f), mt(f, t)), r = e.createComma(r, f), mt(r, t), oJ(t) && (r = e.createComma(r, l), mt(r, t)), r;
  }
  function CJ(e) {
    return (go(e) & 65536) !== 0;
  }
  function Mv(e) {
    return (go(e) & 32768) !== 0;
  }
  function G7(e) {
    return (go(e) & 16384) !== 0;
  }
  function Qfe(e) {
    return Go(e.expression) && e.expression.text === "use strict";
  }
  function LJ(e) {
    for (const t of e)
      if (pp(t)) {
        if (Qfe(t))
          return t;
      } else
        break;
  }
  function Zfe(e) {
    const t = zl(e);
    return t !== void 0 && pp(t) && Qfe(t);
  }
  function OO(e) {
    return e.kind === 223 && e.operatorToken.kind === 27;
  }
  function Mk(e) {
    return OO(e) || Ik(e);
  }
  function Fk(e) {
    return Fd(e) && fr(e) && !!d1(e);
  }
  function U7(e) {
    const t = bv(e);
    return D.assertIsDefined(t), t;
  }
  function V7(e, t = 15) {
    switch (e.kind) {
      case 214:
        return t & 16 && Fk(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 hu(e, t = 15) {
    for (; V7(e, t); )
      e = e.expression;
    return e;
  }
  function e_e(e, t = 15) {
    let r = e.parent;
    for (; V7(r, t); )
      r = r.parent, D.assert(r);
    return r;
  }
  function nPe(e) {
    return hu(e, 6);
  }
  function Fu(e) {
    return zq(e, !0);
  }
  function PO(e) {
    const t = Ec(e, Hi), r = t && t.emitNode;
    return r && r.externalHelpersModuleName;
  }
  function t_e(e) {
    const t = Ec(e, Hi), r = t && t.emitNode;
    return !!r && (!!r.externalHelpersModuleName || !!r.externalHelpers);
  }
  function IJ(e, t, r, i, o, s, l) {
    if (i.importHelpers && $S(r, i)) {
      let f;
      const d = tu(i);
      if (d >= 5 && d <= 99 || r.impliedNodeFormat === 99) {
        const y = $3(r);
        if (y) {
          const h = [];
          for (const b of y)
            if (!b.scoped) {
              const A = b.importName;
              A && c_(h, A);
            }
          if (kt(h)) {
            h.sort(ku), f = e.createNamedImports(en(h, (L) => PM(r, L) ? e.createImportSpecifier(!1, void 0, e.createIdentifier(L)) : e.createImportSpecifier(!1, e.createIdentifier(L), t.getUnscopedHelperName(L))));
            const b = Ec(r, Hi), A = $u(b);
            A.externalHelpers = !0;
          }
        }
      } else {
        const y = n_e(e, r, i, o, s || l);
        y && (f = e.createNamespaceImport(y));
      }
      if (f) {
        const y = e.createImportDeclaration(void 0, e.createImportClause(!1, void 0, f), e.createStringLiteral(Y0), void 0);
        return mx(y, 2), y;
      }
    }
  }
  function n_e(e, t, r, i, o) {
    if (r.importHelpers && $S(t, r)) {
      const s = PO(t);
      if (s)
        return s;
      const l = tu(r);
      let f = (i || V_(r) && o) && l !== 4 && (l < 5 || t.impliedNodeFormat === 1);
      if (!f) {
        const d = $3(t);
        if (d) {
          for (const y of d)
            if (!y.scoped) {
              f = !0;
              break;
            }
        }
      }
      if (f) {
        const d = Ec(t, Hi), y = $u(d);
        return y.externalHelpersModuleName || (y.externalHelpersModuleName = e.createUniqueName(Y0));
      }
    }
  }
  function CC(e, t, r) {
    const i = VA(t);
    if (i && !tx(t) && !FM(t)) {
      const o = i.name;
      return Tc(o) ? o : e.createIdentifier(h1(r, o) || Pr(o));
    }
    if (t.kind === 269 && t.importClause || t.kind === 275 && t.moduleSpecifier)
      return e.getGeneratedNameForNode(t);
  }
  function Ox(e, t, r, i, o, s) {
    const l = UA(t);
    if (l && Go(l))
      return iPe(t, i, e, o, s) || rPe(e, l, r) || e.cloneNode(l);
  }
  function rPe(e, t, r) {
    const i = r.renamedDependencies && r.renamedDependencies.get(t.text);
    return i ? e.createStringLiteral(i) : void 0;
  }
  function MO(e, t, r, i) {
    if (t) {
      if (t.moduleName)
        return e.createStringLiteral(t.moduleName);
      if (!t.isDeclarationFile && Hs(i))
        return e.createStringLiteral(Tz(r, t.fileName));
    }
  }
  function iPe(e, t, r, i, o) {
    return MO(r, i.getExternalModuleFileFromDeclaration(e), t, o);
  }
  function FO(e) {
    if (UR(e))
      return e.initializer;
    if (Vl(e)) {
      const t = e.initializer;
      return Yu(t, !0) ? t.right : void 0;
    }
    if ($f(e))
      return e.objectAssignmentInitializer;
    if (Yu(e, !0))
      return e.right;
    if (xh(e))
      return FO(e.expression);
  }
  function Fv(e) {
    if (UR(e))
      return e.name;
    if (fy(e)) {
      switch (e.kind) {
        case 299:
          return Fv(e.initializer);
        case 300:
          return e.name;
        case 301:
          return Fv(e.expression);
      }
      return;
    }
    return Yu(e, !0) ? Fv(e.left) : xh(e) ? Fv(e.expression) : e;
  }
  function j7(e) {
    switch (e.kind) {
      case 166:
      case 205:
        return e.dotDotDotToken;
      case 227:
      case 301:
        return e;
    }
  }
  function kJ(e) {
    const t = H7(e);
    return D.assert(!!t || Nx(e), "Invalid property name for binding element."), t;
  }
  function H7(e) {
    switch (e.kind) {
      case 205:
        if (e.propertyName) {
          const r = e.propertyName;
          return Di(r) ? D.failBadSyntaxKind(r) : Ts(r) && r_e(r.expression) ? r.expression : r;
        }
        break;
      case 299:
        if (e.name) {
          const r = e.name;
          return Di(r) ? D.failBadSyntaxKind(r) : Ts(r) && r_e(r.expression) ? r.expression : r;
        }
        break;
      case 301:
        return e.name && Di(e.name) ? D.failBadSyntaxKind(e.name) : e.name;
    }
    const t = Fv(e);
    if (t && gc(t))
      return t;
  }
  function r_e(e) {
    const t = e.kind;
    return t === 10 || t === 8;
  }
  function LC(e) {
    switch (e.kind) {
      case 203:
      case 204:
      case 206:
        return e.elements;
      case 207:
        return e.properties;
    }
  }
  function wJ(e) {
    if (e) {
      let t = e;
      for (; ; ) {
        if (Ve(t) || !t.body)
          return Ve(t) ? t : t.name;
        t = t.body;
      }
    }
  }
  function aPe(e) {
    const t = e.kind;
    return t === 173 || t === 175;
  }
  function i_e(e) {
    const t = e.kind;
    return t === 173 || t === 174 || t === 175;
  }
  function DJ(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 a_e(e) {
    const t = e.kind;
    return t === 172 || t === 299 || t === 300 || t === 279 || t === 267;
  }
  function o_e(e) {
    return Nv(e) || EO(e);
  }
  function s_e(e) {
    return Ve(e) || I7(e);
  }
  function c_e(e) {
    return Ife(e) || eJ(e) || tJ(e);
  }
  function l_e(e) {
    return Nv(e) || eJ(e) || tJ(e);
  }
  function u_e(e) {
    return Ve(e) || Go(e);
  }
  function oPe(e) {
    const t = e.kind;
    return t === 104 || t === 110 || t === 95 || nT(e) || Ov(e);
  }
  function sPe(e) {
    return e === 42;
  }
  function cPe(e) {
    return e === 41 || e === 43 || e === 44;
  }
  function lPe(e) {
    return sPe(e) || cPe(e);
  }
  function uPe(e) {
    return e === 39 || e === 40;
  }
  function dPe(e) {
    return uPe(e) || lPe(e);
  }
  function fPe(e) {
    return e === 47 || e === 48 || e === 49;
  }
  function _Pe(e) {
    return fPe(e) || dPe(e);
  }
  function pPe(e) {
    return e === 29 || e === 32 || e === 31 || e === 33 || e === 102 || e === 101;
  }
  function mPe(e) {
    return pPe(e) || _Pe(e);
  }
  function hPe(e) {
    return e === 34 || e === 36 || e === 35 || e === 37;
  }
  function gPe(e) {
    return hPe(e) || mPe(e);
  }
  function yPe(e) {
    return e === 50 || e === 51 || e === 52;
  }
  function vPe(e) {
    return yPe(e) || gPe(e);
  }
  function bPe(e) {
    return e === 55 || e === 56;
  }
  function EPe(e) {
    return bPe(e) || vPe(e);
  }
  function TPe(e) {
    return e === 60 || EPe(e) || my(e);
  }
  function SPe(e) {
    return TPe(e) || e === 27;
  }
  function d_e(e) {
    return SPe(e.kind);
  }
  function W7(e, t, r, i, o, s) {
    const l = new g_e(e, t, r, i, o, s);
    return f;
    function f(d, y) {
      const h = { value: void 0 }, b = [J7.enter], A = [d], L = [void 0];
      let I = 0;
      for (; b[I] !== J7.done; )
        I = b[I](l, I, b, A, L, h, y);
      return D.assertEqual(I, 0), h.value;
    }
  }
  function f_e(e) {
    return e === 93 || e === 88;
  }
  function RJ(e) {
    const t = e.kind;
    return f_e(t);
  }
  function xPe(e) {
    const t = e.kind;
    return dy(t) && !f_e(t);
  }
  function __e(e, t) {
    if (t !== void 0)
      return t.length === 0 ? t : mt(e.createNodeArray([], t.hasTrailingComma), t);
  }
  function z7(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 l = (t = o.emitNode) == null ? void 0 : t.autoGenerate;
        if (ng(o) && (l === void 0 || l.flags & 4 && l.id !== i))
          break;
        s = o.original;
      }
      return o;
    }
    return e;
  }
  function IC(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 APe(e, t) {
    return typeof e == "string" ? e : CPe(e, D.checkDefined(t));
  }
  function CPe(e, t) {
    return JS(e) ? t(e).slice(1) : Tc(e) ? t(e) : Di(e) ? e.escapedText.slice(1) : Pr(e);
  }
  function RT(e, t, r, i, o) {
    return t = IC(t, o), i = IC(i, o), r = APe(r, o), `${e ? "#" : ""}${t}${r}${i}`;
  }
  function NJ(e, t, r, i) {
    return e.updatePropertyDeclaration(t, r, e.getGeneratedPrivateNameForNode(t.name, void 0, "_accessor_storage"), void 0, void 0, i);
  }
  function p_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 m_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 q7(e) {
    let t = e.expression;
    for (; ; ) {
      if (t = hu(t), Ik(t)) {
        t = Ho(t.elements);
        continue;
      }
      if (OO(t)) {
        t = t.right;
        continue;
      }
      if (Yu(t, !0) && Tc(t.left))
        return t;
      break;
    }
  }
  function LPe(e) {
    return Fd(e) && Ys(e) && !e.emitNode;
  }
  function BO(e, t) {
    if (LPe(e))
      BO(e.expression, t);
    else if (OO(e))
      BO(e.left, t), BO(e.right, t);
    else if (Ik(e))
      for (const r of e.elements)
        BO(r, t);
    else
      t.push(e);
  }
  function h_e(e) {
    const t = [];
    return BO(e, t), t;
  }
  function GO(e) {
    if (e.transformFlags & 65536)
      return !0;
    if (e.transformFlags & 128)
      for (const t of LC(e)) {
        const r = Fv(t);
        if (r && xI(r) && (r.transformFlags & 65536 || r.transformFlags & 128 && GO(r)))
          return !0;
      }
    return !1;
  }
  var J7, g_e, IPe = C({
    "src/compiler/factory/utilities.ts"() {
      wa(), ((e) => {
        function t(h, b, A, L, I, O, k) {
          const B = b > 0 ? I[b - 1] : void 0;
          return D.assertEqual(A[b], t), I[b] = h.onEnter(L[b], B, k), A[b] = f(h, t), b;
        }
        e.enter = t;
        function r(h, b, A, L, I, O, k) {
          D.assertEqual(A[b], r), D.assertIsDefined(h.onLeft), A[b] = f(h, r);
          const B = h.onLeft(L[b].left, I[b], L[b]);
          return B ? (y(b, L, B), d(b, A, L, I, B)) : b;
        }
        e.left = r;
        function i(h, b, A, L, I, O, k) {
          return D.assertEqual(A[b], i), D.assertIsDefined(h.onOperator), A[b] = f(h, i), h.onOperator(L[b].operatorToken, I[b], L[b]), b;
        }
        e.operator = i;
        function o(h, b, A, L, I, O, k) {
          D.assertEqual(A[b], o), D.assertIsDefined(h.onRight), A[b] = f(h, o);
          const B = h.onRight(L[b].right, I[b], L[b]);
          return B ? (y(b, L, B), d(b, A, L, I, B)) : b;
        }
        e.right = o;
        function s(h, b, A, L, I, O, k) {
          D.assertEqual(A[b], s), A[b] = f(h, s);
          const B = h.onExit(L[b], I[b]);
          if (b > 0) {
            if (b--, h.foldState) {
              const V = A[b] === s ? "right" : "left";
              I[b] = h.foldState(I[b], B, V);
            }
          } else
            O.value = B;
          return b;
        }
        e.exit = s;
        function l(h, b, A, L, I, O, k) {
          return D.assertEqual(A[b], l), b;
        }
        e.done = l;
        function f(h, b) {
          switch (b) {
            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 l;
            case l:
              return l;
            default:
              D.fail("Invalid state");
          }
        }
        e.nextState = f;
        function d(h, b, A, L, I) {
          return h++, b[h] = t, A[h] = I, L[h] = void 0, h;
        }
        function y(h, b, A) {
          if (D.shouldAssert(2))
            for (; h >= 0; )
              D.assert(b[h] !== A, "Circular traversal detected."), h--;
        }
      })(J7 || (J7 = {})), g_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 mt(e, t) {
    return t ? Bm(e, t.pos, t.end) : e;
  }
  function q_(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 Px(e) {
    const t = e.kind;
    return t === 166 || t === 169 || t === 171 || t === 174 || t === 175 || t === 228 || t === 260;
  }
  var kPe = C({
    "src/compiler/factory/utilitiesPublic.ts"() {
      wa();
    }
  });
  function Jt(e, t) {
    return t && e(t);
  }
  function Li(e, t, r) {
    if (r) {
      if (t)
        return t(r);
      for (const i of r) {
        const o = e(i);
        if (o)
          return o;
      }
    }
  }
  function OJ(e, t) {
    return e.charCodeAt(t + 1) === 42 && e.charCodeAt(t + 2) === 42 && e.charCodeAt(t + 3) !== 47;
  }
  function UO(e) {
    return ze(e.statements, wPe) || DPe(e);
  }
  function wPe(e) {
    return q_(e) && RPe(e, 93) || ru(e) && jm(e.moduleReference) || Ul(e) || Mc(e) || Xl(e) ? e : void 0;
  }
  function DPe(e) {
    return e.flags & 4194304 ? y_e(e) : void 0;
  }
  function y_e(e) {
    return NPe(e) ? e : Ra(e, y_e);
  }
  function RPe(e, t) {
    return kt(e.modifiers, (r) => r.kind === t);
  }
  function NPe(e) {
    return Lk(e) && e.keywordToken === 100 && e.name.escapedText === "meta";
  }
  function v_e(e, t, r) {
    return Li(t, r, e.typeParameters) || Li(t, r, e.parameters) || Jt(t, e.type);
  }
  function b_e(e, t, r) {
    return Li(t, r, e.types);
  }
  function E_e(e, t, r) {
    return Jt(t, e.type);
  }
  function T_e(e, t, r) {
    return Li(t, r, e.elements);
  }
  function S_e(e, t, r) {
    return Jt(t, e.expression) || Jt(t, e.questionDotToken) || Li(t, r, e.typeArguments) || Li(t, r, e.arguments);
  }
  function x_e(e, t, r) {
    return Li(t, r, e.statements);
  }
  function A_e(e, t, r) {
    return Jt(t, e.label);
  }
  function C_e(e, t, r) {
    return Li(t, r, e.modifiers) || Jt(t, e.name) || Li(t, r, e.typeParameters) || Li(t, r, e.heritageClauses) || Li(t, r, e.members);
  }
  function L_e(e, t, r) {
    return Li(t, r, e.elements);
  }
  function I_e(e, t, r) {
    return Jt(t, e.propertyName) || Jt(t, e.name);
  }
  function k_e(e, t, r) {
    return Jt(t, e.tagName) || Li(t, r, e.typeArguments) || Jt(t, e.attributes);
  }
  function kC(e, t, r) {
    return Jt(t, e.type);
  }
  function w_e(e, t, r) {
    return Jt(t, e.tagName) || (e.isNameFirst ? Jt(t, e.name) || Jt(t, e.typeExpression) : Jt(t, e.typeExpression) || Jt(t, e.name)) || (typeof e.comment == "string" ? void 0 : Li(t, r, e.comment));
  }
  function wC(e, t, r) {
    return Jt(t, e.tagName) || Jt(t, e.typeExpression) || (typeof e.comment == "string" ? void 0 : Li(t, r, e.comment));
  }
  function PJ(e, t, r) {
    return Jt(t, e.name);
  }
  function Mx(e, t, r) {
    return Jt(t, e.tagName) || (typeof e.comment == "string" ? void 0 : Li(t, r, e.comment));
  }
  function OPe(e, t, r) {
    return Jt(t, e.expression);
  }
  function Ra(e, t, r) {
    if (e === void 0 || e.kind <= 162)
      return;
    const i = U_e[e.kind];
    return i === void 0 ? void 0 : i(e, t, r);
  }
  function VO(e, t, r) {
    const i = D_e(e), o = [];
    for (; o.length < i.length; )
      o.push(e);
    for (; i.length !== 0; ) {
      const s = i.pop(), l = o.pop();
      if (Ba(s)) {
        if (r) {
          const f = r(s, l);
          if (f) {
            if (f === "skip")
              continue;
            return f;
          }
        }
        for (let f = s.length - 1; f >= 0; --f)
          i.push(s[f]), o.push(l);
      } else {
        const f = t(s, l);
        if (f) {
          if (f === "skip")
            continue;
          return f;
        }
        if (s.kind >= 163)
          for (const d of D_e(s))
            i.push(d), o.push(s);
      }
    }
  }
  function D_e(e) {
    const t = [];
    return Ra(e, r, r), t;
    function r(i) {
      t.unshift(i);
    }
  }
  function R_e(e) {
    e.externalModuleIndicator = UO(e);
  }
  function jO(e, t, r, i = !1, o) {
    var s, l;
    (s = yi) == null || s.push(yi.Phase.Parse, "createSourceFile", { path: e }, !0), ic("beforeParse");
    let f;
    Hp.logStartParseSourceFile(e);
    const {
      languageVersion: d,
      setExternalModuleIndicator: y,
      impliedNodeFormat: h
    } = typeof r == "object" ? r : { languageVersion: r };
    if (d === 100)
      f = Bv.parseSourceFile(e, t, d, void 0, i, 6, io);
    else {
      const b = h === void 0 ? y : (A) => (A.impliedNodeFormat = h, (y || R_e)(A));
      f = Bv.parseSourceFile(e, t, d, void 0, i, o, b);
    }
    return Hp.logStopParseSourceFile(), ic("afterParse"), Hf("Parse", "beforeParse", "afterParse"), (l = yi) == null || l.pop(), f;
  }
  function Fx(e, t) {
    return Bv.parseIsolatedEntityName(e, t);
  }
  function HO(e, t) {
    return Bv.parseJsonText(e, t);
  }
  function Yc(e) {
    return e.externalModuleIndicator !== void 0;
  }
  function MJ(e, t, r, i = !1) {
    const o = K7.updateSourceFile(e, t, r, i);
    return o.flags |= e.flags & 6291456, o;
  }
  function N_e(e, t, r) {
    const i = Bv.JSDocParser.parseIsolatedJSDocComment(e, t, r);
    return i && i.jsDoc && Bv.fixupParentReferences(i.jsDoc), i;
  }
  function PPe(e, t, r) {
    return Bv.JSDocParser.parseJSDocTypeExpressionForTests(e, t, r);
  }
  function ld(e) {
    return bl(e, z3) || sl(e, ".ts") && uu(du(e), ".d.");
  }
  function MPe(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 FJ(e, t) {
    const r = [];
    for (const i of dh(t, 0) || rt) {
      const o = t.substring(i.pos, i.end);
      BPe(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 BJ(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, l = e.libReferenceDirectives;
          ze(oR(r), (f) => {
            const { types: d, lib: y, path: h, ["resolution-mode"]: b } = f.arguments;
            if (f.arguments["no-default-lib"])
              e.hasNoDefaultLib = !0;
            else if (d) {
              const A = MPe(b, d.pos, d.end, t);
              s.push({ pos: d.pos, end: d.end, fileName: d.value, ...A ? { resolutionMode: A } : {} });
            } else
              y ? l.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 = en(oR(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(oR(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 FPe(e) {
    if (X7.has(e))
      return X7.get(e);
    const t = new RegExp(`(\\s${e}\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`, "im");
    return X7.set(e, t), t;
  }
  function BPe(e, t, r) {
    const i = t.kind === 2 && V_e.exec(r);
    if (i) {
      const s = i[1].toLowerCase(), l = hR[s];
      if (!l || !(l.kind & 1))
        return;
      if (l.args) {
        const f = {};
        for (const d of l.args) {
          const h = FPe(d.name).exec(r);
          if (!h && !d.optional)
            return;
          if (h) {
            const b = h[2] || h[3];
            if (d.captureSpan) {
              const A = t.pos + h.index + h[1].length + 1;
              f[d.name] = {
                value: b,
                pos: A,
                end: A + b.length
              };
            } else
              f[d.name] = b;
          }
        }
        e.push({ name: s, args: { arguments: f, range: t } });
      } else
        e.push({ name: s, args: { arguments: {}, range: t } });
      return;
    }
    const o = t.kind === 2 && j_e.exec(r);
    if (o)
      return O_e(e, t, 2, o);
    if (t.kind === 3) {
      const s = /@(\S+)(\s+.*)?$/gim;
      let l;
      for (; l = s.exec(r); )
        O_e(e, t, 4, l);
    }
  }
  function O_e(e, t, r, i) {
    if (!i)
      return;
    const o = i[1].toLowerCase(), s = hR[o];
    if (!s || !(s.kind & r))
      return;
    const l = i[2], f = GPe(s, l);
    f !== "fail" && e.push({ name: o, args: { arguments: f, range: t } });
  }
  function GPe(e, t) {
    if (!t)
      return {};
    if (!e.args)
      return {};
    const r = o1(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 tb(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 && tb(e.expression, t.expression);
  }
  var P_e, M_e, F_e, B_e, G_e, GJ, Wm, U_e, Bv, K7, X7, V_e, j_e, UPe = C({
    "src/compiler/parser.ts"() {
      wa(), wa(), c1(), GJ = {
        createBaseSourceFileNode: (e) => new (G_e || (G_e = Bl.getSourceFileConstructor()))(e, -1, -1),
        createBaseIdentifierNode: (e) => new (F_e || (F_e = Bl.getIdentifierConstructor()))(e, -1, -1),
        createBasePrivateIdentifierNode: (e) => new (B_e || (B_e = Bl.getPrivateIdentifierConstructor()))(e, -1, -1),
        createBaseTokenNode: (e) => new (M_e || (M_e = Bl.getTokenConstructor()))(e, -1, -1),
        createBaseNode: (e) => new (P_e || (P_e = Bl.getNodeConstructor()))(e, -1, -1)
      }, Wm = cO(1, GJ), U_e = {
        [163]: function(t, r, i) {
          return Jt(r, t.left) || Jt(r, t.right);
        },
        [165]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Jt(r, t.constraint) || Jt(r, t.default) || Jt(r, t.expression);
        },
        [300]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Jt(r, t.questionToken) || Jt(r, t.exclamationToken) || Jt(r, t.equalsToken) || Jt(r, t.objectAssignmentInitializer);
        },
        [301]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [166]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.dotDotDotToken) || Jt(r, t.name) || Jt(r, t.questionToken) || Jt(r, t.type) || Jt(r, t.initializer);
        },
        [169]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Jt(r, t.questionToken) || Jt(r, t.exclamationToken) || Jt(r, t.type) || Jt(r, t.initializer);
        },
        [168]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Jt(r, t.questionToken) || Jt(r, t.type) || Jt(r, t.initializer);
        },
        [299]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Jt(r, t.questionToken) || Jt(r, t.exclamationToken) || Jt(r, t.initializer);
        },
        [257]: function(t, r, i) {
          return Jt(r, t.name) || Jt(r, t.exclamationToken) || Jt(r, t.type) || Jt(r, t.initializer);
        },
        [205]: function(t, r, i) {
          return Jt(r, t.dotDotDotToken) || Jt(r, t.propertyName) || Jt(r, t.name) || Jt(r, t.initializer);
        },
        [178]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type);
        },
        [182]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type);
        },
        [181]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type);
        },
        [176]: v_e,
        [177]: v_e,
        [171]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.asteriskToken) || Jt(r, t.name) || Jt(r, t.questionToken) || Jt(r, t.exclamationToken) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type) || Jt(r, t.body);
        },
        [170]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Jt(r, t.questionToken) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type);
        },
        [173]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type) || Jt(r, t.body);
        },
        [174]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type) || Jt(r, t.body);
        },
        [175]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type) || Jt(r, t.body);
        },
        [259]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.asteriskToken) || Jt(r, t.name) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type) || Jt(r, t.body);
        },
        [215]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.asteriskToken) || Jt(r, t.name) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type) || Jt(r, t.body);
        },
        [216]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Li(r, i, t.typeParameters) || Li(r, i, t.parameters) || Jt(r, t.type) || Jt(r, t.equalsGreaterThanToken) || Jt(r, t.body);
        },
        [172]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.body);
        },
        [180]: function(t, r, i) {
          return Jt(r, t.typeName) || Li(r, i, t.typeArguments);
        },
        [179]: function(t, r, i) {
          return Jt(r, t.assertsModifier) || Jt(r, t.parameterName) || Jt(r, t.type);
        },
        [183]: function(t, r, i) {
          return Jt(r, t.exprName) || Li(r, i, t.typeArguments);
        },
        [184]: function(t, r, i) {
          return Li(r, i, t.members);
        },
        [185]: function(t, r, i) {
          return Jt(r, t.elementType);
        },
        [186]: function(t, r, i) {
          return Li(r, i, t.elements);
        },
        [189]: b_e,
        [190]: b_e,
        [191]: function(t, r, i) {
          return Jt(r, t.checkType) || Jt(r, t.extendsType) || Jt(r, t.trueType) || Jt(r, t.falseType);
        },
        [192]: function(t, r, i) {
          return Jt(r, t.typeParameter);
        },
        [202]: function(t, r, i) {
          return Jt(r, t.argument) || Jt(r, t.assertions) || Jt(r, t.qualifier) || Li(r, i, t.typeArguments);
        },
        [298]: function(t, r, i) {
          return Jt(r, t.assertClause);
        },
        [193]: E_e,
        [195]: E_e,
        [196]: function(t, r, i) {
          return Jt(r, t.objectType) || Jt(r, t.indexType);
        },
        [197]: function(t, r, i) {
          return Jt(r, t.readonlyToken) || Jt(r, t.typeParameter) || Jt(r, t.nameType) || Jt(r, t.questionToken) || Jt(r, t.type) || Li(r, i, t.members);
        },
        [198]: function(t, r, i) {
          return Jt(r, t.literal);
        },
        [199]: function(t, r, i) {
          return Jt(r, t.dotDotDotToken) || Jt(r, t.name) || Jt(r, t.questionToken) || Jt(r, t.type);
        },
        [203]: T_e,
        [204]: T_e,
        [206]: function(t, r, i) {
          return Li(r, i, t.elements);
        },
        [207]: function(t, r, i) {
          return Li(r, i, t.properties);
        },
        [208]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.questionDotToken) || Jt(r, t.name);
        },
        [209]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.questionDotToken) || Jt(r, t.argumentExpression);
        },
        [210]: S_e,
        [211]: S_e,
        [212]: function(t, r, i) {
          return Jt(r, t.tag) || Jt(r, t.questionDotToken) || Li(r, i, t.typeArguments) || Jt(r, t.template);
        },
        [213]: function(t, r, i) {
          return Jt(r, t.type) || Jt(r, t.expression);
        },
        [214]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [217]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [218]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [219]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [221]: function(t, r, i) {
          return Jt(r, t.operand);
        },
        [226]: function(t, r, i) {
          return Jt(r, t.asteriskToken) || Jt(r, t.expression);
        },
        [220]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [222]: function(t, r, i) {
          return Jt(r, t.operand);
        },
        [223]: function(t, r, i) {
          return Jt(r, t.left) || Jt(r, t.operatorToken) || Jt(r, t.right);
        },
        [231]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.type);
        },
        [232]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [235]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.type);
        },
        [233]: function(t, r, i) {
          return Jt(r, t.name);
        },
        [224]: function(t, r, i) {
          return Jt(r, t.condition) || Jt(r, t.questionToken) || Jt(r, t.whenTrue) || Jt(r, t.colonToken) || Jt(r, t.whenFalse);
        },
        [227]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [238]: x_e,
        [265]: x_e,
        [308]: function(t, r, i) {
          return Li(r, i, t.statements) || Jt(r, t.endOfFileToken);
        },
        [240]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.declarationList);
        },
        [258]: function(t, r, i) {
          return Li(r, i, t.declarations);
        },
        [241]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [242]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.thenStatement) || Jt(r, t.elseStatement);
        },
        [243]: function(t, r, i) {
          return Jt(r, t.statement) || Jt(r, t.expression);
        },
        [244]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.statement);
        },
        [245]: function(t, r, i) {
          return Jt(r, t.initializer) || Jt(r, t.condition) || Jt(r, t.incrementor) || Jt(r, t.statement);
        },
        [246]: function(t, r, i) {
          return Jt(r, t.initializer) || Jt(r, t.expression) || Jt(r, t.statement);
        },
        [247]: function(t, r, i) {
          return Jt(r, t.awaitModifier) || Jt(r, t.initializer) || Jt(r, t.expression) || Jt(r, t.statement);
        },
        [248]: A_e,
        [249]: A_e,
        [250]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [251]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.statement);
        },
        [252]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.caseBlock);
        },
        [266]: function(t, r, i) {
          return Li(r, i, t.clauses);
        },
        [292]: function(t, r, i) {
          return Jt(r, t.expression) || Li(r, i, t.statements);
        },
        [293]: function(t, r, i) {
          return Li(r, i, t.statements);
        },
        [253]: function(t, r, i) {
          return Jt(r, t.label) || Jt(r, t.statement);
        },
        [254]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [255]: function(t, r, i) {
          return Jt(r, t.tryBlock) || Jt(r, t.catchClause) || Jt(r, t.finallyBlock);
        },
        [295]: function(t, r, i) {
          return Jt(r, t.variableDeclaration) || Jt(r, t.block);
        },
        [167]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [260]: C_e,
        [228]: C_e,
        [261]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Li(r, i, t.typeParameters) || Li(r, i, t.heritageClauses) || Li(r, i, t.members);
        },
        [262]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Li(r, i, t.typeParameters) || Jt(r, t.type);
        },
        [263]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Li(r, i, t.members);
        },
        [302]: function(t, r, i) {
          return Jt(r, t.name) || Jt(r, t.initializer);
        },
        [264]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Jt(r, t.body);
        },
        [268]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name) || Jt(r, t.moduleReference);
        },
        [269]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.importClause) || Jt(r, t.moduleSpecifier) || Jt(r, t.assertClause);
        },
        [270]: function(t, r, i) {
          return Jt(r, t.name) || Jt(r, t.namedBindings);
        },
        [296]: function(t, r, i) {
          return Li(r, i, t.elements);
        },
        [297]: function(t, r, i) {
          return Jt(r, t.name) || Jt(r, t.value);
        },
        [267]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.name);
        },
        [271]: function(t, r, i) {
          return Jt(r, t.name);
        },
        [277]: function(t, r, i) {
          return Jt(r, t.name);
        },
        [272]: L_e,
        [276]: L_e,
        [275]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.exportClause) || Jt(r, t.moduleSpecifier) || Jt(r, t.assertClause);
        },
        [273]: I_e,
        [278]: I_e,
        [274]: function(t, r, i) {
          return Li(r, i, t.modifiers) || Jt(r, t.expression);
        },
        [225]: function(t, r, i) {
          return Jt(r, t.head) || Li(r, i, t.templateSpans);
        },
        [236]: function(t, r, i) {
          return Jt(r, t.expression) || Jt(r, t.literal);
        },
        [200]: function(t, r, i) {
          return Jt(r, t.head) || Li(r, i, t.templateSpans);
        },
        [201]: function(t, r, i) {
          return Jt(r, t.type) || Jt(r, t.literal);
        },
        [164]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [294]: function(t, r, i) {
          return Li(r, i, t.types);
        },
        [230]: function(t, r, i) {
          return Jt(r, t.expression) || Li(r, i, t.typeArguments);
        },
        [280]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [279]: function(t, r, i) {
          return Li(r, i, t.modifiers);
        },
        [357]: function(t, r, i) {
          return Li(r, i, t.elements);
        },
        [281]: function(t, r, i) {
          return Jt(r, t.openingElement) || Li(r, i, t.children) || Jt(r, t.closingElement);
        },
        [285]: function(t, r, i) {
          return Jt(r, t.openingFragment) || Li(r, i, t.children) || Jt(r, t.closingFragment);
        },
        [282]: k_e,
        [283]: k_e,
        [289]: function(t, r, i) {
          return Li(r, i, t.properties);
        },
        [288]: function(t, r, i) {
          return Jt(r, t.name) || Jt(r, t.initializer);
        },
        [290]: function(t, r, i) {
          return Jt(r, t.expression);
        },
        [291]: function(t, r, i) {
          return Jt(r, t.dotDotDotToken) || Jt(r, t.expression);
        },
        [284]: function(t, r, i) {
          return Jt(r, t.tagName);
        },
        [187]: kC,
        [188]: kC,
        [312]: kC,
        [318]: kC,
        [317]: kC,
        [319]: kC,
        [321]: kC,
        [320]: function(t, r, i) {
          return Li(r, i, t.parameters) || Jt(r, t.type);
        },
        [323]: function(t, r, i) {
          return (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment)) || Li(r, i, t.tags);
        },
        [350]: function(t, r, i) {
          return Jt(r, t.tagName) || Jt(r, t.name) || (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment));
        },
        [313]: function(t, r, i) {
          return Jt(r, t.name);
        },
        [314]: function(t, r, i) {
          return Jt(r, t.left) || Jt(r, t.right);
        },
        [344]: w_e,
        [351]: w_e,
        [333]: function(t, r, i) {
          return Jt(r, t.tagName) || (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment));
        },
        [332]: function(t, r, i) {
          return Jt(r, t.tagName) || Jt(r, t.class) || (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment));
        },
        [331]: function(t, r, i) {
          return Jt(r, t.tagName) || Jt(r, t.class) || (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment));
        },
        [348]: function(t, r, i) {
          return Jt(r, t.tagName) || Jt(r, t.constraint) || Li(r, i, t.typeParameters) || (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment));
        },
        [349]: function(t, r, i) {
          return Jt(r, t.tagName) || (t.typeExpression && t.typeExpression.kind === 312 ? Jt(r, t.typeExpression) || Jt(r, t.fullName) || (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment)) : Jt(r, t.fullName) || Jt(r, t.typeExpression) || (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment)));
        },
        [341]: function(t, r, i) {
          return Jt(r, t.tagName) || Jt(r, t.fullName) || Jt(r, t.typeExpression) || (typeof t.comment == "string" ? void 0 : Li(r, i, t.comment));
        },
        [345]: wC,
        [347]: wC,
        [346]: wC,
        [343]: wC,
        [353]: wC,
        [352]: wC,
        [342]: wC,
        [326]: function(t, r, i) {
          return ze(t.typeParameters, r) || ze(t.parameters, r) || Jt(r, t.type);
        },
        [327]: PJ,
        [328]: PJ,
        [329]: PJ,
        [325]: function(t, r, i) {
          return ze(t.jsDocPropertyTags, r);
        },
        [330]: Mx,
        [335]: Mx,
        [336]: Mx,
        [337]: Mx,
        [338]: Mx,
        [339]: Mx,
        [334]: Mx,
        [340]: Mx,
        [356]: OPe
      }, ((e) => {
        var t = cy(99, !0), r = 20480, i, o, s, l, 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 l(z, 0, 0)),
          createBaseTokenNode: (z) => d(new o(z, 0, 0)),
          createBaseNode: (z) => d(new i(z, 0, 0))
        }, h = cO(11, y), {
          createNodeArray: b,
          createNumericLiteral: A,
          createStringLiteral: L,
          createLiteralLikeNode: I,
          createIdentifier: O,
          createPrivateIdentifier: k,
          createToken: B,
          createArrayLiteralExpression: V,
          createObjectLiteralExpression: H,
          createPropertyAccessExpression: te,
          createPropertyAccessChain: X,
          createElementAccessExpression: Y,
          createElementAccessChain: P,
          createCallExpression: de,
          createCallChain: ne,
          createNewExpression: ye,
          createParenthesizedExpression: ie,
          createBlock: W,
          createVariableStatement: ce,
          createExpressionStatement: pe,
          createIfStatement: ve,
          createWhileStatement: Te,
          createForStatement: ee,
          createForOfStatement: $e,
          createVariableDeclaration: Ue,
          createVariableDeclarationList: Be
        } = h, We, Oe, Me, Xe, He, Fe, st, Ct, Et, Vt, tt, at, an, Xt, Pn, Wn, In = !0, Yt = !1;
        function _r(z, be, Ye, Tt, Gt = !1, Cn, Fr) {
          var mi;
          if (Cn = O3(z, Cn), Cn === 6) {
            const Ci = Ki(z, be, Ye, Tt, Gt);
            return JO(Ci, (mi = Ci.statements[0]) == null ? void 0 : mi.expression, Ci.parseDiagnostics, !1, void 0, void 0), Ci.referencedFiles = rt, Ci.typeReferenceDirectives = rt, Ci.libReferenceDirectives = rt, Ci.amdDependencies = rt, Ci.hasNoDefaultLib = !1, Ci.pragmas = B4, Ci;
          }
          Xi(z, be, Ye, Tt, Cn);
          const Ti = At(Ye, Gt, Cn, Fr || R_e);
          return Nr(), Ti;
        }
        e.parseSourceFile = _r;
        function Ai(z, be) {
          Xi("", z, be, void 0, 1), dt();
          const Ye = Ko(!0), Tt = q() === 1 && !st.length;
          return Nr(), Tt ? Ye : void 0;
        }
        e.parseIsolatedEntityName = Ai;
        function Ki(z, be, Ye = 2, Tt, Gt = !1) {
          Xi(z, be, Ye, Tt, 6), Oe = Wn, dt();
          const Cn = Z();
          let Fr, mi;
          if (q() === 1)
            Fr = zs([], Cn, Cn), mi = rl();
          else {
            let Na;
            for (; q() !== 1; ) {
              let es;
              switch (q()) {
                case 22:
                  es = By();
                  break;
                case 110:
                case 95:
                case 104:
                  es = rl();
                  break;
                case 40:
                  Jr(() => dt() === 8 && dt() !== 58) ? es = fS() : es = Zc();
                  break;
                case 8:
                case 10:
                  if (Jr(() => dt() !== 58)) {
                    es = xa();
                    break;
                  }
                default:
                  es = Zc();
                  break;
              }
              Na && Ba(Na) ? Na.push(es) : Na ? Na = [Na, es] : (Na = es, q() !== 1 && pt(_.Unexpected_token));
            }
            const As = Ba(Na) ? tn(V(Na), Cn) : D.checkDefined(Na), Co = pe(As);
            tn(Co, Cn), Fr = zs([Co], Cn), mi = Yl(1, _.Unexpected_token);
          }
          const Ti = Ni(z, 2, 6, !1, Fr, mi, Oe, io);
          Gt && lr(Ti), Ti.nodeCount = tt, Ti.identifierCount = an, Ti.identifiers = at, Ti.parseDiagnostics = dx(st, Ti), Ct && (Ti.jsDocDiagnostics = dx(Ct, Ti));
          const Ci = Ti;
          return Nr(), Ci;
        }
        e.parseJsonText = Ki;
        function Xi(z, be, Ye, Tt, Gt) {
          switch (i = Bl.getNodeConstructor(), o = Bl.getTokenConstructor(), s = Bl.getIdentifierConstructor(), l = Bl.getPrivateIdentifierConstructor(), f = Bl.getSourceFileConstructor(), We = Wo(z), Me = be, Xe = Ye, Et = Tt, He = Gt, Fe = WN(Gt), st = [], Xt = 0, at = /* @__PURE__ */ new Map(), an = 0, tt = 0, Oe = 0, In = !0, He) {
            case 1:
            case 2:
              Wn = 262144;
              break;
            case 6:
              Wn = 67371008;
              break;
            default:
              Wn = 0;
              break;
          }
          Yt = !1, t.setText(Me), t.setOnError(Pe), t.setScriptTarget(Xe), t.setLanguageVariant(Fe);
        }
        function Nr() {
          t.clearCommentDirectives(), t.setText(""), t.setOnError(void 0), Me = void 0, Xe = void 0, Et = void 0, He = void 0, Fe = void 0, Oe = 0, st = void 0, Ct = void 0, Xt = 0, at = void 0, Pn = void 0, In = !0;
        }
        function At(z, be, Ye, Tt) {
          const Gt = ld(We);
          Gt && (Wn |= 16777216), Oe = Wn, dt();
          const Cn = ae(0, Rf);
          D.assert(q() === 1);
          const Fr = dn(rl()), mi = Ni(We, z, Ye, Gt, Cn, Fr, Oe, Tt);
          return FJ(mi, Me), BJ(mi, Ti), mi.commentDirectives = t.getCommentDirectives(), mi.nodeCount = tt, mi.identifierCount = an, mi.identifiers = at, mi.parseDiagnostics = dx(st, mi), Ct && (mi.jsDocDiagnostics = dx(Ct, mi)), be && lr(mi), mi;
          function Ti(Ci, Na, As) {
            st.push(tC(We, Ci, Na, As));
          }
        }
        function vn(z, be) {
          return be ? dn(z) : z;
        }
        let Ht = !1;
        function dn(z) {
          D.assert(!z.jsDoc);
          const be = fa(JW(z, Me), (Ye) => I2.parseJSDocComment(z, Ye.pos, Ye.end - Ye.pos));
          return be.length && (z.jsDoc = be), Ht && (Ht = !1, z.flags |= 268435456), z;
        }
        function ir(z) {
          const be = Et, Ye = K7.createSyntaxCursor(z);
          Et = { currentNode: Na };
          const Tt = [], Gt = st;
          st = [];
          let Cn = 0, Fr = Ti(z.statements, 0);
          for (; Fr !== -1; ) {
            const As = z.statements[Cn], Co = z.statements[Fr];
            bi(Tt, z.statements, Cn, Fr), Cn = Ci(z.statements, Fr);
            const es = Qi(Gt, (Dp) => Dp.start >= As.pos), Dd = es >= 0 ? Qi(Gt, (Dp) => Dp.start >= Co.pos, es) : -1;
            es >= 0 && bi(st, Gt, es, Dd >= 0 ? Dd : void 0), Ui(() => {
              const Dp = Wn;
              for (Wn |= 32768, t.setTextPos(Co.pos), dt(); q() !== 1; ) {
                const um = t.getStartPos(), Gg = lt(0, Rf);
                if (Tt.push(Gg), um === t.getStartPos() && dt(), Cn >= 0) {
                  const A_ = z.statements[Cn];
                  if (Gg.end === A_.pos)
                    break;
                  Gg.end > A_.pos && (Cn = Ci(z.statements, Cn + 1));
                }
              }
              Wn = Dp;
            }, 2), Fr = Cn >= 0 ? Ti(z.statements, Cn) : -1;
          }
          if (Cn >= 0) {
            const As = z.statements[Cn];
            bi(Tt, z.statements, Cn);
            const Co = Qi(Gt, (es) => es.start >= As.pos);
            Co >= 0 && bi(st, Gt, Co);
          }
          return Et = be, h.updateSourceFile(z, mt(b(Tt), z.statements));
          function mi(As) {
            return !(As.flags & 32768) && !!(As.transformFlags & 67108864);
          }
          function Ti(As, Co) {
            for (let es = Co; es < As.length; es++)
              if (mi(As[es]))
                return es;
            return -1;
          }
          function Ci(As, Co) {
            for (let es = Co; es < As.length; es++)
              if (!mi(As[es]))
                return es;
            return -1;
          }
          function Na(As) {
            const Co = Ye.currentNode(As);
            return In && Co && mi(Co) && (Co.intersectsChange = !0), Co;
          }
        }
        function lr(z) {
          Rv(z, !0);
        }
        e.fixupParentReferences = lr;
        function Ni(z, be, Ye, Tt, Gt, Cn, Fr, mi) {
          let Ti = h.createSourceFile(Gt, Cn, Fr);
          return dk(Ti, 0, Me.length), Ci(Ti), !Tt && Yc(Ti) && Ti.transformFlags & 67108864 && (Ti = ir(Ti), Ci(Ti)), Ti;
          function Ci(Na) {
            Na.text = Me, Na.bindDiagnostics = [], Na.bindSuggestionDiagnostics = void 0, Na.languageVersion = be, Na.fileName = z, Na.languageVariant = WN(Ye), Na.isDeclarationFile = Tt, Na.scriptKind = Ye, mi(Na), Na.setExternalModuleIndicator = mi;
          }
        }
        function pi(z, be) {
          z ? Wn |= be : Wn &= ~be;
        }
        function Nn(z) {
          pi(z, 4096);
        }
        function nn(z) {
          pi(z, 8192);
        }
        function Mn(z) {
          pi(z, 16384);
        }
        function Ar(z) {
          pi(z, 32768);
        }
        function Vr(z, be) {
          const Ye = z & Wn;
          if (Ye) {
            pi(!1, Ye);
            const Tt = be();
            return pi(!0, Ye), Tt;
          }
          return be();
        }
        function ke(z, be) {
          const Ye = z & ~Wn;
          if (Ye) {
            pi(!0, Ye);
            const Tt = be();
            return pi(!1, Ye), Tt;
          }
          return be();
        }
        function gt(z) {
          return Vr(4096, z);
        }
        function Nt(z) {
          return ke(4096, z);
        }
        function xe(z) {
          return Vr(65536, z);
        }
        function _t(z) {
          return ke(65536, z);
        }
        function _e(z) {
          return ke(8192, z);
        }
        function re(z) {
          return ke(16384, z);
        }
        function he(z) {
          return ke(32768, z);
        }
        function j(z) {
          return Vr(32768, z);
        }
        function je(z) {
          return ke(40960, z);
        }
        function Qe(z) {
          return Vr(40960, z);
        }
        function Ke(z) {
          return (Wn & z) !== 0;
        }
        function Ut() {
          return Ke(8192);
        }
        function ln() {
          return Ke(4096);
        }
        function Sn() {
          return Ke(65536);
        }
        function Er() {
          return Ke(16384);
        }
        function ue() {
          return Ke(32768);
        }
        function pt(z, be) {
          return it(t.getTokenPos(), t.getTextPos(), z, be);
        }
        function Wt(z, be, Ye, Tt) {
          const Gt = ec(st);
          let Cn;
          return (!Gt || z !== Gt.start) && (Cn = tC(We, z, be, Ye, Tt), st.push(Cn)), Yt = !0, Cn;
        }
        function it(z, be, Ye, Tt) {
          return Wt(z, be - z, Ye, Tt);
        }
        function K(z, be, Ye) {
          it(z.pos, z.end, be, Ye);
        }
        function Pe(z, be) {
          Wt(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 ht(z) {
          return dt(), z();
        }
        function dt() {
          return Td(Vt) && (t.hasUnicodeEscape() || t.hasExtendedUnicodeEscape()) && it(t.getTokenPos(), t.getTextPos(), _.Keywords_cannot_contain_escape_characters), Rt();
        }
        function fn() {
          return Vt = t.scanJsDocToken();
        }
        function Qn() {
          return Vt = t.reScanGreaterToken();
        }
        function ai() {
          return Vt = t.reScanSlashToken();
        }
        function Si(z) {
          return Vt = t.reScanTemplateToken(z);
        }
        function xi() {
          return Vt = t.reScanTemplateHeadOrNoSubstitutionTemplate();
        }
        function Gi() {
          return Vt = t.reScanLessThanToken();
        }
        function _o() {
          return Vt = t.reScanHashToken();
        }
        function bo() {
          return Vt = t.scanJsxIdentifier();
        }
        function no() {
          return Vt = t.scanJsxToken();
        }
        function sa() {
          return Vt = t.scanJsxAttributeValue();
        }
        function Ui(z, be) {
          const Ye = Vt, Tt = st.length, Gt = Yt, Cn = Wn, Fr = be !== 0 ? t.lookAhead(z) : t.tryScan(z);
          return D.assert(Cn === Wn), (!Fr || be !== 0) && (Vt = Ye, be !== 2 && (st.length = Tt), Yt = Gt), Fr;
        }
        function Jr(z) {
          return Ui(z, 1);
        }
        function is(z) {
          return Ui(z, 0);
        }
        function di() {
          return q() === 79 ? !0 : q() > 116;
        }
        function ca() {
          return q() === 79 ? !0 : q() === 125 && Ut() || q() === 133 && ue() ? !1 : q() > 116;
        }
        function wn(z, be, Ye = !0) {
          return q() === z ? (Ye && dt(), !0) : (be ? pt(be) : pt(_._0_expected, ho(z)), !1);
        }
        const ua = Object.keys(NR).filter((z) => z.length > 2);
        function $c(z) {
          var be;
          if (AT(z)) {
            it(zo(Me, z.template.pos), z.template.end, _.Module_declaration_names_may_only_use_or_quoted_strings);
            return;
          }
          const Ye = Ve(z) ? Pr(z) : void 0;
          if (!Ye || !N_(Ye, Xe)) {
            pt(_._0_expected, ho(26));
            return;
          }
          const Tt = zo(Me, z.pos);
          switch (Ye) {
            case "const":
            case "let":
            case "var":
              it(Tt, z.end, _.Variable_declaration_not_allowed_at_this_location);
              return;
            case "declare":
              return;
            case "interface":
              nc(_.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":
              nc(_.Namespace_name_cannot_be_0, _.Namespace_must_be_given_a_name, 18);
              return;
            case "type":
              nc(_.Type_alias_name_cannot_be_0, _.Type_alias_must_be_given_a_name, 63);
              return;
          }
          const Gt = (be = nI(Ye, ua, (Cn) => Cn)) != null ? be : Fc(Ye);
          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 nc(z, be, Ye) {
          q() === Ye ? pt(be) : pt(z, t.getTokenValue());
        }
        function Fc(z) {
          for (const be of ua)
            if (z.length > be.length + 2 && ba(z, be))
              return `${be} ${z.slice(be.length)}`;
        }
        function qc(z, be, Ye) {
          if (q() === 59 && !t.hasPrecedingLineBreak()) {
            pt(_.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);
            return;
          }
          if (q() === 20) {
            pt(_.Cannot_start_a_function_call_in_a_type_annotation), dt();
            return;
          }
          if (be && !Is()) {
            Ye ? pt(_._0_expected, ho(26)) : pt(_.Expected_for_property_initializer);
            return;
          }
          if (!mc()) {
            if (Ye) {
              pt(_._0_expected, ho(26));
              return;
            }
            $c(z);
          }
        }
        function Bc(z) {
          return q() === z ? (fn(), !0) : (pt(_._0_expected, ho(z)), !1);
        }
        function xo(z, be, Ye, Tt) {
          if (q() === be) {
            dt();
            return;
          }
          const Gt = pt(_._0_expected, ho(be));
          Ye && Gt && qo(Gt, tC(We, Tt, 1, _.The_parser_expected_to_find_a_1_to_match_the_0_token_here, ho(z), ho(be)));
        }
        function Sa(z) {
          return q() === z ? (dt(), !0) : !1;
        }
        function Jo(z) {
          if (q() === z)
            return rl();
        }
        function Gc(z) {
          if (q() === z)
            return Hl();
        }
        function Yl(z, be, Ye) {
          return Jo(z) || Uc(z, !1, be || _._0_expected, Ye || ho(z));
        }
        function jd(z) {
          return Gc(z) || Uc(z, !1, _._0_expected, ho(z));
        }
        function rl() {
          const z = Z(), be = q();
          return dt(), tn(B(be), z);
        }
        function Hl() {
          const z = Z(), be = q();
          return fn(), tn(B(be), z);
        }
        function Is() {
          return q() === 26 ? !0 : q() === 19 || q() === 1 || t.hasPrecedingLineBreak();
        }
        function mc() {
          return Is() ? (q() === 26 && dt(), !0) : !1;
        }
        function $s() {
          return mc() || wn(26);
        }
        function zs(z, be, Ye, Tt) {
          const Gt = b(z, Tt);
          return Bm(Gt, be, Ye ?? t.getStartPos()), Gt;
        }
        function tn(z, be, Ye) {
          return Bm(z, be, Ye ?? t.getStartPos()), Wn && (z.flags |= Wn), Yt && (Yt = !1, z.flags |= 131072), z;
        }
        function Uc(z, be, Ye, Tt) {
          be ? Wt(t.getStartPos(), 0, Ye, Tt) : Ye && pt(Ye, Tt);
          const Gt = Z(), Cn = z === 79 ? O("", void 0) : Tv(z) ? h.createTemplateLiteralLikeNode(z, "", "", void 0) : z === 8 ? A("", void 0) : z === 10 ? L("", void 0) : z === 279 ? h.createMissingDeclaration() : B(z);
          return tn(Cn, Gt);
        }
        function bu(z) {
          let be = at.get(z);
          return be === void 0 && at.set(z, be = z), be;
        }
        function Uu(z, be, Ye) {
          if (z) {
            an++;
            const mi = Z(), Ti = q(), Ci = bu(t.getTokenValue()), Na = t.hasExtendedUnicodeEscape();
            return Rt(), tn(O(Ci, Ti, Na), mi);
          }
          if (q() === 80)
            return pt(Ye || _.Private_identifiers_are_not_allowed_outside_class_bodies), Uu(!0);
          if (q() === 0 && t.tryScan(() => t.reScanInvalidIdentifier() === 79))
            return Uu(!0);
          an++;
          const Tt = q() === 1, Gt = t.isReservedWord(), Cn = t.getTokenText(), Fr = Gt ? _.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here : _.Identifier_expected;
          return Uc(79, Tt, be || Fr, Cn);
        }
        function fe(z) {
          return Uu(di(), void 0, z);
        }
        function It(z, be) {
          return Uu(ca(), z, be);
        }
        function jt(z) {
          return Uu(qu(q()), z);
        }
        function Q() {
          return qu(q()) || q() === 10 || q() === 8;
        }
        function ot() {
          return qu(q()) || q() === 10;
        }
        function xt(z) {
          if (q() === 10 || q() === 8) {
            const be = xa();
            return be.text = bu(be.text), be;
          }
          return z && q() === 22 ? wr() : q() === 80 ? Or() : jt();
        }
        function pn() {
          return xt(!0);
        }
        function wr() {
          const z = Z();
          wn(22);
          const be = gt(au);
          return wn(23), tn(h.createComputedPropertyName(be), z);
        }
        function Or() {
          const z = Z(), be = k(bu(t.getTokenValue()));
          return dt(), tn(be, z);
        }
        function ya(z) {
          return q() === z && is(po);
        }
        function as() {
          return dt(), t.hasPrecedingLineBreak() ? !1 : ll();
        }
        function po() {
          switch (q()) {
            case 85:
              return dt() === 92;
            case 93:
              return dt(), q() === 88 ? Jr(ud) : q() === 154 ? Jr(Ka) : Uo();
            case 88:
              return ud();
            case 124:
            case 137:
            case 151:
              return dt(), ll();
            default:
              return as();
          }
        }
        function Uo() {
          return q() === 59 || q() !== 41 && q() !== 128 && q() !== 18 && ll();
        }
        function Ka() {
          return dt(), Uo();
        }
        function uc() {
          return dy(q()) && is(po);
        }
        function ll() {
          return q() === 22 || q() === 18 || q() === 41 || q() === 25 || Q();
        }
        function ud() {
          return dt(), q() === 84 || q() === 98 || q() === 118 || q() === 59 || q() === 126 && Jr(Zm) || q() === 132 && Jr(kb);
        }
        function ys(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 Jr(Q1);
            case 5:
              return Jr(wd) || 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 ? Jr(cs) : be ? ca() && !kf() : yb() && !kf();
            case 8:
              return pE();
            case 10:
              return q() === 27 || q() === 25 || pE();
            case 19:
              return q() === 101 || q() === 85 || ca();
            case 15:
              switch (q()) {
                case 27:
                case 24:
                  return !0;
              }
            case 11:
              return q() === 25 || tp();
            case 16:
              return lb(!1);
            case 17:
              return lb(!0);
            case 20:
            case 21:
              return q() === 27 || Ag();
            case 22:
              return Uh();
            case 23:
              return qu(q());
            case 13:
              return qu(q()) || q() === 18;
            case 14:
              return !0;
          }
          return D.fail("Non-exhaustive case in 'isListElement'.");
        }
        function cs() {
          if (D.assert(q() === 18), dt() === 19) {
            const z = dt();
            return z === 27 || z === 18 || z === 94 || z === 117;
          }
          return !0;
        }
        function dc() {
          return dt(), ca();
        }
        function Hd() {
          return dt(), qu(q());
        }
        function Vc() {
          return dt(), fce(q());
        }
        function kf() {
          return q() === 117 || q() === 94 ? Jr(Se) : !1;
        }
        function Se() {
          return dt(), tp();
        }
        function Dt() {
          return dt(), Ag();
        }
        function On(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 qi();
            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 && Jr(uo);
            default:
              return !1;
          }
        }
        function qi() {
          return !!(Is() || uS(q()) || q() === 38);
        }
        function Ao() {
          for (let z = 0; z < 25; z++)
            if (Xt & 1 << z && (ys(z, !0) || On(z)))
              return !0;
          return !1;
        }
        function ae(z, be) {
          const Ye = Xt;
          Xt |= 1 << z;
          const Tt = [], Gt = Z();
          for (; !On(z); ) {
            if (ys(z, !1)) {
              Tt.push(lt(z, be));
              continue;
            }
            if (dd(z))
              break;
          }
          return Xt = Ye, zs(Tt, Gt);
        }
        function lt(z, be) {
          const Ye = Mt(z);
          return Ye ? Pt(Ye) : be();
        }
        function Mt(z, be) {
          var Ye;
          if (!Et || !un(z) || Yt)
            return;
          const Tt = Et.currentNode(be ?? t.getStartPos());
          if (!(xc(Tt) || Tt.intersectsChange || YR(Tt) || (Tt.flags & 50720768) !== Wn) && jn(Tt, z))
            return EN(Tt) && ((Ye = Tt.jsDoc) != null && Ye.jsDocCache) && (Tt.jsDoc.jsDocCache = void 0), Tt;
        }
        function Pt(z) {
          return t.setTextPos(z.end), dt(), 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 jn(z, be) {
          switch (be) {
            case 5:
              return Dr(z);
            case 2:
              return ei(z);
            case 0:
            case 1:
            case 3:
              return Oi(z);
            case 6:
              return Ga(z);
            case 4:
              return Vo(z);
            case 8:
              return vs(z);
            case 17:
            case 16:
              return qs(z);
          }
          return !1;
        }
        function Dr(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 ei(z) {
          if (z)
            switch (z.kind) {
              case 292:
              case 293:
                return !0;
            }
          return !1;
        }
        function Oi(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 Ga(z) {
          return z.kind === 302;
        }
        function Vo(z) {
          if (z)
            switch (z.kind) {
              case 177:
              case 170:
              case 178:
              case 168:
              case 176:
                return !0;
            }
          return !1;
        }
        function vs(z) {
          return z.kind !== 257 ? !1 : z.initializer === void 0;
        }
        function qs(z) {
          return z.kind !== 166 ? !1 : z.initializer === void 0;
        }
        function dd(z) {
          return lf(z), Ao() ? !0 : (dt(), !1);
        }
        function lf(z) {
          switch (z) {
            case 0:
              return q() === 88 ? pt(_._0_expected, ho(93)) : pt(_.Declaration_or_statement_expected);
            case 1:
              return pt(_.Declaration_or_statement_expected);
            case 2:
              return pt(_.case_or_default_expected);
            case 3:
              return pt(_.Statement_expected);
            case 18:
            case 4:
              return pt(_.Property_or_signature_expected);
            case 5:
              return pt(_.Unexpected_token_A_constructor_method_accessor_or_property_was_expected);
            case 6:
              return pt(_.Enum_member_expected);
            case 7:
              return pt(_.Expression_expected);
            case 8:
              return Td(q()) ? pt(_._0_is_not_allowed_as_a_variable_declaration_name, ho(q())) : pt(_.Variable_declaration_expected);
            case 9:
              return pt(_.Property_destructuring_pattern_expected);
            case 10:
              return pt(_.Array_element_destructuring_pattern_expected);
            case 11:
              return pt(_.Argument_expression_expected);
            case 12:
              return pt(_.Property_assignment_expected);
            case 15:
              return pt(_.Expression_or_comma_expected);
            case 17:
              return pt(_.Parameter_declaration_expected);
            case 16:
              return Td(q()) ? pt(_._0_is_not_allowed_as_a_parameter_name, ho(q())) : pt(_.Parameter_declaration_expected);
            case 19:
              return pt(_.Type_parameter_declaration_expected);
            case 20:
              return pt(_.Type_argument_expected);
            case 21:
              return pt(_.Type_expected);
            case 22:
              return pt(_.Unexpected_token_expected);
            case 23:
              return pt(_.Identifier_expected);
            case 13:
              return pt(_.Identifier_expected);
            case 14:
              return pt(_.Identifier_expected);
            case 24:
              return pt(_.Identifier_or_string_literal_expected);
            case 25:
              return D.fail("ParsingContext.Count used as a context");
            default:
              D.assertNever(z);
          }
        }
        function Qc(z, be, Ye) {
          const Tt = Xt;
          Xt |= 1 << z;
          const Gt = [], Cn = Z();
          let Fr = -1;
          for (; ; ) {
            if (ys(z, !1)) {
              const mi = t.getStartPos(), Ti = lt(z, be);
              if (!Ti) {
                Xt = Tt;
                return;
              }
              if (Gt.push(Ti), Fr = t.getTokenPos(), Sa(27))
                continue;
              if (Fr = -1, On(z))
                break;
              wn(27, Wd(z)), Ye && q() === 26 && !t.hasPrecedingLineBreak() && dt(), mi === t.getStartPos() && dt();
              continue;
            }
            if (On(z) || dd(z))
              break;
          }
          return Xt = Tt, zs(Gt, Cn, void 0, Fr >= 0);
        }
        function Wd(z) {
          return z === 6 ? _.An_enum_member_name_must_be_followed_by_a_or : void 0;
        }
        function Eu() {
          const z = zs([], Z());
          return z.isMissingList = !0, z;
        }
        function uf(z) {
          return !!z.isMissingList;
        }
        function b_(z, be, Ye, Tt) {
          if (wn(Ye)) {
            const Gt = Qc(z, be);
            return wn(Tt), Gt;
          }
          return Eu();
        }
        function Ko(z, be) {
          const Ye = Z();
          let Tt = z ? jt(be) : It(be);
          for (; Sa(24) && q() !== 29; )
            Tt = tn(h.createQualifiedName(Tt, df(z, !1)), Ye);
          return Tt;
        }
        function E_(z, be) {
          return tn(h.createQualifiedName(z, be), z.pos);
        }
        function df(z, be) {
          if (t.hasPrecedingLineBreak() && qu(q()) && Jr(_d))
            return Uc(79, !0, _.Identifier_expected);
          if (q() === 80) {
            const Ye = Or();
            return be ? Ye : Uc(79, !0, _.Identifier_expected);
          }
          return z ? jt() : It();
        }
        function Y_(z) {
          const be = Z(), Ye = [];
          let Tt;
          do
            Tt = La(z), Ye.push(Tt);
          while (Tt.literal.kind === 16);
          return zs(Ye, be);
        }
        function Ap(z) {
          const be = Z();
          return tn(h.createTemplateExpression(Ce(z), Y_(z)), be);
        }
        function G() {
          const z = Z();
          return tn(h.createTemplateLiteralType(Ce(!1), Ze()), z);
        }
        function Ze() {
          const z = Z(), be = [];
          let Ye;
          do
            Ye = zt(), be.push(Ye);
          while (Ye.literal.kind === 16);
          return zs(be, z);
        }
        function zt() {
          const z = Z();
          return tn(h.createTemplateLiteralTypeSpan(hl(), $n(!1)), z);
        }
        function $n(z) {
          return q() === 19 ? (Si(z), Ge()) : Yl(17, _._0_expected, ho(19));
        }
        function La(z) {
          const be = Z();
          return tn(h.createTemplateSpan(gt(au), $n(z)), be);
        }
        function xa() {
          return Ot(q());
        }
        function Ce(z) {
          z && xi();
          const be = Ot(q());
          return D.assert(be.kind === 15, "Template head has wrong token kind"), be;
        }
        function Ge() {
          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, Ye = t.getTokenText();
          return Ye.substring(1, Ye.length - (t.isUnterminated() ? 0 : be ? 1 : 2));
        }
        function Ot(z) {
          const be = Z(), Ye = Tv(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()) : TI(z) ? I(z, t.getTokenValue()) : D.fail();
          return t.hasExtendedUnicodeEscape() && (Ye.hasExtendedUnicodeEscape = !0), t.isUnterminated() && (Ye.isUnterminated = !0), dt(), tn(Ye, be);
        }
        function mn() {
          return Ko(!0, _.Type_expected);
        }
        function bn() {
          if (!t.hasPrecedingLineBreak() && Gi() === 29)
            return b_(20, hl, 29, 31);
        }
        function Tn() {
          const z = Z();
          return tn(h.createTypeReferenceNode(mn(), bn()), z);
        }
        function zn(z) {
          switch (z.kind) {
            case 180:
              return xc(z.typeName);
            case 181:
            case 182: {
              const { parameters: be, type: Ye } = z;
              return uf(be) || zn(Ye);
            }
            case 193:
              return zn(z.type);
            default:
              return !1;
          }
        }
        function Wr(z) {
          return dt(), tn(h.createTypePredicateNode(void 0, z, hl()), z.pos);
        }
        function Wi() {
          const z = Z();
          return dt(), tn(h.createThisTypeNode(), z);
        }
        function nr() {
          const z = Z();
          return dt(), tn(h.createJSDocAllType(), z);
        }
        function _n() {
          const z = Z();
          return dt(), tn(h.createJSDocNonNullableType(pb(), !1), z);
        }
        function dr() {
          const z = Z();
          return dt(), q() === 27 || q() === 19 || q() === 21 || q() === 31 || q() === 63 || q() === 51 ? tn(h.createJSDocUnknownType(), z) : tn(h.createJSDocNullableType(hl(), !1), z);
        }
        function Ea() {
          const z = Z(), be = Re();
          if (Jr(si)) {
            dt();
            const Ye = Cp(36), Tt = Q_(58, !1);
            return vn(tn(h.createJSDocFunctionType(Ye, Tt), z), be);
          }
          return tn(h.createTypeReferenceNode(jt(), void 0), z);
        }
        function Js() {
          const z = Z();
          let be;
          return (q() === 108 || q() === 103) && (be = jt(), wn(58)), tn(h.createParameterDeclaration(void 0, void 0, be, void 0, il(), void 0), z);
        }
        function il() {
          t.setInJSDocType(!0);
          const z = Z();
          if (Sa(142)) {
            const Tt = h.createJSDocNamepathType(void 0);
            e:
              for (; ; )
                switch (q()) {
                  case 19:
                  case 1:
                  case 27:
                  case 5:
                    break e;
                  default:
                    fn();
                }
            return t.setInJSDocType(!1), tn(Tt, z);
          }
          const be = Sa(25);
          let Ye = Qo();
          return t.setInJSDocType(!1), be && (Ye = tn(h.createJSDocVariadicType(Ye), z)), q() === 63 ? (dt(), tn(h.createJSDocOptionalType(Ye), z)) : Ye;
        }
        function Jm() {
          const z = Z();
          wn(112);
          const be = Ko(!0), Ye = t.hasPrecedingLineBreak() ? void 0 : Jd();
          return tn(h.createTypeQueryNode(be, Ye), z);
        }
        function bg() {
          const z = Z(), be = ws(!1, !0), Ye = It();
          let Tt, Gt;
          Sa(94) && (Ag() || !tp() ? Tt = hl() : Gt = Lp());
          const Cn = Sa(63) ? hl() : void 0, Fr = h.createTypeParameterDeclaration(be, Ye, Tt, Cn);
          return Fr.expression = Gt, tn(Fr, z);
        }
        function $_() {
          if (q() === 29)
            return b_(19, bg, 29, 31);
        }
        function lb(z) {
          return q() === 25 || pE() || dy(q()) || q() === 59 || Ag(!z);
        }
        function Kv(z) {
          const be = Vy(_.Private_identifiers_cannot_be_used_as_parameters);
          return XR(be) === 0 && !kt(z) && dy(q()) && dt(), be;
        }
        function l2() {
          return di() || q() === 22 || q() === 18;
        }
        function rS(z) {
          return Eg(z);
        }
        function u2(z) {
          return Eg(z, !1);
        }
        function Eg(z, be = !0) {
          const Ye = Z(), Tt = Re(), Gt = z ? he(() => ws(!0)) : j(() => ws(!0));
          if (q() === 108) {
            const Ti = h.createParameterDeclaration(Gt, void 0, Uu(!0), void 0, Rh(), void 0), Ci = zl(Gt);
            return Ci && K(Ci, _.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters), vn(tn(Ti, Ye), Tt);
          }
          const Cn = In;
          In = !1;
          const Fr = Jo(25);
          if (!be && !l2())
            return;
          const mi = vn(tn(h.createParameterDeclaration(Gt, Fr, Kv(Gt), Jo(57), Rh(), Lg()), Ye), Tt);
          return In = Cn, mi;
        }
        function Q_(z, be) {
          if (Xv(z, be))
            return xe(Qo);
        }
        function Xv(z, be) {
          return z === 38 ? (wn(z), !0) : Sa(58) ? !0 : be && q() === 38 ? (pt(_._0_expected, ho(58)), dt(), !0) : !1;
        }
        function Dh(z, be) {
          const Ye = Ut(), Tt = ue();
          nn(!!(z & 1)), Ar(!!(z & 2));
          const Gt = z & 32 ? Qc(17, Js) : Qc(16, () => be ? rS(Tt) : u2(Tt));
          return nn(Ye), Ar(Tt), Gt;
        }
        function Cp(z) {
          if (!wn(20))
            return Eu();
          const be = Dh(z, !0);
          return wn(21), be;
        }
        function Yv() {
          Sa(27) || $s();
        }
        function Y1(z) {
          const be = Z(), Ye = Re();
          z === 177 && wn(103);
          const Tt = $_(), Gt = Cp(4), Cn = Q_(58, !0);
          Yv();
          const Fr = z === 176 ? h.createCallSignature(Tt, Gt, Cn) : h.createConstructSignature(Tt, Gt, Cn);
          return vn(tn(Fr, be), Ye);
        }
        function ub() {
          return q() === 22 && Jr(Tg);
        }
        function Tg() {
          if (dt(), q() === 25 || q() === 23)
            return !0;
          if (dy(q())) {
            if (dt(), ca())
              return !0;
          } else if (ca())
            dt();
          else
            return !1;
          return q() === 58 || q() === 27 ? !0 : q() !== 57 ? !1 : (dt(), q() === 58 || q() === 27 || q() === 23);
        }
        function iS(z, be, Ye) {
          const Tt = b_(16, () => rS(!1), 22, 23), Gt = Rh();
          Yv();
          const Cn = h.createIndexSignature(Ye, Tt, Gt);
          return vn(tn(Cn, z), be);
        }
        function $1(z, be, Ye) {
          const Tt = pn(), Gt = Jo(57);
          let Cn;
          if (q() === 20 || q() === 29) {
            const Fr = $_(), mi = Cp(4), Ti = Q_(58, !0);
            Cn = h.createMethodSignature(Ye, Tt, Gt, Fr, mi, Ti);
          } else {
            const Fr = Rh();
            Cn = h.createPropertySignature(Ye, Tt, Gt, Fr), q() === 63 && (Cn.initializer = Lg());
          }
          return Yv(), vn(tn(Cn, z), be);
        }
        function Q1() {
          if (q() === 20 || q() === 29 || q() === 137 || q() === 151)
            return !0;
          let z = !1;
          for (; dy(q()); )
            z = !0, dt();
          return q() === 22 ? !0 : (Q() && (z = !0, dt()), z ? q() === 20 || q() === 29 || q() === 57 || q() === 58 || q() === 27 || Is() : !1);
        }
        function Z1() {
          if (q() === 20 || q() === 29)
            return Y1(176);
          if (q() === 103 && Jr($v))
            return Y1(177);
          const z = Z(), be = Re(), Ye = ws(!1);
          return ya(137) ? eh(z, be, Ye, 174, 4) : ya(151) ? eh(z, be, Ye, 175, 4) : ub() ? iS(z, be, Ye) : $1(z, be, Ye);
        }
        function $v() {
          return dt(), q() === 20 || q() === 29;
        }
        function d2() {
          return dt() === 24;
        }
        function eE() {
          switch (dt()) {
            case 20:
            case 29:
            case 24:
              return !0;
          }
          return !1;
        }
        function tE() {
          const z = Z();
          return tn(h.createTypeLiteralNode(Qv()), z);
        }
        function Qv() {
          let z;
          return wn(18) ? (z = ae(4, Z1), wn(19)) : z = Eu(), z;
        }
        function db() {
          return dt(), q() === 39 || q() === 40 ? dt() === 146 : (q() === 146 && dt(), q() === 22 && dc() && dt() === 101);
        }
        function Zv() {
          const z = Z(), be = jt();
          wn(101);
          const Ye = hl();
          return tn(h.createTypeParameterDeclaration(void 0, be, Ye, void 0), z);
        }
        function aS() {
          const z = Z();
          wn(18);
          let be;
          (q() === 146 || q() === 39 || q() === 40) && (be = rl(), be.kind !== 146 && wn(146)), wn(22);
          const Ye = Zv(), Tt = Sa(128) ? hl() : void 0;
          wn(23);
          let Gt;
          (q() === 57 || q() === 39 || q() === 40) && (Gt = rl(), Gt.kind !== 57 && wn(57));
          const Cn = Rh();
          $s();
          const Fr = ae(4, Z1);
          return wn(19), tn(h.createMappedTypeNode(be, Ye, Tt, Gt, Cn, Fr), z);
        }
        function Sg() {
          const z = Z();
          if (Sa(25))
            return tn(h.createRestTypeNode(hl()), z);
          const be = hl();
          if (TC(be) && be.pos === be.type.pos) {
            const Ye = h.createOptionalTypeNode(be.type);
            return mt(Ye, be), Ye.flags = be.flags, Ye;
          }
          return be;
        }
        function Xo() {
          return dt() === 58 || q() === 57 && dt() === 58;
        }
        function nE() {
          return q() === 25 ? qu(dt()) && Xo() : qu(q()) && Xo();
        }
        function sL() {
          if (Jr(nE)) {
            const z = Z(), be = Re(), Ye = Jo(25), Tt = jt(), Gt = Jo(57);
            wn(58);
            const Cn = Sg(), Fr = h.createNamedTupleMember(Ye, Tt, Gt, Cn);
            return vn(tn(Fr, z), be);
          }
          return Sg();
        }
        function Ry() {
          const z = Z();
          return tn(h.createTupleTypeNode(b_(21, sL, 22, 23)), z);
        }
        function xg() {
          const z = Z();
          wn(20);
          const be = hl();
          return wn(21), tn(h.createParenthesizedType(be), z);
        }
        function Km() {
          let z;
          if (q() === 126) {
            const be = Z();
            dt();
            const Ye = tn(B(126), be);
            z = zs([Ye], be);
          }
          return z;
        }
        function Z_() {
          const z = Z(), be = Re(), Ye = Km(), Tt = Sa(103);
          D.assert(!Ye || Tt, "Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.");
          const Gt = $_(), Cn = Cp(4), Fr = Q_(38, !1), mi = Tt ? h.createConstructorTypeNode(Ye, Gt, Cn, Fr) : h.createFunctionTypeNode(Gt, Cn, Fr);
          return vn(tn(mi, z), be);
        }
        function Cd() {
          const z = rl();
          return q() === 24 ? void 0 : z;
        }
        function Ld(z) {
          const be = Z();
          z && dt();
          let Ye = q() === 110 || q() === 95 || q() === 104 ? rl() : Ot(q());
          return z && (Ye = tn(h.createPrefixUnaryExpression(40, Ye), be)), tn(h.createLiteralTypeNode(Ye), be);
        }
        function Id() {
          return dt(), q() === 100;
        }
        function fb() {
          const z = Z(), be = t.getTokenPos();
          wn(18);
          const Ye = t.hasPrecedingLineBreak();
          wn(130), wn(58);
          const Tt = zy(!0);
          if (!wn(19)) {
            const Gt = ec(st);
            Gt && Gt.code === _._0_expected.code && qo(Gt, tC(We, be, 1, _.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}"));
          }
          return tn(h.createImportTypeAssertionContainer(Tt, Ye), z);
        }
        function _b() {
          Oe |= 2097152;
          const z = Z(), be = Sa(112);
          wn(100), wn(20);
          const Ye = hl();
          let Tt;
          Sa(27) && (Tt = fb()), wn(21);
          const Gt = Sa(24) ? mn() : void 0, Cn = bn();
          return tn(h.createImportTypeNode(Ye, Tt, Gt, Cn, be), z);
        }
        function f2() {
          return dt(), q() === 8 || q() === 9;
        }
        function pb() {
          switch (q()) {
            case 131:
            case 157:
            case 152:
            case 148:
            case 160:
            case 153:
            case 134:
            case 155:
            case 144:
            case 149:
              return is(Cd) || Tn();
            case 66:
              t.reScanAsteriskEqualsToken();
            case 41:
              return nr();
            case 60:
              t.reScanQuestionToken();
            case 57:
              return dr();
            case 98:
              return Ea();
            case 53:
              return _n();
            case 14:
            case 10:
            case 8:
            case 9:
            case 110:
            case 95:
            case 104:
              return Ld();
            case 40:
              return Jr(f2) ? Ld(!0) : Tn();
            case 114:
              return rl();
            case 108: {
              const z = Wi();
              return q() === 140 && !t.hasPrecedingLineBreak() ? Wr(z) : z;
            }
            case 112:
              return Jr(Id) ? _b() : Jm();
            case 18:
              return Jr(db) ? aS() : tE();
            case 22:
              return Ry();
            case 20:
              return xg();
            case 100:
              return _b();
            case 129:
              return Jr(_d) ? iE() : Tn();
            case 15:
              return G();
            default:
              return Tn();
          }
        }
        function Ag(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 && Jr(f2);
            case 20:
              return !z && Jr(mb);
            default:
              return ca();
          }
        }
        function mb() {
          return dt(), q() === 21 || lb(!1) || Ag();
        }
        function oS() {
          const z = Z();
          let be = pb();
          for (; !t.hasPrecedingLineBreak(); )
            switch (q()) {
              case 53:
                dt(), be = tn(h.createJSDocNonNullableType(be, !0), z);
                break;
              case 57:
                if (Jr(Dt))
                  return be;
                dt(), be = tn(h.createJSDocNullableType(be, !0), z);
                break;
              case 22:
                if (wn(22), Ag()) {
                  const Ye = hl();
                  wn(23), be = tn(h.createIndexedAccessTypeNode(be, Ye), z);
                } else
                  wn(23), be = tn(h.createArrayTypeNode(be), z);
                break;
              default:
                return be;
            }
          return be;
        }
        function hb(z) {
          const be = Z();
          return wn(z), tn(h.createTypeOperatorNode(z, rE()), be);
        }
        function cL() {
          if (Sa(94)) {
            const z = _t(hl);
            if (Sn() || q() !== 57)
              return z;
          }
        }
        function _2() {
          const z = Z(), be = It(), Ye = is(cL), Tt = h.createTypeParameterDeclaration(void 0, be, Ye);
          return tn(Tt, z);
        }
        function e0() {
          const z = Z();
          return wn(138), tn(h.createInferTypeNode(_2()), z);
        }
        function rE() {
          const z = q();
          switch (z) {
            case 141:
            case 156:
            case 146:
              return hb(z);
            case 138:
              return e0();
          }
          return xe(oS);
        }
        function Je(z) {
          if (n0()) {
            const be = Z_();
            let Ye;
            return Sh(be) ? Ye = 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 : Ye = 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, Ye), be;
          }
        }
        function Ny(z, be, Ye) {
          const Tt = Z(), Gt = z === 51, Cn = Sa(z);
          let Fr = Cn && Je(Gt) || be();
          if (q() === z || Cn) {
            const mi = [Fr];
            for (; Sa(z); )
              mi.push(Je(Gt) || be());
            Fr = tn(Ye(zs(mi, Tt)), Tt);
          }
          return Fr;
        }
        function im() {
          return Ny(50, rE, h.createIntersectionTypeNode);
        }
        function t0() {
          return Ny(51, im, h.createUnionTypeNode);
        }
        function gb() {
          return dt(), q() === 103;
        }
        function n0() {
          return q() === 29 || q() === 20 && Jr(sS) ? !0 : q() === 103 || q() === 126 && Jr(gb);
        }
        function Cg() {
          if (dy(q()) && ws(!1), ca() || q() === 108)
            return dt(), !0;
          if (q() === 22 || q() === 18) {
            const z = st.length;
            return Vy(), z === st.length;
          }
          return !1;
        }
        function sS() {
          return dt(), !!(q() === 21 || q() === 25 || Cg() && (q() === 58 || q() === 27 || q() === 57 || q() === 63 || q() === 21 && (dt(), q() === 38)));
        }
        function Qo() {
          const z = Z(), be = ca() && is(ep), Ye = hl();
          return be ? tn(h.createTypePredicateNode(void 0, be, Ye), z) : Ye;
        }
        function ep() {
          const z = It();
          if (q() === 140 && !t.hasPrecedingLineBreak())
            return dt(), z;
        }
        function iE() {
          const z = Z(), be = Yl(129), Ye = q() === 108 ? Wi() : It(), Tt = Sa(140) ? hl() : void 0;
          return tn(h.createTypePredicateNode(be, Ye, Tt), z);
        }
        function hl() {
          if (Wn & 40960)
            return Vr(40960, hl);
          if (n0())
            return Z_();
          const z = Z(), be = t0();
          if (!Sn() && !t.hasPrecedingLineBreak() && Sa(94)) {
            const Ye = _t(hl);
            wn(57);
            const Tt = xe(hl);
            wn(58);
            const Gt = xe(hl);
            return tn(h.createConditionalTypeNode(be, Ye, Tt, Gt), z);
          }
          return be;
        }
        function Rh() {
          return Sa(58) ? hl() : void 0;
        }
        function yb() {
          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 Jr(eE);
            default:
              return ca();
          }
        }
        function tp() {
          if (yb())
            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 p2() ? !0 : ca();
          }
        }
        function vb() {
          return q() !== 18 && q() !== 98 && q() !== 84 && q() !== 59 && tp();
        }
        function au() {
          const z = Er();
          z && Mn(!1);
          const be = Z();
          let Ye = Rl(!0), Tt;
          for (; Tt = Jo(27); )
            Ye = r0(Ye, Tt, Rl(!0), be);
          return z && Mn(!0), Ye;
        }
        function Lg() {
          return Sa(63) ? Rl(!0) : void 0;
        }
        function Rl(z) {
          if (cS())
            return Vi();
          const be = Xm(z) || Nh(z);
          if (be)
            return be;
          const Ye = Z(), Tt = Eb(0);
          return Tt.kind === 79 && q() === 38 ? zr(Ye, Tt, z, void 0) : vd(Tt) && my(Qn()) ? r0(Tt, rl(), Rl(z), Ye) : lS(Tt, Ye, z);
        }
        function cS() {
          return q() === 125 ? Ut() ? !0 : Jr(s0) : !1;
        }
        function lL() {
          return dt(), !t.hasPrecedingLineBreak() && ca();
        }
        function Vi() {
          const z = Z();
          return dt(), !t.hasPrecedingLineBreak() && (q() === 41 || tp()) ? tn(h.createYieldExpression(Jo(41), Rl(!0)), z) : tn(h.createYieldExpression(void 0, void 0), z);
        }
        function zr(z, be, Ye, 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);
          tn(Gt, be.pos);
          const Cn = zs([Gt], Gt.pos, Gt.end), Fr = Yl(38), mi = bb(!!Tt, Ye), Ti = h.createArrowFunction(Tt, void 0, Cn, void 0, Fr, mi);
          return dn(tn(Ti, z));
        }
        function Xm(z) {
          const be = zd();
          if (be !== 0)
            return be === 1 ? fc(!0, !0) : is(() => Ig(z));
        }
        function zd() {
          return q() === 20 || q() === 29 || q() === 132 ? Jr(aE) : q() === 38 ? 1 : 0;
        }
        function aE() {
          if (q() === 132 && (dt(), t.hasPrecedingLineBreak() || q() !== 20 && q() !== 29))
            return 0;
          const z = q(), be = dt();
          if (z === 20) {
            if (be === 21)
              switch (dt()) {
                case 38:
                case 58:
                case 18:
                  return 1;
                default:
                  return 0;
              }
            if (be === 22 || be === 18)
              return 2;
            if (be === 25)
              return 1;
            if (dy(be) && be !== 132 && Jr(dc))
              return dt() === 128 ? 0 : 1;
            if (!ca() && be !== 108)
              return 0;
            switch (dt()) {
              case 58:
                return 1;
              case 57:
                return dt(), 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), !ca() && q() !== 85 ? 0 : Fe === 1 ? Jr(() => {
              Sa(85);
              const Tt = dt();
              if (Tt === 94)
                switch (dt()) {
                  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 Ig(z) {
          const be = t.getTokenPos();
          if (Pn != null && Pn.has(be))
            return;
          const Ye = fc(!1, z);
          return Ye || (Pn || (Pn = /* @__PURE__ */ new Set())).add(be), Ye;
        }
        function Nh(z) {
          if (q() === 132 && Jr(Ym) === 1) {
            const be = Z(), Ye = hE(), Tt = Eb(0);
            return zr(be, Tt, z, Ye);
          }
        }
        function Ym() {
          if (q() === 132) {
            if (dt(), t.hasPrecedingLineBreak() || q() === 38)
              return 0;
            const z = Eb(0);
            if (!t.hasPrecedingLineBreak() && z.kind === 79 && q() === 38)
              return 1;
          }
          return 0;
        }
        function fc(z, be) {
          const Ye = Z(), Tt = Re(), Gt = hE(), Cn = kt(Gt, bk) ? 2 : 0, Fr = $_();
          let mi;
          if (wn(20)) {
            if (z)
              mi = Dh(Cn, z);
            else {
              const um = Dh(Cn, z);
              if (!um)
                return;
              mi = um;
            }
            if (!wn(21) && !z)
              return;
          } else {
            if (!z)
              return;
            mi = Eu();
          }
          const Ti = q() === 58, Ci = Q_(58, !1);
          if (Ci && !z && zn(Ci))
            return;
          let Na = Ci;
          for (; (Na == null ? void 0 : Na.kind) === 193; )
            Na = Na.type;
          const As = Na && SC(Na);
          if (!z && q() !== 38 && (As || q() !== 18))
            return;
          const Co = q(), es = Yl(38), Dd = Co === 38 || Co === 18 ? bb(kt(Gt, bk), be) : It();
          if (!be && Ti && q() !== 58)
            return;
          const Dp = h.createArrowFunction(Gt, Fr, mi, Ci, es, Dd);
          return vn(tn(Dp, Ye), Tt);
        }
        function bb(z, be) {
          if (q() === 18)
            return kd(z ? 2 : 0);
          if (q() !== 26 && q() !== 98 && q() !== 84 && hS() && !vb())
            return kd(16 | (z ? 2 : 0));
          const Ye = In;
          In = !1;
          const Tt = z ? he(() => Rl(be)) : j(() => Rl(be));
          return In = Ye, Tt;
        }
        function lS(z, be, Ye) {
          const Tt = Jo(57);
          if (!Tt)
            return z;
          let Gt;
          return tn(h.createConditionalExpression(z, Tt, Vr(r, () => Rl(!1)), Gt = Yl(58), u_(Gt) ? Rl(Ye) : Uc(79, !1, _._0_expected, ho(58))), be);
        }
        function Eb(z) {
          const be = Z(), Ye = Lp();
          return Zf(z, Ye, be);
        }
        function uS(z) {
          return z === 101 || z === 162;
        }
        function Zf(z, be, Ye) {
          for (; ; ) {
            Qn();
            const Tt = DN(q());
            if (!(q() === 42 ? Tt >= z : Tt > z) || q() === 101 && ln())
              break;
            if (q() === 128 || q() === 150) {
              if (t.hasPrecedingLineBreak())
                break;
              {
                const Cn = q();
                dt(), be = Cn === 150 ? m2(be, hl()) : dS(be, hl());
              }
            } else
              be = r0(be, rl(), Eb(Tt), Ye);
          }
          return be;
        }
        function p2() {
          return ln() && q() === 101 ? !1 : DN(q()) > 0;
        }
        function m2(z, be) {
          return tn(h.createSatisfiesExpression(z, be), z.pos);
        }
        function r0(z, be, Ye, Tt) {
          return tn(h.createBinaryExpression(z, be, Ye), Tt);
        }
        function dS(z, be) {
          return tn(h.createAsExpression(z, be), z.pos);
        }
        function fS() {
          const z = Z();
          return tn(h.createPrefixUnaryExpression(q(), ht(np)), z);
        }
        function h2() {
          const z = Z();
          return tn(h.createDeleteExpression(ht(np)), z);
        }
        function Tb() {
          const z = Z();
          return tn(h.createTypeOfExpression(ht(np)), z);
        }
        function _S() {
          const z = Z();
          return tn(h.createVoidExpression(ht(np)), z);
        }
        function wf() {
          return q() === 133 ? ue() ? !0 : Jr(s0) : !1;
        }
        function kg() {
          const z = Z();
          return tn(h.createAwaitExpression(ht(np)), z);
        }
        function Lp() {
          if (g2()) {
            const Ye = Z(), Tt = Sb();
            return q() === 42 ? Zf(DN(q()), Tt, Ye) : Tt;
          }
          const z = q(), be = np();
          if (q() === 42) {
            const Ye = zo(Me, be.pos), { end: Tt } = be;
            be.kind === 213 ? it(Ye, Tt, _.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses) : it(Ye, 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, ho(z));
          }
          return be;
        }
        function np() {
          switch (q()) {
            case 39:
            case 40:
            case 54:
            case 53:
              return fS();
            case 89:
              return h2();
            case 112:
              return Tb();
            case 114:
              return _S();
            case 29:
              return Fe === 1 ? wg(!0) : v2();
            case 133:
              if (wf())
                return kg();
            default:
              return Sb();
          }
        }
        function g2() {
          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 Sb() {
          if (q() === 45 || q() === 46) {
            const be = Z();
            return tn(h.createPrefixUnaryExpression(q(), ht(am)), be);
          } else if (Fe === 1 && q() === 29 && Jr(Vc))
            return wg(!0);
          const z = am();
          if (D.assert(vd(z)), (q() === 45 || q() === 46) && !t.hasPrecedingLineBreak()) {
            const be = q();
            return dt(), tn(h.createPostfixUnaryExpression(z, be), z.pos);
          }
          return z;
        }
        function am() {
          const z = Z();
          let be;
          return q() === 100 ? Jr($v) ? (Oe |= 2097152, be = rl()) : Jr(d2) ? (dt(), dt(), be = tn(h.createMetaProperty(100, jt()), z), Oe |= 4194304) : be = pS() : be = q() === 106 ? fd() : pS(), ar(z, be);
        }
        function pS() {
          const z = Z(), be = T_();
          return Df(z, be, !0);
        }
        function fd() {
          const z = Z();
          let be = rl();
          if (q() === 29) {
            const Ye = Z(), Tt = is(My);
            Tt !== void 0 && (it(Ye, Z(), _.super_may_not_use_type_arguments), i0() || (be = h.createExpressionWithTypeArguments(be, Tt)));
          }
          return q() === 20 || q() === 24 || q() === 22 ? be : (Yl(24, _.super_must_be_followed_by_an_argument_list_or_member_access), tn(te(be, df(!0, !0)), z));
        }
        function wg(z, be, Ye) {
          const Tt = Z(), Gt = mS(z);
          let Cn;
          if (Gt.kind === 283) {
            let Fr = Dg(Gt), mi;
            const Ti = Fr[Fr.length - 1];
            if ((Ti == null ? void 0 : Ti.kind) === 281 && !tb(Ti.openingElement.tagName, Ti.closingElement.tagName) && tb(Gt.tagName, Ti.closingElement.tagName)) {
              const Ci = Ti.children.end, Na = tn(h.createJsxElement(Ti.openingElement, Ti.children, tn(h.createJsxClosingElement(tn(O(""), Ci, Ci)), Ci, Ci)), Ti.openingElement.pos, Ci);
              Fr = zs([...Fr.slice(0, Fr.length - 1), Na], Fr.pos, Ci), mi = Ti.closingElement;
            } else
              mi = xb(Gt, z), tb(Gt.tagName, mi.tagName) || (Ye && Ch(Ye) && tb(mi.tagName, Ye.tagName) ? K(Gt.tagName, _.JSX_element_0_has_no_corresponding_closing_tag, wI(Me, Gt.tagName)) : K(mi.tagName, _.Expected_corresponding_JSX_closing_tag_for_0, wI(Me, Gt.tagName)));
            Cn = tn(h.createJsxElement(Gt, Fr, mi), Tt);
          } else
            Gt.kind === 286 ? Cn = tn(h.createJsxFragment(Gt, Dg(Gt), Ab(z)), Tt) : (D.assert(Gt.kind === 282), Cn = Gt);
          if (z && q() === 29) {
            const Fr = typeof be > "u" ? Cn.pos : be, mi = is(() => wg(!0, Fr));
            if (mi) {
              const Ti = Uc(27, !1);
              return dk(Ti, mi.pos, 0), it(zo(Me, Fr), mi.end, _.JSX_expressions_must_have_one_parent_element), tn(h.createBinaryExpression(Cn, Ti, mi), Tt);
            }
          }
          return Cn;
        }
        function om() {
          const z = Z(), be = h.createJsxText(t.getTokenValue(), Vt === 12);
          return Vt = t.scanJsxToken(), tn(be, z);
        }
        function sm(z, be) {
          switch (be) {
            case 1:
              if (Rx(z))
                K(z, _.JSX_fragment_has_no_corresponding_closing_tag);
              else {
                const Ye = z.tagName, Tt = zo(Me, Ye.pos);
                it(Tt, Ye.end, _.JSX_element_0_has_no_corresponding_closing_tag, wI(Me, z.tagName));
              }
              return;
            case 30:
            case 7:
              return;
            case 11:
            case 12:
              return om();
            case 18:
              return sE(!1);
            case 29:
              return wg(!1, void 0, z);
            default:
              return D.assertNever(be);
          }
        }
        function Dg(z) {
          const be = [], Ye = Z(), Tt = Xt;
          for (Xt |= 1 << 14; ; ) {
            const Gt = sm(z, Vt = t.reScanJsxToken());
            if (!Gt || (be.push(Gt), Ch(z) && (Gt == null ? void 0 : Gt.kind) === 281 && !tb(Gt.openingElement.tagName, Gt.closingElement.tagName) && tb(z.tagName, Gt.closingElement.tagName)))
              break;
          }
          return Xt = Tt, zs(be, Ye);
        }
        function oE() {
          const z = Z();
          return tn(h.createJsxAttributes(ae(13, ks)), z);
        }
        function mS(z) {
          const be = Z();
          if (wn(29), q() === 31)
            return no(), tn(h.createJsxOpeningFragment(), be);
          const Ye = Oy(), Tt = Wn & 262144 ? void 0 : Jd(), Gt = oE();
          let Cn;
          return q() === 31 ? (no(), Cn = h.createJsxOpeningElement(Ye, Tt, Gt)) : (wn(43), wn(31, void 0, !1) && (z ? dt() : no()), Cn = h.createJsxSelfClosingElement(Ye, Tt, Gt)), tn(Cn, be);
        }
        function Oy() {
          const z = Z();
          bo();
          let be = q() === 108 ? rl() : jt();
          for (; Sa(24); )
            be = tn(te(be, df(!0, !1)), z);
          return be;
        }
        function sE(z) {
          const be = Z();
          if (!wn(18))
            return;
          let Ye, Tt;
          return q() !== 19 && (Ye = Jo(25), Tt = au()), z ? wn(19) : wn(19, void 0, !1) && no(), tn(h.createJsxExpression(Ye, Tt), be);
        }
        function ks() {
          if (q() === 18)
            return y2();
          bo();
          const z = Z();
          return tn(h.createJsxAttribute(jt(), Py()), z);
        }
        function Py() {
          if (q() === 63) {
            if (sa() === 10)
              return xa();
            if (q() === 18)
              return sE(!0);
            if (q() === 29)
              return wg(!0);
            pt(_.or_JSX_element_expected);
          }
        }
        function y2() {
          const z = Z();
          wn(18), wn(25);
          const be = au();
          return wn(19), tn(h.createJsxSpreadAttribute(be), z);
        }
        function xb(z, be) {
          const Ye = Z();
          wn(30);
          const Tt = Oy();
          return wn(31, void 0, !1) && (be || !tb(z.tagName, Tt) ? dt() : no()), tn(h.createJsxClosingElement(Tt), Ye);
        }
        function Ab(z) {
          const be = Z();
          return wn(30), wn(31, _.Expected_corresponding_closing_tag_for_JSX_fragment, !1) && (z ? dt() : no()), tn(h.createJsxJsxClosingFragment(), be);
        }
        function v2() {
          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 = hl();
          wn(31);
          const Ye = np();
          return tn(h.createTypeAssertion(be, Ye), z);
        }
        function uL() {
          return dt(), qu(q()) || q() === 22 || i0();
        }
        function b2() {
          return q() === 28 && Jr(uL);
        }
        function pr(z) {
          if (z.flags & 32)
            return !0;
          if (Lx(z)) {
            let be = z.expression;
            for (; Lx(be) && !(be.flags & 32); )
              be = be.expression;
            if (be.flags & 32) {
              for (; Lx(z); )
                z.flags |= 32, z = z.expression;
              return !0;
            }
          }
          return !1;
        }
        function wc(z, be, Ye) {
          const Tt = df(!0, !0), Gt = Ye || pr(be), Cn = Gt ? X(be, Ye, Tt) : te(be, Tt);
          if (Gt && Di(Cn.name) && K(Cn.name, _.An_optional_chain_cannot_contain_private_identifiers), by(be) && be.typeArguments) {
            const Fr = be.typeArguments.pos - 1, mi = zo(Me, be.typeArguments.end) + 1;
            it(Fr, mi, _.An_instantiation_expression_cannot_be_followed_by_a_property_access);
          }
          return tn(Cn, z);
        }
        function la(z, be, Ye) {
          let Tt;
          if (q() === 23)
            Tt = Uc(79, !0, _.An_element_access_expression_should_take_an_argument);
          else {
            const Cn = gt(au);
            zf(Cn) && (Cn.text = bu(Cn.text)), Tt = Cn;
          }
          wn(23);
          const Gt = Ye || pr(be) ? P(be, Ye, Tt) : Y(be, Tt);
          return tn(Gt, z);
        }
        function Df(z, be, Ye) {
          for (; ; ) {
            let Tt, Gt = !1;
            if (Ye && b2() ? (Tt = Yl(28), Gt = qu(q())) : Gt = Sa(24), Gt) {
              be = wc(z, be, Tt);
              continue;
            }
            if ((Tt || !Er()) && Sa(22)) {
              be = la(z, be, Tt);
              continue;
            }
            if (i0()) {
              be = !Tt && be.kind === 230 ? $m(z, be.expression, Tt, be.typeArguments) : $m(z, be, Tt, void 0);
              continue;
            }
            if (!Tt) {
              if (q() === 53 && !t.hasPrecedingLineBreak()) {
                dt(), be = tn(h.createNonNullExpression(be), z);
                continue;
              }
              const Cn = is(My);
              if (Cn) {
                be = tn(h.createExpressionWithTypeArguments(be, Cn), z);
                continue;
              }
            }
            return be;
          }
        }
        function i0() {
          return q() === 14 || q() === 15;
        }
        function $m(z, be, Ye, Tt) {
          const Gt = h.createTaggedTemplateExpression(be, Tt, q() === 14 ? (xi(), xa()) : Ap(!0));
          return (Ye || be.flags & 32) && (Gt.flags |= 32), Gt.questionDotToken = Ye, tn(Gt, z);
        }
        function ar(z, be) {
          for (; ; ) {
            be = Df(z, be, !0);
            let Ye;
            const Tt = Jo(28);
            if (Tt && (Ye = is(My), i0())) {
              be = $m(z, be, Tt, Ye);
              continue;
            }
            if (Ye || q() === 20) {
              !Tt && be.kind === 230 && (Ye = be.typeArguments, be = be.expression);
              const Gt = E2(), Cn = Tt || pr(be) ? ne(be, Tt, Ye, Gt) : de(be, Ye, Gt);
              be = tn(Cn, z);
              continue;
            }
            if (Tt) {
              const Gt = Uc(79, !1, _.Identifier_expected);
              be = tn(X(be, Tt, Gt), z);
            }
            break;
          }
          return be;
        }
        function E2() {
          wn(20);
          const z = Qc(11, rp);
          return wn(21), z;
        }
        function My() {
          if (Wn & 262144 || Gi() !== 29)
            return;
          dt();
          const z = Qc(20, hl);
          if (Qn() === 31)
            return dt(), z && Al() ? z : void 0;
        }
        function Al() {
          switch (q()) {
            case 20:
            case 14:
            case 15:
              return !0;
            case 29:
            case 31:
            case 39:
            case 40:
              return !1;
          }
          return t.hasPrecedingLineBreak() || p2() || !tp();
        }
        function T_() {
          switch (q()) {
            case 8:
            case 9:
            case 10:
            case 14:
              return xa();
            case 108:
            case 106:
            case 104:
            case 110:
            case 95:
              return rl();
            case 20:
              return Ip();
            case 22:
              return By();
            case 18:
              return Zc();
            case 132:
              if (!Jr(kb))
                break;
              return Rg();
            case 59:
              return Fg();
            case 84:
              return d0();
            case 98:
              return Rg();
            case 103:
              return S_();
            case 43:
            case 68:
              if (ai() === 13)
                return xa();
              break;
            case 15:
              return Ap(!1);
            case 80:
              return Or();
          }
          return It(_.Expression_expected);
        }
        function Ip() {
          const z = Z(), be = Re();
          wn(20);
          const Ye = gt(au);
          return wn(21), vn(tn(ie(Ye), z), be);
        }
        function Fy() {
          const z = Z();
          wn(25);
          const be = Rl(!0);
          return tn(h.createSpreadElement(be), z);
        }
        function cE() {
          return q() === 25 ? Fy() : q() === 27 ? tn(h.createOmittedExpression(), Z()) : Rl(!0);
        }
        function rp() {
          return Vr(r, cE);
        }
        function By() {
          const z = Z(), be = t.getTokenPos(), Ye = wn(22), Tt = t.hasPrecedingLineBreak(), Gt = Qc(15, cE);
          return xo(22, 23, Ye, be), tn(V(Gt, Tt), z);
        }
        function Jc() {
          const z = Z(), be = Re();
          if (Jo(25)) {
            const Na = Rl(!0);
            return vn(tn(h.createSpreadAssignment(Na), z), be);
          }
          const Ye = ws(!0);
          if (ya(137))
            return eh(z, be, Ye, 174, 0);
          if (ya(151))
            return eh(z, be, Ye, 175, 0);
          const Tt = Jo(41), Gt = ca(), Cn = pn(), Fr = Jo(57), mi = Jo(53);
          if (Tt || q() === 20 || q() === 29)
            return yS(z, be, Ye, Tt, Cn, Fr, mi);
          let Ti;
          if (Gt && q() !== 58) {
            const Na = Jo(63), As = Na ? gt(() => Rl(!0)) : void 0;
            Ti = h.createShorthandPropertyAssignment(Cn, As), Ti.equalsToken = Na;
          } else {
            wn(58);
            const Na = gt(() => Rl(!0));
            Ti = h.createPropertyAssignment(Cn, Na);
          }
          return Ti.modifiers = Ye, Ti.questionToken = Fr, Ti.exclamationToken = mi, vn(tn(Ti, z), be);
        }
        function Zc() {
          const z = Z(), be = t.getTokenPos(), Ye = wn(18), Tt = t.hasPrecedingLineBreak(), Gt = Qc(12, Jc, !0);
          return xo(18, 19, Ye, be), tn(H(Gt, Tt), z);
        }
        function Rg() {
          const z = Er();
          Mn(!1);
          const be = Z(), Ye = Re(), Tt = ws(!1);
          wn(98);
          const Gt = Jo(41), Cn = Gt ? 1 : 0, Fr = kt(Tt, bk) ? 2 : 0, mi = Cn && Fr ? je(ou) : Cn ? _e(ou) : Fr ? he(ou) : ou(), Ti = $_(), Ci = Cp(Cn | Fr), Na = Q_(58, !1), As = kd(Cn | Fr);
          Mn(z);
          const Co = h.createFunctionExpression(Tt, Gt, mi, Ti, Ci, Na, As);
          return vn(tn(Co, be), Ye);
        }
        function ou() {
          return di() ? fe() : void 0;
        }
        function S_() {
          const z = Z();
          if (wn(103), Sa(24)) {
            const Cn = jt();
            return tn(h.createMetaProperty(103, Cn), z);
          }
          const be = Z();
          let Ye = Df(be, T_(), !1), Tt;
          Ye.kind === 230 && (Tt = Ye.typeArguments, Ye = Ye.expression), q() === 28 && pt(_.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0, wI(Me, Ye));
          const Gt = q() === 20 ? E2() : void 0;
          return tn(ye(Ye, Tt, Gt), z);
        }
        function Qm(z, be) {
          const Ye = Z(), Tt = Re(), Gt = t.getTokenPos(), Cn = wn(18, be);
          if (Cn || z) {
            const Fr = t.hasPrecedingLineBreak(), mi = ae(1, Rf);
            xo(18, 19, Cn, Gt);
            const Ti = vn(tn(W(mi, Fr), Ye), Tt);
            return q() === 63 && (pt(_.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), dt()), Ti;
          } else {
            const Fr = Eu();
            return vn(tn(W(Fr, void 0), Ye), Tt);
          }
        }
        function kd(z, be) {
          const Ye = Ut();
          nn(!!(z & 1));
          const Tt = ue();
          Ar(!!(z & 2));
          const Gt = In;
          In = !1;
          const Cn = Er();
          Cn && Mn(!1);
          const Fr = Qm(!!(z & 16), be);
          return Cn && Mn(!0), In = Gt, nn(Ye), Ar(Tt), Fr;
        }
        function lE() {
          const z = Z(), be = Re();
          return wn(26), vn(tn(h.createEmptyStatement(), z), be);
        }
        function Cb() {
          const z = Z(), be = Re();
          wn(99);
          const Ye = t.getTokenPos(), Tt = wn(20), Gt = gt(au);
          xo(20, 21, Tt, Ye);
          const Cn = Rf(), Fr = Sa(91) ? Rf() : void 0;
          return vn(tn(ve(Gt, Cn, Fr), z), be);
        }
        function Lb() {
          const z = Z(), be = Re();
          wn(90);
          const Ye = Rf();
          wn(115);
          const Tt = t.getTokenPos(), Gt = wn(20), Cn = gt(au);
          return xo(20, 21, Gt, Tt), Sa(26), vn(tn(h.createDoStatement(Ye, Cn), z), be);
        }
        function kp() {
          const z = Z(), be = Re();
          wn(115);
          const Ye = t.getTokenPos(), Tt = wn(20), Gt = gt(au);
          xo(20, 21, Tt, Ye);
          const Cn = Rf();
          return vn(tn(Te(Gt, Cn), z), be);
        }
        function Oh() {
          const z = Z(), be = Re();
          wn(97);
          const Ye = Jo(133);
          wn(20);
          let Tt;
          q() !== 26 && (q() === 113 || q() === 119 || q() === 85 ? Tt = cm(!0) : Tt = Nt(au));
          let Gt;
          if (Ye ? wn(162) : Sa(162)) {
            const Cn = gt(() => Rl(!0));
            wn(21), Gt = $e(Ye, Tt, Cn, Rf());
          } else if (Sa(101)) {
            const Cn = gt(au);
            wn(21), Gt = h.createForInStatement(Tt, Cn, Rf());
          } else {
            wn(26);
            const Cn = q() !== 26 && q() !== 21 ? gt(au) : void 0;
            wn(26);
            const Fr = q() !== 21 ? gt(au) : void 0;
            wn(21), Gt = ee(Tt, Cn, Fr, Rf());
          }
          return vn(tn(Gt, z), be);
        }
        function uE(z) {
          const be = Z(), Ye = Re();
          wn(z === 249 ? 81 : 86);
          const Tt = Is() ? void 0 : It();
          $s();
          const Gt = z === 249 ? h.createBreakStatement(Tt) : h.createContinueStatement(Tt);
          return vn(tn(Gt, be), Ye);
        }
        function Gy() {
          const z = Z(), be = Re();
          wn(105);
          const Ye = Is() ? void 0 : gt(au);
          return $s(), vn(tn(h.createReturnStatement(Ye), z), be);
        }
        function Dc() {
          const z = Z(), be = Re();
          wn(116);
          const Ye = t.getTokenPos(), Tt = wn(20), Gt = gt(au);
          xo(20, 21, Tt, Ye);
          const Cn = ke(33554432, Rf);
          return vn(tn(h.createWithStatement(Gt, Cn), z), be);
        }
        function Ng() {
          const z = Z(), be = Re();
          wn(82);
          const Ye = gt(au);
          wn(58);
          const Tt = ae(3, Rf);
          return vn(tn(h.createCaseClause(Ye, Tt), z), be);
        }
        function Ph() {
          const z = Z();
          wn(88), wn(58);
          const be = ae(3, Rf);
          return tn(h.createDefaultClause(be), z);
        }
        function a0() {
          return q() === 82 ? Ng() : Ph();
        }
        function o0() {
          const z = Z();
          wn(18);
          const be = ae(2, a0);
          return wn(19), tn(h.createCaseBlock(be), z);
        }
        function su() {
          const z = Z(), be = Re();
          wn(107), wn(20);
          const Ye = gt(au);
          wn(21);
          const Tt = o0();
          return vn(tn(h.createSwitchStatement(Ye, Tt), z), be);
        }
        function Mh() {
          const z = Z(), be = Re();
          wn(109);
          let Ye = t.hasPrecedingLineBreak() ? void 0 : gt(au);
          return Ye === void 0 && (an++, Ye = tn(O(""), Z())), mc() || $c(Ye), vn(tn(h.createThrowStatement(Ye), z), be);
        }
        function gl() {
          const z = Z(), be = Re();
          wn(111);
          const Ye = Qm(!1), Tt = q() === 83 ? dE() : void 0;
          let Gt;
          return (!Tt || q() === 96) && (wn(96, _.catch_or_finally_expected), Gt = Qm(!1)), vn(tn(h.createTryStatement(Ye, Tt, Gt), z), be);
        }
        function dE() {
          const z = Z();
          wn(83);
          let be;
          Sa(20) ? (be = jy(), wn(21)) : be = void 0;
          const Ye = Qm(!1);
          return tn(h.createCatchClause(be, Ye), z);
        }
        function Fh() {
          const z = Z(), be = Re();
          return wn(87), $s(), vn(tn(h.createDebuggerStatement(), z), be);
        }
        function Ib() {
          const z = Z();
          let be = Re(), Ye;
          const Tt = q() === 20, Gt = gt(au);
          return Ve(Gt) && Sa(58) ? Ye = h.createLabeledStatement(Gt, Rf()) : (mc() || $c(Gt), Ye = pe(Gt), Tt && (be = !1)), vn(tn(Ye, z), be);
        }
        function _d() {
          return dt(), qu(q()) && !t.hasPrecedingLineBreak();
        }
        function Zm() {
          return dt(), q() === 84 && !t.hasPrecedingLineBreak();
        }
        function kb() {
          return dt(), q() === 98 && !t.hasPrecedingLineBreak();
        }
        function s0() {
          return dt(), (qu(q()) || q() === 8 || q() === 9 || q() === 10) && !t.hasPrecedingLineBreak();
        }
        function fE() {
          for (; ; )
            switch (q()) {
              case 113:
              case 119:
              case 85:
              case 98:
              case 84:
              case 92:
                return !0;
              case 118:
              case 154:
                return lL();
              case 142:
              case 143:
                return T2();
              case 126:
              case 127:
              case 132:
              case 136:
              case 121:
              case 122:
              case 123:
              case 146:
                if (dt(), t.hasPrecedingLineBreak())
                  return !1;
                continue;
              case 159:
                return dt(), q() === 18 || q() === 79 || q() === 93;
              case 100:
                return dt(), q() === 10 || q() === 41 || q() === 18 || qu(q());
              case 93:
                let z = dt();
                if (z === 154 && (z = Jr(dt)), z === 63 || z === 41 || z === 18 || z === 88 || z === 128 || z === 59)
                  return !0;
                continue;
              case 124:
                dt();
                continue;
              default:
                return !1;
            }
        }
        function Uy() {
          return Jr(fE);
        }
        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 Uy() || Jr(eE);
            case 85:
            case 93:
              return Uy();
            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 Uy() || !Jr(_d);
            default:
              return tp();
          }
        }
        function c0() {
          return dt(), di() || q() === 18 || q() === 22;
        }
        function Og() {
          return Jr(c0);
        }
        function Rf() {
          switch (q()) {
            case 26:
              return lE();
            case 18:
              return Qm(!1);
            case 113:
              return Pg(Z(), Re(), void 0);
            case 119:
              if (Og())
                return Pg(Z(), Re(), void 0);
              break;
            case 98:
              return u0(Z(), Re(), void 0);
            case 84:
              return vS(Z(), Re(), void 0);
            case 99:
              return Cb();
            case 90:
              return Lb();
            case 115:
              return kp();
            case 97:
              return Oh();
            case 86:
              return uE(248);
            case 81:
              return uE(249);
            case 105:
              return Gy();
            case 116:
              return Dc();
            case 107:
              return su();
            case 109:
              return Mh();
            case 111:
            case 83:
            case 96:
              return gl();
            case 87:
              return Fh();
            case 59:
              return ff();
            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 (Uy())
                return ff();
              break;
          }
          return Ib();
        }
        function _E(z) {
          return z.kind === 136;
        }
        function ff() {
          const z = Z(), be = Re(), Ye = ws(!0);
          if (kt(Ye, _E)) {
            const Gt = Bh(z);
            if (Gt)
              return Gt;
            for (const Cn of Ye)
              Cn.flags |= 16777216;
            return ke(16777216, () => l0(z, be, Ye));
          } else
            return l0(z, be, Ye);
        }
        function Bh(z) {
          return ke(16777216, () => {
            const be = Mt(Xt, z);
            if (be)
              return Pt(be);
          });
        }
        function l0(z, be, Ye) {
          switch (q()) {
            case 113:
            case 119:
            case 85:
              return Pg(z, be, Ye);
            case 98:
              return u0(z, be, Ye);
            case 84:
              return vS(z, be, Ye);
            case 118:
              return Bg(z, be, Ye);
            case 154:
              return A2(z, be, Ye);
            case 92:
              return S(z, be, Ye);
            case 159:
            case 142:
            case 143:
              return Cr(z, be, Ye);
            case 100:
              return Kd(z, be, Ye);
            case 93:
              switch (dt(), q()) {
                case 88:
                case 63:
                  return bs(z, be, Ye);
                case 128:
                  return $l(z, be, Ye);
                default:
                  return aP(z, be, Ye);
              }
            default:
              if (Ye) {
                const Tt = Uc(279, !0, _.Declaration_expected);
                return uk(Tt, z), Tt.modifiers = Ye, Tt;
              }
              return;
          }
        }
        function T2() {
          return dt(), !t.hasPrecedingLineBreak() && (ca() || q() === 10);
        }
        function ns(z, be) {
          if (q() !== 18) {
            if (z & 4) {
              Yv();
              return;
            }
            if (Is()) {
              $s();
              return;
            }
          }
          return kd(z, be);
        }
        function Ir() {
          const z = Z();
          if (q() === 27)
            return tn(h.createOmittedExpression(), z);
          const be = Jo(25), Ye = Vy(), Tt = Lg();
          return tn(h.createBindingElement(be, void 0, Ye, Tt), z);
        }
        function qd() {
          const z = Z(), be = Jo(25), Ye = di();
          let Tt = pn(), Gt;
          Ye && q() !== 58 ? (Gt = Tt, Tt = void 0) : (wn(58), Gt = Vy());
          const Cn = Lg();
          return tn(h.createBindingElement(be, Tt, Gt, Cn), z);
        }
        function pd() {
          const z = Z();
          wn(18);
          const be = Qc(9, qd);
          return wn(19), tn(h.createObjectBindingPattern(be), z);
        }
        function gS() {
          const z = Z();
          wn(22);
          const be = Qc(10, Ir);
          return wn(23), tn(h.createArrayBindingPattern(be), z);
        }
        function pE() {
          return q() === 18 || q() === 22 || q() === 80 || di();
        }
        function Vy(z) {
          return q() === 22 ? gS() : q() === 18 ? pd() : fe(z);
        }
        function S2() {
          return jy(!0);
        }
        function jy(z) {
          const be = Z(), Ye = Re(), Tt = Vy(_.Private_identifiers_are_not_allowed_in_variable_declarations);
          let Gt;
          z && Tt.kind === 79 && q() === 53 && !t.hasPrecedingLineBreak() && (Gt = rl());
          const Cn = Rh(), Fr = uS(q()) ? void 0 : Lg(), mi = Ue(Tt, Gt, Cn, Fr);
          return vn(tn(mi, be), Ye);
        }
        function cm(z) {
          const be = Z();
          let Ye = 0;
          switch (q()) {
            case 113:
              break;
            case 119:
              Ye |= 1;
              break;
            case 85:
              Ye |= 2;
              break;
            default:
              D.fail();
          }
          dt();
          let Tt;
          if (q() === 162 && Jr(wp))
            Tt = Eu();
          else {
            const Gt = ln();
            Nn(z), Tt = Qc(8, z ? jy : S2), Nn(Gt);
          }
          return tn(Be(Tt, Ye), be);
        }
        function wp() {
          return dc() && dt() === 21;
        }
        function Pg(z, be, Ye) {
          const Tt = cm(!1);
          $s();
          const Gt = ce(Ye, Tt);
          return vn(tn(Gt, z), be);
        }
        function u0(z, be, Ye) {
          const Tt = ue(), Gt = Mm(Ye);
          wn(98);
          const Cn = Jo(41), Fr = Gt & 1024 ? ou() : fe(), mi = Cn ? 1 : 0, Ti = Gt & 512 ? 2 : 0, Ci = $_();
          Gt & 1 && Ar(!0);
          const Na = Cp(mi | Ti), As = Q_(58, !1), Co = ns(mi | Ti, _.or_expected);
          Ar(Tt);
          const es = h.createFunctionDeclaration(Ye, Cn, Fr, Ci, Na, As, Co);
          return vn(tn(es, z), be);
        }
        function Gh() {
          if (q() === 135)
            return wn(135);
          if (q() === 10 && Jr(dt) === 20)
            return is(() => {
              const z = xa();
              return z.text === "constructor" ? z : void 0;
            });
        }
        function lm(z, be, Ye) {
          return is(() => {
            if (Gh()) {
              const Tt = $_(), Gt = Cp(0), Cn = Q_(58, !1), Fr = ns(0, _.or_expected), mi = h.createConstructorDeclaration(Ye, Gt, Fr);
              return mi.typeParameters = Tt, mi.type = Cn, vn(tn(mi, z), be);
            }
          });
        }
        function yS(z, be, Ye, Tt, Gt, Cn, Fr, mi) {
          const Ti = Tt ? 1 : 0, Ci = kt(Ye, bk) ? 2 : 0, Na = $_(), As = Cp(Ti | Ci), Co = Q_(58, !1), es = ns(Ti | Ci, mi), Dd = h.createMethodDeclaration(Ye, Tt, Gt, Cn, Na, As, Co, es);
          return Dd.exclamationToken = Fr, vn(tn(Dd, z), be);
        }
        function Kc(z, be, Ye, Tt, Gt) {
          const Cn = !Gt && !t.hasPrecedingLineBreak() ? Jo(53) : void 0, Fr = Rh(), mi = Vr(45056, Lg);
          qc(Tt, Fr, mi);
          const Ti = h.createPropertyDeclaration(Ye, Tt, Gt || Cn, Fr, mi);
          return vn(tn(Ti, z), be);
        }
        function _f(z, be, Ye) {
          const Tt = Jo(41), Gt = pn(), Cn = Jo(57);
          return Tt || q() === 20 || q() === 29 ? yS(z, be, Ye, Tt, Gt, Cn, void 0, _.or_expected) : Kc(z, be, Ye, Gt, Cn);
        }
        function eh(z, be, Ye, Tt, Gt) {
          const Cn = pn(), Fr = $_(), mi = Cp(0), Ti = Q_(58, !1), Ci = ns(Gt), Na = Tt === 174 ? h.createGetAccessorDeclaration(Ye, Cn, mi, Ti, Ci) : h.createSetAccessorDeclaration(Ye, Cn, mi, Ci);
          return Na.typeParameters = Fr, Yf(Na) && (Na.type = Ti), vn(tn(Na, z), be);
        }
        function wd() {
          let z;
          if (q() === 59)
            return !0;
          for (; dy(q()); ) {
            if (z = q(), uW(z))
              return !0;
            dt();
          }
          if (q() === 41 || (Q() && (z = q(), dt()), q() === 22))
            return !0;
          if (z !== void 0) {
            if (!Td(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 Is();
            }
          }
          return !1;
        }
        function mE(z, be, Ye) {
          Yl(124);
          const Tt = Hy(), Gt = vn(tn(h.createClassStaticBlockDeclaration(Tt), z), be);
          return Gt.modifiers = Ye, Gt;
        }
        function Hy() {
          const z = Ut(), be = ue();
          nn(!1), Ar(!0);
          const Ye = Qm(!1);
          return nn(z), Ar(be), Ye;
        }
        function Mg() {
          if (ue() && q() === 133) {
            const z = Z(), be = It(_.Expression_expected);
            dt();
            const Ye = Df(z, be, !0);
            return ar(z, Ye);
          }
          return am();
        }
        function x2() {
          const z = Z();
          if (!Sa(59))
            return;
          const be = re(Mg);
          return tn(h.createDecorator(be), z);
        }
        function Nf(z, be, Ye) {
          const Tt = Z(), Gt = q();
          if (q() === 85 && be) {
            if (!is(as))
              return;
          } else {
            if (Ye && q() === 124 && Jr(Bi))
              return;
            if (z && q() === 124)
              return;
            if (!uc())
              return;
          }
          return tn(B(Gt), Tt);
        }
        function ws(z, be, Ye) {
          const Tt = Z();
          let Gt, Cn, Fr, mi = !1, Ti = !1, Ci = !1;
          if (z && q() === 59)
            for (; Cn = x2(); )
              Gt = Bn(Gt, Cn);
          for (; Fr = Nf(mi, be, Ye); )
            Fr.kind === 124 && (mi = !0), Gt = Bn(Gt, Fr), Ti = !0;
          if (Ti && z && q() === 59)
            for (; Cn = x2(); )
              Gt = Bn(Gt, Cn), Ci = !0;
          if (Ci)
            for (; Fr = Nf(mi, be, Ye); )
              Fr.kind === 124 && (mi = !0), Gt = Bn(Gt, Fr);
          return Gt && zs(Gt, Tt);
        }
        function hE() {
          let z;
          if (q() === 132) {
            const be = Z();
            dt();
            const Ye = tn(B(132), be);
            z = zs([Ye], be);
          }
          return z;
        }
        function gE() {
          const z = Z();
          if (q() === 26)
            return dt(), tn(h.createSemicolonClassElement(), z);
          const be = Re(), Ye = ws(!0, !0, !0);
          if (q() === 124 && Jr(Bi))
            return mE(z, be, Ye);
          if (ya(137))
            return eh(z, be, Ye, 174, 0);
          if (ya(151))
            return eh(z, be, Ye, 175, 0);
          if (q() === 135 || q() === 10) {
            const Tt = lm(z, be, Ye);
            if (Tt)
              return Tt;
          }
          if (ub())
            return iS(z, be, Ye);
          if (qu(q()) || q() === 10 || q() === 8 || q() === 41 || q() === 22)
            if (kt(Ye, _E)) {
              for (const Gt of Ye)
                Gt.flags |= 16777216;
              return ke(16777216, () => _f(z, be, Ye));
            } else
              return _f(z, be, Ye);
          if (Ye) {
            const Tt = Uc(79, !0, _.Declaration_expected);
            return Kc(z, be, Ye, Tt, void 0);
          }
          return D.fail("Should not have attempted to parse class member declaration.");
        }
        function Fg() {
          const z = Z(), be = Re(), Ye = ws(!0);
          if (q() === 84)
            return yE(z, be, Ye, 228);
          const Tt = Uc(279, !0, _.Expression_expected);
          return uk(Tt, z), Tt.modifiers = Ye, Tt;
        }
        function d0() {
          return yE(Z(), Re(), void 0, 228);
        }
        function vS(z, be, Ye) {
          return yE(z, be, Ye, 260);
        }
        function yE(z, be, Ye, Tt) {
          const Gt = ue();
          wn(84);
          const Cn = vE(), Fr = $_();
          kt(Ye, C7) && Ar(!0);
          const mi = EE();
          let Ti;
          wn(18) ? (Ti = dL(), wn(19)) : Ti = Eu(), Ar(Gt);
          const Ci = Tt === 260 ? h.createClassDeclaration(Ye, Cn, Fr, mi, Ti) : h.createClassExpression(Ye, Cn, Fr, mi, Ti);
          return vn(tn(Ci, z), be);
        }
        function vE() {
          return di() && !bE() ? Uu(di()) : void 0;
        }
        function bE() {
          return q() === 117 && Jr(Hd);
        }
        function EE() {
          if (Uh())
            return ae(22, TE);
        }
        function TE() {
          const z = Z(), be = q();
          D.assert(be === 94 || be === 117), dt();
          const Ye = Qc(7, Wy);
          return tn(h.createHeritageClause(be, Ye), z);
        }
        function Wy() {
          const z = Z(), be = am();
          if (be.kind === 230)
            return be;
          const Ye = Jd();
          return tn(h.createExpressionWithTypeArguments(be, Ye), z);
        }
        function Jd() {
          return q() === 29 ? b_(20, hl, 29, 31) : void 0;
        }
        function Uh() {
          return q() === 94 || q() === 117;
        }
        function dL() {
          return ae(5, gE);
        }
        function Bg(z, be, Ye) {
          wn(118);
          const Tt = It(), Gt = $_(), Cn = EE(), Fr = Qv(), mi = h.createInterfaceDeclaration(Ye, Tt, Gt, Cn, Fr);
          return vn(tn(mi, z), be);
        }
        function A2(z, be, Ye) {
          wn(154);
          const Tt = It(), Gt = $_();
          wn(63);
          const Cn = q() === 139 && is(Cd) || hl();
          $s();
          const Fr = h.createTypeAliasDeclaration(Ye, Tt, Gt, Cn);
          return vn(tn(Fr, z), be);
        }
        function C2() {
          const z = Z(), be = Re(), Ye = pn(), Tt = gt(Lg);
          return vn(tn(h.createEnumMember(Ye, Tt), z), be);
        }
        function S(z, be, Ye) {
          wn(92);
          const Tt = It();
          let Gt;
          wn(18) ? (Gt = Qe(() => Qc(6, C2)), wn(19)) : Gt = Eu();
          const Cn = h.createEnumDeclaration(Ye, Tt, Gt);
          return vn(tn(Cn, z), be);
        }
        function se() {
          const z = Z();
          let be;
          return wn(18) ? (be = ae(1, Rf), wn(19)) : be = Eu(), tn(h.createModuleBlock(be), z);
        }
        function Le(z, be, Ye, Tt) {
          const Gt = Tt & 16, Cn = It(), Fr = Sa(24) ? Le(Z(), !1, void 0, 4 | Gt) : se(), mi = h.createModuleDeclaration(Ye, Cn, Fr, Tt);
          return vn(tn(mi, z), be);
        }
        function rn(z, be, Ye) {
          let Tt = 0, Gt;
          q() === 159 ? (Gt = It(), Tt |= 1024) : (Gt = xa(), Gt.text = bu(Gt.text));
          let Cn;
          q() === 18 ? Cn = se() : $s();
          const Fr = h.createModuleDeclaration(Ye, Gt, Cn, Tt);
          return vn(tn(Fr, z), be);
        }
        function Cr(z, be, Ye) {
          let Tt = 0;
          if (q() === 159)
            return rn(z, be, Ye);
          if (Sa(143))
            Tt |= 16;
          else if (wn(142), q() === 10)
            return rn(z, be, Ye);
          return Le(z, be, Ye, Tt);
        }
        function Ei() {
          return q() === 147 && Jr(si);
        }
        function si() {
          return dt() === 20;
        }
        function Bi() {
          return dt() === 18;
        }
        function uo() {
          return dt() === 43;
        }
        function $l(z, be, Ye) {
          wn(128), wn(143);
          const Tt = It();
          $s();
          const Gt = h.createNamespaceExportDeclaration(Tt);
          return Gt.modifiers = Ye, vn(tn(Gt, z), be);
        }
        function Kd(z, be, Ye) {
          wn(100);
          const Tt = t.getStartPos();
          let Gt;
          ca() && (Gt = It());
          let Cn = !1;
          if (q() !== 158 && (Gt == null ? void 0 : Gt.escapedText) === "type" && (ca() || Xd()) && (Cn = !0, Gt = ca() ? It() : void 0), Gt && !f0())
            return _0(z, be, Ye, Gt, Cn);
          let Fr;
          (Gt || q() === 41 || q() === 18) && (Fr = qy(Gt, Tt, Cn), wn(158));
          const mi = Of();
          let Ti;
          q() === 130 && !t.hasPrecedingLineBreak() && (Ti = zy()), $s();
          const Ci = h.createImportDeclaration(Ye, Fr, mi, Ti);
          return vn(tn(Ci, z), be);
        }
        function pf() {
          const z = Z(), be = qu(q()) ? jt() : Ot(10);
          wn(58);
          const Ye = Rl(!0);
          return tn(h.createAssertEntry(be, Ye), z);
        }
        function zy(z) {
          const be = Z();
          z || wn(130);
          const Ye = t.getTokenPos();
          if (wn(18)) {
            const Tt = t.hasPrecedingLineBreak(), Gt = Qc(24, pf, !0);
            if (!wn(19)) {
              const Cn = ec(st);
              Cn && Cn.code === _._0_expected.code && qo(Cn, tC(We, Ye, 1, _.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}"));
            }
            return tn(h.createAssertClause(Gt, Tt), be);
          } else {
            const Tt = zs([], Z(), void 0, !1);
            return tn(h.createAssertClause(Tt, !1), be);
          }
        }
        function Xd() {
          return q() === 41 || q() === 18;
        }
        function f0() {
          return q() === 27 || q() === 158;
        }
        function _0(z, be, Ye, Tt, Gt) {
          wn(63);
          const Cn = x_();
          $s();
          const Fr = h.createImportEqualsDeclaration(Ye, Gt, Tt, Cn);
          return vn(tn(Fr, z), be);
        }
        function qy(z, be, Ye) {
          let Tt;
          return (!z || Sa(27)) && (Tt = q() === 41 ? th() : Jy(272)), tn(h.createImportClause(Ye, z, Tt), be);
        }
        function x_() {
          return Ei() ? SE() : Ko(!1);
        }
        function SE() {
          const z = Z();
          wn(147), wn(20);
          const be = Of();
          return wn(21), tn(h.createExternalModuleReference(be), z);
        }
        function Of() {
          if (q() === 10) {
            const z = xa();
            return z.text = bu(z.text), z;
          } else
            return au();
        }
        function th() {
          const z = Z();
          wn(41), wn(128);
          const be = It();
          return tn(h.createNamespaceImport(be), z);
        }
        function Jy(z) {
          const be = Z(), Ye = z === 272 ? h.createNamedImports(b_(23, xE, 18, 19)) : h.createNamedExports(b_(23, e_, 18, 19));
          return tn(Ye, be);
        }
        function e_() {
          const z = Re();
          return vn(p0(278), z);
        }
        function xE() {
          return p0(273);
        }
        function p0(z) {
          const be = Z();
          let Ye = Td(q()) && !ca(), Tt = t.getTokenPos(), Gt = t.getTextPos(), Cn = !1, Fr, mi = !0, Ti = jt();
          if (Ti.escapedText === "type")
            if (q() === 128) {
              const As = jt();
              if (q() === 128) {
                const Co = jt();
                qu(q()) ? (Cn = !0, Fr = As, Ti = Na(), mi = !1) : (Fr = Ti, Ti = Co, mi = !1);
              } else
                qu(q()) ? (Fr = Ti, mi = !1, Ti = Na()) : (Cn = !0, Ti = As);
            } else
              qu(q()) && (Cn = !0, Ti = Na());
          mi && q() === 128 && (Fr = Ti, wn(128), Ti = Na()), z === 273 && Ye && it(Tt, Gt, _.Identifier_expected);
          const Ci = z === 273 ? h.createImportSpecifier(Cn, Fr, Ti) : h.createExportSpecifier(Cn, Fr, Ti);
          return tn(Ci, be);
          function Na() {
            return Ye = Td(q()) && !ca(), Tt = t.getTokenPos(), Gt = t.getTextPos(), jt();
          }
        }
        function ul(z) {
          return tn(h.createNamespaceExport(jt()), z);
        }
        function aP(z, be, Ye) {
          const Tt = ue();
          Ar(!0);
          let Gt, Cn, Fr;
          const mi = Sa(154), Ti = Z();
          Sa(41) ? (Sa(128) && (Gt = ul(Ti)), wn(158), Cn = Of()) : (Gt = Jy(276), (q() === 158 || q() === 10 && !t.hasPrecedingLineBreak()) && (wn(158), Cn = Of())), Cn && q() === 130 && !t.hasPrecedingLineBreak() && (Fr = zy()), $s(), Ar(Tt);
          const Ci = h.createExportDeclaration(Ye, mi, Gt, Cn, Fr);
          return vn(tn(Ci, z), be);
        }
        function bs(z, be, Ye) {
          const Tt = ue();
          Ar(!0);
          let Gt;
          Sa(63) ? Gt = !0 : wn(88);
          const Cn = Rl(!0);
          $s(), Ar(Tt);
          const Fr = h.createExportAssignment(Ye, Gt, Cn);
          return vn(tn(Fr, z), be);
        }
        let Zo;
        ((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";
        })(Zo || (Zo = {}));
        let L2;
        ((z) => {
          z[z.False = 0] = "False", z[z.True = 1] = "True", z[z.Unknown = 2] = "Unknown";
        })(L2 || (L2 = {}));
        let I2;
        ((z) => {
          function be(Ci, Na, As) {
            Xi("file.js", Ci, 99, void 0, 1), t.setText(Ci, Na, As), Vt = t.scan();
            const Co = Ye(), es = Ni("file.js", 99, 1, !1, [], B(1), 0, io), Dd = dx(st, es);
            return Ct && (es.jsDocDiagnostics = dx(Ct, es)), Nr(), Co ? { jsDocTypeExpression: Co, diagnostics: Dd } : void 0;
          }
          z.parseJSDocTypeExpressionForTests = be;
          function Ye(Ci) {
            const Na = Z(), As = (Ci ? Sa : wn)(18), Co = ke(8388608, il);
            (!Ci || As) && Bc(19);
            const es = h.createJSDocTypeExpression(Co);
            return lr(es), tn(es, Na);
          }
          z.parseJSDocTypeExpression = Ye;
          function Tt() {
            const Ci = Z(), Na = Sa(18), As = Z();
            let Co = Ko(!1);
            for (; q() === 80; )
              _o(), fn(), Co = tn(h.createJSDocMemberName(Co, It()), As);
            Na && Bc(19);
            const es = h.createJSDocNameReference(Co);
            return lr(es), tn(es, Ci);
          }
          z.parseJSDocNameReference = Tt;
          function Gt(Ci, Na, As) {
            Xi("", Ci, 99, void 0, 1);
            const Co = ke(8388608, () => Ti(Na, As)), Dd = dx(st, { languageVariant: 0, text: Ci });
            return Nr(), Co ? { jsDoc: Co, diagnostics: Dd } : void 0;
          }
          z.parseIsolatedJSDocComment = Gt;
          function Cn(Ci, Na, As) {
            const Co = Vt, es = st.length, Dd = Yt, Dp = ke(8388608, () => Ti(Na, As));
            return Bo(Dp, Ci), Wn & 262144 && (Ct || (Ct = []), Ct.push(...st)), Vt = Co, st.length = es, Yt = Dd, Dp;
          }
          z.parseJSDocComment = Cn;
          let Fr;
          ((Ci) => {
            Ci[Ci.BeginningOfLine = 0] = "BeginningOfLine", Ci[Ci.SawAsterisk = 1] = "SawAsterisk", Ci[Ci.SavingComments = 2] = "SavingComments", Ci[Ci.SavingBackticks = 3] = "SavingBackticks";
          })(Fr || (Fr = {}));
          let mi;
          ((Ci) => {
            Ci[Ci.Property = 1] = "Property", Ci[Ci.Parameter = 2] = "Parameter", Ci[Ci.CallbackParameter = 4] = "CallbackParameter";
          })(mi || (mi = {}));
          function Ti(Ci = 0, Na) {
            const As = Me, Co = Na === void 0 ? As.length : Ci + Na;
            if (Na = Co - Ci, D.assert(Ci >= 0), D.assert(Ci <= Co), D.assert(Co <= As.length), !OJ(As, Ci))
              return;
            let es, Dd, Dp, um, Gg, A_ = [];
            const Ky = [];
            return t.scanRange(Ci + 3, Na - 5, () => {
              let Dn = 1, qr, Gr = Ci - (As.lastIndexOf(`
`, Ci) + 1) + 4;
              function ni(Eo) {
                qr || (qr = Gr), A_.push(Eo), Gr += Eo.length;
              }
              for (fn(); bS(5); )
                ;
              bS(4) && (Dn = 0, Gr = 0);
              e:
                for (; ; ) {
                  switch (q()) {
                    case 59:
                      Dn === 0 || Dn === 1 ? (AE(A_), Gg || (Gg = Z()), h0(_L(Gr)), Dn = 0, qr = void 0) : ni(t.getTokenText());
                      break;
                    case 4:
                      A_.push(t.getTokenText()), Dn = 0, Gr = 0;
                      break;
                    case 41:
                      const Eo = t.getTokenText();
                      Dn === 1 || Dn === 2 ? (Dn = 2, ni(Eo)) : (Dn = 1, Gr += Eo.length);
                      break;
                    case 5:
                      const Oo = t.getTokenText();
                      Dn === 2 ? A_.push(Oo) : qr !== void 0 && Gr + Oo.length > qr && A_.push(Oo.slice(qr - Gr)), Gr += Oo.length;
                      break;
                    case 1:
                      break e;
                    case 18:
                      Dn = 2;
                      const hf = t.getStartPos(), ap = t.getTextPos() - 1, Vh = Jw(ap);
                      if (Vh) {
                        um || k2(A_), Ky.push(tn(h.createJSDocText(A_.join("")), um ?? Ci, hf)), Ky.push(Vh), A_ = [], um = t.getTextPos();
                        break;
                      }
                    default:
                      Dn = 2, ni(t.getTokenText());
                      break;
                  }
                  fn();
                }
              AE(A_), Ky.length && A_.length && Ky.push(tn(h.createJSDocText(A_.join("")), um ?? Ci, Gg)), Ky.length && es && D.assertIsDefined(Gg, "having parsed tags implies that the end of the comment span should be set");
              const ji = es && zs(es, Dd, Dp);
              return tn(h.createJSDocComment(Ky.length ? zs(Ky, Ci, Gg) : A_.length ? A_.join("") : void 0, ji), Ci, Co);
            });
            function k2(Dn) {
              for (; Dn.length && (Dn[0] === `
` || Dn[0] === "\r"); )
                Dn.shift();
            }
            function AE(Dn) {
              for (; Dn.length && Dn[Dn.length - 1].trim() === ""; )
                Dn.pop();
            }
            function fL() {
              for (; ; ) {
                if (fn(), q() === 1)
                  return !0;
                if (!(q() === 5 || q() === 4))
                  return !1;
              }
            }
            function ip() {
              if (!((q() === 5 || q() === 4) && Jr(fL)))
                for (; q() === 5 || q() === 4; )
                  fn();
            }
            function m0() {
              if ((q() === 5 || q() === 4) && Jr(fL))
                return "";
              let Dn = t.hasPrecedingLineBreak(), qr = !1, Gr = "";
              for (; Dn && q() === 41 || q() === 5 || q() === 4; )
                Gr += t.getTokenText(), q() === 4 ? (Dn = !0, qr = !0, Gr = "") : q() === 41 && (Dn = !1), fn();
              return qr ? Gr : "";
            }
            function _L(Dn) {
              D.assert(q() === 59);
              const qr = t.getTokenPos();
              fn();
              const Gr = v0(void 0), ni = m0();
              let ji;
              switch (Gr.escapedText) {
                case "author":
                  ji = qt(qr, Gr, Dn, ni);
                  break;
                case "implements":
                  ji = ea(qr, Gr, Dn, ni);
                  break;
                case "augments":
                case "extends":
                  ji = Xa(qr, Gr, Dn, ni);
                  break;
                case "class":
                case "constructor":
                  ji = jg(qr, h.createJSDocClassTag, Gr, Dn, ni);
                  break;
                case "public":
                  ji = jg(qr, h.createJSDocPublicTag, Gr, Dn, ni);
                  break;
                case "private":
                  ji = jg(qr, h.createJSDocPrivateTag, Gr, Dn, ni);
                  break;
                case "protected":
                  ji = jg(qr, h.createJSDocProtectedTag, Gr, Dn, ni);
                  break;
                case "readonly":
                  ji = jg(qr, h.createJSDocReadonlyTag, Gr, Dn, ni);
                  break;
                case "override":
                  ji = jg(qr, h.createJSDocOverrideTag, Gr, Dn, ni);
                  break;
                case "deprecated":
                  Ht = !0, ji = jg(qr, h.createJSDocDeprecatedTag, Gr, Dn, ni);
                  break;
                case "this":
                  ji = rre(qr, Gr, Dn, ni);
                  break;
                case "enum":
                  ji = ire(qr, Gr, Dn, ni);
                  break;
                case "arg":
                case "argument":
                case "param":
                  return Yw(qr, Gr, 2, Dn);
                case "return":
                case "returns":
                  ji = w(qr, Gr, Dn, ni);
                  break;
                case "template":
                  ji = $y(qr, Gr, Dn, ni);
                  break;
                case "type":
                  ji = F(qr, Gr, Dn, ni);
                  break;
                case "typedef":
                  ji = pL(qr, Gr, Dn, ni);
                  break;
                case "callback":
                  ji = or(qr, Gr, Dn, ni);
                  break;
                case "overload":
                  ji = g0(qr, Gr, Dn, ni);
                  break;
                case "satisfies":
                  ji = mf(qr, Gr, Dn, ni);
                  break;
                case "see":
                  ji = oe(qr, Gr, Dn, ni);
                  break;
                case "exception":
                case "throws":
                  ji = qe(qr, Gr, Dn, ni);
                  break;
                default:
                  ji = bc(qr, Gr, Dn, ni);
                  break;
              }
              return ji;
            }
            function Pf(Dn, qr, Gr, ni) {
              return ni || (Gr += qr - Dn), w2(Gr, ni.slice(Gr));
            }
            function w2(Dn, qr) {
              const Gr = Z();
              let ni = [];
              const ji = [];
              let Eo, Oo = 0, hf = !0, ap;
              function Vh(jh) {
                ap || (ap = Dn), ni.push(jh), Dn += jh.length;
              }
              qr !== void 0 && (qr !== "" && Vh(qr), Oo = 1);
              let nh = q();
              e:
                for (; ; ) {
                  switch (nh) {
                    case 4:
                      Oo = 0, ni.push(t.getTokenText()), Dn = 0;
                      break;
                    case 59:
                      if (Oo === 3 || Oo === 2 && (!hf || Jr(Xy))) {
                        ni.push(t.getTokenText());
                        break;
                      }
                      t.setTextPos(t.getTextPos() - 1);
                    case 1:
                      break e;
                    case 5:
                      if (Oo === 2 || Oo === 3)
                        Vh(t.getTokenText());
                      else {
                        const wb = t.getTokenText();
                        ap !== void 0 && Dn + wb.length > ap && ni.push(wb.slice(ap - Dn)), Dn += wb.length;
                      }
                      break;
                    case 18:
                      Oo = 2;
                      const jh = t.getStartPos(), gL = t.getTextPos() - 1, Vu = Jw(gL);
                      Vu ? (ji.push(tn(h.createJSDocText(ni.join("")), Eo ?? Gr, jh)), ji.push(Vu), ni = [], Eo = t.getTextPos()) : Vh(t.getTokenText());
                      break;
                    case 61:
                      Oo === 3 ? Oo = 2 : Oo = 3, Vh(t.getTokenText());
                      break;
                    case 41:
                      if (Oo === 0) {
                        Oo = 1, Dn += 1;
                        break;
                      }
                    default:
                      Oo !== 3 && (Oo = 2), Vh(t.getTokenText());
                      break;
                  }
                  hf = q() === 5, nh = fn();
                }
              if (k2(ni), AE(ni), ji.length)
                return ni.length && ji.push(tn(h.createJSDocText(ni.join("")), Eo ?? Gr)), zs(ji, Gr, t.getTextPos());
              if (ni.length)
                return ni.join("");
            }
            function Xy() {
              const Dn = fn();
              return Dn === 5 || Dn === 4;
            }
            function Jw(Dn) {
              const qr = is(Kw);
              if (!qr)
                return;
              fn(), ip();
              const Gr = Z();
              let ni = qu(q()) ? Ko(!0) : void 0;
              if (ni)
                for (; q() === 80; )
                  _o(), fn(), ni = tn(h.createJSDocMemberName(ni, It()), Gr);
              const ji = [];
              for (; q() !== 19 && q() !== 4 && q() !== 1; )
                ji.push(t.getTokenText()), fn();
              const Eo = qr === "link" ? h.createJSDocLink : qr === "linkcode" ? h.createJSDocLinkCode : h.createJSDocLinkPlain;
              return tn(Eo(ni, ji.join("")), Dn, t.getTextPos());
            }
            function Kw() {
              if (m0(), q() === 18 && fn() === 59 && qu(fn())) {
                const Dn = t.getTokenValue();
                if (Lo(Dn))
                  return Dn;
              }
            }
            function Lo(Dn) {
              return Dn === "link" || Dn === "linkcode" || Dn === "linkplain";
            }
            function bc(Dn, qr, Gr, ni) {
              return tn(h.createJSDocUnknownTag(qr, Pf(Dn, Z(), Gr, ni)), Dn);
            }
            function h0(Dn) {
              Dn && (es ? es.push(Dn) : (es = [Dn], Dd = Dn.pos), Dp = Dn.end);
            }
            function Yy() {
              return m0(), q() === 18 ? Ye() : void 0;
            }
            function Xw() {
              const Dn = bS(22);
              Dn && ip();
              const qr = bS(61), Gr = sP();
              return qr && jd(61), Dn && (ip(), Jo(63) && au(), wn(23)), { name: Gr, isBracketed: Dn };
            }
            function Rd(Dn) {
              switch (Dn.kind) {
                case 149:
                  return !0;
                case 185:
                  return Rd(Dn.elementType);
                default:
                  return W_(Dn) && Ve(Dn.typeName) && Dn.typeName.escapedText === "Object" && !Dn.typeArguments;
              }
            }
            function Yw(Dn, qr, Gr, ni) {
              let ji = Yy(), Eo = !ji;
              m0();
              const { name: Oo, isBracketed: hf } = Xw(), ap = m0();
              Eo && !Jr(Kw) && (ji = Yy());
              const Vh = Pf(Dn, Z(), ni, ap), nh = Gr !== 4 && v(ji, Oo, Gr, ni);
              nh && (ji = nh, Eo = !0);
              const jh = Gr === 1 ? h.createJSDocPropertyTag(qr, Oo, hf, ji, Eo, Vh) : h.createJSDocParameterTag(qr, Oo, hf, ji, Eo, Vh);
              return tn(jh, Dn);
            }
            function v(Dn, qr, Gr, ni) {
              if (Dn && Rd(Dn.type)) {
                const ji = Z();
                let Eo, Oo;
                for (; Eo = is(() => CE(Gr, ni, qr)); )
                  (Eo.kind === 344 || Eo.kind === 351) && (Oo = Bn(Oo, Eo));
                if (Oo) {
                  const hf = tn(h.createJSDocTypeLiteral(Oo, Dn.type.kind === 185), ji);
                  return tn(h.createJSDocTypeExpression(hf), ji);
                }
              }
            }
            function w(Dn, qr, Gr, ni) {
              kt(es, M7) && it(qr.pos, t.getTokenPos(), _._0_tag_already_specified, qr.escapedText);
              const ji = Yy();
              return tn(h.createJSDocReturnTag(qr, ji, Pf(Dn, Z(), Gr, ni)), Dn);
            }
            function F(Dn, qr, Gr, ni) {
              kt(es, Pk) && it(qr.pos, t.getTokenPos(), _._0_tag_already_specified, qr.escapedText);
              const ji = Ye(!0), Eo = Gr !== void 0 && ni !== void 0 ? Pf(Dn, Z(), Gr, ni) : void 0;
              return tn(h.createJSDocTypeTag(qr, ji, Eo), Dn);
            }
            function oe(Dn, qr, Gr, ni) {
              const Eo = q() === 22 || Jr(() => fn() === 59 && qu(fn()) && Lo(t.getTokenValue())) ? void 0 : Tt(), Oo = Gr !== void 0 && ni !== void 0 ? Pf(Dn, Z(), Gr, ni) : void 0;
              return tn(h.createJSDocSeeTag(qr, Eo, Oo), Dn);
            }
            function qe(Dn, qr, Gr, ni) {
              const ji = Yy(), Eo = Pf(Dn, Z(), Gr, ni);
              return tn(h.createJSDocThrowsTag(qr, ji, Eo), Dn);
            }
            function qt(Dn, qr, Gr, ni) {
              const ji = Z(), Eo = Br();
              let Oo = t.getStartPos();
              const hf = Pf(Dn, Oo, Gr, ni);
              hf || (Oo = t.getStartPos());
              const ap = typeof hf != "string" ? zs(ma([tn(Eo, ji, Oo)], hf), ji) : Eo.text + hf;
              return tn(h.createJSDocAuthorTag(qr, ap), Dn);
            }
            function Br() {
              const Dn = [];
              let qr = !1, Gr = t.getToken();
              for (; Gr !== 1 && Gr !== 4; ) {
                if (Gr === 29)
                  qr = !0;
                else {
                  if (Gr === 59 && !qr)
                    break;
                  if (Gr === 31 && qr) {
                    Dn.push(t.getTokenText()), t.setTextPos(t.getTokenPos() + 1);
                    break;
                  }
                }
                Dn.push(t.getTokenText()), Gr = fn();
              }
              return h.createJSDocText(Dn.join(""));
            }
            function ea(Dn, qr, Gr, ni) {
              const ji = Ug();
              return tn(h.createJSDocImplementsTag(qr, ji, Pf(Dn, Z(), Gr, ni)), Dn);
            }
            function Xa(Dn, qr, Gr, ni) {
              const ji = Ug();
              return tn(h.createJSDocAugmentsTag(qr, ji, Pf(Dn, Z(), Gr, ni)), Dn);
            }
            function mf(Dn, qr, Gr, ni) {
              const ji = Ye(!1), Eo = Gr !== void 0 && ni !== void 0 ? Pf(Dn, Z(), Gr, ni) : void 0;
              return tn(h.createJSDocSatisfiesTag(qr, ji, Eo), Dn);
            }
            function Ug() {
              const Dn = Sa(18), qr = Z(), Gr = Vg(), ni = Jd(), ji = h.createExpressionWithTypeArguments(Gr, ni), Eo = tn(ji, qr);
              return Dn && wn(19), Eo;
            }
            function Vg() {
              const Dn = Z();
              let qr = v0();
              for (; Sa(24); ) {
                const Gr = v0();
                qr = tn(te(qr, Gr), Dn);
              }
              return qr;
            }
            function jg(Dn, qr, Gr, ni, ji) {
              return tn(qr(Gr, Pf(Dn, Z(), ni, ji)), Dn);
            }
            function rre(Dn, qr, Gr, ni) {
              const ji = Ye(!0);
              return ip(), tn(h.createJSDocThisTag(qr, ji, Pf(Dn, Z(), Gr, ni)), Dn);
            }
            function ire(Dn, qr, Gr, ni) {
              const ji = Ye(!0);
              return ip(), tn(h.createJSDocEnumTag(qr, ji, Pf(Dn, Z(), Gr, ni)), Dn);
            }
            function pL(Dn, qr, Gr, ni) {
              var ji;
              let Eo = Yy();
              m0();
              const Oo = $w();
              ip();
              let hf = w2(Gr), ap;
              if (!Eo || Rd(Eo.type)) {
                let nh, jh, gL, Vu = !1;
                for (; nh = is(() => D2(Gr)); )
                  if (Vu = !0, nh.kind === 347)
                    if (jh) {
                      const wb = pt(_.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);
                      wb && qo(wb, tC(We, 0, 0, _.The_tag_was_first_specified_here));
                      break;
                    } else
                      jh = nh;
                  else
                    gL = Bn(gL, nh);
                if (Vu) {
                  const wb = Eo && Eo.type.kind === 185, Qw = h.createJSDocTypeLiteral(gL, wb);
                  Eo = jh && jh.typeExpression && !Rd(jh.typeExpression.type) ? jh.typeExpression : tn(Qw, Dn), ap = Eo.end;
                }
              }
              ap = ap || hf !== void 0 ? Z() : ((ji = Oo ?? Eo) != null ? ji : qr).end, hf || (hf = Pf(Dn, ap, Gr, ni));
              const Vh = h.createJSDocTypedefTag(qr, Eo, Oo, hf);
              return tn(Vh, Dn, ap);
            }
            function $w(Dn) {
              const qr = t.getTokenPos();
              if (!qu(q()))
                return;
              const Gr = v0();
              if (Sa(24)) {
                const ni = $w(!0), ji = h.createModuleDeclaration(void 0, Gr, ni, Dn ? 4 : void 0);
                return tn(ji, qr);
              }
              return Dn && (Gr.flags |= 2048), Gr;
            }
            function are(Dn) {
              const qr = Z();
              let Gr, ni;
              for (; Gr = is(() => CE(4, Dn)); )
                ni = Bn(ni, Gr);
              return zs(ni || [], qr);
            }
            function mL(Dn, qr) {
              const Gr = are(qr), ni = is(() => {
                if (bS(59)) {
                  const ji = _L(qr);
                  if (ji && ji.kind === 345)
                    return ji;
                }
              });
              return tn(h.createJSDocSignature(void 0, Gr, ni), Dn);
            }
            function or(Dn, qr, Gr, ni) {
              const ji = $w();
              ip();
              let Eo = w2(Gr);
              const Oo = mL(Dn, Gr);
              Eo || (Eo = Pf(Dn, Z(), Gr, ni));
              const hf = Eo !== void 0 ? Z() : Oo.end;
              return tn(h.createJSDocCallbackTag(qr, Oo, ji, Eo), Dn, hf);
            }
            function g0(Dn, qr, Gr, ni) {
              ip();
              let ji = w2(Gr);
              const Eo = mL(Dn, Gr);
              ji || (ji = Pf(Dn, Z(), Gr, ni));
              const Oo = ji !== void 0 ? Z() : Eo.end;
              return tn(h.createJSDocOverloadTag(qr, Eo, ji), Dn, Oo);
            }
            function y0(Dn, qr) {
              for (; !Ve(Dn) || !Ve(qr); )
                if (!Ve(Dn) && !Ve(qr) && Dn.right.escapedText === qr.right.escapedText)
                  Dn = Dn.left, qr = qr.left;
                else
                  return !1;
              return Dn.escapedText === qr.escapedText;
            }
            function D2(Dn) {
              return CE(1, Dn);
            }
            function CE(Dn, qr, Gr) {
              let ni = !0, ji = !1;
              for (; ; )
                switch (fn()) {
                  case 59:
                    if (ni) {
                      const Eo = oP(Dn, qr);
                      return Eo && (Eo.kind === 344 || Eo.kind === 351) && Dn !== 4 && Gr && (Ve(Eo.name) || !y0(Gr, Eo.name.left)) ? !1 : Eo;
                    }
                    ji = !1;
                    break;
                  case 4:
                    ni = !0, ji = !1;
                    break;
                  case 41:
                    ji && (ni = !1), ji = !0;
                    break;
                  case 79:
                    ni = !1;
                    break;
                  case 1:
                    return !1;
                }
            }
            function oP(Dn, qr) {
              D.assert(q() === 59);
              const Gr = t.getStartPos();
              fn();
              const ni = v0();
              ip();
              let ji;
              switch (ni.escapedText) {
                case "type":
                  return Dn === 1 && F(Gr, ni);
                case "prop":
                case "property":
                  ji = 1;
                  break;
                case "arg":
                case "argument":
                case "param":
                  ji = 6;
                  break;
                default:
                  return !1;
              }
              return Dn & ji ? Yw(Gr, ni, Dn, qr) : !1;
            }
            function hL() {
              const Dn = Z(), qr = bS(22);
              qr && ip();
              const Gr = v0(_.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces);
              let ni;
              if (qr && (ip(), wn(63), ni = ke(8388608, il), wn(23)), !xc(Gr))
                return tn(h.createTypeParameterDeclaration(void 0, Gr, void 0, ni), Dn);
            }
            function cU() {
              const Dn = Z(), qr = [];
              do {
                ip();
                const Gr = hL();
                Gr !== void 0 && qr.push(Gr), m0();
              } while (bS(27));
              return zs(qr, Dn);
            }
            function $y(Dn, qr, Gr, ni) {
              const ji = q() === 18 ? Ye() : void 0, Eo = cU();
              return tn(h.createJSDocTemplateTag(qr, ji, Eo, Pf(Dn, Z(), Gr, ni)), Dn);
            }
            function bS(Dn) {
              return q() === Dn ? (fn(), !0) : !1;
            }
            function sP() {
              let Dn = v0();
              for (Sa(22) && wn(23); Sa(24); ) {
                const qr = v0();
                Sa(22) && wn(23), Dn = E_(Dn, qr);
              }
              return Dn;
            }
            function v0(Dn) {
              if (!qu(q()))
                return Uc(79, !Dn, Dn || _.Identifier_expected);
              an++;
              const qr = t.getTokenPos(), Gr = t.getTextPos(), ni = q(), ji = bu(t.getTokenValue()), Eo = tn(O(ji, ni), qr, Gr);
              return fn(), Eo;
            }
          }
        })(I2 = e.JSDocParser || (e.JSDocParser = {}));
      })(Bv || (Bv = {})), ((e) => {
        function t(L, I, O, k) {
          if (k = k || D.shouldAssert(2), h(L, I, O, k), Nce(O))
            return L;
          if (L.statements.length === 0)
            return Bv.parseSourceFile(L.fileName, I, L.languageVersion, void 0, !0, L.scriptKind, L.setExternalModuleIndicator);
          const B = L;
          D.assert(!B.hasBeenIncrementallyParsed), B.hasBeenIncrementallyParsed = !0, Bv.fixupParentReferences(B);
          const V = L.text, H = b(L), te = d(L, O);
          h(L, I, te, k), D.assert(te.span.start <= O.span.start), D.assert(eu(te.span) === eu(O.span)), D.assert(eu(mI(te)) === eu(mI(O)));
          const X = mI(te).length - te.span.length;
          f(B, te.span.start, eu(te.span), eu(mI(te)), X, V, I, k);
          const Y = Bv.parseSourceFile(L.fileName, I, L.languageVersion, H, !0, L.scriptKind, L.setExternalModuleIndicator);
          return Y.commentDirectives = r(L.commentDirectives, Y.commentDirectives, te.span.start, eu(te.span), X, V, I, k), Y.impliedNodeFormat = L.impliedNodeFormat, Y;
        }
        e.updateSourceFile = t;
        function r(L, I, O, k, B, V, H, te) {
          if (!L)
            return I;
          let X, Y = !1;
          for (const de of L) {
            const { range: ne, type: ye } = de;
            if (ne.end < O)
              X = Bn(X, de);
            else if (ne.pos > k) {
              P();
              const ie = {
                range: { pos: ne.pos + B, end: ne.end + B },
                type: ye
              };
              X = Bn(X, ie), te && D.assert(V.substring(ne.pos, ne.end) === H.substring(ie.range.pos, ie.range.end));
            }
          }
          return P(), X;
          function P() {
            Y || (Y = !0, X ? I && X.push(...I) : X = I);
          }
        }
        function i(L, I, O, k, B, 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), Bm(X, X.pos + O, X.end + O), V && o(X) && D.assert(Y === B.substring(X.pos, X.end)), Ra(X, H, te), bf(X))
              for (const P of X.jsDoc)
                H(P);
            l(X, V);
          }
          function te(X) {
            X._children = void 0, Bm(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, B) {
          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 + B : Math.min(L.end, k);
          D.assert(V <= H), L.parent && (D.assertGreaterThanOrEqual(V, L.parent.pos), D.assertLessThanOrEqual(H, L.parent.end)), Bm(L, V, H);
        }
        function l(L, I) {
          if (I) {
            let O = L.pos;
            const k = (B) => {
              D.assert(B.pos >= O), O = B.end;
            };
            if (bf(L))
              for (const B of L.jsDoc)
                k(B);
            Ra(L, k), D.assert(O <= L.end);
          }
        }
        function f(L, I, O, k, B, V, H, te) {
          X(L);
          return;
          function X(P) {
            if (D.assert(P.pos <= P.end), P.pos > O) {
              i(P, !1, B, V, H, te);
              return;
            }
            const de = P.end;
            if (de >= I) {
              if (P.intersectsChange = !0, P._children = void 0, s(P, I, O, k, B), Ra(P, X, Y), bf(P))
                for (const ne of P.jsDoc)
                  X(ne);
              l(P, te);
              return;
            }
            D.assert(de < I);
          }
          function Y(P) {
            if (D.assert(P.pos <= P.end), P.pos > O) {
              i(P, !0, B, V, H, te);
              return;
            }
            const de = P.end;
            if (de >= I) {
              P.intersectsChange = !0, P._children = void 0, s(P, I, O, k, B);
              for (const ne of P)
                X(ne);
              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 B = _l(k, eu(I.span)), V = I.newLength + (I.span.start - k);
          return PR(B, V);
        }
        function y(L, I) {
          let O = L, k;
          if (Ra(L, V), k) {
            const H = B(k);
            H.pos > O.pos && (O = H);
          }
          return O;
          function B(H) {
            for (; ; ) {
              const te = Wz(H);
              if (te)
                H = te;
              else
                return H;
            }
          }
          function V(H) {
            if (!xc(H))
              if (H.pos <= I) {
                if (H.pos >= O.pos && (O = H), I < H.end)
                  return Ra(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 B = L.text;
          if (O && (D.assert(B.length - O.span.length + O.newLength === I.length), k || D.shouldAssert(3))) {
            const V = B.substr(0, O.span.start), H = I.substr(0, O.span.start);
            D.assert(V === H);
            const te = B.substring(eu(O.span), B.length), X = I.substring(eu(mI(O)), I.length);
            D.assert(te === X);
          }
        }
        function b(L) {
          let I = L.statements, O = 0;
          D.assert(O < I.length);
          let k = I[O], B = -1;
          return {
            currentNode(H) {
              return H !== B && (k && k.end === H && O < I.length - 1 && (O++, k = I[O]), (!k || k.pos !== H) && V(H)), B = H, D.assert(!k || k.pos === H), k;
            }
          };
          function V(H) {
            I = void 0, O = -1, k = void 0, Ra(L, te, X);
            return;
            function te(Y) {
              return H >= Y.pos && H < Y.end ? (Ra(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 Ra(de, te, X), !0;
                  }
                }
              return !1;
            }
          }
        }
        e.createSyntaxCursor = b;
        let A;
        ((L) => {
          L[L.Value = -1] = "Value";
        })(A || (A = {}));
      })(K7 || (K7 = {})), X7 = /* @__PURE__ */ new Map(), V_e = /^\/\/\/\s*<(\S+)\s.*?\/>/im, j_e = /^\/\/\/?\s*@(\S+)\s*(.*)\s*$/im;
    }
  });
  function Y7(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 DC() {
    return ype || (ype = Y7(pg));
  }
  function UJ(e) {
    return H_e(e, Os);
  }
  function H_e(e, t) {
    const r = Do(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 $7(e, t, r) {
    return fpe(e, o1(t || ""), r);
  }
  function W_e(e, t = "", r) {
    if (t = o1(t), ba(t, "-"))
      return;
    if (e.type === "listOrElement" && !uu(t, ","))
      return NT(e, t, r);
    if (t === "")
      return [];
    const i = t.split(",");
    switch (e.element.type) {
      case "number":
        return fa(i, (o) => NT(e.element, parseInt(o), r));
      case "string":
        return fa(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 fa(i, (o) => $7(e.element, o, r));
    }
  }
  function z_e(e) {
    return e.name;
  }
  function VJ(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 = nI(e, t.optionDeclarations, z_e);
    return s ? r(t.unknownDidYouMeanDiagnostic, i || e, s.name) : r(t.unknownOptionDiagnostic, i || e);
  }
  function jJ(e, t, r) {
    const i = {};
    let o;
    const s = [], l = [];
    return f(t), {
      options: i,
      watchOptions: o,
      fileNames: s,
      errors: l
    };
    function f(y) {
      let h = 0;
      for (; h < y.length; ) {
        const b = y[h];
        if (h++, b.charCodeAt(0) === 64)
          d(b.slice(1));
        else if (b.charCodeAt(0) === 45) {
          const A = b.slice(b.charCodeAt(1) === 45 ? 2 : 1), L = WJ(e.getOptionsNameMap, A, !0);
          if (L)
            h = q_e(y, h, e, L, i, l);
          else {
            const I = WJ(a8.getOptionsNameMap, A, !0);
            I ? h = q_e(y, h, a8, I, o || (o = {}), l) : l.push(VJ(A, e, Os, b));
          }
        } else
          s.push(b);
      }
    }
    function d(y) {
      const h = qO(y, r || ((L) => ql.readFile(L)));
      if (!Ua(h)) {
        l.push(h);
        return;
      }
      const b = [];
      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 ? (b.push(h.substring(L + 1, A)), A++) : l.push(Os(_.Unterminated_quoted_string_in_response_file_0, y));
        } else {
          for (; h.charCodeAt(A) > 32; )
            A++;
          b.push(h.substring(L, A));
        }
      }
      f(b);
    }
  }
  function q_e(e, t, r, i, o, s) {
    if (i.isTSConfigOnly) {
      const l = e[t];
      l === "null" ? (o[i.name] = void 0, t++) : i.type === "boolean" ? l === "false" ? (o[i.name] = NT(i, !1, s), t++) : (l === "true" && t++, s.push(Os(_.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line, i.name))) : (s.push(Os(_.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line, i.name)), l && !ba(l, "-") && t++);
    } else if (!e[t] && i.type !== "boolean" && s.push(Os(r.optionTypeMismatchDiagnostic, i.name, Bk(i))), e[t] !== "null")
      switch (i.type) {
        case "number":
          o[i.name] = NT(i, parseInt(e[t]), s), t++;
          break;
        case "boolean":
          const l = e[t];
          o[i.name] = NT(i, l !== "false", s), (l === "false" || l === "true") && t++;
          break;
        case "string":
          o[i.name] = NT(i, e[t] || "", s), t++;
          break;
        case "list":
          const f = W_e(i, e[t], s);
          o[i.name] = f || [], f && t++;
          break;
        case "listOrElement":
          D.fail("listOrElement not supported here");
          break;
        default:
          o[i.name] = $7(i, e[t], s), t++;
          break;
      }
    else
      o[i.name] = void 0, t++;
    return t;
  }
  function VPe(e, t) {
    return jJ(i8, e, t);
  }
  function HJ(e, t) {
    return WJ(DC, e, t);
  }
  function WJ(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 J_e() {
    return bpe || (bpe = Y7(o5));
  }
  function jPe(e) {
    const { options: t, watchOptions: r, fileNames: i, errors: o } = jJ(Tpe, e), s = t;
    return i.length === 0 && i.push("."), s.clean && s.force && o.push(Os(_.Options_0_and_1_cannot_be_combined, "clean", "force")), s.clean && s.verbose && o.push(Os(_.Options_0_and_1_cannot_be_combined, "clean", "verbose")), s.clean && s.watch && o.push(Os(_.Options_0_and_1_cannot_be_combined, "clean", "watch")), s.watch && s.dry && o.push(Os(_.Options_0_and_1_cannot_be_combined, "watch", "dry")), { buildOptions: s, watchOptions: r, projects: i, errors: o };
  }
  function HPe(e, ...t) {
    return Os.apply(void 0, arguments).messageText;
  }
  function WO(e, t, r, i, o, s) {
    const l = qO(e, (y) => r.readFile(y));
    if (!Ua(l)) {
      r.onUnRecoverableConfigFileDiagnostic(l);
      return;
    }
    const f = HO(e, l), d = r.getCurrentDirectory();
    return f.path = js(e, d, Zl(r.useCaseSensitiveFileNames)), f.resolvedPath = f.path, f.originalFileName = f.fileName, KO(f, r, Da(_i(e), d), t, Da(e, d), void 0, s, i, o);
  }
  function zO(e, t) {
    const r = qO(e, t);
    return Ua(r) ? zJ(e, r) : { config: {}, error: r };
  }
  function zJ(e, t) {
    const r = HO(e, t);
    return {
      config: Z_e(r, r.parseDiagnostics, !1, void 0),
      error: r.parseDiagnostics.length ? r.parseDiagnostics[0] : void 0
    };
  }
  function K_e(e, t) {
    const r = qO(e, t);
    return Ua(r) ? HO(e, r) : { fileName: e, parseDiagnostics: [r] };
  }
  function qO(e, t) {
    let r;
    try {
      r = t(e);
    } catch (i) {
      return Os(_.Cannot_read_file_0_Colon_1, e, i.message);
    }
    return r === void 0 ? Os(_.Cannot_read_file_0, e) : r;
  }
  function Q7(e) {
    return t1(e, z_e);
  }
  function X_e() {
    return Spe || (Spe = Y7(t8));
  }
  function Y_e() {
    return xpe || (xpe = Q7(pg));
  }
  function $_e() {
    return Ape || (Ape = Q7(t8));
  }
  function Q_e() {
    return Cpe || (Cpe = Q7(s5));
  }
  function WPe() {
    return pK === void 0 && (pK = {
      name: void 0,
      type: "object",
      elementOptions: Q7([
        {
          name: "compilerOptions",
          type: "object",
          elementOptions: Y_e(),
          extraKeyDiagnostics: i8
        },
        {
          name: "watchOptions",
          type: "object",
          elementOptions: $_e(),
          extraKeyDiagnostics: a8
        },
        {
          name: "typeAcquisition",
          type: "object",
          elementOptions: Q_e(),
          extraKeyDiagnostics: _K
        },
        o8,
        {
          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
        },
        QO
      ])
    }), pK;
  }
  function Z_e(e, t, r, i) {
    var o;
    const s = (o = e.statements[0]) == null ? void 0 : o.expression, l = r ? WPe() : void 0;
    if (s && s.kind !== 207) {
      if (t.push(od(e, s, _.The_root_value_of_a_0_file_must_be_an_object, du(e.fileName) === "jsconfig.json" ? "jsconfig.json" : "tsconfig.json")), Ou(s)) {
        const f = cn(s.elements, xs);
        if (f)
          return JO(e, f, t, !0, l, i);
      }
      return {};
    }
    return JO(e, s, t, !0, l, i);
  }
  function epe(e, t) {
    var r;
    return JO(e, (r = e.statements[0]) == null ? void 0 : r.expression, t, !0, void 0, void 0);
  }
  function JO(e, t, r, i, o, s) {
    if (!t)
      return i ? {} : void 0;
    return y(t, o);
    function l(b) {
      return o && o.elementOptions === b;
    }
    function f(b, A, L, I) {
      const O = i ? {} : void 0;
      for (const k of b.properties) {
        if (k.kind !== 299) {
          r.push(od(e, k, _.Property_assignment_expected));
          continue;
        }
        k.questionToken && r.push(od(e, k.questionToken, _.The_0_modifier_can_only_be_used_in_TypeScript_files, "?")), h(k.name) || r.push(od(e, k.name, _.String_literal_with_double_quotes_expected));
        const B = ZR(k.name) ? void 0 : DA(k.name), V = B && ta(B), H = V && A ? A.get(V) : void 0;
        V && L && !H && (A ? r.push(VJ(V, L, (X, Y, P) => od(e, k.name, X, Y, P))) : r.push(od(e, k.name, L.unknownOptionDiagnostic, V)));
        const te = y(k.initializer, H);
        if (typeof V < "u" && (i && (O[V] = te), s && (I || l(A)))) {
          const X = Z7(H, te);
          I ? X && s.onSetValidOptionKeyValueInParent(I, H, te) : l(A) && (X ? s.onSetValidOptionKeyValueInRoot(V, k.name, te, k.initializer) : H || s.onSetUnknownOptionKeyValueInRoot(V, k.name, te, k.initializer));
        }
      }
      return O;
    }
    function d(b, A) {
      if (!i) {
        b.forEach((L) => y(L, A));
        return;
      }
      return yn(b.map((L) => y(L, A)), (L) => L !== void 0);
    }
    function y(b, A) {
      let L;
      switch (b.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(b) || r.push(od(e, b, _.String_literal_with_double_quotes_expected)), O(A && Ua(A.type) && A.type !== "string" && (A.type !== "listOrElement" || Ua(A.element.type) && A.element.type !== "string"));
          const k = b.text;
          if (A && D.assert(A.type !== "listOrElement" || A.element.type === "string", "Only string or array of string is handled for now"), A && !Ua(A.type)) {
            const V = A;
            V.type.has(k.toLowerCase()) || (r.push(H_e(V, (H, te, X) => od(e, b, 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(b.text));
        case 221:
          if (b.operator !== 40 || b.operand.kind !== 8)
            break;
          return O(A && A.type !== "number" && (A.type !== "listOrElement" || A.element.type !== "number")), I(-Number(b.operand.text));
        case 207:
          O(A && A.type !== "object" && (A.type !== "listOrElement" || A.element.type !== "object"));
          const B = b;
          if (A) {
            const { elementOptions: V, extraKeyDiagnostics: H, name: te } = A;
            return I(f(B, V, H, te));
          } else
            return I(f(B, void 0, void 0, void 0));
        case 206:
          return O(A && A.type !== "list" && A.type !== "listOrElement"), I(d(b.elements, A && A.element));
      }
      A ? O(!0) : r.push(od(e, b, _.Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal));
      return;
      function I(k) {
        var B;
        if (!L) {
          const V = (B = A == null ? void 0 : A.extraValidation) == null ? void 0 : B.call(A, k);
          if (V) {
            r.push(od(e, b, ...V));
            return;
          }
        }
        return k;
      }
      function O(k) {
        k && (r.push(od(e, b, _.Compiler_option_0_requires_a_value_of_type_1, A.name, Bk(A))), L = !0);
      }
    }
    function h(b) {
      return Go(b) && a3(b, e);
    }
  }
  function Bk(e) {
    return e.type === "listOrElement" ? `${Bk(e.element)} or Array` : e.type === "list" ? "Array" : Ua(e.type) ? e.type : "string";
  }
  function Z7(e, t) {
    if (e) {
      if (RC(t))
        return !0;
      if (e.type === "list")
        return Ba(t);
      if (e.type === "listOrElement")
        return Ba(t) || Z7(e.element, t);
      const r = Ua(e.type) ? e.type : "string";
      return typeof t === r;
    }
    return !1;
  }
  function zPe(e, t, r) {
    var i, o, s;
    const l = Zl(r.useCaseSensitiveFileNames), f = en(yn(e.fileNames, (o = (i = e.options.configFile) == null ? void 0 : i.configFileSpecs) != null && o.validatedIncludeSpecs ? JPe(t, e.options.configFile.configFileSpecs.validatedIncludeSpecs, e.options.configFile.configFileSpecs.validatedExcludeSpecs, r) : r1), (b) => AR(Da(t, r.getCurrentDirectory()), Da(b, r.getCurrentDirectory()), l)), d = KJ(e.options, { configFilePath: Da(t, r.getCurrentDirectory()), useCaseSensitiveFileNames: r.useCaseSensitiveFileNames }), y = e.watchOptions && KPe(e.watchOptions);
    return {
      compilerOptions: {
        ...qJ(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 && qJ(y),
      references: en(e.projectReferences, (b) => ({ ...b, path: b.originalPath ? b.originalPath : "", originalPath: void 0 })),
      files: Ie(f) ? f : void 0,
      ...(s = e.options.configFile) != null && s.configFileSpecs ? {
        include: qPe(e.options.configFile.configFileSpecs.validatedIncludeSpecs),
        exclude: e.options.configFile.configFileSpecs.validatedExcludeSpecs
      } : {},
      compileOnSave: e.compileOnSave ? !0 : void 0
    };
  }
  function qJ(e) {
    return {
      ...Do(e.entries()).reduce((t, r) => ({ ...t, [r[0]]: r[1] }), {})
    };
  }
  function qPe(e) {
    if (Ie(e)) {
      if (Ie(e) !== 1)
        return e;
      if (e[0] !== l5)
        return e;
    }
  }
  function JPe(e, t, r, i) {
    if (!t)
      return r1;
    const o = ok(e, r, t, i.useCaseSensitiveFileNames, i.getCurrentDirectory()), s = o.excludePattern && Dv(o.excludePattern, i.useCaseSensitiveFileNames), l = o.includeFilePattern && Dv(o.includeFilePattern, i.useCaseSensitiveFileNames);
    return l ? s ? (f) => !(l.test(f) && !s.test(f)) : (f) => !l.test(f) : s ? (f) => s.test(f) : r1;
  }
  function tpe(e) {
    switch (e.type) {
      case "string":
      case "number":
      case "boolean":
      case "object":
        return;
      case "list":
      case "listOrElement":
        return tpe(e.element);
      default:
        return e.type;
    }
  }
  function JJ(e, t) {
    return tf(t, (r, i) => {
      if (r === e)
        return i;
    });
  }
  function KJ(e, t) {
    return npe(e, DC(), t);
  }
  function KPe(e) {
    return npe(e, X_e());
  }
  function npe(e, { optionsNameMap: t }, r) {
    const i = /* @__PURE__ */ new Map(), o = r && Zl(r.useCaseSensitiveFileNames);
    for (const s in e)
      if (Rs(e, s)) {
        if (t.has(s) && (t.get(s).category === _.Command_line_Options || t.get(s).category === _.Output_Formatting))
          continue;
        const l = e[s], f = t.get(s.toLowerCase());
        if (f) {
          D.assert(f.type !== "listOrElement");
          const d = tpe(f);
          d ? f.type === "list" ? i.set(s, l.map((y) => JJ(y, d))) : i.set(s, JJ(l, d)) : r && f.isFilePath ? i.set(s, AR(r.configFilePath, Da(l, _i(r.configFilePath)), o)) : i.set(s, l);
        }
      }
    return i;
  }
  function XPe(e, t) {
    const r = rpe(e);
    return o();
    function i(s) {
      return Array(s + 1).join(" ");
    }
    function o() {
      const s = [], l = i(2);
      return r5.forEach((f) => {
        if (!r.has(f.name))
          return;
        const d = r.get(f.name), y = rK(f);
        d !== y ? s.push(`${l}${f.name}: ${d}`) : Rs(c5, f.name) && s.push(`${l}${f.name}: ${y}`);
      }), s.join(t) + t;
    }
  }
  function rpe(e) {
    const t = k4(e, c5);
    return KJ(t);
  }
  function YPe(e, t, r) {
    const i = rpe(e);
    return l();
    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 l() {
      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 pg)
        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: `/* ${Ro(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(rK(O))},`, h.push({
            value: k,
            description: `/* ${O.description && Ro(O.description) || O.name} */`
          }), d = Math.max(k.length, d);
        }
      });
      const b = o(2), A = [];
      A.push("{"), A.push(`${b}"compilerOptions": {`), A.push(`${b}${b}/* ${Ro(_.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 && `${b}${b}${I}${O && o(d - I.length + 2) + O}`);
      }
      if (t.length) {
        A.push(`${b}},`), A.push(`${b}"files": [`);
        for (let L = 0; L < t.length; L++)
          A.push(`${b}${b}${JSON.stringify(t[L])}${L === t.length - 1 ? "" : ","}`);
        A.push(`${b}]`);
      } else
        A.push(`${b}}`);
      return A.push("}"), A.join(r) + r;
    }
  }
  function XJ(e, t) {
    const r = {}, i = DC().optionsNameMap;
    for (const o in e)
      Rs(e, o) && (r[o] = $Pe(i.get(o.toLowerCase()), e[o], t));
    return r.configFilePath && (r.configFilePath = t(r.configFilePath)), r;
  }
  function $Pe(e, t, r) {
    if (e && !RC(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 QPe(e, t, r, i, o, s, l, f, d) {
    return ipe(e, void 0, t, r, i, d, o, s, l, f);
  }
  function KO(e, t, r, i, o, s, l, f, d) {
    var y, h;
    (y = yi) == null || y.push(yi.Phase.Parse, "parseJsonSourceFileConfigFileContent", { path: e.fileName });
    const b = ipe(void 0, e, t, r, i, d, o, s, l, f);
    return (h = yi) == null || h.pop(), b;
  }
  function YJ(e, t) {
    t && Object.defineProperty(e, "configFile", { enumerable: !1, writable: !1, value: t });
  }
  function RC(e) {
    return e == null;
  }
  function $J(e, t) {
    return _i(Da(e, t));
  }
  function ipe(e, t, r, i, o = {}, s, l, f = [], d = [], y) {
    D.assert(e === void 0 && t !== void 0 || e !== void 0 && t === void 0);
    const h = [], b = spe(e, t, r, i, l, f, h, y), { raw: A } = b, L = k4(o, b.options || {}), I = s && b.watchOptions ? k4(s, b.watchOptions) : b.watchOptions || s;
    L.configFilePath = l && Jl(l);
    const O = B();
    t && (t.configFileSpecs = O), YJ(L, t);
    const k = Wo(l ? $J(l, i) : i);
    return {
      options: L,
      watchOptions: I,
      fileNames: V(k),
      projectReferences: H(k),
      typeAcquisition: b.typeAcquisition || t5(),
      raw: A,
      errors: h,
      wildcardDirectories: c4e(O, k, r.useCaseSensitiveFileNames),
      compileOnSave: !!A.compileOnSave
    };
    function B() {
      const de = Y("references", (Te) => typeof Te == "object", "object"), ne = te(X("files"));
      if (ne) {
        const Te = de === "no-prop" || Ba(de) && de.length === 0, ee = Rs(A, "extends");
        if (ne.length === 0 && Te && !ee)
          if (t) {
            const $e = l || "tsconfig.json", Ue = _.The_files_list_in_config_file_0_is_empty, Be = sn(tN(t, "files"), (Oe) => Oe.initializer), We = Be ? od(t, Be, Ue, $e) : Os(Ue, $e);
            h.push(We);
          } else
            P(_.The_files_list_in_config_file_0_is_empty, l || "tsconfig.json");
      }
      let ye = te(X("include"));
      const ie = X("exclude");
      let W = !1, ce = te(ie);
      if (ie === "no-prop" && A.compilerOptions) {
        const Te = A.compilerOptions.outDir, ee = A.compilerOptions.declarationDir;
        (Te || ee) && (ce = [Te, ee].filter(($e) => !!$e));
      }
      ne === void 0 && ye === void 0 && (ye = [l5], W = !0);
      let pe, ve;
      return ye && (pe = gpe(ye, h, !0, t, "include")), ce && (ve = gpe(ce, h, !1, t, "exclude")), {
        filesSpecs: ne,
        includeSpecs: ye,
        excludeSpecs: ce,
        validatedFilesSpec: yn(ne, Ua),
        validatedIncludeSpecs: pe,
        validatedExcludeSpecs: ve,
        pathPatterns: void 0,
        isDefaultIncludeSpec: W
      };
    }
    function V(de) {
      const ne = $O(O, de, L, r, d);
      return ope(ne, XO(A), f) && h.push(ape(O, l)), ne;
    }
    function H(de) {
      let ne;
      const ye = Y("references", (ie) => typeof ie == "object", "object");
      if (Ba(ye))
        for (const ie of ye)
          typeof ie.path != "string" ? P(_.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string") : (ne || (ne = [])).push({
            path: Da(ie.path, de),
            originalPath: ie.path,
            prepend: ie.prepend,
            circular: ie.circular
          });
      return ne;
    }
    function te(de) {
      return Ba(de) ? de : void 0;
    }
    function X(de) {
      return Y(de, Ua, "string");
    }
    function Y(de, ne, ye) {
      if (Rs(A, de) && !RC(A[de]))
        if (Ba(A[de])) {
          const ie = A[de];
          return !t && !Rn(ie, ne) && h.push(Os(_.Compiler_option_0_requires_a_value_of_type_1, de, ye)), ie;
        } else
          return P(_.Compiler_option_0_requires_a_value_of_type_1, de, "Array"), "not-array";
      return "no-prop";
    }
    function P(de, ne, ye) {
      t || h.push(Os(de, ne, ye));
    }
  }
  function ZPe(e) {
    return e.code === _.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code;
  }
  function ape({ includeSpecs: e, excludeSpecs: t }, r) {
    return Os(_.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 ope(e, t, r) {
    return e.length === 0 && t && (!r || r.length === 0);
  }
  function XO(e) {
    return !Rs(e, "files") && !Rs(e, "references");
  }
  function QJ(e, t, r, i, o) {
    const s = i.length;
    return ope(e, o) ? i.push(ape(r, t)) : ki(i, (l) => !ZPe(l)), s !== i.length;
  }
  function e4e(e) {
    return !!e.options;
  }
  function spe(e, t, r, i, o, s, l, f) {
    var d;
    i = Jl(i);
    const y = Da(o || "", i);
    if (s.indexOf(y) >= 0)
      return l.push(Os(_.Circularity_detected_while_resolving_configuration_Colon_0, [...s, y].join(" -> "))), { raw: e || epe(t, l) };
    const h = e ? t4e(e, r, i, o, l) : n4e(t, r, i, o, l);
    if ((d = h.options) != null && d.paths && (h.options.pathsBasePath = i), h.extendedConfigPath) {
      s = s.concat([y]);
      const A = { options: {} };
      Ua(h.extendedConfigPath) ? b(A, h.extendedConfigPath) : h.extendedConfigPath.forEach((L) => b(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 = Do(A.extendedSourceFiles.keys())), h.options = iR(A.options, h.options), h.watchOptions = h.watchOptions && A.watchOptions ? iR(A.watchOptions, h.watchOptions) : h.watchOptions || A.watchOptions;
    }
    return h;
    function b(A, L) {
      const I = r4e(t, L, r, s, l, f, A);
      if (I && e4e(I)) {
        const O = I.raw;
        let k;
        const B = (V) => {
          O[V] && (A[V] = en(O[V], (H) => Cm(H) ? H : Pi(k || (k = cI(_i(L), i, Zl(r.useCaseSensitiveFileNames))), H)));
        };
        B("include"), B("exclude"), B("files"), O.compileOnSave !== void 0 && (A.compileOnSave = O.compileOnSave), iR(A.options, I.options), A.watchOptions = A.watchOptions && I.watchOptions ? iR({}, A.watchOptions, I.watchOptions) : A.watchOptions || I.watchOptions;
      }
    }
  }
  function t4e(e, t, r, i, o) {
    Rs(e, "excludes") && o.push(Os(_.Unknown_option_excludes_Did_you_mean_exclude));
    const s = lpe(e.compilerOptions, r, o, i), l = upe(e.typeAcquisition, r, o, i), f = s4e(e.watchOptions, r, o);
    e.compileOnSave = i4e(e, r, o);
    let d;
    if (e.extends || e.extends === "")
      if (!Z7(o8, e.extends))
        o.push(Os(_.Compiler_option_0_requires_a_value_of_type_1, "extends", Bk(o8)));
      else {
        const y = i ? $J(i, r) : r;
        if (Ua(e.extends))
          d = e5(e.extends, t, y, o, Os);
        else {
          d = [];
          for (const h of e.extends)
            Ua(h) ? d = Bn(d, e5(h, t, y, o, Os)) : o.push(Os(_.Compiler_option_0_requires_a_value_of_type_1, "extends", Bk(o8.element)));
        }
      }
    return { raw: e, options: s, watchOptions: f, typeAcquisition: l, extendedConfigPath: d };
  }
  function n4e(e, t, r, i, o) {
    const s = cpe(i);
    let l, f, d, y;
    const b = Z_e(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 = l || (l = t5(i));
            break;
          default:
            D.fail("Unknown option");
        }
        O[L.name] = eK(L, r, I);
      },
      onSetValidOptionKeyValueInRoot(A, L, I, O) {
        switch (A) {
          case "extends":
            const k = i ? $J(i, r) : r;
            if (Ua(I))
              d = e5(I, t, k, o, (B, V) => od(e, O, B, V));
            else {
              d = [];
              for (let B = 0; B < I.length; B++) {
                const V = I[B];
                Ua(V) && (d = Bn(d, e5(V, t, k, o, (H, te) => od(e, O.elements[B], H, te))));
              }
            }
            return;
        }
      },
      onSetUnknownOptionKeyValueInRoot(A, L, I, O) {
        A === "excludes" && o.push(od(e, L, _.Unknown_option_excludes_Did_you_mean_exclude)), cn(r5, (k) => k.name === A) && (y = Bn(y, L));
      }
    });
    return l || (l = t5(i)), y && b && b.compilerOptions === void 0 && o.push(od(e, y[0], _._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file, DA(y[0]))), { raw: b, options: s, watchOptions: f, typeAcquisition: l, extendedConfigPath: d };
  }
  function e5(e, t, r, i, o) {
    if (e = Jl(e), Cm(e) || ba(e, "./") || ba(e, "../")) {
      let l = Da(e, r);
      if (!t.fileExists(l) && !tl(l, ".json") && (l = `${l}.json`, !t.fileExists(l))) {
        i.push(o(_.File_0_not_found, e));
        return;
      }
      return l;
    }
    const s = Hpe(e, Pi(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 r4e(e, t, r, i, o, s, l) {
    var f;
    const d = r.useCaseSensitiveFileNames ? t : D_(t);
    let y, h, b;
    if (s && (y = s.get(d)) ? { extendedResult: h, extendedConfig: b } = y : (h = K_e(t, (A) => r.readFile(A)), h.parseDiagnostics.length || (b = spe(void 0, h, r, _i(t), du(t), i, o, s)), s && s.set(d, { extendedResult: h, extendedConfig: b })), e && (((f = l.extendedSourceFiles) != null ? f : l.extendedSourceFiles = /* @__PURE__ */ new Set()).add(h.fileName), h.extendedSourceFiles))
      for (const A of h.extendedSourceFiles)
        l.extendedSourceFiles.add(A);
    if (h.parseDiagnostics.length) {
      o.push(...h.parseDiagnostics);
      return;
    }
    return b;
  }
  function i4e(e, t, r) {
    if (!Rs(e, QO.name))
      return !1;
    const i = YO(QO, e.compileOnSave, t, r);
    return typeof i == "boolean" && i;
  }
  function a4e(e, t, r) {
    const i = [];
    return { options: lpe(e, t, i, r), errors: i };
  }
  function o4e(e, t, r) {
    const i = [];
    return { options: upe(e, t, i, r), errors: i };
  }
  function cpe(e) {
    return e && du(e) === "jsconfig.json" ? { allowJs: !0, maxNodeModuleJsDepth: 2, allowSyntheticDefaultImports: !0, skipLibCheck: !0, noEmit: !0 } : {};
  }
  function lpe(e, t, r, i) {
    const o = cpe(i);
    return ZJ(Y_e(), e, t, o, i8, r), i && (o.configFilePath = Jl(i)), o;
  }
  function t5(e) {
    return { enable: !!e && du(e) === "jsconfig.json", include: [], exclude: [] };
  }
  function upe(e, t, r, i) {
    const o = t5(i);
    return ZJ(Q_e(), e, t, o, _K, r), o;
  }
  function s4e(e, t, r) {
    return ZJ($_e(), e, t, void 0, a8, r);
  }
  function ZJ(e, t, r, i, o, s) {
    if (t) {
      for (const l in t) {
        const f = e.get(l);
        f ? (i || (i = {}))[f.name] = YO(f, t[l], r, s) : s.push(VJ(l, o, Os));
      }
      return i;
    }
  }
  function YO(e, t, r, i) {
    if (Z7(e, t)) {
      const o = e.type;
      if (o === "list" && Ba(t))
        return _pe(e, t, r, i);
      if (o === "listOrElement")
        return Ba(t) ? _pe(e, t, r, i) : YO(e.element, t, r, i);
      if (!Ua(e.type))
        return fpe(e, t, i);
      const s = NT(e, t, i);
      return RC(s) ? s : dpe(e, r, s);
    } else
      i.push(Os(_.Compiler_option_0_requires_a_value_of_type_1, e.name, Bk(e)));
  }
  function eK(e, t, r) {
    if (!RC(r)) {
      if (e.type === "listOrElement" && !Ba(r))
        return eK(e.element, t, r);
      if (e.type === "list" || e.type === "listOrElement") {
        const i = e;
        return i.element.isFilePath || !Ua(i.element.type) ? yn(en(r, (o) => eK(i.element, t, o)), (o) => i.listPreserveFalsyValues ? !0 : !!o) : r;
      } else if (!Ua(e.type))
        return e.type.get(Ua(r) ? r.toLowerCase() : r);
      return dpe(e, t, r);
    }
  }
  function dpe(e, t, r) {
    return e.isFilePath && (r = Da(r, t), r === "" && (r = ".")), r;
  }
  function NT(e, t, r) {
    var i;
    if (RC(t))
      return;
    const o = (i = e.extraValidation) == null ? void 0 : i.call(e, t);
    if (!o)
      return t;
    r.push(Os(...o));
  }
  function fpe(e, t, r) {
    if (RC(t))
      return;
    const i = t.toLowerCase(), o = e.type.get(i);
    if (o !== void 0)
      return NT(e, o, r);
    r.push(UJ(e));
  }
  function _pe(e, t, r, i) {
    return yn(en(t, (o) => YO(e.element, o, r, i)), (o) => e.listPreserveFalsyValues ? !0 : !!o);
  }
  function $O(e, t, r, i, o = rt) {
    t = Wo(t);
    const s = Zl(i.useCaseSensitiveFileNames), l = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), { validatedFilesSpec: y, validatedIncludeSpecs: h, validatedExcludeSpecs: b } = e, A = sk(r, o), L = XN(r, A);
    if (y)
      for (const B of y) {
        const V = Da(B, t);
        l.set(s(V), V);
      }
    let I;
    if (h && h.length > 0)
      for (const B of i.readDirectory(t, id(L), b, h, void 0)) {
        if (sl(B, ".json")) {
          if (!I) {
            const te = h.filter((Y) => tl(Y, ".json")), X = en(N3(te, t, "files"), (Y) => `^${Y}$`);
            I = X ? X.map((Y) => Dv(Y, i.useCaseSensitiveFileNames)) : rt;
          }
          if (Qi(I, (te) => te.test(B)) !== -1) {
            const te = s(B);
            !l.has(te) && !d.has(te) && d.set(te, B);
          }
          continue;
        }
        if (u4e(B, l, f, A, s))
          continue;
        d4e(B, f, A, s);
        const V = s(B);
        !l.has(V) && !f.has(V) && f.set(V, B);
      }
    const O = Do(l.values()), k = Do(f.values());
    return O.concat(k, Do(d.values()));
  }
  function ppe(e, t, r, i, o) {
    const { validatedFilesSpec: s, validatedIncludeSpecs: l, validatedExcludeSpecs: f } = t;
    if (!Ie(l) || !Ie(f))
      return !1;
    r = Wo(r);
    const d = Zl(i);
    if (s) {
      for (const y of s)
        if (d(Da(y, r)) === e)
          return !1;
    }
    return hpe(e, f, i, o, r);
  }
  function mpe(e) {
    const t = ba(e, "**/") ? 0 : e.indexOf("/**/");
    return t === -1 ? !1 : (tl(e, "/..") ? e.length : e.lastIndexOf("/../")) > t;
  }
  function n5(e, t, r, i) {
    return hpe(e, yn(t, (o) => !mpe(o)), r, i);
  }
  function hpe(e, t, r, i, o) {
    const s = ak(t, Pi(Wo(i), o), "exclude"), l = s && Dv(s, r);
    return l ? l.test(e) ? !0 : !gA(e) && l.test(wu(e)) : !1;
  }
  function gpe(e, t, r, i, o) {
    return e.filter((l) => {
      if (!Ua(l))
        return !1;
      const f = tK(l, r);
      return f !== void 0 && t.push(s(...f)), f === void 0;
    });
    function s(l, f) {
      const d = XM(i, o, f);
      return d ? od(i, d, l, f) : Os(l, f);
    }
  }
  function tK(e, t) {
    if (D.assert(typeof e == "string"), t && Lpe.test(e))
      return [_.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, e];
    if (mpe(e))
      return [_.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, e];
  }
  function c4e({ validatedIncludeSpecs: e, validatedExcludeSpecs: t }, r, i) {
    const o = ak(t, r, "exclude"), s = o && new RegExp(o, i ? "" : "i"), l = {};
    if (e !== void 0) {
      const f = [];
      for (const d of e) {
        const y = Wo(Pi(r, d));
        if (s && s.test(y))
          continue;
        const h = l4e(y, i);
        if (h) {
          const { key: b, flags: A } = h, L = l[b];
          (L === void 0 || L < A) && (l[b] = A, A === 1 && f.push(b));
        }
      }
      for (const d in l)
        if (Rs(l, d))
          for (const y of f)
            d !== y && gv(y, d, r, !i) && delete l[d];
    }
    return l;
  }
  function l4e(e, t) {
    const r = Ipe.exec(e);
    if (r) {
      const i = e.indexOf("?"), o = e.indexOf("*"), s = e.lastIndexOf(Ns);
      return {
        key: t ? r[0] : D_(r[0]),
        flags: i !== -1 && i < s || o !== -1 && o < s ? 1 : 0
      };
    }
    if (eq(e.substring(e.lastIndexOf(Ns) + 1)))
      return {
        key: $E(t ? e : D_(e)),
        flags: 1
      };
  }
  function u4e(e, t, r, i, o) {
    const s = ze(i, (l) => bl(e, l) ? l : void 0);
    if (!s)
      return !1;
    for (const l of s) {
      if (sl(e, l))
        return !1;
      const f = o(I1(e, l));
      if (t.has(f) || r.has(f)) {
        if (l === ".d.ts" && (sl(e, ".js") || sl(e, ".jsx")))
          continue;
        return !0;
      }
    }
    return !1;
  }
  function d4e(e, t, r, i) {
    const o = ze(r, (s) => bl(e, s) ? s : void 0);
    if (o)
      for (let s = o.length - 1; s >= 0; s--) {
        const l = o[s];
        if (sl(e, l))
          return;
        const f = i(I1(e, l));
        t.delete(f);
      }
  }
  function f4e(e) {
    const t = {};
    for (const r in e)
      if (Rs(e, r)) {
        const i = HJ(r);
        i !== void 0 && (t[r] = nK(e[r], i));
      }
    return t;
  }
  function nK(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 (!Ba(e))
          return nK(e, t.element);
      case "list":
        const r = t.element;
        return Ba(e) ? e.map((i) => nK(i, r)) : "";
      default:
        return tf(t.type, (i, o) => {
          if (i === e)
            return o;
        });
    }
  }
  function rK(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 rK(e.element);
      case "object":
        return {};
      default:
        const r = I4(e.type.keys());
        return r !== void 0 ? r : D.fail("Expected 'option.type' to have entries.");
    }
  }
  var QO, iK, Gk, aK, ZO, e8, t8, n8, r8, oK, r5, pg, sK, cK, lK, i5, a5, uK, dK, fK, o5, s5, ype, vpe, c5, i8, bpe, Epe, Tpe, _K, Spe, a8, xpe, Ape, Cpe, o8, pK, l5, Lpe, Ipe, _4e = C({
    "src/compiler/commandLineParser.ts"() {
      wa(), QO = {
        name: "compileOnSave",
        type: "boolean",
        defaultValueDescription: !1
      }, iK = new Map(Object.entries({
        preserve: 1,
        "react-native": 3,
        react: 2,
        "react-jsx": 4,
        "react-jsxdev": 5
      })), Gk = new Map(Ql(iK.entries(), ([e, t]) => ["" + t, e])), aK = [
        ["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"]
      ], ZO = aK.map((e) => e[0]), e8 = new Map(aK), t8 = [
        {
          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: tK
          },
          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: tK
          },
          category: _.Watch_and_Build_Modes,
          description: _.Remove_a_list_of_files_from_the_watch_mode_s_processing
        }
      ], n8 = [
        {
          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
        }
      ], r8 = {
        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
      }, oK = {
        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
      }, r5 = [
        {
          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
        },
        r8,
        oK,
        {
          name: "lib",
          type: "list",
          element: {
            name: "lib",
            type: e8,
            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: iK,
          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
        }
      ], pg = [
        ...n8,
        ...r5
      ], sK = pg.filter((e) => !!e.affectsSemanticDiagnostics), cK = pg.filter((e) => !!e.affectsEmit), lK = pg.filter((e) => !!e.affectsDeclarationPath), i5 = pg.filter((e) => !!e.affectsModuleResolution), a5 = pg.filter((e) => !!e.affectsSourceFile || !!e.affectsModuleResolution || !!e.affectsBindDiagnostics), uK = pg.filter((e) => !!e.affectsProgramStructure), dK = pg.filter((e) => Rs(e, "transpileOptionValue")), fK = [
        {
          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
        }
      ], o5 = [
        ...n8,
        ...fK
      ], s5 = [
        {
          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
        }
      ], vpe = {
        diagnostic: _.Compiler_option_0_may_only_be_used_with_build,
        getOptionsNameMap: J_e
      }, c5 = {
        module: 1,
        target: 3,
        strict: !0,
        esModuleInterop: !0,
        forceConsistentCasingInFileNames: !0,
        skipLibCheck: !0
      }, i8 = {
        alternateMode: vpe,
        getOptionsNameMap: DC,
        optionDeclarations: pg,
        unknownOptionDiagnostic: _.Unknown_compiler_option_0,
        unknownDidYouMeanDiagnostic: _.Unknown_compiler_option_0_Did_you_mean_1,
        optionTypeMismatchDiagnostic: _.Compiler_option_0_expects_an_argument
      }, Epe = {
        diagnostic: _.Compiler_option_0_may_not_be_used_with_build,
        getOptionsNameMap: DC
      }, Tpe = {
        alternateMode: Epe,
        getOptionsNameMap: J_e,
        optionDeclarations: o5,
        unknownOptionDiagnostic: _.Unknown_build_option_0,
        unknownDidYouMeanDiagnostic: _.Unknown_build_option_0_Did_you_mean_1,
        optionTypeMismatchDiagnostic: _.Build_option_0_requires_a_value_of_type_1
      }, _K = {
        optionDeclarations: s5,
        unknownOptionDiagnostic: _.Unknown_type_acquisition_option_0,
        unknownDidYouMeanDiagnostic: _.Unknown_type_acquisition_option_0_Did_you_mean_1
      }, a8 = {
        getOptionsNameMap: X_e,
        optionDeclarations: t8,
        unknownOptionDiagnostic: _.Unknown_watch_option_0,
        unknownDidYouMeanDiagnostic: _.Unknown_watch_option_0_Did_you_mean_1,
        optionTypeMismatchDiagnostic: _.Watch_option_0_requires_a_value_of_type_1
      }, o8 = {
        name: "extends",
        type: "listOrElement",
        element: {
          name: "extends",
          type: "string"
        },
        category: _.File_Management
      }, l5 = "**/*", Lpe = /(^|\/)\*\*\/?$/, Ipe = /^[^*?]*(?=\/[^/]*[*?])/;
    }
  });
  function _a(e) {
    e.trace(Kz.apply(void 0, arguments));
  }
  function Gv(e, t) {
    return !!e.traceResolution && t.trace !== void 0;
  }
  function NC(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 + Ns.length),
        version: i.version
      });
    }
    return t && { path: t.path, extension: t.ext, packageId: r, resolvedUsingTsExtension: t.resolvedUsingTsExtension };
  }
  function u5(e) {
    return NC(void 0, e);
  }
  function kpe(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 Dpe(e) {
    if (e)
      return D.assert(M3(e.extension)), { fileName: e.path, packageId: e.packageId };
  }
  function Rpe(e, t, r, i, o, s, l, f) {
    if (!l.resultFromCache && !l.compilerOptions.preserveSymlinks && t && r && !t.originalPath && !Pl(e)) {
      const { resolvedFileName: d, originalPath: y } = Ppe(t.path, l.host, l.traceEnabled);
      y && (t = { ...t, path: d, originalPath: y });
    }
    return Npe(t, r, i, o, s, l.resultFromCache, f);
  }
  function Npe(e, t, r, i, o, s, l) {
    return s ? (s.failedLookupLocations = OC(s.failedLookupLocations, r), s.affectingLocations = OC(s.affectingLocations, i), s.resolutionDiagnostics = OC(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: Uk(r),
      affectingLocations: Uk(i),
      resolutionDiagnostics: Uk(o),
      node10Result: l
    };
  }
  function Uk(e) {
    return e.length ? e : void 0;
  }
  function OC(e, t) {
    return t != null && t.length ? e != null && e.length ? (e.push(...t), e) : t : e;
  }
  function Ope(e, t, r, i) {
    if (!Rs(e, t)) {
      i.traceEnabled && _a(i.host, _.package_json_does_not_have_a_0_field, t);
      return;
    }
    const o = e[t];
    if (typeof o !== r || o === null) {
      i.traceEnabled && _a(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 d5(e, t, r, i) {
    const o = Ope(e, t, "string", i);
    if (o === void 0)
      return;
    if (!o) {
      i.traceEnabled && _a(i.host, _.package_json_had_a_falsy_0_field, t);
      return;
    }
    const s = Wo(Pi(r, o));
    return i.traceEnabled && _a(i.host, _.package_json_has_0_field_1_that_references_2, t, o, s), s;
  }
  function p4e(e, t, r) {
    return d5(e, "typings", t, r) || d5(e, "types", t, r);
  }
  function m4e(e, t, r) {
    return d5(e, "tsconfig", t, r);
  }
  function h4e(e, t, r) {
    return d5(e, "main", t, r);
  }
  function g4e(e, t) {
    const r = Ope(e, "typesVersions", "object", t);
    if (r !== void 0)
      return t.traceEnabled && _a(t.host, _.package_json_has_a_typesVersions_field_with_version_specific_path_mappings), r;
  }
  function y4e(e, t) {
    const r = g4e(e, t);
    if (r === void 0)
      return;
    if (t.traceEnabled)
      for (const l in r)
        Rs(r, l) && !mA.tryParse(l) && _a(t.host, _.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range, l);
    const i = f5(r);
    if (!i) {
      t.traceEnabled && _a(t.host, _.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0, me);
      return;
    }
    const { version: o, paths: s } = i;
    if (typeof s != "object") {
      t.traceEnabled && _a(t.host, _.Expected_type_of_0_field_in_package_json_to_be_1_got_2, `typesVersions['${o}']`, "object", typeof s);
      return;
    }
    return i;
  }
  function f5(e) {
    kK || (kK = new R_(De));
    for (const t in e) {
      if (!Rs(e, t))
        continue;
      const r = mA.tryParse(t);
      if (r !== void 0 && r.test(kK))
        return { version: t, paths: e[t] };
    }
  }
  function s8(e, t) {
    if (e.typeRoots)
      return e.typeRoots;
    let r;
    if (e.configFilePath ? r = _i(e.configFilePath) : t.getCurrentDirectory && (r = t.getCurrentDirectory()), r !== void 0)
      return v4e(r, t);
  }
  function v4e(e, t) {
    if (!t.directoryExists)
      return [Pi(e, wK)];
    let r;
    return Zh(Wo(e), (i) => {
      const o = Pi(i, wK);
      t.directoryExists(o) && (r || (r = [])).push(o);
    }), r;
  }
  function b4e(e, t, r) {
    const i = typeof r.useCaseSensitiveFileNames == "function" ? r.useCaseSensitiveFileNames() : r.useCaseSensitiveFileNames;
    return QE(e, t, !i) === 0;
  }
  function Ppe(e, t, r) {
    const i = O4e(e, t, r), o = b4e(e, i, t);
    return {
      resolvedFileName: o ? e : i,
      originalPath: o ? void 0 : e
    };
  }
  function mK(e, t, r, i, o, s, l) {
    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 = Gv(r, i);
    o && (r = o.commandLine.options);
    const d = t ? _i(t) : void 0;
    let y = d ? s == null ? void 0 : s.getFromDirectoryCache(e, l, d, o) : void 0;
    if (!y && d && !Pl(e) && (y = s == null ? void 0 : s.getFromNonRelativeNameCache(e, l, d, o)), y)
      return f && (_a(i, _.Resolving_type_reference_directive_0_containing_file_1, e, t), o && _a(i, _.Using_compiler_options_of_project_reference_redirect_0, o.sourceFile.fileName), _a(i, _.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1, e, d), te(y)), y;
    const h = s8(r, i);
    f && (t === void 0 ? h === void 0 ? _a(i, _.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set, e) : _a(i, _.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1, e, h) : h === void 0 ? _a(i, _.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set, e, t) : _a(i, _.Resolving_type_reference_directive_0_containing_file_1_root_directory_2, e, t, h), o && _a(i, _.Using_compiler_options_of_project_reference_redirect_0, o.sourceFile.fileName));
    const b = [], A = [];
    let L = hK(r);
    l === 99 && (yc(r) === 3 || yc(r) === 99) && (L |= 32);
    const I = L & 8 ? PC(r, !!(L & 32)) : [], O = [], k = {
      compilerOptions: r,
      host: i,
      traceEnabled: f,
      failedLookupLocations: b,
      affectingLocations: A,
      packageJsonInfoCache: s,
      features: L,
      conditions: I,
      requestContainingDirectory: d,
      reportDiagnostic: (P) => void O.push(P),
      isConfigLookup: !1,
      candidateIsFromPackageJsonField: !1
    };
    let B = X(), V = !0;
    B || (B = Y(), V = !1);
    let H;
    if (B) {
      const { fileName: P, packageId: de } = B;
      let ne = P, ye;
      r.preserveSymlinks || ({ resolvedFileName: ne, originalPath: ye } = Ppe(P, i, f)), H = {
        primary: V,
        resolvedFileName: ne,
        originalPath: ye,
        packageId: de,
        isExternalLibraryImport: Bx(P)
      };
    }
    return y = {
      resolvedTypeReferenceDirective: H,
      failedLookupLocations: Uk(b),
      affectingLocations: Uk(A),
      resolutionDiagnostics: Uk(O)
    }, d && (s == null || s.getOrCreateCacheForDirectory(d, o).set(e, l, y), Pl(e) || s == null || s.getOrCreateCacheForNonRelativeName(e, l, o).set(d, y)), f && te(y), y;
    function te(P) {
      var de;
      (de = P.resolvedTypeReferenceDirective) != null && de.resolvedFileName ? P.resolvedTypeReferenceDirective.packageId ? _a(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) : _a(i, _.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, e, P.resolvedTypeReferenceDirective.resolvedFileName, P.resolvedTypeReferenceDirective.primary) : _a(i, _.Type_reference_directive_0_was_not_resolved, e);
    }
    function X() {
      if (h && h.length)
        return f && _a(i, _.Resolving_with_primary_search_path_0, h.join(", ")), sn(h, (P) => {
          const de = Pi(P, e), ne = _i(de), ye = Kp(ne, i);
          return !ye && f && _a(i, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, ne), Dpe(Xpe(4, de, !ye, k));
        });
      f && _a(i, _.Root_directory_cannot_be_determined_skipping_primary_search_paths);
    }
    function Y() {
      const P = t && _i(t);
      if (P !== void 0) {
        f && _a(i, _.Looking_up_in_node_modules_folder_initial_location_0, P);
        let de;
        if (Pl(e)) {
          const { path: ne } = Wpe(P, e);
          de = h5(4, ne, !1, k, !0);
        } else {
          const ne = Qpe(4, e, P, k, void 0, void 0);
          de = ne && ne.value;
        }
        return Dpe(de);
      } else
        f && _a(i, _.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder);
    }
  }
  function hK(e) {
    let t = 0;
    switch (yc(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 PC(e, t) {
    const r = t || yc(e) === 100 ? ["import"] : ["require"];
    return e.noDtsResolution || r.push("types"), yc(e) !== 100 && r.push("node"), ma(r, e.customConditions);
  }
  function E4e(e, t, r, i, o) {
    const s = g5(o == null ? void 0 : o.getPackageJsonInfoCache(), i, r);
    return Zh(t, (l) => {
      if (du(l) !== "node_modules") {
        const f = Pi(l, "node_modules"), d = Pi(f, e);
        return Gx(d, !1, s);
      }
    });
  }
  function _5(e, t) {
    if (e.types)
      return e.types;
    const r = [];
    if (t.directoryExists && t.getDirectories) {
      const i = s8(e, t);
      if (i) {
        for (const o of i)
          if (t.directoryExists(o))
            for (const s of t.getDirectories(o)) {
              const l = Wo(s), f = Pi(o, l, "package.json");
              if (!(t.fileExists(f) && $I(f, t).typings === null)) {
                const y = du(l);
                y.charCodeAt(0) !== 46 && r.push(y);
              }
            }
      }
    }
    return r;
  }
  function gK(e) {
    var t;
    if (e === null || typeof e != "object")
      return "" + e;
    if (Ba(e))
      return `[${(t = e.map((i) => gK(i))) == null ? void 0 : t.join(",")}]`;
    let r = "{";
    for (const i in e)
      Rs(e, i) && (r += `${i}: ${gK(e[i])}`);
    return r + "}";
  }
  function yK(e, t) {
    return t.map((r) => gK(w3(e, r))).join("|") + (e.pathsBasePath ? `|${e.pathsBasePath}` : void 0);
  }
  function vK(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: l,
      update: f,
      clear: y
    };
    function s(b) {
      return b ? d(b.commandLine.options, !1) : o;
    }
    function l(b) {
      return b ? d(b.commandLine.options, !0) : o;
    }
    function f(b) {
      e !== b && (e ? o = d(b, !0) : t.set(b, o), e = b);
    }
    function d(b, A) {
      let L = t.get(b);
      if (L)
        return L;
      const I = h(b);
      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(b, L), L;
    }
    function y() {
      const b = e && r.get(e);
      o.clear(), t.clear(), r.clear(), i.clear(), e && (b && r.set(e, b), t.set(e, o));
    }
    function h(b) {
      let A = r.get(b);
      return A || r.set(b, A = yK(b, i5)), A;
    }
  }
  function T4e(e, t) {
    let r;
    return { getPackageJsonInfo: i, setPackageJsonInfo: o, clear: s, entries: l, getInternalMap: f };
    function i(d) {
      return r == null ? void 0 : r.get(js(d, e, t));
    }
    function o(d, y) {
      (r || (r = /* @__PURE__ */ new Map())).set(js(d, e, t), y);
    }
    function s() {
      r = void 0;
    }
    function l() {
      const d = r == null ? void 0 : r.entries();
      return d ? Do(d) : [];
    }
    function f() {
      return r;
    }
  }
  function Mpe(e, t, r, i) {
    const o = e.getOrCreateMapOfCacheRedirects(t);
    let s = o.get(r);
    return s || (s = i(), o.set(r, s)), s;
  }
  function S4e(e, t, r) {
    const i = vK(r);
    return {
      getFromDirectoryCache: f,
      getOrCreateCacheForDirectory: l,
      clear: o,
      update: s
    };
    function o() {
      i.clear();
    }
    function s(d) {
      i.update(d);
    }
    function l(d, y) {
      const h = js(d, e, t);
      return Mpe(i, y, h, () => OT());
    }
    function f(d, y, h, b) {
      var A, L;
      const I = js(h, e, t);
      return (L = (A = i.getMapOfCacheRedirects(b)) == null ? void 0 : A.get(I)) == null ? void 0 : L.get(d, y);
    }
  }
  function Vk(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, l) {
        return e.set(i(o, s), l), 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, l) => {
          const [f, d] = t.get(l);
          return o(s, f, d);
        });
      },
      size() {
        return e.size;
      }
    };
    return r;
    function i(o, s) {
      const l = Vk(o, s);
      return t.set(l, [o, s]), l;
    }
  }
  function bK(e, t, r, i) {
    D.assert(t.length === r.length);
    const o = OT();
    for (let s = 0; s < t.length; ++s) {
      const l = t[s];
      o.set(i.getName(l), i.getMode(l, e), r[s]);
    }
    return o;
  }
  function x4e(e) {
    return e.resolvedModule && (e.resolvedModule.originalPath || e.resolvedModule.resolvedFileName);
  }
  function A4e(e) {
    return e.resolvedTypeReferenceDirective && (e.resolvedTypeReferenceDirective.originalPath || e.resolvedTypeReferenceDirective.resolvedFileName);
  }
  function C4e(e, t, r, i) {
    const o = vK(r);
    return {
      getFromNonRelativeNameCache: f,
      getOrCreateCacheForNonRelativeName: d,
      clear: s,
      update: l
    };
    function s() {
      o.clear();
    }
    function l(h) {
      o.update(h);
    }
    function f(h, b, A, L) {
      var I, O;
      return D.assert(!Pl(h)), (O = (I = o.getMapOfCacheRedirects(L)) == null ? void 0 : I.get(Vk(h, b))) == null ? void 0 : O.get(A);
    }
    function d(h, b, A) {
      return D.assert(!Pl(h)), Mpe(o, A, Vk(h, b), y);
    }
    function y() {
      const h = /* @__PURE__ */ new Map();
      return { get: b, set: A };
      function b(I) {
        return h.get(js(I, e, t));
      }
      function A(I, O) {
        const k = js(I, e, t);
        if (h.has(k))
          return;
        h.set(k, O);
        const B = i(O), V = B && L(k, B);
        let H = k;
        for (; H !== V; ) {
          const te = _i(H);
          if (te === H || h.has(te))
            break;
          h.set(te, O), H = te;
        }
      }
      function L(I, O) {
        const k = js(_i(O), e, t);
        let B = 0;
        const V = Math.min(I.length, k.length);
        for (; B < V && I.charCodeAt(B) === k.charCodeAt(B); )
          B++;
        if (B === I.length && (k.length === B || k[B] === Ns))
          return I;
        const H = Wp(I);
        if (B < H)
          return;
        const te = I.lastIndexOf(Ns, B - 1);
        if (te !== -1)
          return I.substr(0, Math.max(te, H));
      }
    }
  }
  function Fpe(e, t, r, i, o) {
    const s = S4e(e, t, r), l = C4e(e, t, r, o);
    return i ?? (i = T4e(e, t)), {
      ...i,
      ...s,
      ...l,
      clear: f,
      update: y,
      getPackageJsonInfoCache: () => i,
      clearAllExceptPackageJsonInfoCache: d
    };
    function f() {
      d(), i.clear();
    }
    function d() {
      s.clear(), l.clear();
    }
    function y(h) {
      s.update(h), l.update(h);
    }
  }
  function p5(e, t, r) {
    const i = Fpe(e, t, r, void 0, x4e);
    return i.getOrCreateCacheForModuleName = (o, s, l) => i.getOrCreateCacheForNonRelativeName(o, s, l), i;
  }
  function m5(e, t, r, i) {
    return Fpe(e, t, r, i, A4e);
  }
  function L4e(e, t, r, i) {
    const o = _i(t);
    return r.getFromDirectoryCache(e, i, o, void 0);
  }
  function jk(e, t, r, i, o, s, l) {
    const f = Gv(r, i);
    s && (r = s.commandLine.options), f && (_a(i, _.Resolving_module_0_from_1, e, t), s && _a(i, _.Using_compiler_options_of_project_reference_redirect_0, s.sourceFile.fileName));
    const d = _i(t);
    let y = o == null ? void 0 : o.getFromDirectoryCache(e, l, d, s);
    if (y)
      f && _a(i, _.Resolution_for_module_0_was_found_in_cache_from_location_1, e, d);
    else {
      let h = r.moduleResolution;
      if (h === void 0) {
        switch (tu(r)) {
          case 1:
            h = 2;
            break;
          case 100:
            h = 3;
            break;
          case 199:
            h = 99;
            break;
          default:
            h = 1;
            break;
        }
        f && _a(i, _.Module_resolution_kind_is_not_specified_using_0, mR[h]);
      } else
        f && _a(i, _.Explicitly_specified_module_resolution_kind_Colon_0, mR[h]);
      switch (Hp.logStartResolveModule(e), h) {
        case 3:
          y = D4e(e, t, r, i, o, s, l);
          break;
        case 99:
          y = R4e(e, t, r, i, o, s, l);
          break;
        case 2:
          y = jpe(e, t, r, i, o, s);
          break;
        case 1:
          y = rme(e, t, r, i, o, s);
          break;
        case 100:
          y = Vpe(e, t, r, i, o, s);
          break;
        default:
          return D.fail(`Unexpected moduleResolution: ${h}`);
      }
      y && y.resolvedModule && Hp.logInfoEvent(`Module "${e}" resolved to "${y.resolvedModule.resolvedFileName}"`), Hp.logStopResolveModule(y && y.resolvedModule ? "" + y.resolvedModule.resolvedFileName : "null"), o == null || o.getOrCreateCacheForDirectory(d, s).set(e, l, y), Pl(e) || o == null || o.getOrCreateCacheForNonRelativeName(e, l, s).set(d, y);
    }
    return f && (y.resolvedModule ? y.resolvedModule.packageId ? _a(i, _.Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2, e, y.resolvedModule.resolvedFileName, oT(y.resolvedModule.packageId)) : _a(i, _.Module_name_0_was_successfully_resolved_to_1, e, y.resolvedModule.resolvedFileName) : _a(i, _.Module_name_0_was_not_resolved, e)), y;
  }
  function Bpe(e, t, r, i, o) {
    const s = I4e(e, t, i, o);
    return s ? s.value : Pl(t) ? k4e(e, t, r, i, o) : w4e(e, t, i, o);
  }
  function I4e(e, t, r, i) {
    var o;
    const { baseUrl: s, paths: l, configFile: f } = i.compilerOptions;
    if (l && !vf(t)) {
      i.traceEnabled && (s && _a(i.host, _.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, s, t), _a(i.host, _.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0, t));
      const d = Az(i.compilerOptions, i.host), y = f != null && f.configFileSpecs ? (o = f.configFileSpecs).pathPatterns || (o.pathPatterns = P3(l)) : void 0;
      return IK(e, t, d, l, y, r, !1, i);
    }
  }
  function k4e(e, t, r, i, o) {
    if (!o.compilerOptions.rootDirs)
      return;
    o.traceEnabled && _a(o.host, _.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0, t);
    const s = Wo(Pi(r, t));
    let l, f;
    for (const d of o.compilerOptions.rootDirs) {
      let y = Wo(d);
      tl(y, Ns) || (y += Ns);
      const h = ba(s, y) && (f === void 0 || f.length < y.length);
      o.traceEnabled && _a(o.host, _.Checking_if_0_is_the_longest_matching_prefix_for_1_2, y, s, h), h && (f = y, l = d);
    }
    if (f) {
      o.traceEnabled && _a(o.host, _.Longest_matching_prefix_for_0_is_1, s, f);
      const d = s.substr(f.length);
      o.traceEnabled && _a(o.host, _.Loading_0_from_the_root_dir_1_candidate_location_2, d, f, s);
      const y = i(e, s, !Kp(r, o.host), o);
      if (y)
        return y;
      o.traceEnabled && _a(o.host, _.Trying_other_entries_in_rootDirs);
      for (const h of o.compilerOptions.rootDirs) {
        if (h === l)
          continue;
        const b = Pi(Wo(h), d);
        o.traceEnabled && _a(o.host, _.Loading_0_from_the_root_dir_1_candidate_location_2, d, h, b);
        const A = _i(b), L = i(e, b, !Kp(A, o.host), o);
        if (L)
          return L;
      }
      o.traceEnabled && _a(o.host, _.Module_resolution_using_rootDirs_has_failed);
    }
  }
  function w4e(e, t, r, i) {
    const { baseUrl: o } = i.compilerOptions;
    if (!o)
      return;
    i.traceEnabled && _a(i.host, _.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, o, t);
    const s = Wo(Pi(o, t));
    return i.traceEnabled && _a(i.host, _.Resolving_module_name_0_relative_to_base_url_1_2, t, o, s), r(e, s, !Kp(_i(s), i.host), i);
  }
  function Gpe(e, t, r) {
    const { resolvedModule: i, failedLookupLocations: o } = N4e(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 D4e(e, t, r, i, o, s, l) {
    return Upe(30, e, t, r, i, o, s, l);
  }
  function R4e(e, t, r, i, o, s, l) {
    return Upe(30, e, t, r, i, o, s, l);
  }
  function Upe(e, t, r, i, o, s, l, f) {
    const d = _i(r), y = f === 99 ? 32 : 0;
    let h = i.noDtsResolution ? 3 : 7;
    return TT(i) && (h |= 8), Hk(e | y, t, d, i, o, s, h, !1, l);
  }
  function N4e(e, t, r) {
    return Hk(0, e, t, { moduleResolution: 2, allowJs: !0 }, r, void 0, 2, !1, void 0);
  }
  function Vpe(e, t, r, i, o, s) {
    const l = _i(t);
    let f = r.noDtsResolution ? 3 : 7;
    return TT(r) && (f |= 8), Hk(hK(r), e, l, r, i, o, f, !1, s);
  }
  function jpe(e, t, r, i, o, s, l) {
    let f;
    return l ? f = 8 : r.noDtsResolution ? (f = 3, TT(r) && (f |= 8)) : f = TT(r) ? 15 : 7, Hk(0, e, _i(t), r, i, o, f, !!l, s);
  }
  function Hpe(e, t, r) {
    return Hk(8, e, _i(t), { moduleResolution: 99 }, r, void 0, 8, !0, void 0);
  }
  function Hk(e, t, r, i, o, s, l, f, d) {
    var y, h, b, A;
    const L = Gv(i, o), I = [], O = [], k = PC(i, !!(e & 32)), B = [], V = {
      compilerOptions: i,
      host: o,
      traceEnabled: L,
      failedLookupLocations: I,
      affectingLocations: O,
      packageJsonInfoCache: s,
      features: e,
      conditions: k,
      requestContainingDirectory: r,
      reportDiagnostic: (Y) => void B.push(Y),
      isConfigLookup: f,
      candidateIsFromPackageJsonField: !1
    };
    L && fx(yc(i)) && _a(o, _.Resolving_in_0_mode_with_conditions_1, e & 32 ? "ESM" : "CJS", k.map((Y) => `'${Y}'`).join(", "));
    let H;
    if (yc(i) === 2) {
      const Y = l & 5, P = l & -6;
      H = Y && X(Y, V) || P && X(P, V) || void 0;
    } else
      H = X(l, V);
    let te;
    if ((y = H == null ? void 0 : H.value) != null && y.isExternalLibraryImport && !f && l & 5 && e & 8 && !Pl(t) && !xK(5, H.value.resolved.extension) && k.indexOf("import") > -1) {
      F1(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: io
      }, P = X(l & 5, Y);
      (h = P == null ? void 0 : P.value) != null && h.isExternalLibraryImport && (te = P.value.resolved.path);
    }
    return Rpe(t, (b = H == null ? void 0 : H.value) == null ? void 0 : b.resolved, (A = H == null ? void 0 : H.value) == null ? void 0 : A.isExternalLibraryImport, I, O, B, V, te);
    function X(Y, P) {
      const ne = Bpe(Y, t, r, (ye, ie, W, ce) => h5(ye, ie, W, ce, !0), P);
      if (ne)
        return Qf({ resolved: ne, isExternalLibraryImport: Bx(ne.path) });
      if (Pl(t)) {
        const { path: ye, parts: ie } = Wpe(r, t), W = h5(Y, ye, !1, P, !0);
        return W && Qf({ resolved: W, isExternalLibraryImport: wi(ie, "node_modules") });
      } else {
        let ye;
        return e & 2 && ba(t, "#") && (ye = U4e(Y, t, r, P, s, d)), !ye && e & 4 && (ye = G4e(Y, t, r, P, s, d)), ye || (L && _a(o, _.Loading_module_0_from_node_modules_folder_target_file_types_Colon_1, t, wpe(Y)), ye = Qpe(Y, t, r, P, s, d)), ye && { value: ye.value && { resolved: ye.value, isExternalLibraryImport: !0 } };
      }
    }
  }
  function Wpe(e, t) {
    const r = Pi(e, t), i = ad(r), o = ec(i);
    return { path: o === "." || o === ".." ? wu(Wo(r)) : Wo(r), parts: i };
  }
  function O4e(e, t, r) {
    if (!t.realpath)
      return e;
    const i = Wo(t.realpath(e));
    return r && _a(t, _.Resolving_real_path_for_0_result_1, e, i), D.assert(t.fileExists(i), `${e} linked to nonexistent file ${i}`), i;
  }
  function h5(e, t, r, i, o) {
    if (i.traceEnabled && _a(i.host, _.Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1, t, wpe(e)), !mv(t)) {
      if (!r) {
        const l = _i(t);
        Kp(l, i.host) || (i.traceEnabled && _a(i.host, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, l), r = !0);
      }
      const s = Wk(e, t, r, i);
      if (s) {
        const l = o ? EK(s.path) : void 0, f = l ? Gx(l, !1, i) : void 0;
        return NC(f, s);
      }
    }
    if (r || Kp(t, i.host) || (i.traceEnabled && _a(i.host, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, t), r = !0), !(i.features & 32))
      return Xpe(e, t, r, i, o);
  }
  function Bx(e) {
    return uu(e, Sy);
  }
  function EK(e) {
    const t = Wo(e), r = t.lastIndexOf(Sy);
    if (r === -1)
      return;
    const i = r + Sy.length;
    let o = zpe(t, i);
    return t.charCodeAt(i) === 64 && (o = zpe(t, o)), t.slice(0, o);
  }
  function zpe(e, t) {
    const r = e.indexOf(Ns, t + 1);
    return r === -1 ? t : r;
  }
  function TK(e, t, r, i) {
    return u5(Wk(e, t, r, i));
  }
  function Wk(e, t, r, i) {
    const o = qpe(e, t, r, i);
    if (o)
      return o;
    if (!(i.features & 32)) {
      const s = Jpe(t, e, "", r, i);
      if (s)
        return s;
    }
  }
  function qpe(e, t, r, i) {
    if (du(t).indexOf(".") === -1)
      return;
    let s = Md(t);
    s === t && (s = t.substring(0, t.lastIndexOf(".")));
    const l = t.substring(s.length);
    return i.traceEnabled && _a(i.host, _.File_name_0_has_a_1_extension_stripping_it, t, l), Jpe(s, e, l, r, i);
  }
  function SK(e, t, r, i) {
    return e & 1 && bl(t, q3) || e & 4 && bl(t, z3) ? c8(t, r, i) !== void 0 ? { path: t, ext: E3(t), resolvedUsingTsExtension: void 0 } : void 0 : i.isConfigLookup && e === 8 && sl(t, ".json") ? c8(t, r, i) !== void 0 ? { path: t, ext: ".json", resolvedUsingTsExtension: void 0 } : void 0 : qpe(e, t, r, i);
  }
  function Jpe(e, t, r, i, o) {
    if (!i) {
      const l = _i(e);
      l && (i = !Kp(l, 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 && !ld(e + r) && s(`.d${r}.ts`) || void 0;
    }
    function s(l, f) {
      const d = c8(e + l, i, o);
      return d === void 0 ? void 0 : { path: d, ext: l, resolvedUsingTsExtension: !o.candidateIsFromPackageJsonField && f };
    }
  }
  function c8(e, t, r) {
    var i, o;
    if (!((i = r.compilerOptions.moduleSuffixes) != null && i.length))
      return Kpe(e, t, r);
    const s = (o = bh(e)) != null ? o : "", l = s ? QN(e, s) : e;
    return ze(r.compilerOptions.moduleSuffixes, (f) => Kpe(l + f + s, t, r));
  }
  function Kpe(e, t, r) {
    if (!t) {
      if (r.host.fileExists(e))
        return r.traceEnabled && _a(r.host, _.File_0_exists_use_it_as_a_name_resolution_result, e), e;
      r.traceEnabled && _a(r.host, _.File_0_does_not_exist, e);
    }
    r.failedLookupLocations.push(e);
  }
  function Xpe(e, t, r, i, o = !0) {
    const s = o ? Gx(t, r, i) : void 0, l = s && s.contents.packageJsonContent, f = s && l8(s, i);
    return NC(s, v5(e, t, r, i, l, f));
  }
  function P4e(e, t, r, i, o) {
    if (!o && e.contents.resolvedEntrypoints !== void 0)
      return e.contents.resolvedEntrypoints;
    let s;
    const l = 5 | (o ? 2 : 0), f = hK(t), d = g5(i == null ? void 0 : i.getPackageJsonInfoCache(), r, t);
    d.conditions = PC(t), d.requestContainingDirectory = e.packageDirectory;
    const y = v5(l, e.packageDirectory, !1, d, e.contents.packageJsonContent, l8(e, d));
    if (s = Bn(s, y == null ? void 0 : y.path), f & 8 && e.contents.packageJsonContent.exports) {
      const h = fA([PC(t, !0), PC(t, !1)], Vp);
      for (const b of h) {
        const A = { ...d, failedLookupLocations: [], conditions: b }, L = M4e(e, e.contents.packageJsonContent.exports, A, l);
        if (L)
          for (const I of L)
            s = ry(s, I.path);
      }
    }
    return e.contents.resolvedEntrypoints = s || !1;
  }
  function M4e(e, t, r, i) {
    let o;
    if (Ba(t))
      for (const l of t)
        s(l);
    else if (typeof t == "object" && t !== null && b5(t))
      for (const l in t)
        s(t[l]);
    else
      s(t);
    return o;
    function s(l) {
      var f, d;
      if (typeof l == "string" && ba(l, "./") && l.indexOf("*") === -1) {
        const y = ad(l).slice(2);
        if (y.indexOf("..") >= 0 || y.indexOf(".") >= 0 || y.indexOf("node_modules") >= 0)
          return !1;
        const h = Pi(e.packageDirectory, l), b = Da(h, (d = (f = r.host).getCurrentDirectory) == null ? void 0 : d.call(f)), A = SK(i, b, !1, r);
        if (A)
          return o = ry(o, A, (L, I) => L.path === I.path), !0;
      } else if (Array.isArray(l)) {
        for (const y of l)
          if (s(y))
            return !0;
      } else if (typeof l == "object" && l !== null)
        return ze($h(l), (y) => {
          if (y === "default" || wi(r.conditions, y) || u8(r.conditions, y))
            return s(l[y]), !0;
        });
    }
  }
  function g5(e, t, r) {
    return {
      host: t,
      compilerOptions: r,
      traceEnabled: Gv(r, t),
      failedLookupLocations: G4,
      affectingLocations: G4,
      packageJsonInfoCache: e,
      features: 0,
      conditions: rt,
      requestContainingDirectory: void 0,
      reportDiagnostic: io,
      isConfigLookup: !1,
      candidateIsFromPackageJsonField: !1
    };
  }
  function y5(e, t) {
    const r = ad(e);
    for (r.pop(); r.length > 0; ) {
      const i = Gx(l1(r), !1, t);
      if (i)
        return i;
      r.pop();
    }
  }
  function l8(e, t) {
    return e.contents.versionPaths === void 0 && (e.contents.versionPaths = y4e(e.contents.packageJsonContent, t) || !1), e.contents.versionPaths || void 0;
  }
  function Gx(e, t, r) {
    var i, o, s;
    const { host: l, traceEnabled: f } = r, d = Pi(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 && _a(l, _.File_0_exists_according_to_earlier_cached_lookups, d), r.affectingLocations.push(d), y.packageDirectory === e ? y : { packageDirectory: e, contents: y.contents };
      y && f && _a(l, _.File_0_does_not_exist_according_to_earlier_cached_lookups, d), r.failedLookupLocations.push(d);
      return;
    }
    const h = Kp(e, l);
    if (h && l.fileExists(d)) {
      const b = $I(d, l);
      f && _a(l, _.Found_package_json_at_0, d);
      const A = { packageDirectory: e, contents: { packageJsonContent: b, versionPaths: void 0, resolvedEntrypoints: void 0 } };
      return (o = r.packageJsonInfoCache) == null || o.setPackageJsonInfo(d, A), r.affectingLocations.push(d), A;
    } else
      h && f && _a(l, _.File_0_does_not_exist, d), (s = r.packageJsonInfoCache) == null || s.setPackageJsonInfo(d, h), r.failedLookupLocations.push(d);
  }
  function v5(e, t, r, i, o, s) {
    let l;
    o && (i.isConfigLookup ? l = m4e(o, t, i) : l = e & 4 && p4e(o, t, i) || e & 7 && h4e(o, t, i) || void 0);
    const f = (A, L, I, O) => {
      const k = c8(L, I, O);
      if (k) {
        const X = F4e(A, k);
        if (X)
          return u5(X);
        O.traceEnabled && _a(O.host, _.File_0_has_an_unsupported_extension_so_skipping_it, k);
      }
      const B = 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 = h5(B, L, I, O, !1);
      return O.features = V, O.candidateIsFromPackageJsonField = H, te;
    }, d = l ? !Kp(_i(l), i.host) : void 0, y = r || !Kp(t, i.host), h = Pi(t, i.isConfigLookup ? "tsconfig" : "index");
    if (s && (!l || gv(t, l))) {
      const A = Lm(t, l || h, !1);
      i.traceEnabled && _a(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, De, A);
      const L = IK(e, A, t, s.paths, void 0, f, d || y, i);
      if (L)
        return kpe(L.value);
    }
    const b = l && kpe(f(e, l, d, i));
    if (b)
      return b;
    if (!(i.features & 32))
      return Wk(e, h, y, i);
  }
  function F4e(e, t, r) {
    const i = bh(t);
    return i !== void 0 && xK(e, i) ? { path: t, ext: i, resolvedUsingTsExtension: r } : void 0;
  }
  function xK(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 AK(e) {
    let t = e.indexOf(Ns);
    return e[0] === "@" && (t = e.indexOf(Ns, t + 1)), t === -1 ? { packageName: e, rest: "" } : { packageName: e.slice(0, t), rest: e.slice(t + 1) };
  }
  function b5(e) {
    return Rn($h(e), (t) => ba(t, "."));
  }
  function B4e(e) {
    return !kt($h(e), (t) => ba(t, "."));
  }
  function G4e(e, t, r, i, o, s) {
    var l, f;
    const d = Da(Pi(r, "dummy"), (f = (l = i.host).getCurrentDirectory) == null ? void 0 : f.call(l)), y = y5(d, i);
    if (!y || !y.contents.packageJsonContent.exports || typeof y.contents.packageJsonContent.name != "string")
      return;
    const h = ad(t), b = ad(y.contents.packageJsonContent.name);
    if (!Rn(b, (k, B) => h[B] === k))
      return;
    const A = h.slice(b.length), L = Ie(A) ? `.${Ns}${A.join(Ns)}` : ".", I = e & 5, O = e & -6;
    return CK(y, I, L, i, o, s) || CK(y, O, L, i, o, s);
  }
  function CK(e, t, r, i, o, s) {
    if (e.contents.packageJsonContent.exports) {
      if (r === ".") {
        let l;
        if (typeof e.contents.packageJsonContent.exports == "string" || Array.isArray(e.contents.packageJsonContent.exports) || typeof e.contents.packageJsonContent.exports == "object" && B4e(e.contents.packageJsonContent.exports) ? l = e.contents.packageJsonContent.exports : Rs(e.contents.packageJsonContent.exports, ".") && (l = e.contents.packageJsonContent.exports["."]), l)
          return $pe(t, i, o, s, r, e, !1)(l, "", !1, ".");
      } else if (b5(e.contents.packageJsonContent.exports)) {
        if (typeof e.contents.packageJsonContent.exports != "object")
          return i.traceEnabled && _a(i.host, _.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, r, e.packageDirectory), Qf(void 0);
        const l = Ype(t, i, o, s, r, e.contents.packageJsonContent.exports, e, !1);
        if (l)
          return l;
      }
      return i.traceEnabled && _a(i.host, _.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, r, e.packageDirectory), Qf(void 0);
    }
  }
  function U4e(e, t, r, i, o, s) {
    var l, f;
    if (t === "#" || ba(t, "#/"))
      return i.traceEnabled && _a(i.host, _.Invalid_import_specifier_0_has_no_possible_resolutions, t), Qf(void 0);
    const d = Da(Pi(r, "dummy"), (f = (l = i.host).getCurrentDirectory) == null ? void 0 : f.call(l)), y = y5(d, i);
    if (!y)
      return i.traceEnabled && _a(i.host, _.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve, d), Qf(void 0);
    if (!y.contents.packageJsonContent.imports)
      return i.traceEnabled && _a(i.host, _.package_json_scope_0_has_no_imports_defined, y.packageDirectory), Qf(void 0);
    const h = Ype(e, i, o, s, t, y.contents.packageJsonContent.imports, y, !0);
    return h || (i.traceEnabled && _a(i.host, _.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1, t, y.packageDirectory), Qf(void 0));
  }
  function LK(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 Ype(e, t, r, i, o, s, l, f) {
    const d = $pe(e, t, r, i, o, l, f);
    if (!tl(o, Ns) && o.indexOf("*") === -1 && Rs(s, o)) {
      const b = s[o];
      return d(b, "", !1, o);
    }
    const y = eI(yn($h(s), (b) => b.indexOf("*") !== -1 || tl(b, "/")), LK);
    for (const b of y)
      if (t.features & 16 && h(b, o)) {
        const A = s[b], L = b.indexOf("*"), I = o.substring(b.substring(0, L).length, o.length - (b.length - 1 - L));
        return d(A, I, !0, b);
      } else if (tl(b, "*") && ba(o, b.substring(0, b.length - 1))) {
        const A = s[b], L = o.substring(b.length - 1);
        return d(A, L, !0, b);
      } else if (ba(o, b)) {
        const A = s[b], L = o.substring(b.length);
        return d(A, L, !1, b);
      }
    function h(b, A) {
      if (tl(b, "*"))
        return !1;
      const L = b.indexOf("*");
      return L === -1 ? !1 : ba(A, b.substring(0, L)) && tl(A, b.substring(L + 1));
    }
  }
  function $pe(e, t, r, i, o, s, l) {
    return f;
    function f(d, y, h, b) {
      if (typeof d == "string") {
        if (!h && y.length > 0 && !tl(d, "/"))
          return t.traceEnabled && _a(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), Qf(void 0);
        if (!ba(d, "./")) {
          if (l && !ba(d, "../") && !ba(d, "/") && !Cm(d)) {
            const Y = h ? d.replace(/\*/g, y) : d + y;
            F1(t, _.Using_0_subpath_1_with_target_2, "imports", b, Y), F1(t, _.Resolving_module_0_from_1, Y, s.packageDirectory + "/");
            const P = Hk(t.features, Y, s.packageDirectory + "/", t.compilerOptions, t.host, r, e, !1, i);
            return Qf(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 && _a(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), Qf(void 0);
        }
        const B = (vf(d) ? ad(d).slice(1) : ad(d)).slice(1);
        if (B.indexOf("..") >= 0 || B.indexOf(".") >= 0 || B.indexOf("node_modules") >= 0)
          return t.traceEnabled && _a(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), Qf(void 0);
        const V = Pi(s.packageDirectory, d), H = ad(y);
        if (H.indexOf("..") >= 0 || H.indexOf(".") >= 0 || H.indexOf("node_modules") >= 0)
          return t.traceEnabled && _a(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), Qf(void 0);
        t.traceEnabled && _a(t.host, _.Using_0_subpath_1_with_target_2, l ? "imports" : "exports", b, h ? d.replace(/\*/g, y) : d + y);
        const te = A(h ? V.replace(/\*/g, y) : V + y), X = O(te, y, Pi(s.packageDirectory, "package.json"), l);
        return X || Qf(NC(s, SK(e, te, !1, t)));
      } else if (typeof d == "object" && d !== null)
        if (Array.isArray(d)) {
          if (!Ie(d))
            return t.traceEnabled && _a(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), Qf(void 0);
          for (const k of d) {
            const B = f(k, y, h, b);
            if (B)
              return B;
          }
        } else {
          F1(t, _.Entering_conditional_exports);
          for (const k of $h(d))
            if (k === "default" || t.conditions.indexOf(k) >= 0 || u8(t.conditions, k)) {
              F1(t, _.Matched_0_condition_1, l ? "imports" : "exports", k);
              const B = d[k], V = f(B, y, h, b);
              if (V)
                return F1(t, _.Resolved_under_condition_0, k), F1(t, _.Exiting_conditional_exports), V;
              F1(t, _.Failed_to_resolve_under_condition_0, k);
            } else
              F1(t, _.Saw_non_matching_condition_0, k);
          F1(t, _.Exiting_conditional_exports);
          return;
        }
      else if (d === null)
        return t.traceEnabled && _a(t.host, _.package_json_scope_0_explicitly_maps_specifier_1_to_null, s.packageDirectory, o), Qf(void 0);
      return t.traceEnabled && _a(t.host, _.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, s.packageDirectory, o), Qf(void 0);
      function A(k) {
        var B, V;
        return k === void 0 ? k : Da(k, (V = (B = t.host).getCurrentDirectory) == null ? void 0 : V.call(B));
      }
      function L(k, B) {
        return wu(Pi(k, B));
      }
      function I() {
        return t.host.useCaseSensitiveFileNames ? typeof t.host.useCaseSensitiveFileNames == "boolean" ? t.host.useCaseSensitiveFileNames : t.host.useCaseSensitiveFileNames() : !0;
      }
      function O(k, B, V, H) {
        var te, X, Y, P;
        if (!t.isConfigLookup && (t.compilerOptions.declarationDir || t.compilerOptions.outDir) && k.indexOf("/node_modules/") === -1 && (!t.compilerOptions.configFile || gv(s.packageDirectory, A(t.compilerOptions.configFile.fileName), !I()))) {
          const ne = q0({ useCaseSensitiveFileNames: I }), ye = [];
          if (t.compilerOptions.rootDir || t.compilerOptions.composite && t.compilerOptions.configFilePath) {
            const ie = A(T8(t.compilerOptions, () => [], ((X = (te = t.host).getCurrentDirectory) == null ? void 0 : X.call(te)) || "", ne));
            ye.push(ie);
          } else if (t.requestContainingDirectory) {
            const ie = A(Pi(t.requestContainingDirectory, "index.ts")), W = A(T8(t.compilerOptions, () => [ie, A(V)], ((P = (Y = t.host).getCurrentDirectory) == null ? void 0 : P.call(Y)) || "", ne));
            ye.push(W);
            let ce = wu(W);
            for (; ce && ce.length > 1; ) {
              const pe = ad(ce);
              pe.pop();
              const ve = l1(pe);
              ye.unshift(ve), ce = wu(ve);
            }
          }
          ye.length > 1 && t.reportDiagnostic(Os(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, B === "" ? "." : B, V));
          for (const ie of ye) {
            const W = de(ie);
            for (const ce of W)
              if (gv(ce, k, !I())) {
                const pe = k.slice(ce.length + 1), ve = Pi(ie, pe), Te = [".mjs", ".cjs", ".js", ".json", ".d.mts", ".d.cts", ".d.ts"];
                for (const ee of Te)
                  if (sl(ve, ee)) {
                    const $e = wue(ve);
                    for (const Ue of $e) {
                      if (!xK(e, Ue))
                        continue;
                      const Be = MH(ve, Ue, ee, !I());
                      if (t.host.fileExists(Be))
                        return Qf(NC(s, SK(e, Be, !1, t)));
                    }
                  }
              }
          }
        }
        return;
        function de(ne) {
          var ye, ie;
          const W = t.compilerOptions.configFile ? ((ie = (ye = t.host).getCurrentDirectory) == null ? void 0 : ie.call(ye)) || "" : ne, 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 u8(e, t) {
    if (e.indexOf("types") === -1 || !ba(t, "types@"))
      return !1;
    const r = mA.tryParse(t.substring(6));
    return r ? r.test(De) : !1;
  }
  function Qpe(e, t, r, i, o, s) {
    return Zpe(e, t, r, i, !1, o, s);
  }
  function V4e(e, t, r) {
    return Zpe(4, e, t, r, !0, void 0, void 0);
  }
  function Zpe(e, t, r, i, o, s, l) {
    const f = i.features === 0 ? void 0 : i.features & 32 ? 99 : 1, d = e & 5, y = e & -6;
    if (d) {
      const b = h(d);
      if (b)
        return b;
    }
    if (y && !o)
      return h(y);
    function h(b) {
      return Zh(Jl(r), (A) => {
        if (du(A) !== "node_modules") {
          const L = nme(s, t, f, A, l, i);
          return L || Qf(eme(b, t, A, i, o, s, l));
        }
      });
    }
  }
  function eme(e, t, r, i, o, s, l) {
    const f = Pi(r, "node_modules"), d = Kp(f, i.host);
    if (!d && i.traceEnabled && _a(i.host, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, f), !o) {
      const y = tme(e, t, f, d, i, s, l);
      if (y)
        return y;
    }
    if (e & 4) {
      const y = Pi(f, "@types");
      let h = d;
      return d && !Kp(y, i.host) && (i.traceEnabled && _a(i.host, _.Directory_0_does_not_exist_skipping_all_lookups_in_it, y), h = !1), tme(4, j4e(t, i), y, h, i, s, l);
    }
  }
  function tme(e, t, r, i, o, s, l) {
    var f, d, y;
    const h = Wo(Pi(r, t)), { packageName: b, rest: A } = AK(t), L = Pi(r, b);
    let I, O = Gx(h, !i, o);
    if (A !== "" && O && (!(o.features & 8) || !Rs((d = (f = I = Gx(L, !i, o)) == null ? void 0 : f.contents.packageJsonContent) != null ? d : rt, "exports"))) {
      const V = Wk(e, h, !i, o);
      if (V)
        return u5(V);
      const H = v5(e, h, !i, o, O.contents.packageJsonContent, l8(O, o));
      return NC(O, H);
    }
    const k = (V, H, te, X) => {
      let Y = Wk(V, H, te, X) || v5(V, H, te, X, O && O.contents.packageJsonContent, O && l8(O, X));
      return !Y && O && (O.contents.packageJsonContent.exports === void 0 || O.contents.packageJsonContent.exports === null) && X.features & 32 && (Y = Wk(V, Pi(H, "index.js"), te, X)), NC(O, Y);
    };
    if (A !== "" && (O = I ?? Gx(L, !i, o)), O && O.contents.packageJsonContent.exports && o.features & 8)
      return (y = CK(O, e, Pi(".", A), o, s, l)) == null ? void 0 : y.value;
    const B = A !== "" && O ? l8(O, o) : void 0;
    if (B) {
      o.traceEnabled && _a(o.host, _.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, B.version, De, A);
      const V = i && Kp(L, o.host), H = IK(e, A, L, B.paths, void 0, k, !V, o);
      if (H)
        return H.value;
    }
    return k(e, h, !i, o);
  }
  function IK(e, t, r, i, o, s, l, f) {
    o || (o = P3(i));
    const d = oq(o, t);
    if (d) {
      const y = Ua(d) ? void 0 : Lse(d, t), h = Ua(d) ? d : Cse(d);
      return f.traceEnabled && _a(f.host, _.Module_name_0_matched_pattern_1, t, h), { value: ze(i[h], (A) => {
        const L = y ? A.replace("*", y) : A, I = Wo(Pi(r, L));
        f.traceEnabled && _a(f.host, _.Trying_substitution_0_candidate_module_location_Colon_1, A, L);
        const O = bh(A);
        if (O !== void 0) {
          const k = c8(I, l, f);
          if (k !== void 0)
            return u5({ path: k, ext: O, resolvedUsingTsExtension: void 0 });
        }
        return s(e, I, l || !Kp(_i(I), f.host), f);
      }) };
    }
  }
  function j4e(e, t) {
    const r = zk(e);
    return t.traceEnabled && r !== e && _a(t.host, _.Scoped_package_detected_looking_in_0, r), r;
  }
  function E5(e) {
    return `@types/${zk(e)}`;
  }
  function zk(e) {
    if (ba(e, "@")) {
      const t = e.replace(Ns, S5);
      if (t !== e)
        return t.slice(1);
    }
    return e;
  }
  function d8(e) {
    const t = rI(e, "@types/");
    return t !== e ? T5(t) : e;
  }
  function T5(e) {
    return uu(e, S5) ? "@" + e.replace(S5, Ns) : e;
  }
  function nme(e, t, r, i, o, s) {
    const l = e && e.getFromNonRelativeNameCache(t, r, i, o);
    if (l)
      return s.traceEnabled && _a(s.host, _.Resolution_for_module_0_was_found_in_cache_from_location_1, t, i), s.resultFromCache = l, {
        value: l.resolvedModule && {
          path: l.resolvedModule.resolvedFileName,
          originalPath: l.resolvedModule.originalPath || !0,
          extension: l.resolvedModule.extension,
          packageId: l.resolvedModule.packageId,
          resolvedUsingTsExtension: l.resolvedModule.resolvedUsingTsExtension
        }
      };
  }
  function rme(e, t, r, i, o, s) {
    const l = Gv(r, i), f = [], d = [], y = _i(t), h = [], b = {
      compilerOptions: r,
      host: i,
      traceEnabled: l,
      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 Rpe(e, A && A.value, (A == null ? void 0 : A.value) && Bx(A.value.path), f, d, h, b);
    function L(I) {
      const O = Bpe(I, e, y, TK, b);
      if (O)
        return { value: O };
      if (Pl(e)) {
        const k = Wo(Pi(y, e));
        return Qf(TK(I, k, !1, b));
      } else {
        const k = Zh(y, (B) => {
          const V = nme(o, e, void 0, B, s, b);
          if (V)
            return V;
          const H = Wo(Pi(B, e));
          return Qf(TK(I, H, !1, b));
        });
        if (k)
          return k;
        if (I & 5)
          return V4e(e, y, b);
      }
    }
  }
  function qk(e, t) {
    return !!e.allowImportingTsExtensions || t && ld(t);
  }
  function ime(e, t, r, i, o, s) {
    const l = Gv(r, i);
    l && _a(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: l,
      failedLookupLocations: f,
      affectingLocations: d,
      packageJsonInfoCache: s,
      features: 0,
      conditions: [],
      requestContainingDirectory: void 0,
      reportDiagnostic: (A) => void y.push(A),
      isConfigLookup: !1,
      candidateIsFromPackageJsonField: !1
    }, b = eme(4, e, o, h, !1, void 0, void 0);
    return Npe(b, !0, f, d, y, h.resultFromCache);
  }
  function Qf(e) {
    return e !== void 0 ? { value: e } : void 0;
  }
  function F1(e, t, ...r) {
    e.traceEnabled && _a(e.host, t, ...r);
  }
  var kK, wK, DK, Sy, S5, H4e = C({
    "src/compiler/moduleNameResolver.ts"() {
      wa(), wK = Pi("node_modules", "@types"), DK = /* @__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))(DK || {}), Sy = "/node_modules/", S5 = "__";
    }
  });
  function mg(e, t) {
    return e.body && !e.body.parent && (Bo(e.body, e), Rv(e.body, !1)), e.body ? RK(e.body, t) : 1;
  }
  function RK(e, t = /* @__PURE__ */ new Map()) {
    const r = ds(e);
    if (t.has(r))
      return t.get(r) || 0;
    t.set(r, void 0);
    const i = W4e(e, t);
    return t.set(r, i), i;
  }
  function W4e(e, t) {
    switch (e.kind) {
      case 261:
      case 262:
        return 0;
      case 263:
        if (v1(e))
          return 2;
        break;
      case 269:
      case 268:
        if (!Kr(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 = z4e(o, t);
            if (s > i && (i = s), i === 1)
              return i;
          }
          return i;
        }
        break;
      case 265: {
        let i = 0;
        return Ra(e, (o) => {
          const s = RK(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 mg(e, t);
      case 79:
        if (e.flags & 2048)
          return 0;
    }
    return 1;
  }
  function z4e(e, t) {
    const r = e.propertyName || e.name;
    let i = e.parent;
    for (; i; ) {
      if (oo(i) || Zp(i) || Hi(i)) {
        const o = i.statements;
        let s;
        for (const l of o)
          if (MR(l, r)) {
            l.parent || (Bo(l, i), Rv(l, !1));
            const f = RK(l, 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 ame(e, t) {
    ic("beforeBind"), Hp.logStartBindFile("" + e.fileName), cme(e, t), Hp.logStopBindFile(), ic("afterBind"), Hf("Bind", "beforeBind", "afterBind");
  }
  function q4e() {
    var e, t, r, i, o, s, l, f, d, y, h, b, A, L, I, O, k, B, V, H, te, X, Y = !1, P = 0, de, ne, ye = { flags: 1 }, ie = { flags: 1 }, W = Wt();
    return pe;
    function ce(G, Ze, zt, $n, La) {
      return od(er(G) || e, G, Ze, zt, $n, La);
    }
    function pe(G, Ze) {
      var zt, $n;
      e = G, t = Ze, r = $o(t), X = ve(e, Ze), ne = /* @__PURE__ */ new Set(), P = 0, de = Bl.getSymbolConstructor(), D.attachFlowNodeDebugInfo(ye), D.attachFlowNodeDebugInfo(ie), e.locals || ((zt = yi) == null || zt.push(yi.Phase.Bind, "bindSourceFile", { path: e.path }, !0), xt(e), ($n = yi) == null || $n.pop(), e.symbolCount = P, e.classifiableNames = ne, Bc()), e = void 0, t = void 0, r = void 0, i = void 0, o = void 0, s = void 0, l = void 0, f = void 0, d = void 0, y = !1, h = void 0, b = 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(G, Ze) {
      return m_(Ze, "alwaysStrict") && !G.isDeclarationFile ? !0 : !!G.externalModuleIndicator;
    }
    function Te(G, Ze) {
      return P++, new de(G, Ze);
    }
    function ee(G, Ze, zt) {
      G.flags |= zt, Ze.symbol = G, G.declarations = ry(G.declarations, Ze), zt & 1955 && !G.exports && (G.exports = ao()), zt & 6240 && !G.members && (G.members = ao()), G.constEnumOnlyModule && G.flags & 304 && (G.constEnumOnlyModule = !1), zt & 111551 && mN(G, Ze);
    }
    function $e(G) {
      if (G.kind === 274)
        return G.isExportEquals ? "export=" : "default";
      const Ze = Aa(G);
      if (Ze) {
        if (Du(G)) {
          const zt = B_(Ze);
          return qp(G) ? "__global" : `"${zt}"`;
        }
        if (Ze.kind === 164) {
          const zt = Ze.expression;
          if (zf(zt))
            return oc(zt.text);
          if (_3(zt))
            return ho(zt.operator) + zt.operand.text;
          D.fail("Only computed properties with literal names have declaration names");
        }
        if (Di(Ze)) {
          const zt = Tl(G);
          if (!zt)
            return;
          const $n = zt.symbol;
          return IN($n, Ze.escapedText);
        }
        return F_(Ze) ? VI(Ze) : void 0;
      }
      switch (G.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 (Ac(G) === 2)
            return "export=";
          D.fail("Unknown binary declaration kind");
          break;
        case 320:
          return jA(G) ? "__new" : "__call";
        case 166:
          return D.assert(G.parent.kind === 320, "Impossible parameter parent kind", () => `parent is: ${D.formatSyntaxKind(G.parent.kind)}, expected JSDocFunctionType`), "arg" + G.parent.parameters.indexOf(G);
      }
    }
    function Ue(G) {
      return _u(G) ? Ls(G.name) : ta(D.checkDefined($e(G)));
    }
    function Be(G, Ze, zt, $n, La, xa, Ce) {
      D.assert(Ce || !Iv(zt));
      const Ge = Kr(zt, 1024) || cd(zt) && zt.name.escapedText === "default", Lt = Ce ? "__computed" : Ge && Ze ? "default" : $e(zt);
      let Ot;
      if (Lt === void 0)
        Ot = Te(0, "__missing");
      else if (Ot = G.get(Lt), $n & 2885600 && ne.add(Lt), !Ot)
        G.set(Lt, Ot = Te(0, Lt)), xa && (Ot.isReplaceableByMethod = !0);
      else {
        if (xa && !Ot.isReplaceableByMethod)
          return Ot;
        if (Ot.flags & La) {
          if (Ot.isReplaceableByMethod)
            G.set(Lt, Ot = Te(0, Lt));
          else if (!($n & 3 && Ot.flags & 67108864)) {
            _u(zt) && Bo(zt.name, zt);
            let mn = Ot.flags & 2 ? _.Cannot_redeclare_block_scoped_variable_0 : _.Duplicate_identifier_0, bn = !0;
            (Ot.flags & 384 || $n & 384) && (mn = _.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations, bn = !1);
            let Tn = !1;
            Ie(Ot.declarations) && (Ge || Ot.declarations && Ot.declarations.length && zt.kind === 274 && !zt.isExportEquals) && (mn = _.A_module_cannot_have_multiple_default_exports, bn = !1, Tn = !0);
            const zn = [];
            Qp(zt) && xc(zt.type) && Kr(zt, 1) && Ot.flags & 2887656 && zn.push(ce(zt, _.Did_you_mean_0, `export type { ${ta(zt.name.escapedText)} }`));
            const Wr = Aa(zt) || zt;
            ze(Ot.declarations, (nr, _n) => {
              const dr = Aa(nr) || nr, Ea = ce(dr, mn, bn ? Ue(nr) : void 0);
              e.bindDiagnostics.push(Tn ? qo(Ea, ce(Wr, _n === 0 ? _.Another_export_default_is_here : _.and_here)) : Ea), Tn && zn.push(ce(dr, _.The_first_export_default_is_here));
            });
            const Wi = ce(Wr, mn, bn ? Ue(zt) : void 0);
            e.bindDiagnostics.push(qo(Wi, ...zn)), Ot = Te(0, Lt);
          }
        }
      }
      return ee(Ot, zt, $n), Ot.parent ? D.assert(Ot.parent === Ze, "Existing symbol parent should match new one") : Ot.parent = Ze, Ot;
    }
    function We(G, Ze, zt) {
      const $n = !!(uy(G) & 1) || Oe(G);
      if (Ze & 2097152)
        return G.kind === 278 || G.kind === 268 && $n ? Be(o.symbol.exports, o.symbol, G, Ze, zt) : (D.assertNode(o, wm), Be(o.locals, void 0, G, Ze, zt));
      if (f_(G) && D.assert(fr(G)), !Du(G) && ($n || o.flags & 64)) {
        if (!wm(o) || !o.locals || Kr(G, 1024) && !$e(G))
          return Be(o.symbol.exports, o.symbol, G, Ze, zt);
        const La = Ze & 111551 ? 1048576 : 0, xa = Be(o.locals, void 0, G, La, zt);
        return xa.exportSymbol = Be(o.symbol.exports, o.symbol, G, Ze, zt), G.localSymbol = xa, xa;
      } else
        return D.assertNode(o, wm), Be(o.locals, void 0, G, Ze, zt);
    }
    function Oe(G) {
      if (G.parent && Wc(G) && (G = G.parent), !f_(G))
        return !1;
      if (!DO(G) && G.fullName)
        return !0;
      const Ze = Aa(G);
      return Ze ? !!(UN(Ze.parent) && ei(Ze.parent) || mu(Ze.parent) && uy(Ze.parent) & 1) : !1;
    }
    function Me(G, Ze) {
      const zt = o, $n = s, La = l;
      if (Ze & 1 ? (G.kind !== 216 && (s = o), o = l = G, Ze & 32 && (o.locals = ao(), bo(o))) : Ze & 2 && (l = G, Ze & 32 && (l.locals = void 0)), Ze & 4) {
        const xa = h, Ce = b, Ge = A, Lt = L, Ot = k, mn = V, bn = H, Tn = Ze & 16 && !Kr(G, 512) && !G.asteriskToken && !!dT(G) || G.kind === 172;
        Tn || (h = PT({ flags: 2 }), Ze & 144 && (h.node = G)), L = Tn || G.kind === 173 || fr(G) && (G.kind === 259 || G.kind === 215) ? Pn() : void 0, k = void 0, b = void 0, A = void 0, V = void 0, H = !1, st(G), G.flags &= -2817, !(h.flags & 1) && Ze & 8 && u_(G.body) && (G.flags |= 256, H && (G.flags |= 512), G.endFlowNode = h), G.kind === 308 && (G.flags |= te, G.endFlowNode = h), L && (_r(L, h), h = At(L), (G.kind === 173 || G.kind === 172 || fr(G) && (G.kind === 259 || G.kind === 215)) && (G.returnFlowNode = h)), Tn || (h = xa), b = Ce, A = Ge, L = Lt, k = Ot, V = mn, H = bn;
      } else
        Ze & 64 ? (y = !1, st(G), D.assertNotNode(G, Ve), G.flags = y ? G.flags | 128 : G.flags & -129) : st(G);
      o = zt, s = $n, l = La;
    }
    function Xe(G) {
      He(G, (Ze) => Ze.kind === 259 ? xt(Ze) : void 0), He(G, (Ze) => Ze.kind !== 259 ? xt(Ze) : void 0);
    }
    function He(G, Ze = xt) {
      G !== void 0 && ze(G, Ze);
    }
    function Fe(G) {
      Ra(G, xt, He);
    }
    function st(G) {
      const Ze = Y;
      if (Y = !1, Ap(G)) {
        Fe(G), pn(G), Y = Ze;
        return;
      }
      switch (G.kind >= 240 && G.kind <= 256 && !t.allowUnreachableCode && (G.flowNode = h), G.kind) {
        case 244:
          nn(G);
          break;
        case 243:
          Mn(G);
          break;
        case 245:
          Ar(G);
          break;
        case 246:
        case 247:
          Vr(G);
          break;
        case 242:
          ke(G);
          break;
        case 250:
        case 254:
          gt(G);
          break;
        case 249:
        case 248:
          _t(G);
          break;
        case 255:
          _e(G);
          break;
        case 252:
          re(G);
          break;
        case 266:
          he(G);
          break;
        case 292:
          j(G);
          break;
        case 241:
          je(G);
          break;
        case 253:
          Ke(G);
          break;
        case 221:
          Er(G);
          break;
        case 222:
          ue(G);
          break;
        case 223:
          if (hy(G)) {
            Y = Ze, pt(G);
            return;
          }
          W(G);
          break;
        case 217:
          it(G);
          break;
        case 224:
          K(G);
          break;
        case 257:
          Z(G);
          break;
        case 208:
        case 209:
          Gi(G);
          break;
        case 210:
          _o(G);
          break;
        case 232:
          xi(G);
          break;
        case 349:
        case 341:
        case 343:
          ht(G);
          break;
        case 308: {
          Xe(G.statements), xt(G.endOfFileToken);
          break;
        }
        case 238:
        case 265:
          Xe(G.statements);
          break;
        case 205:
          Re(G);
          break;
        case 166:
          q(G);
          break;
        case 207:
        case 206:
        case 299:
        case 227:
          Y = Ze;
        default:
          Fe(G);
          break;
      }
      pn(G), Y = Ze;
    }
    function Ct(G) {
      switch (G.kind) {
        case 79:
        case 80:
        case 108:
        case 208:
        case 209:
          return Vt(G);
        case 210:
          return tt(G);
        case 214:
        case 232:
          return Ct(G.expression);
        case 223:
          return an(G);
        case 221:
          return G.operator === 53 && Ct(G.operand);
        case 218:
          return Ct(G.expression);
      }
      return !1;
    }
    function Et(G) {
      return XI(G) || (Mr(G) || Lx(G) || Fd(G)) && Et(G.expression) || br(G) && G.operatorToken.kind === 27 && Et(G.right) || cc(G) && (zf(G.argumentExpression) || jc(G.argumentExpression)) && Et(G.expression) || Yu(G) && Et(G.left);
    }
    function Vt(G) {
      return Et(G) || pu(G) && Vt(G.expression);
    }
    function tt(G) {
      if (G.arguments) {
        for (const Ze of G.arguments)
          if (Vt(Ze))
            return !0;
      }
      return !!(G.expression.kind === 208 && Vt(G.expression.expression));
    }
    function at(G, Ze) {
      return yC(G) && Xt(G.expression) && Es(Ze);
    }
    function an(G) {
      switch (G.operatorToken.kind) {
        case 63:
        case 75:
        case 76:
        case 77:
          return Vt(G.left);
        case 34:
        case 35:
        case 36:
        case 37:
          return Xt(G.left) || Xt(G.right) || at(G.right, G.left) || at(G.left, G.right);
        case 102:
          return Xt(G.left);
        case 101:
          return Ct(G.right);
        case 27:
          return Ct(G.right);
      }
      return !1;
    }
    function Xt(G) {
      switch (G.kind) {
        case 214:
          return Xt(G.expression);
        case 223:
          switch (G.operatorToken.kind) {
            case 63:
              return Xt(G.left);
            case 27:
              return Xt(G.right);
          }
      }
      return Vt(G);
    }
    function Pn() {
      return PT({ flags: 4, antecedents: void 0 });
    }
    function Wn() {
      return PT({ flags: 8, antecedents: void 0 });
    }
    function In(G, Ze, zt) {
      return PT({ flags: 1024, target: G, antecedents: Ze, antecedent: zt });
    }
    function Yt(G) {
      G.flags |= G.flags & 2048 ? 4096 : 2048;
    }
    function _r(G, Ze) {
      !(Ze.flags & 1) && !wi(G.antecedents, Ze) && ((G.antecedents || (G.antecedents = [])).push(Ze), Yt(Ze));
    }
    function Ai(G, Ze, zt) {
      return Ze.flags & 1 ? Ze : zt ? (zt.kind === 110 && G & 64 || zt.kind === 95 && G & 32) && !EM(zt) && !rW(zt.parent) ? ye : Ct(zt) ? (Yt(Ze), PT({ flags: G, antecedent: Ze, node: zt })) : Ze : G & 32 ? Ze : ye;
    }
    function Ki(G, Ze, zt, $n) {
      return Yt(G), PT({ flags: 128, antecedent: G, switchStatement: Ze, clauseStart: zt, clauseEnd: $n });
    }
    function Xi(G, Ze, zt) {
      Yt(Ze);
      const $n = PT({ flags: G, antecedent: Ze, node: zt });
      return k && _r(k, $n), $n;
    }
    function Nr(G, Ze) {
      return Yt(G), PT({ flags: 512, antecedent: G, node: Ze });
    }
    function At(G) {
      const Ze = G.antecedents;
      return Ze ? Ze.length === 1 ? Ze[0] : G : ye;
    }
    function vn(G) {
      const Ze = G.parent;
      switch (Ze.kind) {
        case 242:
        case 244:
        case 243:
          return Ze.expression === G;
        case 245:
        case 224:
          return Ze.condition === G;
      }
      return !1;
    }
    function Ht(G) {
      for (; ; )
        if (G.kind === 214)
          G = G.expression;
        else if (G.kind === 221 && G.operator === 53)
          G = G.operand;
        else
          return BN(G);
    }
    function dn(G) {
      return Oz(Gs(G));
    }
    function ir(G) {
      for (; Fd(G.parent) || Ov(G.parent) && G.parent.operator === 53; )
        G = G.parent;
      return !vn(G) && !Ht(G.parent) && !(pu(G.parent) && G.parent.expression === G);
    }
    function lr(G, Ze, zt, $n) {
      const La = I, xa = O;
      I = zt, O = $n, G(Ze), I = La, O = xa;
    }
    function Ni(G, Ze, zt) {
      lr(xt, G, Ze, zt), (!G || !dn(G) && !Ht(G) && !(pu(G) && bI(G))) && (_r(Ze, Ai(32, h, G)), _r(zt, Ai(64, h, G)));
    }
    function pi(G, Ze, zt) {
      const $n = b, La = A;
      b = Ze, A = zt, xt(G), b = $n, A = La;
    }
    function Nn(G, Ze) {
      let zt = V;
      for (; zt && G.parent.kind === 253; )
        zt.continueTarget = Ze, zt = zt.next, G = G.parent;
      return Ze;
    }
    function nn(G) {
      const Ze = Nn(G, Wn()), zt = Pn(), $n = Pn();
      _r(Ze, h), h = Ze, Ni(G.expression, zt, $n), h = At(zt), pi(G.statement, $n, Ze), _r(Ze, h), h = At($n);
    }
    function Mn(G) {
      const Ze = Wn(), zt = Nn(G, Pn()), $n = Pn();
      _r(Ze, h), h = Ze, pi(G.statement, $n, zt), _r(zt, h), h = At(zt), Ni(G.expression, Ze, $n), h = At($n);
    }
    function Ar(G) {
      const Ze = Nn(G, Wn()), zt = Pn(), $n = Pn();
      xt(G.initializer), _r(Ze, h), h = Ze, Ni(G.condition, zt, $n), h = At(zt), pi(G.statement, $n, Ze), xt(G.incrementor), _r(Ze, h), h = At($n);
    }
    function Vr(G) {
      const Ze = Nn(G, Wn()), zt = Pn();
      xt(G.expression), _r(Ze, h), h = Ze, G.kind === 247 && xt(G.awaitModifier), _r(zt, h), xt(G.initializer), G.initializer.kind !== 258 && ln(G.initializer), pi(G.statement, zt, Ze), _r(Ze, h), h = At(zt);
    }
    function ke(G) {
      const Ze = Pn(), zt = Pn(), $n = Pn();
      Ni(G.expression, Ze, zt), h = At(Ze), xt(G.thenStatement), _r($n, h), h = At(zt), xt(G.elseStatement), _r($n, h), h = At($n);
    }
    function gt(G) {
      xt(G.expression), G.kind === 250 && (H = !0, L && _r(L, h)), h = ye;
    }
    function Nt(G) {
      for (let Ze = V; Ze; Ze = Ze.next)
        if (Ze.name === G)
          return Ze;
    }
    function xe(G, Ze, zt) {
      const $n = G.kind === 249 ? Ze : zt;
      $n && (_r($n, h), h = ye);
    }
    function _t(G) {
      if (xt(G.label), G.label) {
        const Ze = Nt(G.label.escapedText);
        Ze && (Ze.referenced = !0, xe(G, Ze.breakTarget, Ze.continueTarget));
      } else
        xe(G, b, A);
    }
    function _e(G) {
      const Ze = L, zt = k, $n = Pn(), La = Pn();
      let xa = Pn();
      if (G.finallyBlock && (L = La), _r(xa, h), k = xa, xt(G.tryBlock), _r($n, h), G.catchClause && (h = At(xa), xa = Pn(), _r(xa, h), k = xa, xt(G.catchClause), _r($n, h)), L = Ze, k = zt, G.finallyBlock) {
        const Ce = Pn();
        Ce.antecedents = ma(ma($n.antecedents, xa.antecedents), La.antecedents), h = Ce, xt(G.finallyBlock), h.flags & 1 ? h = ye : (L && La.antecedents && _r(L, In(Ce, La.antecedents, h)), k && xa.antecedents && _r(k, In(Ce, xa.antecedents, h)), h = $n.antecedents ? In(Ce, $n.antecedents, h) : ye);
      } else
        h = At($n);
    }
    function re(G) {
      const Ze = Pn();
      xt(G.expression);
      const zt = b, $n = B;
      b = Ze, B = h, xt(G.caseBlock), _r(Ze, h);
      const La = ze(G.caseBlock.clauses, (xa) => xa.kind === 293);
      G.possiblyExhaustive = !La && !Ze.antecedents, La || _r(Ze, Ki(B, G, 0, 0)), b = zt, B = $n, h = At(Ze);
    }
    function he(G) {
      const Ze = G.clauses, zt = Ct(G.parent.expression);
      let $n = ye;
      for (let La = 0; La < Ze.length; La++) {
        const xa = La;
        for (; !Ze[La].statements.length && La + 1 < Ze.length; )
          xt(Ze[La]), La++;
        const Ce = Pn();
        _r(Ce, zt ? Ki(B, G.parent, xa, La + 1) : B), _r(Ce, $n), h = At(Ce);
        const Ge = Ze[La];
        xt(Ge), $n = h, !(h.flags & 1) && La !== Ze.length - 1 && t.noFallthroughCasesInSwitch && (Ge.fallthroughFlowNode = h);
      }
    }
    function j(G) {
      const Ze = h;
      h = B, xt(G.expression), h = Ze, He(G.statements);
    }
    function je(G) {
      xt(G.expression), Qe(G.expression);
    }
    function Qe(G) {
      if (G.kind === 210) {
        const Ze = G;
        Ze.expression.kind !== 106 && XI(Ze.expression) && (h = Nr(h, Ze));
      }
    }
    function Ke(G) {
      const Ze = Pn();
      V = {
        next: V,
        name: G.label.escapedText,
        breakTarget: Ze,
        continueTarget: void 0,
        referenced: !1
      }, xt(G.label), xt(G.statement), !V.referenced && !t.allowUnusedLabels && jt(bde(t), G.label, _.Unused_label), V = V.next, _r(Ze, h), h = At(Ze);
    }
    function Ut(G) {
      G.kind === 223 && G.operatorToken.kind === 63 ? ln(G.left) : ln(G);
    }
    function ln(G) {
      if (Et(G))
        h = Xi(16, h, G);
      else if (G.kind === 206)
        for (const Ze of G.elements)
          Ze.kind === 227 ? ln(Ze.expression) : Ut(Ze);
      else if (G.kind === 207)
        for (const Ze of G.properties)
          Ze.kind === 299 ? Ut(Ze.initializer) : Ze.kind === 300 ? ln(Ze.name) : Ze.kind === 301 && ln(Ze.expression);
    }
    function Sn(G, Ze, zt) {
      const $n = Pn();
      G.operatorToken.kind === 55 || G.operatorToken.kind === 76 ? Ni(G.left, $n, zt) : Ni(G.left, Ze, $n), h = At($n), xt(G.operatorToken), KI(G.operatorToken.kind) ? (lr(xt, G.right, Ze, zt), ln(G.left), _r(Ze, Ai(32, h, G)), _r(zt, Ai(64, h, G))) : Ni(G.right, Ze, zt);
    }
    function Er(G) {
      if (G.operator === 53) {
        const Ze = I;
        I = O, O = Ze, Fe(G), O = I, I = Ze;
      } else
        Fe(G), (G.operator === 45 || G.operator === 46) && ln(G.operand);
    }
    function ue(G) {
      Fe(G), (G.operator === 45 || G.operator === 46) && ln(G.operand);
    }
    function pt(G) {
      Y ? (Y = !1, xt(G.operatorToken), xt(G.right), Y = !0, xt(G.left)) : (Y = !0, xt(G.left), Y = !1, xt(G.operatorToken), xt(G.right)), ln(G.left);
    }
    function Wt() {
      return W7(G, Ze, zt, $n, La, void 0);
      function G(Ce, Ge) {
        if (Ge) {
          Ge.stackIndex++, Bo(Ce, i);
          const Ot = X;
          ya(Ce);
          const mn = i;
          i = Ce, Ge.skip = !1, Ge.inStrictModeStack[Ge.stackIndex] = Ot, Ge.parentStack[Ge.stackIndex] = mn;
        } else
          Ge = {
            stackIndex: 0,
            skip: !1,
            inStrictModeStack: [void 0],
            parentStack: [void 0]
          };
        const Lt = Ce.operatorToken.kind;
        if (FN(Lt) || KI(Lt)) {
          if (ir(Ce)) {
            const Ot = Pn();
            Sn(Ce, Ot, Ot), h = At(Ot);
          } else
            Sn(Ce, I, O);
          Ge.skip = !0;
        }
        return Ge;
      }
      function Ze(Ce, Ge, Lt) {
        if (!Ge.skip) {
          const Ot = xa(Ce);
          return Lt.operatorToken.kind === 27 && Qe(Ce), Ot;
        }
      }
      function zt(Ce, Ge, Lt) {
        Ge.skip || xt(Ce);
      }
      function $n(Ce, Ge, Lt) {
        if (!Ge.skip) {
          const Ot = xa(Ce);
          return Lt.operatorToken.kind === 27 && Qe(Ce), Ot;
        }
      }
      function La(Ce, Ge) {
        if (!Ge.skip) {
          const mn = Ce.operatorToken.kind;
          if (my(mn) && !gh(Ce) && (ln(Ce.left), mn === 63 && Ce.left.kind === 209)) {
            const bn = Ce.left;
            Xt(bn.expression) && (h = Xi(256, h, Ce));
          }
        }
        const Lt = Ge.inStrictModeStack[Ge.stackIndex], Ot = Ge.parentStack[Ge.stackIndex];
        Lt !== void 0 && (X = Lt), Ot !== void 0 && (i = Ot), Ge.skip = !1, Ge.stackIndex--;
      }
      function xa(Ce) {
        if (Ce && br(Ce) && !hy(Ce))
          return Ce;
        xt(Ce);
      }
    }
    function it(G) {
      Fe(G), G.expression.kind === 208 && ln(G.expression);
    }
    function K(G) {
      const Ze = Pn(), zt = Pn(), $n = Pn();
      Ni(G.condition, Ze, zt), h = At(Ze), xt(G.questionToken), xt(G.whenTrue), _r($n, h), h = At(zt), xt(G.colonToken), xt(G.whenFalse), _r($n, h), h = At($n);
    }
    function Pe(G) {
      const Ze = kl(G) ? void 0 : G.name;
      if (Ja(Ze))
        for (const zt of Ze.elements)
          Pe(zt);
      else
        h = Xi(16, h, G);
    }
    function Z(G) {
      Fe(G), (G.initializer || CA(G.parent.parent)) && Pe(G);
    }
    function Re(G) {
      xt(G.dotDotDotToken), xt(G.propertyName), Rt(G.initializer), xt(G.name);
    }
    function q(G) {
      He(G.modifiers), xt(G.dotDotDotToken), xt(G.questionToken), xt(G.type), Rt(G.initializer), xt(G.name);
    }
    function Rt(G) {
      if (!G)
        return;
      const Ze = h;
      if (xt(G), Ze === ye || Ze === h)
        return;
      const zt = Pn();
      _r(zt, Ze), _r(zt, h), h = At(zt);
    }
    function ht(G) {
      xt(G.tagName), G.kind !== 343 && G.fullName && (Bo(G.fullName, G), Rv(G.fullName, !1)), typeof G.comment != "string" && He(G.comment);
    }
    function dt(G) {
      Fe(G);
      const Ze = W0(G);
      Ze && Ze.kind !== 171 && ee(Ze.symbol, Ze, 32);
    }
    function fn(G, Ze, zt) {
      lr(xt, G, Ze, zt), (!pu(G) || bI(G)) && (_r(Ze, Ai(32, h, G)), _r(zt, Ai(64, h, G)));
    }
    function Qn(G) {
      switch (G.kind) {
        case 208:
          xt(G.questionDotToken), xt(G.name);
          break;
        case 209:
          xt(G.questionDotToken), xt(G.argumentExpression);
          break;
        case 210:
          xt(G.questionDotToken), He(G.typeArguments), He(G.arguments);
          break;
      }
    }
    function ai(G, Ze, zt) {
      const $n = vI(G) ? Pn() : void 0;
      fn(G.expression, $n || Ze, zt), $n && (h = At($n)), lr(Qn, G, Ze, zt), bI(G) && (_r(Ze, Ai(32, h, G)), _r(zt, Ai(64, h, G)));
    }
    function Si(G) {
      if (ir(G)) {
        const Ze = Pn();
        ai(G, Ze, Ze), h = At(Ze);
      } else
        ai(G, I, O);
    }
    function xi(G) {
      pu(G) ? Si(G) : Fe(G);
    }
    function Gi(G) {
      pu(G) ? Si(G) : Fe(G);
    }
    function _o(G) {
      if (pu(G))
        Si(G);
      else {
        const Ze = Gs(G.expression);
        Ze.kind === 215 || Ze.kind === 216 ? (He(G.typeArguments), He(G.arguments), xt(G.expression)) : (Fe(G), G.expression.kind === 106 && (h = Nr(h, G)));
      }
      if (G.expression.kind === 208) {
        const Ze = G.expression;
        Ve(Ze.name) && Xt(Ze.expression) && pz(Ze.name) && (h = Xi(256, h, G));
      }
    }
    function bo(G) {
      f && (f.nextContainer = G), f = G;
    }
    function no(G, Ze, zt) {
      switch (o.kind) {
        case 264:
          return We(G, Ze, zt);
        case 308:
          return Ui(G, Ze, zt);
        case 228:
        case 260:
          return sa(G, Ze, zt);
        case 263:
          return Be(o.symbol.exports, o.symbol, G, Ze, zt);
        case 184:
        case 325:
        case 207:
        case 261:
        case 289:
          return Be(o.symbol.members, o.symbol, G, Ze, zt);
        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, wm), Be(o.locals, void 0, G, Ze, zt);
      }
    }
    function sa(G, Ze, zt) {
      return za(G) ? Be(o.symbol.exports, o.symbol, G, Ze, zt) : Be(o.symbol.members, o.symbol, G, Ze, zt);
    }
    function Ui(G, Ze, zt) {
      return Yc(e) ? We(G, Ze, zt) : Be(e.locals, void 0, G, Ze, zt);
    }
    function Jr(G) {
      const Ze = Hi(G) ? G : ii(G.body, Zp);
      return !!Ze && Ze.statements.some((zt) => Xl(zt) || Mc(zt));
    }
    function is(G) {
      G.flags & 16777216 && !Jr(G) ? G.flags |= 64 : G.flags &= -65;
    }
    function di(G) {
      if (is(G), Du(G))
        if (Kr(G, 1) && It(G, _.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible), MW(G))
          ca(G);
        else {
          let Ze;
          if (G.name.kind === 10) {
            const { text: $n } = G.name;
            Ze = nC($n), Ze === void 0 && It(G.name, _.Pattern_0_can_have_at_most_one_Asterisk_character, $n);
          }
          const zt = no(G, 512, 110735);
          e.patternAmbientModules = Bn(e.patternAmbientModules, Ze && !Ua(Ze) ? { pattern: Ze, symbol: zt } : void 0);
        }
      else {
        const Ze = ca(G);
        if (Ze !== 0) {
          const { symbol: zt } = G;
          zt.constEnumOnlyModule = !(zt.flags & 304) && Ze === 2 && zt.constEnumOnlyModule !== !1;
        }
      }
    }
    function ca(G) {
      const Ze = mg(G), zt = Ze !== 0;
      return no(G, zt ? 512 : 1024, zt ? 110735 : 0), Ze;
    }
    function wn(G) {
      const Ze = Te(131072, $e(G));
      ee(Ze, G, 131072);
      const zt = Te(2048, "__type");
      ee(zt, G, 2048), zt.members = ao(), zt.members.set(Ze.escapedName, Ze);
    }
    function ua(G) {
      return Fc(G, 4096, "__object");
    }
    function $c(G) {
      return Fc(G, 4096, "__jsxAttributes");
    }
    function nc(G, Ze, zt) {
      return no(G, Ze, zt);
    }
    function Fc(G, Ze, zt) {
      const $n = Te(Ze, zt);
      return Ze & 106508 && ($n.parent = o.symbol), ee($n, G, Ze), $n;
    }
    function qc(G, Ze, zt) {
      switch (l.kind) {
        case 264:
          We(G, Ze, zt);
          break;
        case 308:
          if (nf(o)) {
            We(G, Ze, zt);
            break;
          }
        default:
          D.assertNode(l, wm), l.locals || (l.locals = ao(), bo(l)), Be(l.locals, void 0, G, Ze, zt);
      }
    }
    function Bc() {
      if (!d)
        return;
      const G = o, Ze = f, zt = l, $n = i, La = h;
      for (const xa of d) {
        const Ce = xa.parent.parent;
        o = rr(Ce.parent, (Lt) => !!(sme(Lt) & 1)) || e, l = Nm(Ce) || e, h = PT({ flags: 2 }), i = xa, xt(xa.typeExpression);
        const Ge = Aa(xa);
        if ((DO(xa) || !xa.fullName) && Ge && UN(Ge.parent)) {
          const Lt = ei(Ge.parent);
          if (Lt) {
            jn(e.symbol, Ge.parent, Lt, !!rr(Ge, (mn) => Mr(mn) && mn.name.escapedText === "prototype"), !1);
            const Ot = o;
            switch (_N(Ge.parent)) {
              case 1:
              case 2:
                nf(e) ? o = e : o = void 0;
                break;
              case 4:
                o = Ge.parent.expression;
                break;
              case 3:
                o = Ge.parent.expression.name;
                break;
              case 5:
                o = B1(e, Ge.parent.expression) ? e : Mr(Ge.parent.expression) ? Ge.parent.expression.name : Ge.parent.expression;
                break;
              case 0:
                return D.fail("Shouldn't have detected typedef or enum on non-assignment declaration");
            }
            o && We(xa, 524288, 788968), o = Ot;
          }
        } else
          DO(xa) || !xa.fullName || xa.fullName.kind === 79 ? (i = xa.parent, qc(xa, 524288, 788968)) : xt(xa.fullName);
      }
      o = G, f = Ze, l = zt, i = $n, h = La;
    }
    function xo(G) {
      if (!e.parseDiagnostics.length && !(G.flags & 16777216) && !(G.flags & 8388608) && !bue(G)) {
        const Ze = G0(G);
        if (Ze === void 0)
          return;
        X && Ze >= 117 && Ze <= 125 ? e.bindDiagnostics.push(ce(G, Sa(G), Ls(G))) : Ze === 133 ? Yc(e) && $M(G) ? e.bindDiagnostics.push(ce(G, _.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module, Ls(G))) : G.flags & 32768 && e.bindDiagnostics.push(ce(G, _.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, Ls(G))) : Ze === 125 && G.flags & 8192 && e.bindDiagnostics.push(ce(G, _.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, Ls(G)));
      }
    }
    function Sa(G) {
      return Tl(G) ? _.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 Jo(G) {
      G.escapedText === "#constructor" && (e.parseDiagnostics.length || e.bindDiagnostics.push(ce(G, _.constructor_is_a_reserved_word, Ls(G))));
    }
    function Gc(G) {
      X && vd(G.left) && my(G.operatorToken.kind) && Hl(G, G.left);
    }
    function Yl(G) {
      X && G.variableDeclaration && Hl(G, G.variableDeclaration.name);
    }
    function jd(G) {
      if (X && G.expression.kind === 79) {
        const Ze = y1(e, G.expression);
        e.bindDiagnostics.push(Il(e, Ze.start, Ze.length, _.delete_cannot_be_called_on_an_identifier_in_strict_mode));
      }
    }
    function rl(G) {
      return Ve(G) && (G.escapedText === "eval" || G.escapedText === "arguments");
    }
    function Hl(G, Ze) {
      if (Ze && Ze.kind === 79) {
        const zt = Ze;
        if (rl(zt)) {
          const $n = y1(e, Ze);
          e.bindDiagnostics.push(Il(e, $n.start, $n.length, Is(G), Pr(zt)));
        }
      }
    }
    function Is(G) {
      return Tl(G) ? _.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 mc(G) {
      X && Hl(G, G.name);
    }
    function $s(G) {
      return Tl(G) ? _.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 zs(G) {
      if (r < 2 && l.kind !== 308 && l.kind !== 264 && !SA(l)) {
        const Ze = y1(e, G);
        e.bindDiagnostics.push(Il(e, Ze.start, Ze.length, $s(G)));
      }
    }
    function tn(G) {
      r < 1 && X && G.numericLiteralFlags & 32 && e.bindDiagnostics.push(ce(G, _.Octal_literals_are_not_allowed_in_strict_mode));
    }
    function Uc(G) {
      X && Hl(G, G.operand);
    }
    function bu(G) {
      X && (G.operator === 45 || G.operator === 46) && Hl(G, G.operand);
    }
    function Uu(G) {
      X && It(G, _.with_statements_are_not_allowed_in_strict_mode);
    }
    function fe(G) {
      X && $o(t) >= 2 && (gle(G.statement) || cl(G.statement)) && It(G.label, _.A_label_is_not_allowed_here);
    }
    function It(G, Ze, zt, $n, La) {
      const xa = py(e, G.pos);
      e.bindDiagnostics.push(Il(e, xa.start, xa.length, Ze, zt, $n, La));
    }
    function jt(G, Ze, zt) {
      Q(G, Ze, Ze, zt);
    }
    function Q(G, Ze, zt, $n) {
      ot(G, { pos: sT(Ze, e), end: zt.end }, $n);
    }
    function ot(G, Ze, zt) {
      const $n = Il(e, Ze.pos, Ze.end - Ze.pos, zt);
      G ? e.bindDiagnostics.push($n) : e.bindSuggestionDiagnostics = Bn(e.bindSuggestionDiagnostics, { ...$n, category: 2 });
    }
    function xt(G) {
      if (!G)
        return;
      Bo(G, i), yi && (G.tracingPath = e.path);
      const Ze = X;
      if (ya(G), G.kind > 162) {
        const zt = i;
        i = G;
        const $n = sme(G);
        $n === 0 ? st(G) : Me(G, $n), i = zt;
      } else {
        const zt = i;
        G.kind === 1 && (i = G), pn(G), i = zt;
      }
      X = Ze;
    }
    function pn(G) {
      if (bf(G))
        if (fr(G))
          for (const Ze of G.jsDoc)
            xt(Ze);
        else
          for (const Ze of G.jsDoc)
            Bo(Ze, G), Rv(Ze, !1);
    }
    function wr(G) {
      if (!X)
        for (const Ze of G) {
          if (!pp(Ze))
            return;
          if (Or(Ze)) {
            X = !0;
            return;
          }
        }
    }
    function Or(G) {
      const Ze = h1(e, G.expression);
      return Ze === '"use strict"' || Ze === "'use strict'";
    }
    function ya(G) {
      switch (G.kind) {
        case 79:
          if (G.flags & 2048) {
            let Ce = G.parent;
            for (; Ce && !f_(Ce); )
              Ce = Ce.parent;
            qc(Ce, 524288, 788968);
            break;
          }
        case 108:
          return h && (yt(G) || i.kind === 300) && (G.flowNode = h), xo(G);
        case 163:
          h && n3(G) && (G.flowNode = h);
          break;
        case 233:
        case 106:
          G.flowNode = h;
          break;
        case 80:
          return Jo(G);
        case 208:
        case 209:
          const Ze = G;
          h && Et(Ze) && (Ze.flowNode = h), lue(Ze) && qi(Ze), fr(Ze) && e.commonJsModuleIndicator && hh(Ze) && !f8(l, "module") && Be(e.locals, void 0, Ze.expression, 134217729, 111550);
          break;
        case 223:
          switch (Ac(G)) {
            case 1:
              Hd(G);
              break;
            case 2:
              Vc(G);
              break;
            case 3:
              lt(G.left, G);
              break;
            case 6:
              Ao(G);
              break;
            case 4:
              Se(G);
              break;
            case 5:
              const Ce = G.left.expression;
              if (fr(G) && Ve(Ce)) {
                const Ge = f8(l, Ce.escapedText);
                if (QM(Ge == null ? void 0 : Ge.valueDeclaration)) {
                  Se(G);
                  break;
                }
              }
              Pt(G);
              break;
            case 0:
              break;
            default:
              D.fail("Unknown binary expression special property assignment kind");
          }
          return Gc(G);
        case 295:
          return Yl(G);
        case 217:
          return jd(G);
        case 8:
          return tn(G);
        case 222:
          return Uc(G);
        case 221:
          return bu(G);
        case 251:
          return Uu(G);
        case 253:
          return fe(G);
        case 194:
          y = !0;
          return;
        case 179:
          break;
        case 165:
          return df(G);
        case 166:
          return Eu(G);
        case 257:
          return Wd(G);
        case 205:
          return G.flowNode = h, Wd(G);
        case 169:
        case 168:
          return as(G);
        case 299:
        case 300:
          return Ko(G, 4, 0);
        case 302:
          return Ko(G, 8, 900095);
        case 176:
        case 177:
        case 178:
          return no(G, 131072, 0);
        case 171:
        case 170:
          return Ko(G, 8192 | (G.questionToken ? 16777216 : 0), M_(G) ? 0 : 103359);
        case 259:
          return uf(G);
        case 173:
          return no(G, 16384, 0);
        case 174:
          return Ko(G, 32768, 46015);
        case 175:
          return Ko(G, 65536, 78783);
        case 181:
        case 320:
        case 326:
        case 182:
          return wn(G);
        case 184:
        case 325:
        case 197:
          return po(G);
        case 335:
          return dt(G);
        case 207:
          return ua(G);
        case 215:
        case 216:
          return b_(G);
        case 210:
          switch (Ac(G)) {
            case 7:
              return Mt(G);
            case 8:
              return dc(G);
            case 9:
              return ae(G);
            case 0:
              break;
            default:
              return D.fail("Unknown call expression assignment declaration kind");
          }
          fr(G) && dd(G);
          break;
        case 228:
        case 260:
          return X = !0, lf(G);
        case 261:
          return qc(G, 64, 788872);
        case 262:
          return qc(G, 524288, 788968);
        case 263:
          return Qc(G);
        case 264:
          return di(G);
        case 289:
          return $c(G);
        case 288:
          return nc(G, 4, 0);
        case 268:
        case 271:
        case 273:
        case 278:
          return no(G, 2097152, 2097152);
        case 267:
          return ll(G);
        case 270:
          return ys(G);
        case 275:
          return ud(G);
        case 274:
          return uc(G);
        case 308:
          return wr(G.statements), Uo();
        case 238:
          if (!SA(G.parent))
            return;
        case 265:
          return wr(G.statements);
        case 344:
          if (G.parent.kind === 326)
            return Eu(G);
          if (G.parent.kind !== 325)
            break;
        case 351:
          const La = G, xa = La.isBracketed || La.typeExpression && La.typeExpression.type.kind === 319 ? 16777220 : 4;
          return no(La, xa, 0);
        case 349:
        case 341:
        case 343:
          return (d || (d = [])).push(G);
        case 342:
          return xt(G.typeExpression);
      }
    }
    function as(G) {
      const Ze = ef(G), zt = Ze ? 98304 : 4, $n = Ze ? 13247 : 0;
      return Ko(G, zt | (G.questionToken ? 16777216 : 0), $n);
    }
    function po(G) {
      return Fc(G, 2048, "__type");
    }
    function Uo() {
      if (is(e), Yc(e))
        Ka();
      else if (d_(e)) {
        Ka();
        const G = e.symbol;
        Be(e.symbol.exports, e.symbol, e, 4, 67108863), e.symbol = G;
      }
    }
    function Ka() {
      Fc(e, 512, `"${Md(e.fileName)}"`);
    }
    function uc(G) {
      if (!o.symbol || !o.symbol.exports)
        Fc(G, 111551, $e(G));
      else {
        const Ze = zA(G) ? 2097152 : 4, zt = Be(o.symbol.exports, o.symbol, G, Ze, 67108863);
        G.isExportEquals && mN(zt, G);
      }
    }
    function ll(G) {
      kt(G.modifiers) && e.bindDiagnostics.push(ce(G, _.Modifiers_cannot_appear_here));
      const Ze = Hi(G.parent) ? Yc(G.parent) ? G.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;
      Ze ? e.bindDiagnostics.push(ce(G, Ze)) : (e.symbol.globalExports = e.symbol.globalExports || ao(), Be(e.symbol.globalExports, e.symbol, G, 2097152, 2097152));
    }
    function ud(G) {
      !o.symbol || !o.symbol.exports ? Fc(G, 8388608, $e(G)) : G.exportClause ? Ah(G.exportClause) && (Bo(G.exportClause, G), Be(o.symbol.exports, o.symbol, G.exportClause, 2097152, 2097152)) : Be(o.symbol.exports, o.symbol, G, 8388608, 0);
    }
    function ys(G) {
      G.name && no(G, 2097152, 2097152);
    }
    function cs(G) {
      return e.externalModuleIndicator && e.externalModuleIndicator !== !0 ? !1 : (e.commonJsModuleIndicator || (e.commonJsModuleIndicator = G, e.externalModuleIndicator || Ka()), !0);
    }
    function dc(G) {
      if (!cs(G))
        return;
      const Ze = qs(G.arguments[0], void 0, (zt, $n) => ($n && ee($n, zt, 67110400), $n));
      Ze && Be(Ze.exports, Ze, G, 1048580, 0);
    }
    function Hd(G) {
      if (!cs(G))
        return;
      const Ze = qs(G.left.expression, void 0, (zt, $n) => ($n && ee($n, zt, 67110400), $n));
      if (Ze) {
        const $n = CN(G.right) && (fT(G.left.expression) || hh(G.left.expression)) ? 2097152 : 1048580;
        Bo(G.left, G), Be(Ze.exports, Ze, G.left, $n, 0);
      }
    }
    function Vc(G) {
      if (!cs(G))
        return;
      const Ze = uN(G.right);
      if (Fz(Ze) || o === e && B1(e, Ze))
        return;
      if (xs(Ze) && Rn(Ze.properties, $f)) {
        ze(Ze.properties, kf);
        return;
      }
      const zt = zA(G) ? 2097152 : 1049092, $n = Be(e.symbol.exports, e.symbol, G, zt | 67108864, 0);
      mN($n, G);
    }
    function kf(G) {
      Be(e.symbol.exports, e.symbol, G, 69206016, 0);
    }
    function Se(G) {
      if (D.assert(fr(G)), br(G) && Mr(G.left) && Di(G.left.name) || Mr(G) && Di(G.name))
        return;
      const zt = bd(G, !1, !1);
      switch (zt.kind) {
        case 259:
        case 215:
          let $n = zt.symbol;
          if (br(zt.parent) && zt.parent.operatorToken.kind === 63) {
            const Ce = zt.parent.left;
            _T(Ce) && J0(Ce.expression) && ($n = vs(Ce.expression.expression, s));
          }
          $n && $n.valueDeclaration && ($n.members = $n.members || ao(), Iv(G) ? Dt(G, $n, $n.members) : Be($n.members, $n, G, 67108868, 0), ee($n, $n.valueDeclaration, 32));
          break;
        case 173:
        case 169:
        case 171:
        case 174:
        case 175:
        case 172:
          const La = zt.parent, xa = za(zt) ? La.symbol.exports : La.symbol.members;
          Iv(G) ? Dt(G, La.symbol, xa) : Be(xa, La.symbol, G, 67108868, 0, !0);
          break;
        case 308:
          if (Iv(G))
            break;
          zt.commonJsModuleIndicator ? Be(zt.symbol.exports, zt.symbol, G, 1048580, 0) : no(G, 1, 111550);
          break;
        default:
          D.failBadSyntaxKind(zt);
      }
    }
    function Dt(G, Ze, zt) {
      Be(zt, Ze, G, 4, 0, !0, !0), On(G, Ze);
    }
    function On(G, Ze) {
      Ze && (Ze.assignmentDeclarationMembers || (Ze.assignmentDeclarationMembers = /* @__PURE__ */ new Map())).set(ds(G), G);
    }
    function qi(G) {
      G.expression.kind === 108 ? Se(G) : _T(G) && G.parent.parent.kind === 308 && (J0(G.expression) ? lt(G, G.parent) : un(G));
    }
    function Ao(G) {
      Bo(G.left, G), Bo(G.right, G), Oi(G.left.expression, G.left, !1, !0);
    }
    function ae(G) {
      const Ze = vs(G.arguments[0].expression);
      Ze && Ze.valueDeclaration && ee(Ze, Ze.valueDeclaration, 32), Dr(G, Ze, !0);
    }
    function lt(G, Ze) {
      const zt = G.expression, $n = zt.expression;
      Bo($n, zt), Bo(zt, G), Bo(G, Ze), Oi($n, G, !0, !0);
    }
    function Mt(G) {
      let Ze = vs(G.arguments[0]);
      const zt = G.parent.parent.kind === 308;
      Ze = jn(Ze, G.arguments[0], zt, !1, !1), Dr(G, Ze, !1);
    }
    function Pt(G) {
      var Ze;
      const zt = vs(G.left.expression, o) || vs(G.left.expression, l);
      if (!fr(G) && !uue(zt))
        return;
      const $n = nk(G.left);
      if (!(Ve($n) && ((Ze = f8(o, $n.escapedText)) == null ? void 0 : Ze.flags) & 2097152))
        if (Bo(G.left, G), Bo(G.right, G), Ve(G.left.expression) && o === e && B1(e, G.left.expression))
          Hd(G);
        else if (Iv(G)) {
          Fc(G, 67108868, "__computed");
          const La = jn(zt, G.left.expression, ei(G.left), !1, !1);
          On(G, La);
        } else
          un(ro(G.left, ex));
    }
    function un(G) {
      D.assert(!Ve(G)), Bo(G.expression, G), Oi(G.expression, G, !1, !1);
    }
    function jn(G, Ze, zt, $n, La) {
      return (G == null ? void 0 : G.flags) & 2097152 || (zt && !$n && (G = qs(Ze, G, (Ge, Lt, Ot) => {
        if (Lt)
          return ee(Lt, Ge, 67110400), Lt;
        {
          const mn = Ot ? Ot.exports : e.jsGlobalAugmentations || (e.jsGlobalAugmentations = ao());
          return Be(mn, Ot, Ge, 67110400, 110735);
        }
      })), La && G && G.valueDeclaration && ee(G, G.valueDeclaration, 32)), G;
    }
    function Dr(G, Ze, zt) {
      if (!Ze || !Ga(Ze))
        return;
      const $n = zt ? Ze.members || (Ze.members = ao()) : Ze.exports || (Ze.exports = ao());
      let La = 0, xa = 0;
      Xs(QS(G)) ? (La = 8192, xa = 103359) : eo(G) && ZS(G) && (kt(G.arguments[2].properties, (Ce) => {
        const Ge = Aa(Ce);
        return !!Ge && Ve(Ge) && Pr(Ge) === "set";
      }) && (La |= 65540, xa |= 78783), kt(G.arguments[2].properties, (Ce) => {
        const Ge = Aa(Ce);
        return !!Ge && Ve(Ge) && Pr(Ge) === "get";
      }) && (La |= 32772, xa |= 46015)), La === 0 && (La = 4, xa = 0), Be($n, Ze, G, La | 67108864, xa & -67108865);
    }
    function ei(G) {
      return br(G.parent) ? Vo(G.parent).parent.kind === 308 : G.parent.parent.kind === 308;
    }
    function Oi(G, Ze, zt, $n) {
      let La = vs(G, o) || vs(G, l);
      const xa = ei(Ze);
      La = jn(La, Ze.expression, xa, zt, $n), Dr(Ze, La, zt);
    }
    function Ga(G) {
      if (G.flags & 1072)
        return !0;
      const Ze = G.valueDeclaration;
      if (Ze && eo(Ze))
        return !!QS(Ze);
      let zt = Ze ? zi(Ze) ? Ze.initializer : br(Ze) ? Ze.right : Mr(Ze) && br(Ze.parent) ? Ze.parent.right : void 0 : void 0;
      if (zt = zt && uN(zt), zt) {
        const $n = J0(zi(Ze) ? Ze.name : br(Ze) ? Ze.left : Ze);
        return !!H0(br(zt) && (zt.operatorToken.kind === 56 || zt.operatorToken.kind === 60) ? zt.right : zt, $n);
      }
      return !1;
    }
    function Vo(G) {
      for (; br(G.parent); )
        G = G.parent;
      return G.parent;
    }
    function vs(G, Ze = o) {
      if (Ve(G))
        return f8(Ze, G.escapedText);
      {
        const zt = vs(G.expression);
        return zt && zt.exports && zt.exports.get(cg(G));
      }
    }
    function qs(G, Ze, zt) {
      if (B1(e, G))
        return e.symbol;
      if (Ve(G))
        return zt(G, vs(G), Ze);
      {
        const $n = qs(G.expression, Ze, zt), La = fN(G);
        return Di(La) && D.fail("unexpected PrivateIdentifier"), zt(La, $n && $n.exports && $n.exports.get(cg(G)), $n);
      }
    }
    function dd(G) {
      !e.commonJsModuleIndicator && Ed(G, !1) && cs(G);
    }
    function lf(G) {
      if (G.kind === 260)
        qc(G, 32, 899503);
      else {
        const La = G.name ? G.name.escapedText : "__class";
        Fc(G, 32, La), G.name && ne.add(G.name.escapedText);
      }
      const { symbol: Ze } = G, zt = Te(4194308, "prototype"), $n = Ze.exports.get(zt.escapedName);
      $n && (G.name && Bo(G.name, G), e.bindDiagnostics.push(ce($n.declarations[0], _.Duplicate_identifier_0, Oc(zt)))), Ze.exports.set(zt.escapedName, zt), zt.parent = Ze;
    }
    function Qc(G) {
      return v1(G) ? qc(G, 128, 899967) : qc(G, 256, 899327);
    }
    function Wd(G) {
      if (X && Hl(G, G.name), !Ja(G.name)) {
        const Ze = G.kind === 257 ? G : G.parent.parent;
        fr(G) && yc(t) !== 100 && E1(Ze) && !d1(G) && !(uy(G) & 1) ? no(G, 2097152, 2097152) : NW(G) ? qc(G, 2, 111551) : hT(G) ? no(G, 1, 111551) : no(G, 1, 111550);
      }
    }
    function Eu(G) {
      if (!(G.kind === 344 && o.kind !== 326) && (X && !(G.flags & 16777216) && Hl(G, G.name), Ja(G.name) ? Fc(G, 1, "__" + G.parent.parameters.indexOf(G)) : no(G, 1, 111551), Qd(G, G.parent))) {
        const Ze = G.parent.parent;
        Be(Ze.symbol.members, Ze.symbol, G, 4 | (G.questionToken ? 16777216 : 0), 0);
      }
    }
    function uf(G) {
      !e.isDeclarationFile && !(G.flags & 16777216) && KA(G) && (te |= 2048), mc(G), X ? (zs(G), qc(G, 16, 110991)) : no(G, 16, 110991);
    }
    function b_(G) {
      !e.isDeclarationFile && !(G.flags & 16777216) && KA(G) && (te |= 2048), h && (G.flowNode = h), mc(G);
      const Ze = G.name ? G.name.escapedText : "__function";
      return Fc(G, 16, Ze);
    }
    function Ko(G, Ze, zt) {
      return !e.isDeclarationFile && !(G.flags & 16777216) && KA(G) && (te |= 2048), h && KM(G) && (G.flowNode = h), Iv(G) ? Fc(G, Ze, "__computed") : no(G, Ze, zt);
    }
    function E_(G) {
      const Ze = rr(G, (zt) => zt.parent && mC(zt.parent) && zt.parent.extendsType === zt);
      return Ze && Ze.parent;
    }
    function df(G) {
      var Ze, zt;
      if (yp(G.parent)) {
        const $n = u3(G.parent);
        $n ? (D.assertNode($n, wm), (Ze = $n.locals) != null || ($n.locals = ao()), Be($n.locals, void 0, G, 262144, 526824)) : no(G, 262144, 526824);
      } else if (G.parent.kind === 192) {
        const $n = E_(G.parent);
        $n ? (D.assertNode($n, wm), (zt = $n.locals) != null || ($n.locals = ao()), Be($n.locals, void 0, G, 262144, 526824)) : Fc(G, 262144, $e(G));
      } else
        no(G, 262144, 526824);
    }
    function Y_(G) {
      const Ze = mg(G);
      return Ze === 1 || Ze === 2 && L1(t);
    }
    function Ap(G) {
      if (!(h.flags & 1))
        return !1;
      if (h === ye && (qR(G) && G.kind !== 239 || G.kind === 260 || G.kind === 264 && Y_(G)) && (h = ie, !t.allowUnreachableCode)) {
        const zt = vde(t) && !(G.flags & 16777216) && (!cl(G) || !!(_p(G.declarationList) & 3) || G.declarationList.declarations.some(($n) => !!$n.initializer));
        J4e(G, ($n, La) => Q(zt, $n, La, _.Unreachable_code_detected));
      }
      return !0;
    }
  }
  function J4e(e, t) {
    if (Ca(e) && ome(e) && oo(e.parent)) {
      const { statements: r } = e.parent, i = sq(r, e);
      sj(i, ome, (o, s) => t(i[o], i[s - 1]));
    } else
      t(e, e);
  }
  function ome(e) {
    return !ml(e) && !K4e(e) && !Z0(e) && !(cl(e) && !(_p(e) & 3) && e.declarationList.declarations.some((t) => !t.initializer));
  }
  function K4e(e) {
    switch (e.kind) {
      case 261:
      case 262:
        return !0;
      case 264:
        return mg(e) !== 1;
      case 263:
        return Kr(e, 2048);
      default:
        return !1;
    }
  }
  function B1(e, t) {
    let r = 0;
    const i = mj();
    for (i.enqueue(t); !i.isEmpty() && r < 100; ) {
      if (r++, t = i.dequeue(), fT(t) || hh(t))
        return !0;
      if (Ve(t)) {
        const o = f8(e, t.escapedText);
        if (o && o.valueDeclaration && zi(o.valueDeclaration) && o.valueDeclaration.initializer) {
          const s = o.valueDeclaration.initializer;
          i.enqueue(s), Yu(s, !0) && (i.enqueue(s.left), i.enqueue(s.right));
        }
      }
    }
    return !1;
  }
  function sme(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 (KM(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 qa(e.parent) || Lc(e.parent) ? 0 : 34;
    }
    return 0;
  }
  function f8(e, t) {
    var r, i, o, s, l;
    const f = (i = (r = ii(e, wm)) == null ? void 0 : r.locals) == null ? void 0 : i.get(t);
    if (f)
      return (o = f.exportSymbol) != null ? o : f;
    if (Hi(e) && e.jsGlobalAugmentations && e.jsGlobalAugmentations.has(t))
      return e.jsGlobalAugmentations.get(t);
    if (km(e))
      return (l = (s = e.symbol) == null ? void 0 : s.exports) == null ? void 0 : l.get(t);
  }
  var NK, cme, X4e = C({
    "src/compiler/binder.ts"() {
      wa(), c1(), NK = /* @__PURE__ */ ((e) => (e[e.NonInstantiated = 0] = "NonInstantiated", e[e.Instantiated = 1] = "Instantiated", e[e.ConstEnumOnly = 2] = "ConstEnumOnly", e))(NK || {}), cme = q4e();
    }
  });
  function lme(e, t, r, i, o, s, l, f, d, y) {
    return h;
    function h(b = () => !0) {
      const A = [], L = [];
      return {
        walkType: (ne) => {
          try {
            return I(ne), { visitedTypes: PS(A), visitedSymbols: PS(L) };
          } finally {
            co(A), co(L);
          }
        },
        walkSymbol: (ne) => {
          try {
            return de(ne), { visitedTypes: PS(A), visitedSymbols: PS(L) };
          } finally {
            co(A), co(L);
          }
        }
      };
      function I(ne) {
        if (!(!ne || A[ne.id] || (A[ne.id] = ne, de(ne.symbol)))) {
          if (ne.flags & 524288) {
            const ie = ne, W = ie.objectFlags;
            W & 4 && O(ne), W & 32 && te(ne), W & 3 && Y(ne), W & 24 && P(ie);
          }
          ne.flags & 262144 && k(ne), ne.flags & 3145728 && B(ne), ne.flags & 4194304 && V(ne), ne.flags & 8388608 && H(ne);
        }
      }
      function O(ne) {
        I(ne.target), ze(y(ne), I);
      }
      function k(ne) {
        I(f(ne));
      }
      function B(ne) {
        ze(ne.types, I);
      }
      function V(ne) {
        I(ne.type);
      }
      function H(ne) {
        I(ne.objectType), I(ne.indexType), I(ne.constraint);
      }
      function te(ne) {
        I(ne.typeParameter), I(ne.constraintType), I(ne.templateType), I(ne.modifiersType);
      }
      function X(ne) {
        const ye = t(ne);
        ye && I(ye.type), ze(ne.typeParameters, I);
        for (const ie of ne.parameters)
          de(ie);
        I(e(ne)), I(r(ne));
      }
      function Y(ne) {
        P(ne), ze(ne.typeParameters, I), ze(i(ne), I), I(ne.thisType);
      }
      function P(ne) {
        const ye = o(ne);
        for (const ie of ye.indexInfos)
          I(ie.keyType), I(ie.type);
        for (const ie of ye.callSignatures)
          X(ie);
        for (const ie of ye.constructSignatures)
          X(ie);
        for (const ie of ye.properties)
          de(ie);
      }
      function de(ne) {
        if (!ne)
          return !1;
        const ye = yo(ne);
        if (L[ye])
          return !1;
        if (L[ye] = ne, !b(ne))
          return !0;
        const ie = s(ne);
        return I(ie), ne.exports && ne.exports.forEach(de), ze(ne.declarations, (W) => {
          if (W.type && W.type.kind === 183) {
            const ce = W.type, pe = l(d(ce.exprName));
            de(pe);
          }
        }), !1;
      }
    }
  }
  var Y4e = C({
    "src/compiler/symbolWalker.ts"() {
      wa();
    }
  });
  function x5({ importModuleSpecifierPreference: e, importModuleSpecifierEnding: t }, r, i, o) {
    const s = l();
    return {
      relativePreference: o !== void 0 ? Pl(o) ? 0 : 1 : e === "relative" ? 0 : e === "non-relative" ? 1 : e === "project-relative" ? 3 : 2,
      getAllowedEndingsInPreferredOrder: (f) => {
        if ((f ?? i.impliedNodeFormat) === 99)
          return qk(r, i.fileName) ? [3, 2] : [2];
        if (yc(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 l() {
      if (o !== void 0) {
        if (_x(o))
          return 2;
        if (tl(o, "/index"))
          return 1;
      }
      return aq(t, i.impliedNodeFormat, r, i);
    }
  }
  function $4e(e, t, r, i, o, s, l = {}) {
    const f = ume(e, t, r, i, o, x5({}, e, t, s), {}, l);
    if (f !== s)
      return f;
  }
  function A5(e, t, r, i, o, s = {}) {
    return ume(e, t, r, i, o, x5({}, e, t), {}, s);
  }
  function Q4e(e, t, r, i, o, s = {}) {
    const l = OK(t.path, i), f = yme(t.path, r, i, o, s);
    return sn(f, (d) => PK(d, l, t, i, e, o, !0, s.overrideImportMode));
  }
  function ume(e, t, r, i, o, s, l, f = {}) {
    const d = OK(r, o), y = yme(r, i, o, l, f);
    return sn(y, (h) => PK(h, d, t, o, e, l, void 0, f.overrideImportMode)) || pme(i, d, e, o, f.overrideImportMode || t.impliedNodeFormat, s);
  }
  function Z4e(e, t, r, i, o = {}) {
    return dme(e, t, r, i, o)[0];
  }
  function dme(e, t, r, i, o = {}) {
    var s;
    const l = NM(e);
    if (!l)
      return rt;
    const f = (s = r.getModuleSpecifierCache) == null ? void 0 : s.call(r), d = f == null ? void 0 : f.get(t.path, l.path, i, o);
    return [d == null ? void 0 : d.moduleSpecifiers, l, d == null ? void 0 : d.modulePaths, f];
  }
  function fme(e, t, r, i, o, s, l = {}) {
    return _me(e, t, r, i, o, s, l).moduleSpecifiers;
  }
  function _me(e, t, r, i, o, s, l = {}) {
    let f = !1;
    const d = tMe(e, t);
    if (d)
      return { moduleSpecifiers: [d], computedWithoutCache: f };
    let [y, h, b, A] = dme(e, i, o, s, l);
    if (y)
      return { moduleSpecifiers: y, computedWithoutCache: f };
    if (!h)
      return { moduleSpecifiers: rt, computedWithoutCache: f };
    f = !0, b || (b = vme(i.path, h.originalFileName, o));
    const L = eMe(b, r, i, o, s, l);
    return A == null || A.set(i.path, h.path, s, l, b, L), { moduleSpecifiers: L, computedWithoutCache: f };
  }
  function eMe(e, t, r, i, o, s = {}) {
    const l = OK(r.path, i), f = x5(o, t, r), d = ze(e, (I) => ze(i.getFileIncludeReasons().get(js(I.path, i.getCurrentDirectory(), l.getCanonicalFileName)), (O) => {
      if (O.kind !== 3 || O.file !== r.path || r.impliedNodeFormat && r.impliedNodeFormat !== DX(r, O.index))
        return;
      const k = nF(r, O.index).text;
      return f.relativePreference !== 1 || !vf(k) ? k : void 0;
    }));
    if (d)
      return [d];
    const y = kt(e, (I) => I.isInNodeModules);
    let h, b, A, L;
    for (const I of e) {
      const O = I.isInNodeModules ? PK(I, l, r, i, t, o, void 0, s.overrideImportMode) : void 0;
      if (h = Bn(h, O), O && I.isRedirect)
        return h;
      if (!O) {
        const k = pme(I.path, l, t, i, s.overrideImportMode || r.impliedNodeFormat, f, I.isRedirect);
        if (!k)
          continue;
        I.isRedirect ? A = Bn(A, k) : OH(k) ? b = Bn(b, k) : (!y || I.isInNodeModules) && (L = Bn(L, k));
      }
    }
    return b != null && b.length ? b : A != null && A.length ? A : h != null && h.length ? h : D.checkDefined(L);
  }
  function OK(e, t) {
    const r = Zl(t.useCaseSensitiveFileNames ? t.useCaseSensitiveFileNames() : !0), i = _i(e);
    return { getCanonicalFileName: r, importingSourceFileName: e, sourceDirectory: i };
  }
  function pme(e, t, r, i, o, { getAllowedEndingsInPreferredOrder: s, relativePreference: l }, f) {
    const { baseUrl: d, paths: y, rootDirs: h } = r;
    if (f && !y)
      return;
    const { sourceDirectory: b, getCanonicalFileName: A } = t, L = s(o), I = h && nMe(h, e, b, A, L, r) || Jk(u1(Lm(b, e, A)), L, r);
    if (!d && !y || l === 0)
      return f ? void 0 : I;
    const O = Da(Az(r, i) || d, i.getCurrentDirectory()), k = Sme(e, O, A);
    if (!k)
      return f ? void 0 : I;
    const B = y && bme(k, y, L, i, r);
    if (f)
      return B;
    const V = B === void 0 && d !== void 0 ? Jk(k, L, r) : B;
    if (!V)
      return I;
    if (l === 1 && !vf(V))
      return V;
    if (l === 3 && !vf(V)) {
      const H = r.configFilePath ? js(_i(r.configFilePath), i.getCurrentDirectory(), t.getCanonicalFileName) : t.getCanonicalFileName(i.getCurrentDirectory()), te = js(e, H, A), X = ba(b, H), Y = ba(te, H);
      if (X && !Y || !X && Y)
        return V;
      const P = hme(i, _i(te));
      return hme(i, b) !== P ? V : I;
    }
    return xme(V) || _8(I) < _8(V) ? I : V;
  }
  function _8(e) {
    let t = 0;
    for (let r = ba(e, "./") ? 2 : 0; r < e.length; r++)
      e.charCodeAt(r) === 47 && t++;
    return t;
  }
  function mme(e, t) {
    return i1(t.isRedirect, e.isRedirect) || $N(e.path, t.path);
  }
  function hme(e, t) {
    return e.getNearestAncestorDirectoryWithPackageJson ? e.getNearestAncestorDirectoryWithPackageJson(t) : !!Zh(t, (r) => e.fileExists(Pi(r, "package.json")) ? !0 : void 0);
  }
  function gme(e, t, r, i, o) {
    var s;
    const l = q0(r), f = r.getCurrentDirectory(), d = r.isSourceOfProjectReferenceRedirect(t) ? r.getProjectReferenceRedirect(t) : void 0, y = js(t, f, l), h = r.redirectTargetsMap.get(y) || rt, A = [...d ? [d] : rt, t, ...h].map((B) => Da(B, f));
    let L = !Rn(A, fk);
    if (!i) {
      const B = ze(A, (V) => !(L && fk(V)) && o(V, d === V));
      if (B)
        return B;
    }
    const I = (s = r.getSymlinkCache) == null ? void 0 : s.call(r).getSymlinkedDirectoriesByRealpath(), O = Da(t, f);
    return I && Zh(_i(O), (B) => {
      const V = I.get(wu(js(B, f, l)));
      if (V)
        return BH(e, B, l) ? !1 : ze(A, (H) => {
          if (!BH(H, B, l))
            return;
          const te = Lm(B, H, l);
          for (const X of V) {
            const Y = hv(X, te), P = o(Y, H === d);
            if (L = !0, P)
              return P;
          }
        });
    }) || (i ? ze(A, (B) => L && fk(B) ? void 0 : o(B, B === d)) : void 0);
  }
  function yme(e, t, r, i, o = {}) {
    var s;
    const l = js(t, r.getCurrentDirectory(), q0(r)), f = (s = r.getModuleSpecifierCache) == null ? void 0 : s.call(r);
    if (f) {
      const y = f.get(e, l, i, o);
      if (y != null && y.modulePaths)
        return y.modulePaths;
    }
    const d = vme(e, t, r);
    return f && f.setModulePaths(e, l, i, o, d), d;
  }
  function vme(e, t, r) {
    const i = q0(r), o = /* @__PURE__ */ new Map();
    gme(e, t, r, !0, (l, f) => {
      const d = Bx(l);
      o.set(l, { path: i(l), isRedirect: f, isInNodeModules: d });
    });
    const s = [];
    for (let l = _i(e); o.size !== 0; ) {
      const f = wu(l);
      let d;
      o.forEach(({ path: h, isRedirect: b, isInNodeModules: A }, L) => {
        ba(h, f) && ((d || (d = [])).push({ path: L, isRedirect: b, isInNodeModules: A }), o.delete(L));
      }), d && (d.length > 1 && d.sort(mme), s.push(...d));
      const y = _i(l);
      if (y === l)
        break;
      l = y;
    }
    if (o.size) {
      const l = Do(o.values());
      l.length > 1 && l.sort(mme), s.push(...l);
    }
    return s;
  }
  function tMe(e, t) {
    var r;
    const i = (r = e.declarations) == null ? void 0 : r.find((l) => PW(l) && (!g1(l) || !Pl(B_(l.name))));
    if (i)
      return i.name.text;
    const s = fa(e.declarations, (l) => {
      var f, d, y, h;
      if (!Wc(l))
        return;
      const b = O(l);
      if (!((f = b == null ? void 0 : b.parent) != null && f.parent && Zp(b.parent) && Du(b.parent.parent) && Hi(b.parent.parent.parent)))
        return;
      const A = (h = (y = (d = b.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) === l.symbol)
        return b.parent.parent;
      function O(k) {
        for (; k.flags & 4; )
          k = k.parent;
        return k;
      }
    })[0];
    if (s)
      return s.name.text;
  }
  function bme(e, t, r, i, o) {
    for (const l in t)
      for (const f of t[l]) {
        const d = Wo(f), y = d.indexOf("*"), h = r.map((b) => ({
          ending: b,
          value: Jk(e, [b], o)
        }));
        if (bh(d) && h.push({ ending: void 0, value: e }), y !== -1) {
          const b = d.substring(0, y), A = d.substring(y + 1);
          for (const { ending: L, value: I } of h)
            if (I.length >= b.length + A.length && ba(I, b) && tl(I, A) && s({ ending: L, value: I })) {
              const O = I.substring(b.length, I.length - A.length);
              return l.replace("*", O);
            }
        } else if (kt(h, (b) => b.ending !== 0 && d === b.value) || kt(h, (b) => b.ending === 0 && d === b.value && s(b)))
          return l;
      }
    function s({ ending: l, value: f }) {
      return l !== 0 || f === Jk(e, [l], o, i);
    }
  }
  function C5(e, t, r, i, o, s, l = 0) {
    if (typeof o == "string") {
      const f = Da(Pi(r, o), void 0), d = YN(t) ? Md(t) + L5(t, e) : void 0;
      switch (l) {
        case 0:
          if (QE(t, f) === 0 || d && QE(d, f) === 0)
            return { moduleFileToTry: i };
          break;
        case 1:
          if (gv(f, t)) {
            const A = Lm(f, t, !1);
            return { moduleFileToTry: Da(Pi(Pi(i, o), A), void 0) };
          }
          break;
        case 2:
          const y = f.indexOf("*"), h = f.slice(0, y), b = f.slice(y + 1);
          if (ba(t, h) && tl(t, b)) {
            const A = t.slice(h.length, t.length - b.length);
            return { moduleFileToTry: i.replace("*", A) };
          }
          if (d && ba(d, h) && tl(d, b)) {
            const A = d.slice(h.length, d.length - b.length);
            return { moduleFileToTry: i.replace("*", A) };
          }
          break;
      }
    } else {
      if (Array.isArray(o))
        return ze(o, (f) => C5(e, t, r, i, f, s));
      if (typeof o == "object" && o !== null) {
        if (b5(o))
          return ze($h(o), (f) => {
            const d = Da(Pi(i, f), void 0), y = tl(f, "/") ? 1 : uu(f, "*") ? 2 : 0;
            return C5(e, t, r, d, o[f], s, y);
          });
        for (const f of $h(o))
          if (f === "default" || s.indexOf(f) >= 0 || u8(s, f)) {
            const d = o[f], y = C5(e, t, r, i, d, s);
            if (y)
              return y;
          }
      }
    }
  }
  function nMe(e, t, r, i, o, s) {
    const l = Eme(t, e, i);
    if (l === void 0)
      return;
    const f = Eme(r, e, i), d = wo(f, (h) => en(l, (b) => u1(Lm(h, b, i)))), y = hj(d, $N);
    if (y)
      return Jk(y, o, s);
  }
  function PK({ path: e, isRedirect: t }, { getCanonicalFileName: r, sourceDirectory: i }, o, s, l, f, d, y) {
    if (!s.fileExists || !s.readFile)
      return;
    const h = pq(e);
    if (!h)
      return;
    const A = x5(f, l, o).getAllowedEndingsInPreferredOrder();
    let L = e, I = !1;
    if (!d) {
      let te = h.packageRootIndex, X;
      for (; ; ) {
        const { moduleFileToTry: Y, packageRootPath: P, blockedByExports: de, verbatimFromExports: ne } = H(te);
        if (yc(l) !== 1) {
          if (de)
            return;
          if (ne)
            return Y;
        }
        if (P) {
          L = P, I = !0;
          break;
        }
        if (X || (X = Y), te = e.indexOf(Ns, te + 1), te === -1) {
          L = Jk(X, A, l, s);
          break;
        }
      }
    }
    if (t && !I)
      return;
    const O = s.getGlobalTypingsCacheLocation && s.getGlobalTypingsCacheLocation(), k = r(L.substring(0, h.topLevelNodeModulesIndex));
    if (!(ba(i, k) || O && ba(r(O), k)))
      return;
    const B = L.substring(h.topLevelPackageNameIndex + 1), V = d8(B);
    return yc(l) === 1 && V === B ? void 0 : V;
    function H(te) {
      var X, Y;
      const P = e.substring(0, te), de = Pi(P, "package.json");
      let ne = e, ye = !1;
      const ie = (Y = (X = s.getPackageJsonInfoCache) == null ? void 0 : X.call(s)) == null ? void 0 : Y.getPackageJsonInfo(de);
      if (typeof ie == "object" || ie === void 0 && s.fileExists(de)) {
        const W = (ie == null ? void 0 : ie.contents.packageJsonContent) || JSON.parse(s.readFile(de)), ce = y || o.impliedNodeFormat;
        if (Yz(l)) {
          const Te = P.substring(h.topLevelPackageNameIndex + 1), ee = d8(Te), $e = PC(l, ce === 99), Ue = W.exports ? C5(l, e, P, ee, W.exports, $e) : void 0;
          if (Ue)
            return { ...YN(Ue.moduleFileToTry) ? { moduleFileToTry: Md(Ue.moduleFileToTry) + L5(Ue.moduleFileToTry, l) } : Ue, verbatimFromExports: !0 };
          if (W.exports)
            return { moduleFileToTry: e, blockedByExports: !0 };
        }
        const pe = W.typesVersions ? f5(W.typesVersions) : void 0;
        if (pe) {
          const Te = e.slice(P.length + 1), ee = bme(Te, pe.paths, A, s, l);
          ee === void 0 ? ye = !0 : ne = Pi(P, ee);
        }
        const ve = W.typings || W.types || W.main || "index.js";
        if (Ua(ve) && !(ye && oq(P3(pe.paths), ve))) {
          const Te = js(ve, P, r);
          if (Md(Te) === Md(r(ne)))
            return { packageRootPath: P, moduleFileToTry: ne };
        }
      } else {
        const W = r(ne.substring(h.packageRootIndex + 1));
        if (W === "index.d.ts" || W === "index.js" || W === "index.ts" || W === "index.tsx")
          return { moduleFileToTry: ne, packageRootPath: P };
      }
      return { moduleFileToTry: ne };
    }
  }
  function rMe(e, t) {
    if (!e.fileExists)
      return;
    const r = id(sk({ 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 Eme(e, t, r) {
    return fa(t, (i) => {
      const o = Sme(e, i, r);
      return o !== void 0 && xme(o) ? void 0 : o;
    });
  }
  function Jk(e, t, r, i) {
    if (bl(e, [".json", ".mjs", ".cjs"]))
      return e;
    const o = Md(e);
    if (e === o)
      return e;
    if (bl(e, [".d.mts", ".mts", ".d.cts", ".cts"]))
      return o + MK(e, r);
    if (!bl(e, [".d.ts"]) && bl(e, [".ts"]) && uu(e, ".d."))
      return Tme(e);
    switch (t[0]) {
      case 0:
        const s = pA(o, "/index");
        return i && s !== o && rMe(i, s) ? o : s;
      case 1:
        return o;
      case 2:
        return o + MK(e, r);
      case 3:
        if (ld(e)) {
          const l = t.findIndex((d) => d === 0 || d === 1), f = t.indexOf(2);
          return l !== -1 && l < f ? o : o + MK(e, r);
        }
        return e;
      default:
        return D.assertNever(t[0]);
    }
  }
  function Tme(e) {
    const t = du(e);
    if (!tl(e, ".ts") || !uu(t, ".d.") || bl(t, [".d.ts"]))
      return;
    const r = QN(e, ".ts"), i = r.substring(r.lastIndexOf("."));
    return r.substring(0, r.indexOf(".d.")) + i;
  }
  function MK(e, t) {
    var r;
    return (r = L5(e, t)) != null ? r : D.fail(`Extension ${eO(e)} is unsupported:: FileName:: ${e}`);
  }
  function L5(e, t) {
    const r = bh(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 Sme(e, t, r) {
    const i = WS(t, e, t, r, !1);
    return Cm(i) ? void 0 : i;
  }
  function xme(e) {
    return ba(e, "..");
  }
  var Ame = C({
    "src/compiler/moduleSpecifiers.ts"() {
      wa();
    }
  }), G1 = {};
  le(G1, {
    countPathComponents: () => _8,
    forEachFileNameOfModule: () => gme,
    getModuleSpecifier: () => A5,
    getModuleSpecifiers: () => fme,
    getModuleSpecifiersWithCacheInfo: () => _me,
    getNodeModulesPackageName: () => Q4e,
    tryGetJSExtensionForFile: () => L5,
    tryGetModuleSpecifiersFromCache: () => Z4e,
    tryGetRealFileNameForNonJsDeclarationFileName: () => Tme,
    updateModuleSpecifier: () => $4e
  });
  var FK = C({
    "src/compiler/_namespaces/ts.moduleSpecifiers.ts"() {
      Ame();
    }
  });
  function iMe() {
    this.flags = 0;
  }
  function ds(e) {
    return e.id || (e.id = VK, VK++), e.id;
  }
  function yo(e) {
    return e.id || (e.id = UK, UK++), e.id;
  }
  function BK(e, t) {
    const r = mg(e);
    return r === 1 || t && r === 2;
  }
  function Cme(e) {
    var t = yd(() => {
      var n = /* @__PURE__ */ new Map();
      return e.getSourceFiles().forEach((a) => {
        a.resolvedModules && a.resolvedModules.forEach(({ resolvedModule: c }) => {
          c != null && c.packageId && n.set(c.packageId.name, c.extension === ".d.ts" || !!n.get(c.packageId.name));
        });
      }), n;
    }), r = [], i = (n) => {
      r.push(n);
    }, o, s = /* @__PURE__ */ new Set(), l, f, d = Bl.getSymbolConstructor(), y = Bl.getTypeConstructor(), h = Bl.getSignatureConstructor(), b = 0, A = 0, L = 0, I = 0, O = 0, k = 0, B, V, H = !1, te = ao(), X = [1], Y = e.getCompilerOptions(), P = $o(Y), de = tu(Y), ne = !!Y.experimentalDecorators, ye = KN(Y), ie = ET(Y), W = m_(Y, "strictNullChecks"), ce = m_(Y, "strictFunctionTypes"), pe = m_(Y, "strictBindCallApply"), ve = m_(Y, "strictPropertyInitialization"), Te = m_(Y, "noImplicitAny"), ee = m_(Y, "noImplicitThis"), $e = m_(Y, "useUnknownInCatchVariables"), Ue = !!Y.keyofStringsOnly, Be = Y.suppressExcessPropertyErrors ? 0 : 8192, We = Y.exactOptionalPropertyTypes, Oe = krt(), Me = ost(), Xe = uo(), He = ao(), Fe = Qo(4, "undefined");
    Fe.declarations = [];
    var st = Qo(1536, "globalThis", 8);
    st.exports = He, st.declarations = [], He.set(st.escapedName, st);
    var Ct = Qo(4, "arguments"), Et = Qo(4, "require"), Vt = Y.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules", tt;
    const at = {
      getNodeCount: () => Iu(e.getSourceFiles(), (n, a) => n + a.nodeCount, 0),
      getIdentifierCount: () => Iu(e.getSourceFiles(), (n, a) => n + a.identifierCount, 0),
      getSymbolCount: () => Iu(e.getSourceFiles(), (n, a) => n + a.symbolCount, A),
      getTypeCount: () => b,
      getInstantiationCount: () => L,
      getRelationCacheSizes: () => ({
        assignable: Cd.size,
        identity: Id.size,
        subtype: Km.size,
        strictSubtype: Z_.size
      }),
      isUndefinedSymbol: (n) => n === Fe,
      isArgumentsSymbol: (n) => n === Ct,
      isUnknownSymbol: (n) => n === nn,
      getMergedSymbol: ns,
      getDiagnostics: Uwe,
      getGlobalDiagnostics: xot,
      getRecursionIdentity: AL,
      getUnmatchedProperties: Pie,
      getTypeOfSymbolAtLocation: (n, a) => {
        const c = ga(a);
        return c ? xet(n, c) : xe;
      },
      getTypeOfSymbol: or,
      getSymbolsOfParameterPropertyDeclaration: (n, a) => {
        const c = ga(n, Oa);
        return c === void 0 ? D.fail("Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node.") : (D.assert(Qd(c, c.parent)), aE(c, oc(a)));
      },
      getDeclaredTypeOfSymbol: Fs,
      getPropertiesOfType: fs,
      getPropertyOfType: (n, a) => so(n, oc(a)),
      getPrivateIdentifierPropertyOfType: (n, a, c) => {
        const u = ga(c);
        if (!u)
          return;
        const p = oc(a), g = uV(p, u);
        return g ? gae(n, g) : void 0;
      },
      getTypeOfPropertyOfType: (n, a) => ul(n, oc(a)),
      getIndexInfoOfType: (n, a) => ih(n, a === 0 ? ue : pt),
      getIndexInfosOfType: Su,
      getIndexInfosOfIndexSymbol: Rre,
      getSignaturesOfType: ja,
      getIndexTypeOfType: (n, a) => Hg(n, a === 0 ? ue : pt),
      getIndexType: (n) => mm(n),
      getBaseTypes: Oo,
      getBaseTypeOfLiteralType: cv,
      getWidenedType: Yd,
      getTypeFromTypeNode: (n) => {
        const a = ga(n, Mi);
        return a ? ui(a) : xe;
      },
      getParameterType: up,
      getParameterIdentifierNameAtPosition: znt,
      getPromisedTypeOfPromise: MD,
      getAwaitedType: (n) => WE(n),
      getReturnTypeOfSignature: ms,
      isNullableType: lV,
      getNullableType: UU,
      getNonNullableType: Xg,
      getNonOptionalType: Cie,
      getTypeArguments: _s,
      typeToTypeNode: Xe.typeToTypeNode,
      indexInfoToIndexSignatureDeclaration: Xe.indexInfoToIndexSignatureDeclaration,
      signatureToSignatureDeclaration: Xe.signatureToSignatureDeclaration,
      symbolToEntityName: Xe.symbolToEntityName,
      symbolToExpression: Xe.symbolToExpression,
      symbolToNode: Xe.symbolToNode,
      symbolToTypeParameterDeclarations: Xe.symbolToTypeParameterDeclarations,
      symbolToParameterDeclaration: Xe.symbolToParameterDeclaration,
      typeParameterToDeclaration: Xe.typeParameterToDeclaration,
      getSymbolsInScope: (n, a) => {
        const c = ga(n);
        return c ? Aot(c, a) : [];
      },
      getSymbolAtLocation: (n) => {
        const a = ga(n);
        return a ? I_(a, !0) : void 0;
      },
      getIndexInfosAtLocation: (n) => {
        const a = ga(n);
        return a ? Rot(a) : void 0;
      },
      getShorthandAssignmentValueSymbol: (n) => {
        const a = ga(n);
        return a ? Not(a) : void 0;
      },
      getExportSpecifierLocalTargetSymbol: (n) => {
        const a = ga(n, cd);
        return a ? Oot(a) : void 0;
      },
      getExportSymbolOfSymbol(n) {
        return ns(n.exportSymbol || n);
      },
      getTypeAtLocation: (n) => {
        const a = ga(n);
        return a ? IS(a) : xe;
      },
      getTypeOfAssignmentPattern: (n) => {
        const a = ga(n, xI);
        return a && BV(a) || xe;
      },
      getPropertySymbolOfDestructuringAssignment: (n) => {
        const a = ga(n, Ve);
        return a ? Pot(a) : void 0;
      },
      signatureToString: (n, a, c, u) => se(n, ga(a), c, u),
      typeToString: (n, a, c) => Le(n, ga(a), c),
      symbolToString: (n, a, c, u) => S(n, ga(a), c, u),
      typePredicateToString: (n, a, c) => $l(n, ga(a), c),
      writeSignature: (n, a, c, u, p) => se(n, ga(a), c, u, p),
      writeType: (n, a, c, u) => Le(n, ga(a), c, u),
      writeSymbol: (n, a, c, u, p) => S(n, ga(a), c, u, p),
      writeTypePredicate: (n, a, c, u) => $l(n, ga(a), c, u),
      getAugmentedPropertiesOfType: hoe,
      getRootSymbols: Jwe,
      getSymbolOfExpando: yV,
      getContextualType: (n, a) => {
        const c = ga(n, yt);
        if (c)
          return a & 4 ? Xt(c, () => td(c, a)) : td(c, a);
      },
      getContextualTypeForObjectLiteralElement: (n) => {
        const a = ga(n, fy);
        return a ? iae(a, void 0) : void 0;
      },
      getContextualTypeForArgumentAtIndex: (n, a) => {
        const c = ga(n, XS);
        return c && rae(c, a);
      },
      getContextualTypeForJsxAttribute: (n) => {
        const a = ga(n, kM);
        return a && uIe(a, void 0);
      },
      isContextSensitive: C_,
      getTypeOfPropertyOfContextualType: VE,
      getFullyQualifiedName: Oh,
      getResolvedSignature: (n, a, c) => Pn(n, a, c, 0),
      getResolvedSignatureForStringLiteralCompletions: (n, a, c) => Xt(a, () => Pn(n, c, void 0, 32)),
      getResolvedSignatureForSignatureHelp: (n, a, c) => an(n, () => Pn(n, a, c, 16)),
      getExpandedParameters: vAe,
      hasEffectiveRestParameter: vm,
      containsArgumentsReference: Ire,
      getConstantValue: (n) => {
        const a = ga(n, Qwe);
        return a ? goe(a) : void 0;
      },
      isValidPropertyAccess: (n, a) => {
        const c = ga(n, cle);
        return !!c && rnt(c, oc(a));
      },
      isValidPropertyAccessForCompletions: (n, a, c) => {
        const u = ga(n, Mr);
        return !!u && UIe(u, a, c);
      },
      getSignatureFromDeclaration: (n) => {
        const a = ga(n, qa);
        return a ? Np(a) : void 0;
      },
      isImplementationOfOverload: (n) => {
        const a = ga(n, qa);
        return a ? Ywe(a) : void 0;
      },
      getImmediateAliasedSymbol: cae,
      getAliasedSymbol: Zc,
      getEmitResolver: cL,
      getExportsOfModule: Uy,
      getExportsAndPropertiesOfModule: hS,
      forEachExportAndPropertyOfModule: c0,
      getSymbolWalker: lme(zYe, t_, ms, Oo, sp, or, L_, Tu, Sf, _s),
      getAmbientModules: Yst,
      getJsxIntrinsicTagNamesAt: Mtt,
      isOptionalParameter: (n) => {
        const a = ga(n, Oa);
        return a ? rD(a) : !1;
      },
      tryGetMemberInModuleExports: (n, a) => Og(oc(n), a),
      tryGetMemberInModuleExportsAndProperties: (n, a) => Rf(oc(n), a),
      tryFindAmbientModule: (n) => Lre(n, !0),
      tryFindAmbientModuleWithoutAugmentations: (n) => Lre(n, !1),
      getApparentType: Hu,
      getUnionType: Yr,
      isTypeAssignableTo: To,
      createAnonymousType: ws,
      createSignature: rh,
      createSymbol: Qo,
      createIndexInfo: pm,
      getAnyType: () => ke,
      getStringType: () => ue,
      getNumberType: () => pt,
      createPromiseType: e4,
      createArrayType: xu,
      getElementTypeOfArrayType: Eie,
      getBooleanType: () => Re,
      getFalseType: (n) => n ? it : K,
      getTrueType: (n) => n ? Pe : Z,
      getVoidType: () => Rt,
      getUndefinedType: () => je,
      getNullType: () => Sn,
      getESSymbolType: () => q,
      getNeverType: () => ht,
      getOptionalType: () => ln,
      getPromiseType: () => yP(!1),
      getPromiseLikeType: () => nCe(!1),
      getAsyncIterableType: () => {
        const n = gU(!1);
        if (n !== xo)
          return n;
      },
      isSymbolAccessible: Wy,
      isArrayType: Gf,
      isTupleType: Po,
      isArrayLikeType: C0,
      isEmptyAnonymousObjectType: Jh,
      isTypeInvalidDueToUnionDiscriminant: LYe,
      getExactOptionalProperties: QQe,
      getAllPossiblePropertiesOfTypes: IYe,
      getSuggestedSymbolForNonexistentProperty: bae,
      getSuggestionForNonexistentProperty: Eae,
      getSuggestedSymbolForNonexistentJSXAttribute: BIe,
      getSuggestedSymbolForNonexistentSymbol: (n, a, c) => Tae(n, oc(a), c),
      getSuggestionForNonexistentSymbol: (n, a, c) => Ztt(n, oc(a), c),
      getSuggestedSymbolForNonexistentModule: fV,
      getSuggestionForNonexistentExport: ent,
      getSuggestedSymbolForNonexistentClassMember: FIe,
      getBaseConstraintOfType: ju,
      getDefaultFromTypeParameter: (n) => n && n.flags & 262144 ? kE(n) : void 0,
      resolveName(n, a, c, u) {
        return fc(a, oc(n), c, void 0, void 0, !1, u);
      },
      getJsxNamespace: (n) => ta(mb(n)),
      getJsxFragmentFactory: (n) => {
        const a = voe(n);
        return a && ta(Sf(a).escapedText);
      },
      getAccessibleSymbolChain: d0,
      getTypePredicateOfSignature: t_,
      resolveExternalModuleName: (n) => {
        const a = ga(n, yt);
        return a && su(a, a, !0);
      },
      resolveExternalModuleSymbol: _d,
      tryGetThisTypeAt: (n, a, c) => {
        const u = ga(n);
        return u && Qie(u, a, c);
      },
      getTypeArgumentConstraint: (n) => {
        const a = ga(n, Mi);
        return a && cit(a);
      },
      getSuggestionDiagnostics: (n, a) => {
        const c = ga(n, Hi) || D.fail("Could not determine parsed source file.");
        if (ck(c, Y, e))
          return rt;
        let u;
        try {
          return o = a, poe(c), D.assert(!!(zr(c).flags & 1)), u = bi(u, nE.getDiagnostics(c.fileName)), ewe(Gwe(c), (p, g, x) => {
            !YR(p) && !Bwe(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: $y,
      isDeclarationVisible: x_,
      isPropertyAccessible: xae,
      getTypeOnlyAliasDeclaration: kd,
      getMemberOverrideModifierStatus: Gat,
      isTypeParameterPossiblyReferenced: xP,
      typeHasCallOrConstructSignatures: GV
    };
    function an(n, a) {
      const c = rr(n, XS), u = c && zr(c).resolvedSignature;
      c && (zr(c).resolvedSignature = void 0);
      const p = a();
      return c && (zr(c).resolvedSignature = u), p;
    }
    function Xt(n, a) {
      const c = rr(n, XS);
      if (c) {
        let p = n;
        do
          zr(p).skipDirectInference = !0, p = p.parent;
        while (p && p !== c);
      }
      H = !0;
      const u = an(n, a);
      if (H = !1, c) {
        let p = n;
        do
          zr(p).skipDirectInference = void 0, p = p.parent;
        while (p && p !== c);
      }
      return u;
    }
    function Pn(n, a, c, u) {
      const p = ga(n, XS);
      tt = c;
      const g = p ? ML(p, a, u) : void 0;
      return tt = void 0, g;
    }
    var Wn = /* @__PURE__ */ new Map(), In = /* @__PURE__ */ new Map(), Yt = /* @__PURE__ */ new Map(), _r = /* @__PURE__ */ new Map(), Ai = /* @__PURE__ */ new Map(), Ki = /* @__PURE__ */ new Map(), Xi = /* @__PURE__ */ new Map(), Nr = /* @__PURE__ */ new Map(), At = /* @__PURE__ */ new Map(), vn = /* @__PURE__ */ new Map(), Ht = /* @__PURE__ */ new Map(), dn = /* @__PURE__ */ new Map(), ir = /* @__PURE__ */ new Map(), lr = /* @__PURE__ */ new Map(), Ni = [], pi = /* @__PURE__ */ new Map(), Nn = /* @__PURE__ */ new Set(), nn = Qo(4, "unknown"), Mn = Qo(0, "__resolving__"), Ar = /* @__PURE__ */ new Map(), Vr = /* @__PURE__ */ new Map(), ke = Kc(1, "any"), gt = Kc(1, "any", 262144), Nt = Kc(1, "any"), xe = Kc(1, "error"), _t = Kc(1, "unresolved"), _e = Kc(1, "any", 65536), re = Kc(1, "intrinsic"), he = Kc(2, "unknown"), j = Kc(2, "unknown"), je = Kc(32768, "undefined"), Qe = W ? je : Kc(32768, "undefined", 65536), Ke = Kc(32768, "undefined"), Ut = We ? Ke : je, ln = Kc(32768, "undefined"), Sn = Kc(65536, "null"), Er = W ? Sn : Kc(65536, "null", 65536), ue = Kc(4, "string"), pt = Kc(8, "number"), Wt = Kc(64, "bigint"), it = Kc(512, "false"), K = Kc(512, "false"), Pe = Kc(512, "true"), Z = Kc(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 = Yr([K, Z]), q = Kc(4096, "symbol"), Rt = Kc(16384, "void"), ht = Kc(131072, "never"), dt = Kc(131072, "never", 262144), fn = Kc(131072, "never"), Qn = Kc(131072, "never"), ai = Kc(67108864, "object"), Si = Yr([ue, pt]), xi = Yr([ue, pt, q]), Gi = Ue ? ue : xi, _o = Yr([pt, Wt]), bo = Yr([ue, pt, Re, Wt, Sn, je]), no = DE(["", ""], [pt]), sa = SP((n) => n.flags & 262144 ? AQe(n) : n, () => "(restrictive mapper)"), Ui = SP((n) => n.flags & 262144 ? Nt : n, () => "(permissive mapper)"), Jr = Kc(131072, "never"), is = SP((n) => n.flags & 262144 ? Jr : n, () => "(unique literal mapper)"), di, ca = SP((n) => (di && (n === jd || n === rl || n === Hl) && di(!0), n), () => "(unmeasurable reporter)"), wn = SP((n) => (di && (n === jd || n === rl || n === Hl) && di(!1), n), () => "(unreliable reporter)"), ua = ws(void 0, te, rt, rt, rt), $c = ws(void 0, te, rt, rt, rt);
    $c.objectFlags |= 2048;
    var nc = Qo(2048, "__type");
    nc.members = ao();
    var Fc = ws(nc, te, rt, rt, rt), qc = ws(void 0, te, rt, rt, rt), Bc = W ? Yr([je, Sn, qc]) : he, xo = ws(void 0, te, rt, rt, rt);
    xo.instantiations = /* @__PURE__ */ new Map();
    var Sa = ws(void 0, te, rt, rt, rt);
    Sa.objectFlags |= 262144;
    var Jo = ws(void 0, te, rt, rt, rt), Gc = ws(void 0, te, rt, rt, rt), Yl = ws(void 0, te, rt, rt, rt), jd = wd(), rl = wd();
    rl.constraint = jd;
    var Hl = wd(), Is = wd(), mc = wd();
    mc.constraint = Is;
    var $s = hP(1, "<<unresolved>>", 0, ke), zs = rh(void 0, void 0, void 0, rt, ke, void 0, 0, 0), tn = rh(void 0, void 0, void 0, rt, xe, void 0, 0, 0), Uc = rh(void 0, void 0, void 0, rt, ke, void 0, 0, 0), bu = rh(void 0, void 0, void 0, rt, dt, void 0, 0, 0), Uu = pm(pt, 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");
      }
    }, jt = Qg(ke, ke, ke), Q = Qg(ke, ke, he), ot = Qg(ht, ke, je), xt = {
      iterableCacheKey: "iterationTypesOfAsyncIterable",
      iteratorCacheKey: "iterationTypesOfAsyncIterator",
      iteratorSymbolName: "asyncIterator",
      getGlobalIteratorType: o$e,
      getGlobalIterableType: gU,
      getGlobalIterableIteratorType: s$e,
      getGlobalGeneratorType: c$e,
      resolveIterationType: WE,
      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
    }, pn = {
      iterableCacheKey: "iterationTypesOfIterable",
      iteratorCacheKey: "iterationTypesOfIterator",
      iteratorSymbolName: "iterator",
      getGlobalIteratorType: l$e,
      getGlobalIterableType: Ure,
      getGlobalIterableIteratorType: u$e,
      getGlobalGeneratorType: d$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
    }, wr, Or = /* @__PURE__ */ new Map(), ya = !1, as, po, Uo, Ka, uc, ll, ud, ys, cs, dc, Hd, Vc, kf, Se, Dt, On, qi, Ao, ae, lt, Mt, Pt, un, jn, Dr, ei, Oi, Ga, Vo, vs, qs, dd, lf, Qc, Wd, Eu, uf, b_, Ko, E_, df, Y_, Ap, G, Ze, zt, $n, La, xa, Ce, Ge, Lt, Ot, mn, bn = /* @__PURE__ */ new Map(), Tn = 0, zn = 0, Wr = 0, Wi = !1, nr = 0, _n, dr, Ea, Js = [], il = [], Jm = [], bg = 0, $_ = [], lb = [], Kv = 0, l2 = Bf(""), rS = Pp(0), u2 = SU({ negative: !1, base10Value: "0" }), Eg = [], Q_ = [], Xv = [], Dh = 0, Cp = 10, Yv = [], Y1 = [], ub = [], Tg = [], iS = [], $1 = [], Q1 = [], Z1 = [], $v = [], d2 = [], eE = [], tE = [], Qv = [], db = [], Zv = [], aS = [], Sg = [], Xo = XA(), nE = XA(), sL = eh(), Ry, xg, Km = /* @__PURE__ */ new Map(), Z_ = /* @__PURE__ */ new Map(), Cd = /* @__PURE__ */ new Map(), Ld = /* @__PURE__ */ new Map(), Id = /* @__PURE__ */ new Map(), fb = /* @__PURE__ */ new Map(), _b = ao();
    _b.set(Fe.escapedName, Fe);
    var f2 = [
      [".mts", ".mjs"],
      [".ts", ".js"],
      [".cts", ".cjs"],
      [".mjs", ".mjs"],
      [".js", ".js"],
      [".cjs", ".cjs"],
      [".tsx", Y.jsx === 1 ? ".jsx" : ".js"],
      [".jsx", ".jsx"],
      [".json", ".json"]
    ];
    return sst(), at;
    function pb(n) {
      return n ? lr.get(n) : void 0;
    }
    function Ag(n, a) {
      return n && lr.set(n, a), a;
    }
    function mb(n) {
      if (n) {
        const a = er(n);
        if (a)
          if (Rx(n)) {
            if (a.localJsxFragmentNamespace)
              return a.localJsxFragmentNamespace;
            const c = a.pragmas.get("jsxfrag");
            if (c) {
              const p = Ba(c) ? c[0] : c;
              if (a.localJsxFragmentFactory = Fx(p.arguments.factory, P), ct(a.localJsxFragmentFactory, hb, Zd), a.localJsxFragmentFactory)
                return a.localJsxFragmentNamespace = Sf(a.localJsxFragmentFactory).escapedText;
            }
            const u = voe(n);
            if (u)
              return a.localJsxFragmentFactory = u, a.localJsxFragmentNamespace = Sf(u).escapedText;
          } else {
            const c = oS(a);
            if (c)
              return a.localJsxNamespace = c;
          }
      }
      return Ry || (Ry = "React", Y.jsxFactory ? (xg = Fx(Y.jsxFactory, P), ct(xg, hb), xg && (Ry = Sf(xg).escapedText)) : Y.reactNamespace && (Ry = oc(Y.reactNamespace))), xg || (xg = N.createQualifiedName(N.createIdentifier(ta(Ry)), "createElement")), Ry;
    }
    function oS(n) {
      if (n.localJsxNamespace)
        return n.localJsxNamespace;
      const a = n.pragmas.get("jsx");
      if (a) {
        const c = Ba(a) ? a[0] : a;
        if (n.localJsxFactory = Fx(c.arguments.factory, P), ct(n.localJsxFactory, hb, Zd), n.localJsxFactory)
          return n.localJsxNamespace = Sf(n.localJsxFactory).escapedText;
      }
    }
    function hb(n) {
      return Bm(n, -1, -1), Gn(n, hb, hg);
    }
    function cL(n, a) {
      return Uwe(n, a), Me;
    }
    function _2(n, a, c, u, p, g) {
      const x = n ? Rr(n, a, c, u, p, g) : Os(a, c, u, p, g), R = Xo.lookup(x);
      return R || (Xo.add(x), x);
    }
    function e0(n, a, c, u, p, g, x) {
      const R = Je(a, c, u, p, g, x);
      return R.skippedOn = n, R;
    }
    function rE(n, a, c, u, p, g) {
      return n ? Rr(n, a, c, u, p, g) : Os(a, c, u, p, g);
    }
    function Je(n, a, c, u, p, g) {
      const x = rE(n, a, c, u, p, g);
      return Xo.add(x), x;
    }
    function Ny(n, a) {
      n ? Xo.add(a) : nE.add({ ...a, category: 2 });
    }
    function im(n, a, c, u, p, g, x) {
      if (a.pos < 0 || a.end < 0) {
        if (!n)
          return;
        const R = er(a);
        Ny(n, "message" in c ? Il(R, 0, 0, c, u, p, g, x) : WW(R, c));
        return;
      }
      Ny(n, "message" in c ? Rr(a, c, u, p, g, x) : ag(er(a), a, c));
    }
    function t0(n, a, c, u, p, g, x) {
      const R = Je(n, c, u, p, g, x);
      if (a) {
        const M = Rr(n, _.Did_you_forget_to_use_await);
        qo(R, M);
      }
      return R;
    }
    function gb(n, a) {
      const c = Array.isArray(n) ? ze(n, QH) : QH(n);
      return c && qo(a, Rr(c, _.The_declaration_was_marked_as_deprecated_here)), nE.add(a), a;
    }
    function n0(n) {
      if (Ie(n.declarations) > 1) {
        const a = pd(n);
        if (a && a.flags & 64)
          return kt(n.declarations, (c) => !!(_p(c) & 268435456));
      }
      return !!(cV(n) & 268435456);
    }
    function Cg(n, a, c) {
      const u = Rr(n, _._0_is_deprecated, c);
      return gb(a, u);
    }
    function sS(n, a, c, u) {
      const p = c ? Rr(n, _.The_signature_0_of_1_is_deprecated, u, c) : Rr(n, _._0_is_deprecated, u);
      return gb(a, p);
    }
    function Qo(n, a, c) {
      A++;
      const u = new d(n | 33554432, a);
      return u.links = new WK(), u.links.checkFlags = c || 0, u;
    }
    function ep(n, a) {
      const c = Qo(1, n);
      return c.links.type = a, c;
    }
    function iE(n, a) {
      const c = Qo(4, n);
      return c.links.type = a, c;
    }
    function hl(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 Rh(n, a) {
      a.mergeId || (a.mergeId = jK, jK++), Yv[a.mergeId] = n;
    }
    function yb(n) {
      const a = Qo(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)), Rh(a, n), a;
    }
    function tp(n, a, c = !1) {
      if (!(n.flags & hl(a.flags)) || (a.flags | n.flags) & 67108864) {
        if (a === n)
          return n;
        if (!(n.flags & 33554432)) {
          const p = Jc(n);
          if (p === nn)
            return a;
          n = yb(p);
        }
        a.flags & 512 && n.flags & 512 && n.constEnumOnlyModule && !a.constEnumOnlyModule && (n.constEnumOnlyModule = !1), n.flags |= a.flags, a.valueDeclaration && mN(n, a.valueDeclaration), bi(n.declarations, a.declarations), a.members && (n.members || (n.members = ao()), Rl(n.members, a.members, c)), a.exports && (n.exports || (n.exports = ao()), Rl(n.exports, a.exports, c)), c || Rh(n, a);
      } else if (n.flags & 1024)
        n !== st && Je(a.declarations && Aa(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 && er(a.declarations[0]), M = n.declarations && er(n.declarations[0]), J = OM(R, Y.checkJs), $ = OM(M, Y.checkJs), ge = S(a);
        if (R && M && wr && !p && R !== M) {
          const Ne = QE(R.path, M.path) === -1 ? R : M, we = Ne === R ? M : R, ft = ZD(wr, `${Ne.path}|${we.path}`, () => ({ firstFile: Ne, secondFile: we, conflictingSymbols: /* @__PURE__ */ new Map() })), Bt = ZD(ft.conflictingSymbols, ge, () => ({ isBlockScoped: g, firstFileLocations: [], secondFileLocations: [] }));
          J || u(Bt.firstFileLocations, a), $ || u(Bt.secondFileLocations, n);
        } else
          J || vb(a, x, ge, n), $ || vb(n, x, ge, a);
      }
      return n;
      function u(p, g) {
        if (g.declarations)
          for (const x of g.declarations)
            c_(p, x);
      }
    }
    function vb(n, a, c, u) {
      ze(n.declarations, (p) => {
        au(p, a, c, u.declarations);
      });
    }
    function au(n, a, c, u) {
      const p = (H0(n, !1) ? rz(n) : Aa(n)) || n, g = _2(p, a, c);
      for (const x of u || rt) {
        const R = (H0(x, !1) ? rz(x) : Aa(x)) || x;
        if (R === p)
          continue;
        g.relatedInformation = g.relatedInformation || [];
        const M = Rr(R, _._0_was_also_declared_here, c), J = Rr(R, _.and_here);
        Ie(g.relatedInformation) >= 5 || kt(g.relatedInformation, ($) => ik($, J) === 0 || ik($, M) === 0) || qo(g, Ie(g.relatedInformation) ? J : M);
      }
    }
    function Lg(n, a) {
      if (!(n != null && n.size))
        return a;
      if (!(a != null && a.size))
        return n;
      const c = ao();
      return Rl(c, n), Rl(c, a), c;
    }
    function Rl(n, a, c = !1) {
      a.forEach((u, p) => {
        const g = n.get(p);
        n.set(p, g ? tp(g, u, c) : ns(u));
      });
    }
    function cS(n) {
      var a, c, 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 (qp(p))
        Rl(He, 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 = Mh(n, n, g, !0);
        if (!x)
          return;
        if (x = _d(x), x.flags & 1920)
          if (kt(po, (R) => x === R.symbol)) {
            const R = tp(p.symbol, x, !0);
            Uo || (Uo = /* @__PURE__ */ new Map()), Uo.set(n.text, R);
          } else {
            if ((c = x.exports) != null && c.get("__export") && ((u = p.symbol.exports) != null && u.size)) {
              const R = cre(x, "resolvedExports");
              for (const [M, J] of Do(p.symbol.exports.entries()))
                R.has(M) && !x.exports.has(M) && tp(R.get(M), J);
            }
            tp(x, p.symbol);
          }
        else
          Je(n, _.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity, n.text);
      }
    }
    function lL(n, a, c) {
      a.forEach((p, g) => {
        const x = n.get(g);
        x ? ze(x.declarations, u(ta(g), c)) : n.set(g, p);
      });
      function u(p, g) {
        return (x) => Xo.add(Rr(x, g, p));
      }
    }
    function Vi(n) {
      var a;
      if (n.flags & 33554432)
        return n.links;
      const c = yo(n);
      return (a = Y1[c]) != null ? a : Y1[c] = new WK();
    }
    function zr(n) {
      const a = ds(n);
      return ub[a] || (ub[a] = new iMe());
    }
    function Xm(n) {
      return n.kind === 308 && !nf(n);
    }
    function zd(n, a, c) {
      if (c) {
        const u = ns(n.get(a));
        if (u && (D.assert((Cc(u) & 1) === 0, "Should never get an instantiated symbol here."), u.flags & c || u.flags & 2097152 && ou(u) & c))
          return u;
      }
    }
    function aE(n, a) {
      const c = n.parent, u = n.parent.parent, p = zd(c.locals, a, 111551), g = zd(Qy(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 Ig(n, a) {
      const c = er(n), u = er(a), p = Nm(n);
      if (c !== u) {
        if (de && (c.externalModuleIndicator || u.externalModuleIndicator) || !Hs(Y) || kL(a) || n.flags & 16777216 || x(a, n))
          return !0;
        const M = e.getSourceFiles();
        return M.indexOf(c) <= M.indexOf(u);
      }
      if (n.pos <= a.pos && !(Za(n) && rN(a.parent) && !n.initializer && !n.exclamationToken)) {
        if (n.kind === 205) {
          const M = z0(a, 205);
          return M ? rr(M, us) !== rr(n, us) || n.pos < M.pos : Ig(z0(n, 257), a);
        } else {
          if (n.kind === 257)
            return !g(n, a);
          if (wl(n))
            return !rr(a, (M) => Ts(M) && M.parent.parent === n);
          if (Za(n))
            return !R(n, a, !1);
          if (Qd(n, n.parent))
            return !($o(Y) === 99 && ye && Tl(n) === Tl(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 || kL(a) || CLe(a))
        return !0;
      if (x(a, n))
        return $o(Y) === 99 && ye && Tl(n) && (Za(n) || Qd(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 (am(J, M, p))
              return !0;
            break;
        }
        const $ = M.parent.parent;
        return CA($) && am(J, $.expression, p);
      }
      function x(M, J) {
        return !!rr(M, ($) => {
          if ($ === p)
            return "quit";
          if (qa($))
            return !0;
          if (Lc($))
            return J.pos < M.pos;
          const ge = ii($.parent, Za);
          if (ge && ge.initializer === $) {
            if (za($.parent)) {
              if (J.kind === 171)
                return !0;
              if (Za(J) && Tl(M) === Tl(J)) {
                const we = J.name;
                if (Ve(we) || Di(we)) {
                  const ft = or(Ir(J)), Bt = yn(J.parent.members, Lc);
                  if (zat(we, ft, Bt, J.parent.pos, $.pos))
                    return !0;
                }
              }
            } else if (!(J.kind === 169 && !za(J)) || Tl(M) !== Tl(J))
              return !0;
          }
          return !1;
        });
      }
      function R(M, J, $) {
        return J.end > M.end ? !1 : rr(J, (Ne) => {
          if (Ne === M)
            return "quit";
          switch (Ne.kind) {
            case 216:
              return !0;
            case 169:
              return $ && (Za(M) && Ne.parent === M.parent || Qd(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 Nh(n, a, c) {
      const u = $o(Y), p = a;
      if (Oa(c) && p.body && n.valueDeclaration && n.valueDeclaration.pos >= p.body.pos && n.valueDeclaration.end <= p.body.end && u >= 2) {
        const R = zr(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 pl(R) ? u < 99 || !ye : x(R.name);
          default:
            return rW(R) || pu(R) ? u < 7 : us(R) && R.dotDotDotToken && Um(R.parent) ? u < 4 : Mi(R) ? !1 : Ra(R, x) || !1;
        }
      }
    }
    function Ym(n) {
      return iT(n) && rg(n.type) || Pk(n) && rg(n.typeExpression);
    }
    function fc(n, a, c, u, p, g, x = !1, R = !0) {
      return bb(n, a, c, u, p, g, x, R, zd);
    }
    function bb(n, a, c, u, p, g, x, R, M) {
      var J, $, ge;
      const Ne = n;
      let we, ft, Bt, Fn, An, Yn = !1;
      const hn = n;
      let xn, yr = !1;
      e:
        for (; n; ) {
          if (a === "const" && Ym(n))
            return;
          if (wm(n) && n.locals && !Xm(n) && (we = M(n.locals, a, c))) {
            let Un = !0;
            if (qa(n) && ft && ft !== n.body ? (c & we.flags & 788968 && ft.kind !== 323 && (Un = we.flags & 262144 ? ft === n.type || ft.kind === 166 || ft.kind === 344 || ft.kind === 345 || ft.kind === 165 : !1), c & we.flags & 3 && (Nh(we, n, ft) ? Un = !1 : we.flags & 1 && (Un = ft.kind === 166 || ft === n.type && !!rr(we.valueDeclaration, Oa)))) : n.kind === 191 && (Un = ft === n.trueType), Un)
              break e;
            we = void 0;
          }
          switch (Yn = Yn || Eb(n, ft), n.kind) {
            case 308:
              if (!nf(n))
                break;
              yr = !0;
            case 264:
              const Un = ((J = Ir(n)) == null ? void 0 : J.exports) || te;
              if (n.kind === 308 || Wc(n) && n.flags & 16777216 && !qp(n)) {
                if (we = Un.get("default")) {
                  const ti = QA(we);
                  if (ti && we.flags & c && ti.escapedName === a)
                    break e;
                  we = void 0;
                }
                const $r = Un.get(a);
                if ($r && $r.flags === 2097152 && (Sc($r, 278) || Sc($r, 277)))
                  break;
              }
              if (a !== "default" && (we = M(Un, a, c & 2623475)))
                if (Hi(n) && n.commonJsModuleIndicator && !(($ = we.declarations) != null && $.some(f_)))
                  we = void 0;
                else
                  break e;
              break;
            case 263:
              if (we = M(((ge = Ir(n)) == null ? void 0 : ge.exports) || te, a, c & 8)) {
                u && U_(Y) && !(n.flags & 16777216) && er(n) !== er(we.valueDeclaration) && Je(hn, _.Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead, ta(a), Vt, `${ta(qd(n).escapedName)}.${ta(a)}`);
                break e;
              }
              break;
            case 169:
              if (!za(n)) {
                const $r = u0(n.parent);
                $r && $r.locals && M($r.locals, a, c & 111551) && (D.assertNode(n, Za), Fn = n);
              }
              break;
            case 260:
            case 228:
            case 261:
              if (we = M(Ir(n).members || te, a, c & 788968)) {
                if (!p2(we, n)) {
                  we = void 0;
                  break;
                }
                if (ft && za(ft)) {
                  u && Je(hn, _.Static_members_cannot_reference_class_type_parameters);
                  return;
                }
                break e;
              }
              if (Pu(n) && c & 32) {
                const $r = n.name;
                if ($r && a === $r.escapedText) {
                  we = n.symbol;
                  break e;
                }
              }
              break;
            case 230:
              if (ft === n.expression && n.parent.token === 94) {
                const $r = n.parent.parent;
                if (li($r) && (we = M(Ir($r).members, a, c & 788968))) {
                  u && Je(hn, _.Base_class_expressions_cannot_reference_class_type_parameters);
                  return;
                }
              }
              break;
            case 164:
              if (xn = n.parent.parent, (li(xn) || xn.kind === 261) && (we = M(Ir(xn).members, a, c & 788968))) {
                u && Je(hn, _.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);
                return;
              }
              break;
            case 216:
              if ($o(Y) >= 2)
                break;
            case 171:
            case 173:
            case 174:
            case 175:
            case 259:
              if (c & 3 && a === "arguments") {
                we = Ct;
                break e;
              }
              break;
            case 215:
              if (c & 3 && a === "arguments") {
                we = Ct;
                break e;
              }
              if (c & 16) {
                const $r = n.name;
                if ($r && a === $r.escapedText) {
                  we = n.symbol;
                  break e;
                }
              }
              break;
            case 167:
              n.parent && n.parent.kind === 166 && (n = n.parent), n.parent && (Ml(n.parent) || n.parent.kind === 260) && (n = n.parent);
              break;
            case 349:
            case 341:
            case 343:
              const Kn = BI(n);
              Kn && (n = Kn.parent);
              break;
            case 166:
              ft && (ft === n.initializer || ft === n.name && Ja(ft)) && (An || (An = n));
              break;
            case 205:
              ft && (ft === n.initializer || ft === n.name && Ja(ft)) && hT(n) && !An && (An = n);
              break;
            case 192:
              if (c & 262144) {
                const $r = n.typeParameter.name;
                if ($r && a === $r.escapedText) {
                  we = n.typeParameter.symbol;
                  break e;
                }
              }
              break;
          }
          uS(n) && (Bt = n), ft = n, n = yp(n) ? u3(n) || n.parent : (tm(n) || M7(n)) && W0(n) || n.parent;
        }
      if (g && we && (!Bt || we !== Bt.symbol) && (we.isReferenced |= c), !we) {
        if (ft && (D.assertNode(ft, Hi), ft.commonJsModuleIndicator && a === "exports" && c & ft.symbol.flags))
          return ft.symbol;
        x || (we = M(He, a, c));
      }
      if (!we && Ne && fr(Ne) && Ne.parent && Ed(Ne.parent, !1))
        return Et;
      function on() {
        return Fn && !(ye && $o(Y) >= 9) ? (Je(hn, hn && Fn.type && pM(Fn.type, hn.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, Ls(Fn.name), Zf(p)), !0) : !1;
      }
      if (we) {
        if (u && on())
          return;
      } else {
        u && i(() => {
          if (!hn || !m2(hn, a, p) && !on() && !r0(hn) && !fS(hn, a, c) && !_S(hn, a) && !g2(hn, a, c) && !wf(hn, a, c) && !h2(hn, a, c)) {
            let Un, Kn;
            if (p && (Kn = $tt(p), Kn && Je(hn, u, Zf(p), Kn)), !Kn && R && Dh < Cp && (Un = Tae(Ne, a, c), (Un == null ? void 0 : Un.valueDeclaration) && Du(Un.valueDeclaration) && qp(Un.valueDeclaration) && (Un = void 0), Un)) {
              const ti = S(Un), da = vae(Ne, Un, !1), Ya = c === 1920 || p && typeof p != "string" && Ys(p) ? _.Cannot_find_namespace_0_Did_you_mean_1 : da ? _.Could_not_find_name_0_Did_you_mean_1 : _.Cannot_find_name_0_Did_you_mean_1, yl = rE(hn, Ya, Zf(p), ti);
              Ny(!da, yl), Un.valueDeclaration && qo(yl, Rr(Un.valueDeclaration, _._0_is_declared_here, ti));
            }
            !Un && !Kn && p && Je(hn, u, Zf(p)), Dh++;
          }
        });
        return;
      }
      return u && i(() => {
        if (hn && (c & 2 || (c & 32 || c & 384) && (c & 111551) === 111551)) {
          const Un = wp(we);
          (Un.flags & 2 || Un.flags & 32 || Un.flags & 384) && Sb(Un, hn);
        }
        if (we && yr && (c & 111551) === 111551 && !(Ne.flags & 8388608)) {
          const Un = ns(we);
          Ie(Un.declarations) && Rn(Un.declarations, (Kn) => kO(Kn) || Hi(Kn) && !!Kn.symbol.globalExports) && im(!Y.allowUmdGlobalAccess, hn, _._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead, ta(a));
        }
        if (we && An && !Yn && (c & 111551) === 111551) {
          const Un = ns(lU(we)), Kn = Om(An);
          Un === Ir(An) ? Je(hn, _.Parameter_0_cannot_reference_itself, Ls(An.name)) : Un.valueDeclaration && Un.valueDeclaration.pos > An.pos && Kn.parent.locals && M(Kn.parent.locals, Un.escapedName, c) === Un && Je(hn, _.Parameter_0_cannot_reference_identifier_1_declared_after_it, Ls(An.name), Ls(hn));
        }
        if (we && hn && c & 111551 && we.flags & 2097152 && !(we.flags & 111551) && !px(hn)) {
          const Un = kd(we, 111551);
          if (Un) {
            const Kn = Un.kind === 278 || Un.kind === 275 || Un.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, $r = ta(a);
            lS(Je(hn, Kn, $r), Un, $r);
          }
        }
      }), we;
    }
    function lS(n, a, c) {
      return a ? qo(n, Rr(a, a.kind === 278 || a.kind === 275 || a.kind === 277 ? _._0_was_exported_here : _._0_was_imported_here, c)) : n;
    }
    function Eb(n, a) {
      return n.kind !== 216 && n.kind !== 215 ? xk(n) || (Xs(n) || n.kind === 169 && !za(n)) && (!a || a !== n.name) : a && a === n.name ? !1 : n.asteriskToken || Kr(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 Zf(n) {
      return Ua(n) ? ta(n) : Ls(n);
    }
    function p2(n, a) {
      if (n.declarations) {
        for (const c of n.declarations)
          if (c.kind === 165 && (yp(c.parent) ? rx(c.parent) : c.parent) === a)
            return !(yp(c.parent) && cn(c.parent.parent.tags, f_));
      }
      return !1;
    }
    function m2(n, a, c) {
      if (!Ve(n) || n.escapedText !== a || Vwe(n) || kL(n))
        return !1;
      const u = bd(n, !1, !1);
      let p = u;
      for (; p; ) {
        if (li(p.parent)) {
          const g = Ir(p.parent);
          if (!g)
            break;
          const x = or(g);
          if (so(x, a))
            return Je(n, _.Cannot_find_name_0_Did_you_mean_the_static_member_1_0, Zf(c), S(g)), !0;
          if (p === u && !za(p)) {
            const R = Fs(g).thisType;
            if (so(R, a))
              return Je(n, _.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0, Zf(c)), !0;
          }
        }
        p = p.parent;
      }
      return !1;
    }
    function r0(n) {
      const a = dS(n);
      return a && Dc(a, 64, !0) ? (Je(n, _.Cannot_extend_an_interface_0_Did_you_mean_implements, El(a)), !0) : !1;
    }
    function dS(n) {
      switch (n.kind) {
        case 79:
        case 208:
          return n.parent ? dS(n.parent) : void 0;
        case 230:
          if (jc(n.expression))
            return n.expression;
        default:
          return;
      }
    }
    function fS(n, a, c) {
      const u = 1920 | (fr(n) ? 111551 : 0);
      if (c === u) {
        const p = Jc(fc(n, a, 788968 & ~u, void 0, void 0, !1)), g = n.parent;
        if (p) {
          if (Sd(g)) {
            D.assert(g.left === n, "Should only be resolving left side of qualified name as a namespace");
            const x = g.right.escapedText;
            if (so(Fs(p), x))
              return Je(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 Je(n, _._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here, ta(a)), !0;
        }
      }
      return !1;
    }
    function h2(n, a, c) {
      if (c & 788584) {
        const u = Jc(fc(n, a, 111127, void 0, void 0, !1));
        if (u && !(u.flags & 1920))
          return Je(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 Tb(n) {
      return n === "any" || n === "string" || n === "number" || n === "boolean" || n === "never" || n === "unknown";
    }
    function _S(n, a) {
      return Tb(a) && n.parent.kind === 278 ? (Je(n, _.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, a), !0) : !1;
    }
    function wf(n, a, c) {
      if (c & 111551) {
        if (Tb(a))
          return kg(n) ? Je(n, _.An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_classes, ta(a)) : Je(n, _._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, ta(a)), !0;
        const u = Jc(fc(n, a, 788544, void 0, void 0, !1)), p = u && ou(u);
        if (u && p !== void 0 && !(p & 111551)) {
          const g = ta(a);
          return np(a) ? Je(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) : Lp(n, u) ? Je(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") : Je(n, _._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, g), !0;
        }
      }
      return !1;
    }
    function kg(n) {
      const a = n.parent.parent, c = a.parent;
      if (a && c) {
        const u = Bd(a) && a.token === 94, p = Qu(c);
        return u && p;
      }
      return !1;
    }
    function Lp(n, a) {
      const c = rr(n.parent, (u) => Ts(u) || xf(u) ? !1 : of(u) || "quit");
      if (c && c.members.length === 1) {
        const u = Fs(a);
        return !!(u.flags & 1048576) && r4(u, 384, !0);
      }
      return !1;
    }
    function np(n) {
      switch (n) {
        case "Promise":
        case "Symbol":
        case "Map":
        case "WeakMap":
        case "Set":
        case "WeakSet":
          return !0;
      }
      return !1;
    }
    function g2(n, a, c) {
      if (c & 111127) {
        if (Jc(fc(n, a, 1024, void 0, void 0, !1)))
          return Je(n, _.Cannot_use_namespace_0_as_a_value, ta(a)), !0;
      } else if (c & 788544 && Jc(fc(n, a, 1536, void 0, void 0, !1)))
        return Je(n, _.Cannot_use_namespace_0_as_a_type, ta(a)), !0;
      return !1;
    }
    function Sb(n, a) {
      var c;
      if (D.assert(!!(n.flags & 2 || n.flags & 32 || n.flags & 384)), n.flags & 67108881 && n.flags & 32)
        return;
      const u = (c = n.declarations) == null ? void 0 : c.find((p) => NW(p) || li(p) || p.kind === 263);
      if (u === void 0)
        return D.fail("checkResolvedBlockScopedVariable could not find block-scoped declaration");
      if (!(u.flags & 16777216) && !Ig(u, a)) {
        let p;
        const g = Ls(Aa(u));
        n.flags & 2 ? p = Je(a, _.Block_scoped_variable_0_used_before_its_declaration, g) : n.flags & 32 ? p = Je(a, _.Class_0_used_before_its_declaration, g) : n.flags & 256 ? p = Je(a, _.Enum_0_used_before_its_declaration, g) : (D.assert(!!(n.flags & 128)), L1(Y) && (p = Je(a, _.Enum_0_used_before_its_declaration, g))), p && qo(p, Rr(u, _._0_is_declared_here, g));
      }
    }
    function am(n, a, c) {
      return !!a && !!rr(n, (u) => u === a || (u === c || qa(u) && (!dT(u) || KA(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 fd(n) {
      return n.declarations && $i(n.declarations, wg);
    }
    function wg(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 && zA(n) || br(n) && Ac(n) === 2 && zA(n) || sc(n) && br(n.parent) && n.parent.left === n && n.parent.operatorToken.kind === 63 && om(n.parent.right) || n.kind === 300 || n.kind === 299 && om(n.initializer) || n.kind === 257 && E1(n) || n.kind === 205 && E1(n.parent.parent);
    }
    function om(n) {
      return CN(n) || Ps(n) && Fp(n);
    }
    function sm(n, a) {
      const c = My(n);
      if (c) {
        const p = nk(c.expression).arguments[0];
        return Ve(c.name) ? Jc(so(OAe(p), c.name.escapedText)) : void 0;
      }
      if (zi(n) || n.moduleReference.kind === 280) {
        const p = su(n, ZW(n) || MI(n)), g = _d(p);
        return S_(n, p, g, !1), g;
      }
      const u = kp(n.moduleReference, a);
      return Dg(n, u), u;
    }
    function Dg(n, a) {
      if (S_(n, void 0, a, !1) && !n.isTypeOnly) {
        const c = kd(Ir(n)), u = c.kind === 278 || c.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 = c.kind === 275 ? "*" : ta(c.name.escapedText);
        qo(Je(n.moduleReference, p), Rr(c, g, x));
      }
    }
    function oE(n, a, c, u) {
      const p = n.exports.get("export="), g = p ? so(or(p), a, !0) : n.exports.get(a), x = Jc(g, u);
      return S_(c, g, x, !1), x;
    }
    function mS(n) {
      return Mc(n) && !n.isExportEquals || Kr(n, 1024) || cd(n);
    }
    function Oy(n) {
      return Es(n) ? vp(er(n), n) : void 0;
    }
    function sE(n, a) {
      return n === 99 && a === 1;
    }
    function ks(n) {
      return Oy(n) === 99 && tl(n.text, ".json");
    }
    function Py(n, a, c, u) {
      const p = n && Oy(u);
      if (n && p !== void 0) {
        const g = sE(p, n.impliedNodeFormat);
        if (p === 99 || g)
          return g;
      }
      if (!ie)
        return !1;
      if (!n || n.isDeclarationFile) {
        const g = oE(a, "default", void 0, !0);
        return !(g && kt(g.declarations, mS) || oE(a, oc("__esModule"), void 0, c));
      }
      return Xu(n) ? typeof n.externalModuleIndicator != "object" && !oE(a, oc("__esModule"), void 0, c) : fE(a);
    }
    function y2(n, a) {
      const c = su(n, n.parent.moduleSpecifier);
      if (c)
        return xb(c, n, a);
    }
    function xb(n, a, c) {
      var u;
      let p;
      DI(n) ? p = n : p = oE(n, "default", a, c);
      const g = (u = n.declarations) == null ? void 0 : u.find(Hi), x = Ab(a);
      if (!x)
        return p;
      const R = ks(x), M = Py(g, n, c, x);
      if (!p && !M && !R)
        if (fE(n) && !(ET(Y) || V_(Y))) {
          const J = de >= 5 ? "allowSyntheticDefaultImports" : "esModuleInterop", ge = n.exports.get("export=").valueDeclaration, Ne = Je(a.name, _.Module_0_can_only_be_default_imported_using_the_1_flag, S(n), J);
          ge && qo(Ne, Rr(ge, _.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag, J));
        } else
          Vm(a) ? v2(n, a) : i0(n, n, a, qS(a) && a.propertyName || a.name);
      else if (M || R) {
        const J = _d(n, c) || Jc(n, c);
        return S_(a, n, J, !1), J;
      }
      return S_(a, p, void 0, !1), p;
    }
    function Ab(n) {
      switch (n.kind) {
        case 270:
          return n.parent.moduleSpecifier;
        case 268:
          return jm(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 v2(n, a) {
      var c, u, p;
      if ((c = n.exports) != null && c.has(a.symbol.escapedName))
        Je(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 = Je(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 !!(Xl(M) && M.moduleSpecifier && (($ = (J = su(M, M.moduleSpecifier)) == null ? void 0 : J.exports) != null && $.has("default")));
          });
          R && qo(g, Rr(R, _.export_Asterisk_does_not_re_export_a_default));
        }
      }
    }
    function uL(n, a) {
      const c = n.parent.parent.moduleSpecifier, u = su(n, c), p = kb(u, c, a, !1);
      return S_(n, u, p, !1), p;
    }
    function b2(n, a) {
      const c = n.parent.moduleSpecifier, u = c && su(n, c), p = c && kb(u, c, a, !1);
      return S_(n, u, p, !1), p;
    }
    function pr(n, a) {
      if (n === nn && a === nn)
        return nn;
      if (n.flags & 790504)
        return n;
      const c = Qo(n.flags | a.flags, n.escapedName);
      return D.assert(n.declarations || a.declarations), c.declarations = fA(ma(n.declarations, a.declarations), M0), c.parent = n.parent || a.parent, n.valueDeclaration && (c.valueDeclaration = n.valueDeclaration), a.members && (c.members = new Map(a.members)), n.exports && (c.exports = new Map(n.exports)), c;
    }
    function wc(n, a, c, u) {
      var p;
      if (n.flags & 1536) {
        const g = ff(n).get(a.escapedText), x = Jc(g, u), R = (p = Vi(n).typeOnlyExportStarMap) == null ? void 0 : p.get(a.escapedText);
        return S_(c, g, x, !1, R, a.escapedText), x;
      }
    }
    function la(n, a) {
      if (n.flags & 3) {
        const c = n.valueDeclaration.type;
        if (c)
          return Jc(so(ui(c), a));
      }
    }
    function Df(n, a, c = !1) {
      var u;
      const p = ZW(n) || n.moduleSpecifier, g = su(n, p), x = !Mr(a) && a.propertyName || a.name;
      if (!Ve(x))
        return;
      const R = x.escapedText === "default" && !!(Y.allowSyntheticDefaultImports || V_(Y)), M = kb(g, p, !1, R);
      if (M && x.escapedText) {
        if (DI(g))
          return g;
        let J;
        g && g.exports && g.exports.get("export=") ? J = so(or(M), x.escapedText, !0) : J = la(M, x.escapedText), J = Jc(J, c);
        let $ = wc(M, x, a, c);
        if ($ === void 0 && x.escapedText === "default") {
          const Ne = (u = g.declarations) == null ? void 0 : u.find(Hi);
          (ks(p) || Py(Ne, g, c, p)) && ($ = _d(g, c) || Jc(g, c));
        }
        const ge = $ && J && $ !== J ? pr(J, $) : $ || J;
        return ge || i0(g, M, n, x), ge;
      }
    }
    function i0(n, a, c, u) {
      var p;
      const g = Oh(n, c), x = Ls(u), R = fV(u, a);
      if (R !== void 0) {
        const M = S(R), J = Je(u, _._0_has_no_exported_member_named_1_Did_you_mean_2, g, x, M);
        R.valueDeclaration && qo(J, Rr(R.valueDeclaration, _._0_is_declared_here, M));
      } else
        (p = n.exports) != null && p.has("default") ? Je(u, _.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead, g, x) : $m(c, u, x, n, g);
    }
    function $m(n, a, c, u, p) {
      var g, x;
      const R = (x = (g = ii(u.valueDeclaration, wm)) == 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)
          cm(J, R) ? ar(n, a, c, p) : Je(a, _.Module_0_has_no_exported_member_1, p, c);
        else {
          const $ = M ? cn(Cre(M), (Ne) => !!cm(Ne, R)) : void 0, ge = $ ? Je(a, _.Module_0_declares_1_locally_but_it_is_exported_as_2, p, c, S($)) : Je(a, _.Module_0_declares_1_locally_but_it_is_not_exported, p, c);
          R.declarations && qo(ge, ...en(R.declarations, (Ne, we) => Rr(Ne, we === 0 ? _._0_is_declared_here : _.and_here, c)));
        }
      } else
        Je(a, _.Module_0_has_no_exported_member_1, p, c);
    }
    function ar(n, a, c, u) {
      if (de >= 5) {
        const p = V_(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;
        Je(a, p, c);
      } else if (fr(n)) {
        const p = V_(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;
        Je(a, p, c);
      } else {
        const p = V_(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;
        Je(a, p, c, c, u);
      }
    }
    function E2(n, a) {
      if (xd(n) && Pr(n.propertyName || n.name) === "default") {
        const x = Ab(n), R = x && su(n, x);
        if (R)
          return xb(R, n, a);
      }
      const c = us(n) ? Om(n) : n.parent.parent.parent, u = My(c), p = Df(c, u || n, a), g = n.propertyName || n.name;
      return u && p && Ve(g) ? Jc(so(or(p), g.escapedText), a) : (S_(n, void 0, p, !1), p);
    }
    function My(n) {
      if (zi(n) && n.initializer && Mr(n.initializer))
        return n.initializer;
    }
    function Al(n, a) {
      if (km(n.parent)) {
        const c = _d(n.parent.symbol, a);
        return S_(n, void 0, c, !1), c;
      }
    }
    function T_(n, a, c) {
      if (Pr(n.propertyName || n.name) === "default") {
        const p = Ab(n), g = p && su(n, p);
        if (g)
          return xb(g, n, !!c);
      }
      const u = n.parent.parent.moduleSpecifier ? Df(n.parent.parent, n, c) : Dc(n.propertyName || n.name, a, !1, c);
      return S_(n, void 0, u, !1), u;
    }
    function Ip(n, a) {
      const c = Mc(n) ? n.expression : n.right, u = Fy(c, a);
      return S_(n, void 0, u, !1), u;
    }
    function Fy(n, a) {
      if (Pu(n))
        return Xc(n).symbol;
      if (!Zd(n) && !jc(n))
        return;
      const c = Dc(n, 901119, !0, a);
      return c || (Xc(n), zr(n).resolvedSymbol);
    }
    function cE(n, a) {
      if (br(n.parent) && n.parent.left === n && n.parent.operatorToken.kind === 63)
        return Fy(n.parent.right, a);
    }
    function rp(n, a = !1) {
      switch (n.kind) {
        case 268:
        case 257:
          return sm(n, a);
        case 270:
          return y2(n, a);
        case 271:
          return uL(n, a);
        case 277:
          return b2(n, a);
        case 273:
        case 205:
          return E2(n, a);
        case 278:
          return T_(n, 901119, a);
        case 274:
        case 223:
          return Ip(n, a);
        case 267:
          return Al(n, a);
        case 300:
          return Dc(n.name, 901119, !0, a);
        case 299:
          return Fy(n.initializer, a);
        case 209:
        case 208:
          return cE(n, a);
        default:
          return D.fail();
      }
    }
    function By(n, a = 901119) {
      return n ? (n.flags & (2097152 | a)) === 2097152 || !!(n.flags & 2097152 && n.flags & 67108864) : !1;
    }
    function Jc(n, a) {
      return !a && By(n) ? Zc(n) : n;
    }
    function Zc(n) {
      D.assert((n.flags & 2097152) !== 0, "Should only get Alias here.");
      const a = Vi(n);
      if (a.aliasTarget)
        a.aliasTarget === Mn && (a.aliasTarget = nn);
      else {
        a.aliasTarget = Mn;
        const c = fd(n);
        if (!c)
          return D.fail();
        const u = rp(c);
        a.aliasTarget === Mn ? a.aliasTarget = u || nn : Je(c, _.Circular_definition_of_import_alias_0, S(n));
      }
      return a.aliasTarget;
    }
    function Rg(n) {
      if (Vi(n).aliasTarget !== Mn)
        return Zc(n);
    }
    function ou(n) {
      let a = n.flags, c;
      for (; n.flags & 2097152; ) {
        const u = Zc(n);
        if (u === nn)
          return 67108863;
        if (u === n || c != null && c.has(u))
          break;
        u.flags & 2097152 && (c ? c.add(u) : c = /* @__PURE__ */ new Set([n, u])), a |= u.flags, n = u;
      }
      return a;
    }
    function S_(n, a, c, u, p, g) {
      if (!n || Mr(n))
        return !1;
      const x = Ir(n);
      if (p1(n)) {
        const M = Vi(x);
        return M.typeOnlyDeclaration = n, !0;
      }
      if (p) {
        const M = Vi(x);
        return M.typeOnlyDeclaration = p, x.escapedName !== g && (M.typeOnlyExportStarName = g), !0;
      }
      const R = Vi(x);
      return Qm(R, a, u) || Qm(R, c, u);
    }
    function Qm(n, a, c) {
      var u, p, g;
      if (a && (n.typeOnlyDeclaration === void 0 || c && n.typeOnlyDeclaration === !1)) {
        const x = (p = (u = a.exports) == null ? void 0 : u.get("export=")) != null ? p : a, R = x.declarations && cn(x.declarations, p1);
        n.typeOnlyDeclaration = (g = R ?? Vi(x).typeOnlyDeclaration) != null ? g : !1;
      }
      return !!n.typeOnlyDeclaration;
    }
    function kd(n, a) {
      if (!(n.flags & 2097152))
        return;
      const c = Vi(n);
      if (a === void 0)
        return c.typeOnlyDeclaration || void 0;
      if (c.typeOnlyDeclaration) {
        const u = c.typeOnlyDeclaration.kind === 275 ? Jc(Bh(c.typeOnlyDeclaration.symbol.parent).get(c.typeOnlyExportStarName || n.escapedName)) : Zc(c.typeOnlyDeclaration.symbol);
        return ou(u) & a ? c.typeOnlyDeclaration : void 0;
      }
    }
    function lE(n) {
      if (Y.verbatimModuleSyntax)
        return;
      const a = Ir(n), c = Zc(a);
      c && (c === nn || ou(c) & 111551 && !VD(c) && !kd(a, 111551)) && Cb(a);
    }
    function Cb(n) {
      D.assert(!Y.verbatimModuleSyntax);
      const a = Vi(n);
      if (!a.referenced) {
        a.referenced = !0;
        const c = fd(n);
        if (!c)
          return D.fail();
        BA(c) && ou(Jc(n)) & 111551 && Xc(c.moduleReference);
      }
    }
    function Lb(n) {
      const a = Vi(n);
      a.constEnumReferenced || (a.constEnumReferenced = !0);
    }
    function kp(n, a) {
      return n.kind === 79 && YI(n) && (n = n.parent), n.kind === 79 || n.parent.kind === 163 ? Dc(n, 1920, !1, a) : (D.assert(n.parent.kind === 268), Dc(n, 901119, !1, a));
    }
    function Oh(n, a) {
      return n.parent ? Oh(n.parent, a) + "." + S(n) : S(n, a, void 0, 36);
    }
    function uE(n) {
      for (; Sd(n.parent); )
        n = n.parent;
      return n;
    }
    function Gy(n) {
      let a = Sf(n), c = fc(a, a.escapedText, 111551, void 0, a, !0);
      if (c) {
        for (; Sd(a.parent); ) {
          const u = or(c);
          if (c = so(u, a.parent.right.escapedText), !c)
            return;
          a = a.parent;
        }
        return c;
      }
    }
    function Dc(n, a, c, u, p) {
      if (xc(n))
        return;
      const g = 1920 | (fr(n) ? a & 111551 : 0);
      let x;
      if (n.kind === 79) {
        const R = a === g || Ys(n) ? _.Cannot_find_namespace_0 : ALe(Sf(n)), M = fr(n) && !Ys(n) ? Ng(n, a) : void 0;
        if (x = ns(fc(p || n, n.escapedText, a, c || M ? void 0 : R, n, !0, !1)), !x)
          return ns(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 = Dc(R, g, c, !1, p);
        if (!J || xc(M))
          return;
        if (J === nn)
          return J;
        if (J.valueDeclaration && fr(J.valueDeclaration) && yc(Y) !== 100 && zi(J.valueDeclaration) && J.valueDeclaration.initializer && cke(J.valueDeclaration.initializer)) {
          const $ = J.valueDeclaration.initializer.arguments[0], ge = su($, $);
          if (ge) {
            const Ne = _d(ge);
            Ne && (J = Ne);
          }
        }
        if (x = ns(zd(ff(J), M.escapedText, a)), !x) {
          if (!c) {
            const $ = Oh(J), ge = Ls(M), Ne = fV(M, J);
            if (Ne) {
              Je(M, _._0_has_no_exported_member_named_1_Did_you_mean_2, $, ge, S(Ne));
              return;
            }
            const we = Sd(n) && uE(n);
            if (Ka && a & 788968 && we && !yC(we.parent) && Gy(we)) {
              Je(we, _._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, Ef(we));
              return;
            }
            if (a & 1920 && Sd(n.parent)) {
              const Bt = ns(zd(ff(J), M.escapedText, 788968));
              if (Bt) {
                Je(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;
              }
            }
            Je(M, _.Namespace_0_has_no_exported_member_1, $, ge);
          }
          return;
        }
      } else
        throw D.assertNever(n, "Unknown entity name kind.");
      return D.assert((Cc(x) & 1) === 0, "Should never get an instantiated symbol here."), !Ys(n) && Zd(n) && (x.flags & 2097152 || n.parent.kind === 274) && S_(dz(n), x, void 0, !0), x.flags & a || u ? x : Zc(x);
    }
    function Ng(n, a) {
      if (mU(n.parent)) {
        const c = Ph(n.parent);
        if (c)
          return fc(c, n.escapedText, a, void 0, n, !0);
      }
    }
    function Ph(n) {
      if (rr(n, (p) => LA(p) || p.flags & 8388608 ? f_(p) : "quit"))
        return;
      const c = rx(n);
      if (c && nu(c) && pN(c.expression)) {
        const p = Ir(c.expression.left);
        if (p)
          return a0(p);
      }
      if (c && Ps(c) && pN(c.parent) && nu(c.parent.parent)) {
        const p = Ir(c.parent.left);
        if (p)
          return a0(p);
      }
      if (c && (M_(c) || Vl(c)) && br(c.parent.parent) && Ac(c.parent.parent) === 6) {
        const p = Ir(c.parent.parent.left);
        if (p)
          return a0(p);
      }
      const u = WA(n);
      if (u && qa(u)) {
        const p = Ir(u);
        return p && p.valueDeclaration;
      }
    }
    function a0(n) {
      const a = n.parent.valueDeclaration;
      return a ? (FI(a) ? QS(a) : aT(a) ? lN(a) : void 0) || a : void 0;
    }
    function o0(n) {
      const a = n.valueDeclaration;
      if (!a || !fr(a) || n.flags & 524288 || H0(a, !1))
        return;
      const c = zi(a) ? lN(a) : QS(a);
      if (c) {
        const u = qd(c);
        if (u)
          return Rae(u, n);
      }
    }
    function su(n, a, c) {
      const p = yc(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 Mh(n, a, c ? void 0 : p);
    }
    function Mh(n, a, c, u = !1) {
      return Es(a) ? gl(n, a.text, c, a, u) : void 0;
    }
    function gl(n, a, c, u, p = !1) {
      var g, x, R, M, J, $, ge, Ne, we;
      if (ba(a, "@types/")) {
        const Un = _.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1, Kn = rI(a, "@types/");
        Je(u, Un, Kn, a);
      }
      const ft = Lre(a, !0);
      if (ft)
        return ft;
      const Bt = er(n), Fn = Es(n) ? n : ((g = rr(n, rf)) == null ? void 0 : g.arguments[0]) || ((x = rr(n, Ul)) == null ? void 0 : x.moduleSpecifier) || ((R = rr(n, j0)) == null ? void 0 : R.moduleReference.expression) || ((M = rr(n, Xl)) == null ? void 0 : M.moduleSpecifier) || ((J = Wc(n) ? n : n.parent && Wc(n.parent) && n.parent.name === n ? n.parent : void 0) == null ? void 0 : J.name) || (($ = V0(n) ? n : void 0) == null ? void 0 : $.argument.literal), An = Fn && Es(Fn) ? vp(Bt, Fn) : Bt.impliedNodeFormat, Yn = yc(Y), hn = kA(Bt, a, An), xn = hn && GX(Y, hn, Bt), yr = hn && (!xn || xn === _.Module_0_was_resolved_to_1_but_jsx_is_not_set) && e.getSourceFile(hn.resolvedFileName);
      if (yr) {
        if (xn && Je(u, xn, a, hn.resolvedFileName), hn.resolvedUsingTsExtension && ld(a)) {
          const Un = ((ge = rr(n, Ul)) == null ? void 0 : ge.importClause) || rr(n, Am(ru, Xl));
          (Un && !Un.isTypeOnly || rr(n, rf)) && Je(u, _.A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead, on(D.checkDefined(E3(a))));
        } else if (hn.resolvedUsingTsExtension && !qk(Y, Bt.fileName)) {
          const Un = D.checkDefined(E3(a));
          Je(u, _.An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled, Un);
        }
        if (yr.symbol) {
          if (hn.isExternalLibraryImport && !ZN(hn.extension) && dE(!1, u, Bt, An, hn, a), Yn === 3 || Yn === 99) {
            const Un = Bt.impliedNodeFormat === 1 && !rr(n, rf) || !!rr(n, ru), Kn = rr(n, (ti) => _g(ti) || Xl(ti) || Ul(ti)), $r = Kn && _g(Kn) ? (Ne = Kn.assertions) == null ? void 0 : Ne.assertClause : Kn == null ? void 0 : Kn.assertClause;
            if (Un && yr.impliedNodeFormat === 99 && !Ux($r))
              if (rr(n, ru))
                Je(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 ti;
                const da = bh(Bt.fileName);
                if (da === ".ts" || da === ".js" || da === ".tsx" || da === ".jsx") {
                  const Ya = Bt.packageJsonScope, yl = da === ".ts" ? ".mts" : da === ".js" ? ".mjs" : void 0;
                  Ya && !Ya.contents.packageJsonContent.type ? yl ? ti = ka(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, yl, Pi(Ya.packageDirectory, "package.json")) : ti = ka(void 0, _.To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0, Pi(Ya.packageDirectory, "package.json")) : yl ? ti = ka(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, yl) : ti = ka(void 0, _.To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module);
                }
                Xo.add(ag(er(u), u, ka(ti, _.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 ns(yr.symbol);
        }
        c && Je(u, _.File_0_is_not_a_module, yr.fileName);
        return;
      }
      if (po) {
        const Un = yj(po, (Kn) => Kn.pattern, a);
        if (Un) {
          const Kn = Uo && Uo.get(a);
          return ns(Kn || Un.symbol);
        }
      }
      if (hn && !ZN(hn.extension) && xn === void 0 || xn === _.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type) {
        if (p) {
          const Un = _.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;
          Je(u, Un, a, hn.resolvedFileName);
        } else
          dE(Te && !!c, u, Bt, An, hn, a);
        return;
      }
      if (c) {
        if (hn) {
          const Un = e.getProjectReferenceRedirect(hn.resolvedFileName);
          if (Un) {
            Je(u, _.Output_file_0_has_not_been_built_from_source_file_1, Un, hn.resolvedFileName);
            return;
          }
        }
        if (xn)
          Je(u, xn, a, hn.resolvedFileName);
        else {
          const Un = vf(a) && !gA(a), Kn = Yn === 3 || Yn === 99;
          if (!TT(Y) && sl(a, ".json") && Yn !== 1 && L3(Y))
            Je(u, _.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, a);
          else if (An === 99 && Kn && Un) {
            const $r = Da(a, _i(Bt.path)), ti = (we = f2.find(([da, Ya]) => e.fileExists($r + da))) == null ? void 0 : we[1];
            ti ? Je(u, _.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, a + ti) : Je(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
            Je(u, c, a);
        }
      }
      return;
      function on(Un) {
        const Kn = QN(a, Un);
        if (Xz(de) || An === 99) {
          const $r = ld(a) && qk(Y);
          return Kn + (Un === ".mts" || Un === ".d.mts" ? $r ? ".mts" : ".mjs" : Un === ".cts" || Un === ".d.mts" ? $r ? ".cts" : ".cjs" : $r ? ".ts" : ".js");
        }
        return Kn;
      }
    }
    function dE(n, a, c, u, { packageId: p, resolvedFileName: g }, x) {
      var R, M;
      let J;
      if (!Pl(x) && p) {
        const $ = (M = (R = c.resolvedModules) == null ? void 0 : R.get(x, u)) == null ? void 0 : M.node10Result;
        J = $ ? ka(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(Sy + "@types/") > -1 ? `@types/${zk(p.name)}` : p.name) : Fh(p.name) ? ka(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, zk(p.name)) : Ib(p.name) ? ka(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) : ka(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, zk(p.name));
      }
      im(n, a, ka(J, _.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type, x, g));
    }
    function Fh(n) {
      return t().has(E5(n));
    }
    function Ib(n) {
      return !!t().get(n);
    }
    function _d(n, a) {
      if (n != null && n.exports) {
        const c = Jc(n.exports.get("export="), a), u = Zm(ns(c), ns(n));
        return ns(u) || n;
      }
    }
    function Zm(n, a) {
      if (!n || n === nn || n === a || a.exports.size === 1 || n.flags & 2097152)
        return n;
      const c = Vi(n);
      if (c.cjsExportMerged)
        return c.cjsExportMerged;
      const u = n.flags & 33554432 ? n : yb(n);
      return u.flags = u.flags | 512, u.exports === void 0 && (u.exports = ao()), a.exports.forEach((p, g) => {
        g !== "export=" && u.exports.set(g, u.exports.has(g) ? tp(u.exports.get(g), p) : p);
      }), Vi(u).cjsExportMerged = u, c.cjsExportMerged = u;
    }
    function kb(n, a, c, u) {
      var p;
      const g = _d(n, c);
      if (!c && g) {
        if (!u && !(g.flags & 1539) && !Sc(g, 308)) {
          const R = de >= 5 ? "allowSyntheticDefaultImports" : "esModuleInterop";
          return Je(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 (Ul(x) && VA(x) || rf(x)) {
          const R = rf(x) ? x.arguments[0] : x.moduleSpecifier, M = or(g), J = oke(M, g, n, R);
          if (J)
            return s0(g, J, x);
          const $ = (p = n == null ? void 0 : n.declarations) == null ? void 0 : p.find(Hi), ge = $ && sE(Oy(R), $.impliedNodeFormat);
          if (V_(Y) || ge) {
            let Ne = pP(M, 0);
            if ((!Ne || !Ne.length) && (Ne = pP(M, 1)), Ne && Ne.length || so(M, "default", !0) || ge) {
              const we = ske(M, g, n, R);
              return s0(g, we, x);
            }
          }
        }
      }
      return g;
    }
    function s0(n, a, c) {
      const u = Qo(n.flags, n.escapedName);
      u.declarations = n.declarations ? n.declarations.slice() : [], u.parent = n.parent, u.links.target = n, u.links.originatingImport = c, 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 = sp(a);
      return u.links.type = ws(u, p.members, rt, rt, p.indexInfos), u;
    }
    function fE(n) {
      return n.exports.get("export=") !== void 0;
    }
    function Uy(n) {
      return Cre(Bh(n));
    }
    function hS(n) {
      const a = Uy(n), c = _d(n);
      if (c !== n) {
        const u = or(c);
        _E(u) && bi(a, fs(u));
      }
      return a;
    }
    function c0(n, a) {
      Bh(n).forEach((p, g) => {
        mE(g) || a(p, g);
      });
      const u = _d(n);
      if (u !== n) {
        const p = or(u);
        _E(p) && CYe(p, (g, x) => {
          a(g, x);
        });
      }
    }
    function Og(n, a) {
      const c = Bh(a);
      if (c)
        return c.get(n);
    }
    function Rf(n, a) {
      const c = Og(n, a);
      if (c)
        return c;
      const u = _d(a);
      if (u === a)
        return;
      const p = or(u);
      return _E(p) ? so(p, n) : void 0;
    }
    function _E(n) {
      return !(n.flags & 134348796 || Zr(n) & 1 || Gf(n) || Po(n));
    }
    function ff(n) {
      return n.flags & 6256 ? cre(n, "resolvedExports") : n.flags & 1536 ? Bh(n) : n.exports || te;
    }
    function Bh(n) {
      const a = Vi(n);
      if (!a.resolvedExports) {
        const { exports: c, typeOnlyExportStarMap: u } = T2(n);
        a.resolvedExports = c, a.typeOnlyExportStarMap = u;
      }
      return a.resolvedExports;
    }
    function l0(n, a, c, u) {
      a && a.forEach((p, g) => {
        if (g === "default")
          return;
        const x = n.get(g);
        if (!x)
          n.set(g, p), c && u && c.set(g, {
            specifierText: El(u.moduleSpecifier)
          });
        else if (c && u && x && Jc(x) !== Jc(p)) {
          const R = c.get(g);
          R.exportsWithDuplicate ? R.exportsWithDuplicate.push(u) : R.exportsWithDuplicate = [u];
        }
      });
    }
    function T2(n) {
      const a = [];
      let c;
      const u = /* @__PURE__ */ new Set();
      n = _d(n);
      const p = g(n) || te;
      return c && u.forEach((x) => c.delete(x)), {
        exports: p,
        typeOnlyExportStarMap: c
      };
      function g(x, R, M) {
        if (!M && (x != null && x.exports) && x.exports.forEach((ge, Ne) => u.add(Ne)), !(x && x.exports && c_(a, x)))
          return;
        const J = new Map(x.exports), $ = x.exports.get("__export");
        if ($) {
          const ge = ao(), Ne = /* @__PURE__ */ new Map();
          if ($.declarations)
            for (const we of $.declarations) {
              const ft = su(we, we.moduleSpecifier), Bt = g(ft, we, M || we.isTypeOnly);
              l0(ge, Bt, Ne, we);
            }
          Ne.forEach(({ exportsWithDuplicate: we }, ft) => {
            if (!(ft === "export=" || !(we && we.length) || J.has(ft)))
              for (const Bt of we)
                Xo.add(Rr(Bt, _.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, Ne.get(ft).specifierText, ta(ft)));
          }), l0(J, ge);
        }
        return R != null && R.isTypeOnly && (c ?? (c = /* @__PURE__ */ new Map()), J.forEach((ge, Ne) => c.set(Ne, R))), J;
      }
    }
    function ns(n) {
      let a;
      return n && n.mergeId && (a = Yv[n.mergeId]) ? a : n;
    }
    function Ir(n) {
      return ns(n.symbol && lU(n.symbol));
    }
    function qd(n) {
      return km(n) ? Ir(n) : void 0;
    }
    function pd(n) {
      return ns(n.parent && lU(n.parent));
    }
    function gS(n, a) {
      const c = er(a), u = ds(c), p = Vi(n);
      let g;
      if (p.extendedContainersByFile && (g = p.extendedContainersByFile.get(u)))
        return g;
      if (c && c.imports) {
        for (const R of c.imports) {
          if (Ys(R))
            continue;
          const M = su(a, R, !0);
          !M || !jy(M, n) || (g = Bn(g, M));
        }
        if (Ie(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 (!Yc(R))
          continue;
        const M = Ir(R);
        jy(M, n) && (g = Bn(g, M));
      }
      return p.extendedContainers = g || rt;
    }
    function pE(n, a, c) {
      const u = pd(n);
      if (u && !(n.flags & 262144)) {
        const x = fa(u.declarations, g), R = a && gS(n, a), M = Vy(u, c);
        if (a && u.flags & Fg(c) && d0(u, a, 1920, !1))
          return Bn(ma(ma([u], x), R), M);
        const J = !(u.flags & Fg(c)) && u.flags & 788968 && Fs(u).flags & 524288 && c === 111551 ? gE(a, (ge) => tf(ge, (Ne) => {
          if (Ne.flags & Fg(c) && or(Ne) === Fs(u))
            return Ne;
        })) : void 0;
        let $ = J ? [J, ...x, u] : [...x, u];
        return $ = Bn($, M), $ = bi($, R), $;
      }
      const p = fa(n.declarations, (x) => {
        if (!Du(x) && x.parent) {
          if (Bg(x.parent))
            return Ir(x.parent);
          if (Zp(x.parent) && x.parent.parent && _d(Ir(x.parent.parent)) === n)
            return Ir(x.parent.parent);
        }
        if (Pu(x) && br(x.parent) && x.parent.operatorToken.kind === 63 && sc(x.parent.left) && jc(x.parent.left.expression))
          return hh(x.parent.left) || fT(x.parent.left.expression) ? Ir(er(x)) : (Xc(x.parent.left.expression), zr(x.parent.left.expression).resolvedSymbol);
      });
      if (!Ie(p))
        return;
      return fa(p, (x) => jy(x, n) ? x : void 0);
      function g(x) {
        return u && S2(x, u);
      }
    }
    function Vy(n, a) {
      const c = !!Ie(n.declarations) && ss(n.declarations);
      if (a & 111551 && c && c.parent && zi(c.parent) && (xs(c) && c === c.parent.initializer || of(c) && c === c.parent.type))
        return Ir(c.parent);
    }
    function S2(n, a) {
      const c = Uh(n), u = c && c.exports && c.exports.get("export=");
      return u && cm(u, a) ? c : void 0;
    }
    function jy(n, a) {
      if (n === pd(a))
        return a;
      const c = n.exports && n.exports.get("export=");
      if (c && cm(c, a))
        return n;
      const u = ff(n), p = u.get(a.escapedName);
      return p && cm(p, a) ? p : tf(u, (g) => {
        if (cm(g, a))
          return g;
      });
    }
    function cm(n, a) {
      if (ns(Jc(ns(n))) === ns(Jc(ns(a))))
        return n;
    }
    function wp(n) {
      return ns(n && (n.flags & 1048576) !== 0 && n.exportSymbol || n);
    }
    function Pg(n, a) {
      return !!(n.flags & 111551 || n.flags & 2097152 && ou(n) & 111551 && (a || !kd(n)));
    }
    function u0(n) {
      const a = n.members;
      for (const c of a)
        if (c.kind === 173 && u_(c.body))
          return c;
    }
    function Gh(n) {
      var a;
      const c = new y(at, n);
      return b++, c.id = b, (a = yi) == null || a.recordType(c), c;
    }
    function lm(n, a) {
      const c = Gh(n);
      return c.symbol = a, c;
    }
    function yS(n) {
      return new y(at, n);
    }
    function Kc(n, a, c = 0) {
      const u = Gh(n);
      return u.intrinsicName = a, u.objectFlags = c, u;
    }
    function _f(n, a) {
      const c = lm(524288, a);
      return c.objectFlags = n, c.members = void 0, c.properties = void 0, c.callSignatures = void 0, c.constructSignatures = void 0, c.indexInfos = void 0, c;
    }
    function eh() {
      return Yr(Do(w5.keys(), Bf));
    }
    function wd(n) {
      return lm(262144, n);
    }
    function mE(n) {
      return n.charCodeAt(0) === 95 && n.charCodeAt(1) === 95 && n.charCodeAt(2) !== 95 && n.charCodeAt(2) !== 64 && n.charCodeAt(2) !== 35;
    }
    function Hy(n) {
      let a;
      return n.forEach((c, u) => {
        Mg(c, u) && (a || (a = [])).push(c);
      }), a || rt;
    }
    function Mg(n, a) {
      return !mE(a) && Pg(n);
    }
    function x2(n) {
      const a = Hy(n), c = Dre(n);
      return c ? ma(a, [c]) : a;
    }
    function Nf(n, a, c, u, p) {
      const g = n;
      return g.members = a, g.properties = rt, g.callSignatures = c, g.constructSignatures = u, g.indexInfos = p, a !== te && (g.properties = Hy(a)), g;
    }
    function ws(n, a, c, u, p) {
      return Nf(_f(16, n), a, c, u, p);
    }
    function hE(n) {
      if (n.constructSignatures.length === 0)
        return n;
      if (n.objectTypeWithoutAbstractConstructSignatures)
        return n.objectTypeWithoutAbstractConstructSignatures;
      const a = yn(n.constructSignatures, (u) => !(u.flags & 4));
      if (n.constructSignatures === a)
        return n;
      const c = ws(n.symbol, n.members, n.callSignatures, kt(a) ? a : rt, n.indexInfos);
      return n.objectTypeWithoutAbstractConstructSignatures = c, c.objectTypeWithoutAbstractConstructSignatures = c, c;
    }
    function gE(n, a) {
      let c;
      for (let u = n; u; u = u.parent) {
        if (wm(u) && u.locals && !Xm(u) && (c = a(u.locals, void 0, !0, u)))
          return c;
        switch (u.kind) {
          case 308:
            if (!nf(u))
              break;
          case 264:
            const p = Ir(u);
            if (c = a((p == null ? void 0 : p.exports) || te, void 0, !0, u))
              return c;
            break;
          case 260:
          case 228:
          case 261:
            let g;
            if ((Ir(u).members || te).forEach((x, R) => {
              x.flags & 788968 && (g || (g = ao())).set(R, x);
            }), g && (c = a(g, void 0, !1, u)))
              return c;
            break;
        }
      }
      return a(He, void 0, !0);
    }
    function Fg(n) {
      return n === 111551 ? 111551 : 1920;
    }
    function d0(n, a, c, u, p = /* @__PURE__ */ new Map()) {
      if (!(n && !yE(n)))
        return;
      const g = Vi(n), x = g.accessibleChainCache || (g.accessibleChainCache = /* @__PURE__ */ new Map()), R = gE(a, (An, Yn, hn, xn) => xn), M = `${u ? 0 : 1}|${R && ds(R)}|${c}`;
      if (x.has(M))
        return x.get(M);
      const J = yo(n);
      let $ = p.get(J);
      $ || p.set(J, $ = []);
      const ge = gE(a, Ne);
      return x.set(M, ge), ge;
      function Ne(An, Yn, hn) {
        if (!c_($, An))
          return;
        const xn = Bt(An, Yn, hn);
        return $.pop(), xn;
      }
      function we(An, Yn) {
        return !vS(An, a, Yn) || !!d0(An.parent, a, Fg(Yn), u, p);
      }
      function ft(An, Yn, hn) {
        return (n === (Yn || An) || ns(n) === ns(Yn || An)) && !kt(An.declarations, Bg) && (hn || we(ns(An), c));
      }
      function Bt(An, Yn, hn) {
        return ft(An.get(n.escapedName), void 0, Yn) ? [n] : tf(An, (yr) => {
          if (yr.flags & 2097152 && yr.escapedName !== "export=" && yr.escapedName !== "default" && !(x3(yr) && a && Yc(er(a))) && (!u || kt(yr.declarations, j0)) && (!hn || !kt(yr.declarations, aue)) && (Yn || !Sc(yr, 278))) {
            const on = Zc(yr), Un = Fn(yr, on, Yn);
            if (Un)
              return Un;
          }
          if (yr.escapedName === n.escapedName && yr.exportSymbol && ft(ns(yr.exportSymbol), void 0, Yn))
            return [n];
        }) || (An === He ? Fn(st, st, Yn) : void 0);
      }
      function Fn(An, Yn, hn) {
        if (ft(An, Yn, hn))
          return [An];
        const xn = ff(Yn), yr = xn && Ne(xn, !0);
        if (yr && we(An, Fg(c)))
          return [An].concat(yr);
      }
    }
    function vS(n, a, c) {
      let u = !1;
      return gE(a, (p) => {
        let g = ns(p.get(n.escapedName));
        if (!g)
          return !1;
        if (g === n)
          return !0;
        const x = g.flags & 2097152 && !Sc(g, 278);
        return g = x ? Zc(g) : g, (x ? ou(g) : g.flags) & c ? (u = !0, !0) : !1;
      }), u;
    }
    function yE(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 vE(n, a) {
      return Jd(n, a, 788968, !1, !0).accessibility === 0;
    }
    function bE(n, a) {
      return Jd(n, a, 111551, !1, !0).accessibility === 0;
    }
    function EE(n, a, c) {
      return Jd(n, a, c, !1, !1).accessibility === 0;
    }
    function TE(n, a, c, u, p, g) {
      if (!Ie(n))
        return;
      let x, R = !1;
      for (const M of n) {
        const J = d0(M, a, u, !1);
        if (J) {
          x = M;
          const Ne = A2(J[0], p);
          if (Ne)
            return Ne;
        }
        if (g && kt(M.declarations, Bg)) {
          if (p) {
            R = !0;
            continue;
          }
          return {
            accessibility: 0
          };
        }
        const $ = pE(M, a, u), ge = TE($, a, c, c === M ? Fg(u) : u, p, g);
        if (ge)
          return ge;
      }
      if (R)
        return {
          accessibility: 0
        };
      if (x)
        return {
          accessibility: 1,
          errorSymbolName: S(c, a, u),
          errorModuleName: x !== c ? S(x, a, 1920) : void 0
        };
    }
    function Wy(n, a, c, u) {
      return Jd(n, a, c, u, !0);
    }
    function Jd(n, a, c, u, p) {
      if (n && a) {
        const g = TE([n], a, n, c, u, p);
        if (g)
          return g;
        const x = ze(n.declarations, Uh);
        if (x) {
          const R = Uh(a);
          if (x !== R)
            return {
              accessibility: 2,
              errorSymbolName: S(n, a, c),
              errorModuleName: S(x),
              errorNode: fr(a) ? a : void 0
            };
        }
        return {
          accessibility: 1,
          errorSymbolName: S(n, a, c)
        };
      }
      return { accessibility: 0 };
    }
    function Uh(n) {
      const a = rr(n, dL);
      return a && Ir(a);
    }
    function dL(n) {
      return Du(n) || n.kind === 308 && nf(n);
    }
    function Bg(n) {
      return BM(n) || n.kind === 308 && nf(n);
    }
    function A2(n, a) {
      let c;
      if (!Rn(yn(n.declarations, (g) => g.kind !== 79), u))
        return;
      return { accessibility: 0, aliasesToMakeVisible: c };
      function u(g) {
        var x, R;
        if (!x_(g)) {
          const M = pS(g);
          if (M && !Kr(M, 1) && x_(M.parent))
            return p(g, M);
          if (zi(g) && cl(g.parent.parent) && !Kr(g.parent.parent, 1) && x_(g.parent.parent.parent))
            return p(g, g.parent.parent);
          if (GM(g) && !Kr(g, 1) && x_(g.parent))
            return p(g, g);
          if (us(g)) {
            if (n.flags & 2097152 && fr(g) && ((x = g.parent) != null && x.parent) && zi(g.parent.parent) && ((R = g.parent.parent.parent) != null && R.parent) && cl(g.parent.parent.parent.parent) && !Kr(g.parent.parent.parent.parent, 1) && g.parent.parent.parent.parent.parent && x_(g.parent.parent.parent.parent.parent))
              return p(g, g.parent.parent.parent.parent);
            if (n.flags & 2) {
              const J = rr(g, cl);
              return Kr(J, 1) ? !0 : x_(J.parent) ? p(g, J) : !1;
            }
          }
          return !1;
        }
        return !0;
      }
      function p(g, x) {
        return a && (zr(g).isVisible = !0, c = ry(c, x)), !0;
      }
    }
    function C2(n, a) {
      let c;
      n.parent.kind === 183 || n.parent.kind === 230 && !mh(n.parent) || n.parent.kind === 164 ? c = 1160127 : n.kind === 163 || n.kind === 208 || n.parent.kind === 268 ? c = 1920 : c = 788968;
      const u = Sf(n), p = fc(a, u.escapedText, c, void 0, void 0, !1);
      return p && p.flags & 262144 && c & 788968 ? { accessibility: 0 } : !p && yT(u) && Wy(Ir(bd(u, !1, !1)), u, c, !1).accessibility === 0 ? { accessibility: 0 } : p && A2(p, !0) || {
        accessibility: 1,
        errorSymbolName: El(u),
        errorNode: u
      };
    }
    function S(n, a, c, 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 ? Xe.symbolToNode : Xe.symbolToEntityName;
      return p ? R(p).getText() : II(R);
      function R(M) {
        const J = x(n, c, a, g), $ = (a == null ? void 0 : a.kind) === 308 ? EX() : W1(), ge = a && er(a);
        return $.writeNode(4, J, ge, M), M;
      }
    }
    function se(n, a, c = 0, u, p) {
      return p ? g(p).getText() : II(g);
      function g(x) {
        let R;
        c & 262144 ? R = u === 1 ? 182 : 181 : R = u === 1 ? 177 : 176;
        const M = Xe.signatureToSignatureDeclaration(n, R, a, si(c) | 70221824 | 512), J = x8(), $ = a && er(a);
        return J.writeNode(4, M, $, Ez(x)), x;
      }
    }
    function Le(n, a, c = 1064960, u = PN("")) {
      const p = Y.noErrorTruncation || c & 1, g = Xe.typeToTypeNode(n, a, si(c) | 70221824 | (p ? 1 : 0));
      if (g === void 0)
        return D.fail("should always get typenode");
      const x = n !== _t ? W1() : bX(), R = a && er(a);
      x.writeNode(4, g, R, u);
      const M = u.getText(), J = p ? j3 * 2 : aO * 2;
      return J && M && M.length >= J ? M.substr(0, J - 3) + "..." : M;
    }
    function rn(n, a) {
      let c = Ei(n.symbol) ? Le(n, n.symbol.valueDeclaration) : Le(n), u = Ei(a.symbol) ? Le(a, a.symbol.valueDeclaration) : Le(a);
      return c === u && (c = Cr(n), u = Cr(a)), [c, u];
    }
    function Cr(n) {
      return Le(n, void 0, 64);
    }
    function Ei(n) {
      return n && !!n.valueDeclaration && yt(n.valueDeclaration) && !C_(n.valueDeclaration);
    }
    function si(n = 0) {
      return n & 848330091;
    }
    function Bi(n) {
      return !!n.symbol && !!(n.symbol.flags & 32) && (n === Vu(n.symbol) || !!(n.flags & 524288) && !!(Zr(n) & 16777216));
    }
    function uo() {
      return {
        typeToTypeNode: (ut, Ee, tr, Zn) => a(Ee, tr, Zn, (Tr) => u(ut, Tr)),
        indexInfoToIndexSignatureDeclaration: (ut, Ee, tr, Zn) => a(Ee, tr, Zn, (Tr) => $(ut, Tr, void 0)),
        signatureToSignatureDeclaration: (ut, Ee, tr, Zn, Tr) => a(tr, Zn, Tr, (kr) => ge(ut, Ee, kr)),
        symbolToEntityName: (ut, Ee, tr, Zn, Tr) => a(tr, Zn, Tr, (kr) => da(ut, kr, Ee, !1)),
        symbolToExpression: (ut, Ee, tr, Zn, Tr) => a(tr, Zn, Tr, (kr) => Ya(ut, kr, Ee)),
        symbolToTypeParameterDeclarations: (ut, Ee, tr, Zn) => a(Ee, tr, Zn, (Tr) => hn(ut, Tr)),
        symbolToParameterDeclaration: (ut, Ee, tr, Zn) => a(Ee, tr, Zn, (Tr) => Bt(ut, Tr)),
        typeParameterToDeclaration: (ut, Ee, tr, Zn) => a(Ee, tr, Zn, (Tr) => ft(ut, Tr)),
        symbolTableToDeclarationStatements: (ut, Ee, tr, Zn, Tr) => a(Ee, tr, Zn, (kr) => Wu(ut, kr, Tr)),
        symbolToNode: (ut, Ee, tr, Zn, Tr) => a(tr, Zn, Tr, (kr) => n(ut, kr, Ee))
      };
      function n(ut, Ee, tr) {
        if (Ee.flags & 1073741824) {
          if (ut.valueDeclaration) {
            const Tr = Aa(ut.valueDeclaration);
            if (Tr && Ts(Tr))
              return Tr;
          }
          const Zn = Vi(ut).nameType;
          if (Zn && Zn.flags & 9216)
            return Ee.enclosingDeclaration = Zn.symbol.valueDeclaration, N.createComputedPropertyName(Ya(Zn.symbol, Ee, tr));
        }
        return Ya(ut, Ee, tr);
      }
      function a(ut, Ee, tr, Zn) {
        D.assert(ut === void 0 || (ut.flags & 8) === 0);
        const Tr = tr != null && tr.trackSymbol ? tr.moduleResolverHost : Ee & 134217728 ? oMe(e) : void 0, kr = {
          enclosingDeclaration: ut,
          flags: Ee || 0,
          tracker: void 0,
          encounteredError: !1,
          reportedDiagnostic: !1,
          visitedTypes: void 0,
          symbolDepth: void 0,
          inferTypeParameters: void 0,
          approximateLength: 0
        };
        kr.tracker = new h8(kr, tr, Tr);
        const Ia = Zn(kr);
        return kr.truncating && kr.flags & 1 && kr.tracker.reportTruncationError(), kr.encounteredError ? void 0 : Ia;
      }
      function c(ut) {
        return ut.truncating ? ut.truncating : ut.truncating = ut.approximateLength > (ut.flags & 1 ? j3 : aO);
      }
      function u(ut, Ee) {
        const tr = Ee.flags, Zn = p(ut, Ee);
        return Ee.flags = tr, Zn;
      }
      function p(ut, Ee) {
        var tr, Zn;
        o && o.throwIfCancellationRequested && o.throwIfCancellationRequested();
        const Tr = Ee.flags & 8388608;
        if (Ee.flags &= -8388609, !ut) {
          if (!(Ee.flags & 262144)) {
            Ee.encounteredError = !0;
            return;
          }
          return Ee.approximateLength += 3, N.createKeywordTypeNode(131);
        }
        if (Ee.flags & 536870912 || (ut = cp(ut)), ut.flags & 1)
          return ut.aliasSymbol ? N.createTypeReferenceNode(Un(ut.aliasSymbol), M(ut.aliasTypeArguments, Ee)) : ut === _t ? pO(N.createKeywordTypeNode(131), 3, "unresolved") : (Ee.approximateLength += 3, N.createKeywordTypeNode(ut === re ? 139 : 131));
        if (ut.flags & 2)
          return N.createKeywordTypeNode(157);
        if (ut.flags & 4)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(152);
        if (ut.flags & 8)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(148);
        if (ut.flags & 64)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(160);
        if (ut.flags & 16 && !ut.aliasSymbol)
          return Ee.approximateLength += 7, N.createKeywordTypeNode(134);
        if (ut.flags & 1056) {
          if (ut.symbol.flags & 8) {
            const gn = pd(ut.symbol), ur = Kn(gn, Ee, 788968);
            if (Fs(gn) === ut)
              return ur;
            const Qr = Oc(ut.symbol);
            return N_(Qr, 0) ? Jn(ur, N.createTypeReferenceNode(Qr, void 0)) : _g(ur) ? (ur.isTypeOf = !0, N.createIndexedAccessTypeNode(ur, N.createLiteralTypeNode(N.createStringLiteral(Qr)))) : W_(ur) ? N.createIndexedAccessTypeNode(N.createTypeQueryNode(ur.typeName), N.createLiteralTypeNode(N.createStringLiteral(Qr))) : D.fail("Unhandled type node kind returned from `symbolToTypeNode`.");
          }
          return Kn(ut.symbol, Ee, 788968);
        }
        if (ut.flags & 128)
          return Ee.approximateLength += ut.value.length + 2, N.createLiteralTypeNode(sr(N.createStringLiteral(ut.value, !!(Ee.flags & 268435456)), 33554432));
        if (ut.flags & 256) {
          const gn = ut.value;
          return Ee.approximateLength += ("" + gn).length, N.createLiteralTypeNode(gn < 0 ? N.createPrefixUnaryExpression(40, N.createNumericLiteral(-gn)) : N.createNumericLiteral(gn));
        }
        if (ut.flags & 2048)
          return Ee.approximateLength += k1(ut.value).length + 1, N.createLiteralTypeNode(N.createBigIntLiteral(ut.value));
        if (ut.flags & 512)
          return Ee.approximateLength += ut.intrinsicName.length, N.createLiteralTypeNode(ut.intrinsicName === "true" ? N.createTrue() : N.createFalse());
        if (ut.flags & 8192) {
          if (!(Ee.flags & 1048576)) {
            if (bE(ut.symbol, Ee.enclosingDeclaration))
              return Ee.approximateLength += 6, Kn(ut.symbol, Ee, 111551);
            Ee.tracker.reportInaccessibleUniqueSymbolError && Ee.tracker.reportInaccessibleUniqueSymbolError();
          }
          return Ee.approximateLength += 13, N.createTypeOperatorNode(156, N.createKeywordTypeNode(153));
        }
        if (ut.flags & 16384)
          return Ee.approximateLength += 4, N.createKeywordTypeNode(114);
        if (ut.flags & 32768)
          return Ee.approximateLength += 9, N.createKeywordTypeNode(155);
        if (ut.flags & 65536)
          return Ee.approximateLength += 4, N.createLiteralTypeNode(N.createNull());
        if (ut.flags & 131072)
          return Ee.approximateLength += 5, N.createKeywordTypeNode(144);
        if (ut.flags & 4096)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(153);
        if (ut.flags & 67108864)
          return Ee.approximateLength += 6, N.createKeywordTypeNode(149);
        if (pk(ut))
          return Ee.flags & 4194304 && (!Ee.encounteredError && !(Ee.flags & 32768) && (Ee.encounteredError = !0), (Zn = (tr = Ee.tracker).reportInaccessibleThisError) == null || Zn.call(tr)), Ee.approximateLength += 4, N.createThisTypeNode();
        if (!Tr && ut.aliasSymbol && (Ee.flags & 16384 || vE(ut.aliasSymbol, Ee.enclosingDeclaration))) {
          const gn = M(ut.aliasTypeArguments, Ee);
          return mE(ut.aliasSymbol.escapedName) && !(ut.aliasSymbol.flags & 32) ? N.createTypeReferenceNode(N.createIdentifier(""), gn) : Ie(gn) === 1 && ut.aliasSymbol === ys.symbol ? N.createArrayTypeNode(gn[0]) : Kn(ut.aliasSymbol, Ee, 788968, gn);
        }
        const kr = Zr(ut);
        if (kr & 4)
          return D.assert(!!(ut.flags & 524288)), ut.node ? $t(ut, kn) : kn(ut);
        if (ut.flags & 262144 || kr & 3) {
          if (ut.flags & 262144 && wi(Ee.inferTypeParameters, ut)) {
            Ee.approximateLength += Oc(ut.symbol).length + 6;
            let ur;
            const Qr = Tu(ut);
            if (Qr) {
              const vr = GAe(ut, !0);
              vr && zh(Qr, vr) || (Ee.approximateLength += 9, ur = Qr && u(Qr, Ee));
            }
            return N.createInferTypeNode(we(ut, Ee, ur));
          }
          if (Ee.flags & 4 && ut.flags & 262144 && !vE(ut.symbol, Ee.enclosingDeclaration)) {
            const ur = ti(ut, Ee);
            return Ee.approximateLength += Pr(ur).length, N.createTypeReferenceNode(N.createIdentifier(Pr(ur)), void 0);
          }
          if (ut.symbol)
            return Kn(ut.symbol, Ee, 788968);
          const gn = (ut === Is || ut === mc) && V && V.symbol ? (ut === mc ? "sub-" : "super-") + Oc(V.symbol) : "?";
          return N.createTypeReferenceNode(N.createIdentifier(gn), void 0);
        }
        if (ut.flags & 1048576 && ut.origin && (ut = ut.origin), ut.flags & 3145728) {
          const gn = ut.flags & 1048576 ? Kd(ut.types) : ut.types;
          if (Ie(gn) === 1)
            return u(gn[0], Ee);
          const ur = M(gn, Ee, !0);
          if (ur && ur.length > 0)
            return ut.flags & 1048576 ? N.createUnionTypeNode(ur) : N.createIntersectionTypeNode(ur);
          !Ee.encounteredError && !(Ee.flags & 262144) && (Ee.encounteredError = !0);
          return;
        }
        if (kr & 48)
          return D.assert(!!(ut.flags & 524288)), Ft(ut);
        if (ut.flags & 4194304) {
          const gn = ut.type;
          Ee.approximateLength += 6;
          const ur = u(gn, Ee);
          return N.createTypeOperatorNode(141, ur);
        }
        if (ut.flags & 134217728) {
          const gn = ut.texts, ur = ut.types, Qr = N.createTemplateHead(gn[0]), vr = N.createNodeArray(en(ur, (va, os) => N.createTemplateLiteralTypeSpan(u(va, Ee), (os < ur.length - 1 ? N.createTemplateMiddle : N.createTemplateTail)(gn[os + 1]))));
          return Ee.approximateLength += 2, N.createTemplateLiteralType(Qr, vr);
        }
        if (ut.flags & 268435456) {
          const gn = u(ut.type, Ee);
          return Kn(ut.symbol, Ee, 788968, [gn]);
        }
        if (ut.flags & 8388608) {
          const gn = u(ut.objectType, Ee), ur = u(ut.indexType, Ee);
          return Ee.approximateLength += 2, N.createIndexedAccessTypeNode(gn, ur);
        }
        if (ut.flags & 16777216)
          return $t(ut, (gn) => Ia(gn));
        if (ut.flags & 33554432)
          return u(ut.baseType, Ee);
        return D.fail("Should be unreachable.");
        function Ia(gn) {
          const ur = u(gn.checkType, Ee);
          if (Ee.approximateLength += 15, Ee.flags & 4 && gn.root.isDistributive && !(gn.checkType.flags & 262144)) {
            const Ms = wd(Qo(262144, "T")), Bs = ti(Ms, Ee), gd = N.createTypeReferenceNode(Bs);
            Ee.approximateLength += 37;
            const nt = SS(gn.root.checkType, Ms, gn.mapper), St = Ee.inferTypeParameters;
            Ee.inferTypeParameters = gn.root.inferTypeParameters;
            const Qt = u(Ji(gn.root.extendsType, nt), Ee);
            Ee.inferTypeParameters = St;
            const qn = Ii(Ji(ui(gn.root.node.trueType), nt)), mr = Ii(Ji(ui(gn.root.node.falseType), nt));
            return N.createConditionalTypeNode(ur, N.createInferTypeNode(N.createTypeParameterDeclaration(void 0, N.cloneNode(gd.typeName))), N.createConditionalTypeNode(N.createTypeReferenceNode(N.cloneNode(Bs)), u(gn.checkType, Ee), N.createConditionalTypeNode(gd, Qt, qn, mr), N.createKeywordTypeNode(144)), N.createKeywordTypeNode(144));
          }
          const Qr = Ee.inferTypeParameters;
          Ee.inferTypeParameters = gn.root.inferTypeParameters;
          const vr = u(gn.extendsType, Ee);
          Ee.inferTypeParameters = Qr;
          const va = Ii(T0(gn)), os = Ii(S0(gn));
          return N.createConditionalTypeNode(ur, vr, va, os);
        }
        function Ii(gn) {
          var ur, Qr, vr;
          return gn.flags & 1048576 ? (ur = Ee.visitedTypes) != null && ur.has(Au(gn)) ? (Ee.flags & 131072 || (Ee.encounteredError = !0, (vr = (Qr = Ee.tracker) == null ? void 0 : Qr.reportCyclicStructureError) == null || vr.call(Qr)), g(Ee)) : $t(gn, (va) => u(va, Ee)) : u(gn, Ee);
        }
        function Lr(gn) {
          return tD(gn) && !(yL(gn).flags & 262144);
        }
        function bt(gn) {
          D.assert(!!(gn.flags & 524288));
          const ur = gn.declaration.readonlyToken ? N.createToken(gn.declaration.readonlyToken.kind) : void 0, Qr = gn.declaration.questionToken ? N.createToken(gn.declaration.questionToken.kind) : void 0;
          let vr, va;
          if (tD(gn)) {
            if (Lr(gn) && Ee.flags & 4) {
              const St = wd(Qo(262144, "T")), Qt = ti(St, Ee);
              va = N.createTypeReferenceNode(Qt);
            }
            vr = N.createTypeOperatorNode(141, va || u(yL(gn), Ee));
          } else
            vr = u(Rp(gn), Ee);
          const os = we(op(gn), Ee, vr), Ms = gn.declaration.nameType ? u(Zy(gn), Ee) : void 0, Bs = u(OE(Wh(gn), !!(fm(gn) & 4)), Ee), gd = N.createMappedTypeNode(ur, os, Ms, Qr, Bs, void 0);
          Ee.approximateLength += 10;
          const nt = sr(gd, 1);
          if (Lr(gn) && Ee.flags & 4) {
            const St = Ji(Tu(ui(gn.declaration.typeParameter.constraint.type)) || he, gn.mapper);
            return N.createConditionalTypeNode(u(yL(gn), Ee), N.createInferTypeNode(N.createTypeParameterDeclaration(void 0, N.cloneNode(va.typeName), St.flags & 2 ? void 0 : u(St, Ee))), nt, N.createKeywordTypeNode(144));
          }
          return nt;
        }
        function Ft(gn) {
          var ur, Qr;
          const vr = gn.id, va = gn.symbol;
          if (va) {
            const Ms = Bi(gn) ? 788968 : 111551;
            if (Fp(va.valueDeclaration))
              return Kn(va, Ee, Ms);
            if (va.flags & 32 && !Xa(va) && !(va.valueDeclaration && li(va.valueDeclaration) && Ee.flags & 2048 && (!wl(va.valueDeclaration) || Wy(va, Ee.enclosingDeclaration, Ms, !1).accessibility !== 0)) || va.flags & 896 || os())
              return Kn(va, Ee, Ms);
            if ((ur = Ee.visitedTypes) != null && ur.has(vr)) {
              const Bs = zy(gn);
              return Bs ? Kn(Bs, Ee, 788968) : g(Ee);
            } else
              return $t(gn, Kt);
          } else {
            if (!!(Zr(gn) & 8388608)) {
              const Bs = gn;
              if (xk(Bs.node)) {
                const gd = So(Ee, Bs.node);
                if (gd)
                  return gd;
              }
              return (Qr = Ee.visitedTypes) != null && Qr.has(vr) ? g(Ee) : $t(gn, Kt);
            }
            return Kt(gn);
          }
          function os() {
            var Ms;
            const Bs = !!(va.flags & 8192) && kt(va.declarations, (nt) => za(nt)), gd = !!(va.flags & 16) && (va.parent || ze(va.declarations, (nt) => nt.parent.kind === 308 || nt.parent.kind === 265));
            if (Bs || gd)
              return (!!(Ee.flags & 4096) || ((Ms = Ee.visitedTypes) == null ? void 0 : Ms.has(vr))) && (!(Ee.flags & 8) || bE(va, Ee.enclosingDeclaration));
          }
        }
        function $t(gn, ur) {
          var Qr, vr;
          const va = gn.id, os = Zr(gn) & 16 && gn.symbol && gn.symbol.flags & 32, Ms = Zr(gn) & 4 && gn.node ? "N" + ds(gn.node) : gn.flags & 16777216 ? "N" + ds(gn.root.node) : gn.symbol ? (os ? "+" : "") + yo(gn.symbol) : void 0;
          Ee.visitedTypes || (Ee.visitedTypes = /* @__PURE__ */ new Set()), Ms && !Ee.symbolDepth && (Ee.symbolDepth = /* @__PURE__ */ new Map());
          const Bs = Ee.enclosingDeclaration && zr(Ee.enclosingDeclaration), gd = `${Au(gn)}|${Ee.flags}`;
          Bs && (Bs.serializedTypes || (Bs.serializedTypes = /* @__PURE__ */ new Map()));
          const nt = (Qr = Bs == null ? void 0 : Bs.serializedTypes) == null ? void 0 : Qr.get(gd);
          if (nt)
            return nt.truncating && (Ee.truncating = !0), Ee.approximateLength += nt.addedLength, Ln(nt.node);
          let St;
          if (Ms) {
            if (St = Ee.symbolDepth.get(Ms) || 0, St > 10)
              return g(Ee);
            Ee.symbolDepth.set(Ms, St + 1);
          }
          Ee.visitedTypes.add(va);
          const Qt = Ee.approximateLength, qn = ur(gn), mr = Ee.approximateLength - Qt;
          return !Ee.reportedDiagnostic && !Ee.encounteredError && ((vr = Bs == null ? void 0 : Bs.serializedTypes) == null || vr.set(gd, { node: qn, truncating: Ee.truncating, addedLength: mr })), Ee.visitedTypes.delete(va), Ms && Ee.symbolDepth.set(Ms, St), qn;
          function Ln(Ur) {
            return !Ys(Ur) && ga(Ur) === Ur ? Ur : mt(N.cloneNode(Gn(Ur, Ln, hg, Sr)), Ur);
          }
          function Sr(Ur, Fi, Ta, Ha, $a) {
            return Ur && Ur.length === 0 ? mt(N.createNodeArray(void 0, Ur.hasTrailingComma), Ur) : Xn(Ur, Fi, Ta, Ha, $a);
          }
        }
        function Kt(gn) {
          if (Ff(gn) || gn.containsError)
            return bt(gn);
          const ur = sp(gn);
          if (!ur.properties.length && !ur.indexInfos.length) {
            if (!ur.callSignatures.length && !ur.constructSignatures.length)
              return Ee.approximateLength += 2, sr(N.createTypeLiteralNode(void 0), 1);
            if (ur.callSignatures.length === 1 && !ur.constructSignatures.length) {
              const Ms = ur.callSignatures[0];
              return ge(Ms, 181, Ee);
            }
            if (ur.constructSignatures.length === 1 && !ur.callSignatures.length) {
              const Ms = ur.constructSignatures[0];
              return ge(Ms, 182, Ee);
            }
          }
          const Qr = yn(ur.constructSignatures, (Ms) => !!(Ms.flags & 4));
          if (kt(Qr)) {
            const Ms = en(Qr, wE);
            return ur.callSignatures.length + (ur.constructSignatures.length - Qr.length) + ur.indexInfos.length + (Ee.flags & 2048 ? Zi(ur.properties, (gd) => !(gd.flags & 4194304)) : Ie(ur.properties)) && Ms.push(hE(ur)), u(Io(Ms), Ee);
          }
          const vr = Ee.flags;
          Ee.flags |= 4194304;
          const va = hi(ur);
          Ee.flags = vr;
          const os = N.createTypeLiteralNode(va);
          return Ee.approximateLength += 2, sr(os, Ee.flags & 1024 ? 0 : 1), os;
        }
        function kn(gn) {
          let ur = _s(gn);
          if (gn.target === ys || gn.target === cs) {
            if (Ee.flags & 2) {
              const va = u(ur[0], Ee);
              return N.createTypeReferenceNode(gn.target === ys ? "Array" : "ReadonlyArray", [va]);
            }
            const Qr = u(ur[0], Ee), vr = N.createArrayTypeNode(Qr);
            return gn.target === ys ? vr : N.createTypeOperatorNode(146, vr);
          } else if (gn.target.objectFlags & 8) {
            if (ur = Zs(ur, (Qr, vr) => OE(Qr, !!(gn.target.elementFlags[vr] & 2))), ur.length > 0) {
              const Qr = b0(gn), vr = M(ur.slice(0, Qr), Ee);
              if (vr) {
                if (gn.target.labeledElementDeclarations)
                  for (let os = 0; os < vr.length; os++) {
                    const Ms = gn.target.elementFlags[os];
                    vr[os] = N.createNamedTupleMember(Ms & 12 ? N.createToken(25) : void 0, N.createIdentifier(ta(bV(gn.target.labeledElementDeclarations[os]))), Ms & 2 ? N.createToken(57) : void 0, Ms & 4 ? N.createArrayTypeNode(vr[os]) : vr[os]);
                  }
                else
                  for (let os = 0; os < Math.min(Qr, vr.length); os++) {
                    const Ms = gn.target.elementFlags[os];
                    vr[os] = Ms & 12 ? N.createRestTypeNode(Ms & 4 ? N.createArrayTypeNode(vr[os]) : vr[os]) : Ms & 2 ? N.createOptionalTypeNode(vr[os]) : vr[os];
                  }
                const va = sr(N.createTupleTypeNode(vr), 1);
                return gn.target.readonly ? N.createTypeOperatorNode(146, va) : va;
              }
            }
            if (Ee.encounteredError || Ee.flags & 524288) {
              const Qr = sr(N.createTupleTypeNode([]), 1);
              return gn.target.readonly ? N.createTypeOperatorNode(146, Qr) : Qr;
            }
            Ee.encounteredError = !0;
            return;
          } else {
            if (Ee.flags & 2048 && gn.symbol.valueDeclaration && li(gn.symbol.valueDeclaration) && !bE(gn.symbol, Ee.enclosingDeclaration))
              return Ft(gn);
            {
              const Qr = gn.target.outerTypeParameters;
              let vr = 0, va;
              if (Qr) {
                const gd = Qr.length;
                for (; vr < gd; ) {
                  const nt = vr, St = UAe(Qr[vr]);
                  do
                    vr++;
                  while (vr < gd && UAe(Qr[vr]) === St);
                  if (!uj(Qr, ur, nt, vr)) {
                    const Qt = M(ur.slice(nt, vr), Ee), qn = Ee.flags;
                    Ee.flags |= 16;
                    const mr = Kn(St, Ee, 788968, Qt);
                    Ee.flags = qn, va = va ? Jn(va, mr) : mr;
                  }
                }
              }
              let os;
              if (ur.length > 0) {
                const gd = (gn.target.typeParameters || rt).length;
                os = M(ur.slice(vr, gd), Ee);
              }
              const Ms = Ee.flags;
              Ee.flags |= 16;
              const Bs = Kn(gn.symbol, Ee, 788968, os);
              return Ee.flags = Ms, va ? Jn(va, Bs) : Bs;
            }
          }
        }
        function Jn(gn, ur) {
          if (_g(gn)) {
            let Qr = gn.typeArguments, vr = gn.qualifier;
            vr && (Ve(vr) ? Qr !== xT(vr) && (vr = vy(N.cloneNode(vr), Qr)) : Qr !== xT(vr.right) && (vr = N.updateQualifiedName(vr, vr.left, vy(N.cloneNode(vr.right), Qr)))), Qr = ur.typeArguments;
            const va = oa(ur);
            for (const os of va)
              vr = vr ? N.createQualifiedName(vr, os) : os;
            return N.updateImportTypeNode(gn, gn.argument, gn.assertions, vr, Qr, gn.isTypeOf);
          } else {
            let Qr = gn.typeArguments, vr = gn.typeName;
            Ve(vr) ? Qr !== xT(vr) && (vr = vy(N.cloneNode(vr), Qr)) : Qr !== xT(vr.right) && (vr = N.updateQualifiedName(vr, vr.left, vy(N.cloneNode(vr.right), Qr))), Qr = ur.typeArguments;
            const va = oa(ur);
            for (const os of va)
              vr = N.createQualifiedName(vr, os);
            return N.updateTypeReferenceNode(gn, vr, Qr);
          }
        }
        function oa(gn) {
          let ur = gn.typeName;
          const Qr = [];
          for (; !Ve(ur); )
            Qr.unshift(ur.right), ur = ur.left;
          return Qr.unshift(ur), Qr;
        }
        function hi(gn) {
          if (c(Ee))
            return [N.createPropertySignature(void 0, "...", void 0, void 0)];
          const ur = [];
          for (const va of gn.callSignatures)
            ur.push(ge(va, 176, Ee));
          for (const va of gn.constructSignatures)
            va.flags & 4 || ur.push(ge(va, 177, Ee));
          for (const va of gn.indexInfos)
            ur.push($(va, Ee, gn.objectFlags & 1024 ? g(Ee) : void 0));
          const Qr = gn.properties;
          if (!Qr)
            return ur;
          let vr = 0;
          for (const va of Qr) {
            if (vr++, Ee.flags & 2048) {
              if (va.flags & 4194304)
                continue;
              Kf(va) & 24 && Ee.tracker.reportPrivateInBaseOfClassExpression && Ee.tracker.reportPrivateInBaseOfClassExpression(ta(va.escapedName));
            }
            if (c(Ee) && vr + 2 < Qr.length - 1) {
              ur.push(N.createPropertySignature(void 0, `... ${Qr.length - vr} more ...`, void 0, void 0)), R(Qr[Qr.length - 1], Ee, ur);
              break;
            }
            R(va, Ee, ur);
          }
          return ur.length ? ur : void 0;
        }
      }
      function g(ut) {
        return ut.approximateLength += 3, ut.flags & 1 ? N.createKeywordTypeNode(131) : N.createTypeReferenceNode(N.createIdentifier("..."), void 0);
      }
      function x(ut, Ee) {
        var tr;
        return !!(Cc(ut) & 8192) && (wi(Ee.reverseMappedStack, ut) || ((tr = Ee.reverseMappedStack) == null ? void 0 : tr[0]) && !(Zr(Ho(Ee.reverseMappedStack).links.propertyType) & 16));
      }
      function R(ut, Ee, tr) {
        var Zn;
        const Tr = !!(Cc(ut) & 8192), kr = x(ut, Ee) ? ke : g0(ut), Ia = Ee.enclosingDeclaration;
        if (Ee.enclosingDeclaration = void 0, Ee.tracker.canTrackSymbol && Zw(ut.escapedName))
          if (ut.declarations) {
            const Ft = ss(ut.declarations);
            if (lP(Ft))
              if (br(Ft)) {
                const $t = Aa(Ft);
                $t && cc($t) && UN($t.argumentExpression) && Fn($t.argumentExpression, Ia, Ee);
              } else
                Fn(Ft.name.expression, Ia, Ee);
          } else
            Ee.tracker.reportNonSerializableProperty(S(ut));
        Ee.enclosingDeclaration = ut.valueDeclaration || ((Zn = ut.declarations) == null ? void 0 : Zn[0]) || Ia;
        const Ii = gf(ut, Ee);
        Ee.enclosingDeclaration = Ia, Ee.approximateLength += Oc(ut).length + 1;
        const Lr = ut.flags & 16777216 ? N.createToken(57) : void 0;
        if (ut.flags & 8208 && !ev(kr).length && !dp(ut)) {
          const Ft = ja(dl(kr, ($t) => !($t.flags & 32768)), 0);
          for (const $t of Ft) {
            const Kt = ge($t, 170, Ee, { name: Ii, questionToken: Lr });
            tr.push(bt(Kt));
          }
        } else {
          let Ft;
          x(ut, Ee) ? Ft = g(Ee) : (Tr && (Ee.reverseMappedStack || (Ee.reverseMappedStack = []), Ee.reverseMappedStack.push(ut)), Ft = kr ? na(Ee, kr, ut, Ia) : N.createKeywordTypeNode(131), Tr && Ee.reverseMappedStack.pop());
          const $t = dp(ut) ? [N.createToken(146)] : void 0;
          $t && (Ee.approximateLength += 9);
          const Kt = N.createPropertySignature($t, Ii, Lr, Ft);
          tr.push(bt(Kt));
        }
        function bt(Ft) {
          var $t;
          if (kt(ut.declarations, (Kt) => Kt.kind === 351)) {
            const Kt = ($t = ut.declarations) == null ? void 0 : $t.find((Jn) => Jn.kind === 351), kn = BR(Kt.comment);
            kn && D1(Ft, [{ kind: 3, text: `*
 * ` + kn.replace(/\n/g, `
 * `) + `
 `, pos: -1, end: -1, hasTrailingNewLine: !0 }]);
          } else
            ut.valueDeclaration && Gl(Ft, ut.valueDeclaration);
          return Ft;
        }
      }
      function M(ut, Ee, tr) {
        if (kt(ut)) {
          if (c(Ee))
            if (tr) {
              if (ut.length > 2)
                return [
                  u(ut[0], Ee),
                  N.createTypeReferenceNode(`... ${ut.length - 2} more ...`, void 0),
                  u(ut[ut.length - 1], Ee)
                ];
            } else
              return [N.createTypeReferenceNode("...", void 0)];
          const Tr = !(Ee.flags & 64) ? hse() : void 0, kr = [];
          let Ia = 0;
          for (const Ii of ut) {
            if (Ia++, c(Ee) && Ia + 2 < ut.length - 1) {
              kr.push(N.createTypeReferenceNode(`... ${ut.length - Ia} more ...`, void 0));
              const bt = u(ut[ut.length - 1], Ee);
              bt && kr.push(bt);
              break;
            }
            Ee.approximateLength += 2;
            const Lr = u(Ii, Ee);
            Lr && (kr.push(Lr), Tr && Nde(Lr) && Tr.add(Lr.typeName.escapedText, [Ii, kr.length - 1]));
          }
          if (Tr) {
            const Ii = Ee.flags;
            Ee.flags |= 64, Tr.forEach((Lr) => {
              if (!Ode(Lr, ([bt], [Ft]) => J(bt, Ft)))
                for (const [bt, Ft] of Lr)
                  kr[Ft] = u(bt, Ee);
            }), Ee.flags = Ii;
          }
          return kr;
        }
      }
      function J(ut, Ee) {
        return ut === Ee || !!ut.symbol && ut.symbol === Ee.symbol || !!ut.aliasSymbol && ut.aliasSymbol === Ee.aliasSymbol;
      }
      function $(ut, Ee, tr) {
        const Zn = Wle(ut) || "x", Tr = u(ut.keyType, Ee), kr = N.createParameterDeclaration(void 0, void 0, Zn, void 0, Tr, void 0);
        return tr || (tr = u(ut.type || ke, Ee)), !ut.type && !(Ee.flags & 2097152) && (Ee.encounteredError = !0), Ee.approximateLength += Zn.length + 4, N.createIndexSignature(ut.isReadonly ? [N.createToken(146)] : void 0, [kr], tr);
      }
      function ge(ut, Ee, tr, Zn) {
        var Tr, kr, Ia, Ii, Lr;
        const bt = tr.flags & 256;
        bt && (tr.flags &= -257), tr.approximateLength += 3;
        let Ft, $t;
        tr.flags & 32 && ut.target && ut.mapper && ut.target.typeParameters ? $t = ut.target.typeParameters.map((vr) => u(Ji(vr, ut.mapper), tr)) : Ft = ut.typeParameters && ut.typeParameters.map((vr) => ft(vr, tr));
        const Kt = vAe(ut, !0)[0];
        let kn;
        if (tr.enclosingDeclaration && ut.declaration && ut.declaration !== tr.enclosingDeclaration && !fr(ut.declaration) && kt(Kt)) {
          const vr = zr(tr.enclosingDeclaration).fakeScopeForSignatureDeclaration ? tr.enclosingDeclaration : void 0;
          D.assertOptionalNode(vr, oo);
          const va = (Tr = vr == null ? void 0 : vr.locals) != null ? Tr : ao();
          let os;
          for (const Ms of Kt)
            va.has(Ms.escapedName) || (os = Bn(os, Ms.escapedName), va.set(Ms.escapedName, Ms));
          if (os) {
            let Ms = function() {
              ze(os, (Bs) => va.delete(Bs));
            };
            if (vr)
              kn = Ms;
            else {
              const Bs = Wm.createBlock(rt);
              zr(Bs).fakeScopeForSignatureDeclaration = !0, Bs.locals = va;
              const gd = tr.enclosingDeclaration;
              Bo(Bs, gd), tr.enclosingDeclaration = Bs, kn = () => {
                tr.enclosingDeclaration = gd, Ms();
              };
            }
          }
        }
        const Jn = (kt(Kt, (vr) => vr !== Kt[Kt.length - 1] && !!(Cc(vr) & 32768)) ? ut.parameters : Kt).map((vr) => Bt(vr, tr, Ee === 173, Zn == null ? void 0 : Zn.privateSymbolVisitor, Zn == null ? void 0 : Zn.bundledImports)), oa = tr.flags & 33554432 ? void 0 : Ne(ut, tr);
        oa && Jn.unshift(oa);
        let hi;
        const gn = t_(ut);
        if (gn) {
          const vr = gn.kind === 2 || gn.kind === 3 ? N.createToken(129) : void 0, va = gn.kind === 1 || gn.kind === 3 ? sr(N.createIdentifier(gn.parameterName), 33554432) : N.createThisTypeNode(), os = gn.type && u(gn.type, tr);
          hi = N.createTypePredicateNode(vr, va, os);
        } else {
          const vr = ms(ut);
          vr && !(bt && bs(vr)) ? hi = Ds(tr, vr, ut, Zn == null ? void 0 : Zn.privateSymbolVisitor, Zn == null ? void 0 : Zn.bundledImports) : bt || (hi = N.createKeywordTypeNode(131));
        }
        let ur = Zn == null ? void 0 : Zn.modifiers;
        if (Ee === 182 && ut.flags & 4) {
          const vr = Mm(ur);
          ur = N.createModifiersFromModifierFlags(vr | 256);
        }
        const Qr = Ee === 176 ? N.createCallSignature(Ft, Jn, hi) : Ee === 177 ? N.createConstructSignature(Ft, Jn, hi) : Ee === 170 ? N.createMethodSignature(ur, (kr = Zn == null ? void 0 : Zn.name) != null ? kr : N.createIdentifier(""), Zn == null ? void 0 : Zn.questionToken, Ft, Jn, hi) : Ee === 171 ? N.createMethodDeclaration(ur, void 0, (Ia = Zn == null ? void 0 : Zn.name) != null ? Ia : N.createIdentifier(""), void 0, Ft, Jn, hi, void 0) : Ee === 173 ? N.createConstructorDeclaration(ur, Jn, void 0) : Ee === 174 ? N.createGetAccessorDeclaration(ur, (Ii = Zn == null ? void 0 : Zn.name) != null ? Ii : N.createIdentifier(""), Jn, hi, void 0) : Ee === 175 ? N.createSetAccessorDeclaration(ur, (Lr = Zn == null ? void 0 : Zn.name) != null ? Lr : N.createIdentifier(""), Jn, void 0) : Ee === 178 ? N.createIndexSignature(ur, Jn, hi) : Ee === 320 ? N.createJSDocFunctionType(Jn, hi) : Ee === 181 ? N.createFunctionTypeNode(Ft, Jn, hi ?? N.createTypeReferenceNode(N.createIdentifier(""))) : Ee === 182 ? N.createConstructorTypeNode(ur, Ft, Jn, hi ?? N.createTypeReferenceNode(N.createIdentifier(""))) : Ee === 259 ? N.createFunctionDeclaration(ur, void 0, Zn != null && Zn.name ? ro(Zn.name, Ve) : N.createIdentifier(""), Ft, Jn, hi, void 0) : Ee === 215 ? N.createFunctionExpression(ur, void 0, Zn != null && Zn.name ? ro(Zn.name, Ve) : N.createIdentifier(""), Ft, Jn, hi, N.createBlock([])) : Ee === 216 ? N.createArrowFunction(ur, Ft, Jn, hi, void 0, N.createBlock([])) : D.assertNever(Ee);
        return $t && (Qr.typeArguments = N.createNodeArray($t)), kn == null || kn(), Qr;
      }
      function Ne(ut, Ee) {
        if (ut.thisParameter)
          return Bt(ut.thisParameter, Ee);
        if (ut.declaration && fr(ut.declaration)) {
          const tr = yM(ut.declaration);
          if (tr && tr.typeExpression)
            return N.createParameterDeclaration(void 0, void 0, "this", void 0, u(ui(tr.typeExpression), Ee));
        }
      }
      function we(ut, Ee, tr) {
        const Zn = Ee.flags;
        Ee.flags &= -513;
        const Tr = N.createModifiersFromModifierFlags(yie(ut)), kr = ti(ut, Ee), Ia = kE(ut), Ii = Ia && u(Ia, Ee);
        return Ee.flags = Zn, N.createTypeParameterDeclaration(Tr, kr, tr, Ii);
      }
      function ft(ut, Ee, tr = Tu(ut)) {
        const Zn = tr && u(tr, Ee);
        return we(ut, Ee, Zn);
      }
      function Bt(ut, Ee, tr, Zn, Tr) {
        let kr = Sc(ut, 166);
        !kr && !Dm(ut) && (kr = Sc(ut, 344));
        let Ia = or(ut);
        kr && $we(kr) && (Ia = Kg(Ia));
        const Ii = na(Ee, Ia, ut, Ee.enclosingDeclaration, Zn, Tr), Lr = !(Ee.flags & 8192) && tr && kr && q_(kr) ? en(eT(kr), N.cloneNode) : void 0, Ft = kr && ph(kr) || Cc(ut) & 32768 ? N.createToken(25) : void 0, $t = kr && kr.name ? kr.name.kind === 79 ? sr(N.cloneNode(kr.name), 33554432) : kr.name.kind === 163 ? sr(N.cloneNode(kr.name.right), 33554432) : oa(kr.name) : Oc(ut), kn = kr && rD(kr) || Cc(ut) & 16384 ? N.createToken(57) : void 0, Jn = N.createParameterDeclaration(Lr, Ft, $t, kn, Ii, void 0);
        return Ee.approximateLength += Oc(ut).length + 3, Jn;
        function oa(hi) {
          return gn(hi);
          function gn(ur) {
            Ee.tracker.canTrackSymbol && Ts(ur) && sre(ur) && Fn(ur.expression, Ee.enclosingDeclaration, Ee);
            let Qr = Gn(ur, gn, hg, void 0, gn);
            return us(Qr) && (Qr = N.updateBindingElement(Qr, Qr.dotDotDotToken, Qr.propertyName, Qr.name, void 0)), Ys(Qr) || (Qr = N.cloneNode(Qr)), sr(Qr, 33554433);
          }
        }
      }
      function Fn(ut, Ee, tr) {
        if (!tr.tracker.canTrackSymbol)
          return;
        const Zn = Sf(ut), Tr = fc(Zn, Zn.escapedText, 1160127, void 0, void 0, !0);
        Tr && tr.tracker.trackSymbol(Tr, Ee, 111551);
      }
      function An(ut, Ee, tr, Zn) {
        return Ee.tracker.trackSymbol(ut, Ee.enclosingDeclaration, tr), Yn(ut, Ee, tr, Zn);
      }
      function Yn(ut, Ee, tr, Zn) {
        let Tr;
        return !(ut.flags & 262144) && (Ee.enclosingDeclaration || Ee.flags & 64) && !(Ee.flags & 134217728) ? (Tr = D.checkDefined(Ia(ut, tr, !0)), D.assert(Tr && Tr.length > 0)) : Tr = [ut], Tr;
        function Ia(Ii, Lr, bt) {
          let Ft = d0(Ii, Ee.enclosingDeclaration, Lr, !!(Ee.flags & 128)), $t;
          if (!Ft || vS(Ft[0], Ee.enclosingDeclaration, Ft.length === 1 ? Lr : Fg(Lr))) {
            const kn = pE(Ft ? Ft[0] : Ii, Ee.enclosingDeclaration, Lr);
            if (Ie(kn)) {
              $t = kn.map((hi) => kt(hi.declarations, Bg) ? on(hi, Ee) : void 0);
              const Jn = kn.map((hi, gn) => gn);
              Jn.sort(Kt);
              const oa = Jn.map((hi) => kn[hi]);
              for (const hi of oa) {
                const gn = Ia(hi, Fg(Lr), !1);
                if (gn) {
                  if (hi.exports && hi.exports.get("export=") && cm(hi.exports.get("export="), Ii)) {
                    Ft = gn;
                    break;
                  }
                  Ft = gn.concat(Ft || [jy(hi, Ii) || Ii]);
                  break;
                }
              }
            }
          }
          if (Ft)
            return Ft;
          if (bt || !(Ii.flags & 6144))
            return !bt && !Zn && ze(Ii.declarations, Bg) ? void 0 : [Ii];
          function Kt(kn, Jn) {
            const oa = $t[kn], hi = $t[Jn];
            if (oa && hi) {
              const gn = vf(hi);
              return vf(oa) === gn ? _8(oa) - _8(hi) : gn ? -1 : 1;
            }
            return 0;
          }
        }
      }
      function hn(ut, Ee) {
        let tr;
        return Q2(ut).flags & 524384 && (tr = N.createNodeArray(en($y(ut), (Tr) => ft(Tr, Ee)))), tr;
      }
      function xn(ut, Ee, tr) {
        var Zn;
        D.assert(ut && 0 <= Ee && Ee < ut.length);
        const Tr = ut[Ee], kr = yo(Tr);
        if ((Zn = tr.typeParameterSymbolList) != null && Zn.has(kr))
          return;
        (tr.typeParameterSymbolList || (tr.typeParameterSymbolList = /* @__PURE__ */ new Set())).add(kr);
        let Ia;
        if (tr.flags & 512 && Ee < ut.length - 1) {
          const Ii = Tr, Lr = ut[Ee + 1];
          if (Cc(Lr) & 1) {
            const bt = bS(Ii.flags & 2097152 ? Zc(Ii) : Ii);
            Ia = M(en(bt, (Ft) => x0(Ft, Lr.links.mapper)), tr);
          } else
            Ia = hn(Tr, tr);
        }
        return Ia;
      }
      function yr(ut) {
        return Ax(ut.objectType) ? yr(ut.objectType) : ut;
      }
      function on(ut, Ee, tr) {
        var Zn;
        let Tr = Sc(ut, 308);
        if (!Tr) {
          const Ft = sn(ut.declarations, ($t) => S2($t, ut));
          Ft && (Tr = Sc(Ft, 308));
        }
        if (Tr && Tr.moduleName !== void 0)
          return Tr.moduleName;
        if (!Tr) {
          if (Ee.tracker.trackReferencedAmbientModule) {
            const Ft = yn(ut.declarations, Du);
            if (Ie(Ft))
              for (const $t of Ft)
                Ee.tracker.trackReferencedAmbientModule($t, ut);
          }
          if (I5.test(ut.escapedName))
            return ut.escapedName.substring(1, ut.escapedName.length - 1);
        }
        if (!Ee.enclosingDeclaration || !Ee.tracker.moduleResolverHost)
          return I5.test(ut.escapedName) ? ut.escapedName.substring(1, ut.escapedName.length - 1) : er(FW(ut)).fileName;
        const kr = er(Ec(Ee.enclosingDeclaration)), Ia = tr || (kr == null ? void 0 : kr.impliedNodeFormat), Ii = Vk(kr.path, Ia), Lr = Vi(ut);
        let bt = Lr.specifierCache && Lr.specifierCache.get(Ii);
        if (!bt) {
          const Ft = !!Hs(Y), { moduleResolverHost: $t } = Ee.tracker, Kt = Ft ? { ...Y, baseUrl: $t.getCommonSourceDirectory() } : Y;
          bt = ss(fme(ut, at, Kt, kr, $t, {
            importModuleSpecifierPreference: Ft ? "non-relative" : "project-relative",
            importModuleSpecifierEnding: Ft ? "minimal" : Ia === 99 ? "js" : void 0
          }, { overrideImportMode: tr })), (Zn = Lr.specifierCache) != null || (Lr.specifierCache = /* @__PURE__ */ new Map()), Lr.specifierCache.set(Ii, bt);
        }
        return bt;
      }
      function Un(ut) {
        const Ee = N.createIdentifier(ta(ut.escapedName));
        return ut.parent ? N.createQualifiedName(Un(ut.parent), Ee) : Ee;
      }
      function Kn(ut, Ee, tr, Zn) {
        var Tr, kr, Ia, Ii;
        const Lr = An(ut, Ee, tr, !(Ee.flags & 16384)), bt = tr === 111551;
        if (kt(Lr[0].declarations, Bg)) {
          const Kt = Lr.length > 1 ? $t(Lr, Lr.length - 1, 1) : void 0, kn = Zn || xn(Lr, 0, Ee), Jn = er(Ec(Ee.enclosingDeclaration)), oa = NM(Lr[0]);
          let hi, gn;
          if ((yc(Y) === 3 || yc(Y) === 99) && (oa == null ? void 0 : oa.impliedNodeFormat) === 99 && oa.impliedNodeFormat !== (Jn == null ? void 0 : Jn.impliedNodeFormat) && (hi = on(Lr[0], Ee, 99), gn = N.createImportTypeAssertionContainer(N.createAssertClause(N.createNodeArray([
            N.createAssertEntry(N.createStringLiteral("resolution-mode"), N.createStringLiteral("import"))
          ]))), (kr = (Tr = Ee.tracker).reportImportTypeNodeResolutionModeOverride) == null || kr.call(Tr)), hi || (hi = on(Lr[0], Ee)), !(Ee.flags & 67108864) && yc(Y) !== 1 && hi.indexOf("/node_modules/") >= 0) {
            const Qr = hi;
            if (yc(Y) === 3 || yc(Y) === 99) {
              const vr = (Jn == null ? void 0 : Jn.impliedNodeFormat) === 99 ? 1 : 99;
              hi = on(Lr[0], Ee, vr), hi.indexOf("/node_modules/") >= 0 ? hi = Qr : (gn = N.createImportTypeAssertionContainer(N.createAssertClause(N.createNodeArray([
                N.createAssertEntry(N.createStringLiteral("resolution-mode"), N.createStringLiteral(vr === 99 ? "import" : "require"))
              ]))), (Ii = (Ia = Ee.tracker).reportImportTypeNodeResolutionModeOverride) == null || Ii.call(Ia));
            }
            gn || (Ee.encounteredError = !0, Ee.tracker.reportLikelyUnsafeImportRequiredError && Ee.tracker.reportLikelyUnsafeImportRequiredError(Qr));
          }
          const ur = N.createLiteralTypeNode(N.createStringLiteral(hi));
          if (Ee.tracker.trackExternalModuleSymbolOfImportTypeNode && Ee.tracker.trackExternalModuleSymbolOfImportTypeNode(Lr[0]), Ee.approximateLength += hi.length + 10, !Kt || Zd(Kt)) {
            if (Kt) {
              const Qr = Ve(Kt) ? Kt : Kt.right;
              vy(Qr, void 0);
            }
            return N.createImportTypeNode(ur, gn, Kt, kn, bt);
          } else {
            const Qr = yr(Kt), vr = Qr.objectType.typeName;
            return N.createIndexedAccessTypeNode(N.createImportTypeNode(ur, gn, vr, kn, bt), Qr.indexType);
          }
        }
        const Ft = $t(Lr, Lr.length - 1, 0);
        if (Ax(Ft))
          return Ft;
        if (bt)
          return N.createTypeQueryNode(Ft);
        {
          const Kt = Ve(Ft) ? Ft : Ft.right, kn = xT(Kt);
          return vy(Kt, void 0), N.createTypeReferenceNode(Ft, kn);
        }
        function $t(Kt, kn, Jn) {
          const oa = kn === Kt.length - 1 ? Zn : xn(Kt, kn, Ee), hi = Kt[kn], gn = Kt[kn - 1];
          let ur;
          if (kn === 0)
            Ee.flags |= 16777216, ur = qy(hi, Ee), Ee.approximateLength += (ur ? ur.length : 0) + 1, Ee.flags ^= 16777216;
          else if (gn && ff(gn)) {
            const vr = ff(gn);
            tf(vr, (va, os) => {
              if (cm(va, hi) && !Zw(os) && os !== "export=")
                return ur = ta(os), !0;
            });
          }
          if (ur === void 0) {
            const vr = sn(hi.declarations, Aa);
            if (vr && Ts(vr) && Zd(vr.expression)) {
              const va = $t(Kt, kn - 1, Jn);
              return Zd(va) ? N.createIndexedAccessTypeNode(N.createParenthesizedType(N.createTypeQueryNode(va)), N.createTypeQueryNode(vr.expression)) : va;
            }
            ur = qy(hi, Ee);
          }
          if (Ee.approximateLength += ur.length + 1, !(Ee.flags & 16) && gn && Qy(gn) && Qy(gn).get(hi.escapedName) && cm(Qy(gn).get(hi.escapedName), hi)) {
            const vr = $t(Kt, kn - 1, Jn);
            return Ax(vr) ? N.createIndexedAccessTypeNode(vr, N.createLiteralTypeNode(N.createStringLiteral(ur))) : N.createIndexedAccessTypeNode(N.createTypeReferenceNode(vr, oa), N.createLiteralTypeNode(N.createStringLiteral(ur)));
          }
          const Qr = sr(N.createIdentifier(ur), 33554432);
          if (oa && vy(Qr, N.createNodeArray(oa)), Qr.symbol = hi, kn > Jn) {
            const vr = $t(Kt, kn - 1, Jn);
            return Zd(vr) ? N.createQualifiedName(vr, Qr) : D.fail("Impossible construct - an export of an indexed access cannot be reachable");
          }
          return Qr;
        }
      }
      function $r(ut, Ee, tr) {
        const Zn = fc(Ee.enclosingDeclaration, ut, 788968, void 0, ut, !1);
        return Zn ? !(Zn.flags & 262144 && Zn === tr.symbol) : !1;
      }
      function ti(ut, Ee) {
        var tr, Zn;
        if (Ee.flags & 4 && Ee.typeParameterNames) {
          const kr = Ee.typeParameterNames.get(Au(ut));
          if (kr)
            return kr;
        }
        let Tr = da(ut.symbol, Ee, 788968, !0);
        if (!(Tr.kind & 79))
          return N.createIdentifier("(Missing type parameter)");
        if (Ee.flags & 4) {
          const kr = Tr.escapedText;
          let Ia = ((tr = Ee.typeParameterNamesByTextNextNameCount) == null ? void 0 : tr.get(kr)) || 0, Ii = kr;
          for (; (Zn = Ee.typeParameterNamesByText) != null && Zn.has(Ii) || $r(Ii, Ee, ut); )
            Ia++, Ii = `${kr}_${Ia}`;
          if (Ii !== kr) {
            const Lr = xT(Tr);
            Tr = N.createIdentifier(Ii), vy(Tr, Lr);
          }
          (Ee.typeParameterNamesByTextNextNameCount || (Ee.typeParameterNamesByTextNextNameCount = /* @__PURE__ */ new Map())).set(kr, Ia), (Ee.typeParameterNames || (Ee.typeParameterNames = /* @__PURE__ */ new Map())).set(Au(ut), Tr), (Ee.typeParameterNamesByText || (Ee.typeParameterNamesByText = /* @__PURE__ */ new Set())).add(kr);
        }
        return Tr;
      }
      function da(ut, Ee, tr, Zn) {
        const Tr = An(ut, Ee, tr);
        return Zn && Tr.length !== 1 && !Ee.encounteredError && !(Ee.flags & 65536) && (Ee.encounteredError = !0), kr(Tr, Tr.length - 1);
        function kr(Ia, Ii) {
          const Lr = xn(Ia, Ii, Ee), bt = Ia[Ii];
          Ii === 0 && (Ee.flags |= 16777216);
          const Ft = qy(bt, Ee);
          Ii === 0 && (Ee.flags ^= 16777216);
          const $t = sr(N.createIdentifier(Ft), 33554432);
          return Lr && vy($t, N.createNodeArray(Lr)), $t.symbol = bt, Ii > 0 ? N.createQualifiedName(kr(Ia, Ii - 1), $t) : $t;
        }
      }
      function Ya(ut, Ee, tr) {
        const Zn = An(ut, Ee, tr);
        return Tr(Zn, Zn.length - 1);
        function Tr(kr, Ia) {
          const Ii = xn(kr, Ia, Ee), Lr = kr[Ia];
          Ia === 0 && (Ee.flags |= 16777216);
          let bt = qy(Lr, Ee);
          Ia === 0 && (Ee.flags ^= 16777216);
          let Ft = bt.charCodeAt(0);
          if (sN(Ft) && kt(Lr.declarations, Bg))
            return N.createStringLiteral(on(Lr, Ee));
          if (Ia === 0 || mq(bt, P)) {
            const $t = sr(N.createIdentifier(bt), 33554432);
            return Ii && vy($t, N.createNodeArray(Ii)), $t.symbol = Lr, Ia > 0 ? N.createPropertyAccessExpression(Tr(kr, Ia - 1), $t) : $t;
          } else {
            Ft === 91 && (bt = bt.substring(1, bt.length - 1), Ft = bt.charCodeAt(0));
            let $t;
            if (sN(Ft) && !(Lr.flags & 8) ? $t = N.createStringLiteral(G_(bt).replace(/\\./g, (Kt) => Kt.substring(1)), Ft === 39) : "" + +bt === bt && ($t = N.createNumericLiteral(+bt)), !$t) {
              const Kt = sr(N.createIdentifier(bt), 33554432);
              Ii && vy(Kt, N.createNodeArray(Ii)), Kt.symbol = Lr, $t = Kt;
            }
            return N.createElementAccessExpression(Tr(kr, Ia - 1), $t);
          }
        }
      }
      function yl(ut) {
        const Ee = Aa(ut);
        return !!Ee && Go(Ee);
      }
      function Uf(ut) {
        const Ee = Aa(ut);
        return !!(Ee && Go(Ee) && (Ee.singleQuote || !Ys(Ee) && ba(El(Ee, !1), "'")));
      }
      function gf(ut, Ee) {
        const tr = !!Ie(ut.declarations) && Rn(ut.declarations, yl), Zn = !!Ie(ut.declarations) && Rn(ut.declarations, Uf), Tr = aa(ut, Ee, Zn, tr);
        if (Tr)
          return Tr;
        const kr = ta(ut.escapedName);
        return G3(kr, $o(Y), Zn, tr);
      }
      function aa(ut, Ee, tr, Zn) {
        const Tr = Vi(ut).nameType;
        if (Tr) {
          if (Tr.flags & 384) {
            const kr = "" + Tr.value;
            return !N_(kr, $o(Y)) && (Zn || !Eh(kr)) ? N.createStringLiteral(kr, !!tr) : Eh(kr) && ba(kr, "-") ? N.createComputedPropertyName(N.createNumericLiteral(+kr)) : G3(kr, $o(Y));
          }
          if (Tr.flags & 8192)
            return N.createComputedPropertyName(Ya(Tr.symbol, Ee, 111551));
        }
      }
      function Vn(ut) {
        const Ee = { ...ut };
        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 h8(Ee, Ee.tracker.inner, Ee.tracker.moduleResolverHost), Ee;
      }
      function cr(ut, Ee) {
        return ut.declarations && cn(ut.declarations, (tr) => !!Kl(tr) && (!Ee || !!rr(tr, (Zn) => Zn === Ee)));
      }
      function Yi(ut, Ee) {
        return !(Zr(Ee) & 4) || !W_(ut) || Ie(ut.typeArguments) >= _m(Ee.target.typeParameters);
      }
      function Pa(ut) {
        return zr(ut).fakeScopeForSignatureDeclaration ? ut.parent : ut;
      }
      function na(ut, Ee, tr, Zn, Tr, kr) {
        if (!Zo(Ee) && Zn) {
          const Lr = cr(tr, Pa(Zn));
          if (Lr && !Xs(Lr) && !H_(Lr)) {
            const bt = Kl(Lr);
            if (Yo(bt, Lr, Ee) && Yi(bt, Ee)) {
              const Ft = So(ut, bt, Tr, kr);
              if (Ft)
                return Ft;
            }
          }
        }
        const Ia = ut.flags;
        Ee.flags & 8192 && Ee.symbol === tr && (!ut.enclosingDeclaration || kt(tr.declarations, (Lr) => er(Lr) === er(ut.enclosingDeclaration))) && (ut.flags |= 1048576);
        const Ii = u(Ee, ut);
        return ut.flags = Ia, Ii;
      }
      function Yo(ut, Ee, tr) {
        const Zn = ui(ut);
        return Zn === tr ? !0 : Oa(Ee) && Ee.questionToken ? i_(tr, 524288) === Zn : !1;
      }
      function Ds(ut, Ee, tr, Zn, Tr) {
        if (!Zo(Ee) && ut.enclosingDeclaration) {
          const kr = tr.declaration && mp(tr.declaration), Ia = Pa(ut.enclosingDeclaration);
          if (rr(kr, (Ii) => Ii === Ia) && kr) {
            const Ii = ui(kr);
            if ((Ii.flags & 262144 && Ii.isThisType ? Ji(Ii, tr.mapper) : Ii) === Ee && Yi(kr, Ee)) {
              const bt = So(ut, kr, Zn, Tr);
              if (bt)
                return bt;
            }
          }
        }
        return u(Ee, ut);
      }
      function hc(ut, Ee, tr) {
        let Zn = !1;
        const Tr = Sf(ut);
        if (fr(ut) && (fT(Tr) || hh(Tr.parent) || Sd(Tr.parent) && iz(Tr.parent.left) && fT(Tr.parent.right)))
          return Zn = !0, { introducesError: Zn, node: ut };
        const kr = Dc(Tr, 67108863, !0, !0);
        if (kr && (Wy(kr, Ee.enclosingDeclaration, 67108863, !1).accessibility !== 0 ? Zn = !0 : (Ee.tracker.trackSymbol(kr, Ee.enclosingDeclaration, 67108863), tr == null || tr(kr)), Ve(ut))) {
          const Ia = Fs(kr), Ii = kr.flags & 262144 && !vE(Ia.symbol, Ee.enclosingDeclaration) ? ti(Ia, Ee) : N.cloneNode(ut);
          return Ii.symbol = kr, { introducesError: Zn, node: sr(jr(Ii, ut), 33554432) };
        }
        return { introducesError: Zn, node: ut };
      }
      function So(ut, Ee, tr, Zn) {
        o && o.throwIfCancellationRequested && o.throwIfCancellationRequested();
        let Tr = !1;
        const kr = er(Ee), Ia = ct(Ee, Ii, Mi);
        if (Tr)
          return;
        return Ia === Ee ? mt(N.cloneNode(Ee), Ee) : Ia;
        function Ii(Lr) {
          if (Wfe(Lr) || Lr.kind === 322)
            return N.createKeywordTypeNode(131);
          if (zfe(Lr))
            return N.createKeywordTypeNode(157);
          if (TC(Lr))
            return N.createUnionTypeNode([ct(Lr.type, Ii, Mi), N.createLiteralTypeNode(N.createNull())]);
          if (fJ(Lr))
            return N.createUnionTypeNode([ct(Lr.type, Ii, Mi), N.createKeywordTypeNode(155)]);
          if (N7(Lr))
            return ct(Lr.type, Ii);
          if (O7(Lr))
            return N.createArrayTypeNode(ct(Lr.type, Ii, Mi));
          if (Nk(Lr))
            return N.createTypeLiteralNode(en(Lr.jsDocPropertyTags, (Kt) => {
              const kn = Ve(Kt.name) ? Kt.name : Kt.name.right, Jn = ul(ui(Lr), kn.escapedText), oa = Jn && Kt.typeExpression && ui(Kt.typeExpression.type) !== Jn ? u(Jn, ut) : void 0;
              return N.createPropertySignature(void 0, kn, Kt.isBracketed || Kt.typeExpression && fJ(Kt.typeExpression.type) ? N.createToken(57) : void 0, oa || Kt.typeExpression && ct(Kt.typeExpression.type, Ii, Mi) || N.createKeywordTypeNode(131));
            }));
          if (W_(Lr) && Ve(Lr.typeName) && Lr.typeName.escapedText === "")
            return jr(N.createKeywordTypeNode(131), Lr);
          if ((by(Lr) || W_(Lr)) && i3(Lr))
            return N.createTypeLiteralNode([N.createIndexSignature(void 0, [N.createParameterDeclaration(void 0, void 0, "x", void 0, ct(Lr.typeArguments[0], Ii, Mi))], ct(Lr.typeArguments[1], Ii, Mi))]);
          if (SC(Lr))
            if (jA(Lr)) {
              let Kt;
              return N.createConstructorTypeNode(void 0, Xn(Lr.typeParameters, Ii, Pc), fa(Lr.parameters, (kn, Jn) => kn.name && Ve(kn.name) && kn.name.escapedText === "new" ? (Kt = kn.type, void 0) : N.createParameterDeclaration(void 0, bt(kn), Ft(kn, Jn), kn.questionToken, ct(kn.type, Ii, Mi), void 0)), ct(Kt || Lr.type, Ii, Mi) || N.createKeywordTypeNode(131));
            } else
              return N.createFunctionTypeNode(Xn(Lr.typeParameters, Ii, Pc), en(Lr.parameters, (Kt, kn) => N.createParameterDeclaration(void 0, bt(Kt), Ft(Kt, kn), Kt.questionToken, ct(Kt.type, Ii, Mi), void 0)), ct(Lr.type, Ii, Mi) || N.createKeywordTypeNode(131));
          if (W_(Lr) && oN(Lr) && (!Yi(Lr, ui(Lr)) || JAe(Lr) || nn === G2(Lr, 788968, !0)))
            return jr(u(ui(Lr), ut), Lr);
          if (V0(Lr)) {
            const Kt = zr(Lr).resolvedSymbol;
            return oN(Lr) && Kt && (!Lr.isTypeOf && !(Kt.flags & 788968) || !(Ie(Lr.typeArguments) >= _m($y(Kt)))) ? jr(u(ui(Lr), ut), Lr) : N.updateImportTypeNode(Lr, N.updateLiteralTypeNode(Lr.argument, $t(Lr, Lr.argument.literal)), Lr.assertions, Lr.qualifier, Xn(Lr.typeArguments, Ii, Mi), Lr.isTypeOf);
          }
          if (Zd(Lr) || jc(Lr)) {
            const { introducesError: Kt, node: kn } = hc(Lr, ut, tr);
            if (Tr = Tr || Kt, kn !== Lr)
              return kn;
          }
          return kr && pC(Lr) && ac(kr, Lr.pos).line === ac(kr, Lr.end).line && sr(Lr, 1), Gn(Lr, Ii, hg);
          function bt(Kt) {
            return Kt.dotDotDotToken || (Kt.type && O7(Kt.type) ? N.createToken(25) : void 0);
          }
          function Ft(Kt, kn) {
            return Kt.name && Ve(Kt.name) && Kt.name.escapedText === "this" ? "this" : bt(Kt) ? "args" : `arg${kn}`;
          }
          function $t(Kt, kn) {
            if (Zn) {
              if (ut.tracker && ut.tracker.moduleResolverHost) {
                const Jn = boe(Kt);
                if (Jn) {
                  const hi = {
                    getCanonicalFileName: Zl(!!e.useCaseSensitiveFileNames),
                    getCurrentDirectory: () => ut.tracker.moduleResolverHost.getCurrentDirectory(),
                    getCommonSourceDirectory: () => ut.tracker.moduleResolverHost.getCommonSourceDirectory()
                  }, gn = g3(hi, Jn);
                  return N.createStringLiteral(gn);
                }
              }
            } else if (ut.tracker && ut.tracker.trackExternalModuleSymbolOfImportTypeNode) {
              const Jn = Mh(kn, kn, void 0);
              Jn && ut.tracker.trackExternalModuleSymbolOfImportTypeNode(Jn);
            }
            return kn;
          }
        }
      }
      function Wu(ut, Ee, tr) {
        const Zn = fp(N.createPropertyDeclaration, 171, !0), Tr = fp((wt, xr, vi, oi) => N.createPropertySignature(wt, xr, vi, oi), 170, !1), kr = Ee.enclosingDeclaration;
        let Ia = [];
        const Ii = /* @__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, vi) => {
            var oi;
            if (Wy(wt, xr, vi, !1).accessibility === 0) {
              const rs = Yn(wt, Ee, vi);
              wt.flags & 4 || Bs(rs[0]);
            } else if ((oi = bt.tracker.inner) != null && oi.trackSymbol)
              return bt.tracker.inner.trackSymbol(wt, xr, vi);
            return !1;
          }
        };
        Ee.tracker = new h8(Ee, Ft, bt.tracker.moduleResolverHost), tf(ut, (wt, xr) => {
          const vi = ta(xr);
          Od(wt, vi);
        });
        let $t = !tr;
        const Kt = ut.get("export=");
        return Kt && ut.size > 1 && Kt.flags & 2097152 && (ut = ao(), ut.set("export=", Kt)), va(ut), ur(Ia);
        function kn(wt) {
          return !!wt && wt.kind === 79;
        }
        function Jn(wt) {
          return cl(wt) ? yn(en(wt.declarationList.declarations, Aa), kn) : yn([Aa(wt)], kn);
        }
        function oa(wt) {
          const xr = cn(wt, Mc), vi = Qi(wt, Wc);
          let oi = vi !== -1 ? wt[vi] : void 0;
          if (oi && xr && xr.isExportEquals && Ve(xr.expression) && Ve(oi.name) && Pr(oi.name) === Pr(xr.expression) && oi.body && Zp(oi.body)) {
            const ci = yn(wt, (ra) => !!(Ru(ra) & 1)), rs = oi.name;
            let Fa = oi.body;
            if (Ie(ci) && (oi = N.updateModuleDeclaration(oi, oi.modifiers, oi.name, Fa = N.updateModuleBlock(Fa, N.createNodeArray([...oi.body.statements, N.createExportDeclaration(void 0, !1, N.createNamedExports(en(wo(ci, (ra) => Jn(ra)), (ra) => N.createExportSpecifier(!1, void 0, ra))), void 0)]))), wt = [...wt.slice(0, vi), oi, ...wt.slice(vi + 1)]), !cn(wt, (ra) => ra !== oi && MR(ra, rs))) {
              Ia = [];
              const ra = !kt(Fa.statements, (jo) => Kr(jo, 1) || Mc(jo) || Xl(jo));
              ze(Fa.statements, (jo) => {
                nt(jo, ra ? 1 : 0);
              }), wt = [...yn(wt, (jo) => jo !== oi && jo !== xr), ...Ia];
            }
          }
          return wt;
        }
        function hi(wt) {
          const xr = yn(wt, (oi) => Xl(oi) && !oi.moduleSpecifier && !!oi.exportClause && z_(oi.exportClause));
          Ie(xr) > 1 && (wt = [...yn(wt, (ci) => !Xl(ci) || !!ci.moduleSpecifier || !ci.exportClause), N.createExportDeclaration(void 0, !1, N.createNamedExports(wo(xr, (ci) => ro(ci.exportClause, z_).elements)), void 0)]);
          const vi = yn(wt, (oi) => Xl(oi) && !!oi.moduleSpecifier && !!oi.exportClause && z_(oi.exportClause));
          if (Ie(vi) > 1) {
            const oi = tI(vi, (ci) => Go(ci.moduleSpecifier) ? ">" + ci.moduleSpecifier.text : ">");
            if (oi.length !== vi.length)
              for (const ci of oi)
                ci.length > 1 && (wt = [
                  ...yn(wt, (rs) => ci.indexOf(rs) === -1),
                  N.createExportDeclaration(void 0, !1, N.createNamedExports(wo(ci, (rs) => ro(rs.exportClause, z_).elements)), ci[0].moduleSpecifier)
                ]);
          }
          return wt;
        }
        function gn(wt) {
          const xr = Qi(wt, (vi) => Xl(vi) && !vi.moduleSpecifier && !vi.assertClause && !!vi.exportClause && z_(vi.exportClause));
          if (xr >= 0) {
            const vi = wt[xr], oi = fa(vi.exportClause.elements, (ci) => {
              if (!ci.propertyName) {
                const rs = eR(wt), Fa = yn(rs, (ra) => MR(wt[ra], ci.name));
                if (Ie(Fa) && Rn(Fa, (ra) => nO(wt[ra]))) {
                  for (const ra of Fa)
                    wt[ra] = Qr(wt[ra]);
                  return;
                }
              }
              return ci;
            });
            Ie(oi) ? wt[xr] = N.updateExportDeclaration(vi, vi.modifiers, vi.isTypeOnly, N.updateNamedExports(vi.exportClause, oi), vi.moduleSpecifier, vi.assertClause) : a1(wt, xr);
          }
          return wt;
        }
        function ur(wt) {
          return wt = oa(wt), wt = hi(wt), wt = gn(wt), kr && (Hi(kr) && nf(kr) || Wc(kr)) && (!kt(wt, WR) || !mle(wt) && kt(wt, LM)) && wt.push(RO(N)), wt;
        }
        function Qr(wt) {
          const xr = (Ru(wt) | 1) & -3;
          return N.updateModifiers(wt, xr);
        }
        function vr(wt) {
          const xr = Ru(wt) & -2;
          return N.updateModifiers(wt, xr);
        }
        function va(wt, xr, vi) {
          xr || Lr.push(/* @__PURE__ */ new Map()), wt.forEach((oi) => {
            os(oi, !1, !!vi);
          }), xr || (Lr[Lr.length - 1].forEach((oi) => {
            os(oi, !0, !!vi);
          }), Lr.pop());
        }
        function os(wt, xr, vi) {
          const oi = ns(wt);
          if (Ii.has(yo(oi)))
            return;
          if (Ii.add(yo(oi)), !xr || Ie(wt.declarations) && kt(wt.declarations, (rs) => !!rr(rs, (Fa) => Fa === kr))) {
            const rs = Ee;
            Ee = Vn(Ee), Ms(wt, xr, vi), Ee.reportedDiagnostic && (bt.reportedDiagnostic = Ee.reportedDiagnostic), Ee = rs;
          }
        }
        function Ms(wt, xr, vi) {
          var oi, ci, rs, Fa;
          const ra = ta(wt.escapedName), jo = wt.escapedName === "default";
          if (xr && !(Ee.flags & 131072) && ix(ra) && !jo) {
            Ee.encounteredError = !0;
            return;
          }
          let hs = jo && !!(wt.flags & -113 || wt.flags & 16 && Ie(fs(or(wt)))) && !(wt.flags & 2097152), el = !hs && !xr && ix(ra) && !jo;
          (hs || el) && (xr = !0);
          const Cl = (xr ? 0 : 1) | (jo && !hs ? 1024 : 0), yf = wt.flags & 1536 && wt.flags & 7 && wt.escapedName !== "export=", lu = yf && cu(or(wt), wt);
          if ((wt.flags & 8208 || lu) && Ur(or(wt), wt, Od(wt, ra), Cl), wt.flags & 524288 && St(wt, ra, Cl), wt.flags & 7 && wt.escapedName !== "export=" && !(wt.flags & 4194304) && !(wt.flags & 32) && !(wt.flags & 8192) && !lu)
            if (vi)
              Cs(wt) && (el = !1, hs = !1);
            else {
              const Us = or(wt), Rc = Od(wt, ra);
              if (!(wt.flags & 16) && cu(Us, wt))
                Ur(Us, wt, Rc, Cl);
              else {
                const Zg = wt.flags & 2 ? DL(wt) ? 2 : 1 : (oi = wt.parent) != null && oi.valueDeclaration && Hi((ci = wt.parent) == null ? void 0 : ci.valueDeclaration) ? 2 : void 0, lh = hs || !(wt.flags & 4) ? Rc : tA(Rc, wt);
                let uh = wt.declarations && cn(wt.declarations, (dv) => zi(dv));
                uh && Mu(uh.parent) && uh.parent.declarations.length === 1 && (uh = uh.parent.parent);
                const DS = (rs = wt.declarations) == null ? void 0 : rs.find(Mr);
                if (DS && br(DS.parent) && Ve(DS.parent.right) && ((Fa = Us.symbol) != null && Fa.valueDeclaration) && Hi(Us.symbol.valueDeclaration)) {
                  const dv = Rc === DS.parent.right.escapedText ? void 0 : DS.parent.right;
                  nt(N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, dv, Rc)])), 0), Ee.tracker.trackSymbol(Us.symbol, Ee.enclosingDeclaration, 111551);
                } else {
                  const dv = mt(N.createVariableStatement(void 0, N.createVariableDeclarationList([
                    N.createVariableDeclaration(lh, void 0, na(Ee, Us, wt, kr, Bs, tr))
                  ], Zg)), uh);
                  nt(dv, lh !== Rc ? Cl & -2 : Cl), lh !== Rc && !xr && (nt(N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, lh, Rc)])), 0), el = !1, hs = !1);
                }
              }
            }
          if (wt.flags & 384 && Sr(wt, ra, Cl), wt.flags & 32 && (wt.flags & 4 && wt.valueDeclaration && br(wt.valueDeclaration.parent) && Pu(wt.valueDeclaration.parent.right) ? Mo(wt, Od(wt, ra), Cl) : fi(wt, Od(wt, ra), Cl)), (wt.flags & 1536 && (!yf || mr(wt)) || lu) && Ln(wt, ra, Cl), wt.flags & 64 && !(wt.flags & 32) && Qt(wt, ra, Cl), wt.flags & 2097152 && Mo(wt, Od(wt, ra), Cl), wt.flags & 4 && wt.escapedName === "export=" && Cs(wt), wt.flags & 8388608 && wt.declarations)
            for (const Us of wt.declarations) {
              const Rc = su(Us, Us.moduleSpecifier);
              Rc && nt(N.createExportDeclaration(void 0, Us.isTypeOnly, void 0, N.createStringLiteral(on(Rc, Ee))), 0);
            }
          hs ? nt(N.createExportAssignment(void 0, !1, N.createIdentifier(Od(wt, ra))), 0) : el && nt(N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, Od(wt, ra), ra)])), 0);
        }
        function Bs(wt) {
          if (kt(wt.declarations, hT))
            return;
          D.assertIsDefined(Lr[Lr.length - 1]), tA(ta(wt.escapedName), wt);
          const xr = !!(wt.flags & 2097152) && !kt(wt.declarations, (vi) => !!rr(vi, Xl) || Ah(vi) || ru(vi) && !jm(vi.moduleReference));
          Lr[xr ? 0 : Lr.length - 1].set(yo(wt), wt);
        }
        function gd(wt) {
          return Hi(wt) && (nf(wt) || d_(wt)) || Du(wt) && !qp(wt);
        }
        function nt(wt, xr) {
          if (q_(wt)) {
            let vi = 0;
            const oi = Ee.enclosingDeclaration && (f_(Ee.enclosingDeclaration) ? er(Ee.enclosingDeclaration) : Ee.enclosingDeclaration);
            xr & 1 && oi && (gd(oi) || Wc(oi)) && nO(wt) && (vi |= 1), $t && !(vi & 1) && (!oi || !(oi.flags & 16777216)) && (Z0(wt) || cl(wt) || ml(wt) || wl(wt) || Wc(wt)) && (vi |= 2), xr & 1024 && (wl(wt) || Qu(wt) || ml(wt)) && (vi |= 1024), vi && (wt = N.updateModifiers(wt, vi | Ru(wt)));
          }
          Ia.push(wt);
        }
        function St(wt, xr, vi) {
          var oi;
          const ci = wb(wt), rs = Vi(wt).typeParameters, Fa = en(rs, (yf) => ft(yf, Ee)), ra = (oi = wt.declarations) == null ? void 0 : oi.find(f_), jo = BR(ra ? ra.comment || ra.parent.comment : void 0), hs = Ee.flags;
          Ee.flags |= 8388608;
          const el = Ee.enclosingDeclaration;
          Ee.enclosingDeclaration = ra;
          const Cl = ra && ra.typeExpression && wT(ra.typeExpression) && So(Ee, ra.typeExpression.type, Bs, tr) || u(ci, Ee);
          nt(D1(N.createTypeAliasDeclaration(void 0, Od(wt, xr), Fa, Cl), jo ? [{ kind: 3, text: `*
 * ` + jo.replace(/\n/g, `
 * `) + `
 `, pos: -1, end: -1, hasTrailingNewLine: !0 }] : []), vi), Ee.flags = hs, Ee.enclosingDeclaration = el;
        }
        function Qt(wt, xr, vi) {
          const oi = Vu(wt), ci = $y(wt), rs = en(ci, (lu) => ft(lu, Ee)), Fa = Oo(oi), ra = Ie(Fa) ? Io(Fa) : void 0, jo = wo(fs(oi), (lu) => ch(lu, ra)), hs = w0(0, oi, ra, 176), el = w0(1, oi, ra, 177), Cl = wS(oi, ra), yf = Ie(Fa) ? [N.createHeritageClause(94, fa(Fa, (lu) => bm(lu, 111551)))] : void 0;
          nt(N.createInterfaceDeclaration(void 0, Od(wt, xr), rs, yf, [...Cl, ...el, ...hs, ...jo]), vi);
        }
        function qn(wt) {
          return wt.exports ? yn(Do(wt.exports.values()), Ha) : [];
        }
        function mr(wt) {
          return Rn(qn(wt), (xr) => !(ou(Jc(xr)) & 111551));
        }
        function Ln(wt, xr, vi) {
          const oi = qn(wt), ci = aR(oi, (ra) => ra.parent && ra.parent === wt ? "real" : "merged"), rs = ci.get("real") || rt, Fa = ci.get("merged") || rt;
          if (Ie(rs)) {
            const ra = Od(wt, xr);
            Ta(rs, ra, vi, !!(wt.flags & 67108880));
          }
          if (Ie(Fa)) {
            const ra = er(Ee.enclosingDeclaration), jo = Od(wt, xr), hs = N.createModuleBlock([N.createExportDeclaration(void 0, !1, N.createNamedExports(fa(yn(Fa, (el) => el.escapedName !== "export="), (el) => {
              var Cl, yf;
              const lu = ta(el.escapedName), Us = Od(el, lu), Rc = el.declarations && fd(el);
              if (ra && (Rc ? ra !== er(Rc) : !kt(el.declarations, (uh) => er(uh) === ra))) {
                (yf = (Cl = Ee.tracker) == null ? void 0 : Cl.reportNonlocalAugmentation) == null || yf.call(Cl, ra, wt, el);
                return;
              }
              const Zg = Rc && rp(Rc, !0);
              Bs(Zg || el);
              const lh = Zg ? Od(Zg, ta(Zg.escapedName)) : Us;
              return N.createExportSpecifier(!1, lu === lh ? void 0 : lh, lu);
            })))]);
            nt(N.createModuleDeclaration(void 0, N.createIdentifier(jo), hs, 16), 0);
          }
        }
        function Sr(wt, xr, vi) {
          nt(N.createEnumDeclaration(N.createModifiersFromModifierFlags(Hae(wt) ? 2048 : 0), Od(wt, xr), en(yn(fs(or(wt)), (oi) => !!(oi.flags & 8)), (oi) => {
            const ci = oi.declarations && oi.declarations[0] && P1(oi.declarations[0]) ? goe(oi.declarations[0]) : void 0;
            return N.createEnumMember(ta(oi.escapedName), ci === void 0 ? void 0 : typeof ci == "string" ? N.createStringLiteral(ci) : N.createNumericLiteral(ci));
          })), vi);
        }
        function Ur(wt, xr, vi, oi) {
          const ci = ja(wt, 0);
          for (const rs of ci) {
            const Fa = ge(rs, 259, Ee, { name: N.createIdentifier(vi), privateSymbolVisitor: Bs, bundledImports: tr });
            nt(mt(Fa, Fi(rs)), oi);
          }
          if (!(xr.flags & 1536 && xr.exports && xr.exports.size)) {
            const rs = yn(fs(wt), Ha);
            Ta(rs, vi, oi, !0);
          }
        }
        function Fi(wt) {
          if (wt.declaration && wt.declaration.parent) {
            if (br(wt.declaration.parent) && Ac(wt.declaration.parent) === 5)
              return wt.declaration.parent;
            if (zi(wt.declaration.parent) && wt.declaration.parent.parent)
              return wt.declaration.parent.parent;
          }
          return wt.declaration;
        }
        function Ta(wt, xr, vi, oi) {
          if (Ie(wt)) {
            const rs = aR(wt, (Us) => !Ie(Us.declarations) || kt(Us.declarations, (Rc) => er(Rc) === er(Ee.enclosingDeclaration)) ? "local" : "remote").get("local") || rt;
            let Fa = Wm.createModuleDeclaration(void 0, N.createIdentifier(xr), N.createModuleBlock([]), 16);
            Bo(Fa, kr), Fa.locals = ao(wt), Fa.symbol = wt[0].parent;
            const ra = Ia;
            Ia = [];
            const jo = $t;
            $t = !1;
            const hs = { ...Ee, enclosingDeclaration: Fa }, el = Ee;
            Ee = hs, va(ao(rs), oi, !0), Ee = el, $t = jo;
            const Cl = Ia;
            Ia = ra;
            const yf = en(Cl, (Us) => Mc(Us) && !Us.isExportEquals && Ve(Us.expression) ? N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, Us.expression, N.createIdentifier("default"))])) : Us), lu = Rn(yf, (Us) => Kr(Us, 1)) ? en(yf, vr) : yf;
            Fa = N.updateModuleDeclaration(Fa, Fa.modifiers, Fa.name, N.createModuleBlock(lu)), nt(Fa, vi);
          }
        }
        function Ha(wt) {
          return !!(wt.flags & 2887656) || !(wt.flags & 4194304 || wt.escapedName === "prototype" || wt.valueDeclaration && za(wt.valueDeclaration) && li(wt.valueDeclaration.parent));
        }
        function $a(wt) {
          const xr = fa(wt, (vi) => {
            const oi = Ee.enclosingDeclaration;
            Ee.enclosingDeclaration = vi;
            let ci = vi.expression;
            if (jc(ci)) {
              if (Ve(ci) && Pr(ci) === "")
                return rs(void 0);
              let Fa;
              if ({ introducesError: Fa, node: ci } = hc(ci, Ee, Bs), Fa)
                return rs(void 0);
            }
            return rs(N.createExpressionWithTypeArguments(ci, en(vi.typeArguments, (Fa) => So(Ee, Fa, Bs, tr) || u(ui(Fa), Ee))));
            function rs(Fa) {
              return Ee.enclosingDeclaration = oi, Fa;
            }
          });
          if (xr.length === wt.length)
            return xr;
        }
        function fi(wt, xr, vi) {
          var oi, ci;
          const rs = (oi = wt.declarations) == null ? void 0 : oi.find(li), Fa = Ee.enclosingDeclaration;
          Ee.enclosingDeclaration = rs || Fa;
          const ra = $y(wt), jo = en(ra, (Bp) => ft(Bp, Ee)), hs = Vu(wt), el = Oo(hs), Cl = rs && qA(rs), yf = Cl && $a(Cl) || fa(ji(hs), eA), lu = or(wt), Us = !!((ci = lu.symbol) != null && ci.valueDeclaration) && li(lu.symbol.valueDeclaration), Rc = Us ? ni(lu) : ke, Zg = [
            ...Ie(el) ? [N.createHeritageClause(94, en(el, (Bp) => JL(Bp, Rc, xr)))] : [],
            ...Ie(yf) ? [N.createHeritageClause(117, yf)] : []
          ], lh = jat(hs, el, fs(hs)), uh = yn(lh, (Bp) => {
            const KL = Bp.valueDeclaration;
            return !!KL && !(_u(KL) && Di(KL.name));
          }), dv = kt(lh, (Bp) => {
            const KL = Bp.valueDeclaration;
            return !!KL && _u(KL) && Di(KL.name);
          }) ? [N.createPropertyDeclaration(void 0, N.createPrivateIdentifier("#private"), void 0, void 0, void 0)] : rt, Loe = wo(uh, (Bp) => Zn(Bp, !1, el[0])), Ioe = wo(yn(fs(lu), (Bp) => !(Bp.flags & 4194304) && Bp.escapedName !== "prototype" && !Ha(Bp)), (Bp) => Zn(Bp, !0, Rc)), ict = !Us && !!wt.valueDeclaration && fr(wt.valueDeclaration) && !kt(ja(lu, 1)) ? [N.createConstructorDeclaration(N.createModifiersFromModifierFlags(8), [], void 0)] : w0(1, lu, Rc, 173), act = wS(hs, el[0]);
          Ee.enclosingDeclaration = Fa, nt(mt(N.createClassDeclaration(void 0, xr, jo, Zg, [...act, ...Ioe, ...ict, ...Loe, ...dv]), wt.declarations && yn(wt.declarations, (Bp) => wl(Bp) || Pu(Bp))[0]), vi);
        }
        function Qa(wt) {
          return sn(wt, (xr) => {
            if (xd(xr) || cd(xr))
              return Pr(xr.propertyName || xr.name);
            if (br(xr) || Mc(xr)) {
              const vi = Mc(xr) ? xr.expression : xr.right;
              if (Mr(vi))
                return Pr(vi.name);
            }
            if (wg(xr)) {
              const vi = Aa(xr);
              if (vi && Ve(vi))
                return Pr(vi);
            }
          });
        }
        function Mo(wt, xr, vi) {
          var oi, ci, rs, Fa, ra;
          const jo = fd(wt);
          if (!jo)
            return D.fail();
          const hs = ns(rp(jo, !0));
          if (!hs)
            return;
          let el = DI(hs) && Qa(wt.declarations) || ta(hs.escapedName);
          el === "export=" && (V_(Y) || Y.allowSyntheticDefaultImports) && (el = "default");
          const Cl = Od(hs, el);
          switch (Bs(hs), jo.kind) {
            case 205:
              if (((ci = (oi = jo.parent) == null ? void 0 : oi.parent) == null ? void 0 : ci.kind) === 257) {
                const Us = on(hs.parent || hs, Ee), { propertyName: Rc } = jo;
                nt(N.createImportDeclaration(void 0, N.createImportClause(!1, void 0, N.createNamedImports([N.createImportSpecifier(!1, Rc && Ve(Rc) ? N.createIdentifier(Pr(Rc)) : void 0, N.createIdentifier(xr))])), N.createStringLiteral(Us), void 0), 0);
                break;
              }
              D.failBadSyntaxKind(((rs = jo.parent) == null ? void 0 : rs.parent) || jo, "Unhandled binding element grandparent kind in declaration serialization");
              break;
            case 300:
              ((ra = (Fa = jo.parent) == null ? void 0 : Fa.parent) == null ? void 0 : ra.kind) === 223 && ko(ta(wt.escapedName), Cl);
              break;
            case 257:
              if (Mr(jo.initializer)) {
                const Us = jo.initializer, Rc = N.createUniqueName(xr), Zg = on(hs.parent || hs, Ee);
                nt(N.createImportEqualsDeclaration(void 0, !1, Rc, N.createExternalModuleReference(N.createStringLiteral(Zg))), 0), nt(N.createImportEqualsDeclaration(void 0, !1, N.createIdentifier(xr), N.createQualifiedName(Rc, Us.name)), vi);
                break;
              }
            case 268:
              if (hs.escapedName === "export=" && kt(hs.declarations, (Us) => Hi(Us) && d_(Us))) {
                Cs(wt);
                break;
              }
              const yf = !(hs.flags & 512) && !zi(jo);
              nt(N.createImportEqualsDeclaration(void 0, !1, N.createIdentifier(xr), yf ? da(hs, Ee, 67108863, !1) : N.createExternalModuleReference(N.createStringLiteral(on(hs, Ee)))), yf ? vi : 0);
              break;
            case 267:
              nt(N.createNamespaceExportDeclaration(Pr(jo.name)), 0);
              break;
            case 270: {
              const Us = on(hs.parent || hs, Ee), Rc = tr ? N.createStringLiteral(Us) : jo.parent.moduleSpecifier;
              nt(N.createImportDeclaration(void 0, N.createImportClause(!1, N.createIdentifier(xr), void 0), Rc, jo.parent.assertClause), 0);
              break;
            }
            case 271: {
              const Us = on(hs.parent || hs, Ee), Rc = tr ? N.createStringLiteral(Us) : jo.parent.parent.moduleSpecifier;
              nt(N.createImportDeclaration(void 0, N.createImportClause(!1, void 0, N.createNamespaceImport(N.createIdentifier(xr))), Rc, jo.parent.parent.assertClause), 0);
              break;
            }
            case 277:
              nt(N.createExportDeclaration(void 0, !1, N.createNamespaceExport(N.createIdentifier(xr)), N.createStringLiteral(on(hs, Ee))), 0);
              break;
            case 273: {
              const Us = on(hs.parent || hs, Ee), Rc = tr ? N.createStringLiteral(Us) : jo.parent.parent.parent.moduleSpecifier;
              nt(N.createImportDeclaration(void 0, N.createImportClause(!1, void 0, N.createNamedImports([
                N.createImportSpecifier(!1, xr !== el ? N.createIdentifier(el) : void 0, N.createIdentifier(xr))
              ])), Rc, jo.parent.parent.parent.assertClause), 0);
              break;
            }
            case 278:
              const lu = jo.parent.parent.moduleSpecifier;
              ko(ta(wt.escapedName), lu ? el : Cl, lu && Es(lu) ? N.createStringLiteral(lu.text) : void 0);
              break;
            case 274:
              Cs(wt);
              break;
            case 223:
            case 208:
            case 209:
              wt.escapedName === "default" || wt.escapedName === "export=" ? Cs(wt) : ko(xr, Cl);
              break;
            default:
              return D.failBadSyntaxKind(jo, "Unhandled alias declaration kind in symbol serializer!");
          }
        }
        function ko(wt, xr, vi) {
          nt(N.createExportDeclaration(void 0, !1, N.createNamedExports([N.createExportSpecifier(!1, wt !== xr ? xr : void 0, wt)]), vi), 0);
        }
        function Cs(wt) {
          if (wt.flags & 4194304)
            return !1;
          const xr = ta(wt.escapedName), vi = xr === "export=", ci = vi || xr === "default", rs = wt.declarations && fd(wt), Fa = rs && rp(rs, !0);
          if (Fa && Ie(Fa.declarations) && kt(Fa.declarations, (ra) => er(ra) === er(kr))) {
            const ra = rs && (Mc(rs) || br(rs) ? fz(rs) : Eue(rs)), jo = ra && jc(ra) ? rot(ra) : void 0, hs = jo && Dc(jo, 67108863, !0, !0, kr);
            (hs || Fa) && Bs(hs || Fa);
            const el = Ee.tracker.disableTrackSymbol;
            if (Ee.tracker.disableTrackSymbol = !0, ci)
              Ia.push(N.createExportAssignment(void 0, vi, Ya(Fa, Ee, 67108863)));
            else if (jo === ra && jo)
              ko(xr, Pr(jo));
            else if (ra && Pu(ra))
              ko(xr, Od(Fa, Oc(Fa)));
            else {
              const Cl = tA(xr, wt);
              nt(N.createImportEqualsDeclaration(void 0, !1, N.createIdentifier(Cl), da(Fa, Ee, 67108863, !1)), 0), ko(xr, Cl);
            }
            return Ee.tracker.disableTrackSymbol = el, !0;
          } else {
            const ra = tA(xr, wt), jo = Yd(or(ns(wt)));
            if (cu(jo, wt))
              Ur(jo, wt, ra, ci ? 0 : 1);
            else {
              const hs = N.createVariableStatement(void 0, N.createVariableDeclarationList([
                N.createVariableDeclaration(ra, void 0, na(Ee, jo, wt, kr, Bs, tr))
              ], 2));
              nt(hs, Fa && Fa.flags & 4 && Fa.escapedName === "export=" ? 2 : xr === ra ? 1 : 0);
            }
            return ci ? (Ia.push(N.createExportAssignment(void 0, vi, N.createIdentifier(ra))), !0) : xr !== ra ? (ko(xr, ra), !0) : !1;
          }
        }
        function cu(wt, xr) {
          const vi = er(Ee.enclosingDeclaration);
          return Zr(wt) & 48 && !Ie(Su(wt)) && !Bi(wt) && !!(Ie(yn(fs(wt), Ha)) || Ie(ja(wt, 0))) && !Ie(ja(wt, 1)) && !cr(xr, kr) && !(wt.symbol && kt(wt.symbol.declarations, (oi) => er(oi) !== vi)) && !kt(fs(wt), (oi) => Zw(oi.escapedName)) && !kt(fs(wt), (oi) => kt(oi.declarations, (ci) => er(ci) !== vi)) && Rn(fs(wt), (oi) => N_(Oc(oi), P));
        }
        function fp(wt, xr, vi) {
          return function(ci, rs, Fa) {
            var ra, jo, hs, el, Cl;
            const yf = Kf(ci), lu = !!(yf & 8);
            if (rs && ci.flags & 2887656)
              return [];
            if (ci.flags & 4194304 || Fa && so(Fa, ci.escapedName) && dp(so(Fa, ci.escapedName)) === dp(ci) && (ci.flags & 16777216) === (so(Fa, ci.escapedName).flags & 16777216) && zh(or(ci), ul(Fa, ci.escapedName)))
              return [];
            const Us = yf & -513 | (rs ? 32 : 0), Rc = gf(ci, Ee), Zg = (ra = ci.declarations) == null ? void 0 : ra.find(Am(Za, U0, zi, xf, br, Mr));
            if (ci.flags & 98304 && vi) {
              const lh = [];
              if (ci.flags & 65536 && lh.push(mt(N.createSetAccessorDeclaration(N.createModifiersFromModifierFlags(Us), Rc, [N.createParameterDeclaration(void 0, void 0, "arg", void 0, lu ? void 0 : na(Ee, or(ci), ci, kr, Bs, tr))], void 0), ((jo = ci.declarations) == null ? void 0 : jo.find(_y)) || Zg)), ci.flags & 32768) {
                const uh = yf & 8;
                lh.push(mt(N.createGetAccessorDeclaration(N.createModifiersFromModifierFlags(Us), Rc, [], uh ? void 0 : na(Ee, or(ci), ci, kr, Bs, tr), void 0), ((hs = ci.declarations) == null ? void 0 : hs.find(xv)) || Zg));
              }
              return lh;
            } else if (ci.flags & 98311)
              return mt(wt(N.createModifiersFromModifierFlags((dp(ci) ? 64 : 0) | Us), Rc, ci.flags & 16777216 ? N.createToken(57) : void 0, lu ? void 0 : na(Ee, mL(ci), ci, kr, Bs, tr), void 0), ((el = ci.declarations) == null ? void 0 : el.find(Am(Za, zi))) || Zg);
            if (ci.flags & 8208) {
              const lh = or(ci), uh = ja(lh, 0);
              if (Us & 8)
                return mt(wt(N.createModifiersFromModifierFlags((dp(ci) ? 64 : 0) | Us), Rc, ci.flags & 16777216 ? N.createToken(57) : void 0, void 0, void 0), ((Cl = ci.declarations) == null ? void 0 : Cl.find(Xs)) || uh[0] && uh[0].declaration || ci.declarations && ci.declarations[0]);
              const DS = [];
              for (const dv of uh) {
                const Loe = ge(dv, xr, Ee, {
                  name: Rc,
                  questionToken: ci.flags & 16777216 ? N.createToken(57) : void 0,
                  modifiers: Us ? N.createModifiersFromModifierFlags(Us) : void 0
                }), Ioe = dv.declaration && pN(dv.declaration.parent) ? dv.declaration.parent : dv.declaration;
                DS.push(mt(Loe, Ioe));
              }
              return DS;
            }
            return D.fail(`Unhandled class member kind! ${ci.__debugFlags || ci.flags}`);
          };
        }
        function ch(wt, xr) {
          return Tr(wt, !1, xr);
        }
        function w0(wt, xr, vi, oi) {
          const ci = ja(xr, wt);
          if (wt === 1) {
            if (!vi && Rn(ci, (ra) => Ie(ra.parameters) === 0))
              return [];
            if (vi) {
              const ra = ja(vi, 1);
              if (!Ie(ra) && Rn(ci, (jo) => Ie(jo.parameters) === 0))
                return [];
              if (ra.length === ci.length) {
                let jo = !1;
                for (let hs = 0; hs < ra.length; hs++)
                  if (!DP(ci[hs], ra[hs], !1, !1, !0, fD)) {
                    jo = !0;
                    break;
                  }
                if (!jo)
                  return [];
              }
            }
            let Fa = 0;
            for (const ra of ci)
              ra.declaration && (Fa |= cx(ra.declaration, 24));
            if (Fa)
              return [mt(N.createConstructorDeclaration(N.createModifiersFromModifierFlags(Fa), [], void 0), ci[0].declaration)];
          }
          const rs = [];
          for (const Fa of ci) {
            const ra = ge(Fa, oi, Ee);
            rs.push(mt(ra, Fa.declaration));
          }
          return rs;
        }
        function wS(wt, xr) {
          const vi = [];
          for (const oi of Su(wt)) {
            if (xr) {
              const ci = ih(xr, oi.keyType);
              if (ci && zh(oi.type, ci.type))
                continue;
            }
            vi.push($(oi, Ee, void 0));
          }
          return vi;
        }
        function JL(wt, xr, vi) {
          const oi = bm(wt, 111551);
          if (oi)
            return oi;
          const ci = tA(`${vi}_base`), rs = N.createVariableStatement(void 0, N.createVariableDeclarationList([
            N.createVariableDeclaration(ci, void 0, u(xr, Ee))
          ], 2));
          return nt(rs, 0), N.createExpressionWithTypeArguments(N.createIdentifier(ci), void 0);
        }
        function bm(wt, xr) {
          let vi, oi;
          if (wt.target && EE(wt.target.symbol, kr, xr) ? (vi = en(_s(wt), (ci) => u(ci, Ee)), oi = Ya(wt.target.symbol, Ee, 788968)) : wt.symbol && EE(wt.symbol, kr, xr) && (oi = Ya(wt.symbol, Ee, 788968)), oi)
            return N.createExpressionWithTypeArguments(oi, vi);
        }
        function eA(wt) {
          const xr = bm(wt, 788968);
          if (xr)
            return xr;
          if (wt.symbol)
            return N.createExpressionWithTypeArguments(Ya(wt.symbol, Ee, 788968), void 0);
        }
        function tA(wt, xr) {
          var vi, oi;
          const ci = xr ? yo(xr) : void 0;
          if (ci && Ee.remappedSymbolNames.has(ci))
            return Ee.remappedSymbolNames.get(ci);
          xr && (wt = zE(xr, wt));
          let rs = 0;
          const Fa = wt;
          for (; (vi = Ee.usedSymbolNames) != null && vi.has(wt); )
            rs++, wt = `${Fa}_${rs}`;
          return (oi = Ee.usedSymbolNames) == null || oi.add(wt), ci && Ee.remappedSymbolNames.set(ci, wt), wt;
        }
        function zE(wt, xr) {
          if (xr === "default" || xr === "__class" || xr === "__function") {
            const vi = Ee.flags;
            Ee.flags |= 16777216;
            const oi = qy(wt, Ee);
            Ee.flags = vi, xr = oi.length > 0 && sN(oi.charCodeAt(0)) ? G_(oi) : oi;
          }
          return xr === "default" ? xr = "_default" : xr === "export=" && (xr = "_exports"), xr = N_(xr, P) && !ix(xr) ? xr : "_" + xr.replace(/[^a-zA-Z0-9]/g, "_"), xr;
        }
        function Od(wt, xr) {
          const vi = yo(wt);
          return Ee.remappedSymbolNames.has(vi) ? Ee.remappedSymbolNames.get(vi) : (xr = zE(wt, xr), Ee.remappedSymbolNames.set(vi, xr), xr);
        }
      }
    }
    function $l(n, a, c = 16384, u) {
      return u ? p(u).getText() : II(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 && Xe.typeToTypeNode(n.type, a, si(c) | 70221824 | 512)), R = W1(), M = a && er(a);
        return R.writeNode(4, x, M, g), g;
      }
    }
    function Kd(n) {
      const a = [];
      let c = 0;
      for (let u = 0; u < n.length; u++) {
        const p = n[u];
        if (c |= p.flags, !(p.flags & 98304)) {
          if (p.flags & 1568) {
            const g = p.flags & 512 ? Re : Qw(p);
            if (g.flags & 1048576) {
              const x = g.types.length;
              if (u + x <= n.length && md(n[u + x - 1]) === md(g.types[x - 1])) {
                a.push(g), u += x - 1;
                continue;
              }
            }
          }
          a.push(p);
        }
      }
      return c & 65536 && a.push(Sn), c & 32768 && a.push(je), a || n;
    }
    function pf(n) {
      return n === 8 ? "private" : n === 16 ? "protected" : "public";
    }
    function zy(n) {
      if (n.symbol && n.symbol.flags & 2048 && n.symbol.declarations) {
        const a = SN(n.symbol.declarations[0].parent);
        if (Qp(a))
          return Ir(a);
      }
    }
    function Xd(n) {
      return n && n.parent && n.parent.kind === 265 && g1(n.parent.parent);
    }
    function f0(n) {
      return n.kind === 308 || Du(n);
    }
    function _0(n, a) {
      const c = Vi(n).nameType;
      if (c) {
        if (c.flags & 384) {
          const u = "" + c.value;
          return !N_(u, $o(Y)) && !Eh(u) ? `"${ax(u, 34)}"` : Eh(u) && ba(u, "-") ? `[${u}]` : u;
        }
        if (c.flags & 8192)
          return `[${qy(c.symbol, a)}]`;
      }
    }
    function qy(n, a) {
      if (a && n.escapedName === "default" && !(a.flags & 16384) && (!(a.flags & 16777216) || !n.declarations || a.enclosingDeclaration && rr(n.declarations[0], f0) !== rr(a.enclosingDeclaration, f0)))
        return "default";
      if (n.declarations && n.declarations.length) {
        let u = sn(n.declarations, (g) => Aa(g) ? g : void 0);
        const p = u && Aa(u);
        if (u && p) {
          if (eo(u) && ZS(u))
            return Oc(n);
          if (Ts(p) && !(Cc(n) & 4096)) {
            const g = Vi(n).nameType;
            if (g && g.flags & 384) {
              const x = _0(n, a);
              if (x !== void 0)
                return x;
            }
          }
          return Ls(p);
        }
        if (u || (u = n.declarations[0]), u.parent && u.parent.kind === 257)
          return Ls(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 c = _0(n, a);
      return c !== void 0 ? c : Oc(n);
    }
    function x_(n) {
      if (n) {
        const c = zr(n);
        return c.isVisible === void 0 && (c.isVisible = !!a()), c.isVisible;
      }
      return !1;
      function a() {
        switch (n.kind) {
          case 341:
          case 349:
          case 343:
            return !!(n.parent && n.parent.parent && n.parent.parent.parent && Hi(n.parent.parent.parent));
          case 205:
            return x_(n.parent.parent);
          case 257:
            if (Ja(n.name) && !n.name.elements.length)
              return !1;
          case 264:
          case 260:
          case 261:
          case 262:
          case 259:
          case 263:
          case 268:
            if (g1(n))
              return !0;
            const c = xE(n);
            return !(uy(n) & 1) && !(n.kind !== 268 && c.kind !== 308 && c.flags & 16777216) ? Xm(c) : x_(c);
          case 169:
          case 168:
          case 174:
          case 175:
          case 171:
          case 170:
            if (Pd(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 x_(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 SE(n, a) {
      let c;
      n.parent && n.parent.kind === 274 ? c = fc(n, n.escapedText, 2998271, void 0, n, !1) : n.parent.kind === 278 && (c = T_(n.parent, 2998271));
      let u, p;
      return c && (p = /* @__PURE__ */ new Set(), p.add(yo(c)), g(c.declarations)), u;
      function g(x) {
        ze(x, (R) => {
          const M = pS(R) || R;
          if (a ? zr(R).isVisible = !0 : (u = u || [], c_(u, M)), BA(R)) {
            const J = R.moduleReference, $ = Sf(J), ge = fc(R, $.escapedText, 901119, void 0, void 0, !1);
            ge && p && e1(p, yo(ge)) && g(ge.declarations);
          }
        });
      }
    }
    function Of(n, a) {
      const c = th(n, a);
      if (c >= 0) {
        const { length: u } = Eg;
        for (let p = c; p < u; p++)
          Q_[p] = !1;
        return !1;
      }
      return Eg.push(n), Q_.push(!0), Xv.push(a), !0;
    }
    function th(n, a) {
      for (let c = Eg.length - 1; c >= 0; c--) {
        if (Jy(Eg[c], Xv[c]))
          return -1;
        if (Eg[c] === n && Xv[c] === a)
          return c;
      }
      return -1;
    }
    function Jy(n, a) {
      switch (a) {
        case 0:
          return !!Vi(n).type;
        case 5:
          return !!zr(n).resolvedEnumType;
        case 2:
          return !!Vi(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 !!Vi(n).writeType;
        case 9:
          return zr(n).parameterInitializerContainsUndefined !== void 0;
      }
      return D.assertNever(a);
    }
    function e_() {
      return Eg.pop(), Xv.pop(), Q_.pop();
    }
    function xE(n) {
      return rr(Om(n), (a) => {
        switch (a.kind) {
          case 257:
          case 258:
          case 273:
          case 272:
          case 271:
          case 270:
            return !1;
          default:
            return !0;
        }
      }).parent;
    }
    function p0(n) {
      const a = Fs(pd(n));
      return a.typeParameters ? Wg(a, en(a.typeParameters, (c) => ke)) : a;
    }
    function ul(n, a) {
      const c = so(n, a);
      return c ? or(c) : void 0;
    }
    function aP(n, a) {
      var c;
      return ul(n, a) || ((c = O2(n, a)) == null ? void 0 : c.type) || he;
    }
    function bs(n) {
      return n && (n.flags & 1) !== 0;
    }
    function Zo(n) {
      return n === xe || !!(n.flags & 1 && n.aliasSymbol);
    }
    function L2(n, a) {
      if (a !== 0)
        return es(n, !1, a);
      const c = Ir(n);
      return c && Vi(c).type || es(n, !1, a);
    }
    function I2(n, a, c) {
      if (n = dl(n, (M) => !(M.flags & 98304)), n.flags & 131072)
        return ua;
      if (n.flags & 1048576)
        return Ks(n, (M) => I2(M, a, c));
      let u = Yr(en(a, zg));
      const p = [], g = [];
      for (const M of fs(n)) {
        const J = TL(M, 8576);
        !To(J, u) && !(Kf(M) & 24) && TU(M) ? p.push(M) : g.push(J);
      }
      if (Mb(n) || E0(u)) {
        if (g.length && (u = Yr([u, ...g])), u.flags & 131072)
          return n;
        const M = m$e();
        return M ? B2(M, [n, u]) : xe;
      }
      const x = ao();
      for (const M of p)
        x.set(M.escapedName, nie(M, !1));
      const R = ws(c, x, rt, rt, Su(n));
      return R.objectFlags |= 4194304, R;
    }
    function z(n) {
      return !!(n.flags & 465829888) && _c(ju(n) || he, 32768);
    }
    function be(n) {
      const a = Xh(n, z) ? Ks(n, (c) => c.flags & 465829888 ? tv(c) : c) : n;
      return i_(a, 524288);
    }
    function Ye(n, a) {
      const c = Tt(n);
      return c ? k0(c, a) : a;
    }
    function Tt(n) {
      const a = Gt(n);
      if (a && bN(a) && a.flowNode) {
        const c = Cn(n);
        if (c) {
          const u = mt(Wm.createStringLiteral(c), n), p = vd(a) ? a : Wm.createParenthesizedExpression(a), g = mt(Wm.createElementAccessExpression(p, u), n);
          return Bo(u, g), Bo(g, n), p !== a && Bo(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 ? Fr(n.propertyName || n.name) : n.kind === 299 || n.kind === 300 ? Fr(n.name) : "" + a.elements.indexOf(n);
    }
    function Fr(n) {
      const a = zg(n);
      return a.flags & 384 ? "" + a.value : void 0;
    }
    function mi(n) {
      const a = n.dotDotDotToken ? 64 : 0, c = L2(n.parent.parent, a);
      return c && Ti(n, c);
    }
    function Ti(n, a) {
      if (bs(a))
        return a;
      const c = n.parent;
      W && n.flags & 16777216 && hT(n) ? a = Xg(a) : W && c.parent.initializer && !(Cu(BLe(c.parent.initializer)) & 65536) && (a = i_(a, 524288));
      let u;
      if (c.kind === 203)
        if (n.dotDotDotToken) {
          if (a = cp(a), a.flags & 2 || !WP(a))
            return Je(n, _.Rest_types_may_only_be_created_from_object_types), xe;
          const p = [];
          for (const g of c.elements)
            g.dotDotDotToken || p.push(g.propertyName || g.name);
          u = I2(a, p, n.symbol);
        } else {
          const p = n.propertyName || n.name, g = zg(p), x = Nd(a, g, 32, p);
          u = Ye(n, x);
        }
      else {
        const p = uv(65 | (n.dotDotDotToken ? 0 : 128), a, je, c), g = c.elements.indexOf(n);
        if (n.dotDotDotToken) {
          const x = tv(a);
          u = ah(x, Po) ? Ks(x, (R) => EL(R, g)) : xu(p);
        } else if (C0(a)) {
          const x = Pp(g), R = 32 | (RL(n) ? 16 : 0), M = iv(a, x, R, n.name) || xe;
          u = Ye(n, M);
        } else
          u = p;
      }
      return n.initializer ? Kl(bA(n)) ? W && !(Cu(RD(n, 0)) & 16777216) ? be(u) : u : zae(n, Yr([be(u), RD(n, 0)], 2)) : u;
    }
    function Ci(n) {
      const a = bv(n);
      if (a)
        return ui(a);
    }
    function Na(n) {
      const a = Gs(n, !0);
      return a.kind === 104 || a.kind === 79 && L_(a) === Fe;
    }
    function As(n) {
      const a = Gs(n, !0);
      return a.kind === 206 && a.elements.length === 0;
    }
    function Co(n, a = !1, c = !0) {
      return W && c ? Kg(n, a) : n;
    }
    function es(n, a, c) {
      if (zi(n) && n.parent.parent.kind === 246) {
        const x = mm(hae(pa(n.parent.parent.expression, c)));
        return x.flags & 4456448 ? TCe(x) : ue;
      }
      if (zi(n) && n.parent.parent.kind === 247) {
        const x = n.parent.parent;
        return f4(x) || ke;
      }
      if (Ja(n.parent))
        return mi(n);
      const u = Za(n) && !Pm(n) || xf(n) || Kfe(n), p = a && hq(n), g = Rd(n);
      if (OW(n))
        return g ? bs(g) || g === he ? g : xe : $e ? he : ke;
      if (g)
        return Co(g, u, p);
      if ((Te || fr(n)) && zi(n) && !Ja(n.name) && !(uy(n) & 1) && !(n.flags & 16777216)) {
        if (!(_p(n) & 2) && (!n.initializer || Na(n.initializer)))
          return gt;
        if (n.initializer && As(n.initializer))
          return On;
      }
      if (Oa(n)) {
        const x = n.parent;
        if (x.kind === 175 && R2(x)) {
          const J = Sc(Ir(n.parent), 174);
          if (J) {
            const $ = Np(J), ge = xoe(x);
            return ge && n === ge ? (D.assert(!ge.type), or($.thisParameter)) : ms($);
          }
        }
        const R = jYe(x, n);
        if (R)
          return R;
        const M = n.symbol.escapedName === "this" ? rIe(x) : iIe(n);
        if (M)
          return Co(M, !1, p);
      }
      if (aT(n) && n.initializer) {
        if (fr(n) && !Oa(n)) {
          const R = fL(n, Ir(n), lN(n));
          if (R)
            return R;
        }
        const x = zae(n, RD(n, c));
        return Co(x, u, p);
      }
      if (Za(n) && (Te || fr(n)))
        if (pl(n)) {
          const x = yn(n.parent.members, Lc), R = x.length ? A_(n.symbol, x) : Ru(n) & 2 ? MU(n.symbol) : void 0;
          return R && Co(R, !0, p);
        } else {
          const x = u0(n.parent), R = x ? Ky(n.symbol, x) : Ru(n) & 2 ? MU(n.symbol) : void 0;
          return R && Co(R, !0, p);
        }
      if (em(n))
        return Pe;
      if (Ja(n.name))
        return Lo(n.name, !1, !0);
    }
    function Dd(n) {
      if (n.valueDeclaration && br(n.valueDeclaration)) {
        const a = Vi(n);
        return a.isConstructorDeclaredProperty === void 0 && (a.isConstructorDeclaredProperty = !1, a.isConstructorDeclaredProperty = !!um(n) && Rn(n.declarations, (c) => br(c) && nV(c) && (c.left.kind !== 209 || zf(c.left.argumentExpression)) && !ip(void 0, c, n, c))), a.isConstructorDeclaredProperty;
      }
      return !1;
    }
    function Dp(n) {
      const a = n.valueDeclaration;
      return a && Za(a) && !Kl(a) && !a.initializer && (Te || fr(a));
    }
    function um(n) {
      if (n.declarations)
        for (const a of n.declarations) {
          const c = bd(a, !1, !1);
          if (c && (c.kind === 173 || Fp(c)))
            return c;
        }
    }
    function Gg(n) {
      const a = er(n.declarations[0]), c = ta(n.escapedName), u = n.declarations.every((g) => fr(g) && sc(g) && hh(g.expression)), p = u ? N.createPropertyAccessExpression(N.createPropertyAccessExpression(N.createIdentifier("module"), N.createIdentifier("exports")), c) : N.createPropertyAccessExpression(N.createIdentifier("exports"), c);
      return u && Bo(p.expression.expression, p.expression), Bo(p.expression, p), Bo(p, a), p.flowNode = a.endFlowNode, k0(p, gt, je);
    }
    function A_(n, a) {
      const c = ba(n.escapedName, "__#") ? N.createPrivateIdentifier(n.escapedName.split("@")[1]) : ta(n.escapedName);
      for (const u of a) {
        const p = N.createPropertyAccessExpression(N.createThis(), c);
        Bo(p.expression, p), Bo(p, u), p.flowNode = u.returnFlowNode;
        const g = k2(p, n);
        if (Te && (g === gt || g === On) && Je(n.valueDeclaration, _.Member_0_implicitly_has_an_1_type, S(n), Le(g)), !ah(g, lV))
          return UD(g);
      }
    }
    function Ky(n, a) {
      const c = ba(n.escapedName, "__#") ? N.createPrivateIdentifier(n.escapedName.split("@")[1]) : ta(n.escapedName), u = N.createPropertyAccessExpression(N.createThis(), c);
      Bo(u.expression, u), Bo(u, a), u.flowNode = a.returnFlowNode;
      const p = k2(u, n);
      return Te && (p === gt || p === On) && Je(n.valueDeclaration, _.Member_0_implicitly_has_an_1_type, S(n), Le(p)), ah(p, lV) ? void 0 : UD(p);
    }
    function k2(n, a) {
      const c = (a == null ? void 0 : a.valueDeclaration) && (!Dp(a) || Ru(a.valueDeclaration) & 2) && MU(a) || je;
      return k0(n, gt, c);
    }
    function AE(n, a) {
      const c = QS(n.valueDeclaration);
      if (c) {
        const R = fr(c) ? d1(c) : void 0;
        return R && R.typeExpression ? ui(R.typeExpression) : n.valueDeclaration && fL(n.valueDeclaration, n, c) || Vb(Xc(c));
      }
      let u, p = !1, g = !1;
      if (Dd(n) && (u = Ky(n, um(n))), !u) {
        let R;
        if (n.declarations) {
          let M;
          for (const J of n.declarations) {
            const $ = br(J) || eo(J) ? J : sc(J) ? br(J.parent) ? J.parent : J : void 0;
            if (!$)
              continue;
            const ge = sc($) ? _N($) : Ac($);
            (ge === 4 || br($) && nV($, ge)) && (Pf($) ? p = !0 : g = !0), eo($) || (M = ip(M, $, n, J)), M || (R || (R = [])).push(br($) || eo($) ? m0(n, a, $, ge) : ht);
          }
          u = M;
        }
        if (!u) {
          if (!Ie(R))
            return xe;
          let M = p && n.declarations ? w2(R, n.declarations) : void 0;
          if (g) {
            const $ = MU(n);
            $ && ((M || (M = [])).push($), p = !0);
          }
          const J = kt(M, ($) => !!($.flags & -98305)) ? M : R;
          u = Yr(J);
        }
      }
      const x = Yd(Co(u, !1, g && !p));
      return n.valueDeclaration && dl(x, (R) => !!(R.flags & -98305)) === ht ? (L0(n.valueDeclaration, ke), ke) : x;
    }
    function fL(n, a, c) {
      var u, p;
      if (!fr(n) || !c || !xs(c) || c.properties.length)
        return;
      const g = ao();
      for (; br(n) || Mr(n); ) {
        const M = qd(n);
        (u = M == null ? void 0 : M.exports) != null && u.size && Rl(g, M.exports), n = br(n) ? n.parent : n.parent.parent;
      }
      const x = qd(n);
      (p = x == null ? void 0 : x.exports) != null && p.size && Rl(g, x.exports);
      const R = ws(a, g, rt, rt, rt);
      return R.objectFlags |= 4096, R;
    }
    function ip(n, a, c, u) {
      var p;
      const g = Kl(a.parent);
      if (g) {
        const x = Yd(ui(g));
        if (n)
          !Zo(n) && !Zo(x) && !zh(n, x) && awe(void 0, n, u, x);
        else
          return x;
      }
      if ((p = c.parent) != null && p.valueDeclaration) {
        const x = Kl(c.parent.valueDeclaration);
        if (x) {
          const R = so(ui(x), c.escapedName);
          if (R)
            return g0(R);
        }
      }
      return n;
    }
    function m0(n, a, c, u) {
      if (eo(c)) {
        if (a)
          return or(a);
        const x = Xc(c.arguments[2]), R = ul(x, "value");
        if (R)
          return R;
        const M = ul(x, "get");
        if (M) {
          const $ = LS(M);
          if ($)
            return ms($);
        }
        const J = ul(x, "set");
        if (J) {
          const $ = LS(J);
          if ($)
            return Mae($);
        }
        return ke;
      }
      if (_L(c.left, c.right))
        return ke;
      const p = u === 1 && (Mr(c.left) || cc(c.left)) && (hh(c.left.expression) || Ve(c.left.expression) && fT(c.left.expression)), g = a ? or(a) : p ? md(Xc(c.right)) : Vb(Xc(c.right));
      if (g.flags & 524288 && u === 2 && n.escapedName === "export=") {
        const x = sp(g), R = ao();
        KR(x.members, R);
        const M = R.size;
        a && !a.exports && (a.exports = ao()), (a || n).exports.forEach(($, ge) => {
          var Ne;
          const we = R.get(ge);
          if (we && we !== $ && !($.flags & 2097152))
            if ($.flags & 111551 && we.flags & 111551) {
              if ($.valueDeclaration && we.valueDeclaration && er($.valueDeclaration) !== er(we.valueDeclaration)) {
                const Bt = ta($.escapedName), Fn = ((Ne = ii(we.valueDeclaration, _u)) == null ? void 0 : Ne.name) || we.valueDeclaration;
                qo(Je($.valueDeclaration, _.Duplicate_identifier_0, Bt), Rr(Fn, _._0_was_also_declared_here, Bt)), qo(Je(Fn, _.Duplicate_identifier_0, Bt), Rr($.valueDeclaration, _._0_was_also_declared_here, Bt));
              }
              const ft = Qo($.flags | we.flags, ge);
              ft.links.type = Yr([or($), or(we)]), ft.valueDeclaration = we.valueDeclaration, ft.declarations = ma(we.declarations, $.declarations), R.set(ge, ft);
            } else
              R.set(ge, tp($, we));
          else
            R.set(ge, $);
        });
        const J = ws(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), Zr(g) & 4)) {
          J.aliasSymbol = g.symbol;
          const $ = _s(g);
          J.aliasTypeArguments = Ie($) ? $ : void 0;
        }
        return J.objectFlags |= Zr(g) & 4096, J.symbol && J.symbol.flags & 32 && g === Vu(J.symbol) && (J.objectFlags |= 16777216), J;
      }
      return BU(g) ? (L0(c, Dt), Dt) : g;
    }
    function _L(n, a) {
      return Mr(n) && n.expression.kind === 108 && VO(a, (c) => Wl(n, c));
    }
    function Pf(n) {
      const a = bd(n, !1, !1);
      return a.kind === 173 || a.kind === 259 || a.kind === 215 && !pN(a.parent);
    }
    function w2(n, a) {
      return D.assert(n.length === a.length), n.filter((c, u) => {
        const p = a[u], g = br(p) ? p : br(p.parent) ? p.parent : void 0;
        return g && Pf(g);
      });
    }
    function Xy(n, a, c) {
      if (n.initializer) {
        const u = Ja(n.name) ? Lo(n.name, !0, !1) : he;
        return Co(zae(n, RD(n, 0, u)));
      }
      return Ja(n.name) ? Lo(n.name, a, c) : (c && !Xw(n) && L0(n, ke), a ? _e : ke);
    }
    function Jw(n, a, c) {
      const u = ao();
      let p, g = 131200;
      ze(n.elements, (R) => {
        const M = R.propertyName || R.name;
        if (R.dotDotDotToken) {
          p = pm(ue, ke, !1);
          return;
        }
        const J = zg(M);
        if (!Hh(J)) {
          g |= 512;
          return;
        }
        const $ = dm(J), ge = 4 | (R.initializer ? 16777216 : 0), Ne = Qo(ge, $);
        Ne.links.type = Xy(R, a, c), Ne.links.bindingElement = R, u.set(Ne.escapedName, Ne);
      });
      const x = ws(void 0, u, rt, rt, p ? [p] : rt);
      return x.objectFlags |= g, a && (x.pattern = n, x.objectFlags |= 131072), x;
    }
    function Kw(n, a, c) {
      const u = n.elements, p = ec(u), g = p && p.kind === 205 && p.dotDotDotToken ? p : void 0;
      if (u.length === 0 || u.length === 1 && g)
        return P >= 2 ? aCe(ke) : Dt;
      const x = en(u, ($) => kl($) ? ke : Xy($, a, c)), R = ts(u, ($) => !($ === g || kl($) || RL($)), u.length - 1) + 1, M = en(u, ($, ge) => $ === g ? 4 : ge >= R ? 2 : 1);
      let J = Op(x, M);
      return a && (J = VAe(J), J.pattern = n, J.objectFlags |= 131072), J;
    }
    function Lo(n, a = !1, c = !1) {
      return n.kind === 203 ? Jw(n, a, c) : Kw(n, a, c);
    }
    function bc(n, a) {
      return Yy(es(n, !0, 0), n, a);
    }
    function h0(n) {
      const a = qd(n), c = i$e(!1);
      return c && a && a === c;
    }
    function Yy(n, a, c) {
      return n ? (n.flags & 4096 && h0(a.parent) && (n = rie(a)), c && WU(a, n), n.flags & 8192 && (us(a) || !a.type) && n.symbol !== Ir(a) && (n = q), Yd(n)) : (n = Oa(a) && a.dotDotDotToken ? Dt : ke, c && (Xw(a) || L0(a, n)), n);
    }
    function Xw(n) {
      const a = Om(n), c = a.kind === 166 ? a.parent : a;
      return o4(c);
    }
    function Rd(n) {
      const a = Kl(n);
      if (a)
        return ui(a);
    }
    function Yw(n) {
      let a = n.valueDeclaration;
      return a ? (us(a) && (a = bA(a)), Oa(a) ? wU(a.parent) : !1) : !1;
    }
    function v(n) {
      const a = Vi(n);
      if (!a.type) {
        const c = w(n);
        return !a.type && !Yw(n) && (a.type = c), c;
      }
      return a.type;
    }
    function w(n) {
      if (n.flags & 4194304)
        return p0(n);
      if (n === Et)
        return ke;
      if (n.flags & 134217728 && n.valueDeclaration) {
        const u = Ir(er(n.valueDeclaration)), p = Qo(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 = ao();
        return g.set("exports", p), ws(n, g, rt, rt, rt);
      }
      D.assertIsDefined(n.valueDeclaration);
      const a = n.valueDeclaration;
      if (Hi(a) && d_(a))
        return a.statements.length ? Yd(Vb(pa(a.statements[0].expression))) : ua;
      if (U0(a))
        return Br(n);
      if (!Of(n, 0))
        return n.flags & 512 && !(n.flags & 67108864) ? mf(n) : pL(n);
      let c;
      if (a.kind === 274)
        c = Yy(Rd(a) || Xc(a.expression), a);
      else if (br(a) || fr(a) && (eo(a) || (Mr(a) || s3(a)) && br(a.parent)))
        c = AE(n);
      else if (Mr(a) || cc(a) || Ve(a) || Es(a) || h_(a) || wl(a) || ml(a) || nl(a) && !M_(a) || Th(a) || Hi(a)) {
        if (n.flags & 9136)
          return mf(n);
        c = br(a.parent) ? AE(n) : Rd(a) || ke;
      } else if (Vl(a))
        c = Rd(a) || Dke(a);
      else if (em(a))
        c = Rd(a) || gIe(a);
      else if ($f(a))
        c = Rd(a) || GL(a.name, 0);
      else if (M_(a))
        c = Rd(a) || Rke(a, 0);
      else if (Oa(a) || Za(a) || xf(a) || zi(a) || us(a) || SM(a))
        c = bc(a, !0);
      else if (Z0(a))
        c = mf(n);
      else if (P1(a))
        c = Vg(n);
      else
        return D.fail("Unhandled declaration kind! " + D.formatSyntaxKind(a.kind) + " for " + D.formatSymbol(n));
      return e_() ? c : n.flags & 512 && !(n.flags & 67108864) ? mf(n) : pL(n);
    }
    function F(n) {
      if (n)
        switch (n.kind) {
          case 174:
            return mp(n);
          case 175:
            return Oue(n);
          case 169:
            return D.assert(Pm(n)), Kl(n);
        }
    }
    function oe(n) {
      const a = F(n);
      return a && ui(a);
    }
    function qe(n) {
      const a = xoe(n);
      return a && a.symbol;
    }
    function qt(n) {
      return Nb(Np(n));
    }
    function Br(n) {
      const a = Vi(n);
      if (!a.type) {
        if (!Of(n, 0))
          return xe;
        const c = Sc(n, 174), u = Sc(n, 175), p = ii(Sc(n, 169), ef);
        let g = c && fr(c) && Ci(c) || oe(c) || oe(u) || oe(p) || c && c.body && EV(c) || p && p.initializer && bc(p, !0);
        g || (u && !o4(u) ? im(Te, u, _.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation, S(n)) : c && !o4(c) ? im(Te, c, _.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation, S(n)) : p && !o4(p) && im(Te, p, _.Member_0_implicitly_has_an_1_type, S(n), "any"), g = ke), e_() || (F(c) ? Je(c, _._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, S(n)) : F(u) || F(p) ? Je(u, _._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, S(n)) : c && Te && Je(c, _._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 = ke), a.type = g;
      }
      return a.type;
    }
    function ea(n) {
      var a;
      const c = Vi(n);
      if (!c.writeType) {
        if (!Of(n, 8))
          return xe;
        const u = (a = Sc(n, 175)) != null ? a : ii(Sc(n, 169), ef);
        let p = oe(u);
        e_() || (F(u) && Je(u, _._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, S(n)), p = ke), c.writeType = p || Br(n);
      }
      return c.writeType;
    }
    function Xa(n) {
      const a = ni(Vu(n));
      return a.flags & 8650752 ? a : a.flags & 2097152 ? cn(a.types, (c) => !!(c.flags & 8650752)) : void 0;
    }
    function mf(n) {
      let a = Vi(n);
      const c = a;
      if (!a.type) {
        const u = n.valueDeclaration && yV(n.valueDeclaration, !1);
        if (u) {
          const p = Rae(n, u);
          p && (n = p, a = p.links);
        }
        c.type = a.type = Ug(n);
      }
      return a.type;
    }
    function Ug(n) {
      const a = n.valueDeclaration;
      if (n.flags & 1536 && DI(n))
        return ke;
      if (a && (a.kind === 223 || sc(a) && a.parent.kind === 223))
        return AE(n);
      if (n.flags & 512 && a && Hi(a) && a.commonJsModuleIndicator) {
        const u = _d(n);
        if (u !== n) {
          if (!Of(n, 0))
            return xe;
          const p = ns(n.exports.get("export=")), g = AE(p, p === u ? void 0 : u);
          return e_() ? g : pL(n);
        }
      }
      const c = _f(16, n);
      if (n.flags & 32) {
        const u = Xa(n);
        return u ? Io([c, u]) : c;
      } else
        return W && n.flags & 16777216 ? Kg(c) : c;
    }
    function Vg(n) {
      const a = Vi(n);
      return a.type || (a.type = uAe(n));
    }
    function jg(n) {
      const a = Vi(n);
      if (!a.type) {
        const c = Zc(n), u = n.declarations && rp(fd(n), !0), p = sn(u == null ? void 0 : u.declarations, (g) => Mc(g) ? Rd(g) : void 0);
        a.type = u != null && u.declarations && MV(u.declarations) && n.declarations.length ? Gg(u) : MV(n.declarations) ? gt : p || (ou(c) & 111551 ? or(c) : xe);
      }
      return a.type;
    }
    function rre(n) {
      const a = Vi(n);
      return a.type || (a.type = Ji(or(a.target), a.mapper));
    }
    function ire(n) {
      const a = Vi(n);
      return a.writeType || (a.writeType = Ji(mL(a.target), a.mapper));
    }
    function pL(n) {
      const a = n.valueDeclaration;
      return Kl(a) ? (Je(n.valueDeclaration, _._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, S(n)), xe) : (Te && (a.kind !== 166 || a.initializer) && Je(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)), ke);
    }
    function $w(n) {
      const a = Vi(n);
      return a.type || (D.assertIsDefined(a.deferralParent), D.assertIsDefined(a.deferralConstituents), a.type = a.deferralParent.flags & 1048576 ? Yr(a.deferralConstituents) : Io(a.deferralConstituents)), a.type;
    }
    function are(n) {
      const a = Vi(n);
      return !a.writeType && a.deferralWriteConstituents && (D.assertIsDefined(a.deferralParent), D.assertIsDefined(a.deferralConstituents), a.writeType = a.deferralParent.flags & 1048576 ? Yr(a.deferralWriteConstituents) : Io(a.deferralWriteConstituents)), a.writeType;
    }
    function mL(n) {
      const a = Cc(n);
      return n.flags & 4 ? a & 2 ? a & 65536 ? are(n) || $w(n) : n.links.writeType || n.links.type : or(n) : n.flags & 98304 ? a & 1 ? ire(n) : ea(n) : or(n);
    }
    function or(n) {
      const a = Cc(n);
      return a & 65536 ? $w(n) : a & 1 ? rre(n) : a & 262144 ? xYe(n) : a & 8192 ? MZe(n) : n.flags & 7 ? v(n) : n.flags & 9136 ? mf(n) : n.flags & 8 ? Vg(n) : n.flags & 98304 ? Br(n) : n.flags & 2097152 ? jg(n) : xe;
    }
    function g0(n) {
      return OE(or(n), !!(n.flags & 16777216));
    }
    function y0(n, a) {
      return n !== void 0 && a !== void 0 && (Zr(n) & 4) !== 0 && n.target === a;
    }
    function D2(n) {
      return Zr(n) & 4 ? n.target : n;
    }
    function CE(n, a) {
      return c(n);
      function c(u) {
        if (Zr(u) & 7) {
          const p = D2(u);
          return p === a || kt(Oo(p), c);
        } else if (u.flags & 2097152)
          return kt(u.types, c);
        return !1;
      }
    }
    function oP(n, a) {
      for (const c of a)
        n = ry(n, LE(Ir(c)));
      return n;
    }
    function hL(n, a) {
      for (; ; ) {
        if (n = n.parent, n && br(n)) {
          const c = Ac(n);
          if (c === 6 || c === 3) {
            const u = Ir(n.left);
            u && u.parent && !rr(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 = hL(n, a);
            if (n.kind === 197)
              return Bn(u, LE(Ir(n.typeParameter)));
            if (n.kind === 191)
              return ma(u, RCe(n));
            const p = oP(u, Ev(n)), g = a && (n.kind === 260 || n.kind === 228 || n.kind === 261 || Fp(n)) && Vu(Ir(n)).thisType;
            return g ? Bn(p, g) : p;
          }
          case 344:
            const c = TN(n);
            c && (n = c.valueDeclaration);
            break;
          case 323: {
            const u = hL(n, a);
            return n.tags ? oP(u, wo(n.tags, (p) => yp(p) ? p.typeParameters : void 0)) : u;
          }
        }
      }
    }
    function cU(n) {
      var a;
      const c = 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(!!c, "Class was missing valueDeclaration -OR- non-class had no interface declarations"), hL(c);
    }
    function $y(n) {
      if (!n.declarations)
        return;
      let a;
      for (const c of n.declarations)
        (c.kind === 261 || c.kind === 260 || c.kind === 228 || Fp(c) || vN(c)) && (a = oP(a, Ev(c)));
      return a;
    }
    function bS(n) {
      return ma(cU(n), $y(n));
    }
    function sP(n) {
      const a = ja(n, 1);
      if (a.length === 1) {
        const c = a[0];
        if (!c.typeParameters && c.parameters.length === 1 && gu(c)) {
          const u = QP(c.parameters[0]);
          return bs(u) || Eie(u) === ke;
        }
      }
      return !1;
    }
    function v0(n) {
      if (ja(n, 1).length > 0)
        return !0;
      if (n.flags & 8650752) {
        const a = ju(n);
        return !!a && sP(a);
      }
      return !1;
    }
    function Dn(n) {
      const a = dg(n.symbol);
      return a && Jp(a);
    }
    function qr(n, a, c) {
      const u = Ie(a), p = fr(c);
      return yn(ja(n, 1), (g) => (p || u >= _m(g.typeParameters)) && u <= Ie(g.typeParameters));
    }
    function Gr(n, a, c) {
      const u = qr(n, a, c), p = en(a, ui);
      return Zs(u, (g) => kt(g.typeParameters) ? aD(g, p, fr(c)) : g);
    }
    function ni(n) {
      if (!n.resolvedBaseConstructorType) {
        const a = dg(n.symbol), c = a && Jp(a), u = Dn(n);
        if (!u)
          return n.resolvedBaseConstructorType = je;
        if (!Of(n, 1))
          return xe;
        const p = pa(u.expression);
        if (c && u !== c && (D.assert(!c.typeArguments), pa(c.expression)), p.flags & 2621440 && sp(p), !e_())
          return Je(n.symbol.valueDeclaration, _._0_is_referenced_directly_or_indirectly_in_its_own_base_expression, S(n.symbol)), n.resolvedBaseConstructorType = xe;
        if (!(p.flags & 1) && p !== Er && !v0(p)) {
          const g = Je(u.expression, _.Type_0_is_not_a_constructor_function_type, Le(p));
          if (p.flags & 262144) {
            const x = bL(p);
            let R = he;
            if (x) {
              const M = ja(x, 1);
              M[0] && (R = ms(M[0]));
            }
            p.symbol.declarations && qo(g, Rr(p.symbol.declarations[0], _.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1, S(p.symbol), Le(R)));
          }
          return n.resolvedBaseConstructorType = xe;
        }
        n.resolvedBaseConstructorType = p;
      }
      return n.resolvedBaseConstructorType;
    }
    function ji(n) {
      let a = rt;
      if (n.symbol.declarations)
        for (const c of n.symbol.declarations) {
          const u = qA(c);
          if (u)
            for (const p of u) {
              const g = ui(p);
              Zo(g) || (a === rt ? a = [g] : a.push(g));
            }
        }
      return a;
    }
    function Eo(n, a) {
      Je(n, _.Type_0_recursively_references_itself_as_a_base_type, Le(a, void 0, 2));
    }
    function Oo(n) {
      if (!n.baseTypesResolved) {
        if (Of(n, 7) && (n.objectFlags & 8 ? n.resolvedBaseTypes = [hf(n)] : n.symbol.flags & 96 ? (n.symbol.flags & 32 && ap(n), n.symbol.flags & 64 && jh(n)) : D.fail("type must be class or interface"), !e_() && n.symbol.declarations))
          for (const a of n.symbol.declarations)
            (a.kind === 260 || a.kind === 261) && Eo(a, n);
        n.baseTypesResolved = !0;
      }
      return n.resolvedBaseTypes;
    }
    function hf(n) {
      const a = Zs(n.typeParameters, (c, u) => n.elementFlags[u] & 8 ? Nd(c, pt) : c);
      return xu(Yr(a || rt), n.readonly);
    }
    function ap(n) {
      n.resolvedBaseTypes = V3;
      const a = Hu(ni(n));
      if (!(a.flags & 2621441))
        return n.resolvedBaseTypes = rt;
      const c = Dn(n);
      let u;
      const p = a.symbol ? Fs(a.symbol) : void 0;
      if (a.symbol && a.symbol.flags & 32 && Vh(p))
        u = jAe(c, a.symbol);
      else if (a.flags & 1)
        u = a;
      else {
        const x = Gr(a, c.typeArguments, c);
        if (!x.length)
          return Je(c.expression, _.No_base_constructor_has_the_specified_number_of_type_arguments), n.resolvedBaseTypes = rt;
        u = ms(x[0]);
      }
      if (Zo(u))
        return n.resolvedBaseTypes = rt;
      const g = cp(u);
      if (!nh(g)) {
        const x = Ere(void 0, u), R = ka(x, _.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members, Le(g));
        return Xo.add(ag(er(c.expression), c.expression, R)), n.resolvedBaseTypes = rt;
      }
      return n === g || CE(g, n) ? (Je(n.symbol.valueDeclaration, _.Type_0_recursively_references_itself_as_a_base_type, Le(n, void 0, 2)), n.resolvedBaseTypes = rt) : (n.resolvedBaseTypes === V3 && (n.members = void 0), n.resolvedBaseTypes = [g]);
    }
    function Vh(n) {
      const a = n.outerTypeParameters;
      if (a) {
        const c = a.length - 1, u = _s(n);
        return a[c].symbol !== u[c].symbol;
      }
      return !0;
    }
    function nh(n) {
      if (n.flags & 262144) {
        const a = ju(n);
        if (a)
          return nh(a);
      }
      return !!(n.flags & 67633153 && !Ff(n) || n.flags & 2097152 && Rn(n.types, nh));
    }
    function jh(n) {
      if (n.resolvedBaseTypes = n.resolvedBaseTypes || rt, n.symbol.declarations) {
        for (const a of n.symbol.declarations)
          if (a.kind === 261 && UI(a))
            for (const c of UI(a)) {
              const u = cp(ui(c));
              Zo(u) || (nh(u) ? n !== u && !CE(u, n) ? n.resolvedBaseTypes === rt ? n.resolvedBaseTypes = [u] : n.resolvedBaseTypes.push(u) : Eo(a, n) : Je(c, _.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members));
            }
      }
    }
    function gL(n) {
      if (!n.declarations)
        return !0;
      for (const a of n.declarations)
        if (a.kind === 261) {
          if (a.flags & 128)
            return !1;
          const c = UI(a);
          if (c) {
            for (const u of c)
              if (jc(u.expression)) {
                const p = Dc(u.expression, 788968, !0);
                if (!p || !(p.flags & 64) || Vu(p).thisType)
                  return !1;
              }
          }
        }
      return !0;
    }
    function Vu(n) {
      let a = Vi(n);
      const c = a;
      if (!a.declaredType) {
        const u = n.flags & 32 ? 1 : 2, p = Rae(n, n.valueDeclaration && Ont(n.valueDeclaration));
        p && (n = p, a = p.links);
        const g = c.declaredType = a.declaredType = _f(u, n), x = cU(n), R = $y(n);
        (x || R || u === 1 || !gL(n)) && (g.objectFlags |= 4, g.typeParameters = ma(x, R), g.outerTypeParameters = x, g.localTypeParameters = R, g.instantiations = /* @__PURE__ */ new Map(), g.instantiations.set(n_(g.typeParameters), g), g.target = g, g.resolvedTypeArguments = g.typeParameters, g.thisType = wd(n), g.thisType.isThisType = !0, g.thisType.constraint = g);
      }
      return a.declaredType;
    }
    function wb(n) {
      var a;
      const c = Vi(n);
      if (!c.declaredType) {
        if (!Of(n, 2))
          return xe;
        const u = D.checkDefined((a = n.declarations) == null ? void 0 : a.find(vN), "Type alias symbol with no valid declaration found"), p = f_(u) ? u.typeExpression : u.type;
        let g = p ? ui(p) : xe;
        if (e_()) {
          const x = $y(n);
          x && (c.typeParameters = x, c.instantiations = /* @__PURE__ */ new Map(), c.instantiations.set(n_(x), g));
        } else
          g = xe, u.kind === 343 ? Je(u.typeExpression.type, _.Type_alias_0_circularly_references_itself, S(n)) : Je(_u(u) && u.name || u, _.Type_alias_0_circularly_references_itself, S(n));
        c.declaredType = g;
      }
      return c.declaredType;
    }
    function Qw(n) {
      return n.flags & 1056 && n.symbol.flags & 8 ? Fs(pd(n.symbol)) : n;
    }
    function cAe(n) {
      const a = Vi(n);
      if (!a.declaredType) {
        const c = [];
        if (n.declarations) {
          for (const p of n.declarations)
            if (p.kind === 263) {
              for (const g of p.members)
                if (R2(g)) {
                  const x = Ir(g), R = jV(g), M = j2(R !== void 0 ? gQe(R, yo(n), x) : lAe(x));
                  Vi(x).declaredType = M, c.push(md(M));
                }
            }
        }
        const u = c.length ? Yr(c, 1, n, void 0) : lAe(n);
        u.flags & 1048576 && (u.flags |= 1024, u.symbol = n), a.declaredType = u;
      }
      return a.declaredType;
    }
    function lAe(n) {
      const a = lm(32, n), c = lm(32, n);
      return a.regularType = a, a.freshType = c, c.regularType = a, c.freshType = c, a;
    }
    function uAe(n) {
      const a = Vi(n);
      if (!a.declaredType) {
        const c = cAe(pd(n));
        a.declaredType || (a.declaredType = c);
      }
      return a.declaredType;
    }
    function LE(n) {
      const a = Vi(n);
      return a.declaredType || (a.declaredType = wd(n));
    }
    function nYe(n) {
      const a = Vi(n);
      return a.declaredType || (a.declaredType = Fs(Zc(n)));
    }
    function Fs(n) {
      return dAe(n) || xe;
    }
    function dAe(n) {
      if (n.flags & 96)
        return Vu(n);
      if (n.flags & 524288)
        return wb(n);
      if (n.flags & 262144)
        return LE(n);
      if (n.flags & 384)
        return cAe(n);
      if (n.flags & 8)
        return uAe(n);
      if (n.flags & 2097152)
        return nYe(n);
    }
    function cP(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 cP(n.elementType);
        case 180:
          return !n.typeArguments || n.typeArguments.every(cP);
      }
      return !1;
    }
    function rYe(n) {
      const a = EA(n);
      return !a || cP(a);
    }
    function fAe(n) {
      const a = Kl(n);
      return a ? cP(a) : !Av(n);
    }
    function iYe(n) {
      const a = mp(n), c = Ev(n);
      return (n.kind === 173 || !!a && cP(a)) && n.parameters.every(fAe) && c.every(rYe);
    }
    function aYe(n) {
      if (n.declarations && n.declarations.length === 1) {
        const a = n.declarations[0];
        if (a)
          switch (a.kind) {
            case 169:
            case 168:
              return fAe(a);
            case 171:
            case 170:
            case 173:
            case 174:
            case 175:
              return iYe(a);
          }
      }
      return !1;
    }
    function _Ae(n, a, c) {
      const u = ao();
      for (const p of n)
        u.set(p.escapedName, c && aYe(p) ? p : aie(p, a));
      return u;
    }
    function pAe(n, a) {
      for (const c of a)
        !n.has(c.escapedName) && !mAe(c) && n.set(c.escapedName, c);
    }
    function mAe(n) {
      return !!n.valueDeclaration && Ju(n.valueDeclaration) && za(n.valueDeclaration);
    }
    function ore(n) {
      if (!n.declaredProperties) {
        const a = n.symbol, c = Qy(a);
        n.declaredProperties = Hy(c), n.declaredCallSignatures = rt, n.declaredConstructSignatures = rt, n.declaredIndexInfos = rt, n.declaredCallSignatures = Rb(c.get("__call")), n.declaredConstructSignatures = Rb(c.get("__new")), n.declaredIndexInfos = BAe(a);
      }
      return n;
    }
    function Hh(n) {
      return !!(n.flags & 8576);
    }
    function sre(n) {
      if (!Ts(n) && !cc(n))
        return !1;
      const a = Ts(n) ? n.expression : n.argumentExpression;
      return jc(a) && Hh(Ts(n) ? Yg(n) : Xc(a));
    }
    function Zw(n) {
      return n.charCodeAt(0) === 95 && n.charCodeAt(1) === 95 && n.charCodeAt(2) === 64;
    }
    function lP(n) {
      const a = Aa(n);
      return !!a && sre(a);
    }
    function R2(n) {
      return !Iv(n) || lP(n);
    }
    function oYe(n) {
      return p3(n) && !sre(n);
    }
    function dm(n) {
      return n.flags & 8192 ? n.escapedName : n.flags & 384 ? oc("" + n.value) : D.fail();
    }
    function sYe(n, a, c) {
      D.assert(!!(Cc(n) & 4096), "Expected a late-bound symbol."), n.flags |= c, Vi(a.symbol).lateSymbol = n, n.declarations ? a.symbol.isReplaceableByMethod || n.declarations.push(a) : n.declarations = [a], c & 111551 && (!n.valueDeclaration || n.valueDeclaration.kind !== a.kind) && (n.valueDeclaration = a);
    }
    function hAe(n, a, c, u) {
      D.assert(!!u.symbol, "The member is expected to have a symbol.");
      const p = zr(u);
      if (!p.resolvedSymbol) {
        p.resolvedSymbol = u.symbol;
        const g = br(u) ? u.left : u.name, x = cc(g) ? Xc(g.argumentExpression) : Yg(g);
        if (Hh(x)) {
          const R = dm(x), M = u.symbol.flags;
          let J = c.get(R);
          J || c.set(R, J = Qo(0, R, 4096));
          const $ = a && a.get(R);
          if (J.flags & hl(M) || $) {
            const ge = $ ? ma($.declarations, J.declarations) : J.declarations, Ne = !(x.flags & 8192) && ta(R) || Ls(g);
            ze(ge, (we) => Je(Aa(we) || we, _.Property_0_was_also_declared_here, Ne)), Je(g || u, _.Duplicate_property_0, Ne), J = Qo(0, R, 4096);
          }
          return J.links.nameType = x, sYe(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 cre(n, a) {
      const c = Vi(n);
      if (!c[a]) {
        const u = a === "resolvedExports", p = u ? n.flags & 1536 ? T2(n).exports : n.exports : n.members;
        c[a] = p || te;
        const g = ao();
        for (const R of n.declarations || rt) {
          const M = Kle(R);
          if (M)
            for (const J of M)
              u === pl(J) && lP(J) && hAe(n, p, g, J);
        }
        const x = n.assignmentDeclarationMembers;
        if (x) {
          const R = Do(x.values());
          for (const M of R) {
            const J = Ac(M), $ = J === 3 || br(M) && nV(M, J) || J === 9 || J === 6;
            u === !$ && lP(M) && hAe(n, p, g, M);
          }
        }
        c[a] = Lg(p, g) || te;
      }
      return c[a];
    }
    function Qy(n) {
      return n.flags & 6256 ? cre(n, "resolvedMembers") : n.members || te;
    }
    function lU(n) {
      if (n.flags & 106500 && n.escapedName === "__computed") {
        const a = Vi(n);
        if (!a.lateSymbol && kt(n.declarations, lP)) {
          const c = ns(n.parent);
          kt(n.declarations, pl) ? ff(c) : Qy(c);
        }
        return a.lateSymbol || (a.lateSymbol = n);
      }
      return n;
    }
    function Mf(n, a, c) {
      if (Zr(n) & 4) {
        const u = n.target, p = _s(n);
        if (Ie(u.typeParameters) === Ie(p)) {
          const g = Wg(u, ma(p, [a || u.thisType]));
          return c ? Hu(g) : g;
        }
      } else if (n.flags & 2097152) {
        const u = Zs(n.types, (p) => Mf(p, a, c));
        return u !== n.types ? Io(u) : n;
      }
      return c ? Hu(n) : n;
    }
    function gAe(n, a, c, u) {
      let p, g, x, R, M;
      uj(c, u, 0, c.length) ? (g = a.symbol ? Qy(a.symbol) : ao(a.declaredProperties), x = a.declaredCallSignatures, R = a.declaredConstructSignatures, M = a.declaredIndexInfos) : (p = hd(c, u), g = _Ae(a.declaredProperties, p, c.length === 1), x = CU(a.declaredCallSignatures, p), R = CU(a.declaredConstructSignatures, p), M = BCe(a.declaredIndexInfos, p));
      const J = Oo(a);
      if (J.length) {
        a.symbol && g === Qy(a.symbol) && (g = ao(a.declaredProperties)), Nf(n, g, x, R, M);
        const $ = ec(u);
        for (const ge of J) {
          const Ne = $ ? Mf(Ji(ge, p), $) : ge;
          pAe(g, fs(Ne)), x = ma(x, ja(Ne, 0)), R = ma(R, ja(Ne, 1));
          const we = Ne !== ke ? Su(Ne) : [pm(ue, ke, !1)];
          M = ma(M, yn(we, (ft) => !Tre(M, ft.keyType)));
        }
      }
      Nf(n, g, x, R, M);
    }
    function cYe(n) {
      gAe(n, ore(n), rt, rt);
    }
    function lYe(n) {
      const a = ore(n.target), c = ma(a.typeParameters, [a.thisType]), u = _s(n), p = u.length === c.length ? u : ma(u, [n]);
      gAe(n, a, c, p);
    }
    function rh(n, a, c, u, p, g, x, R) {
      const M = new h(at, R);
      return M.declaration = n, M.typeParameters = a, M.parameters = u, M.thisParameter = c, 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 eD(n) {
      const a = rh(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 yAe(n, a) {
      const c = eD(n);
      return c.compositeSignatures = a, c.compositeKind = 1048576, c.target = void 0, c.mapper = void 0, c;
    }
    function uYe(n, a) {
      if ((n.flags & 24) === a)
        return n;
      n.optionalCallSignatureCache || (n.optionalCallSignatureCache = {});
      const c = a === 8 ? "inner" : "outer";
      return n.optionalCallSignatureCache[c] || (n.optionalCallSignatureCache[c] = dYe(n, a));
    }
    function dYe(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 c = eD(n);
      return c.flags |= a, c;
    }
    function vAe(n, a) {
      if (gu(n)) {
        const u = n.parameters.length - 1, p = or(n.parameters[u]);
        if (Po(p))
          return [c(p, u)];
        if (!a && p.flags & 1048576 && Rn(p.types, Po))
          return en(p.types, (g) => c(g, u));
      }
      return [n.parameters];
      function c(u, p) {
        const g = _s(u), x = u.target.labeledElementDeclarations, R = en(g, (M, J) => {
          const ge = !!x && bV(x[J]) || FL(n, p + J, u), Ne = u.target.elementFlags[J], we = Ne & 12 ? 32768 : Ne & 2 ? 16384 : 0, ft = Qo(1, ge, we);
          return ft.links.type = Ne & 4 ? xu(M) : M, ft;
        });
        return ma(n.parameters.slice(0, p), R);
      }
    }
    function fYe(n) {
      const a = ni(n), c = ja(a, 1), u = dg(n.symbol), p = !!u && Kr(u, 256);
      if (c.length === 0)
        return [rh(void 0, n.localTypeParameters, void 0, rt, n, void 0, 0, p ? 4 : 0)];
      const g = Dn(n), x = fr(g), R = gP(g), M = Ie(R), J = [];
      for (const $ of c) {
        const ge = _m($.typeParameters), Ne = Ie($.typeParameters);
        if (x || M >= ge && M <= Ne) {
          const we = Ne ? uU($, nv(R, $.typeParameters, ge, x)) : eD($);
          we.typeParameters = n.localTypeParameters, we.resolvedReturnType = n, we.flags = p ? we.flags | 4 : we.flags & -5, J.push(we);
        }
      }
      return J;
    }
    function lre(n, a, c, u, p) {
      for (const g of n)
        if (DP(g, a, c, u, p, c ? FQe : fD))
          return g;
    }
    function _Ye(n, a, c) {
      if (a.typeParameters) {
        if (c > 0)
          return;
        for (let p = 1; p < n.length; p++)
          if (!lre(n[p], a, !1, !1, !1))
            return;
        return [a];
      }
      let u;
      for (let p = 0; p < n.length; p++) {
        const g = p === c ? a : lre(n[p], a, !0, !1, !0);
        if (!g)
          return;
        u = ry(u, g);
      }
      return u;
    }
    function ure(n) {
      let a, c;
      for (let u = 0; u < n.length; u++) {
        if (n[u].length === 0)
          return rt;
        n[u].length > 1 && (c = c === void 0 ? u : -1);
        for (const p of n[u])
          if (!a || !lre(a, p, !1, !1, !0)) {
            const g = _Ye(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 = Io(fa(g, ($) => $.thisParameter && or($.thisParameter)));
                  R = PE(M, J);
                }
                x = yAe(p, g), x.thisParameter = R;
              }
              (a || (a = [])).push(x);
            }
          }
      }
      if (!Ie(a) && c !== -1) {
        const u = n[c !== void 0 ? c : 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 && !bAe(x.typeParameters, R.typeParameters)) ? void 0 : en(p, (R) => hYe(R, x)), !p)
              break;
          }
        a = p;
      }
      return a || rt;
    }
    function bAe(n, a) {
      if (Ie(n) !== Ie(a))
        return !1;
      if (!n || !a)
        return !0;
      const c = hd(a, n);
      for (let u = 0; u < n.length; u++) {
        const p = n[u], g = a[u];
        if (p !== g && !zh(bL(p) || he, Ji(bL(g) || he, c)))
          return !1;
      }
      return !0;
    }
    function pYe(n, a, c) {
      if (!n || !a)
        return n || a;
      const u = Io([or(n), Ji(or(a), c)]);
      return PE(n, u);
    }
    function mYe(n, a, c) {
      const u = $d(n), p = $d(a), g = u >= p ? n : a, x = g === n ? a : n, R = g === n ? u : p, M = vm(n) || vm(a), J = M && !vm(g), $ = new Array(R + (J ? 1 : 0));
      for (let ge = 0; ge < R; ge++) {
        let Ne = jE(g, ge);
        g === a && (Ne = Ji(Ne, c));
        let we = jE(x, ge) || he;
        x === a && (we = Ji(we, c));
        const ft = Io([Ne, we]), Bt = M && !J && ge === R - 1, Fn = ge >= ym(g) && ge >= ym(x), An = ge >= u ? void 0 : FL(n, ge), Yn = ge >= p ? void 0 : FL(a, ge), hn = An === Yn ? An : An ? Yn ? void 0 : An : Yn, xn = Qo(1 | (Fn && !Bt ? 16777216 : 0), hn || `arg${ge}`);
        xn.links.type = Bt ? xu(ft) : ft, $[ge] = xn;
      }
      if (J) {
        const ge = Qo(1, "args");
        ge.links.type = xu(up(x, R)), x === a && (ge.links.type = Ji(ge.links.type, c)), $[R] = ge;
      }
      return $;
    }
    function hYe(n, a) {
      const c = n.typeParameters || a.typeParameters;
      let u;
      n.typeParameters && a.typeParameters && (u = hd(a.typeParameters, n.typeParameters));
      const p = n.declaration, g = mYe(n, a, u), x = pYe(n.thisParameter, a.thisParameter, u), R = Math.max(n.minArgumentCount, a.minArgumentCount), M = rh(p, c, x, g, void 0, void 0, R, (n.flags | a.flags) & 39);
      return M.compositeKind = 1048576, M.compositeSignatures = ma(n.compositeKind !== 2097152 && n.compositeSignatures || [n], [a]), u && (M.mapper = n.compositeKind !== 2097152 && n.mapper && n.compositeSignatures ? A0(n.mapper, u) : u), M;
    }
    function EAe(n) {
      const a = Su(n[0]);
      if (a) {
        const c = [];
        for (const u of a) {
          const p = u.keyType;
          Rn(n, (g) => !!ih(g, p)) && c.push(pm(p, Yr(en(n, (g) => Hg(g, p))), kt(n, (g) => ih(g, p).isReadonly)));
        }
        return c;
      }
      return rt;
    }
    function gYe(n) {
      const a = ure(en(n.types, (p) => p === uc ? [tn] : ja(p, 0))), c = ure(en(n.types, (p) => ja(p, 1))), u = EAe(n.types);
      Nf(n, te, a, c, u);
    }
    function uP(n, a) {
      return n ? a ? Io([n, a]) : n : a;
    }
    function TAe(n) {
      const a = Zi(n, (u) => ja(u, 1).length > 0), c = en(n, sP);
      if (a > 0 && a === Zi(c, (u) => u)) {
        const u = c.indexOf(!0);
        c[u] = !1;
      }
      return c;
    }
    function yYe(n, a, c, u) {
      const p = [];
      for (let g = 0; g < a.length; g++)
        g === u ? p.push(n) : c[g] && p.push(ms(ja(a[g], 1)[0]));
      return Io(p);
    }
    function vYe(n) {
      let a, c, u;
      const p = n.types, g = TAe(p), x = Zi(g, (R) => R);
      for (let R = 0; R < p.length; R++) {
        const M = n.types[R];
        if (!g[R]) {
          let J = ja(M, 1);
          J.length && x > 0 && (J = en(J, ($) => {
            const ge = eD($);
            return ge.resolvedReturnType = yYe(ms($), p, g, R), ge;
          })), c = SAe(c, J);
        }
        a = SAe(a, ja(M, 0)), u = Iu(Su(M), (J, $) => xAe(J, $, !1), u);
      }
      Nf(n, te, a || rt, c || rt, u || rt);
    }
    function SAe(n, a) {
      for (const c of a)
        (!n || Rn(n, (u) => !DP(u, c, !1, !1, !1, fD))) && (n = Bn(n, c));
      return n;
    }
    function xAe(n, a, c) {
      if (n)
        for (let u = 0; u < n.length; u++) {
          const p = n[u];
          if (p.keyType === a.keyType)
            return n[u] = pm(p.keyType, c ? Yr([p.type, a.type]) : Io([p.type, a.type]), c ? p.isReadonly || a.isReadonly : p.isReadonly && a.isReadonly), n;
        }
      return Bn(n, a);
    }
    function bYe(n) {
      if (n.target) {
        Nf(n, te, rt, rt, rt);
        const x = _Ae(ev(n.target), n.mapper, !1), R = CU(ja(n.target, 0), n.mapper), M = CU(ja(n.target, 1), n.mapper), J = BCe(Su(n.target), n.mapper);
        Nf(n, x, R, M, J);
        return;
      }
      const a = ns(n.symbol);
      if (a.flags & 2048) {
        Nf(n, te, rt, rt, rt);
        const x = Qy(a), R = Rb(x.get("__call")), M = Rb(x.get("__new")), J = BAe(a);
        Nf(n, x, R, M, J);
        return;
      }
      let c = te, u;
      if (a.exports && (c = ff(a), a === st)) {
        const x = /* @__PURE__ */ new Map();
        c.forEach((R) => {
          var M;
          !(R.flags & 418) && !(R.flags & 512 && ((M = R.declarations) != null && M.length) && Rn(R.declarations, Du)) && x.set(R.escapedName, R);
        }), c = x;
      }
      let p;
      if (Nf(n, c, rt, rt, rt), a.flags & 32) {
        const x = Vu(a), R = ni(x);
        R.flags & 11272192 ? (c = ao(x2(c)), pAe(c, fs(R))) : R === ke && (p = pm(ue, ke, !1));
      }
      const g = Dre(c);
      if (g ? u = Rre(g) : (p && (u = Bn(u, p)), a.flags & 384 && (Fs(a).flags & 32 || kt(n.properties, (x) => !!(or(x).flags & 296))) && (u = Bn(u, Uu))), Nf(n, c, rt, rt, u || rt), a.flags & 8208 && (n.callSignatures = Rb(a)), a.flags & 32) {
        const x = Vu(a);
        let R = a.members ? Rb(a.members.get("__constructor")) : rt;
        a.flags & 16 && (R = bi(R.slice(), fa(n.callSignatures, (M) => Fp(M.declaration) ? rh(M.declaration, M.typeParameters, M.thisParameter, M.parameters, x, void 0, M.minArgumentCount, M.flags & 39) : void 0))), R.length || (R = fYe(x)), n.constructSignatures = R;
      }
    }
    function EYe(n, a, c) {
      return Ji(n, hd([a.indexType, a.objectType], [Pp(0), Op([c])]));
    }
    function TYe(n) {
      const a = ih(n.source, ue), c = fm(n.mappedType), u = !(c & 1), p = c & 4 ? 0 : 16777216, g = a ? [pm(ue, qU(a.type, n.mappedType, n.constraintType), u && a.isReadonly)] : rt, x = ao();
      for (const R of fs(n.source)) {
        const M = 8192 | (u && dp(R) ? 8 : 0), J = Qo(4 | R.flags & p, R.escapedName, M);
        if (J.declarations = R.declarations, J.links.nameType = Vi(R).nameType, J.links.propertyType = or(R), n.constraintType.type.flags & 8388608 && n.constraintType.type.objectType.flags & 262144 && n.constraintType.type.indexType.flags & 262144) {
          const $ = n.constraintType.type.objectType, ge = EYe(n.mappedType, n.constraintType.type, $);
          J.links.mappedType = ge, J.links.constraintType = mm($);
        } else
          J.links.mappedType = n.mappedType, J.links.constraintType = n.constraintType;
        x.set(R.escapedName, J);
      }
      Nf(n, x, rt, rt, g);
    }
    function dP(n) {
      if (n.flags & 4194304) {
        const a = Hu(n.type);
        return W2(a) ? uCe(a) : mm(a);
      }
      if (n.flags & 16777216) {
        if (n.root.isDistributive) {
          const a = n.checkType, c = dP(a);
          if (c !== a)
            return lie(n, SS(n.root.checkType, c, n.mapper));
        }
        return n;
      }
      if (n.flags & 1048576)
        return Ks(n, dP, !0);
      if (n.flags & 2097152) {
        const a = n.types;
        return a.length === 2 && a[0].flags & 76 && a[1] === Fc ? n : Io(Zs(n.types, dP));
      }
      return n;
    }
    function dre(n) {
      return Cc(n) & 4096;
    }
    function fre(n, a, c, u) {
      for (const p of fs(n))
        u(TL(p, a));
      if (n.flags & 1)
        u(ue);
      else
        for (const p of Su(n))
          (!c || p.keyType.flags & 134217732) && u(p.keyType);
    }
    function SYe(n) {
      const a = ao();
      let c;
      Nf(n, te, rt, rt, rt);
      const u = op(n), p = Rp(n), g = Zy(n.target || n), x = g && To(g, u), R = Wh(n.target || n), M = Hu(yL(n)), J = fm(n), $ = Ue ? 128 : 8576;
      tD(n) ? fre(M, $, Ue, ge) : GE(dP(p), ge), Nf(n, a, rt, rt, c || rt);
      function ge(we) {
        const ft = g ? Ji(g, dD(n.mapper, u, we)) : we;
        GE(ft, (Bt) => Ne(we, Bt));
      }
      function Ne(we, ft) {
        if (Hh(ft)) {
          const Bt = dm(ft), Fn = a.get(Bt);
          if (Fn)
            Fn.links.nameType = Yr([Fn.links.nameType, ft]), Fn.links.keyType = Yr([Fn.links.keyType, we]);
          else {
            const An = Hh(we) ? so(M, dm(we)) : void 0, Yn = !!(J & 4 || !(J & 8) && An && An.flags & 16777216), hn = !!(J & 1 || !(J & 2) && An && dp(An)), xn = W && !Yn && An && An.flags & 16777216, yr = An ? dre(An) : 0, on = Qo(4 | (Yn ? 16777216 : 0), Bt, yr | 262144 | (hn ? 8 : 0) | (xn ? 524288 : 0));
            on.links.mappedType = n, on.links.nameType = ft, on.links.keyType = we, An && (on.links.syntheticOrigin = An, on.declarations = !g || x ? An.declarations : void 0), a.set(Bt, on);
          }
        } else if (dU(ft) || ft.flags & 33) {
          const Bt = ft.flags & 5 ? ue : ft.flags & 40 ? pt : ft, Fn = Ji(R, dD(n.mapper, u, we)), An = pm(Bt, Fn, !!(J & 1));
          c = xAe(c, An, !0);
        }
      }
    }
    function xYe(n) {
      if (!n.links.type) {
        const a = n.links.mappedType;
        if (!Of(n, 0))
          return a.containsError = !0, xe;
        const c = Wh(a.target || a), u = dD(a.mapper, op(a), n.links.keyType), p = Ji(c, u);
        let g = W && n.flags & 16777216 && !_c(p, 49152) ? Kg(p, !0) : n.links.checkFlags & 524288 ? Lie(p) : p;
        e_() || (Je(B, _.Type_of_property_0_circularly_references_itself_in_mapped_type_1, S(n), Le(a)), g = xe), n.links.type = g;
      }
      return n.links.type;
    }
    function op(n) {
      return n.typeParameter || (n.typeParameter = LE(Ir(n.declaration.typeParameter)));
    }
    function Rp(n) {
      return n.constraintType || (n.constraintType = Tu(op(n)) || xe);
    }
    function Zy(n) {
      return n.declaration.nameType ? n.nameType || (n.nameType = Ji(ui(n.declaration.nameType), n.mapper)) : void 0;
    }
    function Wh(n) {
      return n.templateType || (n.templateType = n.declaration.type ? Ji(Co(ui(n.declaration.type), !0, !!(fm(n) & 4)), n.mapper) : xe);
    }
    function AAe(n) {
      return EA(n.declaration.typeParameter);
    }
    function tD(n) {
      const a = AAe(n);
      return a.kind === 195 && a.operator === 141;
    }
    function yL(n) {
      if (!n.modifiersType)
        if (tD(n))
          n.modifiersType = Ji(ui(AAe(n).type), n.mapper);
        else {
          const a = Qre(n.declaration), c = Rp(a), u = c && c.flags & 262144 ? Tu(c) : c;
          n.modifiersType = u && u.flags & 4194304 ? Ji(u.type, n.mapper) : he;
        }
      return n.modifiersType;
    }
    function fm(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 CAe(n) {
      const a = fm(n);
      return a & 8 ? -1 : a & 4 ? 1 : 0;
    }
    function _re(n) {
      const a = CAe(n), c = yL(n);
      return a || (Ff(c) ? CAe(c) : 0);
    }
    function AYe(n) {
      return !!(Zr(n) & 32 && fm(n) & 4);
    }
    function Ff(n) {
      if (Zr(n) & 32) {
        const a = Rp(n);
        if (E0(a))
          return !0;
        const c = Zy(n);
        if (c && E0(Ji(c, Gb(op(n), a))))
          return !0;
      }
      return !1;
    }
    function sp(n) {
      return n.members || (n.flags & 524288 ? n.objectFlags & 4 ? lYe(n) : n.objectFlags & 3 ? cYe(n) : n.objectFlags & 1024 ? TYe(n) : n.objectFlags & 16 ? bYe(n) : n.objectFlags & 32 ? SYe(n) : D.fail("Unhandled object type " + D.formatObjectFlags(n.objectFlags)) : n.flags & 1048576 ? gYe(n) : n.flags & 2097152 ? vYe(n) : D.fail("Unhandled type " + D.formatTypeFlags(n.flags))), n;
    }
    function ev(n) {
      return n.flags & 524288 ? sp(n).properties : rt;
    }
    function Db(n, a) {
      if (n.flags & 524288) {
        const u = sp(n).members.get(a);
        if (u && Pg(u))
          return u;
      }
    }
    function fP(n) {
      if (!n.resolvedProperties) {
        const a = ao();
        for (const c of n.types) {
          for (const u of fs(c))
            if (!a.has(u.escapedName)) {
              const p = bre(n, u.escapedName);
              p && a.set(u.escapedName, p);
            }
          if (n.flags & 1048576 && Su(c).length === 0)
            break;
        }
        n.resolvedProperties = Hy(a);
      }
      return n.resolvedProperties;
    }
    function fs(n) {
      return n = vL(n), n.flags & 3145728 ? fP(n) : ev(n);
    }
    function CYe(n, a) {
      n = vL(n), n.flags & 3670016 && sp(n).members.forEach((c, u) => {
        Mg(c, u) && a(c, u);
      });
    }
    function LYe(n, a) {
      return a.properties.some((u) => {
        const p = u.name && zg(u.name), g = p && Hh(p) ? dm(p) : void 0, x = g === void 0 ? void 0 : ul(n, g);
        return !!x && mD(x) && !To(IS(u), x);
      });
    }
    function IYe(n) {
      const a = Yr(n);
      if (!(a.flags & 1048576))
        return hoe(a);
      const c = ao();
      for (const u of n)
        for (const { escapedName: p } of hoe(u))
          if (!c.has(p)) {
            const g = wAe(a, p);
            g && c.set(p, g);
          }
      return Do(c.values());
    }
    function IE(n) {
      return n.flags & 262144 ? Tu(n) : n.flags & 8388608 ? kYe(n) : n.flags & 16777216 ? DYe(n) : ju(n);
    }
    function Tu(n) {
      return nD(n) ? bL(n) : void 0;
    }
    function _P(n) {
      var a;
      return !!(n.flags & 262144 && kt((a = n.symbol) == null ? void 0 : a.declarations, (c) => Kr(c, 2048)) || W2(n) && Qi(_s(n), (c, u) => !!(n.target.elementFlags[u] & 8) && _P(c)) >= 0 || n.flags & 8388608 && _P(n.objectType));
    }
    function kYe(n) {
      return nD(n) ? wYe(n) : void 0;
    }
    function pre(n) {
      const a = qg(n, !1);
      return a !== n ? a : IE(n);
    }
    function wYe(n) {
      if (yre(n))
        return bU(n.objectType, n.indexType);
      const a = pre(n.indexType);
      if (a && a !== n.indexType) {
        const u = iv(n.objectType, a, n.accessFlags);
        if (u)
          return u;
      }
      const c = pre(n.objectType);
      if (c && c !== n.objectType)
        return iv(c, n.indexType, n.accessFlags);
    }
    function mre(n) {
      if (!n.resolvedDefaultConstraint) {
        const a = dQe(n), c = S0(n);
        n.resolvedDefaultConstraint = bs(a) ? c : bs(c) ? a : Yr([a, c]);
      }
      return n.resolvedDefaultConstraint;
    }
    function LAe(n) {
      if (n.root.isDistributive && n.restrictiveInstantiation !== n) {
        const a = qg(n.checkType, !1), c = a === n.checkType ? IE(a) : a;
        if (c && c !== n.checkType) {
          const u = lie(n, SS(n.root.checkType, c, n.mapper));
          if (!(u.flags & 131072))
            return u;
        }
      }
    }
    function IAe(n) {
      return LAe(n) || mre(n);
    }
    function DYe(n) {
      return nD(n) ? IAe(n) : void 0;
    }
    function RYe(n, a) {
      let c, u = !1;
      for (const p of n)
        if (p.flags & 465829888) {
          let g = IE(p);
          for (; g && g.flags & 21233664; )
            g = IE(g);
          g && (c = Bn(c, g), a && (c = Bn(c, p)));
        } else
          (p.flags & 469892092 || Jh(p)) && (u = !0);
      if (c && (a || u)) {
        if (u)
          for (const p of n)
            (p.flags & 469892092 || Jh(p)) && (c = Bn(c, p));
        return LP(Io(c), !1);
      }
    }
    function ju(n) {
      if (n.flags & 464781312) {
        const a = hre(n);
        return a !== Jo && a !== Gc ? a : void 0;
      }
      return n.flags & 4194304 ? Gi : void 0;
    }
    function tv(n) {
      return ju(n) || n;
    }
    function nD(n) {
      return hre(n) !== Gc;
    }
    function hre(n) {
      if (n.resolvedBaseConstraint)
        return n.resolvedBaseConstraint;
      const a = [];
      return n.resolvedBaseConstraint = Mf(c(n), n);
      function c(g) {
        if (!g.immediateBaseConstraint) {
          if (!Of(g, 4))
            return Gc;
          let x;
          const R = AL(g);
          if ((a.length < 10 || a.length < 50 && !wi(a, R)) && (a.push(R), x = p(qg(g, !1)), a.pop()), !e_()) {
            if (g.flags & 262144) {
              const M = Nre(g);
              if (M) {
                const J = Je(M, _.Type_parameter_0_has_a_circular_constraint, Le(g));
                B && !mT(M, B) && !mT(B, M) && qo(J, Rr(B, _.Circularity_originates_in_type_at_this_location));
              }
            }
            x = Gc;
          }
          g.immediateBaseConstraint = x || Jo;
        }
        return g.immediateBaseConstraint;
      }
      function u(g) {
        const x = c(g);
        return x !== Jo && x !== Gc ? x : void 0;
      }
      function p(g) {
        if (g.flags & 262144) {
          const x = bL(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 ? Yr(R) : g.flags & 2097152 && R.length ? Io(R) : void 0 : g;
        }
        if (g.flags & 4194304)
          return Gi;
        if (g.flags & 134217728) {
          const x = g.types, R = fa(x, u);
          return R.length === x.length ? DE(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 (yre(g))
            return u(bU(g.objectType, g.indexType));
          const x = u(g.objectType), R = u(g.indexType), M = x && R && iv(x, R, g.accessFlags);
          return M && u(M);
        }
        if (g.flags & 16777216) {
          const x = IAe(g);
          return x && u(x);
        }
        return g.flags & 33554432 ? u(Mre(g)) : g;
      }
    }
    function NYe(n) {
      return n.resolvedApparentType || (n.resolvedApparentType = Mf(n, n, !0));
    }
    function gre(n) {
      if (n.default)
        n.default === Yl && (n.default = Gc);
      else if (n.target) {
        const a = gre(n.target);
        n.default = a ? Ji(a, n.mapper) : Jo;
      } else {
        n.default = Yl;
        const a = n.symbol && ze(n.symbol.declarations, (u) => Pc(u) && u.default), c = a ? ui(a) : Jo;
        n.default === Yl && (n.default = c);
      }
      return n.default;
    }
    function kE(n) {
      const a = gre(n);
      return a !== Jo && a !== Gc ? a : void 0;
    }
    function OYe(n) {
      return gre(n) !== Gc;
    }
    function kAe(n) {
      return !!(n.symbol && ze(n.symbol.declarations, (a) => Pc(a) && a.default));
    }
    function PYe(n) {
      return n.resolvedApparentType || (n.resolvedApparentType = MYe(n));
    }
    function MYe(n) {
      const a = oie(n);
      if (a && !n.declaration.nameType) {
        const c = Tu(a);
        if (c && NE(c))
          return Ji(n, SS(a, c, n.mapper));
      }
      return n;
    }
    function yre(n) {
      let a;
      return !!(n.flags & 8388608 && Zr(a = n.objectType) & 32 && !Ff(a) && E0(n.indexType) && !(fm(a) & 8) && !a.declaration.nameType);
    }
    function Hu(n) {
      const a = n.flags & 465829888 ? ju(n) || he : n;
      return Zr(a) & 32 ? PYe(a) : a.flags & 2097152 ? NYe(a) : a.flags & 402653316 ? dc : a.flags & 296 ? Hd : a.flags & 2112 ? h$e() : a.flags & 528 ? Vc : a.flags & 12288 ? tCe() : a.flags & 67108864 ? ua : a.flags & 4194304 ? Gi : a.flags & 2 && !W ? ua : a;
    }
    function vL(n) {
      return cp(Hu(cp(n)));
    }
    function wAe(n, a, c) {
      var u, p, g;
      let x, R, M;
      const J = n.flags & 1048576;
      let $, ge = 4, Ne = J ? 0 : 8, we = !1;
      for (const Un of n.types) {
        const Kn = Hu(Un);
        if (!(Zo(Kn) || Kn.flags & 131072)) {
          const $r = so(Kn, a, c), ti = $r ? Kf($r) : 0;
          if ($r) {
            if ($r.flags & 106500 && ($ ?? ($ = J ? 0 : 16777216), J ? $ |= $r.flags & 16777216 : $ &= $r.flags), !x)
              x = $r;
            else if ($r !== x)
              if ((Q2($r) || $r) === (Q2(x) || x) && bie(x, $r, (Ya, yl) => Ya === yl ? -1 : 0) === -1)
                we = !!x.parent && !!Ie($y(x.parent));
              else {
                R || (R = /* @__PURE__ */ new Map(), R.set(yo(x), x));
                const Ya = yo($r);
                R.has(Ya) || R.set(Ya, $r);
              }
            J && dp($r) ? Ne |= 8 : !J && !dp($r) && (Ne &= -9), Ne |= (ti & 24 ? 0 : 256) | (ti & 16 ? 512 : 0) | (ti & 8 ? 1024 : 0) | (ti & 32 ? 2048 : 0), pae($r) || (ge = 2);
          } else if (J) {
            const da = !Zw(a) && O2(Kn, a);
            da ? (Ne |= 32 | (da.isReadonly ? 8 : 0), M = Bn(M, Po(Kn) ? RP(Kn) || je : da.type)) : I0(Kn) && !(Zr(Kn) & 2097152) ? (Ne |= 32, M = Bn(M, je)) : Ne |= 16;
          }
        }
      }
      if (!x || J && (R || Ne & 48) && Ne & 1536 && !(R && FYe(R.values())))
        return;
      if (!R && !(Ne & 16) && !M)
        if (we) {
          const Un = (u = ii(x, Dm)) == null ? void 0 : u.links, Kn = PE(x, Un == null ? void 0 : Un.type);
          return Kn.parent = (g = (p = x.valueDeclaration) == null ? void 0 : p.symbol) == null ? void 0 : g.parent, Kn.links.containingType = n, Kn.links.mapper = Un == null ? void 0 : Un.mapper, Kn;
        } else
          return x;
      const ft = R ? Do(R.values()) : [x];
      let Bt, Fn, An;
      const Yn = [];
      let hn, xn, yr = !1;
      for (const Un of ft) {
        xn ? Un.valueDeclaration && Un.valueDeclaration !== xn && (yr = !0) : xn = Un.valueDeclaration, Bt = bi(Bt, Un.declarations);
        const Kn = or(Un);
        Fn || (Fn = Kn, An = Vi(Un).nameType);
        const $r = mL(Un);
        hn || $r !== Kn ? hn = Bn(hn || Yn.slice(), $r) : Kn !== Fn && (Ne |= 64), (mD(Kn) || U2(Kn) || Kn === Jr) && (Ne |= 128), Kn.flags & 131072 && Kn !== Jr && (Ne |= 131072), Yn.push(Kn);
      }
      bi(Yn, M);
      const on = Qo(4 | ($ ?? 0), a, ge | Ne);
      return on.links.containingType = n, !yr && xn && (on.valueDeclaration = xn, xn.symbol.parent && (on.parent = xn.symbol.parent)), on.declarations = Bt, on.links.nameType = An, Yn.length > 2 ? (on.links.checkFlags |= 65536, on.links.deferralParent = n, on.links.deferralConstituents = Yn, on.links.deferralWriteConstituents = hn) : (on.links.type = J ? Yr(Yn) : Io(Yn), hn && (on.links.writeType = J ? Yr(hn) : Io(hn))), on;
    }
    function vre(n, a, c) {
      var u, p;
      let g = (u = n.propertyCacheWithoutObjectFunctionPropertyAugment) != null && u.get(a) || !c ? (p = n.propertyCache) == null ? void 0 : p.get(a) : void 0;
      return g || (g = wAe(n, a, c), g && (c ? n.propertyCacheWithoutObjectFunctionPropertyAugment || (n.propertyCacheWithoutObjectFunctionPropertyAugment = ao()) : n.propertyCache || (n.propertyCache = ao())).set(a, g)), g;
    }
    function FYe(n) {
      let a;
      for (const c of n) {
        if (!c.declarations)
          return;
        if (!a) {
          a = new Set(c.declarations);
          continue;
        }
        if (a.forEach((u) => {
          wi(c.declarations, u) || a.delete(u);
        }), a.size === 0)
          return;
      }
      return a;
    }
    function bre(n, a, c) {
      const u = vre(n, a, c);
      return u && !(Cc(u) & 16) ? u : void 0;
    }
    function cp(n) {
      return n.flags & 1048576 && n.objectFlags & 16777216 ? n.resolvedReducedType || (n.resolvedReducedType = BYe(n)) : n.flags & 2097152 ? (n.objectFlags & 16777216 || (n.objectFlags |= 16777216 | (kt(fP(n), GYe) ? 33554432 : 0)), n.objectFlags & 33554432 ? ht : n) : n;
    }
    function BYe(n) {
      const a = Zs(n.types, cp);
      if (a === n.types)
        return n;
      const c = Yr(a);
      return c.flags & 1048576 && (c.resolvedReducedType = c), c;
    }
    function GYe(n) {
      return DAe(n) || RAe(n);
    }
    function DAe(n) {
      return !(n.flags & 16777216) && (Cc(n) & 131264) === 192 && !!(or(n).flags & 131072);
    }
    function RAe(n) {
      return !n.valueDeclaration && !!(Cc(n) & 1024);
    }
    function Ere(n, a) {
      if (a.flags & 2097152 && Zr(a) & 33554432) {
        const c = cn(fP(a), DAe);
        if (c)
          return ka(n, _.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents, Le(a, void 0, 536870912), S(c));
        const u = cn(fP(a), RAe);
        if (u)
          return ka(n, _.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some, Le(a, void 0, 536870912), S(u));
      }
      return n;
    }
    function so(n, a, c, u) {
      if (n = vL(n), n.flags & 524288) {
        const p = sp(n), g = p.members.get(a);
        if (g && Pg(g, u))
          return g;
        if (c)
          return;
        const x = p === Sa ? uc : p.callSignatures.length ? ll : p.constructSignatures.length ? ud : void 0;
        if (x) {
          const R = Db(x, a);
          if (R)
            return R;
        }
        return Db(Ka, a);
      }
      if (n.flags & 3145728)
        return bre(n, a, c);
    }
    function pP(n, a) {
      if (n.flags & 3670016) {
        const c = sp(n);
        return a === 0 ? c.callSignatures : c.constructSignatures;
      }
      return rt;
    }
    function ja(n, a) {
      return pP(vL(n), a);
    }
    function Tre(n, a) {
      return cn(n, (c) => c.keyType === a);
    }
    function Sre(n, a) {
      let c, u, p;
      for (const g of n)
        g.keyType === ue ? c = g : N2(a, g.keyType) && (u ? (p || (p = [u])).push(g) : u = g);
      return p ? pm(he, Io(en(p, (g) => g.type)), Iu(p, (g, x) => g && x.isReadonly, !0)) : u || (c && N2(a, ue) ? c : void 0);
    }
    function N2(n, a) {
      return To(n, a) || a === ue && To(n, pt) || a === pt && (n === no || !!(n.flags & 128) && Eh(n.value));
    }
    function xre(n) {
      return n.flags & 3670016 ? sp(n).indexInfos : rt;
    }
    function Su(n) {
      return xre(vL(n));
    }
    function ih(n, a) {
      return Tre(Su(n), a);
    }
    function Hg(n, a) {
      var c;
      return (c = ih(n, a)) == null ? void 0 : c.type;
    }
    function Are(n, a) {
      return Su(n).filter((c) => N2(a, c.keyType));
    }
    function mP(n, a) {
      return Sre(Su(n), a);
    }
    function O2(n, a) {
      return mP(n, Zw(a) ? q : Bf(ta(a)));
    }
    function NAe(n) {
      var a;
      let c;
      for (const u of Ev(n))
        c = ry(c, LE(u.symbol));
      return c != null && c.length ? c : ml(n) ? (a = iD(n)) == null ? void 0 : a.typeParameters : void 0;
    }
    function Cre(n) {
      const a = [];
      return n.forEach((c, u) => {
        mE(u) || a.push(c);
      }), a;
    }
    function Lre(n, a) {
      if (Pl(n))
        return;
      const c = zd(He, '"' + n + '"', 512);
      return c && a ? ns(c) : c;
    }
    function rD(n) {
      if (nx(n) || rO(n) || iO(n))
        return !0;
      if (n.initializer) {
        const c = Np(n.parent), u = n.parent.parameters.indexOf(n);
        return D.assert(u >= 0), u >= ym(c, 3);
      }
      const a = dT(n.parent);
      return a ? !n.type && !n.dotDotDotToken && n.parent.parameters.indexOf(n) >= a.arguments.length : !1;
    }
    function UYe(n) {
      return Za(n) && !Pm(n) && n.questionToken;
    }
    function hP(n, a, c, u) {
      return { kind: n, parameterName: a, parameterIndex: c, type: u };
    }
    function _m(n) {
      let a = 0;
      if (n)
        for (let c = 0; c < n.length; c++)
          kAe(n[c]) || (a = c + 1);
      return a;
    }
    function nv(n, a, c, u) {
      const p = Ie(a);
      if (!p)
        return [];
      const g = Ie(n);
      if (u || g >= c && g <= p) {
        const x = n ? n.slice() : [];
        for (let M = g; M < p; M++)
          x[M] = xe;
        const R = jie(u);
        for (let M = g; M < p; M++) {
          let J = kE(a[M]);
          u && J && (zh(J, he) || zh(J, ua)) && (J = ke), x[M] = J ? Ji(J, hd(a, x)) : R;
        }
        return x.length = a.length, x;
      }
      return n && n.slice();
    }
    function Np(n) {
      const a = zr(n);
      if (!a.resolvedSignature) {
        const c = [];
        let u = 0, p = 0, g, x = !1;
        const R = dT(n), M = jA(n);
        !R && fr(n) && gue(n) && !Hce(n) && !bv(n) && (u |= 32);
        for (let Ne = M ? 1 : 0; Ne < n.parameters.length; Ne++) {
          const we = n.parameters[Ne];
          let ft = we.symbol;
          const Bt = tm(we) ? we.typeExpression && we.typeExpression.type : we.type;
          ft && ft.flags & 4 && !Ja(we.name) && (ft = fc(we, ft.escapedName, 111551, void 0, void 0, !1)), Ne === 0 && ft.escapedName === "this" ? (x = !0, g = we.symbol) : c.push(ft), Bt && Bt.kind === 198 && (u |= 2), rO(we) || we.initializer || we.questionToken || ph(we) || R && c.length > R.arguments.length && !Bt || iO(we) || (p = c.length);
        }
        if ((n.kind === 174 || n.kind === 175) && R2(n) && (!x || !g)) {
          const Ne = n.kind === 174 ? 175 : 174, we = Sc(Ir(n), Ne);
          we && (g = qe(we));
        }
        if (fr(n)) {
          const Ne = yM(n);
          Ne && Ne.typeExpression && (g = PE(Qo(1, "this"), ui(Ne.typeExpression)));
        }
        const $ = n.kind === 173 ? Vu(ns(n.parent.symbol)) : void 0, ge = $ ? $.localTypeParameters : NAe(n);
        (TW(n) || fr(n) && VYe(n, c)) && (u |= 1), (Sk(n) && Kr(n, 256) || Hc(n) && Kr(n.parent, 256)) && (u |= 4), a.resolvedSignature = rh(n, ge, g, c, void 0, void 0, p, u);
      }
      return a.resolvedSignature;
    }
    function VYe(n, a) {
      if (M1(n) || !Ire(n))
        return !1;
      const c = ec(n.parameters), u = c ? gI(c) : f1(n).filter(tm), p = sn(u, (x) => x.typeExpression && O7(x.typeExpression.type) ? x.typeExpression.type : void 0), g = Qo(3, "args", 32768);
      return p ? g.links.type = xu(ui(p.type)) : (g.links.checkFlags |= 65536, g.links.deferralParent = ht, g.links.deferralConstituents = [Dt], g.links.deferralWriteConstituents = [Dt]), p && a.pop(), a.push(g), !0;
    }
    function iD(n) {
      if (!(fr(n) && Xs(n)))
        return;
      const a = d1(n);
      return (a == null ? void 0 : a.typeExpression) && LS(ui(a.typeExpression));
    }
    function jYe(n, a) {
      const c = iD(n);
      if (!c)
        return;
      const u = n.parameters.indexOf(a);
      return a.dotDotDotToken ? ID(c, u) : up(c, u);
    }
    function HYe(n) {
      const a = iD(n);
      return a && ms(a);
    }
    function Ire(n) {
      const a = zr(n);
      return a.containsArgumentsReference === void 0 && (a.flags & 512 ? a.containsArgumentsReference = !0 : a.containsArgumentsReference = c(n.body)), a.containsArgumentsReference;
      function c(u) {
        if (!u)
          return !1;
        switch (u.kind) {
          case 79:
            return u.escapedText === Ct.escapedName && h4(u) === Ct;
          case 169:
          case 171:
          case 174:
          case 175:
            return u.name.kind === 164 && c(u.name);
          case 208:
          case 209:
            return c(u.expression);
          case 299:
            return c(u.initializer);
          default:
            return !mz(u) && !mh(u) && !!Ra(u, c);
        }
      }
    }
    function Rb(n) {
      if (!n || !n.declarations)
        return rt;
      const a = [];
      for (let c = 0; c < n.declarations.length; c++) {
        const u = n.declarations[c];
        if (qa(u)) {
          if (c > 0 && u.body) {
            const p = n.declarations[c - 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 (Ok(x)) {
                    const R = x.typeExpression;
                    R.type === void 0 && !Hc(u) && L0(R, ke), a.push(Np(R)), p = !0;
                  }
              }
            if (p)
              continue;
          }
          a.push(!aC(u) && !M_(u) && iD(u) || Np(u));
        }
      }
      return a;
    }
    function OAe(n) {
      const a = su(n, n);
      if (a) {
        const c = _d(a);
        if (c)
          return or(c);
      }
      return ke;
    }
    function Nb(n) {
      if (n.thisParameter)
        return or(n.thisParameter);
    }
    function t_(n) {
      if (!n.resolvedTypePredicate) {
        if (n.target) {
          const a = t_(n.target);
          n.resolvedTypePredicate = a ? CQe(a, n.mapper) : $s;
        } else if (n.compositeSignatures)
          n.resolvedTypePredicate = B$e(n.compositeSignatures, n.compositeKind) || $s;
        else {
          const a = n.declaration && mp(n.declaration);
          let c;
          if (!a) {
            const u = iD(n.declaration);
            u && n !== u && (c = t_(u));
          }
          n.resolvedTypePredicate = a && L7(a) ? WYe(a, n) : c || $s;
        }
        D.assert(!!n.resolvedTypePredicate);
      }
      return n.resolvedTypePredicate === $s ? void 0 : n.resolvedTypePredicate;
    }
    function WYe(n, a) {
      const c = n.parameterName, u = n.type && ui(n.type);
      return c.kind === 194 ? hP(n.assertsModifier ? 2 : 0, void 0, void 0, u) : hP(n.assertsModifier ? 3 : 1, c.escapedText, Qi(a.parameters, (p) => p.escapedName === c.escapedText), u);
    }
    function PAe(n, a, c) {
      return a !== 2097152 ? Yr(n, c) : Io(n);
    }
    function ms(n) {
      if (!n.resolvedReturnType) {
        if (!Of(n, 3))
          return xe;
        let a = n.target ? Ji(ms(n.target), n.mapper) : n.compositeSignatures ? Ji(PAe(en(n.compositeSignatures, ms), n.compositeKind, 2), n.mapper) : P2(n.declaration) || (xc(n.declaration.body) ? ke : EV(n.declaration));
        if (n.flags & 8 ? a = _Le(a) : n.flags & 16 && (a = Kg(a)), !e_()) {
          if (n.declaration) {
            const c = mp(n.declaration);
            if (c)
              Je(c, _.Return_type_annotation_circularly_references_itself);
            else if (Te) {
              const u = n.declaration, p = Aa(u);
              p ? Je(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, Ls(p)) : Je(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 = ke;
        }
        n.resolvedReturnType = a;
      }
      return n.resolvedReturnType;
    }
    function P2(n) {
      if (n.kind === 173)
        return Vu(ns(n.parent.symbol));
      if (M1(n)) {
        const c = BI(n);
        if (c && Hc(c.parent))
          return Vu(ns(c.parent.parent.symbol));
      }
      if (jA(n))
        return ui(n.parameters[0].type);
      const a = mp(n);
      if (a)
        return ui(a);
      if (n.kind === 174 && R2(n)) {
        const c = fr(n) && Ci(n);
        if (c)
          return c;
        const u = Sc(Ir(n), 175), p = oe(u);
        if (p)
          return p;
      }
      return HYe(n);
    }
    function kre(n) {
      return !n.resolvedReturnType && th(n, 3) >= 0;
    }
    function zYe(n) {
      return MAe(n) || ke;
    }
    function MAe(n) {
      if (gu(n)) {
        const a = or(n.parameters[n.parameters.length - 1]), c = Po(a) ? RP(a) : a;
        return c && Hg(c, pt);
      }
    }
    function aD(n, a, c, u) {
      const p = wre(n, nv(a, n.typeParameters, _m(n.typeParameters), c));
      if (u) {
        const g = WIe(ms(p));
        if (g) {
          const x = eD(g);
          x.typeParameters = u;
          const R = eD(p);
          return R.resolvedReturnType = wE(x), R;
        }
      }
      return p;
    }
    function wre(n, a) {
      const c = n.instantiations || (n.instantiations = /* @__PURE__ */ new Map()), u = n_(a);
      let p = c.get(u);
      return p || c.set(u, p = uU(n, a)), p;
    }
    function uU(n, a) {
      return H2(n, qYe(n, a), !0);
    }
    function qYe(n, a) {
      return hd(n.typeParameters, a);
    }
    function oD(n) {
      return n.typeParameters ? n.erasedSignatureCache || (n.erasedSignatureCache = JYe(n)) : n;
    }
    function JYe(n) {
      return H2(n, GCe(n.typeParameters), !0);
    }
    function KYe(n) {
      return n.typeParameters ? n.canonicalSignatureCache || (n.canonicalSignatureCache = XYe(n)) : n;
    }
    function XYe(n) {
      return aD(n, en(n.typeParameters, (a) => a.target && !Tu(a.target) ? a.target : a), fr(n.declaration));
    }
    function YYe(n) {
      const a = n.typeParameters;
      if (a) {
        if (n.baseSignatureCache)
          return n.baseSignatureCache;
        const c = GCe(a), u = hd(a, en(a, (g) => Tu(g) || he));
        let p = en(a, (g) => Ji(g, u) || he);
        for (let g = 0; g < a.length - 1; g++)
          p = Jg(p, u);
        return p = Jg(p, c), n.baseSignatureCache = H2(n, hd(a, p), !0);
      }
      return n;
    }
    function wE(n) {
      var a;
      if (!n.isolatedSignatureType) {
        const c = (a = n.declaration) == null ? void 0 : a.kind, u = c === void 0 || c === 173 || c === 177 || c === 182, p = _f(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 FAe(n) {
      return n.members ? Dre(n.members) : void 0;
    }
    function Dre(n) {
      return n.get("__index");
    }
    function pm(n, a, c, u) {
      return { keyType: n, type: a, isReadonly: c, declaration: u };
    }
    function BAe(n) {
      const a = FAe(n);
      return a ? Rre(a) : rt;
    }
    function Rre(n) {
      if (n.declarations) {
        const a = [];
        for (const c of n.declarations)
          if (c.parameters.length === 1) {
            const u = c.parameters[0];
            u.type && GE(ui(u.type), (p) => {
              dU(p) && !Tre(a, p) && a.push(pm(p, c.type ? ui(c.type) : ke, Pd(c, 64), c));
            });
          }
        return a;
      }
      return rt;
    }
    function dU(n) {
      return !!(n.flags & 4108) || U2(n) || !!(n.flags & 2097152) && !SL(n) && kt(n.types, dU);
    }
    function Nre(n) {
      return fa(yn(n.symbol && n.symbol.declarations, Pc), EA)[0];
    }
    function GAe(n, a) {
      var c;
      let u;
      if ((c = n.symbol) != null && c.declarations) {
        for (const p of n.symbol.declarations)
          if (p.parent.kind === 192) {
            const [g = p.parent, x] = vue(p.parent.parent);
            if (x.kind === 180 && !a) {
              const R = x, M = Yae(R);
              if (M) {
                const J = R.typeArguments.indexOf(g);
                if (J < M.length) {
                  const $ = Tu(M[J]);
                  if ($) {
                    const ge = iie(M, M.map((we, ft) => () => oit(R, M, ft))), Ne = Ji($, ge);
                    Ne !== n && (u = Bn(u, Ne));
                  }
                }
              }
            } else if (x.kind === 166 && x.dotDotDotToken || x.kind === 188 || x.kind === 199 && x.dotDotDotToken)
              u = Bn(u, xu(he));
            else if (x.kind === 201)
              u = Bn(u, ue);
            else if (x.kind === 165 && x.parent.kind === 197)
              u = Bn(u, Gi);
            else if (x.kind === 197 && x.type && Gs(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 = ui(R.type);
              u = Bn(u, Ji(M, Gb(LE(Ir(R.typeParameter)), R.typeParameter.constraint ? ui(R.typeParameter.constraint) : Gi)));
            }
          }
      }
      return u && Io(u);
    }
    function bL(n) {
      if (!n.constraint)
        if (n.target) {
          const a = Tu(n.target);
          n.constraint = a ? Ji(a, n.mapper) : Jo;
        } else {
          const a = Nre(n);
          if (!a)
            n.constraint = GAe(n) || Jo;
          else {
            let c = ui(a);
            c.flags & 1 && !Zo(c) && (c = a.parent.parent.kind === 197 ? Gi : he), n.constraint = c;
          }
        }
      return n.constraint === Jo ? void 0 : n.constraint;
    }
    function UAe(n) {
      const a = Sc(n.symbol, 165), c = yp(a.parent) ? u3(a.parent) : a.parent;
      return c && qd(c);
    }
    function n_(n) {
      let a = "";
      if (n) {
        const c = n.length;
        let u = 0;
        for (; u < c; ) {
          const p = n[u].id;
          let g = 1;
          for (; u + g < c && n[u + g].id === p + g; )
            g++;
          a.length && (a += ","), a += p, g > 1 && (a += ":" + g), u += g;
        }
      }
      return a;
    }
    function M2(n, a) {
      return n ? `@${yo(n)}` + (a ? `:${n_(a)}` : "") : "";
    }
    function fU(n, a) {
      let c = 0;
      for (const u of n)
        (a === void 0 || !(u.flags & a)) && (c |= Zr(u));
      return c & 458752;
    }
    function F2(n, a) {
      return kt(a) && n === xo ? he : Wg(n, a);
    }
    function Wg(n, a) {
      const c = n_(a);
      let u = n.instantiations.get(c);
      return u || (u = _f(4, n.symbol), n.instantiations.set(c, u), u.objectFlags |= a ? fU(a) : 0, u.target = n, u.resolvedTypeArguments = a), u;
    }
    function VAe(n) {
      const a = lm(n.flags, n.symbol);
      return a.objectFlags = n.objectFlags, a.target = n.target, a.resolvedTypeArguments = n.resolvedTypeArguments, a;
    }
    function Ore(n, a, c, u, p) {
      if (!u) {
        u = TS(a);
        const x = V2(u);
        p = c ? Jg(x, c) : x;
      }
      const g = _f(4, n.symbol);
      return g.target = n, g.node = a, g.mapper = c, g.aliasSymbol = u, g.aliasTypeArguments = p, g;
    }
    function _s(n) {
      var a, c;
      if (!n.resolvedTypeArguments) {
        if (!Of(n, 6))
          return ((a = n.target.localTypeParameters) == null ? void 0 : a.map(() => xe)) || rt;
        const u = n.node, p = u ? u.kind === 180 ? ma(n.target.outerTypeParameters, xV(u, n.target.localTypeParameters)) : u.kind === 185 ? [ui(u.elementType)] : en(u.elements, ui) : rt;
        e_() ? n.resolvedTypeArguments = n.mapper ? Jg(p, n.mapper) : p : (n.resolvedTypeArguments = ((c = n.target.localTypeParameters) == null ? void 0 : c.map(() => xe)) || rt, Je(n.node || B, 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 b0(n) {
      return Ie(n.target.typeParameters);
    }
    function jAe(n, a) {
      const c = Fs(ns(a)), u = c.localTypeParameters;
      if (u) {
        const p = Ie(n.typeArguments), g = _m(u), x = fr(n);
        if (!(!Te && x) && (p < g || p > u.length)) {
          const J = x && by(n) && !xC(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 = Le(c, void 0, 2);
          if (Je(n, $, ge, g, u.length), !x)
            return xe;
        }
        if (n.kind === 180 && sCe(n, Ie(n.typeArguments) !== u.length))
          return Ore(c, n, void 0);
        const M = ma(c.outerTypeParameters, nv(gP(n), u, g, x));
        return Wg(c, M);
      }
      return Ob(n, a) ? c : xe;
    }
    function B2(n, a, c, u) {
      const p = Fs(n);
      if (p === re && m8.has(n.escapedName) && a && a.length === 1)
        return ES(n, a[0]);
      const g = Vi(n), x = g.typeParameters, R = n_(a) + M2(c, u);
      let M = g.instantiations.get(R);
      return M || g.instantiations.set(R, M = jCe(p, hd(x, nv(a, x, _m(x), fr(n.valueDeclaration))), c, u)), M;
    }
    function $Ye(n, a) {
      if (Cc(a) & 1048576) {
        const p = gP(n), g = M2(a, p);
        let x = Vr.get(g);
        return x || (x = Kc(1, "error"), x.aliasSymbol = a, x.aliasTypeArguments = p, Vr.set(g, x)), x;
      }
      const c = Fs(a), u = Vi(a).typeParameters;
      if (u) {
        const p = Ie(n.typeArguments), g = _m(u);
        if (p < g || p > u.length)
          return Je(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), xe;
        const x = TS(n);
        let R = x && (HAe(a) || !HAe(x)) ? x : void 0, M;
        if (R)
          M = V2(R);
        else if (DM(n)) {
          const J = G2(n, 2097152, !0);
          if (J && J !== nn) {
            const $ = Zc(J);
            $ && $.flags & 524288 && (R = $, M = gP(n) || (u ? [] : void 0));
          }
        }
        return B2(a, gP(n), R, M);
      }
      return Ob(n, a) ? c : xe;
    }
    function HAe(n) {
      var a;
      const c = (a = n.declarations) == null ? void 0 : a.find(vN);
      return !!(c && Tf(c));
    }
    function QYe(n) {
      switch (n.kind) {
        case 180:
          return n.typeName;
        case 230:
          const a = n.expression;
          if (jc(a))
            return a;
      }
    }
    function WAe(n) {
      return n.parent ? `${WAe(n.parent)}.${n.escapedName}` : n.escapedName;
    }
    function _U(n) {
      const c = (n.kind === 163 ? n.right : n.kind === 208 ? n.name : n).escapedText;
      if (c) {
        const u = n.kind === 163 ? _U(n.left) : n.kind === 208 ? _U(n.expression) : void 0, p = u ? `${WAe(u)}.${c}` : c;
        let g = Ar.get(p);
        return g || (Ar.set(p, g = Qo(524288, c, 1048576)), g.parent = u, g.links.declaredType = _t), g;
      }
      return nn;
    }
    function G2(n, a, c) {
      const u = QYe(n);
      if (!u)
        return nn;
      const p = Dc(u, a, c);
      return p && p !== nn ? p : c ? nn : _U(u);
    }
    function pU(n, a) {
      if (a === nn)
        return xe;
      if (a = o0(a) || a, a.flags & 96)
        return jAe(n, a);
      if (a.flags & 524288)
        return $Ye(n, a);
      const c = dAe(a);
      if (c)
        return Ob(n, a) ? md(c) : xe;
      if (a.flags & 111551 && mU(n)) {
        const u = ZYe(n, a);
        return u || (G2(n, 788968), or(a));
      }
      return xe;
    }
    function ZYe(n, a) {
      const c = zr(n);
      if (!c.resolvedJSDocType) {
        const u = or(a);
        let p = u;
        if (a.valueDeclaration) {
          const g = n.kind === 202 && n.qualifier;
          u.symbol && u.symbol !== a && g && (p = pU(n, u.symbol));
        }
        c.resolvedJSDocType = p;
      }
      return c.resolvedJSDocType;
    }
    function Pre(n, a) {
      if (a.flags & 3 || a === n || n.flags & 1)
        return n;
      const c = `${Au(n)}>${Au(a)}`, u = Ht.get(c);
      if (u)
        return u;
      const p = Gh(33554432);
      return p.baseType = n, p.constraint = a, Ht.set(c, p), p;
    }
    function Mre(n) {
      return Io([n.constraint, n.baseType]);
    }
    function zAe(n) {
      return n.kind === 186 && n.elements.length === 1;
    }
    function qAe(n, a, c) {
      return zAe(a) && zAe(c) ? qAe(n, a.elements[0], c.elements[0]) : av(ui(a)) === av(n) ? ui(c) : void 0;
    }
    function e$e(n, a) {
      let c, u = !0;
      for (; a && !Ca(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 = qAe(n, p.checkType, p.extendsType);
          g && (c = Bn(c, g));
        } else if (n.flags & 262144 && p.kind === 197 && a === p.type) {
          const g = ui(p);
          if (op(g) === av(n)) {
            const x = oie(g);
            if (x) {
              const R = Tu(x);
              R && ah(R, NE) && (c = Bn(c, Yr([pt, no])));
            }
          }
        }
        a = p;
      }
      return c ? Pre(n, Io(c)) : n;
    }
    function mU(n) {
      return !!(n.flags & 8388608) && (n.kind === 180 || n.kind === 202);
    }
    function Ob(n, a) {
      return n.typeArguments ? (Je(n, _.Type_0_is_not_generic, a ? S(a) : n.typeName ? Ls(n.typeName) : p8), !1) : !0;
    }
    function JAe(n) {
      if (Ve(n.typeName)) {
        const a = n.typeArguments;
        switch (n.typeName.escapedText) {
          case "String":
            return Ob(n), ue;
          case "Number":
            return Ob(n), pt;
          case "Boolean":
            return Ob(n), Re;
          case "Void":
            return Ob(n), Rt;
          case "Undefined":
            return Ob(n), je;
          case "Null":
            return Ob(n), Sn;
          case "Function":
          case "function":
            return Ob(n), uc;
          case "array":
            return (!a || !a.length) && !Te ? Dt : void 0;
          case "promise":
            return (!a || !a.length) && !Te ? e4(ke) : void 0;
          case "Object":
            if (a && a.length === 2) {
              if (i3(n)) {
                const c = ui(a[0]), u = ui(a[1]), p = c === ue || c === pt ? [pm(c, u, !1)] : rt;
                return ws(void 0, te, rt, rt, p);
              }
              return ke;
            }
            return Ob(n), Te ? void 0 : ke;
        }
      }
    }
    function t$e(n) {
      const a = ui(n.type);
      return W ? UU(a, 65536) : a;
    }
    function Fre(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        if (rg(n) && iT(n.parent))
          return a.resolvedSymbol = nn, a.resolvedType = Xc(n.parent.expression);
        let c, u;
        const p = 788968;
        mU(n) && (u = JAe(n), u || (c = G2(n, p, !0), c === nn ? c = G2(n, p | 111551) : G2(n, p), u = pU(n, c))), u || (c = G2(n, p), u = pU(n, c)), a.resolvedSymbol = c, a.resolvedType = u;
      }
      return a.resolvedType;
    }
    function gP(n) {
      return en(n.typeArguments, ui);
    }
    function KAe(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        const c = uke(n);
        a.resolvedType = md(Yd(c));
      }
      return a.resolvedType;
    }
    function XAe(n, a) {
      function c(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 ? xo : ua;
      const u = Fs(n);
      return u.flags & 524288 ? Ie(u.typeParameters) !== a ? (Je(c(n), _.Global_type_0_must_have_1_type_parameter_s, Oc(n), a), a ? xo : ua) : u : (Je(c(n), _.Global_type_0_must_be_a_class_or_interface_type, Oc(n)), a ? xo : ua);
    }
    function Bre(n, a) {
      return sD(n, 111551, a ? _.Cannot_find_global_value_0 : void 0);
    }
    function YAe(n, a) {
      return sD(n, 788968, a ? _.Cannot_find_global_type_0 : void 0);
    }
    function hU(n, a, c) {
      const u = sD(n, 788968, c ? _.Cannot_find_global_type_0 : void 0);
      if (u && (Fs(u), Ie(Vi(u).typeParameters) !== a)) {
        const p = u.declarations && cn(u.declarations, Qp);
        Je(p, _.Global_type_0_must_have_1_type_parameter_s, Oc(u), a);
        return;
      }
      return u;
    }
    function sD(n, a, c) {
      return fc(void 0, n, a, c, n, !1, !1, !1);
    }
    function al(n, a, c) {
      const u = YAe(n, c);
      return u || c ? XAe(u, a) : void 0;
    }
    function n$e() {
      return Pt || (Pt = al("TypedPropertyDescriptor", 1, !0) || xo);
    }
    function r$e() {
      return uf || (uf = al("TemplateStringsArray", 0, !0) || ua);
    }
    function $Ae() {
      return b_ || (b_ = al("ImportMeta", 0, !0) || ua);
    }
    function QAe() {
      if (!Ko) {
        const n = Qo(0, "ImportMetaExpression"), a = $Ae(), c = Qo(4, "meta", 8);
        c.parent = n, c.links.type = a;
        const u = ao([c]);
        n.members = u, Ko = ws(n, u, rt, rt, rt);
      }
      return Ko;
    }
    function ZAe(n) {
      return E_ || (E_ = al("ImportCallOptions", 0, n)) || ua;
    }
    function eCe(n) {
      return ae || (ae = Bre("Symbol", n));
    }
    function i$e(n) {
      return lt || (lt = YAe("SymbolConstructor", n));
    }
    function tCe() {
      return Mt || (Mt = al("Symbol", 0, !1)) || ua;
    }
    function yP(n) {
      return un || (un = al("Promise", 1, n)) || xo;
    }
    function nCe(n) {
      return jn || (jn = al("PromiseLike", 1, n)) || xo;
    }
    function Gre(n) {
      return Dr || (Dr = Bre("Promise", n));
    }
    function a$e(n) {
      return ei || (ei = al("PromiseConstructorLike", 0, n)) || ua;
    }
    function gU(n) {
      return lf || (lf = al("AsyncIterable", 1, n)) || xo;
    }
    function o$e(n) {
      return Qc || (Qc = al("AsyncIterator", 3, n)) || xo;
    }
    function s$e(n) {
      return Wd || (Wd = al("AsyncIterableIterator", 1, n)) || xo;
    }
    function c$e(n) {
      return Eu || (Eu = al("AsyncGenerator", 3, n)) || xo;
    }
    function Ure(n) {
      return Oi || (Oi = al("Iterable", 1, n)) || xo;
    }
    function l$e(n) {
      return Ga || (Ga = al("Iterator", 3, n)) || xo;
    }
    function u$e(n) {
      return Vo || (Vo = al("IterableIterator", 1, n)) || xo;
    }
    function d$e(n) {
      return vs || (vs = al("Generator", 3, n)) || xo;
    }
    function f$e(n) {
      return qs || (qs = al("IteratorYieldResult", 1, n)) || xo;
    }
    function _$e(n) {
      return dd || (dd = al("IteratorReturnResult", 1, n)) || xo;
    }
    function rCe(n, a = 0) {
      const c = sD(n, 788968, void 0);
      return c && XAe(c, a);
    }
    function p$e() {
      return df || (df = hU("Extract", 2, !0) || nn), df === nn ? void 0 : df;
    }
    function m$e() {
      return Y_ || (Y_ = hU("Omit", 2, !0) || nn), Y_ === nn ? void 0 : Y_;
    }
    function Vre(n) {
      return Ap || (Ap = hU("Awaited", 1, n) || (n ? nn : void 0)), Ap === nn ? void 0 : Ap;
    }
    function h$e() {
      return G || (G = al("BigInt", 0, !1)) || ua;
    }
    function g$e(n) {
      var a;
      return (a = $n ?? ($n = al("ClassDecoratorContext", 1, n))) != null ? a : xo;
    }
    function y$e(n) {
      var a;
      return (a = La ?? (La = al("ClassMethodDecoratorContext", 2, n))) != null ? a : xo;
    }
    function v$e(n) {
      var a;
      return (a = xa ?? (xa = al("ClassGetterDecoratorContext", 2, n))) != null ? a : xo;
    }
    function b$e(n) {
      var a;
      return (a = Ce ?? (Ce = al("ClassSetterDecoratorContext", 2, n))) != null ? a : xo;
    }
    function E$e(n) {
      var a;
      return (a = Ge ?? (Ge = al("ClassAccessorDecoratorContext", 2, n))) != null ? a : xo;
    }
    function T$e(n) {
      var a;
      return (a = Lt ?? (Lt = al("ClassAccessorDecoratorTarget", 2, n))) != null ? a : xo;
    }
    function S$e(n) {
      var a;
      return (a = Ot ?? (Ot = al("ClassAccessorDecoratorResult", 2, n))) != null ? a : xo;
    }
    function x$e(n) {
      var a;
      return (a = mn ?? (mn = al("ClassFieldDecoratorContext", 2, n))) != null ? a : xo;
    }
    function A$e() {
      return Ze || (Ze = Bre("NaN", !1));
    }
    function C$e() {
      return zt || (zt = hU("Record", 2, !0) || nn), zt === nn ? void 0 : zt;
    }
    function cD(n, a) {
      return n !== xo ? Wg(n, a) : ua;
    }
    function iCe(n) {
      return cD(n$e(), [n]);
    }
    function aCe(n) {
      return cD(Ure(!0), [n]);
    }
    function xu(n, a) {
      return cD(a ? cs : ys, [n]);
    }
    function jre(n) {
      switch (n.kind) {
        case 187:
          return 2;
        case 188:
          return oCe(n);
        case 199:
          return n.questionToken ? 2 : n.dotDotDotToken ? oCe(n) : 1;
        default:
          return 1;
      }
    }
    function oCe(n) {
      return TP(n.type) ? 4 : 8;
    }
    function L$e(n) {
      const a = k$e(n.parent);
      if (TP(n))
        return a ? cs : ys;
      const u = en(n.elements, jre), p = kt(n.elements, (g) => g.kind !== 199);
      return Hre(u, a, p ? void 0 : n.elements);
    }
    function sCe(n, a) {
      return !!TS(n) || cCe(n) && (n.kind === 185 ? rv(n.elementType) : n.kind === 186 ? kt(n.elements, rv) : a || kt(n.typeArguments, rv));
    }
    function cCe(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 cCe(a);
        case 262:
          return !0;
      }
      return !1;
    }
    function rv(n) {
      switch (n.kind) {
        case 180:
          return mU(n) || !!(G2(n, 788968).flags & 524288);
        case 183:
          return !0;
        case 195:
          return n.operator !== 156 && rv(n.type);
        case 193:
        case 187:
        case 199:
        case 319:
        case 317:
        case 318:
        case 312:
          return rv(n.type);
        case 188:
          return n.type.kind !== 185 || rv(n.type.elementType);
        case 189:
        case 190:
          return kt(n.types, rv);
        case 196:
          return rv(n.objectType) || rv(n.indexType);
        case 191:
          return rv(n.checkType) || rv(n.extendsType) || rv(n.trueType) || rv(n.falseType);
      }
      return !1;
    }
    function I$e(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        const c = L$e(n);
        if (c === xo)
          a.resolvedType = ua;
        else if (!(n.kind === 186 && kt(n.elements, (u) => !!(jre(u) & 8))) && sCe(n))
          a.resolvedType = n.kind === 186 && n.elements.length === 0 ? c : Ore(c, n, void 0);
        else {
          const u = n.kind === 185 ? [ui(n.elementType)] : en(n.elements, ui);
          a.resolvedType = Wre(c, u);
        }
      }
      return a.resolvedType;
    }
    function k$e(n) {
      return xx(n) && n.operator === 146;
    }
    function Op(n, a, c = !1, u) {
      const p = Hre(a || en(n, (g) => 1), c, u);
      return p === xo ? ua : n.length ? Wre(p, n) : p;
    }
    function Hre(n, a, c) {
      if (n.length === 1 && n[0] & 4)
        return a ? cs : ys;
      const u = en(n, (g) => g & 1 ? "#" : g & 2 ? "?" : g & 4 ? "." : "*").join() + (a ? "R" : "") + (c && c.length ? "," + en(c, ds).join(",") : "");
      let p = Wn.get(u);
      return p || Wn.set(u, p = w$e(n, a, c)), p;
    }
    function w$e(n, a, c) {
      const u = n.length, p = Zi(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] = wd(), we = n[ge];
          if (R |= we, !(R & 12)) {
            const ft = Qo(4 | (we & 2 ? 16777216 : 0), "" + ge, a ? 8 : 0);
            ft.links.tupleLabelDeclaration = c == null ? void 0 : c[ge], ft.links.type = Ne, x.push(ft);
          }
        }
      }
      const M = x.length, J = Qo(4, "length", a ? 8 : 0);
      if (R & 12)
        J.links.type = pt;
      else {
        const ge = [];
        for (let Ne = p; Ne <= u; Ne++)
          ge.push(Pp(Ne));
        J.links.type = Yr(ge);
      }
      x.push(J);
      const $ = _f(12);
      return $.typeParameters = g, $.outerTypeParameters = void 0, $.localTypeParameters = g, $.instantiations = /* @__PURE__ */ new Map(), $.instantiations.set(n_($.typeParameters), $), $.target = $, $.resolvedTypeArguments = $.typeParameters, $.thisType = wd(), $.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 = c, $;
    }
    function Wre(n, a) {
      return n.objectFlags & 8 ? lCe(n, a) : Wg(n, a);
    }
    function lCe(n, a) {
      var c, u, p;
      if (!(n.combinedFlags & 14))
        return Wg(n, a);
      if (n.combinedFlags & 8) {
        const we = Qi(a, (ft, Bt) => !!(n.elementFlags[Bt] & 8 && ft.flags & 1179648));
        if (we >= 0)
          return bP(en(a, (ft, Bt) => n.elementFlags[Bt] & 8 ? ft : he)) ? Ks(a[we], (ft) => lCe(n, fj(a, we, ft))) : xe;
      }
      const g = [], x = [];
      let R = [], M = -1, J = -1, $ = -1;
      for (let we = 0; we < a.length; we++) {
        const ft = a[we], Bt = n.elementFlags[we];
        if (Bt & 8)
          if (ft.flags & 58982400 || Ff(ft))
            Ne(ft, 8, (c = n.labeledElementDeclarations) == null ? void 0 : c[we]);
          else if (Po(ft)) {
            const Fn = _s(ft);
            if (Fn.length + g.length >= 1e4)
              return Je(B, mh(B) ? _.Type_produces_a_tuple_type_that_is_too_large_to_represent : _.Expression_produces_a_tuple_type_that_is_too_large_to_represent), xe;
            ze(Fn, (An, Yn) => {
              var hn;
              return Ne(An, ft.target.elementFlags[Yn], (hn = ft.target.labeledElementDeclarations) == null ? void 0 : hn[Yn]);
            });
          } else
            Ne(C0(ft) && Hg(ft, pt) || xe, 4, (u = n.labeledElementDeclarations) == null ? void 0 : u[we]);
        else
          Ne(ft, Bt, (p = n.labeledElementDeclarations) == null ? void 0 : p[we]);
      }
      for (let we = 0; we < M; we++)
        x[we] & 2 && (x[we] = 1);
      J >= 0 && J < $ && (g[J] = Yr(Zs(g.slice(J, $ + 1), (we, ft) => x[J + ft] & 8 ? Nd(we, pt) : we)), g.splice(J + 1, $ - J), x.splice(J + 1, $ - J), R == null || R.splice(J + 1, $ - J));
      const ge = Hre(x, n.readonly, R);
      return ge === xo ? ua : x.length ? Wg(ge, g) : ge;
      function Ne(we, ft, Bt) {
        ft & 1 && (M = x.length), ft & 4 && J < 0 && (J = x.length), ft & 6 && ($ = x.length), g.push(ft & 2 ? Co(we, !0) : we), x.push(ft), R && Bt ? R.push(Bt) : R = void 0;
      }
    }
    function EL(n, a, c = 0) {
      const u = n.target, p = b0(n) - c;
      return a > u.fixedLength ? gZe(n) || Op(rt) : Op(_s(n).slice(a, p), u.elementFlags.slice(a, p), !1, u.labeledElementDeclarations && u.labeledElementDeclarations.slice(a, p));
    }
    function uCe(n) {
      return Yr(Bn(fse(n.target.fixedLength, (a) => Bf("" + a)), mm(n.target.readonly ? cs : ys)));
    }
    function D$e(n, a) {
      const c = Qi(n.elementFlags, (u) => !(u & a));
      return c >= 0 ? c : n.elementFlags.length;
    }
    function vP(n, a) {
      return n.elementFlags.length - ts(n.elementFlags, (c) => !(c & a)) - 1;
    }
    function R$e(n) {
      return Co(ui(n.type), !0);
    }
    function Au(n) {
      return n.id;
    }
    function Pb(n, a) {
      return pv(n, a, Au, Vs) >= 0;
    }
    function zre(n, a) {
      const c = pv(n, a, Au, Vs);
      return c < 0 ? (n.splice(~c, 0, a), !0) : !1;
    }
    function N$e(n, a, c) {
      const u = c.flags;
      if (u & 1048576)
        return dCe(n, a | (F$e(c) ? 1048576 : 0), c.types);
      if (!(u & 131072))
        if (a |= u & 205258751, u & 465829888 && (a |= 33554432), c === Nt && (a |= 8388608), !W && u & 98304)
          Zr(c) & 65536 || (a |= 4194304);
        else {
          const p = n.length, g = p && c.id > n[p - 1].id ? ~p : pv(n, c, Au, Vs);
          g < 0 && n.splice(~g, 0, c);
        }
      return a;
    }
    function dCe(n, a, c) {
      for (const u of c)
        a = N$e(n, a, u);
      return a;
    }
    function O$e(n, a) {
      var c;
      if (n.length < 2)
        return n;
      const u = n_(n), p = dn.get(u);
      if (p)
        return p;
      const g = a && kt(n, (J) => !!(J.flags & 524288) && !Ff(J) && _ie(sp(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 ? cn(fs(J), (Ne) => lp(or(Ne))) : void 0, ge = $ && md(or($));
          for (const Ne of n)
            if (J !== Ne) {
              if (M === 1e5 && M / (x - R) * x > 1e6) {
                (c = yi) == null || c.instant(yi.Phase.CheckTypes, "removeSubtypes_DepthLimit", { typeIds: n.map((ft) => ft.id) }), Je(B, _.Expression_produces_a_union_type_that_is_too_complex_to_represent);
                return;
              }
              if (M++, $ && Ne.flags & 61603840) {
                const we = ul(Ne, $.escapedName);
                if (we && lp(we) && md(we) !== ge)
                  continue;
              }
              if (hm(J, Ne, Z_) && (!(Zr(D2(J)) & 1) || !(Zr(D2(Ne)) & 1) || Ub(J, Ne))) {
                a1(n, R);
                break;
              }
            }
        }
      }
      return dn.set(u, n), n;
    }
    function P$e(n, a, c) {
      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 || c && g & 32768 && a & 16384 || Bb(p) && Pb(n, p.regularType)) && a1(n, u);
      }
    }
    function M$e(n) {
      const a = yn(n, (c) => !!(c.flags & 134217728) && U2(c));
      if (a.length) {
        let c = n.length;
        for (; c > 0; ) {
          c--;
          const u = n[c];
          u.flags & 128 && kt(a, (p) => Gie(u, p)) && a1(n, c);
        }
      }
    }
    function F$e(n) {
      return !!(n.flags & 1048576 && (n.aliasSymbol || n.origin));
    }
    function fCe(n, a) {
      for (const c of a)
        if (c.flags & 1048576) {
          const u = c.origin;
          c.aliasSymbol || u && !(u.flags & 1048576) ? c_(n, c) : u && u.flags & 1048576 && fCe(n, u.types);
        }
    }
    function qre(n, a) {
      const c = yS(n);
      return c.types = a, c;
    }
    function Yr(n, a = 1, c, u, p) {
      if (n.length === 0)
        return ht;
      if (n.length === 1)
        return n[0];
      let g = [];
      const x = dCe(g, 0, n);
      if (a !== 0) {
        if (x & 3)
          return x & 1 ? x & 8388608 ? Nt : ke : x & 65536 || Pb(g, he) ? he : j;
        if (x & 32768 && g.length >= 2 && g[0] === je && g[1] === Ke && a1(g, 1), (x & 402664352 || x & 16384 && x & 32768) && P$e(g, x, !!(a & 2)), x & 128 && x & 134217728 && M$e(g), a === 2 && (g = O$e(g, !!(x & 524288)), !g))
          return xe;
        if (g.length === 0)
          return x & 65536 ? x & 4194304 ? Sn : Er : x & 32768 ? x & 4194304 ? je : Qe : ht;
      }
      if (!p && x & 1048576) {
        const M = [];
        fCe(M, n);
        const J = [];
        for (const ge of g)
          kt(M, (Ne) => Pb(Ne.types, ge)) || J.push(ge);
        if (!c && M.length === 1 && J.length === 0)
          return M[0];
        if (Iu(M, (ge, Ne) => ge + Ne.types.length, 0) + J.length === g.length) {
          for (const ge of M)
            zre(J, ge);
          p = qre(1048576, J);
        }
      }
      const R = (x & 36323363 ? 0 : 32768) | (x & 2097152 ? 16777216 : 0);
      return Kre(g, R, c, u, p);
    }
    function B$e(n, a) {
      let c;
      const u = [];
      for (const g of n) {
        const x = t_(g);
        if (!x || x.kind === 2 || x.kind === 3) {
          if (a !== 2097152)
            continue;
          return;
        }
        if (c) {
          if (!Jre(c, x))
            return;
        } else
          c = x;
        u.push(x.type);
      }
      if (!c)
        return;
      const p = PAe(u, a);
      return hP(c.kind, c.parameterName, c.parameterIndex, p);
    }
    function Jre(n, a) {
      return n.kind === a.kind && n.parameterIndex === a.parameterIndex;
    }
    function Kre(n, a, c, u, p) {
      if (n.length === 0)
        return ht;
      if (n.length === 1)
        return n[0];
      const x = (p ? p.flags & 1048576 ? `|${n_(p.types)}` : p.flags & 2097152 ? `&${n_(p.types)}` : `#${p.type.id}|${n_(n)}` : n_(n)) + M2(c, u);
      let R = In.get(x);
      return R || (R = Gh(1048576), R.objectFlags = a | fU(n, 98304), R.types = n, R.origin = p, R.aliasSymbol = c, 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 G$e(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        const c = TS(n);
        a.resolvedType = Yr(en(n.types, ui), 1, c, V2(c));
      }
      return a.resolvedType;
    }
    function U$e(n, a, c) {
      const u = c.flags;
      return u & 2097152 ? _Ce(n, a, c.types) : (Jh(c) ? a & 16777216 || (a |= 16777216, n.set(c.id.toString(), c)) : (u & 3 ? c === Nt && (a |= 8388608) : (W || !(u & 98304)) && (c === Ke && (a |= 262144, c = je), n.has(c.id.toString()) || (c.flags & 109472 && a & 109472 && (a |= 67108864), n.set(c.id.toString(), c))), a |= u & 205258751), a);
    }
    function _Ce(n, a, c) {
      for (const u of c)
        a = U$e(n, a, md(u));
      return a;
    }
    function V$e(n, a) {
      let c = n.length;
      for (; c > 0; ) {
        c--;
        const u = n[c];
        (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 || Jh(u) && a & 470302716) && a1(n, c);
      }
    }
    function j$e(n, a) {
      for (const c of n)
        if (!Pb(c.types, a)) {
          const u = a.flags & 128 ? ue : a.flags & 256 ? pt : a.flags & 2048 ? Wt : a.flags & 8192 ? q : void 0;
          if (!u || !Pb(c.types, u))
            return !1;
        }
      return !0;
    }
    function H$e(n) {
      let a = n.length;
      const c = yn(n, (u) => !!(u.flags & 128));
      for (; a > 0; ) {
        a--;
        const u = n[a];
        if (u.flags & 134217728) {
          for (const p of c)
            if (ov(p, u)) {
              a1(n, a);
              break;
            } else if (U2(u))
              return !0;
        }
      }
      return !1;
    }
    function pCe(n, a) {
      return Rn(n, (c) => !!(c.flags & 1048576) && kt(c.types, (u) => !!(u.flags & a)));
    }
    function mCe(n, a) {
      for (let c = 0; c < n.length; c++)
        n[c] = dl(n[c], (u) => !(u.flags & a));
    }
    function W$e(n) {
      let a;
      const c = Qi(n, (x) => !!(Zr(x) & 32768));
      if (c < 0)
        return !1;
      let u = c + 1;
      for (; u < n.length; ) {
        const x = n[u];
        Zr(x) & 32768 ? ((a || (a = [n[c]])).push(x), a1(n, u)) : u++;
      }
      if (!a)
        return !1;
      const p = [], g = [];
      for (const x of a)
        for (const R of x.types)
          zre(p, R) && j$e(a, R) && zre(g, R);
      return n[c] = Kre(g, 32768), !0;
    }
    function z$e(n, a, c) {
      const u = Gh(2097152);
      return u.objectFlags = fU(n, 98304), u.types = n, u.aliasSymbol = a, u.aliasTypeArguments = c, u;
    }
    function Io(n, a, c, u) {
      const p = /* @__PURE__ */ new Map(), g = _Ce(p, 0, n), x = Do(p.values());
      if (g & 131072)
        return wi(x, dt) ? dt : ht;
      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 && H$e(x))
        return ht;
      if (g & 1)
        return g & 8388608 ? Nt : ke;
      if (!W && g & 98304)
        return g & 16777216 ? ht : g & 32768 ? je : 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 || V$e(x, g)), g & 262144 && (x[x.indexOf(je)] = Ke), x.length === 0)
        return he;
      if (x.length === 1)
        return x[0];
      const R = n_(x) + M2(a, c);
      let M = Yt.get(R);
      if (!M) {
        if (g & 1048576)
          if (W$e(x))
            M = Io(x, a, c);
          else if (pCe(x, 32768)) {
            const J = kt(x, gD) ? Ke : je;
            mCe(x, 32768), M = Yr([Io(x), J], 1, a, c);
          } else if (pCe(x, 65536))
            mCe(x, 65536), M = Yr([Io(x), Sn], 1, a, c);
          else {
            if (!bP(x))
              return xe;
            const J = q$e(x), $ = kt(J, (ge) => !!(ge.flags & 2097152)) && Xre(J) > Xre(x) ? qre(2097152, x) : void 0;
            M = Yr(J, 1, a, c, $);
          }
        else
          M = z$e(x, a, c);
        Yt.set(R, M);
      }
      return M;
    }
    function hCe(n) {
      return Iu(n, (a, c) => c.flags & 1048576 ? a * c.types.length : c.flags & 131072 ? 0 : a, 1);
    }
    function bP(n) {
      var a;
      const c = hCe(n);
      return c >= 1e5 ? ((a = yi) == null || a.instant(yi.Phase.CheckTypes, "checkCrossProductUnion_DepthLimit", { typeIds: n.map((u) => u.id), size: c }), Je(B, _.Expression_produces_a_union_type_that_is_too_complex_to_represent), !1) : !0;
    }
    function q$e(n) {
      const a = hCe(n), c = [];
      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 = Io(p);
        x.flags & 131072 || c.push(x);
      }
      return c;
    }
    function gCe(n) {
      return !(n.flags & 3145728) || n.aliasSymbol ? 1 : n.flags & 1048576 && n.origin ? gCe(n.origin) : Xre(n.types);
    }
    function Xre(n) {
      return Iu(n, (a, c) => a + gCe(c), 0);
    }
    function J$e(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        const c = TS(n), u = en(n.types, ui), p = u.length === 2 && !!(u[0].flags & 76) && u[1] === Fc;
        a.resolvedType = Io(u, c, V2(c), p);
      }
      return a.resolvedType;
    }
    function yCe(n, a) {
      const c = Gh(4194304);
      return c.type = n, c.stringsOnly = a, c;
    }
    function K$e(n) {
      const a = yS(4194304);
      return a.type = n, a;
    }
    function vCe(n, a) {
      return a ? n.resolvedStringIndexType || (n.resolvedStringIndexType = yCe(n, !0)) : n.resolvedIndexType || (n.resolvedIndexType = yCe(n, !1));
    }
    function X$e(n, a, c) {
      const u = op(n), p = Rp(n), g = Zy(n.target || n);
      if (!g && !c)
        return p;
      const x = [];
      if (tD(n)) {
        if (E0(p))
          return vCe(n, a);
        {
          const J = Hu(yL(n));
          fre(J, 8576, a, M);
        }
      } else
        GE(dP(p), M);
      E0(p) && GE(p, M);
      const R = c ? dl(Yr(x), (J) => !(J.flags & 5)) : Yr(x);
      if (R.flags & 1048576 && p.flags & 1048576 && n_(R.types) === n_(p.types))
        return p;
      return R;
      function M(J) {
        const $ = g ? Ji(g, dD(n.mapper, u, J)) : J;
        x.push($ === ue ? Si : $);
      }
    }
    function Y$e(n) {
      const a = op(n);
      return c(Zy(n) || a);
      function c(u) {
        return u.flags & 202375167 ? !0 : u.flags & 16777216 ? u.root.isDistributive && u.checkType === a : u.flags & 137363456 ? Rn(u.types, c) : u.flags & 8388608 ? c(u.objectType) && c(u.indexType) : u.flags & 33554432 ? c(u.baseType) && c(u.constraint) : u.flags & 268435456 ? c(u.type) : !1;
      }
    }
    function zg(n) {
      return Di(n) ? ht : Ve(n) ? Bf(ta(n.escapedText)) : md(Ts(n) ? Yg(n) : pa(n));
    }
    function TL(n, a, c) {
      if (c || !(Kf(n) & 24)) {
        let u = Vi(lU(n)).nameType;
        if (!u) {
          const p = Aa(n.valueDeclaration);
          u = n.escapedName === "default" ? Bf("default") : p && zg(p) || (kN(n) ? void 0 : Bf(Oc(n)));
        }
        if (u && u.flags & a)
          return u;
      }
      return ht;
    }
    function bCe(n, a) {
      return !!(n.flags & a || n.flags & 2097152 && kt(n.types, (c) => bCe(c, a)));
    }
    function $$e(n, a, c) {
      const u = c && (Zr(n) & 7 || n.aliasSymbol) ? K$e(n) : void 0, p = en(fs(n), (x) => TL(x, a)), g = en(Su(n), (x) => x !== Uu && bCe(x.keyType, a) ? x.keyType === ue && a & 8 ? Si : x.keyType : ht);
      return Yr(ma(p, g), 1, void 0, void 0, u);
    }
    function Q$e(n) {
      const a = OQe(n);
      return cp(a) !== a;
    }
    function ECe(n) {
      return !!(n.flags & 58982400 || W2(n) || Ff(n) && !Y$e(n) || n.flags & 1048576 && kt(n.types, Q$e) || n.flags & 2097152 && _c(n, 465829888) && kt(n.types, Jh));
    }
    function mm(n, a = Ue, c) {
      return n = cp(n), ECe(n) ? vCe(n, a) : n.flags & 1048576 ? Io(en(n.types, (u) => mm(u, a, c))) : n.flags & 2097152 ? Yr(en(n.types, (u) => mm(u, a, c))) : Zr(n) & 32 ? X$e(n, a, c) : n === Nt ? Nt : n.flags & 2 ? ht : n.flags & 131073 ? Gi : $$e(n, (c ? 128 : 402653316) | (a ? 0 : 12584), a === Ue && !c);
    }
    function TCe(n) {
      if (Ue)
        return n;
      const a = p$e();
      return a ? B2(a, [n, ue]) : ue;
    }
    function Z$e(n) {
      const a = TCe(mm(n));
      return a.flags & 131072 ? ue : a;
    }
    function eQe(n) {
      const a = zr(n);
      if (!a.resolvedType)
        switch (n.operator) {
          case 141:
            a.resolvedType = mm(ui(n.type));
            break;
          case 156:
            a.resolvedType = n.type.kind === 153 ? rie(SN(n.parent)) : xe;
            break;
          case 146:
            a.resolvedType = ui(n.type);
            break;
          default:
            throw D.assertNever(n.operator);
        }
      return a.resolvedType;
    }
    function tQe(n) {
      const a = zr(n);
      return a.resolvedType || (a.resolvedType = DE([n.head.text, ...en(n.templateSpans, (c) => c.literal.text)], en(n.templateSpans, (c) => ui(c.type)))), a.resolvedType;
    }
    function DE(n, a) {
      const c = Qi(a, (J) => !!(J.flags & 1179648));
      if (c >= 0)
        return bP(a) ? Ks(a[c], (J) => DE(n, fj(a, c, J))) : xe;
      if (wi(a, Nt))
        return Nt;
      const u = [], p = [];
      let g = n[0];
      if (!M(n, a))
        return ue;
      if (u.length === 0)
        return Bf(g);
      if (p.push(g), Rn(p, (J) => J === "")) {
        if (Rn(u, (J) => !!(J.flags & 4)))
          return ue;
        if (u.length === 1 && U2(u[0]))
          return u[0];
      }
      const x = `${n_(u)}|${en(p, (J) => J.length).join(",")}|${p.join("")}`;
      let R = At.get(x);
      return R || At.set(x, R = rQe(p, u)), R;
      function M(J, $) {
        const ge = Ba(J);
        for (let Ne = 0; Ne < $.length; Ne++) {
          const we = $[Ne], ft = ge ? J[Ne + 1] : J;
          if (we.flags & 101248) {
            if (g += nQe(we) || "", g += ft, !ge)
              return !0;
          } else if (we.flags & 134217728) {
            if (g += we.texts[0], !M(we.texts, we.types))
              return !1;
            if (g += ft, !ge)
              return !0;
          } else if (E0(we) || vU(we))
            u.push(we), p.push(g), g = ft;
          else if (we.flags & 2097152) {
            if (!M(J[Ne + 1], we.types))
              return !1;
          } else if (ge)
            return !1;
        }
        return !0;
      }
    }
    function nQe(n) {
      return n.flags & 128 ? n.value : n.flags & 256 ? "" + n.value : n.flags & 2048 ? k1(n.value) : n.flags & 98816 ? n.intrinsicName : void 0;
    }
    function rQe(n, a) {
      const c = Gh(134217728);
      return c.texts = n, c.types = a, c;
    }
    function ES(n, a) {
      return a.flags & 1179648 ? Ks(a, (c) => ES(n, c)) : a.flags & 128 ? Bf(SCe(n, a.value)) : a.flags & 134217728 ? DE(...iQe(n, a.texts, a.types)) : a.flags & 268435456 && n === a.symbol ? a : a.flags & 268435461 || E0(a) ? xCe(n, a) : vU(a) ? xCe(n, DE(["", ""], [a])) : a;
    }
    function SCe(n, a) {
      switch (m8.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 iQe(n, a, c) {
      switch (m8.get(n.escapedName)) {
        case 0:
          return [a.map((u) => u.toUpperCase()), c.map((u) => ES(n, u))];
        case 1:
          return [a.map((u) => u.toLowerCase()), c.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, c[0]), ...c.slice(1)] : c];
        case 3:
          return [a[0] === "" ? a : [a[0].charAt(0).toLowerCase() + a[0].slice(1), ...a.slice(1)], a[0] === "" ? [ES(n, c[0]), ...c.slice(1)] : c];
      }
      return [a, c];
    }
    function xCe(n, a) {
      const c = `${yo(n)},${Au(a)}`;
      let u = vn.get(c);
      return u || vn.set(c, u = aQe(n, a)), u;
    }
    function aQe(n, a) {
      const c = lm(268435456, n);
      return c.type = a, c;
    }
    function oQe(n, a, c, u, p) {
      const g = Gh(8388608);
      return g.objectType = n, g.indexType = a, g.accessFlags = c, g.aliasSymbol = u, g.aliasTypeArguments = p, g;
    }
    function lD(n) {
      if (Te)
        return !1;
      if (Zr(n) & 4096)
        return !0;
      if (n.flags & 1048576)
        return Rn(n.types, lD);
      if (n.flags & 2097152)
        return kt(n.types, lD);
      if (n.flags & 465829888) {
        const a = hre(n);
        return a !== n && lD(a);
      }
      return !1;
    }
    function yU(n, a) {
      return Hh(n) ? dm(n) : a && gc(a) ? S1(a) : void 0;
    }
    function Yre(n, a) {
      if (a.flags & 8208) {
        const c = rr(n.parent, (u) => !sc(u)) || n.parent;
        return XS(c) ? ig(c) && Ve(n) && RLe(c, n) : Rn(a.declarations, (u) => !qa(u) || !!(_p(u) & 268435456));
      }
      return !0;
    }
    function ACe(n, a, c, u, p, g) {
      var x;
      const R = p && p.kind === 209 ? p : void 0, M = p && Di(p) ? void 0 : yU(c, p);
      if (M !== void 0) {
        if (g & 256)
          return VE(a, M) || ke;
        const $ = so(a, M);
        if ($) {
          if (g & 64 && p && $.declarations && n0($) && Yre(p, $)) {
            const Ne = (x = R == null ? void 0 : R.argumentExpression) != null ? x : Ax(p) ? p.indexType : p;
            Cg(Ne, $.declarations, M);
          }
          if (R) {
            if (KP($, R, GIe(R.expression, a.symbol)), Ake(R, $, pT(R))) {
              Je(R.argumentExpression, _.Cannot_assign_to_0_because_it_is_a_read_only_property, S($));
              return;
            }
            if (g & 8 && (zr(p).resolvedSymbol = $), RIe(R, $))
              return gt;
          }
          const ge = or($);
          return R && pT(R) !== 1 ? k0(R, ge) : p && Ax(p) && gD(ge) ? Yr([ge, je]) : ge;
        }
        if (ah(a, Po) && Eh(M)) {
          const ge = +M;
          if (p && ah(a, (Ne) => !Ne.target.hasRestElement) && !(g & 16)) {
            const Ne = $re(p);
            if (Po(a)) {
              if (ge < 0)
                return Je(Ne, _.A_tuple_type_cannot_be_indexed_with_a_negative_value), je;
              Je(Ne, _.Tuple_type_0_of_length_1_has_no_element_at_index_2, Le(a), b0(a), ta(M));
            } else
              Je(Ne, _.Property_0_does_not_exist_on_type_1, ta(M), Le(a));
          }
          if (ge >= 0)
            return J(ih(a, pt)), Ks(a, (Ne) => {
              const we = RP(Ne) || je;
              return g & 1 ? Yr([we, Ke]) : we;
            });
        }
      }
      if (!(c.flags & 98304) && Nl(c, 402665900)) {
        if (a.flags & 131073)
          return a;
        const $ = mP(a, c) || ih(a, ue);
        if ($) {
          if (g & 2 && $.keyType !== pt) {
            R && Je(R, _.Type_0_cannot_be_used_to_index_type_1, Le(c), Le(n));
            return;
          }
          if (p && $.keyType === ue && !Nl(c, 12)) {
            const ge = $re(p);
            return Je(ge, _.Type_0_cannot_be_used_as_an_index_type, Le(c)), g & 1 ? Yr([$.type, Ke]) : $.type;
          }
          return J($), g & 1 && !(a.symbol && a.symbol.flags & 384 && c.symbol && c.flags & 1024 && pd(c.symbol) === a.symbol) ? Yr([$.type, Ke]) : $.type;
        }
        if (c.flags & 131072)
          return ht;
        if (lD(a))
          return ke;
        if (R && !jae(a)) {
          if (I0(a)) {
            if (Te && c.flags & 384)
              return Xo.add(Rr(R, _.Property_0_does_not_exist_on_type_1, c.value, Le(a))), je;
            if (c.flags & 12) {
              const ge = en(a.properties, (Ne) => or(Ne));
              return Yr(Bn(ge, je));
            }
          }
          if (a.symbol === st && M !== void 0 && st.exports.has(M) && st.exports.get(M).flags & 418)
            Je(R, _.Property_0_does_not_exist_on_type_1, ta(M), Le(a));
          else if (Te && !Y.suppressImplicitAnyIndexErrors && !(g & 128))
            if (M !== void 0 && MIe(M, a)) {
              const ge = Le(a);
              Je(R, _.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, M, ge, ge + "[" + El(R.argumentExpression) + "]");
            } else if (Hg(a, pt))
              Je(R.argumentExpression, _.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);
            else {
              let ge;
              if (M !== void 0 && (ge = Eae(M, a)))
                ge !== void 0 && Je(R.argumentExpression, _.Property_0_does_not_exist_on_type_1_Did_you_mean_2, M, Le(a), ge);
              else {
                const Ne = tnt(a, R, c);
                if (Ne !== void 0)
                  Je(R, _.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1, Le(a), Ne);
                else {
                  let we;
                  if (c.flags & 1024)
                    we = ka(void 0, _.Property_0_does_not_exist_on_type_1, "[" + Le(c) + "]", Le(a));
                  else if (c.flags & 8192) {
                    const ft = Oh(c.symbol, R);
                    we = ka(void 0, _.Property_0_does_not_exist_on_type_1, "[" + ft + "]", Le(a));
                  } else
                    c.flags & 128 || c.flags & 256 ? we = ka(void 0, _.Property_0_does_not_exist_on_type_1, c.value, Le(a)) : c.flags & 12 && (we = ka(void 0, _.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1, Le(c), Le(a)));
                  we = ka(we, _.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1, Le(u), Le(a)), Xo.add(ag(er(R), R, we));
                }
              }
            }
          return;
        }
      }
      if (lD(a))
        return ke;
      if (p) {
        const $ = $re(p);
        c.flags & 384 ? Je($, _.Property_0_does_not_exist_on_type_1, "" + c.value, Le(a)) : c.flags & 12 ? Je($, _.Type_0_has_no_matching_index_signature_for_type_1, Le(a), Le(c)) : Je($, _.Type_0_cannot_be_used_as_an_index_type, Le(c));
      }
      if (bs(c))
        return c;
      return;
      function J($) {
        $ && $.isReadonly && R && (gh(R) || uz(R)) && Je(R, _.Index_signature_in_type_0_only_permits_reading, Le(a));
      }
    }
    function $re(n) {
      return n.kind === 209 ? n.argumentExpression : n.kind === 196 ? n.indexType : n.kind === 164 ? n.expression : n;
    }
    function vU(n) {
      return !!(n.flags & 77) || U2(n);
    }
    function U2(n) {
      return !!(n.flags & 134217728) && Rn(n.types, vU) || !!(n.flags & 268435456) && vU(n.type);
    }
    function SL(n) {
      return !!uD(n);
    }
    function Mb(n) {
      return !!(uD(n) & 4194304);
    }
    function E0(n) {
      return !!(uD(n) & 8388608);
    }
    function uD(n) {
      return n.flags & 3145728 ? (n.objectFlags & 2097152 || (n.objectFlags |= 2097152 | Iu(n.types, (a, c) => a | uD(c), 0)), n.objectFlags & 12582912) : n.flags & 33554432 ? (n.objectFlags & 2097152 || (n.objectFlags |= 2097152 | uD(n.baseType) | uD(n.constraint)), n.objectFlags & 12582912) : (n.flags & 58982400 || Ff(n) || W2(n) ? 4194304 : 0) | (n.flags & 465829888 && !U2(n) ? 8388608 : 0);
    }
    function qg(n, a) {
      return n.flags & 8388608 ? cQe(n, a) : n.flags & 16777216 ? lQe(n, a) : n;
    }
    function CCe(n, a, c) {
      if (n.flags & 1048576 || n.flags & 2097152 && !ECe(n)) {
        const u = en(n.types, (p) => qg(Nd(p, a), c));
        return n.flags & 2097152 || c ? Io(u) : Yr(u);
      }
    }
    function sQe(n, a, c) {
      if (a.flags & 1048576) {
        const u = en(a.types, (p) => qg(Nd(n, p), c));
        return c ? Io(u) : Yr(u);
      }
    }
    function cQe(n, a) {
      const c = a ? "simplifiedForWriting" : "simplifiedForReading";
      if (n[c])
        return n[c] === Gc ? n : n[c];
      n[c] = Gc;
      const u = qg(n.objectType, a), p = qg(n.indexType, a), g = sQe(u, p, a);
      if (g)
        return n[c] = g;
      if (!(p.flags & 465829888)) {
        const x = CCe(u, p, a);
        if (x)
          return n[c] = x;
      }
      if (W2(u) && p.flags & 296) {
        const x = IL(u, p.flags & 8 ? 0 : u.target.fixedLength, 0, a);
        if (x)
          return n[c] = x;
      }
      if (Ff(u)) {
        const x = Zy(u);
        if (!x || To(x, op(u)))
          return n[c] = Ks(bU(u, n.indexType), (R) => qg(R, a));
      }
      return n[c] = n;
    }
    function lQe(n, a) {
      const c = n.checkType, u = n.extendsType, p = T0(n), g = S0(n);
      if (g.flags & 131072 && av(p) === av(c)) {
        if (c.flags & 1 || To(RE(c), RE(u)))
          return qg(p, a);
        if (LCe(c, u))
          return ht;
      } else if (p.flags & 131072 && av(g) === av(c)) {
        if (!(c.flags & 1) && To(RE(c), RE(u)))
          return ht;
        if (c.flags & 1 || LCe(c, u))
          return qg(g, a);
      }
      return n;
    }
    function LCe(n, a) {
      return !!(Yr([uP(n, a), ht]).flags & 131072);
    }
    function bU(n, a) {
      const c = hd([op(n)], [a]), u = A0(n.mapper, c);
      return Ji(Wh(n.target || n), u);
    }
    function Nd(n, a, c = 0, u, p, g) {
      return iv(n, a, c, u, p, g) || (u ? xe : he);
    }
    function ICe(n, a) {
      return ah(n, (c) => {
        if (c.flags & 384) {
          const u = dm(c);
          if (Eh(u)) {
            const p = +u;
            return p >= 0 && p < a;
          }
        }
        return !1;
      });
    }
    function iv(n, a, c = 0, u, p, g) {
      if (n === Nt || a === Nt)
        return Nt;
      if (QCe(n) && !(a.flags & 98304) && Nl(a, 12) && (a = ue), Y.noUncheckedIndexedAccess && c & 32 && (c |= 1), E0(a) || (u && u.kind !== 196 ? W2(n) && !ICe(a, n.target.fixedLength) : Mb(n) && !(Po(n) && ICe(a, n.target.fixedLength)))) {
        if (n.flags & 3)
          return n;
        const R = c & 1, M = n.id + "," + a.id + "," + R + M2(p, g);
        let J = Nr.get(M);
        return J || Nr.set(M, J = oQe(n, a, R, p, g)), J;
      }
      const x = vL(n);
      if (a.flags & 1048576 && !(a.flags & 16)) {
        const R = [];
        let M = !1;
        for (const J of a.types) {
          const $ = ACe(n, x, J, a, u, c | (M ? 128 : 0));
          if ($)
            R.push($);
          else if (u)
            M = !0;
          else
            return;
        }
        return M ? void 0 : c & 4 ? Io(R, p, g) : Yr(R, 1, p, g);
      }
      return ACe(n, x, a, a, u, c | 8 | 64);
    }
    function kCe(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        const c = ui(n.objectType), u = ui(n.indexType), p = TS(n);
        a.resolvedType = Nd(c, u, 0, n, p, V2(p));
      }
      return a.resolvedType;
    }
    function Qre(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        const c = _f(32, n.symbol);
        c.declaration = n, c.aliasSymbol = TS(n), c.aliasTypeArguments = V2(c.aliasSymbol), a.resolvedType = c, Rp(c);
      }
      return a.resolvedType;
    }
    function av(n) {
      return n.flags & 33554432 ? av(n.baseType) : n.flags & 8388608 && (n.objectType.flags & 33554432 || n.indexType.flags & 33554432) ? Nd(av(n.objectType), av(n.indexType)) : n;
    }
    function uQe(n) {
      const a = Tu(n);
      return a && (Mb(a) || E0(a)) ? IU(n) : n;
    }
    function wCe(n) {
      return pC(n) && Ie(n.elements) > 0 && !kt(n.elements, (a) => iJ(a) || aJ(a) || Ak(a) && !!(a.questionToken || a.dotDotDotToken));
    }
    function DCe(n, a) {
      return SL(n) || a && Po(n) && kt(_s(n), SL);
    }
    function Zre(n, a, c, u) {
      let p, g, x = 0;
      for (; ; ) {
        if (x === 1e3) {
          Je(B, _.Type_instantiation_is_excessively_deep_and_possibly_infinite), p = xe;
          break;
        }
        const M = wCe(n.node.checkType) && wCe(n.node.extendsType) && Ie(n.node.checkType.elements) === Ie(n.node.extendsType.elements), J = Ji(av(n.checkType), a), $ = DCe(J, M), ge = Ji(n.extendsType, a);
        if (J === Nt || ge === Nt)
          return Nt;
        let Ne;
        if (n.inferTypeParameters) {
          const ft = Zs(n.inferTypeParameters, uQe), Bt = ft !== n.inferTypeParameters ? hd(n.inferTypeParameters, ft) : void 0, Fn = yD(ft, void 0, 0);
          if (Bt) {
            const Yn = A0(a, Bt);
            for (const hn of ft)
              n.inferTypeParameters.indexOf(hn) === -1 && (hn.mapper = Yn);
          }
          $ || Kh(Fn.inferences, J, Ji(ge, Bt), 1536);
          const An = A0(Bt, Fn.mapper);
          Ne = a ? A0(An, a) : An;
        }
        const we = Ne ? Ji(n.extendsType, Ne) : ge;
        if (!$ && !DCe(we, M)) {
          if (!(we.flags & 3) && (J.flags & 1 || !To(kU(J), kU(we)))) {
            J.flags & 1 && (g || (g = [])).push(Ji(ui(n.node.trueType), Ne || a));
            const ft = ui(n.node.falseType);
            if (ft.flags & 16777216) {
              const Bt = ft.root;
              if (Bt.node.parent === n.node && (!Bt.isDistributive || Bt.checkType === n.checkType)) {
                n = Bt;
                continue;
              }
              if (R(ft, a))
                continue;
            }
            p = Ji(ft, a);
            break;
          }
          if (we.flags & 3 || To(RE(J), RE(we))) {
            const ft = ui(n.node.trueType), Bt = Ne || a;
            if (R(ft, Bt))
              continue;
            p = Ji(ft, Bt);
            break;
          }
        }
        p = Gh(16777216), p.root = n, p.checkType = Ji(n.checkType, a), p.extendsType = Ji(n.extendsType, a), p.mapper = a, p.combinedMapper = Ne, p.aliasSymbol = c || n.aliasSymbol, p.aliasTypeArguments = c ? u : Jg(n.aliasTypeArguments, a);
        break;
      }
      return g ? Yr(Bn(g, p)) : p;
      function R(M, J) {
        if (M.flags & 16777216 && J) {
          const $ = M.root;
          if ($.outerTypeParameters) {
            const ge = A0(M.mapper, J), Ne = en($.outerTypeParameters, (Bt) => x0(Bt, ge)), we = hd($.outerTypeParameters, Ne), ft = $.isDistributive ? x0($.checkType, we) : void 0;
            if (!ft || ft === $.checkType || !(ft.flags & 1179648))
              return n = $, a = we, c = void 0, u = void 0, $.aliasSymbol && x++, !0;
          }
        }
        return !1;
      }
    }
    function T0(n) {
      return n.resolvedTrueType || (n.resolvedTrueType = Ji(ui(n.root.node.trueType), n.mapper));
    }
    function S0(n) {
      return n.resolvedFalseType || (n.resolvedFalseType = Ji(ui(n.root.node.falseType), n.mapper));
    }
    function dQe(n) {
      return n.resolvedInferredTrueType || (n.resolvedInferredTrueType = n.combinedMapper ? Ji(ui(n.root.node.trueType), n.combinedMapper) : T0(n));
    }
    function RCe(n) {
      let a;
      return n.locals && n.locals.forEach((c) => {
        c.flags & 262144 && (a = Bn(a, Fs(c)));
      }), a;
    }
    function fQe(n) {
      return n.isDistributive && (xP(n.checkType, n.node.trueType) || xP(n.checkType, n.node.falseType));
    }
    function _Qe(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        const c = ui(n.checkType), u = TS(n), p = V2(u), g = hL(n, !0), x = p ? g : yn(g, (M) => xP(M, n)), R = {
          node: n,
          checkType: c,
          extendsType: ui(n.extendsType),
          isDistributive: !!(c.flags & 262144),
          inferTypeParameters: RCe(n),
          outerTypeParameters: x,
          instantiations: void 0,
          aliasSymbol: u,
          aliasTypeArguments: p
        };
        a.resolvedType = Zre(R, void 0), x && (R.instantiations = /* @__PURE__ */ new Map(), R.instantiations.set(n_(x), a.resolvedType));
      }
      return a.resolvedType;
    }
    function pQe(n) {
      const a = zr(n);
      return a.resolvedType || (a.resolvedType = LE(Ir(n.typeParameter))), a.resolvedType;
    }
    function NCe(n) {
      return Ve(n) ? [n] : Bn(NCe(n.left), n.right);
    }
    function mQe(n) {
      var a;
      const c = zr(n);
      if (!c.resolvedType) {
        if (!V0(n))
          return Je(n.argument, _.String_literal_expected), c.resolvedSymbol = nn, c.resolvedType = xe;
        const u = n.isTypeOf ? 111551 : n.flags & 8388608 ? 900095 : 788968, p = su(n, n.argument.literal);
        if (!p)
          return c.resolvedSymbol = nn, c.resolvedType = xe;
        const g = !!((a = p.exports) != null && a.get("export=")), x = _d(p, !1);
        if (xc(n.qualifier))
          if (x.flags & u)
            c.resolvedType = OCe(n, c, 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;
            Je(n, R, n.argument.literal.text), c.resolvedSymbol = nn, c.resolvedType = xe;
          }
        else {
          const R = NCe(n.qualifier);
          let M = x, J;
          for (; J = R.shift(); ) {
            const $ = R.length ? 1920 : u, ge = ns(Jc(M)), Ne = n.isTypeOf || fr(n) && g ? so(or(ge), J.escapedText, !1, !0) : void 0, we = n.isTypeOf ? void 0 : zd(ff(ge), J.escapedText, $), ft = we ?? Ne;
            if (!ft)
              return Je(J, _.Namespace_0_has_no_exported_member_1, Oh(M), Ls(J)), c.resolvedType = xe;
            zr(J).resolvedSymbol = ft, zr(J.parent).resolvedSymbol = ft, M = ft;
          }
          c.resolvedType = OCe(n, c, M, u);
        }
      }
      return c.resolvedType;
    }
    function OCe(n, a, c, u) {
      const p = Jc(c);
      return a.resolvedSymbol = p, u === 111551 ? dke(or(c), n) : pU(n, p);
    }
    function PCe(n) {
      const a = zr(n);
      if (!a.resolvedType) {
        const c = TS(n);
        if (Qy(n.symbol).size === 0 && !c)
          a.resolvedType = Fc;
        else {
          let u = _f(16, n.symbol);
          u.aliasSymbol = c, u.aliasTypeArguments = V2(c), Nk(n) && n.isArrayType && (u = xu(u)), a.resolvedType = u;
        }
      }
      return a.resolvedType;
    }
    function TS(n) {
      let a = n.parent;
      for (; Sx(a) || wT(a) || xx(a) && a.operator === 146; )
        a = a.parent;
      return vN(a) ? Ir(a) : void 0;
    }
    function V2(n) {
      return n ? $y(n) : void 0;
    }
    function EU(n) {
      return !!(n.flags & 524288) && !Ff(n);
    }
    function eie(n) {
      return qh(n) || !!(n.flags & 474058748);
    }
    function tie(n, a) {
      if (!(n.flags & 1048576))
        return n;
      if (Rn(n.types, eie))
        return cn(n.types, qh) || ua;
      const c = cn(n.types, (g) => !eie(g));
      if (!c || cn(n.types, (g) => g !== c && !eie(g)))
        return n;
      return p(c);
      function p(g) {
        const x = ao();
        for (const M of fs(g))
          if (!(Kf(M) & 24)) {
            if (TU(M)) {
              const J = M.flags & 65536 && !(M.flags & 32768), ge = Qo(16777220, M.escapedName, dre(M) | (a ? 8 : 0));
              ge.links.type = J ? je : Co(or(M), !0), ge.declarations = M.declarations, ge.links.nameType = Vi(M).nameType, ge.links.syntheticOrigin = M, x.set(M.escapedName, ge);
            }
          }
        const R = ws(g.symbol, x, rt, rt, Su(g));
        return R.objectFlags |= 131200, R;
      }
    }
    function Fb(n, a, c, u, p) {
      if (n.flags & 1 || a.flags & 1)
        return ke;
      if (n.flags & 2 || a.flags & 2)
        return he;
      if (n.flags & 131072)
        return a;
      if (a.flags & 131072)
        return n;
      if (n = tie(n, p), n.flags & 1048576)
        return bP([n, a]) ? Ks(n, (J) => Fb(J, a, c, u, p)) : xe;
      if (a = tie(a, p), a.flags & 1048576)
        return bP([n, a]) ? Ks(a, (J) => Fb(n, J, c, u, p)) : xe;
      if (a.flags & 473960444)
        return n;
      if (Mb(n) || Mb(a)) {
        if (qh(n))
          return a;
        if (n.flags & 2097152) {
          const J = n.types, $ = J[J.length - 1];
          if (EU($) && EU(a))
            return Io(ma(J.slice(0, J.length - 1), [Fb($, a, c, u, p)]));
        }
        return Io([n, a]);
      }
      const g = ao(), x = /* @__PURE__ */ new Set(), R = n === ua ? Su(a) : EAe([n, a]);
      for (const J of fs(a))
        Kf(J) & 24 ? x.add(J.escapedName) : TU(J) && g.set(J.escapedName, nie(J, p));
      for (const J of fs(n))
        if (!(x.has(J.escapedName) || !TU(J)))
          if (g.has(J.escapedName)) {
            const $ = g.get(J.escapedName), ge = or($);
            if ($.flags & 16777216) {
              const Ne = ma(J.declarations, $.declarations), we = 4 | J.flags & 16777216, ft = Qo(we, J.escapedName);
              ft.links.type = Yr([or(J), Lie(ge)], 2), ft.links.leftSpread = J, ft.links.rightSpread = $, ft.declarations = Ne, ft.links.nameType = Vi(J).nameType, g.set(J.escapedName, ft);
            }
          } else
            g.set(J.escapedName, nie(J, p));
      const M = ws(c, g, rt, rt, Zs(R, (J) => hQe(J, p)));
      return M.objectFlags |= 2228352 | u, M;
    }
    function TU(n) {
      var a;
      return !kt(n.declarations, Ju) && (!(n.flags & 106496) || !((a = n.declarations) != null && a.some((c) => li(c.parent))));
    }
    function nie(n, a) {
      const c = n.flags & 65536 && !(n.flags & 32768);
      if (!c && a === dp(n))
        return n;
      const u = 4 | n.flags & 16777216, p = Qo(u, n.escapedName, dre(n) | (a ? 8 : 0));
      return p.links.type = c ? je : or(n), p.declarations = n.declarations, p.links.nameType = Vi(n).nameType, p.links.syntheticOrigin = n, p;
    }
    function hQe(n, a) {
      return n.isReadonly !== a ? pm(n.keyType, n.type, a, n.declaration) : n;
    }
    function EP(n, a, c, u) {
      const p = lm(n, c);
      return p.value = a, p.regularType = u || p, p;
    }
    function j2(n) {
      if (n.flags & 2976) {
        if (!n.freshType) {
          const a = EP(n.flags, n.value, n.symbol, n);
          a.freshType = a, n.freshType = a;
        }
        return n.freshType;
      }
      return n;
    }
    function md(n) {
      return n.flags & 2976 ? n.regularType : n.flags & 1048576 ? n.regularType || (n.regularType = Ks(n, md)) : n;
    }
    function Bb(n) {
      return !!(n.flags & 2976) && n.freshType === n;
    }
    function Bf(n) {
      let a;
      return _r.get(n) || (_r.set(n, a = EP(128, n)), a);
    }
    function Pp(n) {
      let a;
      return Ai.get(n) || (Ai.set(n, a = EP(256, n)), a);
    }
    function SU(n) {
      let a;
      const c = k1(n);
      return Ki.get(c) || (Ki.set(c, a = EP(2048, n)), a);
    }
    function gQe(n, a, c) {
      let u;
      const p = `${a}${typeof n == "string" ? "@" : "#"}${n}`, g = 1024 | (typeof n == "string" ? 128 : 256);
      return Xi.get(p) || (Xi.set(p, u = EP(g, n, c)), u);
    }
    function yQe(n) {
      if (n.literal.kind === 104)
        return Sn;
      const a = zr(n);
      return a.resolvedType || (a.resolvedType = md(pa(n.literal))), a.resolvedType;
    }
    function vQe(n) {
      const a = lm(8192, n);
      return a.escapedName = `__@${a.symbol.escapedName}@${yo(a.symbol)}`, a;
    }
    function rie(n) {
      if ($le(n)) {
        const a = JM(n) ? qd(n.left) : qd(n);
        if (a) {
          const c = Vi(a);
          return c.uniqueESSymbolType || (c.uniqueESSymbolType = vQe(a));
        }
      }
      return q;
    }
    function bQe(n) {
      const a = bd(n, !1, !1), c = a && a.parent;
      if (c && (li(c) || c.kind === 261) && !za(a) && (!Hc(a) || mT(n, a.body)))
        return Vu(Ir(c)).thisType;
      if (c && xs(c) && br(c.parent) && Ac(c.parent) === 6)
        return Vu(qd(c.parent.left).parent).thisType;
      const u = n.flags & 8388608 ? W0(n) : void 0;
      return u && Ps(u) && br(u.parent) && Ac(u.parent) === 3 ? Vu(qd(u.parent.left).parent).thisType : Fp(a) && mT(n, a.body) ? Vu(Ir(a)).thisType : (Je(n, _.A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface), xe);
    }
    function xU(n) {
      const a = zr(n);
      return a.resolvedType || (a.resolvedType = bQe(n)), a.resolvedType;
    }
    function MCe(n) {
      return ui(TP(n.type) || n.type);
    }
    function TP(n) {
      switch (n.kind) {
        case 193:
          return TP(n.type);
        case 186:
          if (n.elements.length === 1 && (n = n.elements[0], n.kind === 188 || n.kind === 199 && n.dotDotDotToken))
            return TP(n.type);
          break;
        case 185:
          return n.elementType;
      }
    }
    function EQe(n) {
      const a = zr(n);
      return a.resolvedType || (a.resolvedType = n.dotDotDotToken ? MCe(n) : Co(ui(n.type), !0, !!n.questionToken));
    }
    function ui(n) {
      return e$e(FCe(n), n);
    }
    function FCe(n) {
      switch (n.kind) {
        case 131:
        case 315:
        case 316:
          return ke;
        case 157:
          return he;
        case 152:
          return ue;
        case 148:
          return pt;
        case 160:
          return Wt;
        case 134:
          return Re;
        case 153:
          return q;
        case 114:
          return Rt;
        case 155:
          return je;
        case 104:
          return Sn;
        case 144:
          return ht;
        case 149:
          return n.flags & 262144 && !Te ? ke : ai;
        case 139:
          return re;
        case 194:
        case 108:
          return xU(n);
        case 198:
          return yQe(n);
        case 180:
          return Fre(n);
        case 179:
          return n.assertsModifier ? Rt : Re;
        case 230:
          return Fre(n);
        case 183:
          return KAe(n);
        case 185:
        case 186:
          return I$e(n);
        case 187:
          return R$e(n);
        case 189:
          return G$e(n);
        case 190:
          return J$e(n);
        case 317:
          return t$e(n);
        case 319:
          return Co(ui(n.type));
        case 199:
          return EQe(n);
        case 193:
        case 318:
        case 312:
          return ui(n.type);
        case 188:
          return MCe(n);
        case 321:
          return yot(n);
        case 181:
        case 182:
        case 184:
        case 325:
        case 320:
        case 326:
          return PCe(n);
        case 195:
          return eQe(n);
        case 196:
          return kCe(n);
        case 197:
          return Qre(n);
        case 191:
          return _Qe(n);
        case 192:
          return pQe(n);
        case 200:
          return tQe(n);
        case 202:
          return mQe(n);
        case 79:
        case 163:
        case 208:
          const a = I_(n);
          return a ? Fs(a) : xe;
        default:
          return xe;
      }
    }
    function AU(n, a, c) {
      if (n && n.length)
        for (let u = 0; u < n.length; u++) {
          const p = n[u], g = c(p, a);
          if (p !== g) {
            const x = u === 0 ? [] : n.slice(0, u);
            for (x.push(g), u++; u < n.length; u++)
              x.push(c(n[u], a));
            return x;
          }
        }
      return n;
    }
    function Jg(n, a) {
      return AU(n, a, Ji);
    }
    function CU(n, a) {
      return AU(n, a, H2);
    }
    function BCe(n, a) {
      return AU(n, a, PQe);
    }
    function hd(n, a) {
      return n.length === 1 ? Gb(n[0], a ? a[0] : ke) : TQe(n, a);
    }
    function x0(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] : ke;
          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 c = x0(n, a.mapper1);
          return c !== n && a.kind === 4 ? Ji(c, a.mapper2) : x0(c, a.mapper2);
      }
    }
    function Gb(n, a) {
      return D.attachDebugPrototypeIfDebug({ kind: 0, source: n, target: a });
    }
    function TQe(n, a) {
      return D.attachDebugPrototypeIfDebug({ kind: 1, sources: n, targets: a });
    }
    function SP(n, a) {
      return D.attachDebugPrototypeIfDebug({ kind: 3, func: n, debugInfo: D.isDebugging ? a : void 0 });
    }
    function iie(n, a) {
      return D.attachDebugPrototypeIfDebug({ kind: 2, sources: n, targets: a });
    }
    function LU(n, a, c) {
      return D.attachDebugPrototypeIfDebug({ kind: n, mapper1: a, mapper2: c });
    }
    function GCe(n) {
      return hd(n, void 0);
    }
    function SQe(n, a) {
      const c = n.inferences.slice(a);
      return hd(en(c, (u) => u.typeParameter), en(c, () => he));
    }
    function A0(n, a) {
      return n ? LU(4, n, a) : a;
    }
    function xQe(n, a) {
      return n ? LU(5, n, a) : a;
    }
    function SS(n, a, c) {
      return c ? LU(5, Gb(n, a), c) : Gb(n, a);
    }
    function dD(n, a, c) {
      return n ? LU(5, n, Gb(a, c)) : Gb(a, c);
    }
    function AQe(n) {
      return !n.constraint && !Nre(n) || n.constraint === Jo ? n : n.restrictiveInstantiation || (n.restrictiveInstantiation = wd(n.symbol), n.restrictiveInstantiation.constraint = Jo, n.restrictiveInstantiation);
    }
    function IU(n) {
      const a = wd(n.symbol);
      return a.target = n, a;
    }
    function CQe(n, a) {
      return hP(n.kind, n.parameterName, n.parameterIndex, Ji(n.type, a));
    }
    function H2(n, a, c) {
      let u;
      if (n.typeParameters && !c) {
        u = en(n.typeParameters, IU), a = A0(hd(n.typeParameters, u), a);
        for (const g of u)
          g.mapper = a;
      }
      const p = rh(n.declaration, u, n.thisParameter && aie(n.thisParameter, a), AU(n.parameters, a, aie), void 0, void 0, n.minArgumentCount, n.flags & 39);
      return p.target = n, p.mapper = a, p;
    }
    function aie(n, a) {
      const c = Vi(n);
      if (c.type && !ME(c.type))
        return n;
      Cc(n) & 1 && (n = c.target, a = A0(c.mapper, a));
      const u = Qo(n.flags, n.escapedName, 1 | Cc(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), c.nameType && (u.links.nameType = c.nameType), u;
    }
    function LQe(n, a, c, u) {
      const p = n.objectFlags & 4 || n.objectFlags & 8388608 ? n.node : n.symbol.declarations[0], g = zr(p), x = n.objectFlags & 4 ? g.resolvedType : n.objectFlags & 64 ? n.target : n;
      let R = g.outerTypeParameters;
      if (!R) {
        let M = hL(p, !0);
        if (Fp(p)) {
          const $ = NAe(p);
          M = bi(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 ? yn(R, ($) => kt(J, (ge) => xP($, ge))) : R, g.outerTypeParameters = R;
      }
      if (R.length) {
        const M = A0(n.mapper, a), J = en(R, (ft) => x0(ft, M)), $ = c || n.aliasSymbol, ge = c ? u : Jg(n.aliasTypeArguments, a), Ne = n_(J) + M2($, ge);
        x.instantiations || (x.instantiations = /* @__PURE__ */ new Map(), x.instantiations.set(n_(R) + M2(x.aliasSymbol, x.aliasTypeArguments), x));
        let we = x.instantiations.get(Ne);
        if (!we) {
          const ft = hd(R, J);
          we = x.objectFlags & 4 ? Ore(n.target, n.node, ft, $, ge) : x.objectFlags & 32 ? UCe(x, ft, $, ge) : cie(x, ft, $, ge), x.instantiations.set(Ne, we);
        }
        return we;
      }
      return n;
    }
    function IQe(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 xP(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 && Ra(p.extendsType, c))
            return !0;
        return c(a);
      }
      return !0;
      function c(u) {
        switch (u.kind) {
          case 194:
            return !!n.isThisType;
          case 79:
            return !n.isThisType && mh(u) && IQe(u) && FCe(u) === n;
          case 183:
            const p = u.exprName, g = Sf(p), x = L_(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, c) : !0;
          case 171:
          case 170:
            return !u.type && !!u.body || kt(u.typeParameters, c) || kt(u.parameters, c) || !!u.type && c(u.type);
        }
        return !!Ra(u, c);
      }
    }
    function oie(n) {
      const a = Rp(n);
      if (a.flags & 4194304) {
        const c = av(a.type);
        if (c.flags & 262144)
          return c;
      }
    }
    function UCe(n, a, c, u) {
      const p = oie(n);
      if (p) {
        const g = Ji(p, a);
        if (p !== g)
          return jLe(cp(g), (x) => {
            if (x.flags & 61603843 && x !== Nt && !Zo(x)) {
              if (!n.declaration.nameType) {
                let R;
                if (Gf(x) || x.flags & 1 && th(p, 4) < 0 && (R = Tu(p)) && ah(R, NE))
                  return wQe(x, n, SS(p, x, a));
                if (W2(x))
                  return kQe(x, n, p, a);
                if (Po(x))
                  return DQe(x, n, SS(p, x, a));
              }
              return cie(n, SS(p, x, a));
            }
            return x;
          }, c, u);
      }
      return Ji(Rp(n), a) === Nt ? Nt : cie(n, a, c, u);
    }
    function sie(n, a) {
      return a & 1 ? !0 : a & 2 ? !1 : n;
    }
    function kQe(n, a, c, u) {
      const p = n.target.elementFlags, g = en(_s(n), (R, M) => {
        const J = p[M] & 8 ? R : p[M] & 4 ? xu(R) : Op([R], [p[M]]);
        return UCe(a, SS(c, J, u));
      }), x = sie(n.target.readonly, fm(a));
      return Op(g, en(g, (R) => 8), x);
    }
    function wQe(n, a, c) {
      const u = VCe(a, pt, !0, c);
      return Zo(u) ? xe : xu(u, sie(CL(n), fm(a)));
    }
    function DQe(n, a, c) {
      const u = n.target.elementFlags, p = en(_s(n), (M, J) => VCe(a, Bf("" + J), !!(u[J] & 2), c)), g = fm(a), x = g & 4 ? en(u, (M) => M & 1 ? 2 : M) : g & 8 ? en(u, (M) => M & 2 ? 1 : M) : u, R = sie(n.target.readonly, g);
      return wi(p, xe) ? xe : Op(p, x, R, n.target.labeledElementDeclarations);
    }
    function VCe(n, a, c, u) {
      const p = dD(u, op(n), a), g = Ji(Wh(n.target || n), p), x = fm(n);
      return W && x & 4 && !_c(g, 49152) ? Kg(g, !0) : W && x & 8 && c ? i_(g, 524288) : g;
    }
    function cie(n, a, c, u) {
      const p = _f(n.objectFlags | 64, n.symbol);
      if (n.objectFlags & 32) {
        p.declaration = n.declaration;
        const g = op(n), x = IU(g);
        p.typeParameter = x, a = A0(Gb(g, x), a), x.mapper = a;
      }
      return n.objectFlags & 8388608 && (p.node = n.node), p.target = n, p.mapper = a, p.aliasSymbol = c || n.aliasSymbol, p.aliasTypeArguments = c ? u : Jg(n.aliasTypeArguments, a), p.objectFlags |= p.aliasTypeArguments ? fU(p.aliasTypeArguments) : 0, p;
    }
    function lie(n, a, c, u) {
      const p = n.root;
      if (p.outerTypeParameters) {
        const g = en(p.outerTypeParameters, (M) => x0(M, a)), x = n_(g) + M2(c, u);
        let R = p.instantiations.get(x);
        if (!R) {
          const M = hd(p.outerTypeParameters, g), J = p.checkType, $ = p.isDistributive ? x0(J, M) : void 0;
          R = $ && J !== $ && $.flags & 1179648 ? jLe(cp($), (ge) => Zre(p, SS(J, ge, M)), c, u) : Zre(p, M, c, u), p.instantiations.set(x, R);
        }
        return R;
      }
      return n;
    }
    function Ji(n, a) {
      return n && a ? jCe(n, a, void 0, void 0) : n;
    }
    function jCe(n, a, c, u) {
      var p;
      if (!ME(n))
        return n;
      if (O === 100 || I >= 5e6)
        return (p = yi) == null || p.instant(yi.Phase.CheckTypes, "instantiateType_DepthLimit", { typeId: n.id, instantiationDepth: O, instantiationCount: I }), Je(B, _.Type_instantiation_is_excessively_deep_and_possibly_infinite), xe;
      L++, I++, O++;
      const g = RQe(n, a, c, u);
      return O--, g;
    }
    function RQe(n, a, c, u) {
      const p = n.flags;
      if (p & 262144)
        return x0(n, a);
      if (p & 524288) {
        const g = n.objectFlags;
        if (g & 52) {
          if (g & 4 && !n.node) {
            const x = n.resolvedTypeArguments, R = Jg(x, a);
            return R !== x ? Wre(n.target, R) : n;
          }
          return g & 1024 ? NQe(n, a) : LQe(n, a, c, 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 = Jg(x, a);
        if (R === x && c === n.aliasSymbol)
          return n;
        const M = c || n.aliasSymbol, J = c ? u : Jg(n.aliasTypeArguments, a);
        return p & 2097152 || g && g.flags & 2097152 ? Io(R, M, J) : Yr(R, 1, M, J);
      }
      if (p & 4194304)
        return mm(Ji(n.type, a));
      if (p & 134217728)
        return DE(n.texts, Jg(n.types, a));
      if (p & 268435456)
        return ES(n.symbol, Ji(n.type, a));
      if (p & 8388608) {
        const g = c || n.aliasSymbol, x = c ? u : Jg(n.aliasTypeArguments, a);
        return Nd(Ji(n.objectType, a), Ji(n.indexType, a), n.accessFlags, void 0, g, x);
      }
      if (p & 16777216)
        return lie(n, A0(n.mapper, a), c, u);
      if (p & 33554432) {
        const g = Ji(n.baseType, a), x = Ji(n.constraint, a);
        return g.flags & 8650752 && SL(x) ? Pre(g, x) : x.flags & 3 || To(RE(g), RE(x)) ? g : g.flags & 8650752 ? Pre(g, x) : Io([x, g]);
      }
      return n;
    }
    function NQe(n, a) {
      const c = Ji(n.mappedType, a);
      if (!(Zr(c) & 32))
        return n;
      const u = Ji(n.constraintType, a);
      if (!(u.flags & 4194304))
        return n;
      const p = vLe(Ji(n.source, a), c, u);
      return p || n;
    }
    function OQe(n) {
      return n.flags & 134479871 ? n : n.uniqueLiteralFilledInstantiation || (n.uniqueLiteralFilledInstantiation = Ji(n, is));
    }
    function kU(n) {
      return n.flags & 134479871 ? n : n.permissiveInstantiation || (n.permissiveInstantiation = Ji(n, Ui));
    }
    function RE(n) {
      return n.flags & 134479871 ? n : (n.restrictiveInstantiation || (n.restrictiveInstantiation = Ji(n, sa), n.restrictiveInstantiation.restrictiveInstantiation = n.restrictiveInstantiation), n.restrictiveInstantiation);
    }
    function PQe(n, a) {
      return pm(n.keyType, Ji(n.type, a), n.isReadonly, n.declaration);
    }
    function C_(n) {
      switch (D.assert(n.kind !== 171 || M_(n)), n.kind) {
        case 215:
        case 216:
        case 171:
        case 259:
          return HCe(n);
        case 207:
          return kt(n.properties, C_);
        case 206:
          return kt(n.elements, C_);
        case 224:
          return C_(n.whenTrue) || C_(n.whenFalse);
        case 223:
          return (n.operatorToken.kind === 56 || n.operatorToken.kind === 60) && (C_(n.left) || C_(n.right));
        case 299:
          return C_(n.initializer);
        case 214:
          return C_(n.expression);
        case 289:
          return kt(n.properties, C_) || Ch(n.parent) && kt(n.parent.parent.children, C_);
        case 288: {
          const { initializer: a } = n;
          return !!a && C_(a);
        }
        case 291: {
          const { expression: a } = n;
          return !!a && C_(a);
        }
      }
      return !1;
    }
    function HCe(n) {
      return B3(n) || MQe(n);
    }
    function MQe(n) {
      return !n.typeParameters && !mp(n) && !!n.body && n.body.kind !== 238 && C_(n.body);
    }
    function wU(n) {
      return (aC(n) || M_(n)) && HCe(n);
    }
    function WCe(n) {
      if (n.flags & 524288) {
        const a = sp(n);
        if (a.constructSignatures.length || a.callSignatures.length) {
          const c = _f(16, n.symbol);
          return c.members = a.members, c.properties = a.properties, c.callSignatures = rt, c.constructSignatures = rt, c.indexInfos = rt, c;
        }
      } else if (n.flags & 2097152)
        return Io(en(n.types, WCe));
      return n;
    }
    function zh(n, a) {
      return hm(n, a, Id);
    }
    function fD(n, a) {
      return hm(n, a, Id) ? -1 : 0;
    }
    function uie(n, a) {
      return hm(n, a, Cd) ? -1 : 0;
    }
    function FQe(n, a) {
      return hm(n, a, Km) ? -1 : 0;
    }
    function ov(n, a) {
      return hm(n, a, Km);
    }
    function zCe(n, a) {
      return hm(n, a, Z_);
    }
    function To(n, a) {
      return hm(n, a, Cd);
    }
    function Ub(n, a) {
      return n.flags & 1048576 ? Rn(n.types, (c) => Ub(c, a)) : a.flags & 1048576 ? kt(a.types, (c) => Ub(n, c)) : n.flags & 2097152 ? kt(n.types, (c) => Ub(c, a)) : n.flags & 58982400 ? Ub(ju(n) || he, a) : Jh(a) ? !!(n.flags & 67633152) : a === Ka ? !!(n.flags & 67633152) && !Jh(n) : a === uc ? !!(n.flags & 524288) && zie(n) : CE(n, D2(a)) || Gf(a) && !CL(a) && Ub(n, cs);
    }
    function DU(n, a) {
      return hm(n, a, Ld);
    }
    function AP(n, a) {
      return DU(n, a) || DU(a, n);
    }
    function ed(n, a, c, u, p, g) {
      return r_(n, a, Cd, c, u, p, g);
    }
    function sv(n, a, c, u, p, g) {
      return die(n, a, Cd, c, u, p, g, void 0);
    }
    function die(n, a, c, u, p, g, x, R) {
      return hm(n, a, c) ? !0 : !u || !_D(p, n, a, c, g, x, R) ? r_(n, a, c, u, g, x, R) : !1;
    }
    function qCe(n) {
      return !!(n.flags & 16777216 || n.flags & 2097152 && kt(n.types, qCe));
    }
    function _D(n, a, c, u, p, g, x) {
      if (!n || qCe(c))
        return !1;
      if (!r_(a, c, u, void 0) && BQe(n, a, c, u, p, g, x))
        return !0;
      switch (n.kind) {
        case 291:
        case 214:
          return _D(n.expression, a, c, u, p, g, x);
        case 223:
          switch (n.operatorToken.kind) {
            case 63:
            case 27:
              return _D(n.right, a, c, u, p, g, x);
          }
          break;
        case 207:
          return qQe(n, a, c, u, g, x);
        case 206:
          return WQe(n, a, c, u, g, x);
        case 289:
          return HQe(n, a, c, u, g, x);
        case 216:
          return GQe(n, a, c, u, g, x);
      }
      return !1;
    }
    function BQe(n, a, c, u, p, g, x) {
      const R = ja(a, 0), M = ja(a, 1);
      for (const J of [M, R])
        if (kt(J, ($) => {
          const ge = ms($);
          return !(ge.flags & 131073) && r_(ge, c, u, void 0);
        })) {
          const $ = x || {};
          ed(a, c, n, p, g, $);
          const ge = $.errors[$.errors.length - 1];
          return qo(ge, Rr(n, J === M ? _.Did_you_mean_to_use_new_with_this_expression : _.Did_you_mean_to_call_this_expression)), !0;
        }
      return !1;
    }
    function GQe(n, a, c, u, p, g) {
      if (oo(n.body) || kt(n.parameters, wM))
        return !1;
      const x = LS(a);
      if (!x)
        return !1;
      const R = ja(c, 0);
      if (!Ie(R))
        return !1;
      const M = n.body, J = ms(x), $ = Yr(en(R, ms));
      if (!r_(J, $, u, void 0)) {
        const ge = M && _D(M, J, $, u, void 0, p, g);
        if (ge)
          return ge;
        const Ne = g || {};
        if (r_(J, $, u, M, void 0, p, Ne), Ne.errors)
          return c.symbol && Ie(c.symbol.declarations) && qo(Ne.errors[Ne.errors.length - 1], Rr(c.symbol.declarations[0], _.The_expected_type_comes_from_the_return_type_of_this_signature)), !(Fl(n) & 2) && !ul(J, "then") && r_(e4(J), $, u, void 0) && qo(Ne.errors[Ne.errors.length - 1], Rr(n, _.Did_you_mean_to_mark_this_function_as_async)), !0;
      }
      return !1;
    }
    function JCe(n, a, c) {
      const u = iv(a, c);
      if (u)
        return u;
      if (a.flags & 1048576) {
        const p = tLe(n, a);
        if (p)
          return iv(p, c);
      }
    }
    function KCe(n, a) {
      HP(n, a, !1);
      const c = GL(n, 1);
      return xD(), c;
    }
    function CP(n, a, c, u, p, g) {
      let x = !1;
      for (const R of n) {
        const { errorNode: M, innerExpression: J, nameType: $, errorMessage: ge } = R;
        let Ne = JCe(a, c, $);
        if (!Ne || Ne.flags & 8388608)
          continue;
        let we = iv(a, $);
        if (!we)
          continue;
        const ft = yU($, void 0);
        if (!r_(we, Ne, u, void 0)) {
          const Bt = J && _D(J, we, Ne, u, void 0, p, g);
          if (x = !0, !Bt) {
            const Fn = g || {}, An = J ? KCe(J, we) : we;
            if (We && NU(An, Ne)) {
              const Yn = Rr(M, _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, Le(An), Le(Ne));
              Xo.add(Yn), Fn.errors = [Yn];
            } else {
              const Yn = !!(ft && (so(c, ft) || nn).flags & 16777216), hn = !!(ft && (so(a, ft) || nn).flags & 16777216);
              Ne = OE(Ne, Yn), we = OE(we, Yn && hn), r_(An, Ne, u, M, ge, p, Fn) && An !== we && r_(we, Ne, u, M, ge, p, Fn);
            }
            if (Fn.errors) {
              const Yn = Fn.errors[Fn.errors.length - 1], hn = Hh($) ? dm($) : void 0, xn = hn !== void 0 ? so(c, hn) : void 0;
              let yr = !1;
              if (!xn) {
                const on = mP(c, $);
                on && on.declaration && !er(on.declaration).hasNoDefaultLib && (yr = !0, qo(Yn, Rr(on.declaration, _.The_expected_type_comes_from_this_index_signature)));
              }
              if (!yr && (xn && Ie(xn.declarations) || c.symbol && Ie(c.symbol.declarations))) {
                const on = xn && Ie(xn.declarations) ? xn.declarations[0] : c.symbol.declarations[0];
                er(on).hasNoDefaultLib || qo(Yn, Rr(on, _.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1, hn && !($.flags & 8192) ? ta(hn) : Le($), Le(c)));
              }
            }
          }
        }
      }
      return x;
    }
    function UQe(n, a, c, u, p, g) {
      const x = dl(c, GU), R = dl(c, ($) => !GU($)), M = R !== ht ? aoe(13, 0, R, void 0) : void 0;
      let J = !1;
      for (let $ = n.next(); !$.done; $ = n.next()) {
        const { errorNode: ge, innerExpression: Ne, nameType: we, errorMessage: ft } = $.value;
        let Bt = M;
        const Fn = x !== ht ? JCe(a, x, we) : void 0;
        if (Fn && !(Fn.flags & 8388608) && (Bt = M ? Yr([M, Fn]) : Fn), !Bt)
          continue;
        let An = iv(a, we);
        if (!An)
          continue;
        const Yn = yU(we, void 0);
        if (!r_(An, Bt, u, void 0)) {
          const hn = Ne && _D(Ne, An, Bt, u, void 0, p, g);
          if (J = !0, !hn) {
            const xn = g || {}, yr = Ne ? KCe(Ne, An) : An;
            if (We && NU(yr, Bt)) {
              const on = Rr(ge, _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, Le(yr), Le(Bt));
              Xo.add(on), xn.errors = [on];
            } else {
              const on = !!(Yn && (so(x, Yn) || nn).flags & 16777216), Un = !!(Yn && (so(a, Yn) || nn).flags & 16777216);
              Bt = OE(Bt, on), An = OE(An, on && Un), r_(yr, Bt, u, ge, ft, p, xn) && yr !== An && r_(An, Bt, u, ge, ft, p, xn);
            }
          }
        }
      }
      return J;
    }
    function* VQe(n) {
      if (Ie(n.properties))
        for (const a of n.properties)
          IT(a) || lae(Pr(a.name)) || (yield { errorNode: a.name, innerExpression: a.initializer, nameType: Bf(Pr(a.name)) });
    }
    function* jQe(n, a) {
      if (!Ie(n.children))
        return;
      let c = 0;
      for (let u = 0; u < n.children.length; u++) {
        const p = n.children[u], g = Pp(u - c), x = XCe(p, g, a);
        x ? yield x : c++;
      }
    }
    function XCe(n, a, c) {
      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: c() };
        case 281:
        case 282:
        case 285:
          return { errorNode: n, innerExpression: n, nameType: a };
        default:
          return D.assertNever(n, "Found invalid jsx child");
      }
    }
    function HQe(n, a, c, u, p, g) {
      let x = CP(VQe(n), a, c, u, p, g), R;
      if (Ch(n.parent) && Ty(n.parent.parent)) {
        const J = n.parent.parent, $ = sV(J2(n)), ge = $ === void 0 ? "children" : ta($), Ne = Bf(ge), we = Nd(c, Ne), ft = RN(J.children);
        if (!Ie(ft))
          return x;
        const Bt = Ie(ft) > 1;
        let Fn, An;
        if (Ure(!1) !== xo) {
          const hn = aCe(ke);
          Fn = dl(we, (xn) => To(xn, hn)), An = dl(we, (xn) => !To(xn, hn));
        } else
          Fn = dl(we, GU), An = dl(we, (hn) => !GU(hn));
        if (Bt) {
          if (Fn !== ht) {
            const hn = Op(oV(J, 0)), xn = jQe(J, M);
            x = UQe(xn, hn, Fn, u, p, g) || x;
          } else if (!hm(Nd(a, Ne), we, u)) {
            x = !0;
            const hn = Je(J.openingElement.tagName, _.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided, ge, Le(we));
            g && g.skipLogging && (g.errors || (g.errors = [])).push(hn);
          }
        } else if (An !== ht) {
          const hn = ft[0], xn = XCe(hn, Ne, M);
          xn && (x = CP(function* () {
            yield xn;
          }(), a, c, u, p, g) || x);
        } else if (!hm(Nd(a, Ne), we, u)) {
          x = !0;
          const hn = Je(J.openingElement.tagName, _.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided, ge, Le(we));
          g && g.skipLogging && (g.errors || (g.errors = [])).push(hn);
        }
      }
      return x;
      function M() {
        if (!R) {
          const J = El(n.parent.tagName), $ = sV(J2(n)), ge = $ === void 0 ? "children" : ta($), Ne = Nd(c, Bf(ge)), we = _._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 = { ...we, key: "!!ALREADY FORMATTED!!", message: Kz(void 0, we, J, ge, Le(Ne)) };
        }
        return R;
      }
    }
    function* YCe(n, a) {
      const c = Ie(n.elements);
      if (c)
        for (let u = 0; u < c; u++) {
          if (LL(a) && !so(a, "" + u))
            continue;
          const p = n.elements[u];
          if (kl(p))
            continue;
          const g = Pp(u);
          yield { errorNode: p, innerExpression: p, nameType: g };
        }
    }
    function WQe(n, a, c, u, p, g) {
      if (c.flags & 134479868)
        return !1;
      if (LL(a))
        return CP(YCe(n, c), a, c, u, p, g);
      HP(n, c, !1);
      const x = pIe(n, 1, !0);
      return xD(), LL(x) ? CP(YCe(n, c), x, c, u, p, g) : !1;
    }
    function* zQe(n) {
      if (Ie(n.properties))
        for (const a of n.properties) {
          if (Nx(a))
            continue;
          const c = TL(Ir(a), 8576);
          if (!(!c || c.flags & 131072))
            switch (a.kind) {
              case 175:
              case 174:
              case 171:
              case 300:
                yield { errorNode: a.name, innerExpression: void 0, nameType: c };
                break;
              case 299:
                yield { errorNode: a.name, innerExpression: a.initializer, nameType: c, errorMessage: ZR(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 qQe(n, a, c, u, p, g) {
      return c.flags & 134479868 ? !1 : CP(zQe(n), a, c, u, p, g);
    }
    function $Ce(n, a, c, u, p) {
      return r_(n, a, Ld, c, u, p);
    }
    function JQe(n, a, c) {
      return fie(n, a, c ? 4 : 0, !1, void 0, void 0, uie, void 0) !== 0;
    }
    function RU(n) {
      if (!n.typeParameters && (!n.thisParameter || bs(QP(n.thisParameter))) && n.parameters.length === 1 && gu(n)) {
        const a = QP(n.parameters[0]);
        return !!((Gf(a) ? _s(a)[0] : a).flags & 131073 && ms(n).flags & 3);
      }
      return !1;
    }
    function fie(n, a, c, u, p, g, x, R) {
      if (n === a || !(c & 16 && RU(n)) && RU(a))
        return -1;
      if (c & 16 && RU(n) && !RU(a))
        return 0;
      const M = $d(a);
      if (!vm(a) && (c & 8 ? vm(n) || $d(n) > M : ym(n) > M))
        return 0;
      n.typeParameters && n.typeParameters !== a.typeParameters && (a = KYe(a), n = zIe(n, a, void 0, x));
      const $ = $d(n), ge = wD(n), Ne = wD(a);
      (ge || Ne) && Ji(ge || Ne, R);
      const we = a.declaration ? a.declaration.kind : 0, ft = !(c & 3) && ce && we !== 171 && we !== 170 && we !== 173;
      let Bt = -1;
      const Fn = Nb(n);
      if (Fn && Fn !== Rt) {
        const hn = Nb(a);
        if (hn) {
          const xn = !ft && x(Fn, hn, !1) || x(hn, Fn, 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), Yn = ge || Ne ? An - 1 : -1;
      for (let hn = 0; hn < An; hn++) {
        const xn = hn === Yn ? ID(n, hn) : jE(n, hn), yr = hn === Yn ? ID(a, hn) : jE(a, hn);
        if (xn && yr) {
          const on = c & 3 ? void 0 : LS(Xg(xn)), Un = c & 3 ? void 0 : LS(Xg(yr));
          let $r = on && Un && !t_(on) && !t_(Un) && (Cu(xn) & 50331648) === (Cu(yr) & 50331648) ? fie(Un, on, c & 8 | (ft ? 2 : 1), u, p, g, x, R) : !(c & 3) && !ft && x(xn, yr, !1) || x(yr, xn, u);
          if ($r && c & 8 && hn >= ym(n) && hn < ym(a) && x(xn, yr, !1) && ($r = 0), !$r)
            return u && p(_.Types_of_parameters_0_and_1_are_incompatible, ta(FL(n, hn)), ta(FL(a, hn))), 0;
          Bt &= $r;
        }
      }
      if (!(c & 4)) {
        const hn = kre(a) ? ke : a.declaration && Fp(a.declaration) ? Vu(ns(a.declaration.symbol)) : ms(a);
        if (hn === Rt || hn === ke)
          return Bt;
        const xn = kre(n) ? ke : n.declaration && Fp(n.declaration) ? Vu(ns(n.declaration.symbol)) : ms(n), yr = t_(a);
        if (yr) {
          const on = t_(n);
          if (on)
            Bt &= KQe(on, yr, u, p, x);
          else if (Zle(yr))
            return u && p(_.Signature_0_must_be_a_type_predicate, se(n)), 0;
        } else
          Bt &= c & 1 && x(hn, xn, !1) || x(xn, hn, u), !Bt && u && g && g(xn, hn);
      }
      return Bt;
    }
    function KQe(n, a, c, u, p) {
      if (n.kind !== a.kind)
        return c && (u(_.A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard), u(_.Type_predicate_0_is_not_assignable_to_1, $l(n), $l(a))), 0;
      if ((n.kind === 1 || n.kind === 3) && n.parameterIndex !== a.parameterIndex)
        return c && (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, $l(n), $l(a))), 0;
      const g = n.type === a.type ? -1 : n.type && a.type ? p(n.type, a.type, c) : 0;
      return g === 0 && c && u(_.Type_predicate_0_is_not_assignable_to_1, $l(n), $l(a)), g;
    }
    function XQe(n, a) {
      const c = oD(n), u = oD(a), p = ms(c), g = ms(u);
      return g === Rt || hm(g, p, Cd) || hm(p, g, Cd) ? JQe(c, u, !0) : !1;
    }
    function _ie(n) {
      return n !== Sa && n.properties.length === 0 && n.callSignatures.length === 0 && n.constructSignatures.length === 0 && n.indexInfos.length === 0;
    }
    function qh(n) {
      return n.flags & 524288 ? !Ff(n) && _ie(sp(n)) : n.flags & 67108864 ? !0 : n.flags & 1048576 ? kt(n.types, qh) : n.flags & 2097152 ? Rn(n.types, qh) : !1;
    }
    function Jh(n) {
      return !!(Zr(n) & 16 && (n.members && _ie(n) || n.symbol && n.symbol.flags & 2048 && Qy(n.symbol).size === 0));
    }
    function YQe(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, Jh) ? 67108864 : 0);
        }
        return !!(n.objectFlags & 67108864);
      }
      return !1;
    }
    function xL(n) {
      return !!((n.flags & 1048576 ? n.types[0] : n).flags & 32768);
    }
    function QCe(n) {
      return n.flags & 524288 && !Ff(n) && fs(n).length === 0 && Su(n).length === 1 && !!ih(n, ue) || n.flags & 3145728 && Rn(n.types, QCe) || !1;
    }
    function pie(n, a, c) {
      const u = n.flags & 8 ? pd(n) : n, p = a.flags & 8 ? pd(a) : a;
      if (u === p)
        return !0;
      if (u.escapedName !== p.escapedName || !(u.flags & 256) || !(p.flags & 256))
        return !1;
      const g = yo(u) + "," + yo(p), x = fb.get(g);
      if (x !== void 0 && !(!(x & 4) && x & 2 && c))
        return !!(x & 1);
      const R = or(p);
      for (const M of fs(or(u)))
        if (M.flags & 8) {
          const J = so(R, M.escapedName);
          if (!J || !(J.flags & 8))
            return c ? (c(_.Property_0_is_missing_in_type_1, Oc(M), Le(Fs(p), void 0, 64)), fb.set(g, 6)) : fb.set(g, 2), !1;
        }
      return fb.set(g, 1), !0;
    }
    function pD(n, a, c, u) {
      const p = n.flags, g = a.flags;
      return g & 1 || p & 131072 || n === Nt || g & 2 && !(c === Z_ && 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 && pie(n.symbol, a.symbol, u) || p & 1024 && g & 1024 && (p & 1048576 && g & 1048576 && pie(n.symbol, a.symbol, u) || p & 2944 && g & 2944 && n.value === a.value && pie(n.symbol, a.symbol, u)) || p & 32768 && (!W && !(g & 3145728) || g & 49152) || p & 65536 && (!W && !(g & 3145728) || g & 65536) || p & 524288 && g & 67108864 && !(c === Z_ && Jh(n) && !(Zr(n) & 8192)) || (c === Cd || c === Ld) && (p & 1 || p & 8 && (g & 32 || g & 256 && g & 1024) || p & 256 && !(p & 1024) && (g & 32 || g & 256 && g & 1024 && n.value === a.value) || YQe(a)));
    }
    function hm(n, a, c) {
      if (Bb(n) && (n = n.regularType), Bb(a) && (a = a.regularType), n === a)
        return !0;
      if (c !== Id) {
        if (c === Ld && !(a.flags & 131072) && pD(a, n, c) || pD(n, a, c))
          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 = c.get(vie(n, a, 0, c, !1));
        if (u !== void 0)
          return !!(u & 1);
      }
      return n.flags & 469499904 || a.flags & 469499904 ? r_(n, a, c, void 0) : !1;
    }
    function ZCe(n, a) {
      return Zr(n) & 2048 && lae(a.escapedName);
    }
    function LP(n, a) {
      for (; ; ) {
        const c = Bb(n) ? n.regularType : Zr(n) & 4 ? n.node ? Wg(n.target, _s(n)) : Tie(n) || n : n.flags & 3145728 ? $Qe(n, a) : n.flags & 33554432 ? a ? n.baseType : Mre(n) : n.flags & 25165824 ? qg(n, a) : n;
        if (c === n)
          return c;
        n = c;
      }
    }
    function $Qe(n, a) {
      const c = cp(n);
      if (c !== n)
        return c;
      if (n.flags & 2097152 && kt(n.types, Jh)) {
        const u = Zs(n.types, (p) => LP(p, a));
        if (u !== n.types)
          return Io(u);
      }
      return n;
    }
    function r_(n, a, c, u, p, g, x) {
      var R;
      let M, J, $, ge, Ne, we = 0, ft = 0, Bt = 0, Fn = 0, An = !1, Yn = 0, hn, xn;
      D.assert(c !== Id || !u, "no error reporting in identity checking");
      const yr = aa(n, a, 3, !!u, p);
      if (xn && $r(), An) {
        (R = yi) == null || R.instant(yi.Phase.CheckTypes, "checkTypeRelatedTo_DepthLimit", { sourceId: n.id, targetId: a.id, depth: ft, targetDepth: Bt });
        const nt = Je(u || B, _.Excessive_stack_depth_comparing_types_0_and_1, Le(n), Le(a));
        x && (x.errors || (x.errors = [])).push(nt);
      } else if (M) {
        if (g) {
          const Qt = g();
          Qt && (pde(Qt, M), M = Qt);
        }
        let nt;
        if (p && u && !yr && n.symbol) {
          const Qt = Vi(n.symbol);
          if (Qt.originatingImport && !rf(Qt.originatingImport) && r_(or(Qt.target), a, c, void 0)) {
            const mr = Rr(Qt.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 = Bn(nt, mr);
          }
        }
        const St = ag(er(u), u, M, nt);
        J && qo(St, ...J), x && (x.errors || (x.errors = [])).push(St), (!x || !x.skipLogging) && Xo.add(St);
      }
      return u && x && x.skipLogging && yr === 0 && D.assert(!!x.errors, "missed opportunity to interact with error."), yr !== 0;
      function on(nt) {
        M = nt.errorInfo, hn = nt.lastSkippedInfo, xn = nt.incompatibleStack, Yn = nt.overrideNextErrorInfo, J = nt.relatedInfo;
      }
      function Un() {
        return {
          errorInfo: M,
          lastSkippedInfo: hn,
          incompatibleStack: xn == null ? void 0 : xn.slice(),
          overrideNextErrorInfo: Yn,
          relatedInfo: J == null ? void 0 : J.slice()
        };
      }
      function Kn(nt, St, Qt, qn, mr) {
        Yn++, hn = void 0, (xn || (xn = [])).push([nt, St, Qt, qn, mr]);
      }
      function $r() {
        const nt = xn || [];
        xn = void 0;
        const St = hn;
        if (hn = void 0, nt.length === 1) {
          ti(...nt[0]), St && Ya(void 0, ...St);
          return;
        }
        let Qt = "";
        const qn = [];
        for (; nt.length; ) {
          const [mr, ...Ln] = nt.pop();
          switch (mr.code) {
            case _.Types_of_property_0_are_incompatible.code: {
              Qt.indexOf("new ") === 0 && (Qt = `(${Qt})`);
              const Sr = "" + Ln[0];
              Qt.length === 0 ? Qt = `${Sr}` : N_(Sr, $o(Y)) ? Qt = `${Qt}.${Sr}` : Sr[0] === "[" && Sr[Sr.length - 1] === "]" ? Qt = `${Qt}${Sr}` : Qt = `${Qt}[${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 (Qt.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), qn.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 " : "", Ur = 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 ? "" : "...";
                Qt = `${Sr}${Qt}(${Ur})`;
              }
              break;
            }
            case _.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target.code: {
              qn.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: {
              qn.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}`);
          }
        }
        Qt ? ti(Qt[Qt.length - 1] === ")" ? _.The_types_returned_by_0_are_incompatible_between_these_types : _.The_types_of_0_are_incompatible_between_these_types, Qt) : qn.shift();
        for (const [mr, ...Ln] of qn) {
          const Sr = mr.elidedInCompatabilityPyramid;
          mr.elidedInCompatabilityPyramid = !1, ti(mr, ...Ln), mr.elidedInCompatabilityPyramid = Sr;
        }
        St && Ya(void 0, ...St);
      }
      function ti(nt, St, Qt, qn, mr) {
        D.assert(!!u), xn && $r(), !nt.elidedInCompatabilityPyramid && (M = ka(M, nt, St, Qt, qn, mr));
      }
      function da(nt) {
        D.assert(!!M), J ? J.push(nt) : J = [nt];
      }
      function Ya(nt, St, Qt) {
        xn && $r();
        const [qn, mr] = rn(St, Qt);
        let Ln = St, Sr = qn;
        if (mD(St) && !mie(Qt) && (Ln = cv(St), D.assert(!To(Ln, Qt), "generalized source shouldn't be assignable"), Sr = Cr(Ln)), (Qt.flags & 8388608 && !(St.flags & 8388608) ? Qt.objectType.flags : Qt.flags) & 262144 && Qt !== Is && Qt !== mc) {
          const Fi = ju(Qt);
          let Ta;
          Fi && (To(Ln, Fi) || (Ta = To(St, Fi))) ? ti(_._0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2, Ta ? qn : Sr, mr, Le(Fi)) : (M = void 0, ti(_._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 && We && eLe(St, Qt).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 (c === Ld)
          nt = _.Type_0_is_not_comparable_to_type_1;
        else if (qn === mr)
          nt = _.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated;
        else if (We && eLe(St, Qt).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 && Qt.flags & 1048576) {
            const Fi = nnt(St, Qt);
            if (Fi) {
              ti(_.Type_0_is_not_assignable_to_type_1_Did_you_mean_2, Sr, mr, Le(Fi));
              return;
            }
          }
          nt = _.Type_0_is_not_assignable_to_type_1;
        }
        ti(nt, Sr, mr);
      }
      function yl(nt, St) {
        const Qt = Ei(nt.symbol) ? Le(nt, nt.symbol.valueDeclaration) : Le(nt), qn = Ei(St.symbol) ? Le(St, St.symbol.valueDeclaration) : Le(St);
        (dc === nt && ue === St || Hd === nt && pt === St || Vc === nt && Re === St || tCe() === nt && q === St) && ti(_._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible, qn, Qt);
      }
      function Uf(nt, St, Qt) {
        return Po(nt) ? nt.target.readonly && FU(St) ? (Qt && ti(_.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, Le(nt), Le(St)), !1) : NE(St) : CL(nt) && FU(St) ? (Qt && ti(_.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, Le(nt), Le(St)), !1) : Po(St) ? Gf(nt) : !0;
      }
      function gf(nt, St, Qt) {
        return aa(nt, St, 3, Qt);
      }
      function aa(nt, St, Qt = 3, qn = !1, mr, Ln = 0) {
        if (nt.flags & 524288 && St.flags & 134348796)
          return c === Ld && !(St.flags & 131072) && pD(St, nt, c) || pD(nt, St, c, qn ? ti : void 0) ? -1 : (qn && Vn(nt, St, nt, St, mr), 0);
        const Sr = LP(nt, !1);
        let Ur = LP(St, !0);
        if (Sr === Ur)
          return -1;
        if (c === Id)
          return Sr.flags !== Ur.flags ? 0 : Sr.flags & 67358815 ? -1 : (cr(Sr, Ur), Zn(Sr, Ur, !1, 0, Qt));
        if (Sr.flags & 262144 && IE(Sr) === Ur)
          return -1;
        if (Sr.flags & 470302716 && Ur.flags & 1048576) {
          const Fi = Ur.types, Ta = Fi.length === 2 && Fi[0].flags & 98304 ? Fi[1] : Fi.length === 3 && Fi[0].flags & 98304 && Fi[1].flags & 98304 ? Fi[2] : void 0;
          if (Ta && !(Ta.flags & 98304) && (Ur = LP(Ta, !0), Sr === Ur))
            return -1;
        }
        if (c === Ld && !(Ur.flags & 131072) && pD(Ur, Sr, c) || pD(Sr, Ur, c, qn ? ti : void 0))
          return -1;
        if (Sr.flags & 469499904 || Ur.flags & 469499904) {
          if (!(Ln & 2) && I0(Sr) && Zr(Sr) & 8192 && Pa(Sr, Ur, qn))
            return qn && Ya(mr, Sr, St.aliasSymbol ? St : Ur), 0;
          const Ta = (c !== Ld || lp(Sr)) && !(Ln & 2) && Sr.flags & 136970236 && Sr !== Ka && Ur.flags & 2621440 && nLe(Ur) && (fs(Sr).length > 0 || GV(Sr)), Ha = !!(Zr(Sr) & 2048);
          if (Ta && !ZQe(Sr, Ur, Ha)) {
            if (qn) {
              const Qa = Le(nt.aliasSymbol ? nt : Sr), Mo = Le(St.aliasSymbol ? St : Ur), ko = ja(Sr, 0), Cs = ja(Sr, 1);
              ko.length > 0 && aa(ms(ko[0]), Ur, 1, !1) || Cs.length > 0 && aa(ms(Cs[0]), Ur, 1, !1) ? ti(_.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, Qa, Mo) : ti(_.Type_0_has_no_properties_in_common_with_type_1, Qa, Mo);
            }
            return 0;
          }
          cr(Sr, Ur);
          const fi = Sr.flags & 1048576 && Sr.types.length < 4 && !(Ur.flags & 1048576) || Ur.flags & 1048576 && Ur.types.length < 4 && !(Sr.flags & 469499904) ? Yo(Sr, Ur, qn, Ln) : Zn(Sr, Ur, qn, Ln, Qt);
          if (fi)
            return fi;
        }
        return qn && Vn(nt, St, Sr, Ur, mr), 0;
      }
      function Vn(nt, St, Qt, qn, mr) {
        var Ln, Sr;
        const Ur = !!Tie(nt), Fi = !!Tie(St);
        Qt = nt.aliasSymbol || Ur ? nt : Qt, qn = St.aliasSymbol || Fi ? St : qn;
        let Ta = Yn > 0;
        if (Ta && Yn--, Qt.flags & 524288 && qn.flags & 524288) {
          const Ha = M;
          Uf(Qt, qn, !0), M !== Ha && (Ta = !!M);
        }
        if (Qt.flags & 524288 && qn.flags & 134348796)
          yl(Qt, qn);
        else if (Qt.symbol && Qt.flags & 524288 && Ka === Qt)
          ti(_.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);
        else if (Zr(Qt) & 2048 && qn.flags & 2097152) {
          const Ha = qn.types, $a = Wb(Af.IntrinsicAttributes, u), fi = Wb(Af.IntrinsicClassAttributes, u);
          if (!Zo($a) && !Zo(fi) && (wi(Ha, $a) || wi(Ha, fi)))
            return;
        } else
          M = Ere(M, St);
        if (!mr && Ta) {
          hn = [Qt, qn];
          return;
        }
        if (Ya(mr, Qt, qn), Qt.flags & 262144 && ((Sr = (Ln = Qt.symbol) == null ? void 0 : Ln.declarations) != null && Sr[0]) && !IE(Qt)) {
          const Ha = IU(Qt);
          if (Ha.constraint = Ji(qn, Gb(Qt, Ha)), nD(Ha)) {
            const $a = Le(qn, Qt.symbol.declarations[0]);
            da(Rr(Qt.symbol.declarations[0], _.This_type_parameter_might_need_an_extends_0_constraint, $a));
          }
        }
      }
      function cr(nt, St) {
        if (yi && nt.flags & 3145728 && St.flags & 3145728) {
          const Qt = nt, qn = St;
          if (Qt.objectFlags & qn.objectFlags & 32768)
            return;
          const mr = Qt.types.length, Ln = qn.types.length;
          mr * Ln > 1e6 && yi.instant(yi.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 Yi(nt, St) {
        return Yr(Iu(nt, (qn, mr) => {
          var Ln;
          mr = Hu(mr);
          const Sr = mr.flags & 3145728 ? bre(mr, St) : Db(mr, St), Ur = Sr && or(Sr) || ((Ln = O2(mr, St)) == null ? void 0 : Ln.type) || je;
          return Bn(qn, Ur);
        }, void 0) || rt);
      }
      function Pa(nt, St, Qt) {
        var qn;
        if (!qP(St) || !Te && Zr(St) & 4096)
          return !1;
        const mr = !!(Zr(nt) & 2048);
        if ((c === Cd || c === Ld) && (TD(Ka, St) || !mr && qh(St)))
          return !1;
        let Ln = St, Sr;
        St.flags & 1048576 && (Ln = fDe(nt, St, aa) || rct(St), Sr = Ln.flags & 1048576 ? Ln.types : [Ln]);
        for (const Ur of fs(nt))
          if (na(Ur, nt.symbol) && !ZCe(nt, Ur)) {
            if (!_ae(Ln, Ur.escapedName, mr)) {
              if (Qt) {
                const Fi = dl(Ln, qP);
                if (!u)
                  return D.fail();
                if (O1(u) || Ku(u) || Ku(u.parent)) {
                  Ur.valueDeclaration && em(Ur.valueDeclaration) && er(u) === er(Ur.valueDeclaration.name) && (u = Ur.valueDeclaration.name);
                  const Ta = S(Ur), Ha = BIe(Ta, Fi), $a = Ha ? S(Ha) : void 0;
                  $a ? ti(_.Property_0_does_not_exist_on_type_1_Did_you_mean_2, Ta, Le(Fi), $a) : ti(_.Property_0_does_not_exist_on_type_1, Ta, Le(Fi));
                } else {
                  const Ta = ((qn = nt.symbol) == null ? void 0 : qn.declarations) && zl(nt.symbol.declarations);
                  let Ha;
                  if (Ur.valueDeclaration && rr(Ur.valueDeclaration, ($a) => $a === Ta) && er(Ta) === er(u)) {
                    const $a = Ur.valueDeclaration;
                    D.assertNode($a, fy), u = $a;
                    const fi = $a.name;
                    Ve(fi) && (Ha = Eae(fi, Fi));
                  }
                  Ha !== void 0 ? ti(_.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2, S(Ur), Le(Fi), Ha) : ti(_.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, S(Ur), Le(Fi));
                }
              }
              return !0;
            }
            if (Sr && !aa(or(Ur), Yi(Sr, Ur.escapedName), 3, Qt))
              return Qt && Kn(_.Types_of_property_0_are_incompatible, S(Ur)), !0;
          }
        return !1;
      }
      function na(nt, St) {
        return nt.valueDeclaration && St.valueDeclaration && nt.valueDeclaration.parent === St.valueDeclaration;
      }
      function Yo(nt, St, Qt, qn) {
        if (nt.flags & 1048576)
          return c === Ld ? Wu(nt, St, Qt && !(nt.flags & 134348796), qn) : Ee(nt, St, Qt && !(nt.flags & 134348796), qn);
        if (St.flags & 1048576)
          return hc(NP(nt), St, Qt && !(nt.flags & 134348796) && !(St.flags & 134348796));
        if (St.flags & 2097152)
          return So(nt, St, Qt, 2);
        if (c === Ld && St.flags & 134348796) {
          const mr = Zs(nt.types, (Ln) => Ln.flags & 465829888 ? ju(Ln) || he : Ln);
          if (mr !== nt.types) {
            if (nt = Io(mr), nt.flags & 131072)
              return 0;
            if (!(nt.flags & 2097152))
              return aa(nt, St, 1, !1) || aa(St, nt, 1, !1);
          }
        }
        return Wu(nt, St, !1, 1);
      }
      function Ds(nt, St) {
        let Qt = -1;
        const qn = nt.types;
        for (const mr of qn) {
          const Ln = hc(mr, St, !1);
          if (!Ln)
            return 0;
          Qt &= Ln;
        }
        return Qt;
      }
      function hc(nt, St, Qt) {
        const qn = St.types;
        if (St.flags & 1048576) {
          if (Pb(qn, nt))
            return -1;
          const mr = wLe(St, nt);
          if (mr) {
            const Ln = aa(nt, mr, 2, !1);
            if (Ln)
              return Ln;
          }
        }
        for (const mr of qn) {
          const Ln = aa(nt, mr, 2, !1);
          if (Ln)
            return Ln;
        }
        if (Qt) {
          const mr = tLe(nt, St, aa);
          mr && aa(nt, mr, 2, !0);
        }
        return 0;
      }
      function So(nt, St, Qt, qn) {
        let mr = -1;
        const Ln = St.types;
        for (const Sr of Ln) {
          const Ur = aa(nt, Sr, 2, Qt, void 0, qn);
          if (!Ur)
            return 0;
          mr &= Ur;
        }
        return mr;
      }
      function Wu(nt, St, Qt, qn) {
        const mr = nt.types;
        if (nt.flags & 1048576 && Pb(mr, St))
          return -1;
        const Ln = mr.length;
        for (let Sr = 0; Sr < Ln; Sr++) {
          const Ur = aa(mr[Sr], St, 1, Qt && Sr === Ln - 1, void 0, qn);
          if (Ur)
            return Ur;
        }
        return 0;
      }
      function ut(nt, St) {
        return nt.flags & 1048576 && St.flags & 1048576 && !(nt.types[0].flags & 32768) && St.types[0].flags & 32768 ? wL(St, -32769) : St;
      }
      function Ee(nt, St, Qt, qn) {
        let mr = -1;
        const Ln = nt.types, Sr = ut(nt, St);
        for (let Ur = 0; Ur < Ln.length; Ur++) {
          const Fi = Ln[Ur];
          if (Sr.flags & 1048576 && Ln.length >= Sr.types.length && Ln.length % Sr.types.length === 0) {
            const Ha = aa(Fi, Sr.types[Ur % Sr.types.length], 3, !1, void 0, qn);
            if (Ha) {
              mr &= Ha;
              continue;
            }
          }
          const Ta = aa(Fi, St, 1, Qt, void 0, qn);
          if (!Ta)
            return 0;
          mr &= Ta;
        }
        return mr;
      }
      function tr(nt = rt, St = rt, Qt = rt, qn, mr) {
        if (nt.length !== St.length && c === Id)
          return 0;
        const Ln = nt.length <= St.length ? nt.length : St.length;
        let Sr = -1;
        for (let Ur = 0; Ur < Ln; Ur++) {
          const Fi = Ur < Qt.length ? Qt[Ur] : 1, Ta = Fi & 7;
          if (Ta !== 4) {
            const Ha = nt[Ur], $a = St[Ur];
            let fi = -1;
            if (Fi & 8 ? fi = c === Id ? aa(Ha, $a, 3, !1) : fD(Ha, $a) : Ta === 1 ? fi = aa(Ha, $a, 3, qn, void 0, mr) : Ta === 2 ? fi = aa($a, Ha, 3, qn, void 0, mr) : Ta === 3 ? (fi = aa($a, Ha, 3, !1), fi || (fi = aa(Ha, $a, 3, qn, void 0, mr))) : (fi = aa(Ha, $a, 3, qn, void 0, mr), fi && (fi &= aa($a, Ha, 3, qn, void 0, mr))), !fi)
              return 0;
            Sr &= fi;
          }
        }
        return Sr;
      }
      function Zn(nt, St, Qt, qn, mr) {
        var Ln, Sr, Ur;
        if (An)
          return 0;
        const Fi = vie(nt, St, qn, c, !1), Ta = c.get(Fi);
        if (Ta !== void 0 && !(Qt && Ta & 2 && !(Ta & 4))) {
          if (di) {
            const ko = Ta & 24;
            ko & 8 && Ji(nt, wn), ko & 16 && Ji(nt, ca);
          }
          return Ta & 1 ? -1 : 0;
        }
        if (!$)
          $ = [], ge = [], Ne = [];
        else {
          const ko = Fi.startsWith("*") ? vie(nt, St, qn, c, !0) : void 0;
          for (let Cs = 0; Cs < we; Cs++)
            if (Fi === $[Cs] || ko && ko === $[Cs])
              return 3;
          if (ft === 100 || Bt === 100)
            return An = !0, 0;
        }
        const Ha = we;
        $[we] = Fi, we++;
        const $a = Fn;
        mr & 1 && (ge[ft] = nt, ft++, !(Fn & 1) && wP(nt, ge, ft) && (Fn |= 1)), mr & 2 && (Ne[Bt] = St, Bt++, !(Fn & 2) && wP(St, Ne, Bt) && (Fn |= 2));
        let fi, Qa = 0;
        di && (fi = di, di = (ko) => (Qa |= ko ? 16 : 8, fi(ko)));
        let Mo;
        if (Fn === 3 ? ((Ln = yi) == null || Ln.instant(yi.Phase.CheckTypes, "recursiveTypeRelatedTo_DepthLimit", {
          sourceId: nt.id,
          sourceIdStack: ge.map((ko) => ko.id),
          targetId: St.id,
          targetIdStack: Ne.map((ko) => ko.id),
          depth: ft,
          targetDepth: Bt
        }), Mo = 3) : ((Sr = yi) == null || Sr.push(yi.Phase.CheckTypes, "structuredTypeRelatedTo", { sourceId: nt.id, targetId: St.id }), Mo = Tr(nt, St, Qt, qn), (Ur = yi) == null || Ur.pop()), di && (di = fi), mr & 1 && ft--, mr & 2 && Bt--, Fn = $a, Mo) {
          if (Mo === -1 || ft === 0 && Bt === 0) {
            if (Mo === -1 || Mo === 3)
              for (let ko = Ha; ko < we; ko++)
                c.set($[ko], 1 | Qa);
            we = Ha;
          }
        } else
          c.set(Fi, (Qt ? 4 : 0) | 2 | Qa), we = Ha;
        return Mo;
      }
      function Tr(nt, St, Qt, qn) {
        const mr = Un();
        let Ln = kr(nt, St, Qt, qn, mr);
        if (c !== Id) {
          if (!Ln && (nt.flags & 2097152 || nt.flags & 262144 && St.flags & 1048576)) {
            const Sr = RYe(nt.flags & 2097152 ? nt.types : [nt], !!(St.flags & 1048576));
            Sr && ah(Sr, (Ur) => Ur !== nt) && (Ln = aa(Sr, St, 1, !1, void 0, qn));
          }
          Ln && !(qn & 2) && St.flags & 2097152 && !Mb(St) && nt.flags & 2621440 ? (Ln &= Kt(nt, St, Qt, void 0, !1, 0), Ln && I0(nt) && Zr(nt) & 8192 && (Ln &= os(nt, St, !1, Qt, 0))) : Ln && EU(St) && !NE(St) && nt.flags & 2097152 && Hu(nt).flags & 3670016 && !kt(nt.types, (Sr) => Sr === St || !!(Zr(Sr) & 262144)) && (Ln &= Kt(nt, St, Qt, void 0, !0, qn));
        }
        return Ln && on(mr), Ln;
      }
      function kr(nt, St, Qt, qn, mr) {
        let Ln, Sr, Ur = !1, Fi = nt.flags;
        const Ta = St.flags;
        if (c === Id) {
          if (Fi & 3145728) {
            let fi = Ds(nt, St);
            return fi && (fi &= Ds(St, nt)), fi;
          }
          if (Fi & 4194304)
            return aa(nt.type, St.type, 3, !1);
          if (Fi & 8388608 && (Ln = aa(nt.objectType, St.objectType, 3, !1)) && (Ln &= aa(nt.indexType, St.indexType, 3, !1)) || Fi & 16777216 && nt.root.isDistributive === St.root.isDistributive && (Ln = aa(nt.checkType, St.checkType, 3, !1)) && (Ln &= aa(nt.extendsType, St.extendsType, 3, !1)) && (Ln &= aa(T0(nt), T0(St), 3, !1)) && (Ln &= aa(S0(nt), S0(St), 3, !1)) || Fi & 33554432 && (Ln = aa(nt.baseType, St.baseType, 3, !1)) && (Ln &= aa(nt.constraint, St.constraint, 3, !1)))
            return Ln;
          if (!(Fi & 524288))
            return 0;
        } else if (Fi & 3145728 || Ta & 3145728) {
          if (Ln = Yo(nt, St, Qt, qn))
            return Ln;
          if (!(Fi & 465829888 || Fi & 524288 && Ta & 1048576 || Fi & 2097152 && Ta & 467402752))
            return 0;
        }
        if (Fi & 17301504 && nt.aliasSymbol && nt.aliasTypeArguments && nt.aliasSymbol === St.aliasSymbol && !(OU(nt) || OU(St))) {
          const fi = rLe(nt.aliasSymbol);
          if (fi === rt)
            return 1;
          const Qa = Vi(nt.aliasSymbol).typeParameters, Mo = _m(Qa), ko = nv(nt.aliasTypeArguments, Qa, Mo, fr(nt.aliasSymbol.valueDeclaration)), Cs = nv(St.aliasTypeArguments, Qa, Mo, fr(nt.aliasSymbol.valueDeclaration)), cu = $a(ko, Cs, fi, qn);
          if (cu !== void 0)
            return cu;
        }
        if (uLe(nt) && !nt.target.readonly && (Ln = aa(_s(nt)[0], St, 1)) || uLe(St) && (St.target.readonly || FU(ju(nt) || nt)) && (Ln = aa(nt, _s(St)[0], 2)))
          return Ln;
        if (Ta & 262144) {
          if (Zr(nt) & 32 && !nt.declaration.nameType && aa(mm(St), Rp(nt), 3) && !(fm(nt) & 4)) {
            const fi = Wh(nt), Qa = Nd(St, op(nt));
            if (Ln = aa(fi, Qa, 3, Qt))
              return Ln;
          }
          if (c === Ld && Fi & 262144) {
            let fi = Tu(nt);
            if (fi && nD(nt))
              for (; fi && Xh(fi, (Qa) => !!(Qa.flags & 262144)); ) {
                if (Ln = aa(fi, St, 1, !1))
                  return Ln;
                fi = Tu(fi);
              }
            return 0;
          }
        } else if (Ta & 4194304) {
          const fi = St.type;
          if (Fi & 4194304 && (Ln = aa(fi, nt.type, 3, !1)))
            return Ln;
          if (Po(fi)) {
            if (Ln = aa(nt, uCe(fi), 2, Qt))
              return Ln;
          } else {
            const Qa = pre(fi);
            if (Qa) {
              if (aa(nt, mm(Qa, St.stringsOnly), 2, Qt) === -1)
                return -1;
            } else if (Ff(fi)) {
              const Mo = Zy(fi), ko = Rp(fi);
              let Cs;
              if (Mo && tD(fi)) {
                const cu = Hu(yL(fi)), fp = [];
                fre(cu, 8576, !1, (ch) => void fp.push(Ji(Mo, dD(fi.mapper, op(fi), ch)))), Cs = Yr([...fp, Mo]);
              } else
                Cs = Mo || ko;
              if (aa(nt, Cs, 2, Qt) === -1)
                return -1;
            }
          }
        } else if (Ta & 8388608) {
          if (Fi & 8388608) {
            if ((Ln = aa(nt.objectType, St.objectType, 3, Qt)) && (Ln &= aa(nt.indexType, St.indexType, 3, Qt)), Ln)
              return Ln;
            Qt && (Sr = M);
          }
          if (c === Cd || c === Ld) {
            const fi = St.objectType, Qa = St.indexType, Mo = ju(fi) || fi, ko = ju(Qa) || Qa;
            if (!Mb(Mo) && !E0(ko)) {
              const Cs = 4 | (Mo !== fi ? 2 : 0), cu = iv(Mo, ko, Cs);
              if (cu) {
                if (Qt && Sr && on(mr), Ln = aa(nt, cu, 2, Qt, void 0, qn))
                  return Ln;
                Qt && Sr && M && (M = Ha([Sr]) <= Ha([M]) ? Sr : M);
              }
            }
          }
          Qt && (Sr = void 0);
        } else if (Ff(St) && c !== Id) {
          const fi = !!St.declaration.nameType, Qa = Wh(St), Mo = fm(St);
          if (!(Mo & 8)) {
            if (!fi && Qa.flags & 8388608 && Qa.objectType === nt && Qa.indexType === op(St))
              return -1;
            if (!Ff(nt)) {
              const ko = fi ? Zy(St) : Rp(St), Cs = mm(nt, void 0, !0), cu = Mo & 4, fp = cu ? uP(ko, Cs) : void 0;
              if (cu ? !(fp.flags & 131072) : aa(ko, Cs, 3)) {
                const ch = Wh(St), w0 = op(St), wS = wL(ch, -98305);
                if (!fi && wS.flags & 8388608 && wS.indexType === w0) {
                  if (Ln = aa(nt, wS.objectType, 2, Qt))
                    return Ln;
                } else {
                  const JL = fi ? fp || ko : fp ? Io([fp, w0]) : w0, bm = Nd(nt, JL);
                  if (Ln = aa(bm, ch, 3, Qt))
                    return Ln;
                }
              }
              Sr = M, on(mr);
            }
          }
        } else if (Ta & 16777216) {
          if (wP(St, Ne, Bt, 10))
            return 3;
          const fi = St;
          if (!fi.root.inferTypeParameters && !fQe(fi.root)) {
            const Qa = !To(kU(fi.checkType), kU(fi.extendsType)), Mo = !Qa && To(RE(fi.checkType), RE(fi.extendsType));
            if ((Ln = Qa ? -1 : aa(nt, T0(fi), 2, !1, void 0, qn)) && (Ln &= Mo ? -1 : aa(nt, S0(fi), 2, !1, void 0, qn), Ln))
              return Ln;
          }
        } else if (Ta & 134217728) {
          if (Fi & 134217728) {
            if (c === Ld)
              return GZe(nt, St) ? 0 : -1;
            Ji(nt, ca);
          }
          if (Gie(nt, St))
            return -1;
        } else if (St.flags & 268435456 && !(nt.flags & 268435456) && Bie(nt, St))
          return -1;
        if (Fi & 8650752) {
          if (!(Fi & 8388608 && Ta & 8388608)) {
            const fi = IE(nt) || he;
            if (Ln = aa(fi, St, 1, !1, void 0, qn))
              return Ln;
            if (Ln = aa(Mf(fi, nt), St, 1, Qt && fi !== he && !(Ta & Fi & 262144), void 0, qn))
              return Ln;
            if (yre(nt)) {
              const Qa = IE(nt.indexType);
              if (Qa && (Ln = aa(Nd(nt.objectType, Qa), St, 1, Qt)))
                return Ln;
            }
          }
        } else if (Fi & 4194304) {
          if (Ln = aa(Gi, St, 1, Qt))
            return Ln;
        } else if (Fi & 134217728 && !(Ta & 524288)) {
          if (!(Ta & 134217728)) {
            const fi = ju(nt);
            if (fi && fi !== nt && (Ln = aa(fi, St, 1, Qt)))
              return Ln;
          }
        } else if (Fi & 268435456)
          if (Ta & 268435456) {
            if (nt.symbol !== St.symbol)
              return 0;
            if (Ln = aa(nt.type, St.type, 3, Qt))
              return Ln;
          } else {
            const fi = ju(nt);
            if (fi && (Ln = aa(fi, St, 1, Qt)))
              return Ln;
          }
        else if (Fi & 16777216) {
          if (wP(nt, ge, ft, 10))
            return 3;
          if (Ta & 16777216) {
            const Qa = nt.root.inferTypeParameters;
            let Mo = nt.extendsType, ko;
            if (Qa) {
              const Cs = yD(Qa, void 0, 0, gf);
              Kh(Cs.inferences, St.extendsType, Mo, 1536), Mo = Ji(Mo, Cs.mapper), ko = Cs.mapper;
            }
            if (zh(Mo, St.extendsType) && (aa(nt.checkType, St.checkType, 3) || aa(St.checkType, nt.checkType, 3)) && ((Ln = aa(Ji(T0(nt), ko), T0(St), 3, Qt)) && (Ln &= aa(S0(nt), S0(St), 3, Qt)), Ln))
              return Ln;
          } else {
            const Qa = nD(nt) ? LAe(nt) : void 0;
            if (Qa && (Ln = aa(Qa, St, 1, Qt)))
              return Ln;
          }
          const fi = mre(nt);
          if (fi && (Ln = aa(fi, St, 1, Qt)))
            return Ln;
        } else {
          if (c !== Km && c !== Z_ && AYe(St) && qh(nt))
            return -1;
          if (Ff(St))
            return Ff(nt) && (Ln = Ia(nt, St, Qt)) ? Ln : 0;
          const fi = !!(Fi & 134348796);
          if (c !== Id)
            nt = Hu(nt), Fi = nt.flags;
          else if (Ff(nt))
            return 0;
          if (Zr(nt) & 4 && Zr(St) & 4 && nt.target === St.target && !Po(nt) && !(OU(nt) || OU(St))) {
            if (BU(nt))
              return -1;
            const Qa = gie(nt.target);
            if (Qa === rt)
              return 1;
            const Mo = $a(_s(nt), _s(St), Qa, qn);
            if (Mo !== void 0)
              return Mo;
          } else {
            if (CL(St) ? NE(nt) : Gf(St) && Po(nt) && !nt.target.readonly)
              return c !== Id ? aa(Hg(nt, pt) || ke, Hg(St, pt) || ke, 3, Qt) : 0;
            if ((c === Km || c === Z_) && qh(St) && Zr(St) & 8192 && !qh(nt))
              return 0;
          }
          if (Fi & 2621440 && Ta & 524288) {
            const Qa = Qt && M === mr.errorInfo && !fi;
            if (Ln = Kt(nt, St, Qa, void 0, !1, qn), Ln && (Ln &= Jn(nt, St, 0, Qa, qn), Ln && (Ln &= Jn(nt, St, 1, Qa, qn), Ln && (Ln &= os(nt, St, fi, Qa, qn)))), Ur && Ln)
              M = Sr || M || mr.errorInfo;
            else if (Ln)
              return Ln;
          }
          if (Fi & 2621440 && Ta & 1048576) {
            const Qa = wL(St, 36175872);
            if (Qa.flags & 1048576) {
              const Mo = Ii(nt, Qa);
              if (Mo)
                return Mo;
            }
          }
        }
        return 0;
        function Ha(fi) {
          return fi ? Iu(fi, (Qa, Mo) => Qa + 1 + Ha(Mo.next), 0) : 0;
        }
        function $a(fi, Qa, Mo, ko) {
          if (Ln = tr(fi, Qa, Mo, Qt, ko))
            return Ln;
          if (kt(Mo, (cu) => !!(cu & 24))) {
            Sr = void 0, on(mr);
            return;
          }
          const Cs = Qa && eZe(Qa, Mo);
          if (Ur = !Cs, Mo !== rt && !Cs) {
            if (Ur && !(Qt && kt(Mo, (cu) => (cu & 7) === 0)))
              return 0;
            Sr = M, on(mr);
          }
        }
      }
      function Ia(nt, St, Qt) {
        if (c === Ld || (c === Id ? fm(nt) === fm(St) : _re(nt) <= _re(St))) {
          let mr;
          const Ln = Rp(St), Sr = Ji(Rp(nt), _re(nt) < 0 ? wn : ca);
          if (mr = aa(Ln, Sr, 3, Qt)) {
            const Ur = hd([op(nt)], [op(St)]);
            if (Ji(Zy(nt), Ur) === Ji(Zy(St), Ur))
              return mr & aa(Ji(Wh(nt), Ur), Wh(St), 3, Qt);
          }
        }
        return 0;
      }
      function Ii(nt, St) {
        var Qt;
        const qn = fs(nt), mr = kLe(qn, St);
        if (!mr)
          return 0;
        let Ln = 1;
        for (const $a of mr)
          if (Ln *= pet(g0($a)), Ln > 25)
            return (Qt = yi) == null || Qt.instant(yi.Phase.CheckTypes, "typeRelatedToDiscriminatedType_DepthLimit", { sourceId: nt.id, targetId: St.id, numCombinations: Ln }), 0;
        const Sr = new Array(mr.length), Ur = /* @__PURE__ */ new Set();
        for (let $a = 0; $a < mr.length; $a++) {
          const fi = mr[$a], Qa = g0(fi);
          Sr[$a] = Qa.flags & 1048576 ? Qa.types : [Qa], Ur.add(fi.escapedName);
        }
        const Fi = kse(Sr), Ta = [];
        for (const $a of Fi) {
          let fi = !1;
          e:
            for (const Qa of St.types) {
              for (let Mo = 0; Mo < mr.length; Mo++) {
                const ko = mr[Mo], Cs = so(Qa, ko.escapedName);
                if (!Cs)
                  continue e;
                if (ko === Cs)
                  continue;
                if (!Ft(nt, St, ko, Cs, (fp) => $a[Mo], !1, 0, W || c === Ld))
                  continue e;
              }
              c_(Ta, Qa, M0), fi = !0;
            }
          if (!fi)
            return 0;
        }
        let Ha = -1;
        for (const $a of Ta)
          if (Ha &= Kt(nt, $a, !1, Ur, !1, 0), Ha && (Ha &= Jn(nt, $a, 0, !1, 0), Ha && (Ha &= Jn(nt, $a, 1, !1, 0), Ha && !(Po(nt) && Po($a)) && (Ha &= os(nt, $a, !1, !1, 0)))), !Ha)
            return Ha;
        return Ha;
      }
      function Lr(nt, St) {
        if (!St || nt.length === 0)
          return nt;
        let Qt;
        for (let qn = 0; qn < nt.length; qn++)
          St.has(nt[qn].escapedName) ? Qt || (Qt = nt.slice(0, qn)) : Qt && Qt.push(nt[qn]);
        return Qt || nt;
      }
      function bt(nt, St, Qt, qn, mr) {
        const Ln = W && !!(Cc(St) & 48), Sr = Co(g0(St), !1, Ln), Ur = Qt(nt);
        return aa(Ur, Sr, 3, qn, void 0, mr);
      }
      function Ft(nt, St, Qt, qn, mr, Ln, Sr, Ur) {
        const Fi = Kf(Qt), Ta = Kf(qn);
        if (Fi & 8 || Ta & 8) {
          if (Qt.valueDeclaration !== qn.valueDeclaration)
            return Ln && (Fi & 8 && Ta & 8 ? ti(_.Types_have_separate_declarations_of_a_private_property_0, S(qn)) : ti(_.Property_0_is_private_in_type_1_but_not_in_type_2, S(qn), Le(Fi & 8 ? nt : St), Le(Fi & 8 ? St : nt))), 0;
        } else if (Ta & 16) {
          if (!aZe(Qt, qn))
            return Ln && ti(_.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, S(qn), Le(xS(Qt) || nt), Le(xS(qn) || St)), 0;
        } else if (Fi & 16)
          return Ln && ti(_.Property_0_is_protected_in_type_1_but_public_in_type_2, S(qn), Le(nt), Le(St)), 0;
        if (c === Z_ && dp(Qt) && !dp(qn))
          return 0;
        const Ha = bt(Qt, qn, mr, Ln, Sr);
        return Ha ? !Ur && Qt.flags & 16777216 && qn.flags & 106500 && !(qn.flags & 16777216) ? (Ln && ti(_.Property_0_is_optional_in_type_1_but_required_in_type_2, S(qn), Le(nt), Le(St)), 0) : Ha : (Ln && Kn(_.Types_of_property_0_are_incompatible, S(qn)), 0);
      }
      function $t(nt, St, Qt, qn) {
        let mr = !1;
        if (Qt.valueDeclaration && _u(Qt.valueDeclaration) && Di(Qt.valueDeclaration.name) && nt.symbol && nt.symbol.flags & 32) {
          const Sr = Qt.valueDeclaration.name.escapedText, Ur = IN(nt.symbol, Sr);
          if (Ur && so(nt, Ur)) {
            const Fi = N.getDeclarationName(nt.symbol.valueDeclaration), Ta = N.getDeclarationName(St.symbol.valueDeclaration);
            ti(_.Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2, Zf(Sr), Zf(Fi.escapedText === "" ? p8 : Fi), Zf(Ta.escapedText === "" ? p8 : Ta));
            return;
          }
        }
        const Ln = Do(Pie(nt, St, qn, !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(Qt, void 0, 0, 20);
          ti(_.Property_0_is_missing_in_type_1_but_required_in_type_2, Sr, ...rn(nt, St)), Ie(Qt.declarations) && da(Rr(Qt.declarations[0], _._0_is_declared_here, Sr)), mr && M && Yn++;
        } else
          Uf(nt, St, !1) && (Ln.length > 5 ? ti(_.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more, Le(nt), Le(St), en(Ln.slice(0, 4), (Sr) => S(Sr)).join(", "), Ln.length - 4) : ti(_.Type_0_is_missing_the_following_properties_from_type_1_Colon_2, Le(nt), Le(St), en(Ln, (Sr) => S(Sr)).join(", ")), mr && M && Yn++);
      }
      function Kt(nt, St, Qt, qn, mr, Ln) {
        if (c === Id)
          return kn(nt, St, qn);
        let Sr = -1;
        if (Po(St)) {
          if (NE(nt)) {
            if (!St.target.readonly && (CL(nt) || Po(nt) && nt.target.readonly))
              return 0;
            const $a = b0(nt), fi = b0(St), Qa = Po(nt) ? nt.target.combinedFlags & 4 : 4, Mo = St.target.combinedFlags & 4, ko = Po(nt) ? nt.target.minLength : 0, Cs = St.target.minLength;
            if (!Qa && $a < Cs)
              return Qt && ti(_.Source_has_0_element_s_but_target_requires_1, $a, Cs), 0;
            if (!Mo && fi < ko)
              return Qt && ti(_.Source_has_0_element_s_but_target_allows_only_1, ko, fi), 0;
            if (!Mo && (Qa || fi < $a))
              return Qt && (ko < Cs ? ti(_.Target_requires_0_element_s_but_source_may_have_fewer, Cs) : ti(_.Target_allows_only_0_element_s_but_source_may_have_more, fi)), 0;
            const cu = _s(nt), fp = _s(St), ch = D$e(St.target, 11), w0 = vP(St.target, 11), wS = St.target.hasRestElement;
            let JL = !!qn;
            for (let bm = 0; bm < $a; bm++) {
              const eA = Po(nt) ? nt.target.elementFlags[bm] : 4, tA = $a - 1 - bm, zE = wS && bm >= ch ? fi - 1 - Math.min(tA, w0) : bm, Od = St.target.elementFlags[zE];
              if (Od & 8 && !(eA & 8))
                return Qt && ti(_.Source_provides_no_match_for_variadic_element_at_position_0_in_target, zE), 0;
              if (eA & 8 && !(Od & 12))
                return Qt && ti(_.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target, bm, zE), 0;
              if (Od & 1 && !(eA & 1))
                return Qt && ti(_.Source_provides_no_match_for_required_element_at_position_0_in_target, zE), 0;
              if (JL && ((eA & 12 || Od & 12) && (JL = !1), JL && (qn != null && qn.has("" + bm))))
                continue;
              const wt = OE(cu[bm], !!(eA & Od & 2)), xr = fp[zE], vi = eA & 8 && Od & 4 ? xu(xr) : OE(xr, !!(Od & 2)), oi = aa(wt, vi, 3, Qt, void 0, Ln);
              if (!oi)
                return Qt && (fi > 1 || $a > 1) && (wS && bm >= ch && tA >= w0 && ch !== $a - w0 - 1 ? Kn(_.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, ch, $a - w0 - 1, zE) : Kn(_.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, bm, zE)), 0;
              Sr &= oi;
            }
            return Sr;
          }
          if (St.target.combinedFlags & 12)
            return 0;
        }
        const Ur = (c === Km || c === Z_) && !I0(nt) && !BU(nt) && !Po(nt), Fi = Mie(nt, St, Ur, !1);
        if (Fi)
          return Qt && oa(nt, St) && $t(nt, St, Fi, Ur), 0;
        if (I0(St)) {
          for (const $a of Lr(fs(nt), qn))
            if (!Db(St, $a.escapedName) && !(or($a).flags & 32768))
              return Qt && ti(_.Property_0_does_not_exist_on_type_1, S($a), Le(St)), 0;
        }
        const Ta = fs(St), Ha = Po(nt) && Po(St);
        for (const $a of Lr(Ta, qn)) {
          const fi = $a.escapedName;
          if (!($a.flags & 4194304) && (!Ha || Eh(fi) || fi === "length") && (!mr || $a.flags & 16777216)) {
            const Qa = so(nt, fi);
            if (Qa && Qa !== $a) {
              const Mo = Ft(nt, St, Qa, $a, g0, Qt, Ln, c === Ld);
              if (!Mo)
                return 0;
              Sr &= Mo;
            }
          }
        }
        return Sr;
      }
      function kn(nt, St, Qt) {
        if (!(nt.flags & 524288 && St.flags & 524288))
          return 0;
        const qn = Lr(ev(nt), Qt), mr = Lr(ev(St), Qt);
        if (qn.length !== mr.length)
          return 0;
        let Ln = -1;
        for (const Sr of qn) {
          const Ur = Db(St, Sr.escapedName);
          if (!Ur)
            return 0;
          const Fi = bie(Sr, Ur, aa);
          if (!Fi)
            return 0;
          Ln &= Fi;
        }
        return Ln;
      }
      function Jn(nt, St, Qt, qn, mr) {
        var Ln, Sr;
        if (c === Id)
          return Qr(nt, St, Qt);
        if (St === Sa || nt === Sa)
          return -1;
        const Ur = nt.symbol && Fp(nt.symbol.valueDeclaration), Fi = St.symbol && Fp(St.symbol.valueDeclaration), Ta = ja(nt, Ur && Qt === 1 ? 0 : Qt), Ha = ja(St, Fi && Qt === 1 ? 0 : Qt);
        if (Qt === 1 && Ta.length && Ha.length) {
          const ko = !!(Ta[0].flags & 4), Cs = !!(Ha[0].flags & 4);
          if (ko && !Cs)
            return qn && ti(_.Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type), 0;
          if (!gd(Ta[0], Ha[0], qn))
            return 0;
        }
        let $a = -1;
        const fi = Qt === 1 ? gn : hi, Qa = Zr(nt), Mo = Zr(St);
        if (Qa & 64 && Mo & 64 && nt.symbol === St.symbol || Qa & 4 && Mo & 4 && nt.target === St.target)
          for (let ko = 0; ko < Ha.length; ko++) {
            const Cs = ur(Ta[ko], Ha[ko], !0, qn, mr, fi(Ta[ko], Ha[ko]));
            if (!Cs)
              return 0;
            $a &= Cs;
          }
        else if (Ta.length === 1 && Ha.length === 1) {
          const ko = c === Ld || !!Y.noStrictGenericChecks, Cs = ss(Ta), cu = ss(Ha);
          if ($a = ur(Cs, cu, ko, qn, mr, fi(Cs, cu)), !$a && qn && Qt === 1 && Qa & Mo && (((Ln = cu.declaration) == null ? void 0 : Ln.kind) === 173 || ((Sr = Cs.declaration) == null ? void 0 : Sr.kind) === 173)) {
            const fp = (ch) => se(ch, void 0, 262144, Qt);
            return ti(_.Type_0_is_not_assignable_to_type_1, fp(Cs), fp(cu)), ti(_.Types_of_construct_signatures_are_incompatible), $a;
          }
        } else
          e:
            for (const ko of Ha) {
              const Cs = Un();
              let cu = qn;
              for (const fp of Ta) {
                const ch = ur(fp, ko, !0, cu, mr, fi(fp, ko));
                if (ch) {
                  $a &= ch, on(Cs);
                  continue e;
                }
                cu = !1;
              }
              return cu && ti(_.Type_0_provides_no_match_for_the_signature_1, Le(nt), se(ko, void 0, void 0, Qt)), 0;
            }
        return $a;
      }
      function oa(nt, St) {
        const Qt = pP(nt, 0), qn = pP(nt, 1), mr = ev(nt);
        return (Qt.length || qn.length) && !mr.length ? !!(ja(St, 0).length && Qt.length || ja(St, 1).length && qn.length) : !0;
      }
      function hi(nt, St) {
        return nt.parameters.length === 0 && St.parameters.length === 0 ? (Qt, qn) => Kn(_.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, Le(Qt), Le(qn)) : (Qt, qn) => Kn(_.Call_signature_return_types_0_and_1_are_incompatible, Le(Qt), Le(qn));
      }
      function gn(nt, St) {
        return nt.parameters.length === 0 && St.parameters.length === 0 ? (Qt, qn) => Kn(_.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, Le(Qt), Le(qn)) : (Qt, qn) => Kn(_.Construct_signature_return_types_0_and_1_are_incompatible, Le(Qt), Le(qn));
      }
      function ur(nt, St, Qt, qn, mr, Ln) {
        const Sr = c === Km ? 16 : c === Z_ ? 24 : 0;
        return fie(Qt ? oD(nt) : nt, Qt ? oD(St) : St, Sr, qn, ti, Ln, Ur, ca);
        function Ur(Fi, Ta, Ha) {
          return aa(Fi, Ta, 3, Ha, void 0, mr);
        }
      }
      function Qr(nt, St, Qt) {
        const qn = ja(nt, Qt), mr = ja(St, Qt);
        if (qn.length !== mr.length)
          return 0;
        let Ln = -1;
        for (let Sr = 0; Sr < qn.length; Sr++) {
          const Ur = DP(qn[Sr], mr[Sr], !1, !1, !1, aa);
          if (!Ur)
            return 0;
          Ln &= Ur;
        }
        return Ln;
      }
      function vr(nt, St, Qt, qn) {
        let mr = -1;
        const Ln = St.keyType, Sr = nt.flags & 2097152 ? fP(nt) : ev(nt);
        for (const Ur of Sr)
          if (!ZCe(nt, Ur) && N2(TL(Ur, 8576), Ln)) {
            const Fi = g0(Ur), Ta = We || Fi.flags & 32768 || Ln === pt || !(Ur.flags & 16777216) ? Fi : i_(Fi, 524288), Ha = aa(Ta, St.type, 3, Qt, void 0, qn);
            if (!Ha)
              return Qt && ti(_.Property_0_is_incompatible_with_index_signature, S(Ur)), 0;
            mr &= Ha;
          }
        for (const Ur of Su(nt))
          if (N2(Ur.keyType, Ln)) {
            const Fi = va(Ur, St, Qt, qn);
            if (!Fi)
              return 0;
            mr &= Fi;
          }
        return mr;
      }
      function va(nt, St, Qt, qn) {
        const mr = aa(nt.type, St.type, 3, Qt, void 0, qn);
        return !mr && Qt && (nt.keyType === St.keyType ? ti(_._0_index_signatures_are_incompatible, Le(nt.keyType)) : ti(_._0_and_1_index_signatures_are_incompatible, Le(nt.keyType), Le(St.keyType))), mr;
      }
      function os(nt, St, Qt, qn, mr) {
        if (c === Id)
          return Bs(nt, St);
        const Ln = Su(St), Sr = kt(Ln, (Fi) => Fi.keyType === ue);
        let Ur = -1;
        for (const Fi of Ln) {
          const Ta = !Qt && Sr && Fi.type.flags & 1 ? -1 : Ff(nt) && Sr ? aa(Wh(nt), Fi.type, 3, qn) : Ms(nt, Fi, qn, mr);
          if (!Ta)
            return 0;
          Ur &= Ta;
        }
        return Ur;
      }
      function Ms(nt, St, Qt, qn) {
        const mr = mP(nt, St.keyType);
        return mr ? va(mr, St, Qt, qn) : !(qn & 1) && (c !== Z_ || Zr(nt) & 8192) && jU(nt) ? vr(nt, St, Qt, qn) : (Qt && ti(_.Index_signature_for_type_0_is_missing_in_type_1, Le(St.keyType), Le(nt)), 0);
      }
      function Bs(nt, St) {
        const Qt = Su(nt), qn = Su(St);
        if (Qt.length !== qn.length)
          return 0;
        for (const mr of qn) {
          const Ln = ih(nt, mr.keyType);
          if (!(Ln && aa(Ln.type, mr.type, 3) && Ln.isReadonly === mr.isReadonly))
            return 0;
        }
        return -1;
      }
      function gd(nt, St, Qt) {
        if (!nt.declaration || !St.declaration)
          return !0;
        const qn = cx(nt.declaration, 24), mr = cx(St.declaration, 24);
        return mr === 8 || mr === 16 && qn !== 8 || mr !== 16 && !qn ? !0 : (Qt && ti(_.Cannot_assign_a_0_constructor_type_to_a_1_constructor_type, pf(qn), pf(mr)), !1);
      }
    }
    function mie(n) {
      if (n.flags & 16)
        return !1;
      if (n.flags & 3145728)
        return !!ze(n.types, mie);
      if (n.flags & 465829888) {
        const a = IE(n);
        if (a && a !== n)
          return mie(a);
      }
      return lp(n) || !!(n.flags & 134217728) || !!(n.flags & 268435456);
    }
    function eLe(n, a) {
      return Po(n) && Po(a) ? rt : fs(a).filter((c) => NU(ul(n, c.escapedName), or(c)));
    }
    function NU(n, a) {
      return !!n && !!a && _c(n, 32768) && !!gD(a);
    }
    function QQe(n) {
      return fs(n).filter((a) => gD(or(a)));
    }
    function tLe(n, a, c = uie) {
      return fDe(n, a, c, !0) || Zst(n, a) || ect(n, a) || tct(n, a) || nct(n, a);
    }
    function hie(n, a, c, u, p) {
      const g = n.types.map((M) => {
      });
      for (const [M, J] of a) {
        const $ = vre(n, J);
        if (p && $ && Cc($) & 16)
          continue;
        let ge = 0;
        for (const Ne of n.types) {
          const we = ul(Ne, J);
          we && c(M(), we) ? 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 (!zh(n.types[x], n.types[R]))
          return u;
        R = g.indexOf(!0, R + 1);
      }
      return n.types[x];
    }
    function nLe(n) {
      if (n.flags & 524288) {
        const a = sp(n);
        return a.callSignatures.length === 0 && a.constructSignatures.length === 0 && a.indexInfos.length === 0 && a.properties.length > 0 && Rn(a.properties, (c) => !!(c.flags & 16777216));
      }
      return n.flags & 2097152 ? Rn(n.types, nLe) : !1;
    }
    function ZQe(n, a, c) {
      for (const u of fs(n))
        if (_ae(a, u.escapedName, c))
          return !0;
      return !1;
    }
    function gie(n) {
      return n === ys || n === cs || n.objectFlags & 8 ? X : iLe(n.symbol, n.typeParameters);
    }
    function rLe(n) {
      return iLe(n, Vi(n).typeParameters);
    }
    function iLe(n, a = rt) {
      var c, u;
      const p = Vi(n);
      if (!p.variances) {
        (c = yi) == null || c.push(yi.Phase.CheckTypes, "getVariancesWorker", { arity: a.length, id: Au(Fs(n)) }), p.variances = rt;
        const g = [];
        for (const x of a) {
          const R = yie(x);
          let M = R & 65536 ? R & 32768 ? 0 : 1 : R & 32768 ? 2 : void 0;
          if (M === void 0) {
            let J = !1, $ = !1;
            const ge = di;
            di = (ft) => ft ? $ = !0 : J = !0;
            const Ne = IP(n, x, jd), we = IP(n, x, rl);
            M = (To(we, Ne) ? 1 : 0) | (To(Ne, we) ? 2 : 0), M === 3 && To(IP(n, x, Hl), Ne) && (M = 4), di = ge, (J || $) && (J && (M |= 8), $ && (M |= 16));
          }
          g.push(M);
        }
        p.variances = g, (u = yi) == null || u.pop({ variances: g.map(D.formatVariance) });
      }
      return p.variances;
    }
    function IP(n, a, c) {
      const u = Gb(a, c), p = Fs(n);
      if (Zo(p))
        return p;
      const g = n.flags & 524288 ? B2(n, Jg(Vi(n).typeParameters, u)) : Wg(p, Jg(p.typeParameters, u));
      return Nn.add(Au(g)), g;
    }
    function OU(n) {
      return Nn.has(Au(n));
    }
    function yie(n) {
      var a;
      return Iu((a = n.symbol) == null ? void 0 : a.declarations, (c, u) => c | Ru(u), 0) & 100352;
    }
    function eZe(n, a) {
      for (let c = 0; c < a.length; c++)
        if ((a[c] & 7) === 1 && n[c].flags & 16384)
          return !0;
      return !1;
    }
    function tZe(n) {
      return n.flags & 262144 && !Tu(n);
    }
    function nZe(n) {
      return !!(Zr(n) & 4) && !n.node;
    }
    function PU(n) {
      return nZe(n) && kt(_s(n), (a) => !!(a.flags & 262144) || PU(a));
    }
    function rZe(n, a, c, u) {
      const p = [];
      let g = "";
      const x = M(n, 0), R = M(a, 0);
      return `${g}${x},${R}${c}`;
      function M(J, $ = 0) {
        let ge = "" + J.target.id;
        for (const Ne of _s(J)) {
          if (Ne.flags & 262144) {
            if (u || tZe(Ne)) {
              let we = p.indexOf(Ne);
              we < 0 && (we = p.length, p.push(Ne)), ge += "=" + we;
              continue;
            }
            g = "*";
          } else if ($ < 4 && PU(Ne)) {
            ge += "<" + M(Ne, $ + 1) + ">";
            continue;
          }
          ge += "-" + Ne.id;
        }
        return ge;
      }
    }
    function vie(n, a, c, u, p) {
      if (u === Id && n.id > a.id) {
        const x = n;
        n = a, a = x;
      }
      const g = c ? ":" + c : "";
      return PU(n) && PU(a) ? rZe(n, a, g, p) : `${n.id},${a.id}${g}`;
    }
    function kP(n, a) {
      if (Cc(n) & 6) {
        for (const c of n.links.containingType.types) {
          const u = so(c, n.escapedName), p = u && kP(u, a);
          if (p)
            return p;
        }
        return;
      }
      return a(n);
    }
    function xS(n) {
      return n.parent && n.parent.flags & 32 ? Fs(pd(n)) : void 0;
    }
    function MU(n) {
      const a = xS(n), c = a && Oo(a)[0];
      return c && ul(c, n.escapedName);
    }
    function iZe(n, a) {
      return kP(n, (c) => {
        const u = xS(c);
        return u ? CE(u, a) : !1;
      });
    }
    function aZe(n, a) {
      return !kP(a, (c) => Kf(c) & 16 ? !iZe(n, xS(c)) : !1);
    }
    function aLe(n, a, c) {
      return kP(a, (u) => Kf(u, c) & 16 ? !CE(n, xS(u)) : !1) ? void 0 : n;
    }
    function wP(n, a, c, u = 3) {
      if (c >= u) {
        if (n.flags & 2097152)
          return kt(n.types, (R) => wP(R, a, c, u));
        const p = AL(n);
        let g = 0, x = 0;
        for (let R = 0; R < c; R++) {
          const M = a[R];
          if (M.flags & 2097152 ? kt(M.types, (J) => AL(J) === p) : AL(M) === p) {
            if (M.id >= x && (g++, g >= u))
              return !0;
            x = M.id;
          }
        }
      }
      return !1;
    }
    function AL(n) {
      if (n.flags & 524288 && !Uie(n)) {
        if (Zr(n) && n.node)
          return n.node;
        if (n.symbol && !(Zr(n) & 16 && n.symbol.flags & 32))
          return n.symbol;
        if (Po(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 oZe(n, a) {
      return bie(n, a, fD) !== 0;
    }
    function bie(n, a, c) {
      if (n === a)
        return -1;
      const u = Kf(n) & 24, p = Kf(a) & 24;
      if (u !== p)
        return 0;
      if (u) {
        if (Q2(n) !== Q2(a))
          return 0;
      } else if ((n.flags & 16777216) !== (a.flags & 16777216))
        return 0;
      return dp(n) !== dp(a) ? 0 : c(or(n), or(a));
    }
    function sZe(n, a, c) {
      const u = $d(n), p = $d(a), g = ym(n), x = ym(a), R = vm(n), M = vm(a);
      return !!(u === p && g === x && R === M || c && g <= x);
    }
    function DP(n, a, c, u, p, g) {
      if (n === a)
        return -1;
      if (!sZe(n, a, c) || Ie(n.typeParameters) !== Ie(a.typeParameters))
        return 0;
      if (a.typeParameters) {
        const M = hd(n.typeParameters, a.typeParameters);
        for (let J = 0; J < a.typeParameters.length; J++) {
          const $ = n.typeParameters[J], ge = a.typeParameters[J];
          if (!($ === ge || g(Ji(bL($), M) || he, bL(ge) || he) && g(Ji(kE($), M) || he, kE(ge) || he)))
            return 0;
        }
        n = H2(n, M, !0);
      }
      let x = -1;
      if (!u) {
        const M = Nb(n);
        if (M) {
          const J = Nb(a);
          if (J) {
            const $ = g(M, J);
            if (!$)
              return 0;
            x &= $;
          }
        }
      }
      const R = $d(a);
      for (let M = 0; M < R; M++) {
        const J = up(n, M), $ = up(a, M), ge = g($, J);
        if (!ge)
          return 0;
        x &= ge;
      }
      if (!p) {
        const M = t_(n), J = t_(a);
        x &= M || J ? cZe(M, J, g) : g(ms(n), ms(a));
      }
      return x;
    }
    function cZe(n, a, c) {
      return n && a && Jre(n, a) ? n.type === a.type ? -1 : n.type && a.type ? c(n.type, a.type) : 0 : 0;
    }
    function lZe(n) {
      let a;
      for (const c of n)
        if (!(c.flags & 131072)) {
          const u = cv(c);
          if (a ?? (a = u), u === c || u !== a)
            return !1;
        }
      return !0;
    }
    function oLe(n) {
      return Iu(n, (a, c) => a | (c.flags & 1048576 ? oLe(c.types) : c.flags), 0);
    }
    function uZe(n) {
      if (n.length === 1)
        return n[0];
      const a = W ? Zs(n, (u) => dl(u, (p) => !(p.flags & 98304))) : n, c = lZe(a) ? Yr(a) : Iu(a, (u, p) => ov(u, p) ? p : u);
      return a === n ? c : UU(c, oLe(n) & 98304);
    }
    function dZe(n) {
      return Iu(n, (a, c) => ov(c, a) ? c : a);
    }
    function Gf(n) {
      return !!(Zr(n) & 4) && (n.target === ys || n.target === cs);
    }
    function CL(n) {
      return !!(Zr(n) & 4) && n.target === cs;
    }
    function NE(n) {
      return Gf(n) || Po(n);
    }
    function FU(n) {
      return Gf(n) && !CL(n) || Po(n) && !n.target.readonly;
    }
    function Eie(n) {
      return Gf(n) ? _s(n)[0] : void 0;
    }
    function C0(n) {
      return Gf(n) || !(n.flags & 98304) && To(n, qi);
    }
    function Tie(n) {
      if (!(Zr(n) & 4) || !(Zr(n.target) & 3))
        return;
      if (Zr(n) & 33554432)
        return Zr(n) & 67108864 ? n.cachedEquivalentBaseType : void 0;
      n.objectFlags |= 33554432;
      const a = n.target;
      if (Zr(a) & 1) {
        const p = Dn(a);
        if (p && p.expression.kind !== 79 && p.expression.kind !== 208)
          return;
      }
      const c = Oo(a);
      if (c.length !== 1 || Qy(n.symbol).size)
        return;
      let u = Ie(a.typeParameters) ? Ji(c[0], hd(a.typeParameters, _s(n).slice(0, a.typeParameters.length))) : c[0];
      return Ie(_s(n)) > Ie(a.typeParameters) && (u = Mf(u, Ho(_s(n)))), n.objectFlags |= 67108864, n.cachedEquivalentBaseType = u;
    }
    function sLe(n) {
      return W ? n === fn : n === Qe;
    }
    function BU(n) {
      const a = Eie(n);
      return !!a && sLe(a);
    }
    function LL(n) {
      return Po(n) || !!so(n, "0");
    }
    function GU(n) {
      return C0(n) || LL(n);
    }
    function fZe(n, a) {
      const c = ul(n, "" + a);
      if (c)
        return c;
      if (ah(n, Po))
        return Ks(n, (u) => {
          const p = u, g = RP(p);
          return g ? Y.noUncheckedIndexedAccess && a >= p.target.fixedLength + vP(p.target, 3) ? Yr([g, je]) : g : je;
        });
    }
    function _Ze(n) {
      return !(n.flags & 240544);
    }
    function lp(n) {
      return !!(n.flags & 109472);
    }
    function cLe(n) {
      const a = tv(n);
      return a.flags & 2097152 ? kt(a.types, lp) : lp(a);
    }
    function pZe(n) {
      return n.flags & 2097152 && cn(n.types, lp) || n;
    }
    function mD(n) {
      return n.flags & 16 ? !0 : n.flags & 1048576 ? n.flags & 1024 ? !0 : Rn(n.types, lp) : lp(n);
    }
    function cv(n) {
      return n.flags & 1056 ? Qw(n) : n.flags & 402653312 ? ue : n.flags & 256 ? pt : n.flags & 2048 ? Wt : n.flags & 512 ? Re : n.flags & 1048576 ? mZe(n) : n;
    }
    function mZe(n) {
      var a;
      const c = `B${Au(n)}`;
      return (a = pb(c)) != null ? a : Ag(c, Ks(n, cv));
    }
    function Sie(n) {
      return n.flags & 402653312 ? ue : n.flags & 288 ? pt : n.flags & 2048 ? Wt : n.flags & 512 ? Re : n.flags & 1048576 ? Ks(n, Sie) : n;
    }
    function Vb(n) {
      return n.flags & 1056 && Bb(n) ? Qw(n) : n.flags & 128 && Bb(n) ? ue : n.flags & 256 && Bb(n) ? pt : n.flags & 2048 && Bb(n) ? Wt : n.flags & 512 && Bb(n) ? Re : n.flags & 1048576 ? Ks(n, Vb) : n;
    }
    function lLe(n) {
      return n.flags & 8192 ? q : n.flags & 1048576 ? Ks(n, lLe) : n;
    }
    function xie(n, a) {
      return SV(n, a) || (n = lLe(Vb(n))), md(n);
    }
    function hZe(n, a, c) {
      if (n && lp(n)) {
        const u = a ? c ? MD(a) : a : void 0;
        n = xie(n, u);
      }
      return n;
    }
    function Aie(n, a, c, u) {
      if (n && lp(n)) {
        const p = a ? zb(c, a, u) : void 0;
        n = xie(n, p);
      }
      return n;
    }
    function Po(n) {
      return !!(Zr(n) & 4 && n.target.objectFlags & 8);
    }
    function W2(n) {
      return Po(n) && !!(n.target.combinedFlags & 8);
    }
    function uLe(n) {
      return W2(n) && n.target.elementFlags.length === 1;
    }
    function RP(n) {
      return IL(n, n.target.fixedLength);
    }
    function gZe(n) {
      const a = RP(n);
      return a && xu(a);
    }
    function IL(n, a, c = 0, u = !1, p = !1) {
      const g = b0(n) - c;
      if (a < g) {
        const x = _s(n), R = [];
        for (let M = a; M < g; M++) {
          const J = x[M];
          R.push(n.target.elementFlags[M] & 8 ? Nd(J, pt) : J);
        }
        return u ? Io(R) : Yr(R, p ? 0 : 1);
      }
    }
    function yZe(n, a) {
      return b0(n) === b0(a) && Rn(n.target.elementFlags, (c, u) => (c & 12) === (a.target.elementFlags[u] & 12));
    }
    function dLe({ value: n }) {
      return n.base10Value === "0";
    }
    function fLe(n) {
      return dl(n, (a) => !!(Cu(a) & 4194304));
    }
    function vZe(n) {
      return Ks(n, bZe);
    }
    function bZe(n) {
      return n.flags & 4 ? l2 : n.flags & 8 ? rS : n.flags & 64 ? u2 : n === K || n === it || n.flags & 114691 || n.flags & 128 && n.value === "" || n.flags & 256 && n.value === 0 || n.flags & 2048 && dLe(n) ? n : ht;
    }
    function UU(n, a) {
      const c = a & ~n.flags & 98304;
      return c === 0 ? n : Yr(c === 32768 ? [n, je] : c === 65536 ? [n, Sn] : [n, je, Sn]);
    }
    function Kg(n, a = !1) {
      D.assert(W);
      const c = a ? Ut : je;
      return n === c || n.flags & 1048576 && n.types[0] === c ? n : Yr([n, c]);
    }
    function EZe(n) {
      return Ao || (Ao = sD("NonNullable", 524288, void 0) || nn), Ao !== nn ? B2(Ao, [n]) : Io([n, ua]);
    }
    function Xg(n) {
      return W ? BE(n, 2097152) : n;
    }
    function _Le(n) {
      return W ? Yr([n, ln]) : n;
    }
    function Cie(n) {
      return W ? XU(n, ln) : n;
    }
    function VU(n, a, c) {
      return c ? bI(a) ? Kg(n) : _Le(n) : n;
    }
    function hD(n, a) {
      return EM(a) ? Xg(n) : pu(a) ? Cie(n) : n;
    }
    function OE(n, a) {
      return We && a ? XU(n, Ke) : n;
    }
    function gD(n) {
      return n === Ke || !!(n.flags & 1048576) && n.types[0] === Ke;
    }
    function Lie(n) {
      return We ? XU(n, Ke) : i_(n, 524288);
    }
    function TZe(n, a) {
      return (n.flags & 524) !== 0 && (a.flags & 28) !== 0;
    }
    function jU(n) {
      const a = Zr(n);
      return n.flags & 2097152 ? Rn(n.types, jU) : !!(n.symbol && n.symbol.flags & 7040 && !(n.symbol.flags & 32) && !GV(n)) || !!(a & 4194304) || !!(a & 1024 && jU(n.source));
    }
    function PE(n, a) {
      const c = Qo(n.flags, n.escapedName, Cc(n) & 8);
      c.declarations = n.declarations, c.parent = n.parent, c.links.type = a, c.links.target = n, n.valueDeclaration && (c.valueDeclaration = n.valueDeclaration);
      const u = Vi(n).nameType;
      return u && (c.links.nameType = u), c;
    }
    function SZe(n, a) {
      const c = ao();
      for (const u of ev(n)) {
        const p = or(u), g = a(p);
        c.set(u.escapedName, g === p ? u : PE(u, g));
      }
      return c;
    }
    function NP(n) {
      if (!(I0(n) && Zr(n) & 8192))
        return n;
      const a = n.regularType;
      if (a)
        return a;
      const c = n, u = SZe(n, NP), p = ws(c.symbol, u, c.callSignatures, c.constructSignatures, c.indexInfos);
      return p.flags = c.flags, p.objectFlags |= c.objectFlags & -8193, n.regularType = p, p;
    }
    function pLe(n, a, c) {
      return { parent: n, propertyName: a, siblings: c, resolvedProperties: void 0 };
    }
    function mLe(n) {
      if (!n.siblings) {
        const a = [];
        for (const c of mLe(n.parent))
          if (I0(c)) {
            const u = Db(c, n.propertyName);
            u && GE(or(u), (p) => {
              a.push(p);
            });
          }
        n.siblings = a;
      }
      return n.siblings;
    }
    function xZe(n) {
      if (!n.resolvedProperties) {
        const a = /* @__PURE__ */ new Map();
        for (const c of mLe(n))
          if (I0(c) && !(Zr(c) & 2097152))
            for (const u of fs(c))
              a.set(u.escapedName, u);
        n.resolvedProperties = Do(a.values());
      }
      return n.resolvedProperties;
    }
    function AZe(n, a) {
      if (!(n.flags & 4))
        return n;
      const c = or(n), u = a && pLe(a, n.escapedName, void 0), p = Iie(c, u);
      return p === c ? n : PE(n, p);
    }
    function CZe(n) {
      const a = pi.get(n.escapedName);
      if (a)
        return a;
      const c = PE(n, Ut);
      return c.flags |= 16777216, pi.set(n.escapedName, c), c;
    }
    function LZe(n, a) {
      const c = ao();
      for (const p of ev(n))
        c.set(p.escapedName, AZe(p, a));
      if (a)
        for (const p of xZe(a))
          c.has(p.escapedName) || c.set(p.escapedName, CZe(p));
      const u = ws(n.symbol, c, rt, rt, Zs(Su(n), (p) => pm(p.keyType, Yd(p.type), p.isReadonly)));
      return u.objectFlags |= Zr(n) & 266240, u;
    }
    function Yd(n) {
      return Iie(n, void 0);
    }
    function Iie(n, a) {
      if (Zr(n) & 196608) {
        if (a === void 0 && n.widened)
          return n.widened;
        let c;
        if (n.flags & 98305)
          c = ke;
        else if (I0(n))
          c = LZe(n, a);
        else if (n.flags & 1048576) {
          const u = a || pLe(void 0, void 0, n.types), p = Zs(n.types, (g) => g.flags & 98304 ? g : Iie(g, u));
          c = Yr(p, kt(p, qh) ? 2 : 1);
        } else
          n.flags & 2097152 ? c = Io(Zs(n.types, Yd)) : NE(n) && (c = Wg(n.target, Zs(_s(n), Yd)));
        return c && a === void 0 && (n.widened = c), c || n;
      }
      return n;
    }
    function HU(n) {
      let a = !1;
      if (Zr(n) & 65536) {
        if (n.flags & 1048576)
          if (kt(n.types, qh))
            a = !0;
          else
            for (const c of n.types)
              HU(c) && (a = !0);
        if (NE(n))
          for (const c of _s(n))
            HU(c) && (a = !0);
        if (I0(n))
          for (const c of ev(n)) {
            const u = or(c);
            Zr(u) & 65536 && (HU(u) || Je(c.valueDeclaration, _.Object_literal_s_property_0_implicitly_has_an_1_type, S(c), Le(Yd(u))), a = !0);
          }
      }
      return a;
    }
    function L0(n, a, c) {
      const u = Le(Yd(a));
      if (fr(n) && !tO(er(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 (Ve(g.name)) {
            const x = G0(g.name);
            if ((_C(g.parent) || Th(g.parent) || Sh(g.parent)) && g.parent.parameters.indexOf(g) > -1 && (fc(g, g.name.escapedText, 788968, void 0, g.name.escapedText, !0) || x && zz(x))) {
              const R = "arg" + g.parent.parameters.indexOf(g), M = Ls(g.name) + (g.dotDotDotToken ? "[]" : "");
              im(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:
          Je(n, _.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, u);
          return;
        case 326:
          Te && Ok(n.parent) && Je(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) {
            c === 3 ? Je(n, _.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation, u) : Je(n, _.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, u);
            return;
          }
          p = Te ? c === 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 && Je(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;
      }
      im(Te, n, p, Ls(Aa(n)), u);
    }
    function WU(n, a, c) {
      i(() => {
        Te && Zr(a) & 65536 && (!c || !oae(n)) && (HU(a) || L0(n, a, c));
      });
    }
    function kie(n, a, c) {
      const u = $d(n), p = $d(a), g = kD(n), x = kD(a), R = x ? p - 1 : p, M = g ? R : Math.min(u, R), J = Nb(n);
      if (J) {
        const $ = Nb(a);
        $ && c(J, $);
      }
      for (let $ = 0; $ < M; $++)
        c(up(n, $), up(a, $));
      x && c(ID(n, M), x);
    }
    function wie(n, a, c) {
      const u = t_(n), p = t_(a);
      u && p && Jre(u, p) && u.type && p.type ? c(u.type, p.type) : c(ms(n), ms(a));
    }
    function yD(n, a, c, u) {
      return Die(n.map(Rie), a, c, u || uie);
    }
    function IZe(n, a = 0) {
      return n && Die(en(n.inferences, gLe), n.signature, n.flags | a, n.compareTypes);
    }
    function Die(n, a, c, u) {
      const p = {
        inferences: n,
        signature: a,
        flags: c,
        compareTypes: u,
        mapper: wn,
        nonFixingMapper: wn
      };
      return p.mapper = kZe(p), p.nonFixingMapper = wZe(p), p;
    }
    function kZe(n) {
      return iie(en(n.inferences, (a) => a.typeParameter), en(n.inferences, (a, c) => () => (a.isFixed || (DZe(n), zU(n.inferences), a.isFixed = !0), Vie(n, c))));
    }
    function wZe(n) {
      return iie(en(n.inferences, (a) => a.typeParameter), en(n.inferences, (a, c) => () => Vie(n, c)));
    }
    function zU(n) {
      for (const a of n)
        a.isFixed || (a.inferredType = void 0);
    }
    function hLe(n, a, c) {
      var u;
      ((u = n.intraExpressionInferenceSites) != null ? u : n.intraExpressionInferenceSites = []).push({ node: a, type: c });
    }
    function DZe(n) {
      if (n.intraExpressionInferenceSites) {
        for (const { node: a, type: c } of n.intraExpressionInferenceSites) {
          const u = a.kind === 171 ? cIe(a, 2) : td(a, 2);
          u && Kh(n.inferences, c, u);
        }
        n.intraExpressionInferenceSites = void 0;
      }
    }
    function Rie(n) {
      return {
        typeParameter: n,
        candidates: void 0,
        contraCandidates: void 0,
        inferredType: void 0,
        priority: void 0,
        topLevel: !0,
        isFixed: !1,
        impliedArity: void 0
      };
    }
    function gLe(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 RZe(n) {
      const a = yn(n.inferences, Y2);
      return a.length ? Die(en(a, gLe), n.signature, n.flags, n.compareTypes) : void 0;
    }
    function Nie(n) {
      return n && n.mapper;
    }
    function ME(n) {
      const a = Zr(n);
      if (a & 524288)
        return !!(a & 1048576);
      const c = !!(n.flags & 465829888 || n.flags & 524288 && !yLe(n) && (a & 4 && (n.node || ze(_s(n), ME)) || a & 16 && n.symbol && n.symbol.flags & 14384 && n.symbol.declarations || a & 12583968) || n.flags & 3145728 && !(n.flags & 1024) && !yLe(n) && kt(n.types, ME));
      return n.flags & 3899393 && (n.objectFlags |= 524288 | (c ? 1048576 : 0)), c;
    }
    function yLe(n) {
      if (n.aliasSymbol && !n.aliasTypeArguments) {
        const a = Sc(n.aliasSymbol, 262);
        return !!(a && rr(a.parent, (c) => c.kind === 308 ? !0 : c.kind === 264 ? !1 : "quit"));
      }
      return !1;
    }
    function vD(n, a, c = 0) {
      return !!(n === a || n.flags & 3145728 && kt(n.types, (u) => vD(u, a, c)) || c < 3 && n.flags & 16777216 && (vD(T0(n), a, c + 1) || vD(S0(n), a, c + 1)));
    }
    function NZe(n, a) {
      const c = t_(n);
      return c ? !!c.type && vD(c.type, a) : vD(ms(n), a);
    }
    function OZe(n) {
      const a = ao();
      GE(n, (u) => {
        if (!(u.flags & 128))
          return;
        const p = oc(u.value), g = Qo(4, p);
        g.links.type = ke, u.symbol && (g.declarations = u.symbol.declarations, g.valueDeclaration = u.symbol.valueDeclaration), a.set(p, g);
      });
      const c = n.flags & 4 ? [pm(ue, ua, !1)] : rt;
      return ws(void 0, a, rt, rt, c);
    }
    function vLe(n, a, c) {
      if (ya)
        return;
      const u = n.id + "," + a.id + "," + c.id;
      if (Or.has(u))
        return Or.get(u);
      ya = !0;
      const p = PZe(n, a, c);
      return ya = !1, Or.set(u, p), p;
    }
    function Oie(n) {
      return !(Zr(n) & 262144) || I0(n) && kt(fs(n), (a) => Oie(or(a))) || Po(n) && kt(_s(n), Oie);
    }
    function PZe(n, a, c) {
      if (!(ih(n, ue) || fs(n).length !== 0 && Oie(n)))
        return;
      if (Gf(n))
        return xu(qU(_s(n)[0], a, c), CL(n));
      if (Po(n)) {
        const p = en(_s(n), (x) => qU(x, a, c)), g = fm(a) & 4 ? Zs(n.target.elementFlags, (x) => x & 2 ? 1 : x) : n.target.elementFlags;
        return Op(p, g, n.target.readonly, n.target.labeledElementDeclarations);
      }
      const u = _f(1040, void 0);
      return u.source = n, u.mappedType = a, u.constraintType = c, u;
    }
    function MZe(n) {
      const a = Vi(n);
      return a.type || (a.type = qU(n.links.propertyType, n.links.mappedType, n.links.constraintType)), a.type;
    }
    function qU(n, a, c) {
      const u = Nd(c.type, op(a)), p = Wh(a), g = Rie(u);
      return Kh([g], n, p), bLe(g) || he;
    }
    function* Pie(n, a, c, u) {
      const p = fs(a);
      for (const g of p)
        if (!mAe(g) && (c || !(g.flags & 16777216 || Cc(g) & 48))) {
          const x = so(n, g.escapedName);
          if (!x)
            yield g;
          else if (u) {
            const R = or(g);
            if (R.flags & 109472) {
              const M = or(x);
              M.flags & 1 || md(M) === md(R) || (yield g);
            }
          }
        }
    }
    function Mie(n, a, c, u) {
      return I4(Pie(n, a, c, u));
    }
    function FZe(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 BZe(n, a) {
      return Po(n) && Po(a) ? FZe(n, a) : !!Mie(n, a, !1, !0) && !!Mie(a, n, !1, !1);
    }
    function bLe(n) {
      return n.candidates ? Yr(n.candidates, 2) : n.contraCandidates ? Io(n.contraCandidates) : void 0;
    }
    function Fie(n) {
      return !!zr(n).skipDirectInference;
    }
    function ELe(n) {
      return !!(n.symbol && kt(n.symbol.declarations, Fie));
    }
    function GZe(n, a) {
      const c = n.texts[0], u = a.texts[0], p = n.texts[n.texts.length - 1], g = a.texts[a.texts.length - 1], x = Math.min(c.length, u.length), R = Math.min(p.length, g.length);
      return c.slice(0, x) !== u.slice(0, x) || p.slice(p.length - R) !== g.slice(g.length - R);
    }
    function TLe(n, a) {
      if (n === "")
        return !1;
      const c = +n;
      return isFinite(c) && (!a || "" + c === n);
    }
    function UZe(n) {
      return SU(dq(n));
    }
    function Bie(n, a) {
      if (a.flags & 1)
        return !0;
      if (a.flags & 134217732)
        return To(n, a);
      if (a.flags & 268435456) {
        const c = [];
        for (; a.flags & 268435456; )
          c.unshift(a.symbol), a = a.type;
        return Iu(c, (p, g) => ES(g, p), n) === n && Bie(n, a);
      }
      return !1;
    }
    function VZe(n, a) {
      if (n === a || a.flags & 5)
        return !0;
      if (n.flags & 128) {
        const c = n.value;
        return !!(a.flags & 8 && TLe(c, !1) || a.flags & 64 && F3(c, !1) || a.flags & 98816 && c === a.intrinsicName || a.flags & 268435456 && Bie(Bf(c), a));
      }
      if (n.flags & 134217728) {
        const c = n.texts;
        return c.length === 2 && c[0] === "" && c[1] === "" && To(n.types[0], a);
      }
      return To(n, a);
    }
    function SLe(n, a) {
      return n.flags & 128 ? xLe([n.value], rt, a) : n.flags & 134217728 ? Qs(n.texts, a.texts) ? en(n.types, jZe) : xLe(n.texts, n.types, a) : void 0;
    }
    function Gie(n, a) {
      const c = SLe(n, a);
      return !!c && Rn(c, (u, p) => VZe(u, a.types[p]));
    }
    function jZe(n) {
      return n.flags & 402653317 ? n : DE(["", ""], [n]);
    }
    function xLe(n, a, c) {
      const u = n.length - 1, p = n[0], g = n[u], x = c.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, we = M.length;
      for (let Fn = 1; Fn < R; Fn++) {
        const An = x[Fn];
        if (An.length > 0) {
          let Yn = Ne, hn = we;
          for (; hn = ft(Yn).indexOf(An, hn), !(hn >= 0); ) {
            if (Yn++, Yn === n.length)
              return;
            hn = 0;
          }
          Bt(Yn, hn), we += An.length;
        } else if (we < ft(Ne).length)
          Bt(Ne, we + 1);
        else if (Ne < u)
          Bt(Ne + 1, 0);
        else
          return;
      }
      return Bt(u, ft(u).length), ge;
      function ft(Fn) {
        return Fn < u ? n[Fn] : $;
      }
      function Bt(Fn, An) {
        const Yn = Fn === Ne ? Bf(ft(Fn).slice(we, An)) : DE([n[Ne].slice(we), ...n.slice(Ne + 1, Fn), ft(Fn).slice(0, An)], a.slice(Ne, Fn));
        ge.push(Yn), Ne = Fn, we = An;
      }
    }
    function Kh(n, a, c, u = 0, p = !1) {
      let g = !1, x, R = 2048, M = !0, J, $, ge, Ne = 0;
      we(a, c);
      function we(Vn, cr) {
        if (ME(cr)) {
          if (Vn === Nt) {
            const Yi = x;
            x = Vn, we(cr, cr), x = Yi;
            return;
          }
          if (Vn.aliasSymbol && Vn.aliasSymbol === cr.aliasSymbol) {
            if (Vn.aliasTypeArguments) {
              const Yi = Vi(Vn.aliasSymbol).typeParameters, Pa = _m(Yi), na = nv(Vn.aliasTypeArguments, Yi, Pa, fr(Vn.aliasSymbol.valueDeclaration)), Yo = nv(cr.aliasTypeArguments, Yi, Pa, fr(Vn.aliasSymbol.valueDeclaration));
              hn(na, Yo, rLe(Vn.aliasSymbol));
            }
            return;
          }
          if (Vn === cr && Vn.flags & 3145728) {
            for (const Yi of Vn.types)
              we(Yi, Yi);
            return;
          }
          if (cr.flags & 1048576) {
            const [Yi, Pa] = Yn(Vn.flags & 1048576 ? Vn.types : [Vn], cr.types, HZe), [na, Yo] = Yn(Yi, Pa, WZe);
            if (Yo.length === 0)
              return;
            if (cr = Yr(Yo), na.length === 0) {
              ft(Vn, cr, 1);
              return;
            }
            Vn = Yr(na);
          } else if (cr.flags & 2097152 && !Rn(cr.types, EU)) {
            if (!(Vn.flags & 1048576)) {
              const [Yi, Pa] = Yn(Vn.flags & 2097152 ? Vn.types : [Vn], cr.types, zh);
              if (Yi.length === 0 || Pa.length === 0)
                return;
              Vn = Io(Yi), cr = Io(Pa);
            }
          } else
            cr.flags & 41943040 && (cr = av(cr));
          if (cr.flags & 8650752) {
            if (ELe(Vn))
              return;
            const Yi = on(cr);
            if (Yi) {
              if (Zr(Vn) & 262144 || Vn === _e)
                return;
              if (!Yi.isFixed) {
                if ((Yi.priority === void 0 || u < Yi.priority) && (Yi.candidates = void 0, Yi.contraCandidates = void 0, Yi.topLevel = !0, Yi.priority = u), u === Yi.priority) {
                  const na = x || Vn;
                  p && !g ? wi(Yi.contraCandidates, na) || (Yi.contraCandidates = Bn(Yi.contraCandidates, na), zU(n)) : wi(Yi.candidates, na) || (Yi.candidates = Bn(Yi.candidates, na), zU(n));
                }
                !(u & 128) && cr.flags & 262144 && Yi.topLevel && !vD(c, cr) && (Yi.topLevel = !1, zU(n));
              }
              R = Math.min(R, u);
              return;
            }
            const Pa = qg(cr, !1);
            if (Pa !== cr)
              we(Vn, Pa);
            else if (cr.flags & 8388608) {
              const na = qg(cr.indexType, !1);
              if (na.flags & 465829888) {
                const Yo = CCe(qg(cr.objectType, !1), na, !1);
                Yo && Yo !== cr && we(Vn, Yo);
              }
            }
          }
          if (Zr(Vn) & 4 && Zr(cr) & 4 && (Vn.target === cr.target || Gf(Vn) && Gf(cr)) && !(Vn.node && cr.node))
            hn(_s(Vn), _s(cr), gie(Vn.target));
          else if (Vn.flags & 4194304 && cr.flags & 4194304)
            xn(Vn.type, cr.type);
          else if ((mD(Vn) || Vn.flags & 4) && cr.flags & 4194304) {
            const Yi = OZe(Vn);
            Bt(Yi, cr.type, 256);
          } else if (Vn.flags & 8388608 && cr.flags & 8388608)
            we(Vn.objectType, cr.objectType), we(Vn.indexType, cr.indexType);
          else if (Vn.flags & 268435456 && cr.flags & 268435456)
            Vn.symbol === cr.symbol && we(Vn.type, cr.type);
          else if (Vn.flags & 33554432)
            we(Vn.baseType, cr), ft(Mre(Vn), cr, 4);
          else if (cr.flags & 16777216)
            An(Vn, cr, ti);
          else if (cr.flags & 3145728)
            Kn(Vn, cr.types, cr.flags);
          else if (Vn.flags & 1048576) {
            const Yi = Vn.types;
            for (const Pa of Yi)
              we(Pa, cr);
          } else if (cr.flags & 134217728)
            da(Vn, cr);
          else {
            if (Vn = cp(Vn), !(u & 512 && Vn.flags & 467927040)) {
              const Yi = Hu(Vn);
              if (Yi !== Vn && M && !(Yi.flags & 2621440))
                return M = !1, we(Yi, cr);
              Vn = Yi;
            }
            Vn.flags & 2621440 && An(Vn, cr, Ya);
          }
        }
      }
      function ft(Vn, cr, Yi) {
        const Pa = u;
        u |= Yi, we(Vn, cr), u = Pa;
      }
      function Bt(Vn, cr, Yi) {
        const Pa = u;
        u |= Yi, xn(Vn, cr), u = Pa;
      }
      function Fn(Vn, cr, Yi, Pa) {
        const na = u;
        u |= Pa, Kn(Vn, cr, Yi), u = na;
      }
      function An(Vn, cr, Yi) {
        const Pa = Vn.id + "," + cr.id, na = J && J.get(Pa);
        if (na !== void 0) {
          R = Math.min(R, na);
          return;
        }
        (J || (J = /* @__PURE__ */ new Map())).set(Pa, -1);
        const Yo = R;
        R = 2048;
        const Ds = Ne, hc = AL(Vn), So = AL(cr);
        wi($, hc) && (Ne |= 1), wi(ge, So) && (Ne |= 2), Ne !== 3 ? (($ || ($ = [])).push(hc), (ge || (ge = [])).push(So), Yi(Vn, cr), ge.pop(), $.pop()) : R = -1, Ne = Ds, J.set(Pa, R), R = Math.min(R, Yo);
      }
      function Yn(Vn, cr, Yi) {
        let Pa, na;
        for (const Yo of cr)
          for (const Ds of Vn)
            Yi(Ds, Yo) && (we(Ds, Yo), Pa = ry(Pa, Ds), na = ry(na, Yo));
        return [
          Pa ? yn(Vn, (Yo) => !wi(Pa, Yo)) : Vn,
          na ? yn(cr, (Yo) => !wi(na, Yo)) : cr
        ];
      }
      function hn(Vn, cr, Yi) {
        const Pa = Vn.length < cr.length ? Vn.length : cr.length;
        for (let na = 0; na < Pa; na++)
          na < Yi.length && (Yi[na] & 7) === 2 ? xn(Vn[na], cr[na]) : we(Vn[na], cr[na]);
      }
      function xn(Vn, cr) {
        p = !p, we(Vn, cr), p = !p;
      }
      function yr(Vn, cr) {
        ce || u & 1024 ? xn(Vn, cr) : we(Vn, cr);
      }
      function on(Vn) {
        if (Vn.flags & 8650752) {
          for (const cr of n)
            if (Vn === cr.typeParameter)
              return cr;
        }
      }
      function Un(Vn) {
        let cr;
        for (const Yi of Vn) {
          const Pa = Yi.flags & 2097152 && cn(Yi.types, (na) => !!on(na));
          if (!Pa || cr && Pa !== cr)
            return;
          cr = Pa;
        }
        return cr;
      }
      function Kn(Vn, cr, Yi) {
        let Pa = 0;
        if (Yi & 1048576) {
          let na;
          const Yo = Vn.flags & 1048576 ? Vn.types : [Vn], Ds = new Array(Yo.length);
          let hc = !1;
          for (const So of cr)
            if (on(So))
              na = So, Pa++;
            else
              for (let Wu = 0; Wu < Yo.length; Wu++) {
                const ut = R;
                R = 2048, we(Yo[Wu], So), R === u && (Ds[Wu] = !0), hc = hc || R === -1, R = Math.min(R, ut);
              }
          if (Pa === 0) {
            const So = Un(cr);
            So && ft(Vn, So, 1);
            return;
          }
          if (Pa === 1 && !hc) {
            const So = wo(Yo, (Wu, ut) => Ds[ut] ? void 0 : Wu);
            if (So.length) {
              we(Yr(So), na);
              return;
            }
          }
        } else
          for (const na of cr)
            on(na) ? Pa++ : we(Vn, na);
        if (Yi & 2097152 ? Pa === 1 : Pa > 0)
          for (const na of cr)
            on(na) && ft(Vn, na, 1);
      }
      function $r(Vn, cr, Yi) {
        if (Yi.flags & 1048576) {
          let Pa = !1;
          for (const na of Yi.types)
            Pa = $r(Vn, cr, na) || Pa;
          return Pa;
        }
        if (Yi.flags & 4194304) {
          const Pa = on(Yi.type);
          if (Pa && !Pa.isFixed && !ELe(Vn)) {
            const na = vLe(Vn, cr, Yi);
            na && ft(na, Pa.typeParameter, Zr(Vn) & 262144 ? 16 : 8);
          }
          return !0;
        }
        if (Yi.flags & 262144) {
          ft(mm(Vn), Yi, 32);
          const Pa = IE(Yi);
          if (Pa && $r(Vn, cr, Pa))
            return !0;
          const na = en(fs(Vn), or), Yo = en(Su(Vn), (Ds) => Ds !== Uu ? Ds.type : ht);
          return we(Yr(ma(na, Yo)), Wh(cr)), !0;
        }
        return !1;
      }
      function ti(Vn, cr) {
        if (Vn.flags & 16777216)
          we(Vn.checkType, cr.checkType), we(Vn.extendsType, cr.extendsType), we(T0(Vn), T0(cr)), we(S0(Vn), S0(cr));
        else {
          const Yi = [T0(cr), S0(cr)];
          Fn(Vn, Yi, cr.flags, p ? 64 : 0);
        }
      }
      function da(Vn, cr) {
        const Yi = SLe(Vn, cr), Pa = cr.types;
        if (Yi || Rn(cr.texts, (na) => na.length === 0))
          for (let na = 0; na < Pa.length; na++) {
            const Yo = Yi ? Yi[na] : ht, Ds = Pa[na];
            if (Yo.flags & 128 && Ds.flags & 8650752) {
              const hc = on(Ds), So = hc ? ju(hc.typeParameter) : void 0;
              if (So && !bs(So)) {
                const Wu = So.flags & 1048576 ? So.types : [So];
                let ut = Iu(Wu, (Ee, tr) => Ee | tr.flags, 0);
                if (!(ut & 4)) {
                  const Ee = Yo.value;
                  ut & 296 && !TLe(Ee, !0) && (ut &= -297), ut & 2112 && !F3(Ee, !0) && (ut &= -2113);
                  const tr = Iu(Wu, (Zn, Tr) => Tr.flags & ut ? Zn.flags & 4 ? Zn : Tr.flags & 4 ? Yo : Zn.flags & 134217728 ? Zn : Tr.flags & 134217728 && Gie(Yo, Tr) ? Yo : Zn.flags & 268435456 ? Zn : Tr.flags & 268435456 && Ee === SCe(Tr.symbol, Ee) ? Yo : Zn.flags & 128 ? Zn : Tr.flags & 128 && Tr.value === Ee ? Tr : Zn.flags & 8 ? Zn : Tr.flags & 8 ? Pp(+Ee) : Zn.flags & 32 ? Zn : Tr.flags & 32 ? Pp(+Ee) : Zn.flags & 256 ? Zn : Tr.flags & 256 && Tr.value === +Ee ? Tr : Zn.flags & 64 ? Zn : Tr.flags & 64 ? UZe(Ee) : Zn.flags & 2048 ? Zn : Tr.flags & 2048 && k1(Tr.value) === Ee ? Tr : Zn.flags & 16 ? Zn : Tr.flags & 16 ? Ee === "true" ? Pe : Ee === "false" ? it : Re : Zn.flags & 512 ? Zn : Tr.flags & 512 && Tr.intrinsicName === Ee ? Tr : Zn.flags & 32768 ? Zn : Tr.flags & 32768 && Tr.intrinsicName === Ee ? Tr : Zn.flags & 65536 ? Zn : Tr.flags & 65536 && Tr.intrinsicName === Ee ? Tr : Zn : Zn, ht);
                  if (!(tr.flags & 131072)) {
                    we(tr, Ds);
                    continue;
                  }
                }
              }
            }
            we(Yo, Ds);
          }
      }
      function Ya(Vn, cr) {
        var Yi, Pa;
        if (Zr(Vn) & 4 && Zr(cr) & 4 && (Vn.target === cr.target || Gf(Vn) && Gf(cr))) {
          hn(_s(Vn), _s(cr), gie(Vn.target));
          return;
        }
        if (Ff(Vn) && Ff(cr)) {
          we(Rp(Vn), Rp(cr)), we(Wh(Vn), Wh(cr));
          const na = Zy(Vn), Yo = Zy(cr);
          na && Yo && we(na, Yo);
        }
        if (Zr(cr) & 32 && !cr.declaration.nameType) {
          const na = Rp(cr);
          if ($r(Vn, cr, na))
            return;
        }
        if (!BZe(Vn, cr)) {
          if (NE(Vn)) {
            if (Po(cr)) {
              const na = b0(Vn), Yo = b0(cr), Ds = _s(cr), hc = cr.target.elementFlags;
              if (Po(Vn) && yZe(Vn, cr)) {
                for (let ut = 0; ut < Yo; ut++)
                  we(_s(Vn)[ut], Ds[ut]);
                return;
              }
              const So = Po(Vn) ? Math.min(Vn.target.fixedLength, cr.target.fixedLength) : 0, Wu = Math.min(Po(Vn) ? vP(Vn.target, 3) : 0, cr.target.hasRestElement ? vP(cr.target, 3) : 0);
              for (let ut = 0; ut < So; ut++)
                we(_s(Vn)[ut], Ds[ut]);
              if (!Po(Vn) || na - So - Wu === 1 && Vn.target.elementFlags[So] & 4) {
                const ut = _s(Vn)[So];
                for (let Ee = So; Ee < Yo - Wu; Ee++)
                  we(hc[Ee] & 8 ? xu(ut) : ut, Ds[Ee]);
              } else {
                const ut = Yo - So - Wu;
                if (ut === 2) {
                  if (hc[So] & hc[So + 1] & 8) {
                    const Ee = on(Ds[So]);
                    Ee && Ee.impliedArity !== void 0 && (we(EL(Vn, So, Wu + na - Ee.impliedArity), Ds[So]), we(EL(Vn, So + Ee.impliedArity, Wu), Ds[So + 1]));
                  } else if (hc[So] & 8 && hc[So + 1] & 4) {
                    const Ee = (Yi = on(Ds[So])) == null ? void 0 : Yi.typeParameter, tr = Ee && ju(Ee);
                    if (tr && Po(tr) && !tr.target.hasRestElement) {
                      const Zn = tr.target.fixedLength;
                      we(EL(Vn, So, na - (So + Zn)), Ds[So]), we(IL(Vn, So + Zn, Wu), Ds[So + 1]);
                    }
                  } else if (hc[So] & 4 && hc[So + 1] & 8) {
                    const Ee = (Pa = on(Ds[So + 1])) == null ? void 0 : Pa.typeParameter, tr = Ee && ju(Ee);
                    if (tr && Po(tr) && !tr.target.hasRestElement) {
                      const Zn = tr.target.fixedLength, Tr = na - vP(cr.target, 3), kr = Tr - Zn, Ia = Op(_s(Vn).slice(kr, Tr), Vn.target.elementFlags.slice(kr, Tr), !1, Vn.target.labeledElementDeclarations && Vn.target.labeledElementDeclarations.slice(kr, Tr));
                      we(IL(Vn, So, Wu + Zn), Ds[So]), we(Ia, Ds[So + 1]);
                    }
                  }
                } else if (ut === 1 && hc[So] & 8) {
                  const Ee = cr.target.elementFlags[Yo - 1] & 2, tr = EL(Vn, So, Wu);
                  ft(tr, Ds[So], Ee ? 2 : 0);
                } else if (ut === 1 && hc[So] & 4) {
                  const Ee = IL(Vn, So, Wu);
                  Ee && we(Ee, Ds[So]);
                }
              }
              for (let ut = 0; ut < Wu; ut++)
                we(_s(Vn)[na - ut - 1], Ds[Yo - ut - 1]);
              return;
            }
            if (Gf(cr)) {
              aa(Vn, cr);
              return;
            }
          }
          yl(Vn, cr), Uf(Vn, cr, 0), Uf(Vn, cr, 1), aa(Vn, cr);
        }
      }
      function yl(Vn, cr) {
        const Yi = ev(cr);
        for (const Pa of Yi) {
          const na = so(Vn, Pa.escapedName);
          na && !kt(na.declarations, Fie) && we(or(na), or(Pa));
        }
      }
      function Uf(Vn, cr, Yi) {
        const Pa = ja(Vn, Yi), na = ja(cr, Yi), Yo = Pa.length, Ds = na.length, hc = Yo < Ds ? Yo : Ds;
        for (let So = 0; So < hc; So++)
          gf(YYe(Pa[Yo - hc + So]), oD(na[Ds - hc + So]));
      }
      function gf(Vn, cr) {
        const Yi = g, Pa = cr.declaration ? cr.declaration.kind : 0;
        g = g || Pa === 171 || Pa === 170 || Pa === 173, kie(Vn, cr, yr), g = Yi, wie(Vn, cr, we);
      }
      function aa(Vn, cr) {
        const Yi = Zr(Vn) & Zr(cr) & 32 ? 8 : 0, Pa = Su(cr);
        if (jU(Vn))
          for (const na of Pa) {
            const Yo = [];
            for (const Ds of fs(Vn))
              if (N2(TL(Ds, 8576), na.keyType)) {
                const hc = or(Ds);
                Yo.push(Ds.flags & 16777216 ? Lie(hc) : hc);
              }
            for (const Ds of Su(Vn))
              N2(Ds.keyType, na.keyType) && Yo.push(Ds.type);
            Yo.length && ft(Yr(Yo), na.type, Yi);
          }
        for (const na of Pa) {
          const Yo = mP(Vn, na.keyType);
          Yo && ft(Yo.type, na.type, Yi);
        }
      }
    }
    function HZe(n, a) {
      return a === Ke ? n === a : zh(n, a) || !!(a.flags & 4 && n.flags & 128 || a.flags & 8 && n.flags & 256);
    }
    function WZe(n, a) {
      return !!(n.flags & 524288 && a.flags & 524288 && n.symbol && n.symbol === a.symbol || n.aliasSymbol && n.aliasTypeArguments && n.aliasSymbol === a.aliasSymbol);
    }
    function zZe(n) {
      const a = Tu(n);
      return !!a && _c(a.flags & 16777216 ? mre(a) : a, 406978556);
    }
    function I0(n) {
      return !!(Zr(n) & 128);
    }
    function Uie(n) {
      return !!(Zr(n) & 16512);
    }
    function qZe(n) {
      if (n.length > 1) {
        const a = yn(n, Uie);
        if (a.length) {
          const c = Yr(a, 2);
          return ma(yn(n, (u) => !Uie(u)), [c]);
        }
      }
      return n;
    }
    function JZe(n) {
      return n.priority & 416 ? Io(n.contraCandidates) : dZe(n.contraCandidates);
    }
    function KZe(n, a) {
      const c = qZe(n.candidates), u = zZe(n.typeParameter) || _P(n.typeParameter), p = !u && n.topLevel && (n.isFixed || !NZe(a, n.typeParameter)), g = u ? Zs(c, md) : p ? Zs(c, Vb) : c, x = n.priority & 416 ? Yr(g, 2) : uZe(g);
      return Yd(x);
    }
    function Vie(n, a) {
      const c = n.inferences[a];
      if (!c.inferredType) {
        let u;
        const p = n.signature;
        if (p) {
          const x = c.candidates ? KZe(c, p) : void 0;
          if (c.contraCandidates)
            u = x && !(x.flags & 131072) && kt(c.contraCandidates, (M) => ov(x, M)) && Rn(n.inferences, (M) => M !== c && Tu(M.typeParameter) !== c.typeParameter || Rn(M.candidates, (J) => ov(J, x))) ? x : JZe(c);
          else if (x)
            u = x;
          else if (n.flags & 1)
            u = dt;
          else {
            const R = kE(c.typeParameter);
            R && (u = Ji(R, xQe(SQe(n, a), n.nonFixingMapper)));
          }
        } else
          u = bLe(c);
        c.inferredType = u || jie(!!(n.flags & 2));
        const g = Tu(c.typeParameter);
        if (g) {
          const x = Ji(g, n.nonFixingMapper);
          (!u || !n.compareTypes(u, Mf(x, u))) && (c.inferredType = u = x);
        }
      }
      return c.inferredType;
    }
    function jie(n) {
      return n ? ke : he;
    }
    function Hie(n) {
      const a = [];
      for (let c = 0; c < n.inferences.length; c++)
        a.push(Vie(n, c));
      return a;
    }
    function ALe(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 (eo(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 L_(n) {
      const a = zr(n);
      return a.resolvedSymbol || (a.resolvedSymbol = !xc(n) && fc(n, n.escapedText, 1160127, ALe(n), n, !jz(n), !1) || nn), a.resolvedSymbol;
    }
    function kL(n) {
      return !!rr(n, (a) => a.kind === 183 ? !0 : a.kind === 79 || a.kind === 163 ? !1 : "quit");
    }
    function CLe(n) {
      return !!(n.flags & 16777216 || rr(n, (a) => Qu(a) || of(a)));
    }
    function JU(n, a, c, u) {
      switch (n.kind) {
        case 79:
          if (!sx(n)) {
            const x = L_(n);
            return x !== nn ? `${u ? ds(u) : "-1"}|${Au(a)}|${Au(c)}|${yo(x)}` : void 0;
          }
        case 108:
          return `0|${u ? ds(u) : "-1"}|${Au(a)}|${Au(c)}`;
        case 232:
        case 214:
          return JU(n.expression, a, c, u);
        case 163:
          const p = JU(n.left, a, c, u);
          return p && p + "." + n.right.escapedText;
        case 208:
        case 209:
          const g = FE(n);
          if (g !== void 0) {
            const x = JU(n.expression, a, c, u);
            return x && x + "." + g;
          }
          break;
        case 203:
        case 204:
        case 259:
        case 215:
        case 216:
        case 171:
          return `${ds(n)}#${Au(a)}`;
      }
    }
    function Wl(n, a) {
      switch (a.kind) {
        case 214:
        case 232:
          return Wl(n, a.expression);
        case 223:
          return Yu(a) && Wl(n, a.left) || br(a) && a.operatorToken.kind === 27 && Wl(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 sx(n) ? a.kind === 108 : a.kind === 79 && L_(n) === L_(a) || (zi(a) || us(a)) && wp(L_(n)) === Ir(a);
        case 108:
          return a.kind === 108;
        case 106:
          return a.kind === 106;
        case 232:
        case 214:
          return Wl(n.expression, a);
        case 208:
        case 209:
          const c = FE(n), u = sc(a) ? FE(a) : void 0;
          return c !== void 0 && u !== void 0 && u === c && Wl(n.expression, a.expression);
        case 163:
          return sc(a) && n.right.escapedText === FE(a) && Wl(n.left, a.expression);
        case 223:
          return br(n) && n.operatorToken.kind === 27 && Wl(n.right, a);
      }
      return !1;
    }
    function FE(n) {
      if (Mr(n))
        return n.name.escapedText;
      if (cc(n))
        return XZe(n);
      if (us(n)) {
        const a = Cn(n);
        return a ? oc(a) : void 0;
      }
      if (Oa(n))
        return "" + n.parent.parameters.indexOf(n);
    }
    function LLe(n) {
      return n.flags & 8192 ? n.escapedName : n.flags & 384 ? oc("" + n.value) : void 0;
    }
    function XZe(n) {
      if (zf(n.argumentExpression))
        return oc(n.argumentExpression.text);
      if (jc(n.argumentExpression)) {
        const a = Dc(n.argumentExpression, 111551, !0);
        if (!a || !(DL(a) || a.flags & 8))
          return;
        const c = a.valueDeclaration;
        if (c === void 0)
          return;
        const u = Rd(c);
        if (u) {
          const p = LLe(u);
          if (p !== void 0)
            return p;
        }
        if (aT(c) && Ig(c, n.argumentExpression)) {
          const p = cN(c);
          if (p)
            return LLe(Lu(p));
          if (P1(c))
            return DA(c.name);
        }
      }
    }
    function ILe(n, a) {
      for (; sc(n); )
        if (n = n.expression, Wl(n, a))
          return !0;
      return !1;
    }
    function AS(n, a) {
      for (; pu(n); )
        if (n = n.expression, Wl(n, a))
          return !0;
      return !1;
    }
    function bD(n, a) {
      if (n && n.flags & 1048576) {
        const c = vre(n, a);
        if (c && Cc(c) & 2)
          return c.links.isDiscriminantProperty === void 0 && (c.links.isDiscriminantProperty = (c.links.checkFlags & 192) === 192 && !SL(or(c))), !!c.links.isDiscriminantProperty;
      }
      return !1;
    }
    function kLe(n, a) {
      let c;
      for (const u of n)
        if (bD(a, u.escapedName)) {
          if (c) {
            c.push(u);
            continue;
          }
          c = [u];
        }
      return c;
    }
    function YZe(n, a) {
      const c = /* @__PURE__ */ new Map();
      let u = 0;
      for (const p of n)
        if (p.flags & 61603840) {
          const g = ul(p, a);
          if (g) {
            if (!mD(g))
              return;
            let x = !1;
            GE(g, (R) => {
              const M = Au(md(R)), J = c.get(M);
              J ? J !== he && (c.set(M, he), x = !0) : c.set(M, p);
            }), x || u++;
          }
        }
      return u >= 10 && u * 2 >= n.length ? c : void 0;
    }
    function OP(n) {
      const a = n.types;
      if (!(a.length < 10 || Zr(n) & 32768 || Zi(a, (c) => !!(c.flags & 59506688)) < 10)) {
        if (n.keyPropertyName === void 0) {
          const c = ze(a, (p) => p.flags & 59506688 ? ze(fs(p), (g) => lp(or(g)) ? g.escapedName : void 0) : void 0), u = c && YZe(a, c);
          n.keyPropertyName = u ? c : "", n.constituentMap = u;
        }
        return n.keyPropertyName.length ? n.keyPropertyName : void 0;
      }
    }
    function PP(n, a) {
      var c;
      const u = (c = n.constituentMap) == null ? void 0 : c.get(Au(md(a)));
      return u !== he ? u : void 0;
    }
    function wLe(n, a) {
      const c = OP(n), u = c && ul(a, c);
      return u && PP(n, u);
    }
    function $Ze(n, a) {
      const c = OP(n), u = c && cn(a.properties, (g) => g.symbol && g.kind === 299 && g.symbol.escapedName === c && jP(g.initializer)), p = u && a4(u.initializer);
      return p && PP(n, p);
    }
    function DLe(n, a) {
      return Wl(n, a) || ILe(n, a);
    }
    function RLe(n, a) {
      if (n.arguments) {
        for (const c of n.arguments)
          if (DLe(a, c))
            return !0;
      }
      return !!(n.expression.kind === 208 && DLe(a, n.expression.expression));
    }
    function Wie(n) {
      return (!n.id || n.id < 0) && (n.id = HK, HK++), n.id;
    }
    function QZe(n, a) {
      if (!(n.flags & 1048576))
        return To(n, a);
      for (const c of n.types)
        if (To(c, a))
          return !0;
      return !1;
    }
    function ZZe(n, a) {
      var c;
      if (n === a)
        return n;
      if (a.flags & 131072)
        return a;
      const u = `A${Au(n)},${Au(a)}`;
      return (c = pb(u)) != null ? c : Ag(u, eet(n, a));
    }
    function eet(n, a) {
      const c = dl(n, (p) => QZe(a, p)), u = a.flags & 512 && Bb(a) ? Ks(c, j2) : c;
      return To(a, u) ? u : n;
    }
    function zie(n) {
      const a = sp(n);
      return !!(a.callSignatures.length || a.constructSignatures.length || a.members.get("bind") && ov(n, uc));
    }
    function Cu(n) {
      n.flags & 467927040 && (n = ju(n) || he);
      const a = n.flags;
      if (a & 268435460)
        return W ? 16317953 : 16776705;
      if (a & 134217856) {
        const c = a & 128 && n.value === "";
        return W ? c ? 12123649 : 7929345 : c ? 12582401 : 16776705;
      }
      if (a & 40)
        return W ? 16317698 : 16776450;
      if (a & 256) {
        const c = n.value === 0;
        return W ? c ? 12123394 : 7929090 : c ? 12582146 : 16776450;
      }
      if (a & 64)
        return W ? 16317188 : 16775940;
      if (a & 2048) {
        const c = dLe(n);
        return W ? c ? 12122884 : 7928580 : c ? 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 ? Zr(n) & 16 && qh(n) ? W ? 83427327 : 83886079 : zie(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 ? Iu(n.types, (c, u) => c | Cu(u), 0) : a & 2097152 ? tet(n) : 83886079;
    }
    function tet(n) {
      const a = _c(n, 134348796);
      let c = 0, u = 134217727;
      for (const p of n.types)
        if (!(a && p.flags & 524288)) {
          const g = Cu(p);
          c |= g, u &= g;
        }
      return c & 8256 | u & 134209471;
    }
    function i_(n, a) {
      return dl(n, (c) => (Cu(c) & a) !== 0);
    }
    function BE(n, a) {
      const c = NLe(i_(W && n.flags & 2 ? Bc : n, a));
      if (W)
        switch (a) {
          case 524288:
            return Ks(c, (u) => Cu(u) & 65536 ? Io([u, Cu(u) & 131072 && !_c(c, 65536) ? Yr([ua, Sn]) : ua]) : u);
          case 1048576:
            return Ks(c, (u) => Cu(u) & 131072 ? Io([u, Cu(u) & 65536 && !_c(c, 32768) ? Yr([ua, je]) : ua]) : u);
          case 2097152:
          case 4194304:
            return Ks(c, (u) => Cu(u) & 262144 ? EZe(u) : u);
        }
      return c;
    }
    function NLe(n) {
      return n === Bc ? he : n;
    }
    function qie(n, a) {
      return a ? Yr([be(n), Lu(a)]) : n;
    }
    function OLe(n, a) {
      var c;
      const u = zg(a);
      if (!Hh(u))
        return xe;
      const p = dm(u);
      return ul(n, p) || ED((c = O2(n, p)) == null ? void 0 : c.type) || xe;
    }
    function PLe(n, a) {
      return ah(n, LL) && fZe(n, a) || ED(uv(65, n, je, void 0)) || xe;
    }
    function ED(n) {
      return n && (Y.noUncheckedIndexedAccess ? Yr([n, Ke]) : n);
    }
    function MLe(n) {
      return xu(uv(65, n, je, void 0) || xe);
    }
    function net(n) {
      return n.parent.kind === 206 && Jie(n.parent) || n.parent.kind === 299 && Jie(n.parent.parent) ? qie(MP(n), n.right) : Lu(n.right);
    }
    function Jie(n) {
      return n.parent.kind === 223 && n.parent.left === n || n.parent.kind === 247 && n.parent.initializer === n;
    }
    function ret(n, a) {
      return PLe(MP(n), n.elements.indexOf(a));
    }
    function iet(n) {
      return MLe(MP(n.parent));
    }
    function FLe(n) {
      return OLe(MP(n.parent), n.name);
    }
    function aet(n) {
      return qie(FLe(n), n.objectAssignmentInitializer);
    }
    function MP(n) {
      const { parent: a } = n;
      switch (a.kind) {
        case 246:
          return ue;
        case 247:
          return f4(a) || xe;
        case 223:
          return net(a);
        case 217:
          return je;
        case 206:
          return ret(a, n);
        case 227:
          return iet(a);
        case 299:
          return FLe(a);
        case 300:
          return aet(a);
      }
      return xe;
    }
    function oet(n) {
      const a = n.parent, c = GLe(a.parent), u = a.kind === 203 ? OLe(c, n.propertyName || n.name) : n.dotDotDotToken ? MLe(c) : PLe(c, a.elements.indexOf(n));
      return qie(u, n.initializer);
    }
    function BLe(n) {
      return zr(n).resolvedType || Lu(n);
    }
    function set(n) {
      return n.initializer ? BLe(n.initializer) : n.parent.parent.kind === 246 ? ue : n.parent.parent.kind === 247 && f4(n.parent.parent) || xe;
    }
    function GLe(n) {
      return n.kind === 257 ? set(n) : oet(n);
    }
    function cet(n) {
      return n.kind === 257 && n.initializer && As(n.initializer) || n.kind !== 205 && n.parent.kind === 223 && As(n.parent.right);
    }
    function jb(n) {
      switch (n.kind) {
        case 214:
          return jb(n.expression);
        case 223:
          switch (n.operatorToken.kind) {
            case 63:
            case 75:
            case 76:
            case 77:
              return jb(n.left);
            case 27:
              return jb(n.right);
          }
      }
      return n;
    }
    function ULe(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 ? ULe(a) : n;
    }
    function uet(n) {
      return n.kind === 292 ? md(Lu(n.expression)) : ht;
    }
    function KU(n) {
      const a = zr(n);
      if (!a.switchTypes) {
        a.switchTypes = [];
        for (const c of n.caseBlock.clauses)
          a.switchTypes.push(uet(c));
      }
      return a.switchTypes;
    }
    function VLe(n) {
      if (kt(n.caseBlock.clauses, (c) => c.kind === 292 && !Es(c.expression)))
        return;
      const a = [];
      for (const c of n.caseBlock.clauses) {
        const u = c.kind === 292 ? c.expression.text : void 0;
        a.push(u && !wi(a, u) ? u : void 0);
      }
      return a;
    }
    function det(n, a) {
      return n.flags & 1048576 ? !ze(n.types, (c) => !wi(a, c)) : wi(a, n);
    }
    function TD(n, a) {
      return n === a || a.flags & 1048576 && fet(n, a);
    }
    function fet(n, a) {
      if (n.flags & 1048576) {
        for (const c of n.types)
          if (!Pb(a.types, c))
            return !1;
        return !0;
      }
      return n.flags & 1056 && Qw(n) === a ? !0 : Pb(a.types, n);
    }
    function GE(n, a) {
      return n.flags & 1048576 ? ze(n.types, a) : a(n);
    }
    function Xh(n, a) {
      return n.flags & 1048576 ? kt(n.types, a) : a(n);
    }
    function ah(n, a) {
      return n.flags & 1048576 ? Rn(n.types, a) : a(n);
    }
    function _et(n, a) {
      return n.flags & 3145728 ? Rn(n.types, a) : a(n);
    }
    function dl(n, a) {
      if (n.flags & 1048576) {
        const c = n.types, u = yn(c, a);
        if (u === c)
          return n;
        const p = n.origin;
        let g;
        if (p && p.flags & 1048576) {
          const x = p.types, R = yn(x, (M) => !!(M.flags & 1048576) || a(M));
          if (x.length - R.length === c.length - u.length) {
            if (R.length === 1)
              return R[0];
            g = qre(1048576, R);
          }
        }
        return Kre(u, n.objectFlags & 16809984, void 0, void 0, g);
      }
      return n.flags & 131072 || a(n) ? n : ht;
    }
    function XU(n, a) {
      return dl(n, (c) => c !== a);
    }
    function pet(n) {
      return n.flags & 1048576 ? n.types.length : 1;
    }
    function Ks(n, a, c) {
      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 ? Ks(R, a, c) : a(R);
        x || (x = R !== M), M && (g ? g.push(M) : g = [M]);
      }
      return x ? g && Yr(g, c ? 0 : 1) : n;
    }
    function jLe(n, a, c, u) {
      return n.flags & 1048576 && c ? Yr(en(n.types, a), 1, c, u) : Ks(n, a);
    }
    function wL(n, a) {
      return dl(n, (c) => (c.flags & a) !== 0);
    }
    function HLe(n, a) {
      return _c(n, 134217804) && _c(a, 402655616) ? Ks(n, (c) => c.flags & 4 ? wL(a, 402653316) : U2(c) && !_c(a, 402653188) ? wL(a, 128) : c.flags & 8 ? wL(a, 264) : c.flags & 64 ? wL(a, 2112) : c) : n;
    }
    function z2(n) {
      return n.flags === 0;
    }
    function UE(n) {
      return n.flags === 0 ? n.type : n;
    }
    function q2(n, a) {
      return a ? { flags: 0, type: n.flags & 131072 ? dt : n } : n;
    }
    function met(n) {
      const a = _f(256);
      return a.elementType = n, a;
    }
    function Kie(n) {
      return Ni[n.id] || (Ni[n.id] = met(n));
    }
    function WLe(n, a) {
      const c = NP(cv(a4(a)));
      return TD(c, n.elementType) ? n : Kie(Yr([n.elementType, c]));
    }
    function het(n) {
      return n.flags & 131072 ? On : xu(n.flags & 1048576 ? Yr(n.types, 2) : n);
    }
    function get(n) {
      return n.finalArrayType || (n.finalArrayType = het(n.elementType));
    }
    function FP(n) {
      return Zr(n) & 256 ? get(n) : n;
    }
    function yet(n) {
      return Zr(n) & 256 ? n.elementType : ht;
    }
    function vet(n) {
      let a = !1;
      for (const c of n)
        if (!(c.flags & 131072)) {
          if (!(Zr(c) & 256))
            return !1;
          a = !0;
        }
      return a;
    }
    function zLe(n) {
      const a = ULe(n), c = a.parent, u = Mr(c) && (c.name.escapedText === "length" || c.parent.kind === 210 && Ve(c.name) && pz(c.name)), p = c.kind === 209 && c.expression === a && c.parent.kind === 223 && c.parent.operatorToken.kind === 63 && c.parent.left === c && !gh(c.parent) && Nl(Lu(c.argumentExpression), 296);
      return u || p;
    }
    function bet(n) {
      return (zi(n) || Za(n) || xf(n) || Oa(n)) && !!(Kl(n) || fr(n) && Av(n) && n.initializer && aC(n.initializer) && mp(n.initializer));
    }
    function YU(n, a) {
      if (n = Jc(n), n.flags & 8752)
        return or(n);
      if (n.flags & 7) {
        if (Cc(n) & 262144) {
          const u = n.links.syntheticOrigin;
          if (u && YU(u))
            return or(n);
        }
        const c = n.valueDeclaration;
        if (c) {
          if (bet(c))
            return or(n);
          if (zi(c) && c.parent.parent.kind === 247) {
            const u = c.parent.parent, p = BP(u.expression, void 0);
            if (p) {
              const g = u.awaitModifier ? 15 : 13;
              return uv(g, p, je, void 0);
            }
          }
          a && qo(a, Rr(c, _._0_needs_an_explicit_type_annotation, S(n)));
        }
      }
    }
    function BP(n, a) {
      if (!(n.flags & 33554432))
        switch (n.kind) {
          case 79:
            const c = wp(L_(n));
            return YU(c, a);
          case 108:
            return Uet(n);
          case 106:
            return Zie(n);
          case 208: {
            const u = BP(n.expression, a);
            if (u) {
              const p = n.name;
              let g;
              if (Di(p)) {
                if (!u.symbol)
                  return;
                g = so(u, IN(u.symbol, p.escapedText));
              } else
                g = so(u, p.escapedText);
              return g && YU(g, a);
            }
            return;
          }
          case 214:
            return BP(n.expression, a);
        }
    }
    function $U(n) {
      const a = zr(n);
      let c = a.effectsSignature;
      if (c === void 0) {
        let u;
        n.parent.kind === 241 ? u = BP(n.expression, void 0) : n.expression.kind !== 106 && (pu(n) ? u = Mp(hD(pa(n.expression), n.expression), n.expression) : u = OL(n.expression));
        const p = ja(u && Hu(u) || he, 0), g = p.length === 1 && !p[0].typeParameters ? p[0] : kt(p, qLe) ? ML(n) : void 0;
        c = a.effectsSignature = g && qLe(g) ? g : tn;
      }
      return c === tn ? void 0 : c;
    }
    function qLe(n) {
      return !!(t_(n) || n.declaration && (P2(n.declaration) || he).flags & 131072);
    }
    function Eet(n, a) {
      if (n.kind === 1 || n.kind === 3)
        return a.arguments[n.parameterIndex];
      const c = Gs(a.expression);
      return sc(c) ? Gs(c.expression) : void 0;
    }
    function Tet(n) {
      const a = rr(n, dW), c = er(n), u = py(c, a.statements.pos);
      Xo.add(Il(c, u.start, u.length, _.The_containing_function_or_module_body_is_too_large_for_control_flow_analysis));
    }
    function GP(n) {
      const a = QU(n, !1);
      return _n = n, dr = a, a;
    }
    function UP(n) {
      const a = Gs(n, !0);
      return a.kind === 95 || a.kind === 223 && (a.operatorToken.kind === 55 && (UP(a.left) || UP(a.right)) || a.operatorToken.kind === 56 && UP(a.left) && UP(a.right));
    }
    function QU(n, a) {
      for (; ; ) {
        if (n === _n)
          return dr;
        const c = n.flags;
        if (c & 4096) {
          if (!a) {
            const u = Wie(n), p = d2[u];
            return p !== void 0 ? p : d2[u] = QU(n, !0);
          }
          a = !1;
        }
        if (c & 368)
          n = n.antecedent;
        else if (c & 512) {
          const u = $U(n.node);
          if (u) {
            const p = t_(u);
            if (p && p.kind === 3 && !p.type) {
              const g = n.node.arguments[p.parameterIndex];
              if (g && UP(g))
                return !1;
            }
            if (ms(u).flags & 131072)
              return !1;
          }
          n = n.antecedent;
        } else {
          if (c & 4)
            return kt(n.antecedents, (u) => QU(u, !1));
          if (c & 8) {
            const u = n.antecedents;
            if (u === void 0 || u.length === 0)
              return !1;
            n = u[0];
          } else if (c & 128) {
            if (n.clauseStart === n.clauseEnd && Eke(n.switchStatement))
              return !1;
            n = n.antecedent;
          } else if (c & 1024) {
            _n = void 0;
            const u = n.target, p = u.antecedents;
            u.antecedents = n.antecedents;
            const g = QU(n.antecedent, !1);
            return u.antecedents = p, g;
          } else
            return !(c & 1);
        }
      }
    }
    function ZU(n, a) {
      for (; ; ) {
        const c = n.flags;
        if (c & 4096) {
          if (!a) {
            const u = Wie(n), p = eE[u];
            return p !== void 0 ? p : eE[u] = ZU(n, !0);
          }
          a = !1;
        }
        if (c & 496)
          n = n.antecedent;
        else if (c & 512) {
          if (n.node.expression.kind === 106)
            return !0;
          n = n.antecedent;
        } else {
          if (c & 4)
            return Rn(n.antecedents, (u) => ZU(u, !1));
          if (c & 8)
            n = n.antecedents[0];
          else if (c & 1024) {
            const u = n.target, p = u.antecedents;
            u.antecedents = n.antecedents;
            const g = ZU(n.antecedent, !1);
            return u.antecedents = p, g;
          } else
            return !!(c & 1);
        }
      }
    }
    function JLe(n) {
      switch (n.kind) {
        case 79:
          if (!sx(n)) {
            const a = L_(n);
            return DL(a) || _q(a) && !eV(a);
          }
          break;
        case 208:
        case 209:
          return JLe(n.expression) && dp(zr(n).resolvedSymbol || nn);
      }
      return !1;
    }
    function k0(n, a, c = a, u, p = ((g) => (g = ii(n, bN)) == null ? void 0 : g.flowNode)()) {
      let g, x = !1, R = 0;
      if (Wi)
        return xe;
      if (!p)
        return a;
      nr++;
      const M = Wr, J = UE(Ne(p));
      Wr = M;
      const $ = Zr(J) & 256 && zLe(n) ? On : FP(J);
      if ($ === Qn || n.parent && n.parent.kind === 232 && !($.flags & 131072) && i_($, 2097152).flags & 131072)
        return a;
      return $ === j ? he : $;
      function ge() {
        return x ? g : (x = !0, g = JU(n, a, c, u));
      }
      function Ne(bt) {
        var Ft;
        if (R === 2e3)
          return (Ft = yi) == null || Ft.instant(yi.Phase.CheckTypes, "getTypeAtFlowNode_DepthLimit", { flowId: bt.id }), Wi = !0, Tet(n), xe;
        R++;
        let $t;
        for (; ; ) {
          const Kt = bt.flags;
          if (Kt & 4096) {
            for (let Jn = M; Jn < Wr; Jn++)
              if (Z1[Jn] === bt)
                return R--, $v[Jn];
            $t = bt;
          }
          let kn;
          if (Kt & 16) {
            if (kn = ft(bt), !kn) {
              bt = bt.antecedent;
              continue;
            }
          } else if (Kt & 512) {
            if (kn = Fn(bt), !kn) {
              bt = bt.antecedent;
              continue;
            }
          } else if (Kt & 96)
            kn = Yn(bt);
          else if (Kt & 128)
            kn = hn(bt);
          else if (Kt & 12) {
            if (bt.antecedents.length === 1) {
              bt = bt.antecedents[0];
              continue;
            }
            kn = Kt & 4 ? xn(bt) : yr(bt);
          } else if (Kt & 256) {
            if (kn = An(bt), !kn) {
              bt = bt.antecedent;
              continue;
            }
          } else if (Kt & 1024) {
            const Jn = bt.target, oa = Jn.antecedents;
            Jn.antecedents = bt.antecedents, kn = Ne(bt.antecedent), Jn.antecedents = oa;
          } else if (Kt & 2) {
            const Jn = bt.node;
            if (Jn && Jn !== u && n.kind !== 208 && n.kind !== 209 && n.kind !== 108) {
              bt = Jn.flowNode;
              continue;
            }
            kn = c;
          } else
            kn = UD(a);
          return $t && (Z1[Wr] = $t, $v[Wr] = kn, Wr++), R--, kn;
        }
      }
      function we(bt) {
        const Ft = bt.node;
        return Xie(Ft.kind === 257 || Ft.kind === 205 ? GLe(Ft) : MP(Ft), n);
      }
      function ft(bt) {
        const Ft = bt.node;
        if (Wl(n, Ft)) {
          if (!GP(bt))
            return Qn;
          if (pT(Ft) === 2) {
            const $t = Ne(bt.antecedent);
            return q2(cv(UE($t)), z2($t));
          }
          if (a === gt || a === On) {
            if (cet(Ft))
              return Kie(ht);
            const $t = Vb(we(bt));
            return To($t, a) ? $t : Dt;
          }
          return a.flags & 1048576 ? ZZe(a, we(bt)) : a;
        }
        if (ILe(n, Ft)) {
          if (!GP(bt))
            return Qn;
          if (zi(Ft) && (fr(Ft) || og(Ft))) {
            const $t = lN(Ft);
            if ($t && ($t.kind === 215 || $t.kind === 216))
              return Ne(bt.antecedent);
          }
          return a;
        }
        if (zi(Ft) && Ft.parent.parent.kind === 246 && (Wl(n, Ft.parent.parent.expression) || AS(Ft.parent.parent.expression, n)))
          return hae(FP(UE(Ne(bt.antecedent))));
      }
      function Bt(bt, Ft) {
        const $t = Gs(Ft, !0);
        if ($t.kind === 95)
          return Qn;
        if ($t.kind === 223) {
          if ($t.operatorToken.kind === 55)
            return Bt(Bt(bt, $t.left), $t.right);
          if ($t.operatorToken.kind === 56)
            return Yr([Bt(bt, $t.left), Bt(bt, $t.right)]);
        }
        return Ii(bt, $t, !0);
      }
      function Fn(bt) {
        const Ft = $U(bt.node);
        if (Ft) {
          const $t = t_(Ft);
          if ($t && ($t.kind === 2 || $t.kind === 3)) {
            const Kt = Ne(bt.antecedent), kn = FP(UE(Kt)), Jn = $t.type ? Ia(kn, $t, bt.node, !0) : $t.kind === 3 && $t.parameterIndex >= 0 && $t.parameterIndex < bt.node.arguments.length ? Bt(kn, bt.node.arguments[$t.parameterIndex]) : kn;
            return Jn === kn ? Kt : q2(Jn, z2(Kt));
          }
          if (ms(Ft).flags & 131072)
            return Qn;
        }
      }
      function An(bt) {
        if (a === gt || a === On) {
          const Ft = bt.node, $t = Ft.kind === 210 ? Ft.expression.expression : Ft.left.expression;
          if (Wl(n, jb($t))) {
            const Kt = Ne(bt.antecedent), kn = UE(Kt);
            if (Zr(kn) & 256) {
              let Jn = kn;
              if (Ft.kind === 210)
                for (const oa of Ft.arguments)
                  Jn = WLe(Jn, oa);
              else {
                const oa = a4(Ft.left.argumentExpression);
                Nl(oa, 296) && (Jn = WLe(Jn, Ft.right));
              }
              return Jn === kn ? Kt : q2(Jn, z2(Kt));
            }
            return Kt;
          }
        }
      }
      function Yn(bt) {
        const Ft = Ne(bt.antecedent), $t = UE(Ft);
        if ($t.flags & 131072)
          return Ft;
        const Kt = (bt.flags & 32) !== 0, kn = FP($t), Jn = Ii(kn, bt.node, Kt);
        return Jn === kn ? Ft : q2(Jn, z2(Ft));
      }
      function hn(bt) {
        const Ft = bt.switchStatement.expression, $t = Ne(bt.antecedent);
        let Kt = UE($t);
        if (Wl(n, Ft))
          Kt = Yo(Kt, bt.switchStatement, bt.clauseStart, bt.clauseEnd);
        else if (Ft.kind === 218 && Wl(n, Ft.expression))
          Kt = So(Kt, bt.switchStatement, bt.clauseStart, bt.clauseEnd);
        else {
          W && (AS(Ft, n) ? Kt = na(Kt, bt.switchStatement, bt.clauseStart, bt.clauseEnd, (Jn) => !(Jn.flags & 163840)) : Ft.kind === 218 && AS(Ft.expression, n) && (Kt = na(Kt, bt.switchStatement, bt.clauseStart, bt.clauseEnd, (Jn) => !(Jn.flags & 131072 || Jn.flags & 128 && Jn.value === "undefined"))));
          const kn = Kn(Ft, Kt);
          kn && (Kt = da(Kt, kn, bt.switchStatement, bt.clauseStart, bt.clauseEnd));
        }
        return q2(Kt, z2($t));
      }
      function xn(bt) {
        const Ft = [];
        let $t = !1, Kt = !1, kn;
        for (const Jn of bt.antecedents) {
          if (!kn && Jn.flags & 128 && Jn.clauseStart === Jn.clauseEnd) {
            kn = Jn;
            continue;
          }
          const oa = Ne(Jn), hi = UE(oa);
          if (hi === a && a === c)
            return hi;
          c_(Ft, hi), TD(hi, a) || ($t = !0), z2(oa) && (Kt = !0);
        }
        if (kn) {
          const Jn = Ne(kn), oa = UE(Jn);
          if (!(oa.flags & 131072) && !wi(Ft, oa) && !Eke(kn.switchStatement)) {
            if (oa === a && a === c)
              return oa;
            Ft.push(oa), TD(oa, a) || ($t = !0), z2(Jn) && (Kt = !0);
          }
        }
        return q2(on(Ft, $t ? 2 : 1), Kt);
      }
      function yr(bt) {
        const Ft = Wie(bt), $t = Tg[Ft] || (Tg[Ft] = /* @__PURE__ */ new Map()), Kt = ge();
        if (!Kt)
          return a;
        const kn = $t.get(Kt);
        if (kn)
          return kn;
        for (let ur = Tn; ur < zn; ur++)
          if (iS[ur] === bt && $1[ur] === Kt && Q1[ur].length)
            return q2(on(Q1[ur], 1), !0);
        const Jn = [];
        let oa = !1, hi;
        for (const ur of bt.antecedents) {
          let Qr;
          if (!hi)
            Qr = hi = Ne(ur);
          else {
            iS[zn] = bt, $1[zn] = Kt, Q1[zn] = Jn, zn++;
            const va = Ea;
            Ea = void 0, Qr = Ne(ur), Ea = va, zn--;
            const os = $t.get(Kt);
            if (os)
              return os;
          }
          const vr = UE(Qr);
          if (c_(Jn, vr), TD(vr, a) || (oa = !0), vr === a)
            break;
        }
        const gn = on(Jn, oa ? 2 : 1);
        return z2(hi) ? q2(gn, !0) : ($t.set(Kt, gn), gn);
      }
      function on(bt, Ft) {
        if (vet(bt))
          return Kie(Yr(en(bt, yet)));
        const $t = NLe(Yr(Zs(bt, FP), Ft));
        return $t !== a && $t.flags & a.flags & 1048576 && Qs($t.types, a.types) ? a : $t;
      }
      function Un(bt) {
        if (Ja(n) || aC(n) || M_(n)) {
          if (Ve(bt)) {
            const $t = L_(bt).valueDeclaration;
            if ($t && (us($t) || Oa($t)) && n === $t.parent && !$t.initializer && !$t.dotDotDotToken)
              return $t;
          }
        } else if (sc(bt)) {
          if (Wl(n, bt.expression))
            return bt;
        } else if (Ve(bt)) {
          const Ft = L_(bt);
          if (DL(Ft)) {
            const $t = Ft.valueDeclaration;
            if (zi($t) && !$t.type && $t.initializer && sc($t.initializer) && Wl(n, $t.initializer.expression))
              return $t.initializer;
            if (us($t) && !$t.initializer) {
              const Kt = $t.parent.parent;
              if (zi(Kt) && !Kt.type && Kt.initializer && (Ve(Kt.initializer) || sc(Kt.initializer)) && Wl(n, Kt.initializer))
                return $t;
            }
          }
        }
      }
      function Kn(bt, Ft) {
        const $t = a.flags & 1048576 ? a : Ft;
        if ($t.flags & 1048576) {
          const Kt = Un(bt);
          if (Kt) {
            const kn = FE(Kt);
            if (kn && bD($t, kn))
              return Kt;
          }
        }
      }
      function $r(bt, Ft, $t) {
        const Kt = FE(Ft);
        if (Kt === void 0)
          return bt;
        const kn = pu(Ft), Jn = W && (kn || Ude(Ft)) && _c(bt, 98304);
        let oa = ul(Jn ? i_(bt, 2097152) : bt, Kt);
        if (!oa)
          return bt;
        oa = Jn && kn ? Kg(oa) : oa;
        const hi = $t(oa);
        return dl(bt, (gn) => {
          const ur = aP(gn, Kt);
          return !(ur.flags & 131072) && !(hi.flags & 131072) && AP(hi, ur);
        });
      }
      function ti(bt, Ft, $t, Kt, kn) {
        if (($t === 36 || $t === 37) && bt.flags & 1048576) {
          const Jn = OP(bt);
          if (Jn && Jn === FE(Ft)) {
            const oa = PP(bt, Lu(Kt));
            if (oa)
              return $t === (kn ? 36 : 37) ? oa : lp(ul(oa, Jn) || he) ? XU(bt, oa) : bt;
          }
        }
        return $r(bt, Ft, (Jn) => cr(Jn, $t, Kt, kn));
      }
      function da(bt, Ft, $t, Kt, kn) {
        if (Kt < kn && bt.flags & 1048576 && OP(bt) === FE(Ft)) {
          const Jn = KU($t).slice(Kt, kn), oa = Yr(en(Jn, (hi) => PP(bt, hi) || he));
          if (oa !== he)
            return oa;
        }
        return $r(bt, Ft, (Jn) => Yo(Jn, $t, Kt, kn));
      }
      function Ya(bt, Ft, $t) {
        if (Wl(n, Ft))
          return BE(bt, $t ? 4194304 : 8388608);
        W && $t && AS(Ft, n) && (bt = BE(bt, 2097152));
        const Kt = Kn(Ft, bt);
        return Kt ? $r(bt, Kt, (kn) => i_(kn, $t ? 4194304 : 8388608)) : bt;
      }
      function yl(bt, Ft, $t) {
        const Kt = so(bt, Ft);
        return Kt ? !!(Kt.flags & 16777216) || $t : !!O2(bt, Ft) || !$t;
      }
      function Uf(bt, Ft, $t) {
        const Kt = dm(Ft);
        if (Xh(bt, (Jn) => yl(Jn, Kt, !0)))
          return dl(bt, (Jn) => yl(Jn, Kt, $t));
        if ($t) {
          const Jn = C$e();
          if (Jn)
            return Io([bt, B2(Jn, [Ft, he])]);
        }
        return bt;
      }
      function gf(bt, Ft, $t) {
        switch (Ft.operatorToken.kind) {
          case 63:
          case 75:
          case 76:
          case 77:
            return Ya(Ii(bt, Ft.right, $t), Ft.left, $t);
          case 34:
          case 35:
          case 36:
          case 37:
            const Kt = Ft.operatorToken.kind, kn = jb(Ft.left), Jn = jb(Ft.right);
            if (kn.kind === 218 && Es(Jn))
              return Yi(bt, kn, Kt, Jn, $t);
            if (Jn.kind === 218 && Es(kn))
              return Yi(bt, Jn, Kt, kn, $t);
            if (Wl(n, kn))
              return cr(bt, Kt, Jn, $t);
            if (Wl(n, Jn))
              return cr(bt, Kt, kn, $t);
            W && (AS(kn, n) ? bt = Vn(bt, Kt, Jn, $t) : AS(Jn, n) && (bt = Vn(bt, Kt, kn, $t)));
            const oa = Kn(kn, bt);
            if (oa)
              return ti(bt, oa, Kt, Jn, $t);
            const hi = Kn(Jn, bt);
            if (hi)
              return ti(bt, hi, Kt, kn, $t);
            if (Wu(kn))
              return ut(bt, Kt, Jn, $t);
            if (Wu(Jn))
              return ut(bt, Kt, kn, $t);
            break;
          case 102:
            return Ee(bt, Ft, $t);
          case 101:
            if (Di(Ft.left))
              return aa(bt, Ft, $t);
            const gn = jb(Ft.right), ur = Lu(Ft.left);
            if (ur.flags & 8576) {
              if (gD(bt) && sc(n) && Wl(n.expression, gn) && FE(n) === dm(ur))
                return i_(bt, $t ? 524288 : 65536);
              if (Wl(n, gn))
                return Uf(bt, ur, $t);
            }
            break;
          case 27:
            return Ii(bt, Ft.right, $t);
          case 55:
            return $t ? Ii(Ii(bt, Ft.left, !0), Ft.right, !0) : Yr([Ii(bt, Ft.left, !1), Ii(bt, Ft.right, !1)]);
          case 56:
            return $t ? Yr([Ii(bt, Ft.left, !0), Ii(bt, Ft.right, !0)]) : Ii(Ii(bt, Ft.left, !1), Ft.right, !1);
        }
        return bt;
      }
      function aa(bt, Ft, $t) {
        const Kt = jb(Ft.right);
        if (!Wl(n, Kt))
          return bt;
        D.assertNode(Ft.left, Di);
        const kn = dV(Ft.left);
        if (kn === void 0)
          return bt;
        const Jn = kn.parent, oa = pl(D.checkDefined(kn.valueDeclaration, "should always have a declaration")) ? or(Jn) : Fs(Jn);
        return Zn(bt, oa, $t, !0);
      }
      function Vn(bt, Ft, $t, Kt) {
        const kn = Ft === 34 || Ft === 36, Jn = Ft === 34 || Ft === 35 ? 98304 : 32768, oa = Lu($t);
        return kn !== Kt && ah(oa, (gn) => !!(gn.flags & Jn)) || kn === Kt && ah(oa, (gn) => !(gn.flags & (3 | Jn))) ? BE(bt, 2097152) : bt;
      }
      function cr(bt, Ft, $t, Kt) {
        if (bt.flags & 1)
          return bt;
        (Ft === 35 || Ft === 37) && (Kt = !Kt);
        const kn = Lu($t), Jn = Ft === 34 || Ft === 35;
        if (kn.flags & 98304) {
          if (!W)
            return bt;
          const oa = Jn ? Kt ? 262144 : 2097152 : kn.flags & 65536 ? Kt ? 131072 : 1048576 : Kt ? 65536 : 524288;
          return BE(bt, oa);
        }
        if (Kt) {
          if (!Jn && (bt.flags & 2 || Xh(bt, Jh))) {
            if (kn.flags & 201457660 || Jh(kn))
              return kn;
            if (kn.flags & 524288)
              return ai;
          }
          const oa = dl(bt, (hi) => AP(hi, kn) || Jn && TZe(hi, kn));
          return HLe(oa, kn);
        }
        return lp(kn) ? dl(bt, (oa) => !(cLe(oa) && AP(oa, kn))) : bt;
      }
      function Yi(bt, Ft, $t, Kt, kn) {
        ($t === 35 || $t === 37) && (kn = !kn);
        const Jn = jb(Ft.expression);
        if (!Wl(n, Jn)) {
          W && AS(Jn, n) && kn === (Kt.text !== "undefined") && (bt = BE(bt, 2097152));
          const oa = Kn(Jn, bt);
          return oa ? $r(bt, oa, (hi) => Pa(hi, Kt, kn)) : bt;
        }
        return Pa(bt, Kt, kn);
      }
      function Pa(bt, Ft, $t) {
        return $t ? Ds(bt, Ft.text) : BE(bt, w5.get(Ft.text) || 32768);
      }
      function na(bt, Ft, $t, Kt, kn) {
        return $t !== Kt && Rn(KU(Ft).slice($t, Kt), kn) ? i_(bt, 2097152) : bt;
      }
      function Yo(bt, Ft, $t, Kt) {
        const kn = KU(Ft);
        if (!kn.length)
          return bt;
        const Jn = kn.slice($t, Kt), oa = $t === Kt || wi(Jn, ht);
        if (bt.flags & 2 && !oa) {
          let Qr;
          for (let vr = 0; vr < Jn.length; vr += 1) {
            const va = Jn[vr];
            if (va.flags & 201457660)
              Qr !== void 0 && Qr.push(va);
            else if (va.flags & 524288)
              Qr === void 0 && (Qr = Jn.slice(0, vr)), Qr.push(ai);
            else
              return bt;
          }
          return Yr(Qr === void 0 ? Jn : Qr);
        }
        const hi = Yr(Jn), gn = hi.flags & 131072 ? ht : HLe(dl(bt, (Qr) => AP(hi, Qr)), hi);
        if (!oa)
          return gn;
        const ur = dl(bt, (Qr) => !(cLe(Qr) && wi(kn, md(pZe(Qr)))));
        return gn.flags & 131072 ? ur : Yr([gn, ur]);
      }
      function Ds(bt, Ft) {
        switch (Ft) {
          case "string":
            return hc(bt, ue, 1);
          case "number":
            return hc(bt, pt, 2);
          case "bigint":
            return hc(bt, Wt, 4);
          case "boolean":
            return hc(bt, Re, 8);
          case "symbol":
            return hc(bt, q, 16);
          case "object":
            return bt.flags & 1 ? bt : Yr([hc(bt, ai, 32), hc(bt, Sn, 131072)]);
          case "function":
            return bt.flags & 1 ? bt : hc(bt, uc, 64);
          case "undefined":
            return hc(bt, je, 65536);
        }
        return hc(bt, ai, 128);
      }
      function hc(bt, Ft, $t) {
        return Ks(bt, (Kt) => hm(Kt, Ft, Z_) ? Cu(Kt) & $t ? Kt : ht : ov(Ft, Kt) ? Ft : Cu(Kt) & $t ? Io([Kt, Ft]) : ht);
      }
      function So(bt, Ft, $t, Kt) {
        const kn = VLe(Ft);
        if (!kn)
          return bt;
        const Jn = Qi(Ft.caseBlock.clauses, (gn) => gn.kind === 293);
        if ($t === Kt || Jn >= $t && Jn < Kt) {
          const gn = bke($t, Kt, kn);
          return dl(bt, (ur) => (Cu(ur) & gn) === gn);
        }
        const hi = kn.slice($t, Kt);
        return Yr(en(hi, (gn) => gn ? Ds(bt, gn) : ht));
      }
      function Wu(bt) {
        return (Mr(bt) && Pr(bt.name) === "constructor" || cc(bt) && Es(bt.argumentExpression) && bt.argumentExpression.text === "constructor") && Wl(n, bt.expression);
      }
      function ut(bt, Ft, $t, Kt) {
        if (Kt ? Ft !== 34 && Ft !== 36 : Ft !== 35 && Ft !== 37)
          return bt;
        const kn = Lu($t);
        if (!yoe(kn) && !v0(kn))
          return bt;
        const Jn = so(kn, "prototype");
        if (!Jn)
          return bt;
        const oa = or(Jn), hi = bs(oa) ? void 0 : oa;
        if (!hi || hi === Ka || hi === uc)
          return bt;
        if (bs(bt))
          return hi;
        return dl(bt, (ur) => gn(ur, hi));
        function gn(ur, Qr) {
          return ur.flags & 524288 && Zr(ur) & 1 || Qr.flags & 524288 && Zr(Qr) & 1 ? ur.symbol === Qr.symbol : ov(ur, Qr);
        }
      }
      function Ee(bt, Ft, $t) {
        const Kt = jb(Ft.left);
        if (!Wl(n, Kt))
          return $t && W && AS(Kt, n) ? BE(bt, 2097152) : bt;
        const kn = Lu(Ft.right);
        if (!Ub(kn, uc))
          return bt;
        const Jn = Ks(kn, tr);
        return bs(bt) && (Jn === Ka || Jn === uc) || !$t && !(Jn.flags & 524288 && !Jh(Jn)) ? bt : Zn(bt, Jn, $t, !0);
      }
      function tr(bt) {
        const Ft = ul(bt, "prototype");
        if (Ft && !bs(Ft))
          return Ft;
        const $t = ja(bt, 1);
        return $t.length ? Yr(en($t, (Kt) => ms(oD(Kt)))) : ua;
      }
      function Zn(bt, Ft, $t, Kt) {
        var kn;
        const Jn = bt.flags & 1048576 ? `N${Au(bt)},${Au(Ft)},${($t ? 1 : 0) | (Kt ? 2 : 0)}` : void 0;
        return (kn = pb(Jn)) != null ? kn : Ag(Jn, Tr(bt, Ft, $t, Kt));
      }
      function Tr(bt, Ft, $t, Kt) {
        if (!$t) {
          if (Kt)
            return dl(bt, (gn) => !Ub(gn, Ft));
          const hi = Zn(bt, Ft, !0, !1);
          return dl(bt, (gn) => !TD(gn, hi));
        }
        if (bt.flags & 3)
          return Ft;
        const kn = Kt ? Ub : ov, Jn = bt.flags & 1048576 ? OP(bt) : void 0, oa = Ks(Ft, (hi) => {
          const gn = Jn && ul(hi, Jn), ur = gn && PP(bt, gn), Qr = Ks(ur || bt, Kt ? (vr) => Ub(vr, hi) ? vr : Ub(hi, vr) ? hi : ht : (vr) => zCe(vr, hi) ? vr : zCe(hi, vr) ? hi : ov(vr, hi) ? vr : ov(hi, vr) ? hi : ht);
          return Qr.flags & 131072 ? Ks(bt, (vr) => _c(vr, 465829888) && kn(hi, ju(vr) || he) ? Io([vr, hi]) : ht) : Qr;
        });
        return oa.flags & 131072 ? ov(Ft, bt) ? Ft : To(bt, Ft) ? bt : To(Ft, bt) ? Ft : Io([bt, Ft]) : oa;
      }
      function kr(bt, Ft, $t) {
        if (RLe(Ft, n)) {
          const Kt = $t || !tT(Ft) ? $U(Ft) : void 0, kn = Kt && t_(Kt);
          if (kn && (kn.kind === 0 || kn.kind === 1))
            return Ia(bt, kn, Ft, $t);
        }
        if (gD(bt) && sc(n) && Mr(Ft.expression)) {
          const Kt = Ft.expression;
          if (Wl(n.expression, jb(Kt.expression)) && Ve(Kt.name) && Kt.name.escapedText === "hasOwnProperty" && Ft.arguments.length === 1) {
            const kn = Ft.arguments[0];
            if (Es(kn) && FE(n) === oc(kn.text))
              return i_(bt, $t ? 524288 : 65536);
          }
        }
        return bt;
      }
      function Ia(bt, Ft, $t, Kt) {
        if (Ft.type && !(bs(bt) && (Ft.type === Ka || Ft.type === uc))) {
          const kn = Eet(Ft, $t);
          if (kn) {
            if (Wl(n, kn))
              return Zn(bt, Ft.type, Kt, !1);
            W && Kt && AS(kn, n) && !(Cu(Ft.type) & 65536) && (bt = BE(bt, 2097152));
            const Jn = Kn(kn, bt);
            if (Jn)
              return $r(bt, Jn, (oa) => Zn(oa, Ft.type, Kt, !1));
          }
        }
        return bt;
      }
      function Ii(bt, Ft, $t) {
        if (EM(Ft) || br(Ft.parent) && (Ft.parent.operatorToken.kind === 60 || Ft.parent.operatorToken.kind === 77) && Ft.parent.left === Ft)
          return Lr(bt, Ft, $t);
        switch (Ft.kind) {
          case 79:
            if (!Wl(n, Ft) && k < 5) {
              const Kt = L_(Ft);
              if (DL(Kt)) {
                const kn = Kt.valueDeclaration;
                if (kn && zi(kn) && !kn.type && kn.initializer && JLe(n)) {
                  k++;
                  const Jn = Ii(bt, kn.initializer, $t);
                  return k--, Jn;
                }
              }
            }
          case 108:
          case 106:
          case 208:
          case 209:
            return Ya(bt, Ft, $t);
          case 210:
            return kr(bt, Ft, $t);
          case 214:
          case 232:
            return Ii(bt, Ft.expression, $t);
          case 223:
            return gf(bt, Ft, $t);
          case 221:
            if (Ft.operator === 53)
              return Ii(bt, Ft.operand, !$t);
            break;
        }
        return bt;
      }
      function Lr(bt, Ft, $t) {
        if (Wl(n, Ft))
          return BE(bt, $t ? 2097152 : 262144);
        const Kt = Kn(Ft, bt);
        return Kt ? $r(bt, Kt, (kn) => i_(kn, $t ? 2097152 : 262144)) : bt;
      }
    }
    function xet(n, a) {
      if (n = wp(n), (a.kind === 79 || a.kind === 80) && (YI(a) && (a = a.parent), sg(a) && (!gh(a) || tk(a)))) {
        const c = Lu(a);
        if (wp(zr(a).resolvedSymbol) === n)
          return c;
      }
      return lg(a) && _y(a.parent) && F(a.parent) ? ea(a.parent.symbol) : g0(n);
    }
    function SD(n) {
      return rr(n.parent, (a) => qa(a) && !dT(a) || a.kind === 265 || a.kind === 308 || a.kind === 169);
    }
    function eV(n) {
      if (!n.valueDeclaration)
        return !1;
      const a = Om(n.valueDeclaration).parent, c = zr(a);
      return c.flags & 524288 || (c.flags |= 524288, Aet(a) || KLe(a)), n.isAssigned || !1;
    }
    function Aet(n) {
      return !!rr(n.parent, (a) => (qa(a) || EC(a)) && !!(zr(a).flags & 524288));
    }
    function KLe(n) {
      if (n.kind === 79) {
        if (gh(n)) {
          const a = L_(n);
          _q(a) && (a.isAssigned = !0);
        }
      } else
        Ra(n, KLe);
    }
    function DL(n) {
      return n.flags & 3 && (cV(n) & 2) !== 0;
    }
    function Cet(n) {
      const a = zr(n);
      if (a.parameterInitializerContainsUndefined === void 0) {
        if (!Of(n, 9))
          return pL(n.symbol), !0;
        const c = !!(Cu(RD(n, 0)) & 16777216);
        if (!e_())
          return pL(n.symbol), !0;
        a.parameterInitializerContainsUndefined = c;
      }
      return a.parameterInitializerContainsUndefined;
    }
    function Let(n, a) {
      return W && a.kind === 166 && a.initializer && Cu(n) & 16777216 && !Cet(a) ? i_(n, 524288) : n;
    }
    function Iet(n, a) {
      const c = a.parent;
      return c.kind === 208 || c.kind === 163 || c.kind === 210 && c.expression === a || c.kind === 209 && c.expression === a && !(Xh(n, YLe) && E0(Lu(c.argumentExpression)));
    }
    function XLe(n) {
      return n.flags & 2097152 ? kt(n.types, XLe) : !!(n.flags & 465829888 && tv(n).flags & 1146880);
    }
    function YLe(n) {
      return n.flags & 2097152 ? kt(n.types, YLe) : !!(n.flags & 465829888 && !_c(tv(n), 98304));
    }
    function ket(n, a) {
      const c = (Ve(n) || Mr(n) || cc(n)) && !((Ch(n.parent) || kx(n.parent)) && n.parent.tagName === n) && (a && a & 64 ? td(n, 8) : td(n, void 0));
      return c && !SL(c);
    }
    function Xie(n, a, c) {
      return !(c && c & 2) && Xh(n, XLe) && (Iet(n, a) || ket(a, c)) ? Ks(n, tv) : n;
    }
    function $Le(n) {
      return !!rr(n, (a) => {
        const c = a.parent;
        return c === void 0 ? "quit" : Mc(c) ? c.expression === a && jc(a) : cd(c) ? c.name === a || c.propertyName === a : !1;
      });
    }
    function tV(n, a) {
      if (!Y.verbatimModuleSyntax && By(n, 111551) && !kL(a) && !kd(n, 111551)) {
        const c = Zc(n);
        ou(c) & 1160127 && (U_(Y) || L1(Y) && $Le(a) || !VD(wp(c)) ? Cb(n) : Lb(n));
      }
    }
    function wet(n, a) {
      var c;
      const u = or(n), p = n.valueDeclaration;
      if (p) {
        if (us(p) && !p.initializer && !p.dotDotDotToken && p.parent.elements.length >= 2) {
          const g = p.parent.parent;
          if (g.kind === 257 && _p(p) & 2 || g.kind === 166) {
            const x = zr(g);
            if (!(x.flags & 16777216)) {
              x.flags |= 16777216;
              const R = L2(g, 0), M = R && Ks(R, tv);
              if (x.flags &= -16777217, M && M.flags & 1048576 && !(g.kind === 166 && eV(n))) {
                const J = p.parent, $ = k0(J, M, M, void 0, a.flowNode);
                return $.flags & 131072 ? ht : Ti(p, $);
              }
            }
          }
        }
        if (Oa(p) && !p.type && !p.initializer && !p.dotDotDotToken) {
          const g = p.parent;
          if (g.parameters.length >= 2 && wU(g)) {
            const x = AD(g);
            if (x && x.parameters.length === 1 && gu(x)) {
              const R = vL(Ji(or(x.parameters[0]), (c = CS(g)) == null ? void 0 : c.nonFixingMapper));
              if (R.flags & 1048576 && ah(R, Po) && !eV(n)) {
                const M = k0(g, R, R, void 0, a.flowNode), J = g.parameters.indexOf(p) - (x1(g) ? 1 : 0);
                return Nd(M, Pp(J));
              }
            }
          }
        }
      }
      return u;
    }
    function Det(n, a) {
      if (sx(n))
        return VP(n);
      const c = L_(n);
      if (c === nn)
        return xe;
      if (c === Ct) {
        if (OIe(n))
          return Je(n, _.arguments_cannot_be_referenced_in_property_initializers), xe;
        const Yn = Tf(n);
        return P < 2 && (Yn.kind === 216 ? Je(n, _.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression) : Kr(Yn, 512) && Je(n, _.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method)), zr(Yn).flags |= 512, or(c);
      }
      Net(n) && tV(c, n);
      const u = wp(c), p = Nwe(u, n);
      n0(p) && Yre(n, p) && p.declarations && Cg(n, p.declarations, n.escapedText);
      let g = u.valueDeclaration;
      if (g && u.flags & 32) {
        if (g.kind === 260 && FA(ne, g)) {
          let Yn = Tl(n);
          for (; Yn !== void 0; ) {
            if (Yn === g && Yn.name !== n) {
              zr(g).flags |= 1048576, zr(n).flags |= 2097152;
              break;
            }
            Yn = Tl(Yn);
          }
        } else if (g.kind === 228) {
          let Yn = bd(n, !1, !1);
          for (; Yn.kind !== 308; ) {
            if (Yn.parent === g) {
              (Za(Yn) && za(Yn) || Lc(Yn)) && (zr(g).flags |= 1048576, zr(n).flags |= 2097152);
              break;
            }
            Yn = bd(Yn, !1, !1);
          }
        }
      }
      Met(n, c);
      let x = wet(u, n);
      const R = pT(n);
      if (R) {
        if (!(u.flags & 3) && !(fr(n) && u.flags & 512)) {
          const Yn = 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 Je(n, Yn, S(c)), xe;
        }
        if (dp(u))
          return u.flags & 3 ? Je(n, _.Cannot_assign_to_0_because_it_is_a_constant, S(c)) : Je(n, _.Cannot_assign_to_0_because_it_is_a_read_only_property, S(c)), xe;
      }
      const M = u.flags & 2097152;
      if (u.flags & 3) {
        if (R === 1)
          return x;
      } else if (M)
        g = fd(c);
      else
        return x;
      if (!g)
        return x;
      x = Xie(x, n, a);
      const J = Om(g).kind === 166, $ = SD(g);
      let ge = SD(n);
      const Ne = ge !== $, we = n.parent && n.parent.parent && Nx(n.parent) && Jie(n.parent.parent), ft = c.flags & 134217728;
      for (; ge !== $ && (ge.kind === 215 || ge.kind === 216 || KM(ge)) && (DL(u) && x !== On || J && !eV(u)); )
        ge = SD(ge);
      const Bt = J || M || Ne || we || ft || Ret(n, g) || x !== gt && x !== On && (!W || (x.flags & 16387) !== 0 || kL(n) || CLe(n) || n.parent.kind === 278) || n.parent.kind === 232 || g.kind === 257 && g.exclamationToken || g.flags & 16777216, Fn = Bt ? J ? Let(x, g) : x : x === gt || x === On ? je : Kg(x), An = k0(n, x, Fn, ge);
      if (!zLe(n) && (x === gt || x === On)) {
        if (An === gt || An === On)
          return Te && (Je(Aa(g), _.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, S(c), Le(An)), Je(n, _.Variable_0_implicitly_has_an_1_type, S(c), Le(An))), UD(An);
      } else if (!Bt && !xL(x) && xL(An))
        return Je(n, _.Variable_0_is_used_before_being_assigned, S(c)), x;
      return R ? cv(An) : An;
    }
    function Ret(n, a) {
      if (us(a)) {
        const c = rr(n, us);
        return c && Om(c) === Om(a);
      }
    }
    function Net(n) {
      var a;
      const c = n.parent;
      if (c) {
        if (Mr(c) && c.expression === n || cd(c) && c.isTypeOnly)
          return !1;
        const u = (a = c.parent) == null ? void 0 : a.parent;
        if (u && Xl(u) && u.isTypeOnly)
          return !1;
      }
      return !0;
    }
    function Oet(n, a) {
      return !!rr(n, (c) => c === a ? "quit" : qa(c) || c.parent && Za(c.parent) && !pl(c.parent) && c.parent.initializer === c);
    }
    function Pet(n, a) {
      return rr(n, (c) => c === a ? "quit" : c === a.initializer || c === a.condition || c === a.incrementor || c === a.statement);
    }
    function Yie(n) {
      return rr(n, (a) => !a || mz(a) ? "quit" : Sv(a, !1));
    }
    function Met(n, a) {
      if (P >= 2 || !(a.flags & 34) || !a.valueDeclaration || Hi(a.valueDeclaration) || a.valueDeclaration.parent.kind === 295)
        return;
      const c = Nm(a.valueDeclaration), u = Oet(n, c), p = Yie(c);
      if (p) {
        if (u) {
          let g = !0;
          if (LT(c)) {
            const x = z0(a.valueDeclaration, 258);
            if (x && x.parent === c) {
              const R = Pet(n.parent, c);
              if (R) {
                const M = zr(R);
                M.flags |= 8192;
                const J = M.capturedBlockScopeBindings || (M.capturedBlockScopeBindings = []);
                c_(J, a), R === c.initializer && (g = !1);
              }
            }
          }
          g && (zr(p).flags |= 4096);
        }
        if (LT(c)) {
          const g = z0(a.valueDeclaration, 258);
          g && g.parent === c && Bet(n, c) && (zr(a.valueDeclaration).flags |= 262144);
        }
        zr(a.valueDeclaration).flags |= 32768;
      }
      u && (zr(a.valueDeclaration).flags |= 16384);
    }
    function Fet(n, a) {
      const c = zr(n);
      return !!c && wi(c.capturedBlockScopeBindings, Ir(a));
    }
    function Bet(n, a) {
      let c = n;
      for (; c.parent.kind === 214; )
        c = c.parent;
      let u = !1;
      if (gh(c))
        u = !0;
      else if (c.parent.kind === 221 || c.parent.kind === 222) {
        const p = c.parent;
        u = p.operator === 45 || p.operator === 46;
      }
      return u ? !!rr(c, (p) => p === a ? "quit" : p === a.statement) : !1;
    }
    function $ie(n, a) {
      if (zr(n).flags |= 2, a.kind === 169 || a.kind === 173) {
        const c = a.parent;
        zr(c).flags |= 4;
      } else
        zr(a).flags |= 4;
    }
    function QLe(n) {
      return NA(n) ? n : qa(n) ? void 0 : Ra(n, QLe);
    }
    function ZLe(n) {
      const a = Ir(n), c = Fs(a);
      return ni(c) === Er;
    }
    function eIe(n, a, c) {
      const u = a.parent;
      T1(u) && !ZLe(u) && bN(n) && n.flowNode && !ZU(n.flowNode, !1) && Je(n, c);
    }
    function Get(n, a) {
      Za(a) && pl(a) && ne && a.initializer && pM(a.initializer, n.pos) && Jf(a.parent) && Je(n, _.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class);
    }
    function VP(n) {
      const a = kL(n);
      let c = bd(n, !0, !0), u = !1, p = !1;
      for (c.kind === 173 && eIe(n, c, _.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class); ; ) {
        if (c.kind === 216 && (c = bd(c, !1, !p), u = !0), c.kind === 164) {
          c = bd(c, !u, !1), p = !0;
          continue;
        }
        break;
      }
      if (Get(n, c), p)
        Je(n, _.this_cannot_be_referenced_in_a_computed_property_name);
      else
        switch (c.kind) {
          case 264:
            Je(n, _.this_cannot_be_referenced_in_a_module_or_namespace_body);
            break;
          case 263:
            Je(n, _.this_cannot_be_referenced_in_current_location);
            break;
          case 173:
            tIe(n, c) && Je(n, _.this_cannot_be_referenced_in_constructor_arguments);
            break;
        }
      !a && u && P < 2 && $ie(n, c);
      const g = Qie(n, !0, c);
      if (ee) {
        const x = or(st);
        if (g === x && u)
          Je(n, _.The_containing_arrow_function_captures_the_global_value_of_this);
        else if (!g) {
          const R = Je(n, _.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);
          if (!Hi(c)) {
            const M = Qie(c);
            M && M !== x && qo(R, Rr(c, _.An_outer_value_of_this_is_shadowed_by_this_container));
          }
        }
      }
      return g || ke;
    }
    function Qie(n, a = !0, c = bd(n, !1, !1)) {
      const u = fr(n);
      if (qa(c) && (!tae(n) || x1(c))) {
        let p = qt(c) || u && jet(c);
        if (!p) {
          const g = Vet(c);
          if (u && g) {
            const x = pa(g).symbol;
            x && x.members && x.flags & 16 && (p = Fs(x).thisType);
          } else
            Fp(c) && (p = Fs(ns(c.symbol)).thisType);
          p || (p = rIe(c));
        }
        if (p)
          return k0(n, p);
      }
      if (li(c.parent)) {
        const p = Ir(c.parent), g = za(c) ? or(p) : Fs(p).thisType;
        return k0(n, g);
      }
      if (Hi(c))
        if (c.commonJsModuleIndicator) {
          const p = Ir(c);
          return p && or(p);
        } else {
          if (c.externalModuleIndicator)
            return je;
          if (a)
            return or(st);
        }
    }
    function Uet(n) {
      const a = bd(n, !1, !1);
      if (qa(a)) {
        const c = Np(a);
        if (c.thisParameter)
          return YU(c.thisParameter);
      }
      if (li(a.parent)) {
        const c = Ir(a.parent);
        return za(a) ? or(c) : Fs(c).thisType;
      }
    }
    function Vet(n) {
      if (n.kind === 215 && br(n.parent) && Ac(n.parent) === 3)
        return n.parent.left.expression.expression;
      if (n.kind === 171 && n.parent.kind === 207 && br(n.parent.parent) && Ac(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) && Ac(n.parent.parent.parent) === 6)
        return n.parent.parent.parent.left.expression;
      if (n.kind === 215 && Vl(n.parent) && Ve(n.parent.name) && (n.parent.name.escapedText === "value" || n.parent.name.escapedText === "get" || n.parent.name.escapedText === "set") && xs(n.parent.parent) && eo(n.parent.parent.parent) && n.parent.parent.parent.arguments[2] === n.parent.parent && Ac(n.parent.parent.parent) === 9)
        return n.parent.parent.parent.arguments[0].expression;
      if (nl(n) && Ve(n.name) && (n.name.escapedText === "value" || n.name.escapedText === "get" || n.name.escapedText === "set") && xs(n.parent) && eo(n.parent.parent) && n.parent.parent.arguments[2] === n.parent && Ac(n.parent.parent) === 9)
        return n.parent.parent.arguments[0].expression;
    }
    function jet(n) {
      const a = bv(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 ui(u.parameters[0].type);
      }
      const c = yM(n);
      if (c && c.typeExpression)
        return ui(c.typeExpression);
    }
    function tIe(n, a) {
      return !!rr(n, (c) => Xs(c) ? "quit" : c.kind === 166 && c.parent === a);
    }
    function Zie(n) {
      const a = n.parent.kind === 210 && n.parent.expression === n, c = nN(n, !0);
      let u = c, p = !1, g = !1;
      if (!a) {
        for (; u && u.kind === 216; )
          Kr(u, 512) && (g = !0), u = nN(u, !0), p = P < 2;
        u && Kr(u, 512) && (g = !0);
      }
      let x = 0;
      if (!u || !$(u)) {
        const ge = rr(n, (Ne) => Ne === u ? "quit" : Ne.kind === 164);
        return ge && ge.kind === 164 ? Je(n, _.super_cannot_be_referenced_in_a_computed_property_name) : a ? Je(n, _.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors) : !u || !u.parent || !(li(u.parent) || u.parent.kind === 207) ? Je(n, _.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions) : Je(n, _.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class), xe;
      }
      if (!a && c.kind === 173 && eIe(n, u, _.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class), za(u) || a ? (x = 32, !a && P >= 2 && P <= 8 && (Za(u) || Lc(u)) && Hle(n.parent, (ge) => {
        (!Hi(ge) || nf(ge)) && (zr(ge).flags |= 8388608);
      })) : x = 16, zr(n).flags |= x, u.kind === 171 && g && (sd(n.parent) && gh(n.parent) ? zr(u).flags |= 256 : zr(u).flags |= 128), p && $ie(n.parent, u), u.parent.kind === 207)
        return P < 2 ? (Je(n, _.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher), xe) : ke;
      const R = u.parent;
      if (!T1(R))
        return Je(n, _.super_can_only_be_referenced_in_a_derived_class), xe;
      const M = Fs(Ir(R)), J = M && Oo(M)[0];
      if (!J)
        return xe;
      if (u.kind === 173 && tIe(n, u))
        return Je(n, _.super_cannot_be_referenced_in_constructor_arguments), xe;
      return x === 32 ? ni(M) : Mf(J, M.thisType);
      function $(ge) {
        return a ? ge.kind === 173 : li(ge.parent) || ge.parent.kind === 207 ? za(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 Het(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 nIe(n) {
      return Zr(n) & 4 && n.target === Se ? _s(n)[0] : void 0;
    }
    function Wet(n) {
      return Ks(n, (a) => a.flags & 2097152 ? ze(a.types, nIe) : nIe(a));
    }
    function rIe(n) {
      if (n.kind === 216)
        return;
      if (wU(n)) {
        const c = AD(n);
        if (c) {
          const u = c.thisParameter;
          if (u)
            return or(u);
        }
      }
      const a = fr(n);
      if (ee || a) {
        const c = Het(n);
        if (c) {
          const p = Hb(c, void 0);
          let g = c, x = p;
          for (; x; ) {
            const R = Wet(x);
            if (R)
              return Ji(R, Nie(CS(c)));
            if (g.parent.kind !== 299)
              break;
            g = g.parent.parent, x = Hb(g, void 0);
          }
          return Yd(p ? Xg(p) : Xc(c));
        }
        const u = Lv(n.parent);
        if (u.kind === 223 && u.operatorToken.kind === 63) {
          const p = u.left;
          if (sc(p)) {
            const { expression: g } = p;
            if (a && Ve(g)) {
              const x = er(u);
              if (x.commonJsModuleIndicator && L_(g) === x.symbol)
                return;
            }
            return Yd(Xc(g));
          }
        }
      }
    }
    function iIe(n) {
      const a = n.parent;
      if (!wU(a))
        return;
      const c = dT(a);
      if (c && c.arguments) {
        const p = kae(c), g = a.parameters.indexOf(n);
        if (n.dotDotDotToken)
          return Lae(p, g, p.length, ke, void 0, 0);
        const x = zr(c), R = x.resolvedSignature;
        x.resolvedSignature = zs;
        const M = g < p.length ? Vb(pa(p[g])) : n.initializer ? void 0 : Qe;
        return x.resolvedSignature = R, M;
      }
      const u = AD(a);
      if (u) {
        const p = a.parameters.indexOf(n) - (x1(a) ? 1 : 0);
        return n.dotDotDotToken && ec(a.parameters) === n ? ID(u, p) : jE(u, p);
      }
    }
    function eae(n, a) {
      const c = Kl(n) || (fr(n) ? U3(n) : void 0);
      if (c)
        return ui(c);
      switch (n.kind) {
        case 166:
          return iIe(n);
        case 205:
          return zet(n, a);
        case 169:
          if (za(n))
            return qet(n, a);
      }
    }
    function zet(n, a) {
      const c = n.parent.parent, u = n.propertyName || n.name, p = eae(c, a) || c.kind !== 205 && c.initializer && RD(c, n.dotDotDotToken ? 64 : 0);
      if (!p || Ja(u) || ZR(u))
        return;
      if (c.name.kind === 204) {
        const x = wA(n.parent.elements, n);
        return x < 0 ? void 0 : lIe(p, x);
      }
      const g = zg(u);
      if (Hh(g)) {
        const x = dm(g);
        return ul(p, x);
      }
    }
    function qet(n, a) {
      const c = yt(n.parent) && td(n.parent, a);
      if (c)
        return VE(c, Ir(n).escapedName);
    }
    function Jet(n, a) {
      const c = n.parent;
      if (Av(c) && n === c.initializer) {
        const u = eae(c, a);
        if (u)
          return u;
        if (!(a & 8) && Ja(c.name) && c.name.elements.length > 0)
          return Lo(c.name, !0, !1);
      }
    }
    function Ket(n, a) {
      const c = Tf(n);
      if (c) {
        let u = nae(c, a);
        if (u) {
          const p = Fl(c);
          if (p & 1) {
            const g = (p & 2) !== 0;
            u.flags & 1048576 && (u = dl(u, (R) => !!zb(1, R, g)));
            const x = zb(1, u, (p & 2) !== 0);
            if (!x)
              return;
            u = x;
          }
          if (p & 2) {
            const g = Ks(u, $g);
            return g && Yr([g, gke(g)]);
          }
          return u;
        }
      }
    }
    function Xet(n, a) {
      const c = td(n, a);
      if (c) {
        const u = $g(c);
        return u && Yr([u, gke(u)]);
      }
    }
    function Yet(n, a) {
      const c = Tf(n);
      if (c) {
        const u = Fl(c);
        let p = nae(c, a);
        if (p) {
          const g = (u & 2) !== 0;
          return !n.asteriskToken && p.flags & 1048576 && (p = dl(p, (x) => !!zb(1, x, g))), n.asteriskToken ? p : zb(0, p, g);
        }
      }
    }
    function tae(n) {
      let a = !1;
      for (; n.parent && !qa(n.parent); ) {
        if (Oa(n.parent) && (a || n.parent.initializer === n))
          return !0;
        us(n.parent) && n.parent.initializer === n && (a = !0), n = n.parent;
      }
      return !1;
    }
    function aIe(n, a) {
      const c = !!(Fl(a) & 2), u = nae(a, void 0);
      if (u)
        return zb(n, u, c) || void 0;
    }
    function nae(n, a) {
      const c = P2(n);
      if (c)
        return c;
      const u = oae(n);
      if (u && !kre(u))
        return ms(u);
      const p = dT(n);
      if (p)
        return td(p, a);
    }
    function oIe(n, a) {
      const u = kae(n).indexOf(a);
      return u === -1 ? void 0 : rae(n, u);
    }
    function rae(n, a) {
      if (rf(n))
        return a === 0 ? ue : a === 1 ? ZAe(!1) : ke;
      const c = zr(n).resolvedSignature === Uc ? Uc : ML(n);
      if (Ku(n) && a === 0)
        return aV(c, n);
      const u = c.parameters.length - 1;
      return gu(c) && a >= u ? Nd(or(c.parameters[u]), Pp(a - u), 256) : up(c, a);
    }
    function $et(n) {
      const a = Gae(n);
      return a ? wE(a) : void 0;
    }
    function Qet(n, a) {
      if (n.parent.kind === 212)
        return oIe(n.parent, a);
    }
    function Zet(n, a) {
      const c = n.parent, { left: u, operatorToken: p, right: g } = c;
      switch (p.kind) {
        case 63:
        case 76:
        case 75:
        case 77:
          return n === g ? ttt(c) : void 0;
        case 56:
        case 60:
          const x = td(c, a);
          return n === g && (x && x.pattern || !x && !cue(c)) ? Lu(u) : x;
        case 55:
        case 27:
          return n === g ? td(c, a) : void 0;
        default:
          return;
      }
    }
    function ett(n) {
      if (km(n) && n.symbol)
        return n.symbol;
      if (Ve(n))
        return L_(n);
      if (Mr(n)) {
        const c = Lu(n.expression);
        return Di(n.name) ? a(c, n.name) : so(c, n.name.escapedText);
      }
      if (cc(n)) {
        const c = Xc(n.argumentExpression);
        if (!Hh(c))
          return;
        const u = Lu(n.expression);
        return so(u, dm(c));
      }
      return;
      function a(c, u) {
        const p = uV(u.escapedText, u);
        return p && gae(c, p);
      }
    }
    function ttt(n) {
      var a, c;
      const u = Ac(n);
      switch (u) {
        case 0:
        case 4:
          const p = ett(n.left), g = p && p.valueDeclaration;
          if (g && (Za(g) || xf(g))) {
            const M = Kl(g);
            return M && Ji(ui(M), Vi(p).mapper) || (Za(g) ? g.initializer && Lu(n.left) : void 0);
          }
          return u === 0 ? Lu(n.left) : sIe(n);
        case 5:
          if (nV(n, u))
            return sIe(n);
          if (!km(n.left) || !n.left.symbol)
            return Lu(n.left);
          {
            const M = n.left.symbol.valueDeclaration;
            if (!M)
              return;
            const J = ro(n.left, sc), $ = Kl(M);
            if ($)
              return ui($);
            if (Ve(J.expression)) {
              const ge = J.expression, Ne = fc(ge, ge.escapedText, 111551, void 0, ge.escapedText, !0);
              if (Ne) {
                const we = Ne.valueDeclaration && Kl(Ne.valueDeclaration);
                if (we) {
                  const ft = cg(J);
                  if (ft !== void 0)
                    return VE(ui(we), ft);
                }
                return;
              }
            }
            return fr(M) ? void 0 : Lu(n.left);
          }
        case 1:
        case 6:
        case 3:
        case 2:
          let x;
          u !== 2 && (x = km(n.left) ? (a = n.left.symbol) == null ? void 0 : a.valueDeclaration : void 0), x || (x = (c = n.symbol) == null ? void 0 : c.valueDeclaration);
          const R = x && Kl(x);
          return R ? ui(R) : void 0;
        case 7:
        case 8:
        case 9:
          return D.fail("Does not apply");
        default:
          return D.assertNever(u);
      }
    }
    function nV(n, a = Ac(n)) {
      if (a === 4)
        return !0;
      if (!fr(n) || a !== 5 || !Ve(n.left.expression))
        return !1;
      const c = n.left.expression.escapedText, u = fc(n.left, c, 111551, void 0, void 0, !0, !0);
      return QM(u == null ? void 0 : u.valueDeclaration);
    }
    function sIe(n) {
      if (!n.symbol)
        return Lu(n.left);
      if (n.symbol.valueDeclaration) {
        const p = Kl(n.symbol.valueDeclaration);
        if (p) {
          const g = ui(p);
          if (g)
            return g;
        }
      }
      const a = ro(n.left, sc);
      if (!M_(bd(a.expression, !1, !1)))
        return;
      const c = VP(a.expression), u = cg(a);
      return u !== void 0 && VE(c, u) || void 0;
    }
    function ntt(n) {
      return !!(Cc(n) & 262144 && !n.links.type && th(n, 0) >= 0);
    }
    function VE(n, a, c) {
      return Ks(n, (u) => {
        var p;
        if (Ff(u) && !u.declaration.nameType) {
          const g = Rp(u), x = ju(g) || g, R = c || Bf(ta(a));
          if (To(R, x))
            return bU(u, R);
        } else if (u.flags & 3670016) {
          const g = so(u, a);
          if (g)
            return ntt(g) ? void 0 : or(g);
          if (Po(u) && Eh(a) && +a >= 0) {
            const x = IL(u, u.target.fixedLength, 0, !1, !0);
            if (x)
              return x;
          }
          return (p = Sre(xre(u), c || Bf(ta(a)))) == null ? void 0 : p.type;
        }
      }, !0);
    }
    function cIe(n, a) {
      if (D.assert(M_(n)), !(n.flags & 33554432))
        return iae(n, a);
    }
    function iae(n, a) {
      const c = n.parent, u = Vl(n) && eae(n, a);
      if (u)
        return u;
      const p = Hb(c, a);
      if (p) {
        if (R2(n)) {
          const g = Ir(n);
          return VE(p, g.escapedName, Vi(g).nameType);
        }
        if (n.name) {
          const g = zg(n.name);
          return Ks(p, (x) => {
            var R;
            return (R = Sre(xre(x), g)) == null ? void 0 : R.type;
          }, !0);
        }
      }
    }
    function lIe(n, a) {
      return n && (a >= 0 && VE(n, "" + a) || Ks(n, (c) => Po(c) ? IL(c, 0, 0, !1, !0) : ioe(1, c, je, void 0, !1), !0));
    }
    function rtt(n, a) {
      const c = n.parent;
      return n === c.whenTrue || n === c.whenFalse ? td(c, a) : void 0;
    }
    function itt(n, a, c) {
      const u = Hb(n.openingElement.tagName, c), p = sV(J2(n));
      if (!(u && !bs(u) && p && p !== ""))
        return;
      const g = RN(n.children), x = g.indexOf(a), R = VE(u, p);
      return R && (g.length === 1 ? R : Ks(R, (M) => C0(M) ? Nd(M, Pp(x)) : M, !0));
    }
    function att(n, a) {
      const c = n.parent;
      return kM(c) ? td(n, a) : Ty(c) ? itt(c, n, a) : void 0;
    }
    function uIe(n, a) {
      if (em(n)) {
        const c = Hb(n.parent, a);
        return !c || bs(c) ? void 0 : VE(c, n.name.escapedText);
      } else
        return td(n.parent, a);
    }
    function jP(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 jP(n.expression);
        case 291:
          return !n.expression || jP(n.expression);
      }
      return !1;
    }
    function ott(n, a) {
      return $Ze(a, n) || hie(a, ma(en(yn(n.properties, (c) => !!c.symbol && c.kind === 299 && jP(c.initializer) && bD(a, c.symbol.escapedName)), (c) => [() => a4(c.initializer), c.symbol.escapedName]), en(yn(fs(a), (c) => {
        var u;
        return !!(c.flags & 16777216) && !!((u = n == null ? void 0 : n.symbol) != null && u.members) && !n.symbol.members.has(c.escapedName) && bD(a, c.escapedName);
      }), (c) => [() => je, c.escapedName])), To, a);
    }
    function stt(n, a) {
      return hie(a, ma(en(yn(n.properties, (c) => !!c.symbol && c.kind === 288 && bD(a, c.symbol.escapedName) && (!c.initializer || jP(c.initializer))), (c) => [c.initializer ? () => a4(c.initializer) : () => Pe, c.symbol.escapedName]), en(yn(fs(a), (c) => {
        var u;
        return !!(c.flags & 16777216) && !!((u = n == null ? void 0 : n.symbol) != null && u.members) && !n.symbol.members.has(c.escapedName) && bD(a, c.escapedName);
      }), (c) => [() => je, c.escapedName])), To, a);
    }
    function Hb(n, a) {
      const c = M_(n) ? cIe(n, a) : td(n, a), u = rV(c, n, a);
      if (u && !(a && a & 2 && u.flags & 8650752)) {
        const p = Ks(u, Hu, !0);
        return p.flags & 1048576 && xs(n) ? ott(n, p) : p.flags & 1048576 && O1(n) ? stt(n, p) : p;
      }
    }
    function rV(n, a, c) {
      if (n && _c(n, 465829888)) {
        const u = CS(a);
        if (u && c & 1 && kt(u.inferences, Urt))
          return iV(n, u.nonFixingMapper);
        if (u != null && u.returnMapper) {
          const p = iV(n, u.returnMapper);
          return p.flags & 1048576 && Pb(p.types, K) && Pb(p.types, Z) ? dl(p, (g) => g !== K && g !== Z) : p;
        }
      }
      return n;
    }
    function iV(n, a) {
      return n.flags & 465829888 ? Ji(n, a) : n.flags & 1048576 ? Yr(en(n.types, (c) => iV(c, a)), 0) : n.flags & 2097152 ? Io(en(n.types, (c) => iV(c, a))) : n;
    }
    function td(n, a) {
      var c, u;
      if (n.flags & 33554432)
        return;
      const p = fIe(n, !a);
      if (p >= 0)
        return il[p];
      const { parent: g } = n;
      switch (g.kind) {
        case 257:
        case 166:
        case 169:
        case 168:
        case 205:
          return Jet(n, a);
        case 216:
        case 250:
          return Ket(n, a);
        case 226:
          return Yet(g, a);
        case 220:
          return Xet(g, a);
        case 210:
        case 211:
          return oIe(g, n);
        case 167:
          return $et(g);
        case 213:
        case 231:
          return rg(g.type) ? td(g, a) : ui(g.type);
        case 223:
          return Zet(n, a);
        case 299:
        case 300:
          return iae(g, a);
        case 301:
          return td(g.parent, a);
        case 206: {
          const x = g, R = Hb(x, a), M = (u = (c = zr(x)).firstSpreadIndex) != null ? u : c.firstSpreadIndex = Qi(x.elements, xh), J = wA(x.elements, n);
          return lIe(R, M < 0 || J < M ? J : -1);
        }
        case 224:
          return rtt(n, a);
        case 236:
          return D.assert(g.parent.kind === 225), Qet(g.parent, n);
        case 214: {
          if (fr(g)) {
            if (gq(g))
              return ui(yq(g));
            const x = d1(g);
            if (x && !rg(x.typeExpression.type))
              return ui(x.typeExpression.type);
          }
          return td(g, a);
        }
        case 232:
          return td(g, a);
        case 235:
          return ui(g.type);
        case 274:
          return Rd(g);
        case 291:
          return att(g, a);
        case 288:
        case 290:
          return uIe(g, a);
        case 283:
        case 282:
          return utt(g, a);
      }
    }
    function dIe(n) {
      HP(n, td(n, void 0), !0);
    }
    function HP(n, a, c) {
      Js[bg] = n, il[bg] = a, Jm[bg] = c, bg++;
    }
    function xD() {
      bg--;
    }
    function fIe(n, a) {
      for (let c = bg - 1; c >= 0; c--)
        if (n === Js[c] && (a || !Jm[c]))
          return c;
      return -1;
    }
    function ctt(n, a) {
      $_[Kv] = n, lb[Kv] = a, Kv++;
    }
    function ltt() {
      Kv--;
    }
    function CS(n) {
      for (let a = Kv - 1; a >= 0; a--)
        if (mT(n, $_[a]))
          return lb[a];
    }
    function utt(n, a) {
      if (Ch(n) && a !== 4) {
        const c = fIe(n.parent, !a);
        if (c >= 0)
          return il[c];
      }
      return rae(n, 0);
    }
    function aV(n, a) {
      return KIe(a) !== 0 ? dtt(n, a) : ptt(n, a);
    }
    function dtt(n, a) {
      let c = Fae(n, he);
      c = _Ie(a, J2(a), c);
      const u = Wb(Af.IntrinsicAttributes, a);
      return Zo(u) || (c = uP(u, c)), c;
    }
    function ftt(n, a) {
      if (n.compositeSignatures) {
        const u = [];
        for (const p of n.compositeSignatures) {
          const g = ms(p);
          if (bs(g))
            return g;
          const x = ul(g, a);
          if (!x)
            return;
          u.push(x);
        }
        return Io(u);
      }
      const c = ms(n);
      return bs(c) ? c : ul(c, a);
    }
    function _tt(n) {
      if (NL(n.tagName)) {
        const c = TIe(n), u = gV(n, c);
        return wE(u);
      }
      const a = Xc(n.tagName);
      if (a.flags & 128) {
        const c = EIe(a, n);
        if (!c)
          return xe;
        const u = gV(n, c);
        return wE(u);
      }
      return a;
    }
    function _Ie(n, a, c) {
      const u = Ntt(a);
      if (u) {
        const p = Fs(u), g = _tt(n);
        if (u.flags & 524288) {
          const x = Vi(u).typeParameters;
          if (Ie(x) >= 2) {
            const R = nv([g, c], x, 2, fr(n));
            return B2(u, R);
          }
        }
        if (Ie(p.typeParameters) >= 2) {
          const x = nv([g, c], p.typeParameters, 2, fr(n));
          return Wg(p, x);
        }
      }
      return c;
    }
    function ptt(n, a) {
      const c = J2(a), u = Ott(c);
      let p = u === void 0 ? Fae(n, he) : u === "" ? ms(n) : ftt(n, u);
      if (!p)
        return u && Ie(a.attributes.properties) && Je(a, _.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, ta(u)), he;
      if (p = _Ie(a, c, p), bs(p))
        return p;
      {
        let g = p;
        const x = Wb(Af.IntrinsicClassAttributes, a);
        if (!Zo(x)) {
          const M = $y(x.symbol), J = ms(n);
          let $;
          if (M) {
            const ge = nv([J], M, _m(M), fr(a));
            $ = Ji(x, hd(M, ge));
          } else
            $ = x;
          g = uP($, g);
        }
        const R = Wb(Af.IntrinsicAttributes, a);
        return Zo(R) || (g = uP(R, g)), g;
      }
    }
    function mtt(n) {
      return m_(Y, "noImplicitAny") ? Iu(n, (a, c) => a === c || !a ? a : bAe(a.typeParameters, c.typeParameters) ? ytt(a, c) : void 0) : void 0;
    }
    function htt(n, a, c) {
      if (!n || !a)
        return n || a;
      const u = Yr([or(n), Ji(or(a), c)]);
      return PE(n, u);
    }
    function gtt(n, a, c) {
      const u = $d(n), p = $d(a), g = u >= p ? n : a, x = g === n ? a : n, R = g === n ? u : p, M = vm(n) || vm(a), J = M && !vm(g), $ = new Array(R + (J ? 1 : 0));
      for (let ge = 0; ge < R; ge++) {
        let Ne = jE(g, ge);
        g === a && (Ne = Ji(Ne, c));
        let we = jE(x, ge) || he;
        x === a && (we = Ji(we, c));
        const ft = Yr([Ne, we]), Bt = M && !J && ge === R - 1, Fn = ge >= ym(g) && ge >= ym(x), An = ge >= u ? void 0 : FL(n, ge), Yn = ge >= p ? void 0 : FL(a, ge), hn = An === Yn ? An : An ? Yn ? void 0 : An : Yn, xn = Qo(1 | (Fn && !Bt ? 16777216 : 0), hn || `arg${ge}`);
        xn.links.type = Bt ? xu(ft) : ft, $[ge] = xn;
      }
      if (J) {
        const ge = Qo(1, "args");
        ge.links.type = xu(up(x, R)), x === a && (ge.links.type = Ji(ge.links.type, c)), $[R] = ge;
      }
      return $;
    }
    function ytt(n, a) {
      const c = n.typeParameters || a.typeParameters;
      let u;
      n.typeParameters && a.typeParameters && (u = hd(a.typeParameters, n.typeParameters));
      const p = n.declaration, g = gtt(n, a, u), x = htt(n.thisParameter, a.thisParameter, u), R = Math.max(n.minArgumentCount, a.minArgumentCount), M = rh(p, c, x, g, void 0, void 0, R, (n.flags | a.flags) & 39);
      return M.compositeKind = 2097152, M.compositeSignatures = ma(n.compositeKind === 2097152 && n.compositeSignatures || [n], [a]), u && (M.mapper = n.compositeKind === 2097152 && n.mapper && n.compositeSignatures ? A0(n.mapper, u) : u), M;
    }
    function aae(n, a) {
      const c = ja(n, 0), u = yn(c, (p) => !vtt(p, a));
      return u.length === 1 ? u[0] : mtt(u);
    }
    function vtt(n, a) {
      let c = 0;
      for (; c < a.parameters.length; c++) {
        const u = a.parameters[c];
        if (u.initializer || u.questionToken || u.dotDotDotToken || iO(u))
          break;
      }
      return a.parameters.length && A1(a.parameters[0]) && c--, !vm(n) && $d(n) < c;
    }
    function oae(n) {
      return aC(n) || M_(n) ? AD(n) : void 0;
    }
    function AD(n) {
      D.assert(n.kind !== 171 || M_(n));
      const a = iD(n);
      if (a)
        return a;
      const c = Hb(n, 1);
      if (!c)
        return;
      if (!(c.flags & 1048576))
        return aae(c, n);
      let u;
      const p = c.types;
      for (const g of p) {
        const x = aae(g, n);
        if (x)
          if (!u)
            u = [x];
          else if (DP(u[0], x, !1, !0, !0, fD))
            u.push(x);
          else
            return;
      }
      if (u)
        return u.length === 1 ? u[0] : yAe(u[0], u);
    }
    function btt(n, a) {
      P < 2 && fl(n, Y.downlevelIteration ? 1536 : 1024);
      const c = pa(n.expression, a);
      return uv(33, c, je, n.expression);
    }
    function Ett(n) {
      return n.isSpread ? Nd(n.type, pt) : n.type;
    }
    function RL(n) {
      return n.kind === 205 && !!n.initializer || n.kind === 223 && n.operatorToken.kind === 63;
    }
    function pIe(n, a, c) {
      const u = n.elements, p = u.length, g = [], x = [];
      dIe(n);
      const R = gh(n), M = BL(n), J = Hb(n, void 0), $ = !!J && Xh(J, LL);
      let ge = !1;
      for (let Ne = 0; Ne < p; Ne++) {
        const we = u[Ne];
        if (we.kind === 227) {
          P < 2 && fl(we, Y.downlevelIteration ? 1536 : 1024);
          const ft = pa(we.expression, a, c);
          if (C0(ft))
            g.push(ft), x.push(8);
          else if (R) {
            const Bt = Hg(ft, pt) || ioe(65, ft, je, void 0, !1) || he;
            g.push(Bt), x.push(4);
          } else
            g.push(uv(33, ft, je, we.expression)), x.push(4);
        } else if (We && we.kind === 229)
          ge = !0, g.push(Ut), x.push(2);
        else {
          const ft = GL(we, a, c);
          if (g.push(Co(ft, !0, ge)), x.push(ge ? 2 : 1), $ && a && a & 2 && !(a & 4) && C_(we)) {
            const Bt = CS(n);
            D.assert(Bt), hLe(Bt, we, ft);
          }
        }
      }
      return xD(), R ? Op(g, x) : mIe(c || M || $ ? Op(g, x, M) : xu(g.length ? Yr(Zs(g, (Ne, we) => x[we] & 8 ? iv(Ne, pt) || ke : Ne), 2) : W ? fn : Qe, M));
    }
    function mIe(n) {
      if (!(Zr(n) & 4))
        return n;
      let a = n.literalType;
      return a || (a = n.literalType = VAe(n), a.objectFlags |= 147456), a;
    }
    function Ttt(n) {
      switch (n.kind) {
        case 164:
          return Stt(n);
        case 79:
          return Eh(n.escapedText);
        case 8:
        case 10:
          return Eh(n.text);
        default:
          return !1;
      }
    }
    function Stt(n) {
      return Nl(Yg(n), 296);
    }
    function Yg(n) {
      const a = zr(n.expression);
      if (!a.resolvedType) {
        if ((of(n.parent.parent) || li(n.parent.parent) || Qu(n.parent.parent)) && br(n.expression) && n.expression.operatorToken.kind === 101 && n.parent.kind !== 174 && n.parent.kind !== 175)
          return a.resolvedType = xe;
        if (a.resolvedType = pa(n.expression), Za(n.parent) && !pl(n.parent) && Pu(n.parent.parent)) {
          const c = Nm(n.parent.parent), u = Yie(c);
          u && (zr(u).flags |= 4096, zr(n).flags |= 32768, zr(n.parent.parent).flags |= 32768);
        }
        (a.resolvedType.flags & 98304 || !Nl(a.resolvedType, 402665900) && !To(a.resolvedType, xi)) && Je(n, _.A_computed_property_name_must_be_of_type_string_number_symbol_or_any);
      }
      return a.resolvedType;
    }
    function xtt(n) {
      var a;
      const c = (a = n.declarations) == null ? void 0 : a[0];
      return Eh(n.escapedName) || c && _u(c) && Ttt(c.name);
    }
    function hIe(n) {
      var a;
      const c = (a = n.declarations) == null ? void 0 : a[0];
      return kN(n) || c && _u(c) && Ts(c.name) && Nl(Yg(c.name), 4096);
    }
    function sae(n, a, c, u) {
      const p = [];
      for (let x = a; x < c.length; x++) {
        const R = c[x];
        (u === ue && !hIe(R) || u === pt && xtt(R) || u === q && hIe(R)) && p.push(or(c[x]));
      }
      const g = p.length ? Yr(p, 2) : je;
      return pm(u, g, BL(n));
    }
    function cae(n) {
      D.assert((n.flags & 2097152) !== 0, "Should only get Alias here.");
      const a = Vi(n);
      if (!a.immediateTarget) {
        const c = fd(n);
        if (!c)
          return D.fail();
        a.immediateTarget = rp(c, !0);
      }
      return a.immediateTarget;
    }
    function Att(n, a) {
      var c;
      const u = gh(n);
      Cst(n, u);
      const p = W ? ao() : void 0;
      let g = ao(), x = [], R = ua;
      dIe(n);
      const M = Hb(n, void 0), J = M && M.pattern && (M.pattern.kind === 203 || M.pattern.kind === 207), $ = BL(n), ge = $ ? 8 : 0, Ne = fr(n) && !r3(n), we = ZH(n), ft = !M && Ne && !we;
      let Bt = Be, Fn = !1, An = !1, Yn = !1, hn = !1;
      for (const on of n.properties)
        on.name && Ts(on.name) && Yg(on.name);
      let xn = 0;
      for (const on of n.properties) {
        let Un = Ir(on);
        const Kn = on.name && on.name.kind === 164 ? Yg(on.name) : void 0;
        if (on.kind === 299 || on.kind === 300 || M_(on)) {
          let $r = on.kind === 299 ? Dke(on, a) : on.kind === 300 ? GL(!u && on.objectAssignmentInitializer ? on.objectAssignmentInitializer : on.name, a) : Rke(on, a);
          if (Ne) {
            const Ya = Ci(on);
            Ya ? (ed($r, Ya, on), $r = Ya) : we && we.typeExpression && ed($r, ui(we.typeExpression), on);
          }
          Bt |= Zr($r) & 458752;
          const ti = Kn && Hh(Kn) ? Kn : void 0, da = ti ? Qo(4 | Un.flags, dm(ti), ge | 4096) : Qo(4 | Un.flags, Un.escapedName, ge);
          if (ti && (da.links.nameType = ti), u)
            (on.kind === 299 && RL(on.initializer) || on.kind === 300 && on.objectAssignmentInitializer) && (da.flags |= 16777216);
          else if (J && !(Zr(M) & 512)) {
            const Ya = so(M, Un.escapedName);
            Ya ? da.flags |= Ya.flags & 16777216 : !Y.suppressExcessPropertyErrors && !ih(M, ue) && Je(on.name, _.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, S(Un), Le(M));
          }
          if (da.declarations = Un.declarations, da.parent = Un.parent, Un.valueDeclaration && (da.valueDeclaration = Un.valueDeclaration), da.links.type = $r, da.links.target = Un, Un = da, p == null || p.set(da.escapedName, da), M && a && a & 2 && !(a & 4) && (on.kind === 299 || on.kind === 171) && C_(on)) {
            const Ya = CS(n);
            D.assert(Ya);
            const yl = on.kind === 299 ? on.initializer : on;
            hLe(Ya, yl, $r);
          }
        } else if (on.kind === 301) {
          P < 2 && fl(on, 2), x.length > 0 && (R = Fb(R, yr(), n.symbol, Bt, $), x = [], g = ao(), An = !1, Yn = !1, hn = !1);
          const $r = cp(pa(on.expression));
          if (WP($r)) {
            const ti = tie($r, $);
            if (p && yIe(ti, p, on), xn = x.length, Zo(R))
              continue;
            R = Fb(R, ti, n.symbol, Bt, $);
          } else
            Je(on, _.Spread_types_may_only_be_created_from_object_types), R = xe;
          continue;
        } else
          D.assert(on.kind === 174 || on.kind === 175), zL(on);
        Kn && !(Kn.flags & 8576) ? To(Kn, xi) && (To(Kn, pt) ? Yn = !0 : To(Kn, q) ? hn = !0 : An = !0, u && (Fn = !0)) : g.set(Un.escapedName, Un), x.push(Un);
      }
      if (xD(), J) {
        const on = rr(M.pattern.parent, (Kn) => Kn.kind === 257 || Kn.kind === 223 || Kn.kind === 166);
        if (rr(n, (Kn) => Kn === on || Kn.kind === 301).kind !== 301)
          for (const Kn of fs(M))
            !g.get(Kn.escapedName) && !so(R, Kn.escapedName) && (Kn.flags & 16777216 || Je(Kn.valueDeclaration || ((c = ii(Kn, Dm)) == null ? void 0 : c.links.bindingElement), _.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value), g.set(Kn.escapedName, Kn), x.push(Kn));
      }
      if (Zo(R))
        return xe;
      if (R !== ua)
        return x.length > 0 && (R = Fb(R, yr(), n.symbol, Bt, $), x = [], g = ao(), An = !1, Yn = !1), Ks(R, (on) => on === ua ? yr() : on);
      return yr();
      function yr() {
        const on = [];
        An && on.push(sae(n, xn, x, ue)), Yn && on.push(sae(n, xn, x, pt)), hn && on.push(sae(n, xn, x, q));
        const Un = ws(n.symbol, g, rt, rt, on);
        return Un.objectFlags |= Bt | 128 | 131072, ft && (Un.objectFlags |= 4096), Fn && (Un.objectFlags |= 512), u && (Un.pattern = n), Un;
      }
    }
    function WP(n) {
      const a = fLe(Ks(n, tv));
      return !!(a.flags & 126615553 || a.flags & 3145728 && Rn(a.types, WP));
    }
    function Ctt(n) {
      fae(n);
    }
    function Ltt(n, a) {
      return zL(n), zP(n) || ke;
    }
    function Itt(n) {
      fae(n.openingElement), NL(n.closingElement.tagName) ? uae(n.closingElement) : pa(n.closingElement.tagName), oV(n);
    }
    function ktt(n, a) {
      return zL(n), zP(n) || ke;
    }
    function wtt(n) {
      fae(n.openingFragment);
      const a = er(n);
      return $z(Y) && (Y.jsxFactory || a.pragmas.has("jsx")) && !Y.jsxFragmentFactory && !a.pragmas.has("jsxfrag") && Je(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), oV(n), zP(n) || ke;
    }
    function lae(n) {
      return uu(n, "-");
    }
    function NL(n) {
      return n.kind === 79 && HI(n.escapedText);
    }
    function gIe(n, a) {
      return n.initializer ? GL(n.initializer, a) : Pe;
    }
    function Dtt(n, a) {
      const c = n.attributes, u = td(c, 0), p = W ? ao() : void 0;
      let g = ao(), x = $c, R = !1, M, J = !1, $ = 2048;
      const ge = sV(J2(n));
      for (const ft of c.properties) {
        const Bt = ft.symbol;
        if (em(ft)) {
          const Fn = gIe(ft, a);
          $ |= Zr(Fn) & 458752;
          const An = Qo(4 | Bt.flags, Bt.escapedName);
          if (An.declarations = Bt.declarations, An.parent = Bt.parent, Bt.valueDeclaration && (An.valueDeclaration = Bt.valueDeclaration), An.links.type = Fn, An.links.target = Bt, g.set(An.escapedName, An), p == null || p.set(An.escapedName, An), ft.name.escapedText === ge && (J = !0), u) {
            const Yn = so(u, Bt.escapedName);
            Yn && Yn.declarations && n0(Yn) && Cg(ft.name, Yn.declarations, ft.name.escapedText);
          }
        } else {
          D.assert(ft.kind === 290), g.size > 0 && (x = Fb(x, we(), c.symbol, $, !1), g = ao());
          const Fn = cp(Xc(ft.expression, a));
          bs(Fn) && (R = !0), WP(Fn) ? (x = Fb(x, Fn, c.symbol, $, !1), p && yIe(Fn, p, ft)) : (Je(ft.expression, _.Spread_types_may_only_be_created_from_object_types), M = M ? Io([M, Fn]) : Fn);
        }
      }
      R || g.size > 0 && (x = Fb(x, we(), c.symbol, $, !1));
      const Ne = n.parent.kind === 281 ? n.parent : void 0;
      if (Ne && Ne.openingElement === n && Ne.children.length > 0) {
        const ft = oV(Ne, a);
        if (!R && ge && ge !== "") {
          J && Je(c, _._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, ta(ge));
          const Bt = Hb(n.attributes, void 0), Fn = Bt && VE(Bt, ge), An = Qo(4, ge);
          An.links.type = ft.length === 1 ? ft[0] : Fn && Xh(Fn, LL) ? Op(ft) : xu(Yr(ft)), An.valueDeclaration = N.createPropertySignature(void 0, ta(ge), void 0, void 0), Bo(An.valueDeclaration, c), An.valueDeclaration.symbol = An;
          const Yn = ao();
          Yn.set(ge, An), x = Fb(x, ws(c.symbol, Yn, rt, rt, rt), c.symbol, $, !1);
        }
      }
      if (R)
        return ke;
      if (M && x !== $c)
        return Io([M, x]);
      return M || (x === $c ? we() : x);
      function we() {
        $ |= Be;
        const ft = ws(c.symbol, g, rt, rt, rt);
        return ft.objectFlags |= $ | 128 | 131072, ft;
      }
    }
    function oV(n, a) {
      const c = [];
      for (const u of n.children)
        if (u.kind === 11)
          u.containsOnlyTriviaWhiteSpaces || c.push(ue);
        else {
          if (u.kind === 291 && !u.expression)
            continue;
          c.push(GL(u, a));
        }
      return c;
    }
    function yIe(n, a, c) {
      for (const u of fs(n))
        if (!(u.flags & 16777216)) {
          const p = a.get(u.escapedName);
          if (p) {
            const g = Je(p.valueDeclaration, _._0_is_specified_more_than_once_so_this_usage_will_be_overwritten, ta(p.escapedName));
            qo(g, Rr(c, _.This_spread_always_overwrites_this_property));
          }
        }
    }
    function Rtt(n, a) {
      return Dtt(n.parent, a);
    }
    function Wb(n, a) {
      const c = J2(a), u = c && ff(c), p = u && zd(u, n, 788968);
      return p ? Fs(p) : xe;
    }
    function uae(n) {
      const a = zr(n);
      if (!a.resolvedSymbol) {
        const c = Wb(Af.IntrinsicElements, n);
        if (Zo(c))
          return Te && Je(n, _.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists, ta(Af.IntrinsicElements)), a.resolvedSymbol = nn;
        {
          if (!Ve(n.tagName))
            return D.fail();
          const u = so(c, n.tagName.escapedText);
          return u ? (a.jsxFlags |= 1, a.resolvedSymbol = u) : Hg(c, ue) ? (a.jsxFlags |= 2, a.resolvedSymbol = c.symbol) : (Je(n, _.Property_0_does_not_exist_on_type_1, Pr(n.tagName), "JSX." + Af.IntrinsicElements), a.resolvedSymbol = nn);
        }
      }
      return a.resolvedSymbol;
    }
    function dae(n) {
      const a = n && er(n), c = a && zr(a);
      if (c && c.jsxImplicitImportContainer === !1)
        return;
      if (c && c.jsxImplicitImportContainer)
        return c.jsxImplicitImportContainer;
      const u = R3(D3(Y, a), Y);
      if (!u)
        return;
      const g = yc(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 = gl(n, u, g, n), R = x && x !== nn ? ns(Jc(x)) : void 0;
      return c && (c.jsxImplicitImportContainer = R || !1), R;
    }
    function J2(n) {
      const a = n && zr(n);
      if (a && a.jsxNamespace)
        return a.jsxNamespace;
      if (!a || a.jsxNamespace !== !1) {
        let u = dae(n);
        if (!u || u === nn) {
          const p = mb(n);
          u = fc(n, p, 1920, void 0, p, !1);
        }
        if (u) {
          const p = Jc(zd(ff(Jc(u)), Af.JSX, 1920));
          if (p && p !== nn)
            return a && (a.jsxNamespace = p), p;
        }
        a && (a.jsxNamespace = !1);
      }
      const c = Jc(sD(Af.JSX, 1920, void 0));
      if (c !== nn)
        return c;
    }
    function vIe(n, a) {
      const c = a && zd(a.exports, n, 788968), u = c && Fs(c), p = u && fs(u);
      if (p) {
        if (p.length === 0)
          return "";
        if (p.length === 1)
          return p[0].escapedName;
        p.length > 1 && c.declarations && Je(c.declarations[0], _.The_global_type_JSX_0_may_not_have_more_than_one_property, ta(n));
      }
    }
    function Ntt(n) {
      return n && zd(n.exports, Af.LibraryManagedAttributes, 788968);
    }
    function Ott(n) {
      return vIe(Af.ElementAttributesPropertyNameContainer, n);
    }
    function sV(n) {
      return vIe(Af.ElementChildrenAttributeNameContainer, n);
    }
    function bIe(n, a) {
      if (n.flags & 4)
        return [zs];
      if (n.flags & 128) {
        const p = EIe(n, a);
        return p ? [gV(a, p)] : (Je(a, _.Property_0_does_not_exist_on_type_1, n.value, "JSX." + Af.IntrinsicElements), rt);
      }
      const c = Hu(n);
      let u = ja(c, 1);
      return u.length === 0 && (u = ja(c, 0)), u.length === 0 && c.flags & 1048576 && (u = ure(en(c.types, (p) => bIe(p, a)))), u;
    }
    function EIe(n, a) {
      const c = Wb(Af.IntrinsicElements, a);
      if (!Zo(c)) {
        const u = n.value, p = so(c, oc(u));
        if (p)
          return or(p);
        const g = Hg(c, ue);
        return g || void 0;
      }
      return ke;
    }
    function Ptt(n, a, c) {
      if (n === 1) {
        const p = xIe(c);
        p && r_(a, p, Cd, c.tagName, _.Its_return_type_0_is_not_a_valid_JSX_element, u);
      } else if (n === 0) {
        const p = SIe(c);
        p && r_(a, p, Cd, c.tagName, _.Its_instance_type_0_is_not_a_valid_JSX_element, u);
      } else {
        const p = xIe(c), g = SIe(c);
        if (!p || !g)
          return;
        const x = Yr([p, g]);
        r_(a, x, Cd, c.tagName, _.Its_element_type_0_is_not_a_valid_JSX_element, u);
      }
      function u() {
        const p = El(c.tagName);
        return ka(void 0, _._0_cannot_be_used_as_a_JSX_component, p);
      }
    }
    function TIe(n) {
      D.assert(NL(n.tagName));
      const a = zr(n);
      if (!a.resolvedJsxElementAttributesType) {
        const c = uae(n);
        return a.jsxFlags & 1 ? a.resolvedJsxElementAttributesType = or(c) || xe : a.jsxFlags & 2 ? a.resolvedJsxElementAttributesType = Hg(Wb(Af.IntrinsicElements, n), ue) || xe : a.resolvedJsxElementAttributesType = xe;
      }
      return a.resolvedJsxElementAttributesType;
    }
    function SIe(n) {
      const a = Wb(Af.ElementClass, n);
      if (!Zo(a))
        return a;
    }
    function zP(n) {
      return Wb(Af.Element, n);
    }
    function xIe(n) {
      const a = zP(n);
      if (a)
        return Yr([a, Sn]);
    }
    function Mtt(n) {
      const a = Wb(Af.IntrinsicElements, n);
      return a ? fs(a) : rt;
    }
    function Ftt(n) {
      (Y.jsx || 0) === 0 && Je(n, _.Cannot_use_JSX_unless_the_jsx_flag_is_provided), zP(n) === void 0 && Te && Je(n, _.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist);
    }
    function fae(n) {
      const a = Ku(n);
      if (a && Lst(n), Ftt(n), !dae(n)) {
        const c = Xo && Y.jsx === 2 ? _.Cannot_find_name_0 : void 0, u = mb(n), p = a ? n.tagName : n;
        let g;
        if (Rx(n) && u === "null" || (g = fc(p, u, 111551, c, u, !0)), g && (g.isReferenced = 67108863, !Y.verbatimModuleSyntax && g.flags & 2097152 && !kd(g) && Cb(g)), Rx(n)) {
          const x = er(n), R = oS(x);
          R && fc(p, R, 111551, c, R, !0);
        }
      }
      if (a) {
        const c = n, u = ML(c);
        vV(u, n), Ptt(KIe(c), ms(u), c);
      }
    }
    function _ae(n, a, c) {
      if (n.flags & 524288) {
        if (Db(n, a) || O2(n, a) || Zw(a) && ih(n, ue) || c && lae(a))
          return !0;
      } else if (n.flags & 3145728 && qP(n)) {
        for (const u of n.types)
          if (_ae(u, a, c))
            return !0;
      }
      return !1;
    }
    function qP(n) {
      return !!(n.flags & 524288 && !(Zr(n) & 512) || n.flags & 67108864 || n.flags & 1048576 && kt(n.types, qP) || n.flags & 2097152 && Rn(n.types, qP));
    }
    function Btt(n, a) {
      if (kst(n), n.expression) {
        const c = pa(n.expression, a);
        return n.dotDotDotToken && c !== ke && !Gf(c) && Je(n, _.JSX_spread_child_must_be_an_array_type), c;
      } else
        return xe;
    }
    function cV(n) {
      return n.valueDeclaration ? _p(n.valueDeclaration) : 0;
    }
    function pae(n) {
      if (n.flags & 8192 || Cc(n) & 4)
        return !0;
      if (fr(n.valueDeclaration)) {
        const a = n.valueDeclaration.parent;
        return a && br(a) && Ac(a) === 3;
      }
    }
    function mae(n, a, c, 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 AIe(n, a, c, u, p, x);
    }
    function AIe(n, a, c, u, p, g) {
      const x = Kf(p, c);
      if (a) {
        if (P < 2 && CIe(p))
          return g && Je(g, _.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword), !1;
        if (x & 256)
          return g && Je(g, _.Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression, S(p), Le(xS(p))), !1;
      }
      if (x & 256 && CIe(p) && (rN(n) || iue(n) || Um(n.parent) && QM(n.parent.parent))) {
        const M = dg(pd(p));
        if (M && Iot(n))
          return g && Je(g, _.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor, S(p), B_(M.name)), !1;
      }
      if (!(x & 24))
        return !0;
      if (x & 8) {
        const M = dg(pd(p));
        return moe(n, M) ? !0 : (g && Je(g, _.Property_0_is_private_and_only_accessible_within_class_1, S(p), Le(xS(p))), !1);
      }
      if (a)
        return !0;
      let R = jwe(n, (M) => {
        const J = Fs(Ir(M));
        return aLe(J, p, c);
      });
      return !R && (R = Gtt(n), R = R && aLe(R, p, c), x & 32 || !R) ? (g && Je(g, _.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, S(p), Le(xS(p) || u)), !1) : x & 32 ? !0 : (u.flags & 262144 && (u = u.isThisType ? Tu(u) : ju(u)), !u || !CE(u, R) ? (g && Je(g, _.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2, S(p), Le(R), Le(u)), !1) : !0);
    }
    function Gtt(n) {
      const a = Utt(n);
      let c = (a == null ? void 0 : a.type) && ui(a.type);
      if (c && c.flags & 262144 && (c = Tu(c)), c && Zr(c) & 7)
        return D2(c);
    }
    function Utt(n) {
      const a = bd(n, !1, !1);
      return a && qa(a) ? x1(a) : void 0;
    }
    function CIe(n) {
      return !!kP(n, (a) => !(a.flags & 8192));
    }
    function OL(n) {
      return Mp(pa(n), n);
    }
    function lV(n) {
      return !!(Cu(n) & 50331648);
    }
    function hae(n) {
      return lV(n) ? Xg(n) : n;
    }
    function Vtt(n, a) {
      const c = jc(n) ? Ef(n) : void 0;
      if (n.kind === 104) {
        Je(n, _.The_value_0_cannot_be_used_here, "null");
        return;
      }
      if (c !== void 0 && c.length < 100) {
        if (Ve(n) && c === "undefined") {
          Je(n, _.The_value_0_cannot_be_used_here, "undefined");
          return;
        }
        Je(n, a & 16777216 ? a & 33554432 ? _._0_is_possibly_null_or_undefined : _._0_is_possibly_undefined : _._0_is_possibly_null, c);
      } else
        Je(n, a & 16777216 ? a & 33554432 ? _.Object_is_possibly_null_or_undefined : _.Object_is_possibly_undefined : _.Object_is_possibly_null);
    }
    function jtt(n, a) {
      Je(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 LIe(n, a, c) {
      if (W && n.flags & 2) {
        if (jc(a)) {
          const p = Ef(a);
          if (p.length < 100)
            return Je(a, _._0_is_of_type_unknown, p), xe;
        }
        return Je(a, _.Object_is_of_type_unknown), xe;
      }
      const u = Cu(n);
      if (u & 50331648) {
        c(a, u);
        const p = Xg(n);
        return p.flags & 229376 ? xe : p;
      }
      return n;
    }
    function Mp(n, a) {
      return LIe(n, a, Vtt);
    }
    function IIe(n, a) {
      const c = Mp(n, a);
      if (c.flags & 16384) {
        if (jc(a)) {
          const u = Ef(a);
          if (Ve(a) && u === "undefined")
            return Je(a, _.The_value_0_cannot_be_used_here, u), c;
          if (u.length < 100)
            return Je(a, _._0_is_possibly_undefined, u), c;
        }
        Je(a, _.Object_is_possibly_undefined);
      }
      return c;
    }
    function kIe(n, a) {
      return n.flags & 32 ? Htt(n, a) : yae(n, n.expression, OL(n.expression), n.name, a);
    }
    function Htt(n, a) {
      const c = pa(n.expression), u = hD(c, n.expression);
      return VU(yae(n, n.expression, Mp(u, n.expression), n.name, a), n, u !== c);
    }
    function wIe(n, a) {
      const c = n3(n) && yT(n.left) ? Mp(VP(n.left), n.left) : OL(n.left);
      return yae(n, n.left, c, n.right, a);
    }
    function DIe(n) {
      for (; n.parent.kind === 214; )
        n = n.parent;
      return ig(n.parent) && n.parent.expression === n;
    }
    function uV(n, a) {
      for (let c = Tl(a); c; c = Tl(c)) {
        const { symbol: u } = c, p = IN(u, n), g = u.members && u.members.get(p) || u.exports && u.exports.get(p);
        if (g)
          return g;
      }
    }
    function Wtt(n) {
      if (!Tl(n))
        return En(n, _.Private_identifiers_are_not_allowed_outside_class_bodies);
      if (!cJ(n.parent)) {
        if (!sg(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 (!dV(n) && !a)
          return En(n, _.Cannot_find_name_0, Pr(n));
      }
      return !1;
    }
    function ztt(n) {
      Wtt(n);
      const a = dV(n);
      return a && KP(a, void 0, !1), ke;
    }
    function dV(n) {
      if (!sg(n))
        return;
      const a = zr(n);
      return a.resolvedSymbol === void 0 && (a.resolvedSymbol = uV(n.escapedText, n)), a.resolvedSymbol;
    }
    function gae(n, a) {
      return so(n, a.escapedName);
    }
    function qtt(n, a, c) {
      let u;
      const p = fs(n);
      p && ze(p, (x) => {
        const R = x.valueDeclaration;
        if (R && _u(R) && Di(R.name) && R.name.escapedText === a.escapedText)
          return u = x, !0;
      });
      const g = Zf(a);
      if (u) {
        const x = D.checkDefined(u.valueDeclaration), R = D.checkDefined(Tl(x));
        if (c != null && c.valueDeclaration) {
          const M = c.valueDeclaration, J = Tl(M);
          if (D.assert(!!J), rr(J, ($) => R === $)) {
            const $ = Je(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, Le(n));
            return qo($, Rr(M, _.The_shadowing_declaration_of_0_is_defined_here, g), Rr(x, _.The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here, g)), !0;
          }
        }
        return Je(a, _.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier, g, Zf(R.name || p8)), !0;
      }
      return !1;
    }
    function RIe(n, a) {
      return (Dd(a) || rN(n) && Dp(a)) && bd(n, !0, !1) === um(a);
    }
    function yae(n, a, c, u, p) {
      const g = zr(a).resolvedSymbol, x = pT(n), R = Hu(x !== 0 || DIe(n) ? Yd(c) : c), M = bs(R) || R === dt;
      let J;
      if (Di(u)) {
        P < 99 && (x !== 0 && fl(n, 1048576), x !== 1 && fl(n, 524288));
        const ge = uV(u.escapedText, u);
        if (x && ge && ge.valueDeclaration && nl(ge.valueDeclaration) && En(u, _.Cannot_assign_to_private_method_0_Private_methods_are_not_writable, Pr(u)), M) {
          if (ge)
            return Zo(R) ? xe : R;
          if (!Tl(u))
            return En(u, _.Private_identifiers_are_not_allowed_outside_class_bodies), ke;
        }
        if (J = ge ? gae(c, ge) : void 0, !J && qtt(c, u, ge))
          return xe;
        J && J.flags & 65536 && !(J.flags & 32768) && x !== 1 && Je(n, _.Private_accessor_was_defined_without_a_getter);
      } else {
        if (M)
          return Ve(a) && g && tV(g, n), Zo(R) ? xe : R;
        J = so(R, u.escapedText, !1, n.kind === 163);
      }
      Ve(a) && g && (U_(Y) || !(J && (VD(J) || J.flags & 8 && n.parent.kind === 302)) || L1(Y) && $Le(n)) && tV(g, n);
      let $;
      if (J) {
        n0(J) && Yre(n, J) && J.declarations && Cg(u, J.declarations, u.escapedText), Jtt(J, n, u), KP(J, n, GIe(a, g)), zr(n).resolvedSymbol = J;
        const ge = tk(n);
        if (mae(n, a.kind === 106, ge, R, J), Ake(n, J, x))
          return Je(u, _.Cannot_assign_to_0_because_it_is_a_read_only_property, Pr(u)), xe;
        $ = RIe(n, J) ? gt : ge ? mL(J) : or(J);
      } else {
        const ge = !Di(u) && (x === 0 || !Mb(c) || pk(c)) ? O2(R, u.escapedText) : void 0;
        if (!(ge && ge.type)) {
          const Ne = vae(n, c.symbol, !0);
          return !Ne && lD(c) ? ke : c.symbol === st ? (st.exports.has(u.escapedText) && st.exports.get(u.escapedText).flags & 418 ? Je(u, _.Property_0_does_not_exist_on_type_1, ta(u.escapedText), Le(c)) : Te && Je(u, _.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature, Le(c)), ke) : (u.escapedText && !r0(n) && PIe(u, pk(c) ? R : c, Ne), xe);
        }
        ge.isReadonly && (gh(n) || uz(n)) && Je(n, _.Index_signature_in_type_0_only_permits_reading, Le(R)), $ = Y.noUncheckedIndexedAccess && !gh(n) ? Yr([ge.type, Ke]) : ge.type, Y.noPropertyAccessFromIndexSignature && Mr(n) && Je(u, _.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, ta(u.escapedText)), ge.declaration && _p(ge.declaration) & 268435456 && Cg(u, [ge.declaration], u.escapedText);
      }
      return NIe(n, J, $, u, p);
    }
    function vae(n, a, c) {
      const u = er(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, er);
        return !(u !== p && p && Xm(p)) && !(c && a && a.flags & 32) && !(n && c && Mr(n) && n.expression.kind === 108);
      }
      return !1;
    }
    function NIe(n, a, c, u, p) {
      const g = pT(n);
      if (g === 1)
        return OE(c, !!(a && a.flags & 16777216));
      if (a && !(a.flags & 98311) && !(a.flags & 8192 && c.flags & 1048576) && !MV(a.declarations))
        return c;
      if (c === gt)
        return k2(n, a);
      c = Xie(c, n, p);
      let x = !1;
      if (W && ve && sc(n) && n.expression.kind === 108) {
        const M = a && a.valueDeclaration;
        if (M && Iwe(M) && !za(M)) {
          const J = SD(n);
          J.kind === 173 && J.parent === M.parent && !(M.flags & 16777216) && (x = !0);
        }
      } else
        W && a && a.valueDeclaration && Mr(a.valueDeclaration) && _N(a.valueDeclaration) && SD(n) === SD(a.valueDeclaration) && (x = !0);
      const R = k0(n, c, x ? Kg(c) : c);
      return x && !xL(c) && xL(R) ? (Je(u, _.Property_0_is_used_before_being_assigned, S(a)), c) : g ? cv(R) : R;
    }
    function Jtt(n, a, c) {
      const { valueDeclaration: u } = n;
      if (!u || er(a).isDeclarationFile)
        return;
      let p;
      const g = Pr(c);
      OIe(a) && !UYe(u) && !(sc(a) && sc(a.expression)) && !Ig(u, c) && !(nl(u) && uy(u) & 32) && (Y.useDefineForClassFields || !Ktt(n)) ? p = Je(c, _.Property_0_is_used_before_its_initialization, g) : u.kind === 260 && a.parent.kind !== 180 && !(u.flags & 16777216) && !Ig(u, c) && (p = Je(c, _.Class_0_used_before_its_declaration, g)), p && qo(p, Rr(u, _._0_is_declared_here, g));
    }
    function OIe(n) {
      return !!rr(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 oo(a.parent) && Lc(a.parent.parent) ? !0 : "quit";
          default:
            return sg(a) ? !1 : "quit";
        }
      });
    }
    function Ktt(n) {
      if (!(n.parent.flags & 32))
        return !1;
      let a = or(n.parent);
      for (; ; ) {
        if (a = a.symbol && Xtt(a), !a)
          return !1;
        const c = so(a, n.escapedName);
        if (c && c.valueDeclaration)
          return !0;
      }
    }
    function Xtt(n) {
      const a = Oo(n);
      if (a.length !== 0)
        return Io(a);
    }
    function PIe(n, a, c) {
      let u, p;
      if (!Di(n) && a.flags & 1048576 && !(a.flags & 134348796)) {
        for (const x of a.types)
          if (!so(x, n.escapedText) && !O2(x, n.escapedText)) {
            u = ka(u, _.Property_0_does_not_exist_on_type_1, Ls(n), Le(x));
            break;
          }
      }
      if (MIe(n.escapedText, a)) {
        const x = Ls(n), R = Le(a);
        u = ka(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 = MD(a);
        if (x && so(x, n.escapedText))
          u = ka(u, _.Property_0_does_not_exist_on_type_1, Ls(n), Le(a)), p = Rr(n, _.Did_you_forget_to_use_await);
        else {
          const R = Ls(n), M = Le(a), J = Qtt(R, a);
          if (J !== void 0)
            u = ka(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 $ = bae(n, a);
            if ($ !== void 0) {
              const ge = Oc($), Ne = c ? _.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 = ka(u, Ne, R, M, ge), p = $.valueDeclaration && Rr($.valueDeclaration, _._0_is_declared_here, ge);
            } else {
              const ge = Ytt(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 = ka(Ere(u, a), ge, R, M);
            }
          }
        }
      }
      const g = ag(er(n), n, u);
      p && qo(g, p), Ny(!c || u.code !== _.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code, g);
    }
    function Ytt(n) {
      return Y.lib && !Y.lib.includes("dom") && _et(n, (a) => a.symbol && /^(EventTarget|Node|((HTML[a-zA-Z]*)?Element))$/.test(ta(a.symbol.escapedName))) && qh(n);
    }
    function MIe(n, a) {
      const c = a.symbol && so(or(a.symbol), n);
      return c !== void 0 && !!c.valueDeclaration && za(c.valueDeclaration);
    }
    function $tt(n) {
      const a = Zf(n), u = RW().get(a);
      return u && dse(u.keys());
    }
    function Qtt(n, a) {
      const c = Hu(a).symbol;
      if (!c)
        return;
      const u = Oc(c), g = RW().get(u);
      if (g) {
        for (const [x, R] of g)
          if (wi(R, n))
            return x;
      }
    }
    function FIe(n, a) {
      return JP(n, fs(a), 106500);
    }
    function bae(n, a) {
      let c = fs(a);
      if (typeof n != "string") {
        const u = n.parent;
        Mr(u) && (c = yn(c, (p) => UIe(u, a, p))), n = Pr(n);
      }
      return JP(n, c, 111551);
    }
    function BIe(n, a) {
      const c = Ua(n) ? n : Pr(n), u = fs(a), p = c === "for" ? cn(u, (g) => Oc(g) === "htmlFor") : c === "class" ? cn(u, (g) => Oc(g) === "className") : void 0;
      return p ?? JP(c, u, 111551);
    }
    function Eae(n, a) {
      const c = bae(n, a);
      return c && Oc(c);
    }
    function Tae(n, a, c) {
      return D.assert(a !== void 0, "outername should always be defined"), bb(n, a, c, void 0, a, !1, !1, !0, (p, g, x) => {
        D.assertEqual(a, g, "name should equal outerName");
        const R = zd(p, g, x);
        if (R)
          return R;
        let M;
        return p === He ? M = fa(["string", "number", "boolean", "object", "bigint", "symbol"], ($) => p.has($.charAt(0).toUpperCase() + $.slice(1)) ? Qo(524288, $) : void 0).concat(Do(p.values())) : M = Do(p.values()), JP(ta(g), M, x);
      });
    }
    function Ztt(n, a, c) {
      const u = Tae(n, a, c);
      return u && Oc(u);
    }
    function fV(n, a) {
      return a.exports && JP(Pr(n), Uy(a), 2623475);
    }
    function ent(n, a) {
      const c = fV(n, a);
      return c && Oc(c);
    }
    function tnt(n, a, c) {
      function u(x) {
        const R = Db(n, x);
        if (R) {
          const M = LS(or(R));
          return !!M && ym(M) >= 1 && To(c, up(M, 0));
        }
        return !1;
      }
      const p = gh(a) ? "set" : "get";
      if (!u(p))
        return;
      let g = VN(a.expression);
      return g === void 0 ? g = p : g += "." + p, g;
    }
    function nnt(n, a) {
      const c = a.types.filter((u) => !!(u.flags & 128));
      return nI(n.value, c, (u) => u.value);
    }
    function JP(n, a, c) {
      return nI(n, a, u);
      function u(p) {
        const g = Oc(p);
        if (!ba(g, '"')) {
          if (p.flags & c)
            return g;
          if (p.flags & 2097152) {
            const x = Rg(p);
            if (x && x.flags & c)
              return g;
          }
        }
      }
    }
    function KP(n, a, c) {
      const u = n && n.flags & 106500 && n.valueDeclaration;
      if (!u)
        return;
      const p = Pd(u, 8), g = n.valueDeclaration && _u(n.valueDeclaration) && Di(n.valueDeclaration.name);
      if (!(!p && !g) && !(a && jz(a) && !(n.flags & 65536))) {
        if (c) {
          const x = rr(a, Xs);
          if (x && x.symbol === n)
            return;
        }
        (Cc(n) & 1 ? Vi(n).target : n).isReferenced = 67108863;
      }
    }
    function GIe(n, a) {
      return n.kind === 108 || !!a && jc(n) && a === L_(Sf(n));
    }
    function rnt(n, a) {
      switch (n.kind) {
        case 208:
          return Sae(n, n.expression.kind === 106, a, Yd(pa(n.expression)));
        case 163:
          return Sae(n, !1, a, Yd(pa(n.left)));
        case 202:
          return Sae(n, !1, a, ui(n));
      }
    }
    function UIe(n, a, c) {
      return xae(n, n.kind === 208 && n.expression.kind === 106, !1, a, c);
    }
    function Sae(n, a, c, u) {
      if (bs(u))
        return !0;
      const p = so(u, c);
      return !!p && xae(n, a, !1, u, p);
    }
    function xae(n, a, c, u, p) {
      if (bs(u))
        return !0;
      if (p.valueDeclaration && Ju(p.valueDeclaration)) {
        const g = Tl(p.valueDeclaration);
        return !pu(n) && !!rr(n, (x) => x === g);
      }
      return AIe(n, a, c, u, p);
    }
    function int(n) {
      const a = n.initializer;
      if (a.kind === 258) {
        const c = a.declarations[0];
        if (c && !Ja(c.name))
          return Ir(c);
      } else if (a.kind === 79)
        return L_(a);
    }
    function ant(n) {
      return Su(n).length === 1 && !!ih(n, pt);
    }
    function ont(n) {
      const a = Gs(n);
      if (a.kind === 79) {
        const c = L_(a);
        if (c.flags & 3) {
          let u = n, p = n.parent;
          for (; p; ) {
            if (p.kind === 246 && u === p.statement && int(p) === c && ant(Lu(p.expression)))
              return !0;
            u = p, p = p.parent;
          }
        }
      }
      return !1;
    }
    function snt(n, a) {
      return n.flags & 32 ? cnt(n, a) : VIe(n, OL(n.expression), a);
    }
    function cnt(n, a) {
      const c = pa(n.expression), u = hD(c, n.expression);
      return VU(VIe(n, Mp(u, n.expression), a), n, u !== c);
    }
    function VIe(n, a, c) {
      const u = pT(n) !== 0 || DIe(n) ? Yd(a) : a, p = n.argumentExpression, g = pa(p);
      if (Zo(u) || u === dt)
        return u;
      if (jae(u) && !Es(p))
        return Je(p, _.A_const_enum_member_can_only_be_accessed_using_a_string_literal), xe;
      const x = ont(p) ? pt : g, R = gh(n) ? 4 | (Mb(u) && !pk(u) ? 2 : 0) : 32, M = iv(u, x, R, n) || xe;
      return zke(NIe(n, zr(n).resolvedSymbol, M, p, c), n);
    }
    function jIe(n) {
      return ig(n) || AT(n) || Ku(n);
    }
    function K2(n) {
      return jIe(n) && ze(n.typeArguments, mo), n.kind === 212 ? pa(n.template) : Ku(n) ? pa(n.attributes) : n.kind !== 167 && ze(n.arguments, (a) => {
        pa(a);
      }), zs;
    }
    function gm(n) {
      return K2(n), tn;
    }
    function lnt(n, a, c) {
      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 = $, GK(J) ? (R++, M = R, g++) : M = x, a.splice(M, 0, c ? uYe(J, c) : J);
      }
    }
    function _V(n) {
      return !!n && (n.kind === 227 || n.kind === 234 && n.isSpread);
    }
    function pV(n) {
      return Qi(n, _V);
    }
    function HIe(n) {
      return !!(n.flags & 16384);
    }
    function unt(n) {
      return !!(n.flags & 49155);
    }
    function mV(n, a, c, u = !1) {
      let p, g = !1, x = $d(c), R = ym(c);
      if (n.kind === 212)
        if (p = a.length, n.template.kind === 225) {
          const M = Ho(n.template.templateSpans);
          g = xc(M.literal) || !!M.literal.isUnterminated;
        } else {
          const M = n.template;
          D.assert(M.kind === 14), g = !!M.isUnterminated;
        }
      else if (n.kind === 167)
        p = YIe(n, c);
      else if (Ku(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 = pV(a);
        if (M >= 0)
          return M >= ym(c) && (vm(c) || M < $d(c));
      } else
        return D.assert(n.kind === 211), ym(c) === 0;
      if (!vm(c) && p > x)
        return !1;
      if (g || p >= R)
        return !0;
      for (let M = p; M < R; M++) {
        const J = up(c, M);
        if (dl(J, fr(n) && !W ? unt : HIe).flags & 131072)
          return !1;
      }
      return !0;
    }
    function Aae(n, a) {
      const c = Ie(n.typeParameters), u = _m(n.typeParameters);
      return !kt(a) || a.length >= u && a.length <= c;
    }
    function LS(n) {
      return CD(n, 0, !1);
    }
    function WIe(n) {
      return CD(n, 0, !1) || CD(n, 1, !1);
    }
    function CD(n, a, c) {
      if (n.flags & 524288) {
        const u = sp(n);
        if (c || 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 zIe(n, a, c, u) {
      const p = yD(n.typeParameters, n, 0, u), g = kD(a), x = c && (g && g.flags & 262144 ? c.nonFixingMapper : c.mapper), R = x ? H2(a, x) : a;
      return kie(R, n, (M, J) => {
        Kh(p.inferences, M, J);
      }), c || wie(a, n, (M, J) => {
        Kh(p.inferences, M, J, 128);
      }), aD(n, Hie(p), fr(a.declaration));
    }
    function dnt(n, a, c, u) {
      const p = aV(a, n), g = X2(n.attributes, p, u, c);
      return Kh(u.inferences, g, p), Hie(u);
    }
    function qIe(n) {
      if (!n)
        return Rt;
      const a = pa(n);
      return vI(n.parent) ? Xg(a) : pu(n.parent) ? Cie(a) : a;
    }
    function Cae(n, a, c, u, p) {
      if (Ku(n))
        return dnt(n, a, u, p);
      if (n.kind !== 167) {
        const M = Rn(a.typeParameters, ($) => !!kE($)), J = td(n, M ? 8 : 0);
        if (J) {
          const $ = ms(a);
          if (ME($)) {
            const ge = CS(n);
            if (!(!M && td(n, 8) !== J)) {
              const Bt = Nie(IZe(ge, 1)), Fn = Ji(J, Bt), An = LS(Fn), Yn = An && An.typeParameters ? wE(wre(An, An.typeParameters)) : Fn;
              Kh(p.inferences, Yn, $, 128);
            }
            const we = yD(a.typeParameters, a, p.flags), ft = Ji(J, ge && ge.returnMapper);
            Kh(we.inferences, ft, $), p.returnMapper = kt(we.inferences, Y2) ? Nie(RZe(we)) : void 0;
          }
        }
      }
      const g = wD(a), x = g ? Math.min($d(a) - 1, c.length) : c.length;
      if (g && g.flags & 262144) {
        const M = cn(p.inferences, (J) => J.typeParameter === g);
        M && (M.impliedArity = Qi(c, _V, x) < 0 ? c.length - x : void 0);
      }
      const R = Nb(a);
      if (R && ME(R)) {
        const M = XIe(n);
        Kh(p.inferences, qIe(M), R);
      }
      for (let M = 0; M < x; M++) {
        const J = c[M];
        if (J.kind !== 229 && !(u & 32 && Fie(J))) {
          const $ = up(a, M);
          if (ME($)) {
            const ge = X2(J, $, p, u);
            Kh(p.inferences, ge, $);
          }
        }
      }
      if (g && ME(g)) {
        const M = Lae(c, x, c.length, g, p, u);
        Kh(p.inferences, M, g);
      }
      return Hie(p);
    }
    function JIe(n) {
      return n.flags & 1048576 ? Ks(n, JIe) : n.flags & 1 || FU(ju(n) || n) ? n : Po(n) ? Op(_s(n), n.target.elementFlags, !1, n.target.labeledElementDeclarations) : Op([n], [8]);
    }
    function Lae(n, a, c, u, p, g) {
      if (a >= c - 1) {
        const $ = n[c - 1];
        if (_V($))
          return JIe($.kind === 234 ? $.type : X2($.expression, u, p, g));
      }
      const x = [], R = [], M = [], J = _P(u);
      for (let $ = a; $ < c; $++) {
        const ge = n[$];
        if (_V(ge)) {
          const Ne = ge.kind === 234 ? ge.type : pa(ge.expression);
          C0(Ne) ? (x.push(Ne), R.push(8)) : (x.push(uv(33, Ne, je, ge.kind === 227 ? ge.expression : ge)), R.push(4));
        } else {
          const Ne = Nd(u, Pp($ - a), 256), we = X2(ge, Ne, p, g), ft = J || _c(Ne, 406978556);
          x.push(ft ? md(we) : Vb(we)), R.push(1);
        }
        ge.kind === 234 && ge.tupleNameSource && M.push(ge.tupleNameSource);
      }
      return Op(x, R, J, Ie(M) === Ie(x) ? M : void 0);
    }
    function Iae(n, a, c, u) {
      const p = fr(n.declaration), g = n.typeParameters, x = nv(en(a, ui), g, _m(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 = Tu(g[M]);
        if (J) {
          const $ = c && u ? () => ka(void 0, _.Type_0_does_not_satisfy_the_constraint_1) : void 0, ge = u || _.Type_0_does_not_satisfy_the_constraint_1;
          R || (R = hd(g, x));
          const Ne = x[M];
          if (!ed(Ne, Mf(Ji(J, R), Ne), c ? a[M] : void 0, ge, $))
            return;
        }
      }
      return x;
    }
    function KIe(n) {
      if (NL(n.tagName))
        return 2;
      const a = Hu(pa(n.tagName));
      return Ie(ja(a, 1)) ? 0 : Ie(ja(a, 0)) ? 1 : 2;
    }
    function fnt(n, a, c, u, p, g, x) {
      const R = aV(a, n), M = X2(n.attributes, R, void 0, u);
      return J() && die(M, R, c, p ? n.tagName : void 0, n.attributes, void 0, g, x);
      function J() {
        var $;
        if (dae(n))
          return !0;
        const ge = Ch(n) || kx(n) && !NL(n.tagName) ? pa(n.tagName) : void 0;
        if (!ge)
          return !0;
        const Ne = ja(ge, 0);
        if (!Ie(Ne))
          return !0;
        const we = Zwe(n);
        if (!we)
          return !0;
        const ft = Dc(we, 111551, !0, !1, n);
        if (!ft)
          return !0;
        const Bt = or(ft), Fn = ja(Bt, 0);
        if (!Ie(Fn))
          return !0;
        let An = !1, Yn = 0;
        for (const xn of Fn) {
          const yr = up(xn, 0), on = ja(yr, 0);
          if (Ie(on))
            for (const Un of on) {
              if (An = !0, vm(Un))
                return !0;
              const Kn = $d(Un);
              Kn > Yn && (Yn = Kn);
            }
        }
        if (!An)
          return !0;
        let hn = 1 / 0;
        for (const xn of Ne) {
          const yr = ym(xn);
          yr < hn && (hn = yr);
        }
        if (hn <= Yn)
          return !0;
        if (p) {
          const xn = Rr(n.tagName, _.Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3, Ef(n.tagName), hn, Ef(we), Yn), yr = ($ = I_(n.tagName)) == null ? void 0 : $.valueDeclaration;
          yr && qo(xn, Rr(yr, _._0_is_declared_here, Ef(n.tagName))), x && x.skipLogging && (x.errors || (x.errors = [])).push(xn), x.skipLogging || Xo.add(xn);
        }
        return !1;
      }
    }
    function XP(n, a, c, u, p, g, x) {
      const R = { errors: void 0, skipLogging: !0 };
      if (Ku(n))
        return fnt(n, c, u, p, g, x, R) ? void 0 : (D.assert(!g || !!R.errors, "jsx should have errors when reporting errors"), R.errors || rt);
      const M = Nb(c);
      if (M && M !== Rt && !(R1(n) || eo(n) && sd(n.expression))) {
        const we = XIe(n), ft = qIe(we), Bt = g ? we || n : void 0, Fn = _.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1;
        if (!r_(ft, M, u, Bt, Fn, 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, $ = wD(c), ge = $ ? Math.min($d(c) - 1, a.length) : a.length;
      for (let we = 0; we < ge; we++) {
        const ft = a[we];
        if (ft.kind !== 229) {
          const Bt = up(c, we), Fn = X2(ft, Bt, void 0, p), An = p & 4 ? NP(Fn) : Fn;
          if (!die(An, Bt, u, g ? ft : void 0, ft, J, x, R))
            return D.assert(!g || !!R.errors, "parameter should have errors when reporting errors"), Ne(ft, An, Bt), R.errors || rt;
        }
      }
      if ($) {
        const we = Lae(a, ge, a.length, $, void 0, p), ft = a.length - ge, Bt = g ? ft === 0 ? n : ft === 1 ? a[ge] : Bm(YP(n, we), a[ge].pos, a[a.length - 1].end) : void 0;
        if (!r_(we, $, u, Bt, J, void 0, R))
          return D.assert(!g || !!R.errors, "rest parameter should have errors when reporting errors"), Ne(Bt, we, $), R.errors || rt;
      }
      return;
      function Ne(we, ft, Bt) {
        if (we && g && R.errors && R.errors.length) {
          if (PD(Bt))
            return;
          const Fn = PD(ft);
          Fn && hm(Fn, Bt, u) && qo(R.errors[0], Rr(we, _.Did_you_forget_to_use_await));
        }
      }
    }
    function XIe(n) {
      const a = n.kind === 210 ? n.expression : n.kind === 212 ? n.tag : void 0;
      if (a) {
        const c = hu(a);
        if (sc(c))
          return c.expression;
      }
    }
    function YP(n, a, c, u) {
      const p = Wm.createSyntheticExpression(a, c, u);
      return mt(p, n), Bo(p, n), p;
    }
    function kae(n) {
      if (n.kind === 212) {
        const u = n.template, p = [YP(u, r$e())];
        return u.kind === 225 && ze(u.templateSpans, (g) => {
          p.push(g.expression);
        }), p;
      }
      if (n.kind === 167)
        return _nt(n);
      if (Ku(n))
        return n.attributes.properties.length > 0 || Ch(n) && n.parent.children.length > 0 ? [n.attributes] : rt;
      const a = n.arguments || rt, c = pV(a);
      if (c >= 0) {
        const u = a.slice(0, c);
        for (let p = c; p < a.length; p++) {
          const g = a[p], x = g.kind === 227 && (zn ? pa(g.expression) : Xc(g.expression));
          x && Po(x) ? ze(_s(x), (R, M) => {
            var J;
            const $ = x.target.elementFlags[M], ge = YP(g, $ & 4 ? xu(R) : R, !!($ & 12), (J = x.target.labeledElementDeclarations) == null ? void 0 : J[M]);
            u.push(ge);
          }) : u.push(g);
        }
        return u;
      }
      return a;
    }
    function _nt(n) {
      const a = n.expression, c = Gae(n);
      if (c) {
        const u = [];
        for (const p of c.parameters) {
          const g = or(p);
          u.push(YP(a, g));
        }
        return u;
      }
      return D.fail();
    }
    function YIe(n, a) {
      return Y.experimentalDecorators ? pnt(n, a) : 2;
    }
    function pnt(n, a) {
      switch (n.parent.kind) {
        case 260:
        case 228:
          return 1;
        case 169:
          return Pm(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 $Ie(n, a) {
      let c, u;
      const p = er(n);
      if (Mr(n.expression)) {
        const g = y1(p, n.expression.name);
        c = g.start, u = a ? g.length : n.end - c;
      } else {
        const g = y1(p, n.expression);
        c = g.start, u = a ? g.length : n.end - c;
      }
      return { start: c, length: u, sourceFile: p };
    }
    function LD(n, a, c, u, p, g) {
      if (eo(n)) {
        const { sourceFile: x, start: R, length: M } = $Ie(n);
        return "message" in a ? Il(x, R, M, a, c, u, p, g) : WW(x, a);
      } else
        return "message" in a ? Rr(n, a, c, u, p, g) : ag(er(n), n, a);
    }
    function mnt(n) {
      if (!eo(n) || !Ve(n.expression))
        return !1;
      const a = fc(n.expression, n.expression.escapedText, 111551, void 0, void 0, !1), c = a == null ? void 0 : a.valueDeclaration;
      if (!c || !Oa(c) || !aC(c.parent) || !R1(c.parent.parent) || !Ve(c.parent.parent.expression))
        return !1;
      const u = Gre(!1);
      return u ? I_(c.parent.parent.expression, !0) === u : !1;
    }
    function QIe(n, a, c, u) {
      var p;
      const g = pV(c);
      if (g > -1)
        return Rr(c[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 Fn = ym(Bt), An = $d(Bt);
        Fn < x && (x = Fn, $ = Bt), R = Math.max(R, An), Fn < c.length && Fn > M && (M = Fn), c.length < An && An < J && (J = An);
      }
      const ge = kt(a, vm), Ne = ge ? x : x < R ? x + "-" + R : x, we = !ge && Ne === 1 && c.length === 0 && mnt(n);
      if (we && fr(n))
        return LD(n, _.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments);
      const ft = Nu(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 : we ? _.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 < c.length && c.length < R) {
        if (u) {
          let Bt = ka(void 0, _.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, c.length, M, J);
          return Bt = ka(Bt, u), LD(n, Bt);
        }
        return LD(n, _.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, c.length, M, J);
      } else if (c.length < x) {
        let Bt;
        if (u) {
          let An = ka(void 0, ft, Ne, c.length);
          An = ka(An, u), Bt = LD(n, An);
        } else
          Bt = LD(n, ft, Ne, c.length);
        const Fn = (p = $ == null ? void 0 : $.declaration) == null ? void 0 : p.parameters[$.thisParameter ? c.length + 1 : c.length];
        if (Fn) {
          const An = Rr(Fn, Ja(Fn.name) ? _.An_argument_matching_this_binding_pattern_was_not_provided : ph(Fn) ? _.Arguments_for_the_rest_parameter_0_were_not_provided : _.An_argument_for_0_was_not_provided, Fn.name ? Ja(Fn.name) ? void 0 : Pr(Sf(Fn.name)) : c.length);
          return qo(Bt, An);
        }
        return Bt;
      } else {
        const Bt = N.createNodeArray(c.slice(R)), Fn = ss(Bt).pos;
        let An = Ho(Bt).end;
        if (An === Fn && An++, Bm(Bt, Fn, An), u) {
          let Yn = ka(void 0, ft, Ne, c.length);
          return Yn = ka(Yn, u), eN(er(n), Bt, Yn);
        }
        return RA(er(n), Bt, ft, Ne, c.length);
      }
    }
    function hnt(n, a, c, u) {
      const p = c.length;
      if (a.length === 1) {
        const R = a[0], M = _m(R.typeParameters), J = Ie(R.typeParameters);
        if (u) {
          let $ = ka(void 0, _.Expected_0_type_arguments_but_got_1, M < J ? M + "-" + J : M, p);
          return $ = ka($, u), eN(er(n), c, $);
        }
        return RA(er(n), c, _.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 = _m(R.typeParameters), J = Ie(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 = ka(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 = ka(R, u), eN(er(n), c, R);
        }
        return RA(er(n), c, _.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 = ka(void 0, _.Expected_0_type_arguments_but_got_1, g === -1 / 0 ? x : g, p);
        return R = ka(R, u), eN(er(n), c, R);
      }
      return RA(er(n), c, _.Expected_0_type_arguments_but_got_1, g === -1 / 0 ? x : g, p);
    }
    function PL(n, a, c, u, p, g) {
      const x = n.kind === 212, R = n.kind === 167, M = Ku(n), J = !H && !c;
      let $;
      !R && !NA(n) && ($ = n.typeArguments, (x || M || n.expression.kind !== 106) && ze($, mo));
      const ge = c || [];
      if (lnt(a, ge, p), !ge.length)
        return J && Xo.add(LD(n, _.Call_target_does_not_contain_any_signatures)), gm(n);
      const Ne = kae(n), we = ge.length === 1 && !ge[0].typeParameters;
      let ft = !R && !we && kt(Ne, C_) ? 4 : 0;
      ft |= u & 32;
      let Bt, Fn, An, Yn;
      const hn = !!(u & 16) && n.kind === 210 && n.arguments.hasTrailingComma;
      if (ge.length > 1 && (Yn = yr(ge, Km, we, hn)), Yn || (Yn = yr(ge, Cd, we, hn)), Yn)
        return Yn;
      if (Yn = gnt(n, ge, Ne, !!c, u), zr(n).resolvedSignature = Yn, J)
        if (Bt)
          if (Bt.length === 1 || Bt.length > 3) {
            const on = Bt[Bt.length - 1];
            let Un;
            Bt.length > 3 && (Un = ka(Un, _.The_last_overload_gave_the_following_error), Un = ka(Un, _.No_overload_matches_this_call)), g && (Un = ka(Un, g));
            const Kn = XP(n, Ne, on, Cd, 0, !0, () => Un);
            if (Kn)
              for (const $r of Kn)
                on.declaration && Bt.length > 3 && qo($r, Rr(on.declaration, _.The_last_overload_is_declared_here)), xn(on, $r), Xo.add($r);
            else
              D.fail("No error for last overload signature");
          } else {
            const on = [];
            let Un = 0, Kn = Number.MAX_VALUE, $r = 0, ti = 0;
            for (const gf of Bt) {
              const Vn = XP(n, Ne, gf, Cd, 0, !0, () => ka(void 0, _.Overload_0_of_1_2_gave_the_following_error, ti + 1, ge.length, se(gf)));
              Vn ? (Vn.length <= Kn && (Kn = Vn.length, $r = ti), Un = Math.max(Un, Vn.length), on.push(Vn)) : D.fail("No error for 3 or fewer overload signatures"), ti++;
            }
            const da = Un > 1 ? on[$r] : id(on);
            D.assert(da.length > 0, "No errors reported for 3 or fewer overload signatures");
            let Ya = ka(en(da, zle), _.No_overload_matches_this_call);
            g && (Ya = ka(Ya, g));
            const yl = [...wo(da, (gf) => gf.relatedInformation)];
            let Uf;
            if (Rn(da, (gf) => gf.start === da[0].start && gf.length === da[0].length && gf.file === da[0].file)) {
              const { file: gf, start: aa, length: Vn } = da[0];
              Uf = { file: gf, start: aa, length: Vn, code: Ya.code, category: Ya.category, messageText: Ya, relatedInformation: yl };
            } else
              Uf = ag(er(n), n, Ya, yl);
            xn(Bt[0], Uf), Xo.add(Uf);
          }
        else if (Fn)
          Xo.add(QIe(n, [Fn], Ne, g));
        else if (An)
          Iae(An, n.typeArguments, !0, g);
        else {
          const on = yn(a, (Un) => Aae(Un, $));
          on.length === 0 ? Xo.add(hnt(n, a, $, g)) : Xo.add(QIe(n, on, Ne, g));
        }
      return Yn;
      function xn(on, Un) {
        var Kn, $r;
        const ti = Bt, da = Fn, Ya = An, yl = (($r = (Kn = on.declaration) == null ? void 0 : Kn.symbol) == null ? void 0 : $r.declarations) || rt, gf = yl.length > 1 ? cn(yl, (aa) => Xs(aa) && u_(aa.body)) : void 0;
        if (gf) {
          const aa = Np(gf), Vn = !aa.typeParameters;
          yr([aa], Cd, Vn) && qo(Un, Rr(gf, _.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible));
        }
        Bt = ti, Fn = da, An = Ya;
      }
      function yr(on, Un, Kn, $r = !1) {
        if (Bt = void 0, Fn = void 0, An = void 0, Kn) {
          const ti = on[0];
          if (kt($) || !mV(n, Ne, ti, $r))
            return;
          if (XP(n, Ne, ti, Un, 0, !1, void 0)) {
            Bt = [ti];
            return;
          }
          return ti;
        }
        for (let ti = 0; ti < on.length; ti++) {
          const da = on[ti];
          if (!Aae(da, $) || !mV(n, Ne, da, $r))
            continue;
          let Ya, yl;
          if (da.typeParameters) {
            let Uf;
            if (kt($)) {
              if (Uf = Iae(da, $, !1), !Uf) {
                An = da;
                continue;
              }
            } else
              yl = yD(da.typeParameters, da, fr(n) ? 2 : 0), Uf = Cae(n, da, Ne, ft | 8, yl), ft |= yl.flags & 4 ? 8 : 0;
            if (Ya = aD(da, Uf, fr(da.declaration), yl && yl.inferredTypeParameters), wD(da) && !mV(n, Ne, Ya, $r)) {
              Fn = Ya;
              continue;
            }
          } else
            Ya = da;
          if (XP(n, Ne, Ya, Un, ft, !1, void 0)) {
            (Bt || (Bt = [])).push(Ya);
            continue;
          }
          if (ft) {
            if (ft = u & 32, yl) {
              const Uf = Cae(n, da, Ne, ft, yl);
              if (Ya = aD(da, Uf, fr(da.declaration), yl.inferredTypeParameters), wD(da) && !mV(n, Ne, Ya, $r)) {
                Fn = Ya;
                continue;
              }
            }
            if (XP(n, Ne, Ya, Un, ft, !1, void 0)) {
              (Bt || (Bt = [])).push(Ya);
              continue;
            }
          }
          return on[ti] = Ya, Ya;
        }
      }
    }
    function gnt(n, a, c, u, p) {
      return D.assert(a.length > 0), zL(n), u || a.length === 1 || a.some((g) => !!g.typeParameters) ? bnt(n, a, c, p) : ynt(a);
    }
    function ynt(n) {
      const a = fa(n, (M) => M.thisParameter);
      let c;
      a.length && (c = ZIe(a, a.map(QP)));
      const { min: u, max: p } = Dde(n, vnt), g = [];
      for (let M = 0; M < p; M++) {
        const J = fa(n, ($) => gu($) ? M < $.parameters.length - 1 ? $.parameters[M] : Ho($.parameters) : M < $.parameters.length ? $.parameters[M] : void 0);
        D.assert(J.length !== 0), g.push(ZIe(J, fa(n, ($) => jE($, M))));
      }
      const x = fa(n, (M) => gu(M) ? Ho(M.parameters) : void 0);
      let R = 0;
      if (x.length !== 0) {
        const M = xu(Yr(fa(n, MAe), 2));
        g.push(eke(x, M)), R |= 1;
      }
      return n.some(GK) && (R |= 2), rh(n[0].declaration, void 0, c, g, Io(n.map(ms)), void 0, u, R);
    }
    function vnt(n) {
      const a = n.parameters.length;
      return gu(n) ? a - 1 : a;
    }
    function ZIe(n, a) {
      return eke(n, Yr(a, 2));
    }
    function eke(n, a) {
      return PE(ss(n), a);
    }
    function bnt(n, a, c, u) {
      const p = Snt(a, tt === void 0 ? c.length : tt), g = a[p], { typeParameters: x } = g;
      if (!x)
        return g;
      const R = jIe(n) ? n.typeArguments : void 0, M = R ? uU(g, Ent(R, x, fr(n))) : Tnt(n, x, g, c, u);
      return a[p] = M, M;
    }
    function Ent(n, a, c) {
      const u = n.map(IS);
      for (; u.length > a.length; )
        u.pop();
      for (; u.length < a.length; )
        u.push(kE(a[u.length]) || Tu(a[u.length]) || jie(c));
      return u;
    }
    function Tnt(n, a, c, u, p) {
      const g = yD(a, c, fr(n) ? 2 : 0), x = Cae(n, c, u, p | 4 | 8, g);
      return uU(c, x);
    }
    function Snt(n, a) {
      let c = -1, u = -1;
      for (let p = 0; p < n.length; p++) {
        const g = n[p], x = $d(g);
        if (vm(g) || x >= a)
          return p;
        x > u && (u = x, c = p);
      }
      return c;
    }
    function xnt(n, a, c) {
      if (n.expression.kind === 106) {
        const M = Zie(n.expression);
        if (bs(M)) {
          for (const J of n.arguments)
            pa(J);
          return zs;
        }
        if (!Zo(M)) {
          const J = Jp(Tl(n));
          if (J) {
            const $ = Gr(M, J.typeArguments, J);
            return PL(n, $, a, c, 0);
          }
        }
        return K2(n);
      }
      let u, p = pa(n.expression);
      if (tT(n)) {
        const M = hD(p, n.expression);
        u = M === p ? 0 : bI(n) ? 16 : 8, p = M;
      } else
        u = 0;
      if (p = LIe(p, n.expression, jtt), p === dt)
        return bu;
      const g = Hu(p);
      if (Zo(g))
        return gm(n);
      const x = ja(g, 0), R = ja(g, 1).length;
      if (hV(p, g, x.length, R))
        return !Zo(p) && n.typeArguments && Je(n, _.Untyped_function_calls_may_not_accept_type_arguments), K2(n);
      if (!x.length) {
        if (R)
          Je(n, _.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, Le(p));
        else {
          let M;
          if (n.arguments.length === 1) {
            const J = er(n).text;
            fu(J.charCodeAt(zo(J, n.expression.end, !0) - 1)) && (M = Rr(n.expression, _.Are_you_missing_a_semicolon));
          }
          Dae(n.expression, g, 0, M);
        }
        return gm(n);
      }
      return c & 8 && !n.typeArguments && x.some(Ant) ? (Oke(n, c), Uc) : x.some((M) => fr(M.declaration) && !!$H(M.declaration)) ? (Je(n, _.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, Le(p)), gm(n)) : PL(n, x, a, c, u);
    }
    function Ant(n) {
      return !!(n.typeParameters && yoe(ms(n)));
    }
    function hV(n, a, c, u) {
      return bs(n) || bs(a) && !!(n.flags & 262144) || !c && !u && !(a.flags & 1048576) && !(cp(a).flags & 131072) && To(n, uc);
    }
    function Cnt(n, a, c) {
      if (n.arguments && P < 1) {
        const x = pV(n.arguments);
        x >= 0 && Je(n.arguments[x], _.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher);
      }
      let u = OL(n.expression);
      if (u === dt)
        return bu;
      if (u = Hu(u), Zo(u))
        return gm(n);
      if (bs(u))
        return n.typeArguments && Je(n, _.Untyped_function_calls_may_not_accept_type_arguments), K2(n);
      const p = ja(u, 1);
      if (p.length) {
        if (!Lnt(n, p[0]))
          return gm(n);
        if (tke(p, (R) => !!(R.flags & 4)))
          return Je(n, _.Cannot_create_an_instance_of_an_abstract_class), gm(n);
        const x = u.symbol && dg(u.symbol);
        return x && Kr(x, 256) ? (Je(n, _.Cannot_create_an_instance_of_an_abstract_class), gm(n)) : PL(n, p, a, c, 0);
      }
      const g = ja(u, 0);
      if (g.length) {
        const x = PL(n, g, a, c, 0);
        return Te || (x.declaration && !Fp(x.declaration) && ms(x) !== Rt && Je(n, _.Only_a_void_function_can_be_called_with_the_new_keyword), Nb(x) === Rt && Je(n, _.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)), x;
      }
      return Dae(n.expression, u, 1), gm(n);
    }
    function tke(n, a) {
      return Ba(n) ? kt(n, (c) => tke(c, a)) : n.compositeKind === 1048576 ? kt(n.compositeSignatures, a) : a(n);
    }
    function wae(n, a) {
      const c = Oo(a);
      if (!Ie(c))
        return !1;
      const u = c[0];
      if (u.flags & 2097152) {
        const p = u.types, g = TAe(p);
        let x = 0;
        for (const R of u.types) {
          if (!g[x] && Zr(R) & 3 && (R.symbol === n || wae(n, R)))
            return !0;
          x++;
        }
        return !1;
      }
      return u.symbol === n ? !0 : wae(n, u);
    }
    function Lnt(n, a) {
      if (!a || !a.declaration)
        return !0;
      const c = a.declaration, u = cx(c, 24);
      if (!u || c.kind !== 173)
        return !0;
      const p = dg(c.parent.symbol), g = Fs(c.parent.symbol);
      if (!moe(n, p)) {
        const x = Tl(n);
        if (x && u & 16) {
          const R = IS(x);
          if (wae(c.parent.symbol, R))
            return !0;
        }
        return u & 8 && Je(n, _.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration, Le(g)), u & 16 && Je(n, _.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration, Le(g)), !1;
      }
      return !0;
    }
    function nke(n, a, c) {
      let u;
      const p = c === 0, g = WE(a), x = g && ja(g, c).length > 0;
      if (a.flags & 1048576) {
        const M = a.types;
        let J = !1;
        for (const $ of M)
          if (ja($, c).length !== 0) {
            if (J = !0, u)
              break;
          } else if (u || (u = ka(u, p ? _.Type_0_has_no_call_signatures : _.Type_0_has_no_construct_signatures, Le($)), u = ka(u, p ? _.Not_all_constituents_of_type_0_are_callable : _.Not_all_constituents_of_type_0_are_constructable, Le(a))), J)
            break;
        J || (u = ka(void 0, p ? _.No_constituent_of_type_0_is_callable : _.No_constituent_of_type_0_is_constructable, Le(a))), u || (u = ka(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, Le(a)));
      } else
        u = ka(u, p ? _.Type_0_has_no_call_signatures : _.Type_0_has_no_construct_signatures, Le(a));
      let R = p ? _.This_expression_is_not_callable : _.This_expression_is_not_constructable;
      if (eo(n.parent) && n.parent.arguments.length === 0) {
        const { resolvedSymbol: M } = zr(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: ka(u, R),
        relatedMessage: x ? _.Did_you_forget_to_use_await : void 0
      };
    }
    function Dae(n, a, c, u) {
      const { messageChain: p, relatedMessage: g } = nke(n, a, c), x = ag(er(n), n, p);
      if (g && qo(x, Rr(n, g)), eo(n.parent)) {
        const { start: R, length: M } = $Ie(n.parent, !0);
        x.start = R, x.length = M;
      }
      Xo.add(x), rke(a, c, u ? qo(x, u) : x);
    }
    function rke(n, a, c) {
      if (!n.symbol)
        return;
      const u = Vi(n.symbol).originatingImport;
      if (u && !rf(u)) {
        const p = ja(or(Vi(n.symbol).target), a);
        if (!p || !p.length)
          return;
        qo(c, Rr(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 Int(n, a, c) {
      const u = pa(n.tag), p = Hu(u);
      if (Zo(p))
        return gm(n);
      const g = ja(p, 0), x = ja(p, 1).length;
      if (hV(u, p, g.length, x))
        return K2(n);
      if (!g.length) {
        if (Ou(n.parent)) {
          const R = Rr(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 Xo.add(R), gm(n);
        }
        return Dae(n.tag, p, 0), gm(n);
      }
      return PL(n, g, a, c, 0);
    }
    function knt(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 wnt(n, a, c) {
      const u = pa(n.expression), p = Hu(u);
      if (Zo(p))
        return gm(n);
      const g = ja(p, 0), x = ja(p, 1).length;
      if (hV(u, p, g.length, x))
        return K2(n);
      if (Rnt(n, g) && !Fd(n.expression)) {
        const M = El(n.expression, !1);
        return Je(n, _._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0, M), gm(n);
      }
      const R = knt(n);
      if (!g.length) {
        const M = nke(n.expression, p, 0), J = ka(M.messageChain, R), $ = ag(er(n.expression), n.expression, J);
        return M.relatedMessage && qo($, Rr(n.expression, M.relatedMessage)), Xo.add($), rke(p, 0, $), gm(n);
      }
      return PL(n, g, a, c, 0, R);
    }
    function gV(n, a) {
      const c = J2(n), u = c && ff(c), p = u && zd(u, Af.Element, 788968), g = p && Xe.symbolToEntityName(p, 788968, n), x = N.createFunctionTypeNode(void 0, [N.createParameterDeclaration(void 0, void 0, "props", void 0, Xe.typeToTypeNode(a, n))], g ? N.createTypeReferenceNode(g, void 0) : N.createKeywordTypeNode(131)), R = Qo(1, "props");
      return R.links.type = a, rh(x, void 0, void 0, [R], p ? Fs(p) : xe, void 0, 1, 0);
    }
    function Dnt(n, a, c) {
      if (NL(n.tagName)) {
        const x = TIe(n), R = gV(n, x);
        return sv(X2(n.attributes, aV(R, n), void 0, 0), x, n.tagName, n.attributes), Ie(n.typeArguments) && (ze(n.typeArguments, mo), Xo.add(RA(er(n), n.typeArguments, _.Expected_0_type_arguments_but_got_1, 0, Ie(n.typeArguments)))), R;
      }
      const u = pa(n.tagName), p = Hu(u);
      if (Zo(p))
        return gm(n);
      const g = bIe(u, n);
      return hV(u, p, g.length, 0) ? K2(n) : g.length === 0 ? (Je(n.tagName, _.JSX_element_type_0_does_not_have_any_construct_or_call_signatures, El(n.tagName)), gm(n)) : PL(n, g, a, c, 0);
    }
    function Rnt(n, a) {
      return a.length && Rn(a, (c) => c.minArgumentCount === 0 && !gu(c) && c.parameters.length < YIe(n, c));
    }
    function Nnt(n, a, c) {
      switch (n.kind) {
        case 210:
          return xnt(n, a, c);
        case 211:
          return Cnt(n, a, c);
        case 212:
          return Int(n, a, c);
        case 167:
          return wnt(n, a, c);
        case 283:
        case 282:
          return Dnt(n, a, c);
      }
      throw D.assertNever(n, "Branch in 'resolveSignature' should be unreachable.");
    }
    function ML(n, a, c) {
      const u = zr(n), p = u.resolvedSignature;
      if (p && p !== Uc && !a)
        return p;
      u.resolvedSignature = Uc;
      const g = Nnt(n, a, c || 0);
      return g !== Uc && (u.resolvedSignature = Tn === zn ? g : p), g;
    }
    function Fp(n) {
      var a;
      if (!n || !fr(n))
        return !1;
      const c = ml(n) || Ps(n) ? n : (zi(n) || Vl(n)) && n.initializer && Ps(n.initializer) ? n.initializer : void 0;
      if (c) {
        if ($H(n))
          return !0;
        if (Vl(Lv(c.parent)))
          return !1;
        const u = Ir(c);
        return !!((a = u == null ? void 0 : u.members) != null && a.size);
      }
      return !1;
    }
    function Rae(n, a) {
      var c, u;
      if (a) {
        const p = Vi(a);
        if (!p.inferredClassSymbol || !p.inferredClassSymbol.has(yo(n))) {
          const g = Dm(n) ? n : yb(n);
          return g.exports = g.exports || ao(), g.members = g.members || ao(), g.flags |= a.flags & 32, (c = a.exports) != null && c.size && Rl(g.exports, a.exports), (u = a.members) != null && u.size && Rl(g.members, a.members), (p.inferredClassSymbol || (p.inferredClassSymbol = /* @__PURE__ */ new Map())).set(yo(g), g), g;
        }
        return p.inferredClassSymbol.get(yo(n));
      }
    }
    function Ont(n) {
      var a;
      const c = n && yV(n, !0), u = (a = c == null ? void 0 : c.exports) == null ? void 0 : a.get("prototype"), p = (u == null ? void 0 : u.valueDeclaration) && Pnt(u.valueDeclaration);
      return p ? Ir(p) : void 0;
    }
    function yV(n, a) {
      if (!n.parent)
        return;
      let c, u;
      if (zi(n.parent) && n.parent.initializer === n) {
        if (!fr(n) && !(og(n.parent) && Xs(n)))
          return;
        c = 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))
          c = p.left, u = c;
        else if ((g === 56 || g === 60) && (zi(p.parent) && p.parent.initializer === p ? (c = p.parent.name, u = p.parent) : br(p.parent) && p.parent.operatorToken.kind === 63 && (a || p.parent.right === p) && (c = p.parent.left, u = c), !c || !ex(c) || !GA(c, p.left)))
          return;
      } else
        a && ml(n) && (c = n.name, u = n);
      if (!(!u || !c || !a && !H0(n, J0(c))))
        return qd(u);
    }
    function Pnt(n) {
      if (!n.parent)
        return !1;
      let a = n.parent;
      for (; a && a.kind === 208; )
        a = a.parent;
      if (a && br(a) && J0(a.left) && a.operatorToken.kind === 63) {
        const c = az(a);
        return xs(c) && c;
      }
    }
    function Mnt(n, a) {
      var c, u, p;
      g4(n, n.typeArguments);
      const g = ML(n, void 0, a);
      if (g === Uc)
        return dt;
      if (vV(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 && !(M1(R) && ((u = (c = BI(R)) == null ? void 0 : c.parent) == null ? void 0 : u.kind) === 173) && !jA(R) && !Fp(R))
          return Te && Je(n, _.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type), ke;
      }
      if (fr(n) && yc(Y) !== 100 && cke(n))
        return OAe(n.arguments[0]);
      const x = ms(g);
      if (x.flags & 12288 && ike(n))
        return rie(Lv(n.parent));
      if (n.kind === 210 && !n.questionDotToken && n.parent.kind === 241 && x.flags & 16384 && t_(g)) {
        if (!XI(n.expression))
          Je(n.expression, _.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);
        else if (!$U(n)) {
          const R = Je(n.expression, _.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);
          BP(n.expression, R);
        }
      }
      if (fr(n)) {
        const R = yV(n, !1);
        if ((p = R == null ? void 0 : R.exports) != null && p.size) {
          const M = ws(R, R.exports, rt, rt, rt);
          return M.objectFlags |= 4096, Io([x, M]);
        }
      }
      return x;
    }
    function vV(n, a) {
      if (n.declaration && n.declaration.flags & 268435456) {
        const c = $P(a), u = VN(ZM(a));
        sS(c, n.declaration, u, se(n));
      }
    }
    function $P(n) {
      switch (n = Gs(n), n.kind) {
        case 210:
        case 167:
        case 211:
          return $P(n.expression);
        case 212:
          return $P(n.tag);
        case 283:
        case 282:
          return $P(n.tagName);
        case 209:
          return n.argumentExpression;
        case 208:
          return n.name;
        case 180:
          const a = n;
          return Sd(a.typeName) ? a.typeName.right : a;
        default:
          return n;
      }
    }
    function ike(n) {
      if (!eo(n))
        return !1;
      let a = n.expression;
      if (Mr(a) && a.name.escapedText === "for" && (a = a.expression), !Ve(a) || a.escapedText !== "Symbol")
        return !1;
      const c = eCe(!1);
      return c ? c === fc(a, "Symbol", 111551, void 0, void 0, !1) : !1;
    }
    function Fnt(n) {
      if (Qst(n), n.arguments.length === 0)
        return t4(n, ke);
      const a = n.arguments[0], c = Xc(a), u = n.arguments.length > 1 ? Xc(n.arguments[1]) : void 0;
      for (let g = 2; g < n.arguments.length; ++g)
        Xc(n.arguments[g]);
      if ((c.flags & 32768 || c.flags & 65536 || !To(c, ue)) && Je(a, _.Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0, Le(c)), u) {
        const g = ZAe(!0);
        g !== ua && ed(u, UU(g, 32768), n.arguments[1]);
      }
      const p = su(n, a);
      if (p) {
        const g = kb(p, a, !0, !1);
        if (g)
          return t4(n, oke(or(g), g, p, a) || ske(or(g), g, p, a));
      }
      return t4(n, ke);
    }
    function ake(n, a, c) {
      const u = ao(), p = Qo(2097152, "default");
      return p.parent = a, p.links.nameType = Bf("default"), p.links.aliasTarget = Jc(n), u.set("default", p), ws(c, u, rt, rt, rt);
    }
    function oke(n, a, c, u) {
      if (ks(u) && n && !Zo(n)) {
        const g = n;
        if (!g.defaultOnlyType) {
          const x = ake(a, c);
          g.defaultOnlyType = x;
        }
        return g.defaultOnlyType;
      }
    }
    function ske(n, a, c, u) {
      var p;
      if (ie && n && !Zo(n)) {
        const g = n;
        if (!g.syntheticType) {
          const x = (p = c.declarations) == null ? void 0 : p.find(Hi);
          if (Py(x, c, !1, u)) {
            const M = Qo(2048, "__type"), J = ake(a, c, M);
            M.links.type = J, g.syntheticType = WP(n) ? Fb(n, J, M, 0, !1) : J;
          } else
            g.syntheticType = n;
        }
        return g.syntheticType;
      }
      return n;
    }
    function cke(n) {
      if (!Ed(n, !0))
        return !1;
      if (!Ve(n.expression))
        return D.fail();
      const a = fc(n.expression, n.expression.escapedText, 111551, void 0, void 0, !0);
      if (a === Et)
        return !0;
      if (a.flags & 2097152)
        return !1;
      const c = a.flags & 16 ? 259 : a.flags & 3 ? 257 : 0;
      if (c !== 0) {
        const u = Sc(a, c);
        return !!u && !!(u.flags & 16777216);
      }
      return !1;
    }
    function Bnt(n) {
      Sst(n) || g4(n, n.typeArguments), P < 2 && fl(n, 262144);
      const a = ML(n);
      return vV(a, n), ms(a);
    }
    function Gnt(n) {
      if (n.kind === 213) {
        const a = er(n);
        a && bl(a.fileName, [".cts", ".mts"]) && En(n, _.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead);
      }
      return lke(n, n.type, n.expression);
    }
    function Nae(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 Nae(n.expression);
        case 221:
          const a = n.operator, c = n.operand;
          return a === 40 && (c.kind === 8 || c.kind === 9) || a === 39 && c.kind === 8;
        case 208:
        case 209:
          const u = Gs(n.expression), p = jc(u) ? Dc(u, 111551, !0) : void 0;
          return !!(p && p.flags & 384);
      }
      return !1;
    }
    function lke(n, a, c, u) {
      let p = pa(c, u);
      if (rg(a))
        return Nae(c) || Je(c, _.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals), md(p);
      mo(a), p = NP(cv(p));
      const g = ui(a);
      return Zo(g) || i(() => {
        const x = Yd(p);
        DU(g, x) || $Ce(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 Unt(n) {
      const a = pa(n.expression), c = hD(a, n.expression);
      return VU(Xg(c), n, c !== a);
    }
    function Vnt(n) {
      return n.flags & 32 ? Unt(n) : Xg(pa(n.expression));
    }
    function uke(n) {
      nDe(n), ze(n.typeArguments, mo);
      const a = n.kind === 230 ? pa(n.expression) : yT(n.exprName) ? VP(n.exprName) : pa(n.exprName);
      return dke(a, n);
    }
    function dke(n, a) {
      const c = a.typeArguments;
      if (n === dt || Zo(n) || !kt(c))
        return n;
      let u = !1, p;
      const g = R(n), x = u ? p : n;
      return x && Xo.add(RA(er(a), c, _.Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable, Le(x))), g;
      function R(J) {
        let $ = !1, ge = !1;
        const Ne = we(J);
        return u || (u = ge), $ && !ge && (p ?? (p = J)), Ne;
        function we(ft) {
          if (ft.flags & 524288) {
            const Bt = sp(ft), Fn = M(Bt.callSignatures), An = M(Bt.constructSignatures);
            if ($ || ($ = Bt.callSignatures.length !== 0 || Bt.constructSignatures.length !== 0), ge || (ge = Fn.length !== 0 || An.length !== 0), Fn !== Bt.callSignatures || An !== Bt.constructSignatures) {
              const Yn = ws(void 0, Bt.members, Fn, An, Bt.indexInfos);
              return Yn.objectFlags |= 8388608, Yn.node = a, Yn;
            }
          } else if (ft.flags & 58982400) {
            const Bt = ju(ft);
            if (Bt) {
              const Fn = we(Bt);
              if (Fn !== Bt)
                return Fn;
            }
          } else {
            if (ft.flags & 1048576)
              return Ks(ft, R);
            if (ft.flags & 2097152)
              return Io(Zs(ft.types, we));
          }
          return ft;
        }
      }
      function M(J) {
        const $ = yn(J, (ge) => !!ge.typeParameters && Aae(ge, c));
        return Zs($, (ge) => {
          const Ne = Iae(ge, c, !0);
          return Ne ? aD(ge, Ne, fr(ge.declaration)) : ge;
        });
      }
    }
    function jnt(n) {
      return mo(n.type), Oae(n.expression, n.type);
    }
    function Oae(n, a, c) {
      const u = pa(n, c), p = ui(a);
      return Zo(p) ? p : (sv(u, p, a, n, _.Type_0_does_not_satisfy_the_expected_type_1), u);
    }
    function Hnt(n) {
      return Gst(n), n.keywordToken === 103 ? Pae(n) : n.keywordToken === 100 ? Wnt(n) : D.assertNever(n.keywordToken);
    }
    function fke(n) {
      switch (n.keywordToken) {
        case 100:
          return QAe();
        case 103:
          const a = Pae(n);
          return Zo(a) ? xe : crt(a);
        default:
          D.assertNever(n.keywordToken);
      }
    }
    function Pae(n) {
      const a = rue(n);
      if (a)
        if (a.kind === 173) {
          const c = Ir(a.parent);
          return or(c);
        } else {
          const c = Ir(a);
          return or(c);
        }
      else
        return Je(n, _.Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor, "new.target"), xe;
    }
    function Wnt(n) {
      de === 100 || de === 199 ? er(n).impliedNodeFormat !== 99 && Je(n, _.The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output) : de < 6 && de !== 4 && Je(n, _.The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext);
      const a = er(n);
      return D.assert(!!(a.flags & 4194304), "Containing file is missing import meta node flag."), n.name.escapedText === "meta" ? $Ae() : xe;
    }
    function QP(n) {
      const a = or(n);
      if (W) {
        const c = n.valueDeclaration;
        if (c && Av(c))
          return Kg(a);
      }
      return a;
    }
    function bV(n) {
      return D.assert(Ve(n.name)), n.name.escapedText;
    }
    function FL(n, a, c) {
      const u = n.parameters.length - (gu(n) ? 1 : 0);
      if (a < u)
        return n.parameters[a].escapedName;
      const p = n.parameters[u] || nn, g = c || or(p);
      if (Po(g)) {
        const x = g.target.labeledElementDeclarations, R = a - u;
        return x && bV(x[R]) || p.escapedName + "_" + R;
      }
      return p.escapedName;
    }
    function znt(n, a) {
      var c;
      if (((c = n.declaration) == null ? void 0 : c.kind) === 320)
        return;
      const u = n.parameters.length - (gu(n) ? 1 : 0);
      if (a < u) {
        const x = n.parameters[a];
        return _ke(x) ? [x.escapedName, !1] : void 0;
      }
      const p = n.parameters[u] || nn;
      if (!_ke(p))
        return;
      const g = or(p);
      if (Po(g)) {
        const x = g.target.labeledElementDeclarations, R = a - u, M = x == null ? void 0 : x[R], J = !!(M != null && M.dotDotDotToken);
        return M ? [
          bV(M),
          J
        ] : void 0;
      }
      if (a === u)
        return [p.escapedName, !0];
    }
    function _ke(n) {
      return n.valueDeclaration && Oa(n.valueDeclaration) && Ve(n.valueDeclaration.name);
    }
    function pke(n) {
      return n.kind === 199 || Oa(n) && n.name && Ve(n.name);
    }
    function qnt(n, a) {
      const c = n.parameters.length - (gu(n) ? 1 : 0);
      if (a < c) {
        const g = n.parameters[a].valueDeclaration;
        return g && pke(g) ? g : void 0;
      }
      const u = n.parameters[c] || nn, p = or(u);
      if (Po(p)) {
        const g = p.target.labeledElementDeclarations, x = a - c;
        return g && g[x];
      }
      return u.valueDeclaration && pke(u.valueDeclaration) ? u.valueDeclaration : void 0;
    }
    function up(n, a) {
      return jE(n, a) || ke;
    }
    function jE(n, a) {
      const c = n.parameters.length - (gu(n) ? 1 : 0);
      if (a < c)
        return QP(n.parameters[a]);
      if (gu(n)) {
        const u = or(n.parameters[c]), p = a - c;
        if (!Po(u) || u.target.hasRestElement || p < u.target.fixedLength)
          return Nd(u, Pp(p));
      }
    }
    function ID(n, a) {
      const c = $d(n), u = ym(n), p = kD(n);
      if (p && a >= c - 1)
        return a === c - 1 ? p : xu(Nd(p, pt));
      const g = [], x = [], R = [];
      for (let M = a; M < c; M++) {
        !p || M < c - 1 ? (g.push(up(n, M)), x.push(M < u ? 1 : 2)) : (g.push(p), x.push(8));
        const J = qnt(n, M);
        J && R.push(J);
      }
      return Op(g, x, !1, Ie(R) === Ie(g) ? R : void 0);
    }
    function $d(n) {
      const a = n.parameters.length;
      if (gu(n)) {
        const c = or(n.parameters[a - 1]);
        if (Po(c))
          return a + c.target.fixedLength - (c.target.hasRestElement ? 0 : 1);
      }
      return a;
    }
    function ym(n, a) {
      const c = a & 1, u = a & 2;
      if (u || n.resolvedMinArgumentCount === void 0) {
        let p;
        if (gu(n)) {
          const g = or(n.parameters[n.parameters.length - 1]);
          if (Po(g)) {
            const x = Qi(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 (!c && n.flags & 32)
            return 0;
          p = n.minArgumentCount;
        }
        if (u)
          return p;
        for (let g = p - 1; g >= 0; g--) {
          const x = up(n, g);
          if (dl(x, HIe).flags & 131072)
            break;
          p = g;
        }
        n.resolvedMinArgumentCount = p;
      }
      return n.resolvedMinArgumentCount;
    }
    function vm(n) {
      if (gu(n)) {
        const a = or(n.parameters[n.parameters.length - 1]);
        return !Po(a) || a.target.hasRestElement;
      }
      return !1;
    }
    function kD(n) {
      if (gu(n)) {
        const a = or(n.parameters[n.parameters.length - 1]);
        if (!Po(a))
          return a;
        if (a.target.hasRestElement)
          return EL(a, a.target.fixedLength);
      }
    }
    function wD(n) {
      const a = kD(n);
      return a && !Gf(a) && !bs(a) && !(cp(a).flags & 131072) ? a : void 0;
    }
    function Mae(n) {
      return Fae(n, ht);
    }
    function Fae(n, a) {
      return n.parameters.length > 0 ? up(n, 0) : a;
    }
    function Jnt(n, a, c) {
      const u = n.parameters.length - (gu(n) ? 1 : 0);
      for (let p = 0; p < u; p++) {
        const g = n.parameters[p].valueDeclaration;
        if (g.type) {
          const x = Kl(g);
          x && Kh(c.inferences, ui(x), up(a, p));
        }
      }
    }
    function Knt(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 = PE(a.thisParameter, void 0)), ZP(n.thisParameter, or(a.thisParameter)));
      }
      const c = n.parameters.length - (gu(n) ? 1 : 0);
      for (let u = 0; u < c; u++) {
        const p = n.parameters[u];
        if (!Kl(p.valueDeclaration)) {
          const g = jE(a, u);
          ZP(p, g);
        }
      }
      if (gu(n)) {
        const u = Ho(n.parameters);
        if (u.valueDeclaration ? !Kl(u.valueDeclaration) : Cc(u) & 65536) {
          const p = ID(a, c);
          ZP(u, p);
        }
      }
    }
    function Xnt(n) {
      n.thisParameter && ZP(n.thisParameter);
      for (const a of n.parameters)
        ZP(a);
    }
    function ZP(n, a) {
      const c = Vi(n);
      if (c.type)
        a && D.assertEqual(c.type, a, "Parameter symbol already has a cached type which differs from newly assigned type");
      else {
        const u = n.valueDeclaration;
        c.type = a || (u ? bc(u, !0) : or(n)), u && u.name.kind !== 79 && (c.type === he && (c.type = Lo(u.name)), mke(u.name, c.type));
      }
    }
    function mke(n, a) {
      for (const c of n.elements)
        if (!kl(c)) {
          const u = Ti(c, a);
          c.name.kind === 79 ? Vi(Ir(c)).type = u : mke(c.name, u);
        }
    }
    function Ynt(n) {
      return F2(g$e(!0), [n]);
    }
    function $nt(n, a) {
      return F2(y$e(!0), [n, a]);
    }
    function Qnt(n, a) {
      return F2(v$e(!0), [n, a]);
    }
    function Znt(n, a) {
      return F2(b$e(!0), [n, a]);
    }
    function ert(n, a) {
      return F2(E$e(!0), [n, a]);
    }
    function trt(n, a) {
      return F2(x$e(!0), [n, a]);
    }
    function nrt(n, a, c) {
      const u = `${a ? "p" : "P"}${c ? "s" : "S"}${n.id}`;
      let p = ir.get(u);
      if (!p) {
        const g = ao();
        g.set("name", iE("name", n)), g.set("private", iE("private", a ? Pe : it)), g.set("static", iE("static", c ? Pe : it)), p = ws(void 0, g, rt, rt, rt), ir.set(u, p);
      }
      return p;
    }
    function hke(n, a, c) {
      const u = pl(n), p = Di(n.name), g = p ? Bf(Pr(n.name)) : zg(n.name), x = nl(n) ? $nt(a, c) : H_(n) ? Qnt(a, c) : Yf(n) ? Znt(a, c) : ef(n) ? ert(a, c) : Za(n) ? trt(a, c) : D.failBadSyntaxKind(n), R = nrt(g, p, u);
      return Io([x, R]);
    }
    function rrt(n, a) {
      return F2(T$e(!0), [n, a]);
    }
    function irt(n, a) {
      return F2(S$e(!0), [n, a]);
    }
    function art(n, a) {
      const c = ep("this", n), u = ep("value", a);
      return Qae(void 0, c, [u], a, void 0, 1);
    }
    function Bae(n, a, c) {
      const u = ep("target", n), p = ep("context", a), g = Yr([c, Rt]);
      return BD(void 0, void 0, [u, p], g);
    }
    function ort(n) {
      const { parent: a } = n, c = zr(a);
      if (!c.decoratorSignature)
        switch (c.decoratorSignature = zs, a.kind) {
          case 260:
          case 228: {
            const p = or(Ir(a)), g = Ynt(p);
            c.decoratorSignature = Bae(p, g, p);
            break;
          }
          case 171:
          case 174:
          case 175: {
            const u = a;
            if (!li(u.parent))
              break;
            const p = nl(u) ? wE(Np(u)) : IS(u), g = pl(u) ? or(Ir(u.parent)) : Vu(Ir(u.parent)), x = H_(u) ? Kke(p) : Yf(u) ? Xke(p) : p, R = hke(u, g, p), M = H_(u) ? Kke(p) : Yf(u) ? Xke(p) : p;
            c.decoratorSignature = Bae(x, R, M);
            break;
          }
          case 169: {
            const u = a;
            if (!li(u.parent))
              break;
            const p = IS(u), g = pl(u) ? or(Ir(u.parent)) : Vu(Ir(u.parent)), x = Pm(u) ? rrt(g, p) : je, R = hke(u, g, p), M = Pm(u) ? irt(g, p) : art(g, p);
            c.decoratorSignature = Bae(x, R, M);
            break;
          }
        }
      return c.decoratorSignature === zs ? void 0 : c.decoratorSignature;
    }
    function srt(n) {
      const { parent: a } = n, c = zr(a);
      if (!c.decoratorSignature)
        switch (c.decoratorSignature = zs, a.kind) {
          case 260:
          case 228: {
            const p = or(Ir(a)), g = ep("target", p);
            c.decoratorSignature = BD(void 0, void 0, [g], Yr([p, Rt]));
            break;
          }
          case 166: {
            const u = a;
            if (!Hc(u.parent) && !(nl(u.parent) || Yf(u.parent) && li(u.parent.parent)) || x1(u.parent) === u)
              break;
            const p = x1(u.parent) ? u.parent.parameters.indexOf(u) - 1 : u.parent.parameters.indexOf(u);
            D.assert(p >= 0);
            const g = Hc(u.parent) ? or(Ir(u.parent.parent)) : zwe(u.parent), x = Hc(u.parent) ? je : qwe(u.parent), R = Pp(p), M = ep("target", g), J = ep("propertyKey", x), $ = ep("parameterIndex", R);
            c.decoratorSignature = BD(void 0, void 0, [M, J, $], Rt);
            break;
          }
          case 171:
          case 174:
          case 175:
          case 169: {
            const u = a;
            if (!li(u.parent))
              break;
            const p = zwe(u), g = ep("target", p), x = qwe(u), R = ep("propertyKey", x), M = Za(u) ? Rt : iCe(IS(u));
            if (P !== 0 && (!Za(a) || Pm(a))) {
              const $ = iCe(IS(u)), ge = ep("descriptor", $);
              c.decoratorSignature = BD(void 0, void 0, [g, R, ge], Yr([M, Rt]));
            } else
              c.decoratorSignature = BD(void 0, void 0, [g, R], Yr([M, Rt]));
            break;
          }
        }
      return c.decoratorSignature === zs ? void 0 : c.decoratorSignature;
    }
    function Gae(n) {
      return ne ? srt(n) : ort(n);
    }
    function e4(n) {
      const a = yP(!0);
      return a !== xo ? (n = $g(UL(n)) || he, Wg(a, [n])) : he;
    }
    function gke(n) {
      const a = nCe(!0);
      return a !== xo ? (n = $g(UL(n)) || he, Wg(a, [n])) : he;
    }
    function t4(n, a) {
      const c = e4(a);
      return c === he ? (Je(n, rf(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), xe) : (Gre(!0) || Je(n, rf(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), c);
    }
    function crt(n) {
      const a = Qo(0, "NewTargetExpression"), c = Qo(4, "target", 8);
      c.parent = a, c.links.type = n;
      const u = ao([c]);
      return a.members = u, ws(a, u, rt, rt, rt);
    }
    function EV(n, a) {
      if (!n.body)
        return xe;
      const c = Fl(n), u = (c & 2) !== 0, p = (c & 1) !== 0;
      let g, x, R, M = Rt;
      if (n.body.kind !== 238)
        g = Xc(n.body, a && a & -9), u && (g = UL(FD(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 = Ske(n, a);
        J ? J.length > 0 && (g = Yr(J, 2)) : M = ht;
        const { yieldTypes: $, nextTypes: ge } = lrt(n, a);
        x = kt($) ? Yr($, 2) : void 0, R = kt(ge) ? Io(ge) : void 0;
      } else {
        const J = Ske(n, a);
        if (!J)
          return c & 2 ? t4(n, ht) : ht;
        if (J.length === 0)
          return c & 2 ? t4(n, Rt) : Rt;
        g = Yr(J, 2);
      }
      if (g || x || R) {
        if (x && WU(n, x, 3), g && WU(n, g, 1), R && WU(n, R, 2), g && lp(g) || x && lp(x) || R && lp(R)) {
          const J = oae(n), $ = J ? J === Np(n) ? p ? void 0 : g : rV(ms(J), n, void 0) : void 0;
          p ? (x = Aie(x, $, 0, u), g = Aie(g, $, 1, u), R = Aie(R, $, 2, u)) : g = hZe(g, $, u);
        }
        x && (x = Yd(x)), g && (g = Yd(g)), R && (R = Yd(R));
      }
      return p ? yke(x || ht, g || M, R || aIe(2, n) || he, u) : u ? e4(g || M) : g || M;
    }
    function yke(n, a, c, u) {
      const p = u ? xt : pn, g = p.getGlobalGeneratorType(!1);
      if (n = p.resolveIterationType(n, void 0) || he, a = p.resolveIterationType(a, void 0) || he, c = p.resolveIterationType(c, void 0) || he, g === xo) {
        const x = p.getGlobalIterableIteratorType(!1), R = x !== xo ? dwe(x, p) : void 0, M = R ? R.returnType : ke, J = R ? R.nextType : je;
        return To(a, M) && To(J, c) ? x !== xo ? cD(x, [n]) : (p.getGlobalIterableIteratorType(!0), ua) : (p.getGlobalGeneratorType(!0), ua);
      }
      return cD(g, [n, a, c]);
    }
    function lrt(n, a) {
      const c = [], u = [], p = (Fl(n) & 2) !== 0;
      return Jle(n.body, (g) => {
        const x = g.expression ? pa(g.expression, a) : Qe;
        c_(c, vke(g, x, ke, p));
        let R;
        if (g.asteriskToken) {
          const M = DV(x, p ? 19 : 17, g.expression);
          R = M && M.nextType;
        } else
          R = td(g, void 0);
        R && c_(u, R);
      }), { yieldTypes: c, nextTypes: u };
    }
    function vke(n, a, c, u) {
      const p = n.expression || n, g = n.asteriskToken ? uv(u ? 19 : 17, a, c, p) : a;
      return u ? WE(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 bke(n, a, c) {
      let u = 0;
      for (let p = 0; p < c.length; p++) {
        const g = p < n || p >= a ? c[p] : void 0;
        u |= g !== void 0 ? w5.get(g) || 32768 : 0;
      }
      return u;
    }
    function Eke(n) {
      const a = zr(n);
      if (a.isExhaustive === void 0) {
        a.isExhaustive = 0;
        const c = urt(n);
        a.isExhaustive === 0 && (a.isExhaustive = c);
      } else
        a.isExhaustive === 0 && (a.isExhaustive = !1);
      return a.isExhaustive;
    }
    function urt(n) {
      if (n.expression.kind === 218) {
        const u = VLe(n);
        if (!u)
          return !1;
        const p = tv(Xc(n.expression.expression)), g = bke(0, 0, u);
        return p.flags & 3 ? (556800 & g) === 556800 : !Xh(p, (x) => (Cu(x) & g) === g);
      }
      const a = Xc(n.expression);
      if (!mD(a))
        return !1;
      const c = KU(n);
      return !c.length || kt(c, _Ze) ? !1 : det(Ks(a, md), c);
    }
    function Tke(n) {
      return n.endFlowNode && GP(n.endFlowNode);
    }
    function Ske(n, a) {
      const c = Fl(n), u = [];
      let p = Tke(n), g = !1;
      if (lT(n.body, (x) => {
        const R = x.expression;
        if (R) {
          let M = Xc(R, a && a & -9);
          c & 2 && (M = UL(FD(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), c_(u, M);
        } else
          p = !0;
      }), !(u.length === 0 && !p && (g || drt(n))))
        return W && u.length && p && !(Fp(n) && u.some((x) => x.symbol === n.symbol)) && c_(u, je), u;
    }
    function drt(n) {
      switch (n.kind) {
        case 215:
        case 216:
          return !0;
        case 171:
          return n.parent.kind === 207;
        default:
          return !1;
      }
    }
    function Uae(n, a) {
      i(c);
      return;
      function c() {
        const u = Fl(n), p = a && RV(a, u);
        if (p && _c(p, 16385) || n.kind === 170 || xc(n.body) || n.body.kind !== 238 || !Tke(n))
          return;
        const g = n.flags & 512, x = mp(n) || n;
        if (p && p.flags & 131072)
          Je(x, _.A_function_returning_never_cannot_have_a_reachable_end_point);
        else if (p && !g)
          Je(x, _.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value);
        else if (p && W && !To(je, p))
          Je(x, _.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined);
        else if (Y.noImplicitReturns) {
          if (!p) {
            if (!g)
              return;
            const R = ms(Np(n));
            if (ywe(n, R))
              return;
          }
          Je(x, _.Not_all_code_paths_return_a_value);
        }
      }
    }
    function xke(n, a) {
      if (D.assert(n.kind !== 171 || M_(n)), zL(n), Ps(n) && jL(n, n.name), a && a & 4 && C_(n)) {
        if (!mp(n) && !B3(n)) {
          const u = AD(n);
          if (u && ME(ms(u))) {
            const p = zr(n);
            if (p.contextFreeType)
              return p.contextFreeType;
            const g = EV(n, a), x = rh(void 0, void 0, void 0, rt, g, void 0, 0, 0), R = ws(n.symbol, te, [x], rt, rt);
            return R.objectFlags |= 262144, p.contextFreeType = R;
          }
        }
        return Sa;
      }
      return !HV(n) && n.kind === 215 && Toe(n), frt(n, a), or(Ir(n));
    }
    function frt(n, a) {
      const c = zr(n);
      if (!(c.flags & 64)) {
        const u = AD(n);
        if (!(c.flags & 64)) {
          c.flags |= 64;
          const p = zl(ja(or(Ir(n)), 0));
          if (!p)
            return;
          if (C_(n))
            if (u) {
              const g = CS(n);
              let x;
              if (a && a & 2) {
                Jnt(p, u, g);
                const R = kD(u);
                R && R.flags & 262144 && (x = H2(u, g.nonFixingMapper));
              }
              x || (x = g ? H2(u, g.mapper) : u), Knt(p, x);
            } else
              Xnt(p);
          if (u && !P2(n) && !p.resolvedReturnType) {
            const g = EV(n, a);
            p.resolvedReturnType || (p.resolvedReturnType = g);
          }
          ND(n);
        }
      }
    }
    function _rt(n) {
      D.assert(n.kind !== 171 || M_(n));
      const a = Fl(n), c = P2(n);
      if (Uae(n, c), n.body)
        if (mp(n) || ms(Np(n)), n.body.kind === 238)
          mo(n.body);
        else {
          const u = pa(n.body), p = c && RV(c, a);
          if (p)
            if ((a & 3) === 2) {
              const g = FD(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);
              sv(g, p, n.body, n.body);
            } else
              sv(u, p, n.body, n.body);
        }
    }
    function TV(n, a, c, u = !1) {
      if (!To(a, _o)) {
        const p = u && PD(a);
        return t0(n, !!p && To(p, _o), c), !1;
      }
      return !0;
    }
    function prt(n) {
      if (!eo(n) || !ZS(n))
        return !1;
      const a = Xc(n.arguments[2]);
      if (ul(a, "value")) {
        const p = so(a, "writable"), g = p && or(p);
        if (!g || g === it || g === K)
          return !0;
        if (p && p.valueDeclaration && Vl(p.valueDeclaration)) {
          const x = p.valueDeclaration.initializer, R = pa(x);
          if (R === it || R === K)
            return !0;
        }
        return !1;
      }
      return !so(a, "set");
    }
    function dp(n) {
      return !!(Cc(n) & 8 || n.flags & 4 && Kf(n) & 64 || n.flags & 3 && cV(n) & 2 || n.flags & 98304 && !(n.flags & 65536) || n.flags & 8 || kt(n.declarations, prt));
    }
    function Ake(n, a, c) {
      var u, p;
      if (c === 0)
        return !1;
      if (dp(a)) {
        if (a.flags & 4 && sc(n) && n.expression.kind === 108) {
          const g = Tf(n);
          if (!(g && (g.kind === 173 || Fp(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 (sc(n)) {
        const g = Gs(n.expression);
        if (g.kind === 79) {
          const x = zr(g).resolvedSymbol;
          if (x.flags & 2097152) {
            const R = fd(x);
            return !!R && R.kind === 271;
          }
        }
      }
      return !1;
    }
    function DD(n, a, c) {
      const u = hu(n, 7);
      return u.kind !== 79 && !sc(u) ? (Je(n, a), !1) : u.flags & 32 ? (Je(n, c), !1) : !0;
    }
    function mrt(n) {
      pa(n.expression);
      const a = Gs(n.expression);
      if (!sc(a))
        return Je(a, _.The_operand_of_a_delete_operator_must_be_a_property_reference), Re;
      Mr(a) && Di(a.name) && Je(a, _.The_operand_of_a_delete_operator_cannot_be_a_private_identifier);
      const c = zr(a), u = wp(c.resolvedSymbol);
      return u && (dp(u) && Je(a, _.The_operand_of_a_delete_operator_cannot_be_a_read_only_property), hrt(a, u)), Re;
    }
    function hrt(n, a) {
      const c = or(a);
      W && !(c.flags & 131075) && !(We ? a.flags & 16777216 : Cu(c) & 16777216) && Je(n, _.The_operand_of_a_delete_operator_must_be_optional);
    }
    function grt(n) {
      return pa(n.expression), sL;
    }
    function yrt(n) {
      return pa(n.expression), Qe;
    }
    function vrt(n) {
      const a = YM(n);
      if (a && Lc(a))
        Je(n, _.Await_expression_cannot_be_used_inside_a_class_static_block);
      else if (!(n.flags & 32768))
        if ($M(n)) {
          const c = er(n);
          if (!qb(c)) {
            let u;
            if (!$S(c, Y)) {
              u ?? (u = py(c, n.pos));
              const p = Il(c, 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);
              Xo.add(p);
            }
            switch (de) {
              case 100:
              case 199:
                if (c.impliedNodeFormat === 1) {
                  u ?? (u = py(c, n.pos)), Xo.add(Il(c, 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 = py(c, n.pos)), Xo.add(Il(c, 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 c = er(n);
          if (!qb(c)) {
            const u = py(c, n.pos), p = Il(c, u.start, u.length, _.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);
            if (a && a.kind !== 173 && !(Fl(a) & 2)) {
              const g = Rr(a, _.Did_you_mean_to_mark_this_function_as_async);
              qo(p, g);
            }
            Xo.add(p);
          }
        }
      tae(n) && Je(n, _.await_expressions_cannot_be_used_in_a_parameter_initializer);
    }
    function brt(n) {
      i(() => vrt(n));
      const a = pa(n.expression), c = FD(a, !0, n, _.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);
      return c === a && !Zo(c) && !(a.flags & 3) && Ny(!1, Rr(n, _.await_has_no_effect_on_the_type_of_this_expression)), c;
    }
    function Ert(n) {
      const a = pa(n.operand);
      if (a === dt)
        return dt;
      switch (n.operand.kind) {
        case 8:
          switch (n.operator) {
            case 40:
              return j2(Pp(-n.operand.text));
            case 39:
              return j2(Pp(+n.operand.text));
          }
          break;
        case 9:
          if (n.operator === 40)
            return j2(SU({
              negative: !0,
              base10Value: lk(n.operand.text)
            }));
      }
      switch (n.operator) {
        case 39:
        case 40:
        case 54:
          return Mp(a, n.operand), n4(a, 12288) && Je(n.operand, _.The_0_operator_cannot_be_applied_to_type_symbol, ho(n.operator)), n.operator === 39 ? (n4(a, 2112) && Je(n.operand, _.Operator_0_cannot_be_applied_to_type_1, ho(n.operator), Le(cv(a))), pt) : Vae(a);
        case 53:
          $2(n.operand);
          const c = Cu(a) & 12582912;
          return c === 4194304 ? it : c === 8388608 ? Pe : Re;
        case 45:
        case 46:
          return TV(n.operand, Mp(a, n.operand), _.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type) && DD(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), Vae(a);
      }
      return xe;
    }
    function Trt(n) {
      const a = pa(n.operand);
      return a === dt ? dt : (TV(n.operand, Mp(a, n.operand), _.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type) && DD(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), Vae(a));
    }
    function Vae(n) {
      return _c(n, 2112) ? Nl(n, 3) || _c(n, 296) ? _o : Wt : pt;
    }
    function n4(n, a) {
      if (_c(n, a))
        return !0;
      const c = tv(n);
      return !!c && _c(c, a);
    }
    function _c(n, a) {
      if (n.flags & a)
        return !0;
      if (n.flags & 3145728) {
        const c = n.types;
        for (const u of c)
          if (_c(u, a))
            return !0;
      }
      return !1;
    }
    function Nl(n, a, c) {
      return n.flags & a ? !0 : c && n.flags & 114691 ? !1 : !!(a & 296) && To(n, pt) || !!(a & 2112) && To(n, Wt) || !!(a & 402653316) && To(n, ue) || !!(a & 528) && To(n, Re) || !!(a & 16384) && To(n, Rt) || !!(a & 131072) && To(n, ht) || !!(a & 65536) && To(n, Sn) || !!(a & 32768) && To(n, je) || !!(a & 4096) && To(n, q) || !!(a & 67108864) && To(n, ai);
    }
    function r4(n, a, c) {
      return n.flags & 1048576 ? Rn(n.types, (u) => r4(u, a, c)) : Nl(n, a, c);
    }
    function jae(n) {
      return !!(Zr(n) & 16) && !!n.symbol && Hae(n.symbol);
    }
    function Hae(n) {
      return (n.flags & 128) !== 0;
    }
    function Srt(n, a, c, u) {
      return c === dt || u === dt ? dt : (!bs(c) && r4(c, 134348796) && Je(n, _.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter), bs(u) || GV(u) || ov(u, uc) || Je(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 xrt(n) {
      return Xh(n, (a) => a === qc || !!(a.flags & 2097152) && Jh(tv(a)));
    }
    function Art(n, a, c, u) {
      if (c === dt || u === dt)
        return dt;
      if (Di(n)) {
        if (P < 99 && fl(n, 2097152), !zr(n).resolvedSymbol && Tl(n)) {
          const p = vae(n, u.symbol, !0);
          PIe(n, u, p);
        }
      } else
        ed(Mp(c, n), xi, n);
      return ed(Mp(u, a), ai, a) && xrt(u) && Je(a, _.Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator, Le(u)), Re;
    }
    function Crt(n, a, c) {
      const u = n.properties;
      if (W && u.length === 0)
        return Mp(a, n);
      for (let p = 0; p < u.length; p++)
        Cke(n, a, p, u, c);
      return a;
    }
    function Cke(n, a, c, u, p = !1) {
      const g = n.properties, x = g[c];
      if (x.kind === 299 || x.kind === 300) {
        const R = x.name, M = zg(R);
        if (Hh(M)) {
          const ge = dm(M), Ne = so(a, ge);
          Ne && (KP(Ne, x, p), mae(x, !1, !0, a, Ne));
        }
        const J = Nd(a, M, 32, R), $ = Ye(x, J);
        return HE(x.kind === 300 ? x : x.initializer, $);
      } else if (x.kind === 301)
        if (c < g.length - 1)
          Je(x, _.A_rest_element_must_be_last_in_a_destructuring_pattern);
        else {
          P < 99 && fl(x, 4);
          const R = [];
          if (u)
            for (const J of u)
              Nx(J) || R.push(J.name);
          const M = I2(a, R, a.symbol);
          return kS(u, _.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma), HE(x.expression, M);
        }
      else
        Je(x, _.Property_assignment_expected);
    }
    function Lrt(n, a, c) {
      const u = n.elements;
      P < 2 && Y.downlevelIteration && fl(n, 512);
      const p = uv(193, a, je, n) || xe;
      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 ?? (uv(65, a, je, n) || xe)), Lke(n, a, x, R, c);
      }
      return a;
    }
    function Lke(n, a, c, u, p) {
      const g = n.elements, x = g[c];
      if (x.kind !== 229) {
        if (x.kind !== 227) {
          const R = Pp(c);
          if (C0(a)) {
            const M = 32 | (RL(x) ? 16 : 0), J = iv(a, R, M, YP(x, R)) || xe, $ = RL(x) ? i_(J, 524288) : J, ge = Ye(x, $);
            return HE(x, ge, p);
          }
          return HE(x, u, p);
        }
        if (c < g.length - 1)
          Je(x, _.A_rest_element_must_be_last_in_a_destructuring_pattern);
        else {
          const R = x.expression;
          if (R.kind === 223 && R.operatorToken.kind === 63)
            Je(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 = ah(a, Po) ? Ks(a, (J) => EL(J, c)) : xu(u);
            return HE(R, M, p);
          }
        }
      }
    }
    function HE(n, a, c, u) {
      let p;
      if (n.kind === 300) {
        const g = n;
        g.objectAssignmentInitializer && (W && !(Cu(pa(g.objectAssignmentInitializer)) & 16777216) && (a = i_(a, 524288)), Drt(g.name, g.equalsToken, g.objectAssignmentInitializer, c)), p = n.name;
      } else
        p = n;
      return p.kind === 223 && p.operatorToken.kind === 63 && (Oe(p, c), p = p.left, W && (a = i_(a, 524288))), p.kind === 207 ? Crt(p, a, u) : p.kind === 206 ? Lrt(p, a, c) : Irt(p, a, c);
    }
    function Irt(n, a, c) {
      const u = pa(n, c), 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 DD(n, p, g) && sv(a, u, n, n), TA(n) && fl(n.parent, 1048576), a;
    }
    function i4(n) {
      switch (n = Gs(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 i4(n.whenTrue) && i4(n.whenFalse);
        case 223:
          return my(n.operatorToken.kind) ? !1 : i4(n.left) && i4(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 Wae(n, a) {
      return (a.flags & 98304) !== 0 || DU(n, a);
    }
    function krt() {
      const n = W7(a, c, u, p, g, x);
      return (Ne, we) => {
        const ft = n(Ne, we);
        return D.assertIsDefined(ft), ft;
      };
      function a(Ne, we, ft) {
        return we ? (we.stackIndex++, we.skip = !1, J(we, void 0), ge(we, void 0)) : we = {
          checkMode: ft,
          skip: !1,
          stackIndex: 0,
          typeStack: [void 0, void 0]
        }, fr(Ne) && QS(Ne) ? (we.skip = !0, ge(we, pa(Ne.right, ft)), we) : (wrt(Ne), Ne.operatorToken.kind === 63 && (Ne.left.kind === 207 || Ne.left.kind === 206) && (we.skip = !0, ge(we, HE(Ne.left, pa(Ne.right, ft), ft, Ne.right.kind === 108))), we);
      }
      function c(Ne, we, ft) {
        if (!we.skip)
          return R(we, Ne);
      }
      function u(Ne, we, ft) {
        if (!we.skip) {
          const Bt = $(we);
          D.assertIsDefined(Bt), J(we, Bt), ge(we, void 0);
          const Fn = Ne.kind;
          if (FN(Fn)) {
            let An = ft.parent;
            for (; An.kind === 214 || BN(An); )
              An = An.parent;
            (Fn === 55 || CT(An)) && roe(ft.left, Bt, CT(An) ? An.thenStatement : void 0), swe(Bt, ft.left);
          }
        }
      }
      function p(Ne, we, ft) {
        if (!we.skip)
          return R(we, Ne);
      }
      function g(Ne, we) {
        let ft;
        if (we.skip)
          ft = $(we);
        else {
          const Bt = M(we);
          D.assertIsDefined(Bt);
          const Fn = $(we);
          D.assertIsDefined(Fn), ft = Ike(Ne.left, Ne.operatorToken, Ne.right, Bt, Fn, Ne);
        }
        return we.skip = !1, J(we, void 0), ge(we, void 0), we.stackIndex--, ft;
      }
      function x(Ne, we, ft) {
        return ge(Ne, we), Ne;
      }
      function R(Ne, we) {
        if (br(we))
          return we;
        ge(Ne, pa(we, Ne.checkMode));
      }
      function M(Ne) {
        return Ne.typeStack[Ne.stackIndex];
      }
      function J(Ne, we) {
        Ne.typeStack[Ne.stackIndex] = we;
      }
      function $(Ne) {
        return Ne.typeStack[Ne.stackIndex + 1];
      }
      function ge(Ne, we) {
        Ne.typeStack[Ne.stackIndex + 1] = we;
      }
    }
    function wrt(n) {
      const { left: a, operatorToken: c, right: u } = n;
      c.kind === 60 && (br(a) && (a.operatorToken.kind === 56 || a.operatorToken.kind === 55) && En(a, _._0_and_1_operations_cannot_be_mixed_without_parentheses, ho(a.operatorToken.kind), ho(c.kind)), br(u) && (u.operatorToken.kind === 56 || u.operatorToken.kind === 55) && En(u, _._0_and_1_operations_cannot_be_mixed_without_parentheses, ho(u.operatorToken.kind), ho(c.kind)));
    }
    function Drt(n, a, c, u, p) {
      const g = a.kind;
      if (g === 63 && (n.kind === 207 || n.kind === 206))
        return HE(n, pa(c, u), u, c.kind === 108);
      let x;
      FN(g) ? x = $2(n, u) : x = pa(n, u);
      const R = pa(c, u);
      return Ike(n, a, c, x, R, p);
    }
    function Ike(n, a, c, 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 === dt || p === dt)
            return dt;
          u = Mp(u, n), p = Mp(p, c);
          let hn;
          if (u.flags & 528 && p.flags & 528 && (hn = ge(a.kind)) !== void 0)
            return Je(g || a, _.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ho(a.kind), ho(hn)), pt;
          {
            const on = TV(n, u, _.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type, !0), Un = TV(c, p, _.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type, !0);
            let Kn;
            if (Nl(u, 3) && Nl(p, 3) || !(_c(u, 2112) || _c(p, 2112)))
              Kn = pt;
            else if (R(u, p)) {
              switch (x) {
                case 49:
                case 72:
                  Bt();
                  break;
                case 42:
                case 67:
                  P < 3 && Je(g, _.Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later);
              }
              Kn = Wt;
            } else
              Bt(R), Kn = xe;
            return on && Un && Ne(Kn), Kn;
          }
        case 39:
        case 64:
          if (u === dt || p === dt)
            return dt;
          !Nl(u, 402653316) && !Nl(p, 402653316) && (u = Mp(u, n), p = Mp(p, c));
          let xn;
          return Nl(u, 296, !0) && Nl(p, 296, !0) ? xn = pt : Nl(u, 2112, !0) && Nl(p, 2112, !0) ? xn = Wt : Nl(u, 402653316, !0) || Nl(p, 402653316, !0) ? xn = ue : (bs(u) || bs(p)) && (xn = Zo(u) || Zo(p) ? xe : ke), xn && !$(x) ? xn : xn ? (x === 64 && Ne(xn), xn) : (Bt((Un, Kn) => Nl(Un, 402655727) && Nl(Kn, 402655727)), ke);
        case 29:
        case 31:
        case 32:
        case 33:
          return $(x) && (u = Sie(Mp(u, n)), p = Sie(Mp(p, c)), ft((on, Un) => {
            if (bs(on) || bs(Un))
              return !0;
            const Kn = To(on, _o), $r = To(Un, _o);
            return Kn && $r || !Kn && !$r && AP(on, Un);
          })), Re;
        case 34:
        case 35:
        case 36:
        case 37:
          if (sW(n) || sW(c)) {
            const on = x === 34 || x === 36;
            Je(g, _.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value, on ? "false" : "true");
          }
          return An(g, x, n, c), ft((on, Un) => Wae(on, Un) || Wae(Un, on)), Re;
        case 102:
          return Srt(n, c, u, p);
        case 101:
          return Art(n, c, u, p);
        case 55:
        case 76: {
          const on = Cu(u) & 4194304 ? Yr([vZe(W ? u : cv(p)), p]) : u;
          return x === 76 && Ne(p), on;
        }
        case 56:
        case 75: {
          const on = Cu(u) & 8388608 ? Yr([Xg(fLe(u)), p], 2) : u;
          return x === 75 && Ne(p), on;
        }
        case 60:
        case 77: {
          const on = Cu(u) & 262144 ? Yr([Xg(u), p], 2) : u;
          return x === 77 && Ne(p), on;
        }
        case 63:
          const yr = br(n.parent) ? Ac(n.parent) : 0;
          return M(yr, p), we(yr) ? ((!(p.flags & 524288) || yr !== 2 && yr !== 6 && !qh(p) && !zie(p) && !(Zr(p) & 1)) && Ne(p), u) : (Ne(p), p);
        case 27:
          if (!Y.allowUnreachableCode && i4(n) && !J(n.parent)) {
            const on = er(n), Un = on.text, Kn = zo(Un, n.pos);
            on.parseDiagnostics.some((ti) => ti.code !== _.JSX_expressions_must_have_one_parent_element.code ? !1 : qH(ti, Kn)) || Je(n, _.Left_side_of_comma_operator_is_unused_and_has_no_side_effects);
          }
          return p;
        default:
          return D.fail();
      }
      function R(hn, xn) {
        return Nl(hn, 2112) && Nl(xn, 2112);
      }
      function M(hn, xn) {
        if (hn === 2)
          for (const yr of ev(xn)) {
            const on = or(yr);
            if (on.symbol && on.symbol.flags & 32) {
              const Un = yr.escapedName, Kn = fc(yr.valueDeclaration, Un, 788968, void 0, Un, !1);
              Kn != null && Kn.declarations && Kn.declarations.some(vJ) && (vb(Kn, _.Duplicate_identifier_0, ta(Un), yr), vb(yr, _.Duplicate_identifier_0, ta(Un), Kn));
            }
          }
      }
      function J(hn) {
        return hn.parent.kind === 214 && h_(hn.left) && hn.left.text === "0" && (eo(hn.parent.parent) && hn.parent.parent.expression === hn.parent || hn.parent.parent.kind === 212) && (sc(hn.right) || Ve(hn.right) && hn.right.escapedText === "eval");
      }
      function $(hn) {
        const xn = n4(u, 12288) ? n : n4(p, 12288) ? c : void 0;
        return xn ? (Je(xn, _.The_0_operator_cannot_be_applied_to_type_symbol, ho(hn)), !1) : !0;
      }
      function ge(hn) {
        switch (hn) {
          case 51:
          case 74:
            return 56;
          case 52:
          case 78:
            return 37;
          case 50:
          case 73:
            return 55;
          default:
            return;
        }
      }
      function Ne(hn) {
        my(x) && i(xn);
        function xn() {
          if (DD(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 (We && Mr(n) && _c(hn, 32768)) {
              const on = ul(Lu(n.expression), n.name.escapedText);
              NU(hn, on) && (yr = _.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target);
            }
            sv(hn, u, n, c, yr);
          }
        }
      }
      function we(hn) {
        var xn;
        switch (hn) {
          case 2:
            return !0;
          case 1:
          case 5:
          case 6:
          case 3:
          case 4:
            const yr = qd(n), on = QS(c);
            return !!on && xs(on) && !!((xn = yr == null ? void 0 : yr.exports) != null && xn.size);
          default:
            return !1;
        }
      }
      function ft(hn) {
        return hn(u, p) ? !1 : (Bt(hn), !0);
      }
      function Bt(hn) {
        let xn = !1;
        const yr = g || a;
        if (hn) {
          const ti = $g(u), da = $g(p);
          xn = !(ti === u && da === p) && !!(ti && da) && hn(ti, da);
        }
        let on = u, Un = p;
        !xn && hn && ([on, Un] = Rrt(u, p, hn));
        const [Kn, $r] = rn(on, Un);
        Fn(yr, xn, Kn, $r) || t0(yr, xn, _.Operator_0_cannot_be_applied_to_types_1_and_2, ho(a.kind), Kn, $r);
      }
      function Fn(hn, xn, yr, on) {
        switch (a.kind) {
          case 36:
          case 34:
          case 37:
          case 35:
            return t0(hn, xn, _.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap, yr, on);
          default:
            return;
        }
      }
      function An(hn, xn, yr, on) {
        const Un = Yn(Gs(yr)), Kn = Yn(Gs(on));
        if (Un || Kn) {
          const $r = Je(hn, _.This_condition_will_always_return_0, ho(xn === 36 || xn === 34 ? 95 : 110));
          if (Un && Kn)
            return;
          const ti = xn === 37 || xn === 35 ? ho(53) : "", da = Un ? on : yr, Ya = Gs(da);
          qo($r, Rr(da, _.Did_you_mean_0, `${ti}Number.isNaN(${jc(Ya) ? Ef(Ya) : "..."})`));
        }
      }
      function Yn(hn) {
        if (Ve(hn) && hn.escapedText === "NaN") {
          const xn = A$e();
          return !!xn && xn === L_(hn);
        }
        return !1;
      }
    }
    function Rrt(n, a, c) {
      let u = n, p = a;
      const g = cv(n), x = cv(a);
      return c(g, x) || (u = g, p = x), [u, p];
    }
    function Nrt(n) {
      i(Ne);
      const a = Tf(n);
      if (!a)
        return ke;
      const c = Fl(a);
      if (!(c & 1))
        return ke;
      const u = (c & 2) !== 0;
      n.asteriskToken && (u && P < 99 && fl(n, 26624), !u && P < 2 && Y.downlevelIteration && fl(n, 256));
      const p = P2(a), g = p && gwe(p, u), x = g && g.yieldType || ke, R = g && g.nextType || ke, M = u ? WE(R) || ke : R, J = n.expression ? pa(n.expression) : Qe, $ = vke(n, J, M, u);
      if (p && $ && sv($, x, n.expression || n, n.expression), n.asteriskToken)
        return aoe(u ? 19 : 17, 1, J, n.expression) || ke;
      if (p)
        return zb(2, p, u) || ke;
      let ge = aIe(2, a);
      return ge || (ge = ke, i(() => {
        if (Te && !Mde(n)) {
          const we = td(n, void 0);
          (!we || bs(we)) && Je(n, _.yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation);
        }
      })), ge;
      function Ne() {
        n.flags & 8192 || Ol(n, _.A_yield_expression_is_only_allowed_in_a_generator_body), tae(n) && Je(n, _.yield_expressions_cannot_be_used_in_a_parameter_initializer);
      }
    }
    function Ort(n, a) {
      const c = $2(n.condition);
      roe(n.condition, c, n.whenTrue);
      const u = pa(n.whenTrue, a), p = pa(n.whenFalse, a);
      return Yr([u, p], 2);
    }
    function kke(n) {
      const a = n.parent;
      return Fd(a) && kke(a) || cc(a) && a.argumentExpression === n;
    }
    function Prt(n) {
      const a = [n.head.text], c = [];
      for (const u of n.templateSpans) {
        const p = pa(u.expression);
        n4(p, 12288) && Je(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), c.push(To(p, bo) ? p : ue);
      }
      return BL(n) || kke(n) || Xh(td(n, void 0) || he, Mrt) ? DE(a, c) : ue;
    }
    function Mrt(n) {
      return !!(n.flags & 134217856 || n.flags & 58982400 && _c(ju(n) || he, 402653316));
    }
    function Frt(n) {
      return O1(n) && !kx(n.parent) ? n.parent.parent : n;
    }
    function X2(n, a, c, u) {
      const p = Frt(n);
      HP(p, a, !1), ctt(p, c);
      const g = pa(n, u | 1 | (c ? 2 : 0));
      c && c.intraExpressionInferenceSites && (c.intraExpressionInferenceSites = void 0);
      const x = _c(g, 2944) && SV(g, rV(a, n, void 0)) ? md(g) : g;
      return ltt(), xD(), x;
    }
    function Xc(n, a) {
      if (a)
        return pa(n, a);
      const c = zr(n);
      if (!c.resolvedType) {
        const u = Tn, p = Ea;
        Tn = zn, Ea = void 0, c.resolvedType = pa(n, a), Ea = p, Tn = u;
      }
      return c.resolvedType;
    }
    function wke(n) {
      return n = Gs(n, !0), n.kind === 213 || n.kind === 231 || Fk(n);
    }
    function RD(n, a, c) {
      const u = cN(n);
      if (fr(n)) {
        const g = U3(n);
        if (g)
          return Oae(u, g, a);
      }
      const p = Jae(u) || (c ? X2(u, c, void 0, a || 0) : Xc(u, a));
      return Oa(n) && n.name.kind === 204 && Po(p) && !p.target.hasRestElement && b0(p) < n.name.elements.length ? Brt(p, n.name) : p;
    }
    function Brt(n, a) {
      const c = a.elements, u = _s(n).slice(), p = n.target.elementFlags.slice();
      for (let g = b0(n); g < c.length; g++) {
        const x = c[g];
        (g < c.length - 1 || !(x.kind === 205 && x.dotDotDotToken)) && (u.push(!kl(x) && RL(x) ? Xy(x, !1, !1) : ke), p.push(2), !kl(x) && !RL(x) && L0(x, ke));
      }
      return Op(u, p, n.target.readonly);
    }
    function zae(n, a) {
      const c = _p(n) & 2 || jM(n) ? a : Vb(a);
      if (fr(n)) {
        if (sLe(c))
          return L0(n, ke), ke;
        if (BU(c))
          return L0(n, Dt), Dt;
      }
      return c;
    }
    function SV(n, a) {
      if (a) {
        if (a.flags & 3145728) {
          const c = a.types;
          return kt(c, (u) => SV(n, u));
        }
        if (a.flags & 58982400) {
          const c = ju(a) || he;
          return _c(c, 4) && _c(n, 128) || _c(c, 8) && _c(n, 256) || _c(c, 64) && _c(n, 2048) || _c(c, 4096) && _c(n, 8192) || SV(n, c);
        }
        return !!(a.flags & 406847616 && _c(n, 128) || a.flags & 256 && _c(n, 256) || a.flags & 2048 && _c(n, 2048) || a.flags & 512 && _c(n, 512) || a.flags & 8192 && _c(n, 8192));
      }
      return !1;
    }
    function BL(n) {
      const a = n.parent;
      return iT(a) && rg(a.type) || Fk(a) && rg(U7(a)) || Nae(n) && Grt(n) || (Fd(a) || Ou(a) || xh(a)) && BL(a) || (Vl(a) || $f(a) || kk(a)) && BL(a.parent);
    }
    function Grt(n) {
      const a = td(n, 0);
      return !!a && Xh(a, _P);
    }
    function GL(n, a, c) {
      const u = pa(n, a, c);
      return BL(n) || Yle(n) ? md(u) : wke(n) ? u : xie(u, rV(td(n, void 0), n, void 0));
    }
    function Dke(n, a) {
      return n.name.kind === 164 && Yg(n.name), GL(n.initializer, a);
    }
    function Rke(n, a) {
      aDe(n), n.name.kind === 164 && Yg(n.name);
      const c = xke(n, a);
      return Nke(n, c, a);
    }
    function Nke(n, a, c) {
      if (c && c & 10) {
        const u = CD(a, 0, !0), p = CD(a, 1, !0), g = u || p;
        if (g && g.typeParameters) {
          const x = Hb(n, 2);
          if (x) {
            const R = CD(Xg(x), u ? 0 : 1, !1);
            if (R && !R.typeParameters) {
              if (c & 8)
                return Oke(n, c), Sa;
              const M = CS(n), J = M.signature && ms(M.signature), $ = J && WIe(J);
              if ($ && !$.typeParameters && !Rn(M.inferences, Y2)) {
                const ge = Hrt(M, g.typeParameters), Ne = wre(g, ge), we = en(M.inferences, (ft) => Rie(ft.typeParameter));
                if (kie(Ne, R, (ft, Bt) => {
                  Kh(we, ft, Bt, 0, !0);
                }), kt(we, Y2) && (wie(Ne, R, (ft, Bt) => {
                  Kh(we, ft, Bt);
                }), !Vrt(M.inferences, we)))
                  return jrt(M.inferences, we), M.inferredTypeParameters = ma(M.inferredTypeParameters, ge), wE(Ne);
              }
              return wE(zIe(g, R, M));
            }
          }
        }
      }
      return a;
    }
    function Oke(n, a) {
      if (a & 2) {
        const c = CS(n);
        c.flags |= 4;
      }
    }
    function Y2(n) {
      return !!(n.candidates || n.contraCandidates);
    }
    function Urt(n) {
      return !!(n.candidates || n.contraCandidates || kAe(n.typeParameter));
    }
    function Vrt(n, a) {
      for (let c = 0; c < n.length; c++)
        if (Y2(n[c]) && Y2(a[c]))
          return !0;
      return !1;
    }
    function jrt(n, a) {
      for (let c = 0; c < n.length; c++)
        !Y2(n[c]) && Y2(a[c]) && (n[c] = a[c]);
    }
    function Hrt(n, a) {
      const c = [];
      let u, p;
      for (const g of a) {
        const x = g.symbol.escapedName;
        if (qae(n.inferredTypeParameters, x) || qae(c, x)) {
          const R = Wrt(ma(n.inferredTypeParameters, c), x), M = Qo(262144, R), J = wd(M);
          J.target = g, u = Bn(u, g), p = Bn(p, J), c.push(J);
        } else
          c.push(g);
      }
      if (p) {
        const g = hd(u, p);
        for (const x of p)
          x.mapper = g;
      }
      return c;
    }
    function qae(n, a) {
      return kt(n, (c) => c.symbol.escapedName === a);
    }
    function Wrt(n, a) {
      let c = a.length;
      for (; c > 1 && a.charCodeAt(c - 1) >= 48 && a.charCodeAt(c - 1) <= 57; )
        c--;
      const u = a.slice(0, c);
      for (let p = 1; ; p++) {
        const g = u + p;
        if (!qae(n, g))
          return g;
      }
    }
    function Pke(n) {
      const a = LS(n);
      if (a && !a.typeParameters)
        return ms(a);
    }
    function zrt(n) {
      const a = pa(n.expression), c = hD(a, n.expression), u = Pke(a);
      return u && VU(u, n, c !== a);
    }
    function Lu(n) {
      const a = Jae(n);
      if (a)
        return a;
      if (n.flags & 134217728 && Ea) {
        const p = Ea[ds(n)];
        if (p)
          return p;
      }
      const c = nr, u = pa(n);
      if (nr !== c) {
        const p = Ea || (Ea = []);
        p[ds(n)] = u, Pde(n, n.flags | 134217728);
      }
      return u;
    }
    function Jae(n) {
      let a = Gs(n, !0);
      if (Fk(a)) {
        const c = U7(a);
        if (!rg(c))
          return ui(c);
      }
      if (a = Gs(n), vC(a)) {
        const c = Jae(a.expression);
        return c ? WE(c) : void 0;
      }
      if (eo(a) && a.expression.kind !== 106 && !Ed(a, !0) && !ike(a))
        return tT(a) ? zrt(a) : Pke(OL(a.expression));
      if (iT(a) && !rg(a.type))
        return ui(a.type);
      if (nT(n) || rle(n))
        return pa(n);
    }
    function a4(n) {
      const a = zr(n);
      if (a.contextFreeType)
        return a.contextFreeType;
      HP(n, ke, !1);
      const c = a.contextFreeType = pa(n, 4);
      return xD(), c;
    }
    function pa(n, a, c) {
      var u, p;
      (u = yi) == null || u.push(yi.Phase.Check, "checkExpression", { kind: n.kind, pos: n.pos, end: n.end, path: n.tracingPath });
      const g = B;
      B = n, I = 0;
      const x = Krt(n, a, c), R = Nke(n, x, a);
      return jae(R) && qrt(n, R), B = g, (p = yi) == null || p.pop(), R;
    }
    function qrt(n, a) {
      n.parent.kind === 208 && n.parent.expression === n || n.parent.kind === 209 && n.parent.expression === n || (n.kind === 79 || n.kind === 163) && FV(n) || n.parent.kind === 183 && n.parent.exprName === n || n.parent.kind === 278 || Je(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), U_(Y) && (D.assert(!!(a.symbol.flags & 128)), a.symbol.valueDeclaration.flags & 16777216 && Je(n, _.Cannot_access_ambient_const_enums_when_0_is_enabled, Vt));
    }
    function Jrt(n, a) {
      if (bf(n)) {
        if (gq(n))
          return Oae(n.expression, yq(n), a);
        if (Fk(n)) {
          const c = U7(n);
          return lke(c, c, n.expression, a);
        }
      }
      return pa(n.expression, a);
    }
    function Krt(n, a, c) {
      const u = n.kind;
      if (o)
        switch (u) {
          case 228:
          case 215:
          case 216:
            o.throwIfCancellationRequested();
        }
      switch (u) {
        case 79:
          return Det(n, a);
        case 80:
          return ztt(n);
        case 108:
          return VP(n);
        case 106:
          return Zie(n);
        case 104:
          return Er;
        case 14:
        case 10:
          return j2(Bf(n.text));
        case 8:
          return Coe(n), j2(Pp(+n.text));
        case 9:
          return Kst(n), j2(SU({
            negative: !1,
            base10Value: lk(n.text)
          }));
        case 110:
          return Pe;
        case 95:
          return it;
        case 225:
          return Prt(n);
        case 13:
          return kf;
        case 206:
          return pIe(n, a, c);
        case 207:
          return Att(n, a);
        case 208:
          return kIe(n, a);
        case 163:
          return wIe(n, a);
        case 209:
          return snt(n, a);
        case 210:
          if (n.expression.kind === 100)
            return Fnt(n);
        case 211:
          return Mnt(n, a);
        case 212:
          return Bnt(n);
        case 214:
          return Jrt(n, a);
        case 228:
          return Oat(n);
        case 215:
        case 216:
          return xke(n, a);
        case 218:
          return grt(n);
        case 213:
        case 231:
          return Gnt(n);
        case 232:
          return Vnt(n);
        case 230:
          return uke(n);
        case 235:
          return jnt(n);
        case 233:
          return Hnt(n);
        case 217:
          return mrt(n);
        case 219:
          return yrt(n);
        case 220:
          return brt(n);
        case 221:
          return Ert(n);
        case 222:
          return Trt(n);
        case 223:
          return Oe(n, a);
        case 224:
          return Ort(n, a);
        case 227:
          return btt(n, a);
        case 229:
          return Qe;
        case 226:
          return Nrt(n);
        case 234:
          return Ett(n);
        case 291:
          return Btt(n, a);
        case 281:
          return ktt(n);
        case 282:
          return Ltt(n);
        case 285:
          return wtt(n);
        case 289:
          return Rtt(n, a);
        case 283:
          D.fail("Shouldn't ever directly check a JsxOpeningElement");
      }
      return xe;
    }
    function Mke(n) {
      sh(n), n.expression && Ol(n.expression, _.Type_expected), mo(n.constraint), mo(n.default);
      const a = LE(Ir(n));
      ju(a), OYe(a) || Je(n.default, _.Type_parameter_0_has_a_circular_default, Le(a));
      const c = Tu(a), u = kE(a);
      c && u && ed(u, Mf(Ji(c, Gb(a, u)), u), n.default, _.Type_0_does_not_satisfy_the_constraint_1), zL(n), i(() => HL(n.name, _.Type_parameter_name_cannot_be_0));
    }
    function Xrt(n) {
      var a, c;
      if (Qu(n.parent) || li(n.parent) || Qp(n.parent)) {
        const u = LE(Ir(n)), p = yie(u) & 98304;
        if (p) {
          const g = Ir(n.parent);
          if (Qp(n.parent) && !(Zr(Fs(g)) & 48))
            Je(n, _.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);
          else if (p === 32768 || p === 65536) {
            (a = yi) == null || a.push(yi.Phase.CheckTypes, "checkTypeParameterDeferred", { parent: Au(Fs(g)), id: Au(u) });
            const x = IP(g, u, p === 65536 ? mc : Is), R = IP(g, u, p === 65536 ? Is : mc), M = u;
            V = u, ed(x, R, n, _.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation), V = M, (c = yi) == null || c.pop();
          }
        }
      }
    }
    function Fke(n) {
      sh(n), d4(n);
      const a = Tf(n);
      Kr(n, 16476) && (a.kind === 173 && u_(a.body) || Je(n, _.A_parameter_property_is_only_allowed_in_a_constructor_implementation), a.kind === 173 && Ve(n.name) && n.name.escapedText === "constructor" && Je(n.name, _.constructor_cannot_be_used_as_a_parameter_property_name)), !n.initializer && hq(n) && Ja(n.name) && a.body && Je(n, _.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature), n.name && Ve(n.name) && (n.name.escapedText === "this" || n.name.escapedText === "new") && (a.parameters.indexOf(n) !== 0 && Je(n, _.A_0_parameter_must_be_the_first_parameter, n.name.escapedText), (a.kind === 173 || a.kind === 177 || a.kind === 182) && Je(n, _.A_constructor_cannot_have_a_this_parameter), a.kind === 216 && Je(n, _.An_arrow_function_cannot_have_a_this_parameter), (a.kind === 174 || a.kind === 175) && Je(n, _.get_and_set_accessors_cannot_declare_this_parameters)), n.dotDotDotToken && !Ja(n.name) && !To(cp(or(n.symbol)), qi) && Je(n, _.A_rest_parameter_must_be_of_an_array_type);
    }
    function Yrt(n) {
      const a = $rt(n);
      if (!a) {
        Je(n, _.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);
        return;
      }
      const c = Np(a), u = t_(c);
      if (!u)
        return;
      mo(n.type);
      const { parameterName: p } = n;
      if (u.kind === 0 || u.kind === 2)
        xU(p);
      else if (u.parameterIndex >= 0) {
        if (gu(c) && u.parameterIndex === c.parameters.length - 1)
          Je(p, _.A_type_predicate_cannot_reference_a_rest_parameter);
        else if (u.type) {
          const g = () => ka(void 0, _.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type);
          ed(u.type, or(c.parameters[u.parameterIndex]), n.type, void 0, g);
        }
      } else if (p) {
        let g = !1;
        for (const { name: x } of a.parameters)
          if (Ja(x) && Bke(x, p, u.parameterName)) {
            g = !0;
            break;
          }
        g || Je(n.parameterName, _.Cannot_find_parameter_0, u.parameterName);
      }
    }
    function $rt(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 Bke(n, a, c) {
      for (const u of n.elements) {
        if (kl(u))
          continue;
        const p = u.name;
        if (p.kind === 79 && p.escapedText === c)
          return Je(a, _.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, c), !0;
        if ((p.kind === 204 || p.kind === 203) && Bke(p, a, c))
          return !0;
      }
    }
    function ND(n) {
      n.kind === 178 ? Est(n) : (n.kind === 181 || n.kind === 259 || n.kind === 182 || n.kind === 176 || n.kind === 173 || n.kind === 177) && HV(n);
      const a = Fl(n);
      a & 4 || ((a & 3) === 3 && P < 99 && fl(n, 6144), (a & 3) === 2 && P < 4 && fl(n, 64), a & 3 && P < 2 && fl(n, 128)), _4(Ev(n)), Dat(n), ze(n.parameters, Fke), n.type && mo(n.type), i(c);
      function c() {
        Kit(n);
        const u = mp(n);
        if (Te && !u)
          switch (n.kind) {
            case 177:
              Je(n, _.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
              break;
            case 176:
              Je(n, _.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);
              break;
          }
        if (u) {
          const p = Fl(n);
          if ((p & 5) === 1) {
            const g = ui(u);
            if (g === Rt)
              Je(u, _.A_generator_cannot_have_a_void_type_annotation);
            else {
              const x = zb(0, g, (p & 2) !== 0) || ke, R = zb(1, g, (p & 2) !== 0) || x, M = zb(2, g, (p & 2) !== 0) || he, J = yke(x, R, M, !!(p & 2));
              ed(J, g, u);
            }
          } else
            (p & 3) === 2 && Iit(n, u);
        }
        n.kind !== 178 && n.kind !== 320 && lv(n);
      }
    }
    function Qrt(n) {
      const a = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map();
      for (const g of n.members)
        if (g.kind === 173)
          for (const x of g.parameters)
            Qd(x, g) && !Ja(x.name) && p(a, x.name, x.name.escapedText, 3);
        else {
          const x = za(g), R = g.name;
          if (!R)
            continue;
          const M = Di(R), J = M && x ? 16 : 0, $ = M ? u : x ? c : a, ge = R && S1(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))
            Je(x, _.Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name, El(x));
          else {
            const $ = !!(J & 8), ge = !!(M & 8);
            $ || ge ? $ !== ge && Je(x, _.Duplicate_identifier_0, El(x)) : J & M & -17 ? Je(x, _.Duplicate_identifier_0, El(x)) : g.set(R, J | M);
          }
        else
          g.set(R, M);
      }
    }
    function Zrt(n) {
      for (const a of n.members) {
        const c = a.name;
        if (za(a) && c) {
          const p = S1(c);
          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 = qy(Ir(n));
              Je(c, g, p, x);
              break;
          }
        }
      }
    }
    function Gke(n) {
      const a = /* @__PURE__ */ new Map();
      for (const c of n.members)
        if (c.kind === 168) {
          let u;
          const p = c.name;
          switch (p.kind) {
            case 10:
            case 8:
              u = p.text;
              break;
            case 79:
              u = Pr(p);
              break;
            default:
              continue;
          }
          a.get(u) ? (Je(Aa(c.symbol.valueDeclaration), _.Duplicate_identifier_0, u), Je(c.name, _.Duplicate_identifier_0, u)) : a.set(u, !0);
        }
    }
    function Kae(n) {
      if (n.kind === 261) {
        const c = Ir(n);
        if (c.declarations && c.declarations.length > 0 && c.declarations[0] !== n)
          return;
      }
      const a = FAe(Ir(n));
      if (a != null && a.declarations) {
        const c = /* @__PURE__ */ new Map();
        for (const u of a.declarations)
          u.parameters.length === 1 && u.parameters[0].type && GE(ui(u.parameters[0].type), (p) => {
            const g = c.get(Au(p));
            g ? g.declarations.push(u) : c.set(Au(p), { type: p, declarations: [u] });
          });
        c.forEach((u) => {
          if (u.declarations.length > 1)
            for (const p of u.declarations)
              Je(p, _.Duplicate_index_signature_for_type_0, Le(u.type));
        });
      }
    }
    function Uke(n) {
      !sh(n) && !Hst(n) && WV(n.name), d4(n), Xae(n), Kr(n, 256) && n.kind === 169 && n.initializer && Je(n, _.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract, Ls(n.name));
    }
    function eit(n) {
      return Di(n.name) && Je(n, _.Private_identifiers_are_not_allowed_outside_class_bodies), Uke(n);
    }
    function tit(n) {
      aDe(n) || WV(n.name), nl(n) && n.asteriskToken && Ve(n.name) && Pr(n.name) === "constructor" && Je(n.name, _.Class_constructor_may_not_be_a_generator), Zke(n), Kr(n, 256) && n.kind === 171 && n.body && Je(n, _.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract, Ls(n.name)), Di(n.name) && !Tl(n) && Je(n, _.Private_identifiers_are_not_allowed_outside_class_bodies), Xae(n);
    }
    function Xae(n) {
      if (Di(n.name) && P < 99) {
        for (let a = Nm(n); a; a = Nm(a))
          zr(a).flags |= 4194304;
        if (Pu(n.parent)) {
          const a = Yie(n.parent);
          a && (zr(n.name).flags |= 32768, zr(a).flags |= 4096);
        }
      }
    }
    function nit(n) {
      sh(n), Ra(n, mo);
    }
    function rit(n) {
      ND(n), Vst(n) || jst(n), mo(n.body);
      const a = Ir(n), c = Sc(a, n.kind);
      if (n === c && CV(a), xc(n.body))
        return;
      i(p);
      return;
      function u(g) {
        return Ju(g) ? !0 : g.kind === 169 && !za(g) && !!g.initializer;
      }
      function p() {
        const g = n.parent;
        if (T1(g)) {
          $ie(n.parent, g);
          const x = ZLe(g), R = QLe(n.body);
          if (R) {
            if (x && Je(R, _.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null), ($o(Y) !== 99 || !ye) && (kt(n.parent.members, u) || kt(n.parameters, (J) => Kr(J, 16476))))
              if (!iit(R, n.body))
                Je(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 (nu($) && NA(hu($.expression))) {
                    J = $;
                    break;
                  }
                  if (Vke($))
                    break;
                }
                J === void 0 && Je(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 || Je(n, _.Constructors_for_derived_classes_must_contain_a_super_call);
        }
      }
    }
    function iit(n, a) {
      const c = Lv(n.parent);
      return nu(c) && c.parent === a;
    }
    function Vke(n) {
      return n.kind === 106 || n.kind === 108 ? !0 : nue(n) ? !1 : !!Ra(n, Vke);
    }
    function jke(n) {
      Ve(n.name) && Pr(n.name) === "constructor" && Je(n.name, _.Class_constructor_may_not_be_an_accessor), i(a), mo(n.body), Xae(n);
      function a() {
        if (!HV(n) && !wst(n) && WV(n.name), s4(n), ND(n), n.kind === 174 && !(n.flags & 16777216) && u_(n.body) && n.flags & 256 && (n.flags & 512 || Je(n.name, _.A_get_accessor_must_return_a_value)), n.name.kind === 164 && Yg(n.name), R2(n)) {
          const u = Ir(n), p = Sc(u, 174), g = Sc(u, 175);
          if (p && g && !(Z2(p) & 1)) {
            zr(p).flags |= 1;
            const x = Ru(p), R = Ru(g);
            (x & 256) !== (R & 256) && (Je(p.name, _.Accessors_must_both_be_abstract_or_non_abstract), Je(g.name, _.Accessors_must_both_be_abstract_or_non_abstract)), (x & 16 && !(R & 24) || x & 8 && !(R & 8)) && (Je(p.name, _.A_get_accessor_must_be_at_least_as_accessible_as_the_setter), Je(g.name, _.A_get_accessor_must_be_at_least_as_accessible_as_the_setter));
            const M = oe(p), J = oe(g);
            M && J && ed(M, J, p, _.The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type);
          }
        }
        const c = Br(Ir(n));
        n.kind === 174 && Uae(n, c);
      }
    }
    function ait(n) {
      s4(n);
    }
    function oit(n, a, c) {
      return n.typeArguments && c < n.typeArguments.length ? ui(n.typeArguments[c]) : xV(n, a)[c];
    }
    function xV(n, a) {
      return nv(en(n.typeArguments, ui), a, _m(a), fr(n));
    }
    function Hke(n, a) {
      let c, u, p = !0;
      for (let g = 0; g < a.length; g++) {
        const x = Tu(a[g]);
        x && (c || (c = xV(n, a), u = hd(a, c)), p = p && ed(c[g], Ji(x, u), n.typeArguments[g], _.Type_0_does_not_satisfy_the_constraint_1));
      }
      return p;
    }
    function sit(n, a) {
      if (!Zo(n))
        return a.flags & 524288 && Vi(a).typeParameters || (Zr(n) & 4 ? n.target.localTypeParameters : void 0);
    }
    function Yae(n) {
      const a = ui(n);
      if (!Zo(a)) {
        const c = zr(n).resolvedSymbol;
        if (c)
          return sit(a, c);
      }
    }
    function $ae(n) {
      if (g4(n, n.typeArguments), n.kind === 180 && !fr(n) && !oN(n) && n.typeArguments && n.typeName.end !== n.typeArguments.pos) {
        const a = er(n);
        qle(a, n.typeName.end) === 24 && Jb(n, zo(a.text, n.typeName.end), 1, _.JSDoc_types_can_only_be_used_inside_documentation_comments);
      }
      ze(n.typeArguments, mo), Wke(n);
    }
    function Wke(n) {
      const a = ui(n);
      if (!Zo(a)) {
        n.typeArguments && i(() => {
          const u = Yae(n);
          u && Hke(n, u);
        });
        const c = zr(n).resolvedSymbol;
        c && kt(c.declarations, (u) => oC(u) && !!(u.flags & 268435456)) && Cg($P(n), c.declarations, c.escapedName);
      }
    }
    function cit(n) {
      const a = ii(n.parent, DM);
      if (!a)
        return;
      const c = Yae(a);
      if (!c)
        return;
      const u = Tu(c[a.typeArguments.indexOf(n)]);
      return u && Ji(u, hd(c, xV(a, c)));
    }
    function lit(n) {
      KAe(n);
    }
    function uit(n) {
      ze(n.members, mo), i(a);
      function a() {
        const c = PCe(n);
        NV(c, c.symbol), Kae(n), Gke(n);
      }
    }
    function dit(n) {
      mo(n.elementType);
    }
    function fit(n) {
      const a = n.elements;
      let c = !1, u = !1;
      const p = kt(a, Ak);
      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 = jre(g);
        if (x & 8) {
          const R = ui(g.type);
          if (!C0(R)) {
            Je(g, _.A_rest_element_type_must_be_an_array_type);
            break;
          }
          (Gf(R) || Po(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;
          }
          c = !0;
        } else if (c) {
          En(g, _.A_required_element_cannot_follow_an_optional_element);
          break;
        }
      }
      ze(n.elements, mo), ui(n);
    }
    function _it(n) {
      ze(n.types, mo), ui(n);
    }
    function zke(n, a) {
      if (!(n.flags & 8388608))
        return n;
      const c = n.objectType, u = n.indexType;
      if (To(u, mm(c, !1)))
        return a.kind === 209 && gh(a) && Zr(c) & 32 && fm(c) & 1 && Je(a, _.Index_signature_in_type_0_only_permits_reading, Le(c)), n;
      const p = Hu(c);
      if (ih(p, pt) && Nl(u, 296))
        return n;
      if (Mb(c)) {
        const g = yU(u, a);
        if (g) {
          const x = GE(p, (R) => so(R, g));
          if (x && Kf(x) & 24)
            return Je(a, _.Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter, ta(g)), xe;
        }
      }
      return Je(a, _.Type_0_cannot_be_used_to_index_type_1, Le(u), Le(c)), xe;
    }
    function pit(n) {
      mo(n.objectType), mo(n.indexType), zke(kCe(n), n);
    }
    function mit(n) {
      hit(n), mo(n.typeParameter), mo(n.nameType), mo(n.type), n.type || L0(n, ke);
      const a = Qre(n), c = Zy(a);
      if (c)
        ed(c, Gi, n.nameType);
      else {
        const u = Rp(a);
        ed(u, Gi, EA(n.typeParameter));
      }
    }
    function hit(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 git(n) {
      xU(n);
    }
    function yit(n) {
      Rst(n), mo(n.type);
    }
    function vit(n) {
      Ra(n, mo);
    }
    function bit(n) {
      rr(n, (c) => c.parent && c.parent.kind === 191 && c.parent.extendsType === c) || En(n, _.infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type), mo(n.typeParameter);
      const a = Ir(n.typeParameter);
      if (a.declarations && a.declarations.length > 1) {
        const c = Vi(a);
        if (!c.typeParametersChecked) {
          c.typeParametersChecked = !0;
          const u = LE(a), p = Tle(a, 165);
          if (!Ewe(p, [u], (g) => [g])) {
            const g = S(a);
            for (const x of p)
              Je(x.name, _.All_declarations_of_0_must_have_identical_constraints, g);
          }
        }
      }
      lv(n);
    }
    function Eit(n) {
      for (const a of n.templateSpans) {
        mo(a.type);
        const c = ui(a.type);
        ed(c, bo, a.type);
      }
      ui(n);
    }
    function Tit(n) {
      mo(n.argument), n.assertions && Ux(n.assertions.assertClause, En) && (ON() || En(n.assertions.assertClause, _.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next), yc(Y) !== 3 && yc(Y) !== 99 && En(n.assertions.assertClause, _.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext)), Wke(n);
    }
    function Sit(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), mo(n.type), ui(n);
    }
    function o4(n) {
      return (Pd(n, 8) || Ju(n)) && !!(n.flags & 16777216);
    }
    function AV(n, a) {
      let c = uy(n);
      return n.parent.kind !== 261 && n.parent.kind !== 260 && n.parent.kind !== 228 && n.flags & 16777216 && (!(c & 2) && !(Zp(n.parent) && Wc(n.parent.parent) && qp(n.parent.parent)) && (c |= 1), c |= 2), c & a;
    }
    function CV(n) {
      i(() => xit(n));
    }
    function xit(n) {
      function a(xn, yr) {
        return yr !== void 0 && yr.parent === xn[0].parent ? yr : xn[0];
      }
      function c(xn, yr, on, Un, Kn) {
        if ((Un ^ Kn) !== 0) {
          const ti = AV(a(xn, yr), on);
          ze(xn, (da) => {
            const Ya = AV(da, on) ^ ti;
            Ya & 1 ? Je(Aa(da), _.Overload_signatures_must_all_be_exported_or_non_exported) : Ya & 2 ? Je(Aa(da), _.Overload_signatures_must_all_be_ambient_or_non_ambient) : Ya & 24 ? Je(Aa(da) || da, _.Overload_signatures_must_all_be_public_private_or_protected) : Ya & 256 && Je(Aa(da), _.Overload_signatures_must_all_be_abstract_or_non_abstract);
          });
        }
      }
      function u(xn, yr, on, Un) {
        if (on !== Un) {
          const Kn = nx(a(xn, yr));
          ze(xn, ($r) => {
            nx($r) !== Kn && Je(Aa($r), _.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 we = n.declarations, ft = (n.flags & 16384) !== 0;
      function Bt(xn) {
        if (xn.name && xc(xn.name))
          return;
        let yr = !1;
        const on = Ra(xn.parent, (Kn) => {
          if (yr)
            return Kn;
          yr = Kn === xn;
        });
        if (on && on.pos === xn.end && on.kind === xn.kind) {
          const Kn = on.name || on, $r = on.name;
          if (xn.name && $r && (Di(xn.name) && Di($r) && xn.name.escapedText === $r.escapedText || Ts(xn.name) && Ts($r) || F_(xn.name) && F_($r) && VI(xn.name) === VI($r))) {
            if ((xn.kind === 171 || xn.kind === 170) && za(xn) !== za(on)) {
              const da = za(xn) ? _.Function_overload_must_be_static : _.Function_overload_must_not_be_static;
              Je(Kn, da);
            }
            return;
          }
          if (u_(on.body)) {
            Je(Kn, _.Function_implementation_name_must_be_0, Ls(xn.name));
            return;
          }
        }
        const Un = xn.name || xn;
        ft ? Je(Un, _.Constructor_implementation_is_missing) : Kr(xn, 256) ? Je(Un, _.All_declarations_of_an_abstract_method_must_be_consecutive) : Je(Un, _.Function_implementation_is_missing_or_not_immediately_following_the_declaration);
      }
      let Fn = !1, An = !1, Yn = !1;
      const hn = [];
      if (we)
        for (const xn of we) {
          const yr = xn, on = yr.flags & 16777216, Un = yr.parent && (yr.parent.kind === 261 || yr.parent.kind === 184) || on;
          if (Un && (Ne = void 0), (yr.kind === 260 || yr.kind === 228) && !on && (Yn = !0), yr.kind === 259 || yr.kind === 171 || yr.kind === 170 || yr.kind === 173) {
            hn.push(yr);
            const Kn = AV(yr, p);
            g |= Kn, x &= Kn, R = R || nx(yr), M = M && nx(yr);
            const $r = u_(yr.body);
            $r && $ ? ft ? An = !0 : Fn = !0 : (Ne == null ? void 0 : Ne.parent) === yr.parent && Ne.end !== yr.pos && Bt(Ne), $r ? $ || ($ = yr) : J = !0, Ne = yr, Un || (ge = yr);
          }
          if (fr(xn) && qa(xn) && xn.jsDoc) {
            for (const Kn of xn.jsDoc)
              if (Kn.tags)
                for (const $r of Kn.tags)
                  Ok($r) && (J = !0);
          }
        }
      if (An && ze(hn, (xn) => {
        Je(xn, _.Multiple_constructor_implementations_are_not_allowed);
      }), Fn && ze(hn, (xn) => {
        Je(Aa(xn) || xn, _.Duplicate_function_implementation);
      }), Yn && !ft && n.flags & 16 && we) {
        const xn = yn(we, (yr) => yr.kind === 260).map((yr) => Rr(yr, _.Consider_adding_a_declare_modifier_to_this_class));
        ze(we, (yr) => {
          const on = 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;
          on && qo(Je(Aa(yr) || yr, on, Oc(n)), ...xn);
        });
      }
      if (ge && !ge.body && !Kr(ge, 256) && !ge.questionToken && Bt(ge), J && (we && (c(we, $, p, g, x), u(we, $, R, M)), $)) {
        const xn = Rb(n), yr = Np($);
        for (const on of xn)
          if (!XQe(yr, on)) {
            const Un = on.declaration && M1(on.declaration) ? on.declaration.parent.tagName : on.declaration;
            qo(Je(Un, _.This_overload_signature_is_not_compatible_with_its_implementation_signature), Rr($, _.The_implementation_signature_is_declared_here));
            break;
          }
      }
    }
    function OD(n) {
      i(() => Ait(n));
    }
    function Ait(n) {
      let a = n.localSymbol;
      if (!a && (a = Ir(n), !a.exportSymbol) || Sc(a, n.kind) !== n)
        return;
      let c = 0, u = 0, p = 0;
      for (const J of a.declarations) {
        const $ = M(J), ge = AV(J, 1025);
        ge & 1 ? ge & 1024 ? p |= $ : c |= $ : u |= $;
      }
      const g = c | u, x = c & u, R = p & g;
      if (x || R)
        for (const J of a.declarations) {
          const $ = M(J), ge = Aa(J);
          $ & R ? Je(ge, _.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, Ls(ge)) : $ & x && Je(ge, _.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, Ls(ge));
        }
      function M(J) {
        let $ = J;
        switch ($.kind) {
          case 261:
          case 262:
          case 349:
          case 341:
          case 343:
            return 2;
          case 264:
            return Du($) || mg($) !== 0 ? 5 : 4;
          case 260:
          case 263:
          case 302:
            return 3;
          case 308:
            return 7;
          case 274:
          case 223:
            const ge = $, Ne = Mc(ge) ? ge.expression : ge.right;
            if (!jc(Ne))
              return 1;
            $ = Ne;
          case 268:
          case 271:
          case 270:
            let we = 0;
            const ft = Zc(Ir($));
            return ze(ft.declarations, (Bt) => {
              we |= M(Bt);
            }), we;
          case 257:
          case 205:
          case 259:
          case 273:
          case 79:
            return 1;
          case 170:
          case 168:
            return 2;
          default:
            return D.failBadSyntaxKind($);
        }
      }
    }
    function PD(n, a, c, u) {
      const p = MD(n, a);
      return p && WE(p, a, c, u);
    }
    function MD(n, a, c) {
      if (bs(n))
        return;
      const u = n;
      if (u.promisedTypeOfPromise)
        return u.promisedTypeOfPromise;
      if (y0(n, yP(!1)))
        return u.promisedTypeOfPromise = _s(n)[0];
      if (r4(tv(n), 134479868))
        return;
      const p = ul(n, "then");
      if (bs(p))
        return;
      const g = p ? ja(p, 0) : rt;
      if (g.length === 0) {
        a && Je(a, _.A_promise_must_have_a_then_method);
        return;
      }
      let x, R;
      for (const $ of g) {
        const ge = Nb($);
        ge && ge !== Rt && !hm(n, ge, Km) ? x = ge : R = Bn(R, $);
      }
      if (!R) {
        D.assertIsDefined(x), c && (c.value = x), a && Je(a, _.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, Le(n), Le(x));
        return;
      }
      const M = i_(Yr(en(R, Mae)), 2097152);
      if (bs(M))
        return;
      const J = ja(M, 0);
      if (J.length === 0) {
        a && Je(a, _.The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback);
        return;
      }
      return u.promisedTypeOfPromise = Yr(en(J, Mae), 2);
    }
    function FD(n, a, c, u, p) {
      return (a ? WE(n, c, u, p) : $g(n, c, u, p)) || xe;
    }
    function qke(n) {
      if (r4(tv(n), 134479868))
        return !1;
      const a = ul(n, "then");
      return !!a && ja(i_(a, 2097152), 0).length > 0;
    }
    function LV(n) {
      var a;
      if (n.flags & 16777216) {
        const c = Vre(!1);
        return !!c && n.aliasSymbol === c && ((a = n.aliasTypeArguments) == null ? void 0 : a.length) === 1;
      }
      return !1;
    }
    function UL(n) {
      return n.flags & 1048576 ? Ks(n, UL) : LV(n) ? n.aliasTypeArguments[0] : n;
    }
    function Jke(n) {
      if (bs(n) || LV(n))
        return !1;
      if (Mb(n)) {
        const a = ju(n);
        if (a ? a.flags & 3 || qh(a) || Xh(a, qke) : _c(n, 8650752))
          return !0;
      }
      return !1;
    }
    function Cit(n) {
      const a = Vre(!0);
      if (a)
        return B2(a, [UL(n)]);
    }
    function Lit(n) {
      if (Jke(n)) {
        const a = Cit(n);
        if (a)
          return a;
      }
      return D.assert(LV(n) || MD(n) === void 0, "type provided should not be a non-generic 'promise'-like."), n;
    }
    function WE(n, a, c, u) {
      const p = $g(n, a, c, u);
      return p && Lit(p);
    }
    function $g(n, a, c, u) {
      if (bs(n) || LV(n))
        return n;
      const p = n;
      if (p.awaitedTypeOfType)
        return p.awaitedTypeOfType;
      if (n.flags & 1048576) {
        if (Sg.lastIndexOf(n.id) >= 0) {
          a && Je(a, _.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);
          return;
        }
        const R = a ? (J) => $g(J, a, c, u) : $g;
        Sg.push(n.id);
        const M = Ks(n, R);
        return Sg.pop(), p.awaitedTypeOfType = M;
      }
      if (Jke(n))
        return p.awaitedTypeOfType = n;
      const g = { value: void 0 }, x = MD(n, void 0, g);
      if (x) {
        if (n.id === x.id || Sg.lastIndexOf(x.id) >= 0) {
          a && Je(a, _.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);
          return;
        }
        Sg.push(n.id);
        const R = $g(x, a, c, u);
        return Sg.pop(), R ? p.awaitedTypeOfType = R : void 0;
      }
      if (qke(n)) {
        if (a) {
          D.assertIsDefined(c);
          let R;
          g.value && (R = ka(R, _.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, Le(n), Le(g.value))), R = ka(R, c, u), Xo.add(ag(er(a), a, R));
        }
        return;
      }
      return p.awaitedTypeOfType = n;
    }
    function Iit(n, a) {
      const c = ui(a);
      if (P >= 2) {
        if (Zo(c))
          return;
        const u = yP(!0);
        if (u !== xo && !y0(c, u)) {
          Je(a, _.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, Le($g(c) || Rt));
          return;
        }
      } else {
        if (wit(a), Zo(c))
          return;
        const u = iN(a);
        if (u === void 0) {
          Je(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, Le(c));
          return;
        }
        const p = Dc(u, 111551, !0), g = p ? or(p) : xe;
        if (Zo(g)) {
          u.kind === 79 && u.escapedText === "Promise" && D2(c) === yP(!1) ? Je(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) : Je(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, Ef(u));
          return;
        }
        const x = a$e(!0);
        if (x === ua) {
          Je(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, Ef(u));
          return;
        }
        if (!ed(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 && Sf(u), M = zd(n.locals, R.escapedText, 111551);
        if (M) {
          Je(M.valueDeclaration, _.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions, Pr(R), Ef(u));
          return;
        }
      }
      FD(c, !1, n, _.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);
    }
    function kit(n) {
      const a = ML(n);
      vV(a, n);
      const c = ms(a);
      if (c.flags & 1)
        return;
      const u = Gae(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 (!ne) {
            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);
      }
      ed(c, g, n.expression, p);
    }
    function BD(n, a, c, u, p, g = c.length, x = 0) {
      const R = N.createFunctionTypeNode(void 0, rt, N.createKeywordTypeNode(131));
      return rh(R, n, a, c, u, p, g, x);
    }
    function Qae(n, a, c, u, p, g, x) {
      const R = BD(n, a, c, u, p, g, x);
      return wE(R);
    }
    function Kke(n) {
      return Qae(void 0, void 0, rt, n);
    }
    function Xke(n) {
      const a = ep("value", n);
      return Qae(void 0, void 0, [a], Rt);
    }
    function wit(n) {
      Yke(n && iN(n), !1);
    }
    function Yke(n, a) {
      if (!n)
        return;
      const c = Sf(n), u = (n.kind === 79 ? 788968 : 1920) | 2097152, p = fc(c, c.escapedText, u, void 0, void 0, !0);
      if (p && p.flags & 2097152) {
        if (!Y.verbatimModuleSyntax && Pg(p) && !VD(Zc(p)) && !kd(p))
          Cb(p);
        else if (a && U_(Y) && tu(Y) >= 5 && !Pg(p) && !kt(p.declarations, p1)) {
          const g = Je(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 = cn(p.declarations || rt, wg);
          x && qo(g, Rr(x, _._0_was_imported_here, Pr(c)));
        }
      }
    }
    function VL(n) {
      const a = Zae(n);
      a && Zd(a) && Yke(a, !0);
    }
    function Zae(n) {
      if (n)
        switch (n.kind) {
          case 190:
          case 189:
            return $ke(n.types);
          case 191:
            return $ke([n.trueType, n.falseType]);
          case 193:
          case 199:
            return Zae(n.type);
          case 180:
            return n.typeName;
        }
    }
    function $ke(n) {
      let a;
      for (let c of n) {
        for (; c.kind === 193 || c.kind === 199; )
          c = c.type;
        if (c.kind === 144 || !W && (c.kind === 198 && c.literal.kind === 104 || c.kind === 155))
          continue;
        const u = Zae(c);
        if (!u)
          return;
        if (a) {
          if (!Ve(a) || !Ve(u) || a.escapedText !== u.escapedText)
            return;
        } else
          a = u;
      }
      return a;
    }
    function IV(n) {
      const a = Kl(n);
      return ph(n) ? XW(a) : a;
    }
    function s4(n) {
      if (!Px(n) || !Jf(n) || !n.modifiers || !e3(ne, n, n.parent, n.parent.parent))
        return;
      const a = cn(n.modifiers, Nu);
      if (a) {
        if (ne ? (fl(a, 8), n.kind === 166 && fl(a, 32)) : P < 99 && (fl(a, 8), wl(n) ? n.name ? Twe(n) && fl(a, 8388608) : fl(a, 8388608) : Pu(n) || (Di(n.name) && (nl(n) || U0(n) || ef(n)) && fl(a, 8388608), Ts(n.name) && fl(a, 16777216))), Y.emitDecoratorMetadata)
          switch (fl(a, 16), n.kind) {
            case 260:
              const c = yh(n);
              if (c)
                for (const x of c.parameters)
                  VL(IV(x));
              break;
            case 174:
            case 175:
              const u = n.kind === 174 ? 175 : 174, p = Sc(Ir(n), u);
              VL(F(n) || p && F(p));
              break;
            case 171:
              for (const x of n.parameters)
                VL(IV(x));
              VL(mp(n));
              break;
            case 169:
              VL(Kl(n));
              break;
            case 166:
              VL(IV(n));
              const g = n.parent;
              for (const x of g.parameters)
                VL(IV(x));
              break;
          }
        for (const c of n.modifiers)
          Nu(c) && kit(c);
      }
    }
    function Dit(n) {
      i(a);
      function a() {
        Zke(n), Toe(n), jL(n, n.name);
      }
    }
    function Rit(n) {
      n.typeExpression || Je(n.name, _.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags), n.name && HL(n.name, _.Type_alias_name_cannot_be_0), mo(n.typeExpression), _4(Ev(n));
    }
    function Nit(n) {
      mo(n.constraint);
      for (const a of n.typeParameters)
        mo(a);
    }
    function Oit(n) {
      mo(n.typeExpression);
    }
    function Pit(n) {
      mo(n.typeExpression);
      const a = WA(n);
      if (a) {
        const c = tW(a, F7);
        if (Ie(c) > 1)
          for (let u = 1; u < Ie(c); u++) {
            const p = c[u].tagName;
            Je(p, _._0_tag_already_specified, Pr(p));
          }
      }
    }
    function Mit(n) {
      n.name && m4(n.name, !0);
    }
    function Fit(n) {
      mo(n.typeExpression);
    }
    function Bit(n) {
      mo(n.typeExpression);
    }
    function Git(n) {
      i(a), ND(n);
      function a() {
        !n.type && !jA(n) && L0(n, ke);
      }
    }
    function Uit(n) {
      const a = WA(n);
      (!a || !wl(a) && !Pu(a)) && Je(a, _.JSDoc_0_is_not_attached_to_a_class, Pr(n.tagName));
    }
    function Vit(n) {
      const a = WA(n);
      if (!a || !wl(a) && !Pu(a)) {
        Je(a, _.JSDoc_0_is_not_attached_to_a_class, Pr(n.tagName));
        return;
      }
      const c = f1(a).filter(xC);
      D.assert(c.length > 0), c.length > 1 && Je(c[1], _.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);
      const u = Qke(n.class.expression), p = T1(a);
      if (p) {
        const g = Qke(p.expression);
        g && u.escapedText !== g.escapedText && Je(u, _.JSDoc_0_1_does_not_match_the_extends_2_clause, Pr(n.tagName), Pr(u), Pr(g));
      }
    }
    function jit(n) {
      const a = rx(n);
      a && Ju(a) && Je(n, _.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);
    }
    function Qke(n) {
      switch (n.kind) {
        case 79:
          return n;
        case 208:
          return n.name;
        default:
          return;
      }
    }
    function Zke(n) {
      var a;
      s4(n), ND(n);
      const c = Fl(n);
      if (n.name && n.name.kind === 164 && Yg(n.name), R2(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 && CV(x), g.parent && CV(g);
      }
      const u = n.kind === 170 ? void 0 : n.body;
      if (mo(u), Uae(n, P2(n)), i(p), fr(n)) {
        const g = d1(n);
        g && g.typeExpression && !aae(ui(g.typeExpression), n) && Je(g.typeExpression.type, _.The_type_of_a_function_declaration_must_match_the_function_s_signature);
      }
      function p() {
        mp(n) || (xc(u) && !o4(n) && L0(n, ke), c & 1 && u_(u) && ms(Np(n)));
      }
    }
    function lv(n) {
      i(a);
      function a() {
        const c = er(n);
        let u = bn.get(c.path);
        u || (u = [], bn.set(c.path, u)), u.push(n);
      }
    }
    function ewe(n, a) {
      for (const c of n)
        switch (c.kind) {
          case 260:
          case 228:
            Hit(c, a), eoe(c, a);
            break;
          case 308:
          case 264:
          case 238:
          case 266:
          case 245:
          case 246:
          case 247:
            rwe(c, a);
            break;
          case 173:
          case 215:
          case 259:
          case 216:
          case 171:
          case 174:
          case 175:
            c.body && rwe(c, a), eoe(c, a);
            break;
          case 170:
          case 176:
          case 177:
          case 181:
          case 182:
          case 262:
          case 261:
            eoe(c, a);
            break;
          case 192:
            Wit(c, a);
            break;
          default:
            D.assertNever(c, "Node should not have been registered for unused identifiers check");
        }
    }
    function twe(n, a, c) {
      const u = Aa(n) || n, p = oC(n) ? _._0_is_declared_but_never_used : _._0_is_declared_but_its_value_is_never_read;
      c(n, 0, Rr(u, p, a));
    }
    function c4(n) {
      return Ve(n) && Pr(n).charCodeAt(0) === 95;
    }
    function Hit(n, a) {
      for (const c of n.members)
        switch (c.kind) {
          case 171:
          case 169:
          case 174:
          case 175:
            if (c.kind === 175 && c.symbol.flags & 32768)
              break;
            const u = Ir(c);
            !u.isReferenced && (Pd(c, 8) || _u(c) && Di(c.name)) && !(c.flags & 16777216) && a(c, 0, Rr(c.name, _._0_is_declared_but_its_value_is_never_read, S(u)));
            break;
          case 173:
            for (const p of c.parameters)
              !p.symbol.isReferenced && Kr(p, 8) && a(p, 0, Rr(p.name, _.Property_0_is_declared_but_its_value_is_never_read, Oc(p.symbol)));
            break;
          case 178:
          case 237:
          case 172:
            break;
          default:
            D.fail("Unexpected class member");
        }
    }
    function Wit(n, a) {
      const { typeParameter: c } = n;
      toe(c) && a(n, 1, Rr(n, _._0_is_declared_but_its_value_is_never_read, Pr(c.name)));
    }
    function eoe(n, a) {
      const c = Ir(n).declarations;
      if (!c || Ho(c) !== n)
        return;
      const u = Ev(n), p = /* @__PURE__ */ new Set();
      for (const g of u) {
        if (!toe(g))
          continue;
        const x = Pr(g.name), { parent: R } = g;
        if (R.kind !== 192 && R.typeParameters.every(toe)) {
          if (e1(p, R)) {
            const M = er(R), J = yp(R) ? cq(R) : lq(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, Il(M, J.pos, J.end - J.pos, ge, Ne));
          }
        } else
          a(g, 1, Rr(g, _._0_is_declared_but_its_value_is_never_read, x));
      }
    }
    function toe(n) {
      return !(ns(n.symbol).isReferenced & 262144) && !c4(n.name);
    }
    function l4(n, a, c, u) {
      const p = String(u(a)), g = n.get(p);
      g ? g[1].push(c) : n.set(p, [a, [c]]);
    }
    function nwe(n) {
      return ii(Om(n), Oa);
    }
    function zit(n) {
      return us(n) ? Um(n.parent) ? !!(n.propertyName && c4(n.name)) : c4(n.name) : Du(n) || (zi(n) && CA(n.parent.parent) || iwe(n)) && c4(n.name);
    }
    function rwe(n, a) {
      const c = /* @__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 (!zit(x))
              if (iwe(x))
                l4(c, Jit(x), x, ds);
              else if (us(x) && Um(x.parent)) {
                const R = Ho(x.parent.elements);
                (x === R || !Ho(x.parent.elements).dotDotDotToken) && l4(u, x.parent, x, ds);
              } else if (zi(x))
                l4(p, x.parent, x, ds);
              else {
                const R = g.valueDeclaration && nwe(g.valueDeclaration), M = g.valueDeclaration && Aa(g.valueDeclaration);
                R && M ? !Qd(R, R.parent) && !A1(R) && !c4(M) && (us(x) && gC(x.parent) ? l4(u, x.parent, x, ds) : a(R, 1, Rr(M, _._0_is_declared_but_its_value_is_never_read, Oc(g)))) : twe(x, Oc(g), a);
              }
        }
      }), c.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 ? Rr(R, _._0_is_declared_but_its_value_is_never_read, Pr(ss(x).name)) : Rr(R, _.All_imports_in_import_declaration_are_unused));
        else
          for (const J of x)
            twe(J, Pr(J.name), a);
      }), u.forEach(([g, x]) => {
        const R = nwe(g.parent) ? 1 : 0;
        if (g.elements.length === x.length)
          x.length === 1 && g.parent.kind === 257 && g.parent.parent.kind === 258 ? l4(p, g.parent.parent, g.parent, ds) : a(g, R, x.length === 1 ? Rr(g, _._0_is_declared_but_its_value_is_never_read, u4(ss(x).name)) : Rr(g, _.All_destructured_elements_are_unused));
        else
          for (const M of x)
            a(M, R, Rr(M, _._0_is_declared_but_its_value_is_never_read, u4(M.name)));
      }), p.forEach(([g, x]) => {
        if (g.declarations.length === x.length)
          a(g, 0, x.length === 1 ? Rr(ss(x).name, _._0_is_declared_but_its_value_is_never_read, u4(ss(x).name)) : Rr(g.parent.kind === 240 ? g.parent : g, _.All_variables_are_unused));
        else
          for (const R of x)
            a(R, 0, Rr(R, _._0_is_declared_but_its_value_is_never_read, u4(R.name)));
      });
    }
    function qit() {
      var n;
      for (const a of aS)
        if (!((n = Ir(a)) != null && n.isReferenced)) {
          const c = bA(a);
          D.assert(hT(c), "Only parameter declaration should be checked here");
          const u = Rr(a.name, _._0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation, Ls(a.name), Ls(a.propertyName));
          c.type || qo(u, Il(er(c), c.end, 1, _.We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here, Ls(a.propertyName))), Xo.add(u);
        }
    }
    function u4(n) {
      switch (n.kind) {
        case 79:
          return Pr(n);
        case 204:
        case 203:
          return u4(ro(ss(n.elements), us).name);
        default:
          return D.assertNever(n);
      }
    }
    function iwe(n) {
      return n.kind === 270 || n.kind === 273 || n.kind === 271;
    }
    function Jit(n) {
      return n.kind === 270 ? n : n.kind === 271 ? n.parent : n.parent.parent;
    }
    function kV(n) {
      if (n.kind === 238 && Yh(n), dW(n)) {
        const a = Wi;
        ze(n.statements, mo), Wi = a;
      } else
        ze(n.statements, mo);
      n.locals && lv(n);
    }
    function Kit(n) {
      P >= 2 || !TW(n) || n.flags & 16777216 || xc(n.body) || ze(n.parameters, (a) => {
        a.name && !Ja(a.name) && a.name.escapedText === Ct.escapedName && e0("noEmit", a, _.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters);
      });
    }
    function GD(n, a, c) {
      if ((a == null ? void 0 : a.escapedText) !== c || n.kind === 169 || n.kind === 168 || n.kind === 171 || n.kind === 170 || n.kind === 174 || n.kind === 175 || n.kind === 299 || n.flags & 16777216 || (Vm(n) || ru(n) || xd(n)) && p1(n))
        return !1;
      const u = Om(n);
      return !(Oa(u) && xc(u.parent.body));
    }
    function Xit(n) {
      rr(n, (a) => Z2(a) & 4 ? (n.kind !== 79 ? Je(Aa(n), _.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference) : Je(n, _.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference), !0) : !1);
    }
    function Yit(n) {
      rr(n, (a) => Z2(a) & 8 ? (n.kind !== 79 ? Je(Aa(n), _.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference) : Je(n, _.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference), !0) : !1);
    }
    function $it(n, a) {
      if (de >= 5 && !(de >= 100 && er(n).impliedNodeFormat === 1) || !a || !GD(n, a, "require") && !GD(n, a, "exports") || Wc(n) && mg(n) !== 1)
        return;
      const c = xE(n);
      c.kind === 308 && nf(c) && e0("noEmit", a, _.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, Ls(a), Ls(a));
    }
    function Qit(n, a) {
      if (!a || P >= 4 || !GD(n, a, "Promise") || Wc(n) && mg(n) !== 1)
        return;
      const c = xE(n);
      c.kind === 308 && nf(c) && c.flags & 2048 && e0("noEmit", a, _.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions, Ls(a), Ls(a));
    }
    function Zit(n, a) {
      P <= 8 && (GD(n, a, "WeakMap") || GD(n, a, "WeakSet")) && db.push(n);
    }
    function eat(n) {
      const a = Nm(n);
      Z2(a) & 4194304 && (D.assert(_u(n) && Ve(n.name) && typeof n.name.escapedText == "string", "The target of a WeakMap/WeakSet collision check should be an identifier"), e0("noEmit", n, _.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel, n.name.escapedText));
    }
    function tat(n, a) {
      a && P >= 2 && P <= 8 && GD(n, a, "Reflect") && Zv.push(n);
    }
    function nat(n) {
      let a = !1;
      if (Pu(n)) {
        for (const c of n.members)
          if (Z2(c) & 8388608) {
            a = !0;
            break;
          }
      } else if (Ps(n))
        Z2(n) & 8388608 && (a = !0);
      else {
        const c = Nm(n);
        c && Z2(c) & 8388608 && (a = !0);
      }
      a && (D.assert(_u(n) && Ve(n.name), "The target of a Reflect collision check should be an identifier"), e0("noEmit", n, _.Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers, Ls(n.name), "Reflect"));
    }
    function jL(n, a) {
      a && ($it(n, a), Qit(n, a), Zit(n, a), tat(n, a), li(n) ? (HL(a, _.Class_name_cannot_be_0), n.flags & 16777216 || wat(a)) : Z0(n) && HL(a, _.Enum_name_cannot_be_0));
    }
    function rat(n) {
      if (_p(n) & 3 || hT(n) || n.kind === 257 && !n.initializer)
        return;
      const a = Ir(n);
      if (a.flags & 1) {
        if (!Ve(n.name))
          return D.fail();
        const c = fc(n, n.name.escapedText, 3, void 0, void 0, !1);
        if (c && c !== a && c.flags & 2 && cV(c) & 3) {
          const u = z0(c.valueDeclaration, 258), p = u.parent.kind === 240 && u.parent.parent ? u.parent.parent : void 0;
          if (!(p && (p.kind === 238 && qa(p.parent) || p.kind === 265 || p.kind === 264 || p.kind === 308))) {
            const x = S(c);
            Je(n, _.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, x, x);
          }
        }
      }
    }
    function UD(n) {
      return n === gt ? ke : n === On ? Dt : n;
    }
    function d4(n) {
      var a;
      if (s4(n), us(n) || mo(n.type), !n.name)
        return;
      if (n.name.kind === 164 && (Yg(n.name), aT(n) && n.initializer && Xc(n.initializer)), us(n)) {
        if (n.propertyName && Ve(n.name) && hT(n) && xc(Tf(n).body)) {
          aS.push(n);
          return;
        }
        Um(n.parent) && n.dotDotDotToken && P < 5 && fl(n, 4), n.propertyName && n.propertyName.kind === 164 && Yg(n.propertyName);
        const p = n.parent.parent, g = n.dotDotDotToken ? 64 : 0, x = L2(p, g), R = n.propertyName || n.name;
        if (x && !Ja(R)) {
          const M = zg(R);
          if (Hh(M)) {
            const J = dm(M), $ = so(x, J);
            $ && (KP($, void 0, !1), mae(n, !!p.initializer && p.initializer.kind === 106, !1, x, $));
          }
        }
      }
      if (Ja(n.name) && (n.name.kind === 204 && P < 2 && Y.downlevelIteration && fl(n, 512), ze(n.name.elements, mo)), Oa(n) && n.initializer && xc(Tf(n).body)) {
        Je(n, _.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);
        return;
      }
      if (Ja(n.name)) {
        const p = aT(n) && n.initializer && n.parent.parent.kind !== 246, g = !kt(n.name.elements, M4(kl));
        if (p || g) {
          const x = bc(n);
          if (p) {
            const R = Xc(n.initializer);
            W && g ? IIe(R, n) : sv(R, bc(n), n, n.initializer);
          }
          g && (gC(n.name) ? uv(65, x, je, n) : W && IIe(x, n));
        }
        return;
      }
      const c = Ir(n);
      if (c.flags & 2097152 && (E1(n) || oue(n))) {
        OV(n);
        return;
      }
      const u = UD(or(c));
      if (n === c.valueDeclaration) {
        const p = aT(n) && cN(n);
        p && !(fr(n) && xs(p) && (p.properties.length === 0 || J0(n.name)) && ((a = c.exports) != null && a.size)) && n.parent.parent.kind !== 246 && sv(Xc(p), u, n, p, void 0), c.declarations && c.declarations.length > 1 && kt(c.declarations, (g) => g !== n && PA(g) && !owe(g, n)) && Je(n.name, _.All_declarations_of_0_must_have_identical_modifiers, Ls(n.name));
      } else {
        const p = UD(bc(n));
        !Zo(u) && !Zo(p) && !zh(u, p) && !(c.flags & 67108864) && awe(c.valueDeclaration, u, n, p), aT(n) && n.initializer && sv(Xc(n.initializer), p, n, n.initializer, void 0), c.valueDeclaration && !owe(n, c.valueDeclaration) && Je(n.name, _.All_declarations_of_0_must_have_identical_modifiers, Ls(n.name));
      }
      n.kind !== 169 && n.kind !== 168 && (OD(n), (n.kind === 257 || n.kind === 205) && rat(n), jL(n, n.name));
    }
    function awe(n, a, c, u) {
      const p = Aa(c), g = c.kind === 169 || c.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 = Ls(p), R = Je(p, g, x, Le(a), Le(u));
      n && qo(R, Rr(n, _._0_was_also_declared_here, x));
    }
    function owe(n, a) {
      if (n.kind === 166 && a.kind === 257 || n.kind === 257 && a.kind === 166)
        return !0;
      if (nx(n) !== nx(a))
        return !1;
      const c = 888;
      return cx(n, c) === cx(a, c);
    }
    function noe(n) {
      var a, c;
      (a = yi) == null || a.push(yi.Phase.Check, "checkVariableDeclaration", { kind: n.kind, pos: n.pos, end: n.end, path: n.tracingPath }), Fst(n), d4(n), (c = yi) == null || c.pop();
    }
    function iat(n) {
      return Ost(n), d4(n);
    }
    function aat(n) {
      !sh(n) && !Aoe(n.declarationList) && Bst(n), ze(n.declarationList.declarations, mo);
    }
    function oat(n) {
      Yh(n), pa(n.expression);
    }
    function sat(n) {
      Yh(n);
      const a = $2(n.expression);
      roe(n.expression, a, n.thenStatement), mo(n.thenStatement), n.thenStatement.kind === 239 && Je(n.thenStatement, _.The_body_of_an_if_statement_cannot_be_the_empty_statement), mo(n.elseStatement);
    }
    function roe(n, a, c) {
      if (!W)
        return;
      u(n, c);
      function u(g, x) {
        for (g = Gs(g), p(g, x); br(g) && (g.operatorToken.kind === 56 || g.operatorToken.kind === 60); )
          g = Gs(g.left), p(g, x);
      }
      function p(g, x) {
        const R = BN(g) ? Gs(g.right) : g;
        if (hh(R))
          return;
        if (BN(R)) {
          u(R, x);
          return;
        }
        const M = R === g ? a : $2(R), J = Mr(R) && wke(R.expression);
        if (!(Cu(M) & 4194304) || J)
          return;
        const $ = ja(M, 0), ge = !!PD(M);
        if ($.length === 0 && !ge)
          return;
        const Ne = Ve(R) ? R : Mr(R) ? R.name : void 0, we = Ne && I_(Ne);
        if (!we && !ge)
          return;
        we && br(g.parent) && lat(g.parent, we) || we && x && cat(g, x, Ne, we) || (ge ? t0(R, !0, _.This_condition_will_always_return_true_since_this_0_is_always_defined, Cr(M)) : Je(R, _.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead));
      }
    }
    function cat(n, a, c, u) {
      return !!Ra(a, function p(g) {
        if (Ve(g)) {
          const x = I_(g);
          if (x && x === u) {
            if (Ve(n) || Ve(c) && br(c.parent))
              return !0;
            let R = c.parent, M = g.parent;
            for (; R && M; ) {
              if (Ve(R) && Ve(M) || R.kind === 108 && M.kind === 108)
                return I_(R) === I_(M);
              if (Mr(R) && Mr(M)) {
                if (I_(R.name) !== I_(M.name))
                  return !1;
                M = M.expression, R = R.expression;
              } else if (eo(R) && eo(M))
                M = M.expression, R = R.expression;
              else
                return !1;
            }
          }
        }
        return Ra(g, p);
      });
    }
    function lat(n, a) {
      for (; br(n) && n.operatorToken.kind === 55; ) {
        if (Ra(n.right, function u(p) {
          if (Ve(p)) {
            const g = I_(p);
            if (g && g === a)
              return !0;
          }
          return Ra(p, u);
        }))
          return !0;
        n = n.parent;
      }
      return !1;
    }
    function uat(n) {
      Yh(n), mo(n.statement), $2(n.expression);
    }
    function dat(n) {
      Yh(n), $2(n.expression), mo(n.statement);
    }
    function swe(n, a) {
      return n.flags & 16384 && Je(a, _.An_expression_of_type_void_cannot_be_tested_for_truthiness), n;
    }
    function $2(n, a) {
      return swe(pa(n, a), n);
    }
    function fat(n) {
      Yh(n) || n.initializer && n.initializer.kind === 258 && Aoe(n.initializer), n.initializer && (n.initializer.kind === 258 ? ze(n.initializer.declarations, noe) : pa(n.initializer)), n.condition && $2(n.condition), n.incrementor && pa(n.incrementor), mo(n.statement), n.locals && lv(n);
    }
    function _at(n) {
      iDe(n);
      const a = YM(n);
      if (n.awaitModifier ? a && Lc(a) ? En(n.awaitModifier, _.For_await_loops_cannot_be_used_inside_a_class_static_block) : (Fl(a) & 6) === 2 && P < 99 && fl(n, 16384) : Y.downlevelIteration && P < 2 && fl(n, 256), n.initializer.kind === 258)
        cwe(n);
      else {
        const c = n.initializer, u = f4(n);
        if (c.kind === 206 || c.kind === 207)
          HE(c, u || xe);
        else {
          const p = pa(c);
          DD(c, _.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 && sv(u, p, c, n.expression);
        }
      }
      mo(n.statement), n.locals && lv(n);
    }
    function pat(n) {
      iDe(n);
      const a = hae(pa(n.expression));
      if (n.initializer.kind === 258) {
        const c = n.initializer.declarations[0];
        c && Ja(c.name) && Je(c.name, _.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern), cwe(n);
      } else {
        const c = n.initializer, u = pa(c);
        c.kind === 206 || c.kind === 207 ? Je(c, _.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern) : To(Z$e(a), u) ? DD(c, _.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) : Je(c, _.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any);
      }
      (a === ht || !Nl(a, 126091264)) && Je(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, Le(a)), mo(n.statement), n.locals && lv(n);
    }
    function cwe(n) {
      const a = n.initializer;
      if (a.declarations.length >= 1) {
        const c = a.declarations[0];
        noe(c);
      }
    }
    function f4(n) {
      const a = n.awaitModifier ? 15 : 13;
      return uv(a, OL(n.expression), je, n.expression);
    }
    function uv(n, a, c, u) {
      return bs(a) ? a : ioe(n, a, c, u, !0) || ke;
    }
    function ioe(n, a, c, u, p) {
      const g = (n & 2) !== 0;
      if (a === ht) {
        loe(u, a, g);
        return;
      }
      const x = P >= 2, R = !x && Y.downlevelIteration, M = Y.noUncheckedIndexedAccess && !!(n & 128);
      if (x || R || g) {
        const ft = DV(a, n, x ? u : void 0);
        if (p && ft) {
          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 && ed(c, ft.nextType, u, Bt);
        }
        if (ft || x)
          return M ? ED(ft && ft.yieldType) : ft && ft.yieldType;
      }
      let J = a, $ = !1, ge = !1;
      if (n & 4) {
        if (J.flags & 1048576) {
          const ft = a.types, Bt = yn(ft, (Fn) => !(Fn.flags & 402653316));
          Bt !== ft && (J = Yr(Bt, 2));
        } else
          J.flags & 402653316 && (J = ht);
        if (ge = J !== a, ge && (P < 1 && u && (Je(u, _.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher), $ = !0), J.flags & 131072))
          return M ? ED(ue) : ue;
      }
      if (!C0(J)) {
        if (u && !$) {
          const ft = !!(n & 4) && !ge, [Bt, Fn] = we(ft, R);
          t0(u, Fn && !!PD(J), Bt, Le(J));
        }
        return ge ? M ? ED(ue) : ue : void 0;
      }
      const Ne = Hg(J, pt);
      if (ge && Ne)
        return Ne.flags & 402653316 && !Y.noUncheckedIndexedAccess ? ue : Yr(M ? [Ne, ue, je] : [Ne, ue], 2);
      return n & 128 ? ED(Ne) : Ne;
      function we(ft, Bt) {
        var Fn;
        return Bt ? ft ? [_.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] : aoe(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] : mat((Fn = a.symbol) == null ? void 0 : Fn.escapedName) ? [_.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, !0] : ft ? [_.Type_0_is_not_an_array_type_or_a_string_type, !0] : [_.Type_0_is_not_an_array_type, !0];
      }
    }
    function mat(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 aoe(n, a, c, u) {
      if (bs(c))
        return;
      const p = DV(c, n, u);
      return p && p[kme(a)];
    }
    function Qg(n = ht, a = ht, c = he) {
      if (n.flags & 67359327 && a.flags & 180227 && c.flags & 180227) {
        const u = n_([n, a, c]);
        let p = fe.get(u);
        return p || (p = { yieldType: n, returnType: a, nextType: c }, fe.set(u, p)), p;
      }
      return { yieldType: n, returnType: a, nextType: c };
    }
    function lwe(n) {
      let a, c, u;
      for (const p of n)
        if (!(p === void 0 || p === It)) {
          if (p === jt)
            return jt;
          a = Bn(a, p.yieldType), c = Bn(c, p.returnType), u = Bn(u, p.nextType);
        }
      return a || c || u ? Qg(a && Yr(a), c && Yr(c), u && Io(u)) : It;
    }
    function wV(n, a) {
      return n[a];
    }
    function oh(n, a, c) {
      return n[a] = c;
    }
    function DV(n, a, c) {
      var u, p;
      if (bs(n))
        return jt;
      if (!(n.flags & 1048576)) {
        const J = c ? { errors: void 0 } : void 0, $ = uwe(n, a, c, J);
        if ($ === It) {
          if (c) {
            const ge = loe(c, n, !!(a & 2));
            J != null && J.errors && qo(ge, ...J.errors);
          }
          return;
        } else if ((u = J == null ? void 0 : J.errors) != null && u.length)
          for (const ge of J.errors)
            Xo.add(ge);
        return $;
      }
      const g = a & 2 ? "iterationTypesOfAsyncIterable" : "iterationTypesOfIterable", x = wV(n, g);
      if (x)
        return x === It ? void 0 : x;
      let R;
      for (const J of n.types) {
        const $ = c ? { errors: void 0 } : void 0, ge = uwe(J, a, c, $);
        if (ge === It) {
          if (c) {
            const Ne = loe(c, n, !!(a & 2));
            $ != null && $.errors && qo(Ne, ...$.errors);
          }
          oh(n, g, It);
          return;
        } else if ((p = $ == null ? void 0 : $.errors) != null && p.length)
          for (const Ne of $.errors)
            Xo.add(Ne);
        R = Bn(R, ge);
      }
      const M = R ? lwe(R) : It;
      return oh(n, g, M), M === It ? void 0 : M;
    }
    function ooe(n, a) {
      if (n === It)
        return It;
      if (n === jt)
        return jt;
      const { yieldType: c, returnType: u, nextType: p } = n;
      return a && Vre(!0), Qg(WE(c, a) || ke, WE(u, a) || ke, p);
    }
    function uwe(n, a, c, u) {
      if (bs(n))
        return jt;
      let p = !1;
      if (a & 2) {
        const g = soe(n, xt) || fwe(n, xt);
        if (g)
          if (g === It && c)
            p = !0;
          else
            return a & 8 ? ooe(g, c) : g;
      }
      if (a & 1) {
        let g = soe(n, pn) || fwe(n, pn);
        if (g)
          if (g === It && c)
            p = !0;
          else if (a & 2) {
            if (g !== It)
              return g = ooe(g, c), p ? g : oh(n, "iterationTypesOfAsyncIterable", g);
          } else
            return g;
      }
      if (a & 2) {
        const g = coe(n, xt, c, u, p);
        if (g !== It)
          return g;
      }
      if (a & 1) {
        let g = coe(n, pn, c, u, p);
        if (g !== It)
          return a & 2 ? (g = ooe(g, c), p ? g : oh(n, "iterationTypesOfAsyncIterable", g)) : g;
      }
      return It;
    }
    function soe(n, a) {
      return wV(n, a.iterableCacheKey);
    }
    function dwe(n, a) {
      const c = soe(n, a) || coe(n, a, void 0, void 0, !1);
      return c === It ? ot : c;
    }
    function fwe(n, a) {
      let c;
      if (y0(n, c = a.getGlobalIterableType(!1)) || y0(n, c = a.getGlobalIterableIteratorType(!1))) {
        const [u] = _s(n), { returnType: p, nextType: g } = dwe(c, a);
        return oh(n, a.iterableCacheKey, Qg(a.resolveIterationType(u, void 0) || u, a.resolveIterationType(p, void 0) || p, g));
      }
      if (y0(n, a.getGlobalGeneratorType(!1))) {
        const [u, p, g] = _s(n);
        return oh(n, a.iterableCacheKey, Qg(a.resolveIterationType(u, void 0) || u, a.resolveIterationType(p, void 0) || p, g));
      }
    }
    function hat(n) {
      const a = eCe(!1), c = a && ul(or(a), oc(n));
      return c && Hh(c) ? dm(c) : `__@${n}`;
    }
    function coe(n, a, c, u, p) {
      var g;
      const x = so(n, hat(a.iteratorSymbolName)), R = x && !(x.flags & 16777216) ? or(x) : void 0;
      if (bs(R))
        return p ? jt : oh(n, a.iterableCacheKey, jt);
      const M = R ? ja(R, 0) : void 0;
      if (!kt(M))
        return p ? It : oh(n, a.iterableCacheKey, It);
      const J = Io(en(M, ms)), $ = (g = _we(J, a, c, u, p)) != null ? g : It;
      return p ? $ : oh(n, a.iterableCacheKey, $);
    }
    function loe(n, a, c) {
      const u = c ? _.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 = !!PD(a) || !c && AO(n.parent) && n.parent.expression === n && gU(!1) !== xo && To(a, gU(!1));
      return t0(n, p, u, Le(a));
    }
    function gat(n, a, c, u) {
      return _we(n, a, c, u, !1);
    }
    function _we(n, a, c, u, p) {
      if (bs(n))
        return jt;
      let g = pwe(n, a) || yat(n, a);
      return g === It && c && (g = void 0, p = !0), g ?? (g = hwe(n, a, c, u, p)), g === It ? void 0 : g;
    }
    function pwe(n, a) {
      return wV(n, a.iteratorCacheKey);
    }
    function yat(n, a) {
      const c = a.getGlobalIterableIteratorType(!1);
      if (y0(n, c)) {
        const [u] = _s(n), p = pwe(c, a) || hwe(c, a, void 0, void 0, !1), { returnType: g, nextType: x } = p === It ? ot : p;
        return oh(n, a.iteratorCacheKey, Qg(u, g, x));
      }
      if (y0(n, a.getGlobalIteratorType(!1)) || y0(n, a.getGlobalGeneratorType(!1))) {
        const [u, p, g] = _s(n);
        return oh(n, a.iteratorCacheKey, Qg(u, p, g));
      }
    }
    function mwe(n, a) {
      const c = ul(n, "done") || it;
      return To(a === 0 ? it : Pe, c);
    }
    function vat(n) {
      return mwe(n, 0);
    }
    function bat(n) {
      return mwe(n, 1);
    }
    function Eat(n) {
      if (bs(n))
        return jt;
      const a = wV(n, "iterationTypesOfIteratorResult");
      if (a)
        return a;
      if (y0(n, f$e(!1))) {
        const x = _s(n)[0];
        return oh(n, "iterationTypesOfIteratorResult", Qg(x, void 0, void 0));
      }
      if (y0(n, _$e(!1))) {
        const x = _s(n)[0];
        return oh(n, "iterationTypesOfIteratorResult", Qg(void 0, x, void 0));
      }
      const c = dl(n, vat), u = c !== ht ? ul(c, "value") : void 0, p = dl(n, bat), g = p !== ht ? ul(p, "value") : void 0;
      return !u && !g ? oh(n, "iterationTypesOfIteratorResult", It) : oh(n, "iterationTypesOfIteratorResult", Qg(u, g || Rt, void 0));
    }
    function uoe(n, a, c, u, p) {
      var g, x, R, M, J, $;
      const ge = so(n, c);
      if (!ge && c !== "next")
        return;
      const Ne = ge && !(c === "next" && ge.flags & 16777216) ? c === "next" ? or(ge) : i_(or(ge), 2097152) : void 0;
      if (bs(Ne))
        return c === "next" ? jt : Q;
      const we = Ne ? ja(Ne, 0) : rt;
      if (we.length === 0) {
        if (u) {
          const on = c === "next" ? a.mustHaveANextMethodDiagnostic : a.mustBeAMethodDiagnostic;
          p ? ((g = p.errors) != null || (p.errors = []), p.errors.push(Rr(u, on, c))) : Je(u, on, c);
        }
        return c === "next" ? It : void 0;
      }
      if (Ne != null && Ne.symbol && we.length === 1) {
        const on = a.getGlobalGeneratorType(!1), Un = a.getGlobalIteratorType(!1), Kn = ((R = (x = on.symbol) == null ? void 0 : x.members) == null ? void 0 : R.get(c)) === Ne.symbol, $r = !Kn && ((J = (M = Un.symbol) == null ? void 0 : M.members) == null ? void 0 : J.get(c)) === Ne.symbol;
        if (Kn || $r) {
          const ti = Kn ? on : Un, { mapper: da } = Ne;
          return Qg(x0(ti.typeParameters[0], da), x0(ti.typeParameters[1], da), c === "next" ? x0(ti.typeParameters[2], da) : void 0);
        }
      }
      let ft, Bt;
      for (const on of we)
        c !== "throw" && kt(on.parameters) && (ft = Bn(ft, up(on, 0))), Bt = Bn(Bt, ms(on));
      let Fn, An;
      if (c !== "throw") {
        const on = ft ? Yr(ft) : he;
        if (c === "next")
          An = on;
        else if (c === "return") {
          const Un = a.resolveIterationType(on, u) || ke;
          Fn = Bn(Fn, Un);
        }
      }
      let Yn;
      const hn = Bt ? Io(Bt) : ht, xn = a.resolveIterationType(hn, u) || ke, yr = Eat(xn);
      return yr === It ? (u && (p ? (($ = p.errors) != null || (p.errors = []), p.errors.push(Rr(u, a.mustHaveAValueDiagnostic, c))) : Je(u, a.mustHaveAValueDiagnostic, c)), Yn = ke, Fn = Bn(Fn, ke)) : (Yn = yr.yieldType, Fn = Bn(Fn, yr.returnType)), Qg(Yn, Yr(Fn), An);
    }
    function hwe(n, a, c, u, p) {
      const g = lwe([
        uoe(n, a, "next", c, u),
        uoe(n, a, "return", c, u),
        uoe(n, a, "throw", c, u)
      ]);
      return p ? g : oh(n, a.iteratorCacheKey, g);
    }
    function zb(n, a, c) {
      if (bs(a))
        return;
      const u = gwe(a, c);
      return u && u[kme(n)];
    }
    function gwe(n, a) {
      if (bs(n))
        return jt;
      const c = a ? 2 : 1, u = a ? xt : pn;
      return DV(n, c, void 0) || gat(n, u, void 0, void 0);
    }
    function Tat(n) {
      Yh(n) || Nst(n);
    }
    function RV(n, a) {
      const c = !!(a & 1), u = !!(a & 2);
      if (c) {
        const p = zb(1, n, u);
        return p ? u ? $g(UL(p)) : p : xe;
      }
      return u ? $g(n) || xe : n;
    }
    function ywe(n, a) {
      const c = RV(a, Fl(n));
      return !!c && _c(c, 16387);
    }
    function Sat(n) {
      var a;
      if (Yh(n))
        return;
      const c = YM(n);
      if (c && Lc(c)) {
        Ol(n, _.A_return_statement_cannot_be_used_inside_a_class_static_block);
        return;
      }
      if (!c) {
        Ol(n, _.A_return_statement_can_only_be_used_within_a_function_body);
        return;
      }
      const u = Np(c), p = ms(u), g = Fl(c);
      if (W || n.expression || p.flags & 131072) {
        const x = n.expression ? Xc(n.expression) : je;
        if (c.kind === 175)
          n.expression && Je(n, _.Setters_cannot_return_a_value);
        else if (c.kind === 173)
          n.expression && !sv(x, p, n, n.expression) && Je(n, _.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);
        else if (P2(c)) {
          const R = (a = RV(p, g)) != null ? a : p, M = g & 2 ? FD(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 && sv(M, R, n, n.expression);
        }
      } else
        c.kind !== 173 && Y.noImplicitReturns && !ywe(c, p) && Je(n, _.Not_all_code_paths_return_a_value);
    }
    function xat(n) {
      Yh(n) || n.flags & 32768 && Ol(n, _.with_statements_are_not_allowed_in_an_async_function_block), pa(n.expression);
      const a = er(n);
      if (!qb(a)) {
        const c = py(a, n.pos).start, u = n.statement.pos;
        Jb(a, c, u - c, _.The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any);
      }
    }
    function Aat(n) {
      Yh(n);
      let a, c = !1;
      const u = pa(n.expression);
      ze(n.caseBlock.clauses, (p) => {
        p.kind === 293 && !c && (a === void 0 ? a = p : (En(p, _.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement), c = !0)), p.kind === 292 && i(g(p)), ze(p.statements, mo), Y.noFallthroughCasesInSwitch && p.fallthroughFlowNode && GP(p.fallthroughFlowNode) && Je(p, _.Fallthrough_case_in_switch);
        function g(x) {
          return () => {
            const R = pa(x.expression);
            Wae(u, R) || $Ce(R, u, x.expression, void 0);
          };
        }
      }), n.caseBlock.locals && lv(n.caseBlock);
    }
    function Cat(n) {
      Yh(n) || rr(n.parent, (a) => qa(a) ? "quit" : a.kind === 253 && a.label.escapedText === n.label.escapedText ? (En(n.label, _.Duplicate_label_0, El(n.label)), !0) : !1), mo(n.statement);
    }
    function Lat(n) {
      Yh(n) || Ve(n.expression) && !n.expression.escapedText && Xst(n, _.Line_break_not_permitted_here), n.expression && pa(n.expression);
    }
    function Iat(n) {
      Yh(n), kV(n.tryBlock);
      const a = n.catchClause;
      if (a) {
        if (a.variableDeclaration) {
          const c = a.variableDeclaration;
          d4(c);
          const u = Kl(c);
          if (u) {
            const p = ui(u);
            p && !(p.flags & 3) && Ol(u, _.Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified);
          } else if (c.initializer)
            Ol(c.initializer, _.Catch_clause_variable_cannot_have_an_initializer);
          else {
            const p = a.block.locals;
            p && LI(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);
            });
          }
        }
        kV(a.block);
      }
      n.finallyBlock && kV(n.finallyBlock);
    }
    function NV(n, a, c) {
      const u = Su(n);
      if (u.length === 0)
        return;
      for (const g of ev(n))
        c && g.flags & 4194304 || vwe(n, g, TL(g, 8576, !0), g0(g));
      const p = a.valueDeclaration;
      if (p && li(p)) {
        for (const g of p.members)
          if (!za(g) && !R2(g)) {
            const x = Ir(g);
            vwe(n, x, Lu(g.name.expression), g0(x));
          }
      }
      if (u.length > 1)
        for (const g of u)
          kat(n, g);
    }
    function vwe(n, a, c, u) {
      const p = a.valueDeclaration, g = Aa(p);
      if (g && Di(g))
        return;
      const x = Are(n, c), R = Zr(n) & 2 ? Sc(n.symbol, 261) : void 0, M = p && p.kind === 223 || g && g.kind === 164 ? p : void 0, J = pd(a) === n.symbol ? p : void 0;
      for (const $ of x) {
        const ge = $.declaration && pd(Ir($.declaration)) === n.symbol ? $.declaration : void 0, Ne = J || ge || (R && !kt(Oo(n), (we) => !!Db(we, a.escapedName) && !!Hg(we, $.keyType)) ? R : void 0);
        if (Ne && !To(u, $.type)) {
          const we = rE(Ne, _.Property_0_of_type_1_is_not_assignable_to_2_index_type_3, S(a), Le(u), Le($.keyType), Le($.type));
          M && Ne !== M && qo(we, Rr(M, _._0_is_declared_here, S(a))), Xo.add(we);
        }
      }
    }
    function kat(n, a) {
      const c = a.declaration, u = Are(n, a.keyType), p = Zr(n) & 2 ? Sc(n.symbol, 261) : void 0, g = c && pd(Ir(c)) === n.symbol ? c : void 0;
      for (const x of u) {
        if (x === a)
          continue;
        const R = x.declaration && pd(Ir(x.declaration)) === n.symbol ? x.declaration : void 0, M = g || R || (p && !kt(Oo(n), (J) => !!ih(J, a.keyType) && !!Hg(J, x.keyType)) ? p : void 0);
        M && !To(a.type, x.type) && Je(M, _._0_index_type_1_is_not_assignable_to_2_index_type_3, Le(a.keyType), Le(a.type), Le(x.keyType), Le(x.type));
      }
    }
    function HL(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":
          Je(n, a, n.escapedText);
      }
    }
    function wat(n) {
      P >= 1 && n.escapedText === "Object" && (de < 5 || er(n).impliedNodeFormat === 1) && Je(n, _.Class_name_cannot_be_Object_when_targeting_ES5_with_module_0, tM[de]);
    }
    function Dat(n) {
      const a = yn(f1(n), tm);
      if (!Ie(a))
        return;
      const c = fr(n), u = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Set();
      if (ze(n.parameters, ({ name: x }, R) => {
        Ve(x) && u.add(x.escapedText), Ja(x) && p.add(R);
      }), Ire(n)) {
        const x = a.length - 1, R = a[x];
        c && R && Ve(R.name) && R.typeExpression && R.typeExpression.type && !u.has(R.name.escapedText) && !p.has(x) && !Gf(ui(R.typeExpression.type)) && Je(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, Pr(R.name));
      } else
        ze(a, ({ name: x, isNameFirst: R }, M) => {
          p.has(M) || Ve(x) && u.has(x.escapedText) || (Sd(x) ? c && Je(x, _.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, Ef(x), Ef(x.left)) : R || im(c, x, _.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name, Pr(x)));
        });
    }
    function _4(n) {
      let a = !1;
      if (n)
        for (let u = 0; u < n.length; u++) {
          const p = n[u];
          Mke(p), i(c(p, u));
        }
      function c(u, p) {
        return () => {
          u.default ? (a = !0, Rat(u.default, n, p)) : a && Je(u, _.Required_type_parameters_may_not_follow_optional_type_parameters);
          for (let g = 0; g < p; g++)
            n[g].symbol === u.symbol && Je(u.name, _.Duplicate_identifier_0, Ls(u.name));
        };
      }
    }
    function Rat(n, a, c) {
      u(n);
      function u(p) {
        if (p.kind === 180) {
          const g = Fre(p);
          if (g.flags & 262144)
            for (let x = c; x < a.length; x++)
              g.symbol === Ir(a[x]) && Je(p, _.Type_parameter_defaults_can_only_reference_previously_declared_type_parameters);
        }
        Ra(p, u);
      }
    }
    function bwe(n) {
      if (n.declarations && n.declarations.length === 1)
        return;
      const a = Vi(n);
      if (!a.typeParametersChecked) {
        a.typeParametersChecked = !0;
        const c = Uat(n);
        if (!c || c.length <= 1)
          return;
        const u = Fs(n);
        if (!Ewe(c, u.localTypeParameters, Ev)) {
          const p = S(n);
          for (const g of c)
            Je(g.name, _.All_declarations_of_0_must_have_identical_type_parameters, p);
        }
      }
    }
    function Ewe(n, a, c) {
      const u = Ie(a), p = _m(a);
      for (const g of n) {
        const x = c(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 = EA(J), Ne = ge && ui(ge), we = Tu($);
          if (Ne && we && !zh(Ne, we))
            return !1;
          const ft = J.default && ui(J.default), Bt = kE($);
          if (ft && Bt && !zh(ft, Bt))
            return !1;
        }
      }
      return !0;
    }
    function Twe(n) {
      var a;
      const c = !ne && P < 99 && b1(!1, n), u = P <= 9, p = !ye || P < 9;
      if (c || u)
        for (const g of n.members) {
          if (c && $W(!1, g, n))
            return (a = zl(vv(n))) != null ? a : n;
          if (u) {
            if (Lc(g))
              return g;
            if (za(g) && (Ju(g) || p && v8(g)))
              return g;
          }
        }
    }
    function Nat(n) {
      var a;
      if (n.name)
        return;
      const c = e_e(n);
      if (!_z(c))
        return;
      const u = !ne && P < 99;
      let p;
      u && b1(!1, n) ? p = (a = zl(vv(n))) != null ? a : n : p = Twe(n), p && (fl(p, 8388608), (Vl(c) || Za(c) || us(c)) && Ts(c.name) && fl(p, 16777216));
    }
    function Oat(n) {
      return Swe(n), zL(n), Nat(n), or(Ir(n));
    }
    function Pat(n) {
      ze(n.members, mo), lv(n);
    }
    function Mat(n) {
      const a = cn(n.modifiers, Nu);
      ne && a && kt(n.members, (c) => pl(c) && Ju(c)) && En(a, _.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator), !n.name && !Kr(n, 1024) && Ol(n, _.A_class_declaration_without_the_default_modifier_must_have_a_name), Swe(n), ze(n.members, mo), lv(n);
    }
    function Swe(n) {
      yst(n), s4(n), jL(n, n.name), _4(Ev(n)), OD(n);
      const a = Ir(n), c = Fs(a), u = Mf(c), p = or(a);
      bwe(a), CV(a), Qrt(n), !!(n.flags & 16777216) || Zrt(n);
      const x = Jp(n);
      if (x) {
        ze(x.typeArguments, mo), P < 2 && fl(x.parent, 1);
        const J = T1(n);
        J && J !== x && pa(J.expression);
        const $ = Oo(c);
        $.length && i(() => {
          const ge = $[0], Ne = ni(c), we = Hu(Ne);
          if (Bat(we, x), mo(x.expression), kt(x.typeArguments)) {
            ze(x.typeArguments, mo);
            for (const Bt of qr(we, x.typeArguments, x))
              if (!Hke(x, Bt.typeParameters))
                break;
          }
          const ft = Mf(ge, c.thisType);
          if (ed(u, ft, void 0) ? ed(p, WCe(we), n.name || n, _.Class_static_side_0_incorrectly_extends_base_class_static_side_1) : Cwe(n, u, ft, _.Class_0_incorrectly_extends_base_class_1), Ne.flags & 8650752 && (sP(p) ? ja(Ne, 1).some((Fn) => Fn.flags & 4) && !Kr(n, 256) && Je(n.name || n, _.A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract) : Je(n.name || n, _.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any)), !(we.symbol && we.symbol.flags & 32) && !(Ne.flags & 8650752)) {
            const Bt = Gr(we, x.typeArguments, x);
            ze(Bt, (Fn) => !Fp(Fn.declaration) && !zh(ms(Fn), ge)) && Je(x.expression, _.Base_constructors_must_all_have_the_same_return_type);
          }
          Vat(c, ge);
        });
      }
      Fat(n, c, u, p);
      const R = qA(n);
      if (R)
        for (const J of R)
          (!jc(J.expression) || pu(J.expression)) && Je(J.expression, _.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments), $ae(J), i(M(J));
      i(() => {
        NV(c, a), NV(p, a, !0), Kae(n), Wat(n);
      });
      function M(J) {
        return () => {
          const $ = cp(ui(J));
          if (!Zo($))
            if (nh($)) {
              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 = Mf($, c.thisType);
              ed(u, Ne, void 0) || Cwe(n, u, Ne, ge);
            } else
              Je(J, _.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members);
        };
      }
    }
    function Fat(n, a, c, u) {
      const g = Jp(n) && Oo(a), x = g != null && g.length ? Mf(ss(g), a.thisType) : void 0, R = ni(a);
      for (const M of n.members)
        Dz(M) || (Hc(M) && ze(M.parameters, (J) => {
          Qd(J, M) && xwe(n, u, R, x, a, c, J, !0);
        }), xwe(n, u, R, x, a, c, M, !1));
    }
    function xwe(n, a, c, u, p, g, x, R, M = !0) {
      const J = x.name && I_(x.name) || I_(x);
      return J ? Awe(n, a, c, u, p, g, wz(x), C1(x), za(x), R, Oc(J), M ? x : void 0) : 0;
    }
    function Awe(n, a, c, u, p, g, x, R, M, J, $, ge) {
      const Ne = fr(n), we = !!(n.flags & 16777216);
      if (u && (x || Y.noImplicitOverride)) {
        const ft = oc($), Bt = M ? a : g, Fn = M ? c : u, An = so(Bt, ft), Yn = so(Fn, ft), hn = Le(u);
        if (An && !Yn && x) {
          if (ge) {
            const xn = FIe($, Fn);
            xn ? Je(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, hn, S(xn)) : Je(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, hn);
          }
          return 2;
        } else if (An && (Yn != null && Yn.declarations) && Y.noImplicitOverride && !we) {
          const xn = kt(Yn.declarations, C1);
          if (x)
            return 0;
          if (xn) {
            if (R && xn)
              return ge && Je(ge, _.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, hn), 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;
              Je(ge, yr, hn);
            }
            return 1;
          }
        }
      } else if (x) {
        if (ge) {
          const ft = Le(p);
          Je(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, ft);
        }
        return 2;
      }
      return 0;
    }
    function Cwe(n, a, c, u) {
      let p = !1;
      for (const g of n.members) {
        if (za(g))
          continue;
        const x = g.name && I_(g.name) || I_(g);
        if (x) {
          const R = so(a, x.escapedName), M = so(c, x.escapedName);
          if (R && M) {
            const J = () => ka(void 0, _.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2, S(x), Le(a), Le(c));
            ed(or(R), or(M), g.name || g, void 0, J) || (p = !0);
          }
        }
      }
      p || ed(a, c, n.name || n, u);
    }
    function Bat(n, a) {
      const c = ja(n, 1);
      if (c.length) {
        const u = c[0].declaration;
        if (u && Pd(u, 8)) {
          const p = dg(n.symbol);
          moe(a, p) || Je(a, _.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private, Oh(n.symbol));
        }
      }
    }
    function Gat(n, a, c) {
      if (!a.name)
        return 0;
      const u = Ir(n), p = Fs(u), g = Mf(p), x = or(u), M = Jp(n) && Oo(p), J = M != null && M.length ? Mf(ss(M), p.thisType) : void 0, $ = ni(p), ge = a.parent ? wz(a) : Kr(a, 16384);
      return Awe(n, x, $, J, p, g, ge, C1(a), za(a), !1, Oc(c));
    }
    function Q2(n) {
      return Cc(n) & 1 ? n.links.target : n;
    }
    function Uat(n) {
      return yn(n.declarations, (a) => a.kind === 260 || a.kind === 261);
    }
    function Vat(n, a) {
      var c, u, p, g;
      const x = fs(a);
      e:
        for (const R of x) {
          const M = Q2(R);
          if (M.flags & 4194304)
            continue;
          const J = Db(n, M.escapedName);
          if (!J)
            continue;
          const $ = Q2(J), ge = Kf(M);
          if (D.assert(!!$, "derived should point to something, even if it is the base class' declaration."), $ === M) {
            const Ne = dg(n.symbol);
            if (ge & 256 && (!Ne || !Kr(Ne, 256))) {
              for (const we of Oo(n)) {
                if (we === a)
                  continue;
                const ft = Db(we, M.escapedName), Bt = ft && Q2(ft);
                if (Bt && Bt !== M)
                  continue e;
              }
              Ne.kind === 228 ? Je(Ne, _.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1, S(R), Le(a)) : Je(Ne, _.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2, Le(n), S(R), Le(a));
            }
          } else {
            const Ne = Kf($);
            if (ge & 8 || Ne & 8)
              continue;
            let we;
            const ft = M.flags & 98308, Bt = $.flags & 98308;
            if (ft && Bt) {
              if ((Cc(M) & 6 ? (c = M.declarations) != null && c.some((Yn) => Lwe(Yn, ge)) : (u = M.declarations) != null && u.every((Yn) => Lwe(Yn, ge))) || Cc(M) & 262144 || $.valueDeclaration && br($.valueDeclaration))
                continue;
              const Fn = ft !== 4 && Bt === 4;
              if (Fn || ft === 4 && Bt !== 4) {
                const Yn = Fn ? _._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;
                Je(Aa($.valueDeclaration) || $.valueDeclaration, Yn, S(M), Le(a), Le(n));
              } else if (ye) {
                const Yn = (p = $.declarations) == null ? void 0 : p.find((hn) => hn.kind === 169 && !hn.initializer);
                if (Yn && !($.flags & 33554432) && !(ge & 256) && !(Ne & 256) && !((g = $.declarations) != null && g.some((hn) => !!(hn.flags & 16777216)))) {
                  const hn = u0(dg(n.symbol)), xn = Yn.name;
                  if (Yn.exclamationToken || !hn || !Ve(xn) || !W || !kwe(xn, n, hn)) {
                    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;
                    Je(Aa($.valueDeclaration) || $.valueDeclaration, yr, S(M), Le(a));
                  }
                }
              }
              continue;
            } else if (pae(M)) {
              if (pae($) || $.flags & 4)
                continue;
              D.assert(!!($.flags & 98304)), we = _.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;
            } else
              M.flags & 98304 ? we = _.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function : we = _.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function;
            Je(Aa($.valueDeclaration) || $.valueDeclaration, we, Le(a), S(M), Le(n));
          }
        }
    }
    function Lwe(n, a) {
      return a & 256 && (!Za(n) || !n.initializer) || Qu(n.parent);
    }
    function jat(n, a, c) {
      if (!Ie(a))
        return c;
      const u = /* @__PURE__ */ new Map();
      ze(c, (p) => {
        u.set(p.escapedName, p);
      });
      for (const p of a) {
        const g = fs(Mf(p, n.thisType));
        for (const x of g) {
          const R = u.get(x.escapedName);
          R && x.parent === R.parent && u.delete(x.escapedName);
        }
      }
      return Do(u.values());
    }
    function Hat(n, a) {
      const c = Oo(n);
      if (c.length < 2)
        return !0;
      const u = /* @__PURE__ */ new Map();
      ze(ore(n).declaredProperties, (g) => {
        u.set(g.escapedName, { prop: g, containingType: n });
      });
      let p = !0;
      for (const g of c) {
        const x = fs(Mf(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 && !oZe(M.prop, R)) {
            p = !1;
            const $ = Le(M.containingType), ge = Le(g);
            let Ne = ka(void 0, _.Named_property_0_of_types_1_and_2_are_not_identical, S(R), $, ge);
            Ne = ka(Ne, _.Interface_0_cannot_simultaneously_extend_types_1_and_2, Le(n), $, ge), Xo.add(ag(er(a), a, Ne));
          }
        }
      }
      return p;
    }
    function Wat(n) {
      if (!W || !ve || n.flags & 16777216)
        return;
      const a = u0(n);
      for (const c of n.members)
        if (!(Ru(c) & 2) && !za(c) && Iwe(c)) {
          const u = c.name;
          if (Ve(u) || Di(u) || Ts(u)) {
            const p = or(Ir(c));
            p.flags & 3 || xL(p) || (!a || !kwe(u, p, a)) && Je(c.name, _.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor, Ls(u));
          }
        }
    }
    function Iwe(n) {
      return n.kind === 169 && !C1(n) && !n.exclamationToken && !n.initializer;
    }
    function zat(n, a, c, u, p) {
      for (const g of c)
        if (g.pos >= u && g.pos <= p) {
          const x = N.createPropertyAccessExpression(N.createThis(), n);
          Bo(x.expression, x), Bo(x, g), x.flowNode = g.returnFlowNode;
          const R = k0(x, a, Kg(a));
          if (!xL(R))
            return !0;
        }
      return !1;
    }
    function kwe(n, a, c) {
      const u = Ts(n) ? N.createElementAccessExpression(N.createThis(), n.expression) : N.createPropertyAccessExpression(N.createThis(), n);
      Bo(u.expression, u), Bo(u, c), u.flowNode = c.returnFlowNode;
      const p = k0(u, a, Kg(a));
      return !xL(p);
    }
    function qat(n) {
      sh(n) || Ast(n), _4(n.typeParameters), i(() => {
        HL(n.name, _.Interface_name_cannot_be_0), OD(n);
        const a = Ir(n);
        bwe(a);
        const c = Sc(a, 261);
        if (n === c) {
          const u = Fs(a), p = Mf(u);
          if (Hat(u, n.name)) {
            for (const g of Oo(u))
              ed(p, Mf(g, u.thisType), n.name, _.Interface_0_incorrectly_extends_interface_1);
            NV(u, a);
          }
        }
        Gke(n);
      }), ze(UI(n), (a) => {
        (!jc(a.expression) || pu(a.expression)) && Je(a.expression, _.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments), $ae(a);
      }), ze(n.members, mo), i(() => {
        Kae(n), lv(n);
      });
    }
    function Jat(n) {
      sh(n), HL(n.name, _.Type_alias_name_cannot_be_0), OD(n), _4(n.typeParameters), n.type.kind === 139 ? (!m8.has(n.name.escapedText) || Ie(n.typeParameters) !== 1) && Je(n.type, _.The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types) : (mo(n.type), lv(n));
    }
    function wwe(n) {
      const a = zr(n);
      if (!(a.flags & 1024)) {
        a.flags |= 1024;
        let c = 0;
        for (const u of n.members) {
          const p = Kat(u, c);
          zr(u).enumMemberValue = p, c = typeof p == "number" ? p + 1 : void 0;
        }
      }
    }
    function Kat(n, a) {
      if (ZR(n.name))
        Je(n.name, _.Computed_property_names_are_not_allowed_in_enums);
      else {
        const c = DA(n.name);
        Eh(c) && !_k(c) && Je(n.name, _.An_enum_member_cannot_have_a_numeric_name);
      }
      if (n.initializer)
        return Xat(n);
      if (!(n.parent.flags & 16777216 && !v1(n.parent))) {
        if (a !== void 0)
          return a;
        Je(n.name, _.Enum_member_must_have_initializer);
      }
    }
    function Xat(n) {
      const a = v1(n.parent), c = n.initializer, u = WL(c, n);
      return u !== void 0 ? a && typeof u == "number" && !isFinite(u) && Je(c, isNaN(u) ? _.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN : _.const_enum_member_initializer_was_evaluated_to_a_non_finite_value) : a ? Je(c, _.const_enum_member_initializers_must_be_constant_expressions) : n.parent.flags & 16777216 ? Je(c, _.In_ambient_enum_declarations_member_initializer_must_be_constant_expression) : ed(pa(c), pt, c, _.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values), u;
    }
    function WL(n, a) {
      switch (n.kind) {
        case 221:
          const c = WL(n.operand, a);
          if (typeof c == "number")
            switch (n.operator) {
              case 39:
                return c;
              case 40:
                return -c;
              case 54:
                return ~c;
            }
          break;
        case 223:
          const u = WL(n.left, a), p = WL(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 Yat(n, a);
        case 8:
          return Coe(n), +n.text;
        case 214:
          return WL(n.expression, a);
        case 79:
          if (_k(n.escapedText))
            return +n.escapedText;
        case 208:
          if (jc(n)) {
            const x = Dc(n, 111551, !0);
            if (x) {
              if (x.flags & 8)
                return Dwe(n, x, a);
              if (DL(x)) {
                const R = x.valueDeclaration;
                if (R && !R.type && R.initializer && R !== a && Ig(R, a))
                  return WL(R.initializer, R);
              }
            }
          }
          break;
        case 209:
          const g = n.expression;
          if (jc(g) && Es(n.argumentExpression)) {
            const x = Dc(g, 111551, !0);
            if (x && x.flags & 384) {
              const R = oc(n.argumentExpression.text), M = x.exports.get(R);
              if (M)
                return Dwe(n, M, a);
            }
          }
          break;
      }
    }
    function Dwe(n, a, c) {
      const u = a.valueDeclaration;
      if (!u || u === c) {
        Je(n, _.Property_0_is_used_before_being_assigned, S(a));
        return;
      }
      return Ig(u, c) ? jV(u) : (Je(n, _.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums), 0);
    }
    function Yat(n, a) {
      let c = n.head.text;
      for (const u of n.templateSpans) {
        const p = WL(u.expression, a);
        if (p === void 0)
          return;
        c += p, c += u.literal.text;
      }
      return c;
    }
    function $at(n) {
      i(() => Qat(n));
    }
    function Qat(n) {
      sh(n), jL(n, n.name), OD(n), n.members.forEach(Zat), wwe(n);
      const a = Ir(n), c = Sc(a, n.kind);
      if (n === c) {
        if (a.declarations && a.declarations.length > 1) {
          const p = v1(n);
          ze(a.declarations, (g) => {
            Z0(g) && v1(g) !== p && Je(Aa(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 ? Je(x.name, _.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element) : u = !0);
        });
      }
    }
    function Zat(n) {
      Di(n.name) && Je(n, _.An_enum_member_cannot_be_named_with_a_private_identifier), n.initializer && pa(n.initializer);
    }
    function eot(n) {
      const a = n.declarations;
      if (a) {
        for (const c of a)
          if ((c.kind === 260 || c.kind === 259 && u_(c.body)) && !(c.flags & 16777216))
            return c;
      }
    }
    function tot(n, a) {
      const c = Nm(n), u = Nm(a);
      return Xm(c) ? Xm(u) : Xm(u) ? !1 : c === u;
    }
    function not(n) {
      n.body && (mo(n.body), qp(n) || lv(n)), i(a);
      function a() {
        var c, u;
        const p = qp(n), g = n.flags & 16777216;
        p && !g && Je(n.name, _.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);
        const x = Du(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 (p4(n, R))
          return;
        sh(n) || !g && n.name.kind === 10 && En(n.name, _.Only_ambient_modules_can_use_quoted_names), Ve(n.name) && jL(n, n.name), OD(n);
        const M = Ir(n);
        if (M.flags & 512 && !g && BK(n, L1(Y))) {
          if (U_(Y) && !er(n).externalModuleIndicator && Je(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), ((c = M.declarations) == null ? void 0 : c.length) > 1) {
            const J = eot(M);
            J && (er(n) !== er(J) ? Je(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 && Je(n.name, _.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged));
            const $ = Sc(M, 260);
            $ && tot(n, $) && (zr(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 && Je(J, _.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);
          }
        }
        if (x)
          if (g1(n)) {
            if ((p || Ir(n).flags & 33554432) && n.body)
              for (const $ of n.body.statements)
                doe($, p);
          } else
            Xm(n.parent) ? p ? Je(n.name, _.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations) : Pl(B_(n.name)) && Je(n.name, _.Ambient_module_declaration_cannot_specify_relative_module_name) : p ? Je(n.name, _.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations) : Je(n.name, _.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);
      }
    }
    function doe(n, a) {
      switch (n.kind) {
        case 240:
          for (const u of n.declarationList.declarations)
            doe(u, a);
          break;
        case 274:
        case 275:
          Ol(n, _.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);
          break;
        case 268:
        case 269:
          Ol(n, _.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);
          break;
        case 205:
        case 257:
          const c = n.name;
          if (Ja(c)) {
            for (const u of c.elements)
              doe(u, a);
            break;
          }
        case 260:
        case 263:
        case 259:
        case 261:
        case 264:
        case 262:
          if (a)
            return;
          break;
      }
    }
    function rot(n) {
      switch (n.kind) {
        case 79:
          return n;
        case 163:
          do
            n = n.left;
          while (n.kind !== 79);
          return n;
        case 208:
          do {
            if (hh(n.expression) && !Di(n.name))
              return n.name;
            n = n.expression;
          } while (n.kind !== 79);
          return n;
      }
    }
    function foe(n) {
      const a = UA(n);
      if (!a || xc(a))
        return !1;
      if (!Go(a))
        return Je(a, _.String_literal_expected), !1;
      const c = n.parent.kind === 265 && Du(n.parent.parent);
      if (n.parent.kind !== 308 && !c)
        return Je(a, n.kind === 275 ? _.Export_declarations_are_not_permitted_in_a_namespace : _.Import_declarations_in_a_namespace_cannot_reference_a_module), !1;
      if (c && Pl(a.text) && !Xd(n))
        return Je(n, _.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name), !1;
      if (!ru(n) && n.assertClause) {
        let u = !1;
        for (const p of n.assertClause.elements)
          Go(p.value) || (u = !0, Je(p.value, _.Import_assertion_values_must_be_string_literal_expressions));
        return !u;
      }
      return !0;
    }
    function OV(n) {
      var a, c, u, p, g;
      let x = Ir(n);
      const R = Zc(x);
      if (R !== nn) {
        if (x = ns(x.exportSymbol || x), fr(n) && !(R.flags & 111551) && !p1(n)) {
          const $ = qS(n) ? n.propertyName || n.name : _u(n) ? n.name : n;
          if (D.assert(n.kind !== 277), n.kind === 278) {
            const ge = Je($, _.Types_cannot_appear_in_export_declarations_in_JavaScript_files), Ne = (c = (a = er(n).symbol) == null ? void 0 : a.exports) == null ? void 0 : c.get((n.propertyName || n.name).escapedText);
            if (Ne === R) {
              const we = (u = Ne.declarations) == null ? void 0 : u.find(LA);
              we && qo(ge, Rr(we, _._0_is_automatically_exported_here, ta(Ne.escapedName)));
            }
          } else {
            D.assert(n.kind !== 257);
            const ge = rr(n, Am(Ul, ru)), Ne = (g = ge && ((p = hN(ge)) == null ? void 0 : p.text)) != null ? g : "...", we = ta(Ve($) ? $.escapedText : x.escapedName);
            Je($, _._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation, we, `import("${Ne}").${we}`);
          }
          return;
        }
        const M = ou(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;
          Je(n, $, S(x));
        }
        if (U_(Y) && !p1(n) && !(n.flags & 16777216)) {
          const $ = kd(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 && BA(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, we = Pr(n.kind === 273 && n.propertyName || n.name);
                  lS(Je(n, Ne, we), ge ? void 0 : $, we);
                }
                ge && n.kind === 268 && Pd(n, 1) && Je(n, _.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled, Vt);
                break;
              }
              case 278:
                if (Y.verbatimModuleSyntax || er($) !== er(n)) {
                  const Ne = Pr(n.propertyName || n.name), we = ge ? Je(n, _.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type, Vt) : Je(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);
                  lS(we, ge ? void 0 : $, Ne);
                  break;
                }
            }
          Y.verbatimModuleSyntax && n.kind !== 268 && !fr(n) && (de === 1 || er(n).impliedNodeFormat === 1) && Je(n, _.ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);
        }
        if (xd(n)) {
          const $ = Nwe(x, n);
          Rwe($) && $.declarations && Cg(n, $.declarations, $.escapedName);
        }
      }
    }
    function Rwe(n) {
      return !!n.declarations && Rn(n.declarations, (a) => !!(_p(a) & 268435456));
    }
    function Nwe(n, a) {
      if (!(n.flags & 2097152))
        return n;
      const c = Zc(n);
      if (c === nn)
        return c;
      for (; n.flags & 2097152; ) {
        const u = cae(n);
        if (u) {
          if (u === c)
            break;
          if (u.declarations && Ie(u.declarations))
            if (Rwe(u)) {
              Cg(a, u.declarations, u.escapedName);
              break;
            } else {
              if (n === c)
                break;
              n = u;
            }
        } else
          break;
      }
      return c;
    }
    function PV(n) {
      jL(n, n.name), OV(n), n.kind === 273 && Pr(n.propertyName || n.name) === "default" && V_(Y) && de !== 4 && (de < 5 || er(n).impliedNodeFormat === 1) && fl(n, 131072);
    }
    function Owe(n) {
      var a;
      if (n.assertClause) {
        const c = RX(n), u = Ux(n.assertClause, c ? En : void 0);
        if (c && u)
          return ON() || En(n.assertClause, _.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next), yc(Y) !== 3 && yc(Y) !== 99 ? En(n.assertClause, _.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext) : void 0;
        if ((de === 199 && n.moduleSpecifier && Oy(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 (Ul(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 iot(n) {
      if (!p4(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 (!sh(n) && b3(n) && Ol(n, _.An_import_declaration_cannot_have_modifiers), foe(n)) {
          const a = n.importClause;
          a && !$st(a) && (a.name && PV(a), a.namedBindings && (a.namedBindings.kind === 271 ? (PV(a.namedBindings), de !== 4 && (de < 5 || er(n).impliedNodeFormat === 1) && V_(Y) && fl(n, 65536)) : su(n, n.moduleSpecifier) && ze(a.namedBindings.elements, PV)));
        }
        Owe(n);
      }
    }
    function aot(n) {
      if (!p4(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) && (sh(n), BA(n) || foe(n)))
        if (PV(n), Kr(n, 1) && lE(n), n.moduleReference.kind !== 280) {
          const a = Zc(Ir(n));
          if (a !== nn) {
            const c = ou(a);
            if (c & 111551) {
              const u = Sf(n.moduleReference);
              Dc(u, 112575).flags & 1920 || Je(u, _.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, Ls(u));
            }
            c & 788968 && HL(n.name, _.Import_name_cannot_be_0);
          }
          n.isTypeOnly && En(n, _.An_import_alias_cannot_use_import_type);
        } else
          de >= 5 && er(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 oot(n) {
      if (!p4(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 (!sh(n) && Vue(n) && Ol(n, _.An_export_declaration_cannot_have_modifiers), n.moduleSpecifier && n.exportClause && z_(n.exportClause) && Ie(n.exportClause.elements) && P === 0 && fl(n, 4194304), sot(n), !n.moduleSpecifier || foe(n))
          if (n.exportClause && !Ah(n.exportClause)) {
            ze(n.exportClause.elements, _ot);
            const a = n.parent.kind === 265 && Du(n.parent.parent), c = !a && n.parent.kind === 265 && !n.moduleSpecifier && n.flags & 16777216;
            n.parent.kind !== 308 && !a && !c && Je(n, _.Export_declarations_are_not_permitted_in_a_namespace);
          } else {
            const a = su(n, n.moduleSpecifier);
            a && fE(a) ? Je(n.moduleSpecifier, _.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk, S(a)) : n.exportClause && OV(n.exportClause), de !== 4 && (de < 5 || er(n).impliedNodeFormat === 1) && (n.exportClause ? V_(Y) && fl(n, 65536) : fl(n, 32768));
          }
        Owe(n);
      }
    }
    function sot(n) {
      var a;
      return n.isTypeOnly && ((a = n.exportClause) == null ? void 0 : a.kind) === 276 ? dDe(n.exportClause) : !1;
    }
    function p4(n, a) {
      const c = n.parent.kind === 308 || n.parent.kind === 265 || n.parent.kind === 264;
      return c || Ol(n, a), !c;
    }
    function cot(n) {
      return l3(n, (a) => !!Ir(a).isReferenced);
    }
    function lot(n) {
      return l3(n, (a) => !!Vi(Ir(a)).constEnumReferenced);
    }
    function uot(n) {
      return Ul(n) && n.importClause && !n.importClause.isTypeOnly && cot(n.importClause) && !VV(n.importClause, !0) && !lot(n.importClause);
    }
    function dot(n) {
      return ru(n) && jm(n.moduleReference) && !n.isTypeOnly && Ir(n).isReferenced && !VV(n, !1) && !Vi(Ir(n)).constEnumReferenced;
    }
    function fot(n) {
      for (const a of n.statements)
        (uot(a) || dot(a)) && Je(a, _.This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error);
    }
    function _ot(n) {
      if (OV(n), j_(Y) && SE(n.propertyName || n.name, !0), n.parent.parent.moduleSpecifier)
        V_(Y) && de !== 4 && (de < 5 || er(n).impliedNodeFormat === 1) && Pr(n.propertyName || n.name) === "default" && fl(n, 131072);
      else {
        const a = n.propertyName || n.name, c = fc(a, a.escapedText, 2998271, void 0, void 0, !0);
        if (c && (c === Fe || c === st || c.declarations && Xm(xE(c.declarations[0]))))
          Je(a, _.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, Pr(a));
        else {
          !n.isTypeOnly && !n.parent.parent.isTypeOnly && lE(n);
          const u = c && (c.flags & 2097152 ? Zc(c) : c);
          (!u || ou(u) & 111551) && Xc(n.propertyName || n.name);
        }
      }
    }
    function pot(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 (p4(n, a))
        return;
      const c = n.parent.kind === 308 ? n.parent : n.parent.parent;
      if (c.kind === 264 && !Du(c)) {
        n.isExportEquals ? Je(n, _.An_export_assignment_cannot_be_used_in_a_namespace) : Je(n, _.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);
        return;
      }
      !sh(n) && b3(n) && Ol(n, _.An_export_assignment_cannot_have_modifiers);
      const u = Kl(n);
      u && ed(Xc(n.expression), ui(u), n.expression);
      const p = !n.isExportEquals && !(n.flags & 16777216) && Y.verbatimModuleSyntax && (de === 1 || er(n).impliedNodeFormat === 1);
      if (n.expression.kind === 79) {
        const g = n.expression, x = wp(Dc(g, 67108863, !0, !0, n));
        x ? (tV(x, g), ou(x) & 111551 ? (Xc(g), !p && Y.verbatimModuleSyntax && kd(x, 111551) && Je(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, Pr(g))) : !p && Y.verbatimModuleSyntax && Je(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, Pr(g))) : Xc(g), j_(Y) && SE(g, !0);
      } else
        Xc(n.expression);
      p && Je(n, _.ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled), Pwe(c), n.flags & 16777216 && !jc(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 && er(n).impliedNodeFormat === 99 || !(n.flags & 16777216) && er(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 mot(n) {
      return tf(n.exports, (a, c) => c !== "export=");
    }
    function Pwe(n) {
      const a = Ir(n), c = Vi(a);
      if (!c.exportsChecked) {
        const u = a.exports.get("export=");
        if (u && mot(a)) {
          const g = fd(u) || u.valueDeclaration;
          g && !Xd(g) && !fr(g) && Je(g, _.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);
        }
        const p = Bh(a);
        p && p.forEach(({ declarations: g, flags: x }, R) => {
          if (R === "__export" || x & 1920)
            return;
          const M = Zi(g, P4(wme, M4(Qu)));
          if (!(x & 524288 && M <= 2) && M > 1 && !MV(g))
            for (const J of g)
              Lme(J) && Xo.add(Rr(J, _.Cannot_redeclare_exported_variable_0, ta(R)));
        }), c.exportsChecked = !0;
      }
    }
    function MV(n) {
      return n && n.length > 1 && n.every((a) => fr(a) && sc(a) && (fT(a.expression) || hh(a.expression)));
    }
    function mo(n) {
      if (n) {
        const a = B;
        B = n, I = 0, hot(n), B = a;
      }
    }
    function hot(n) {
      EN(n) && ze(n.jsDoc, ({ comment: c, tags: u }) => {
        Mwe(c), ze(u, (p) => {
          Mwe(p.comment), fr(n) && mo(p);
        });
      });
      const a = n.kind;
      if (o)
        switch (a) {
          case 264:
          case 260:
          case 261:
          case 259:
            o.throwIfCancellationRequested();
        }
      switch (a >= 240 && a <= 256 && bN(n) && n.flowNode && !GP(n.flowNode) && im(Y.allowUnreachableCode === !1, n, _.Unreachable_code_detected), a) {
        case 165:
          return Mke(n);
        case 166:
          return Fke(n);
        case 169:
          return Uke(n);
        case 168:
          return eit(n);
        case 182:
        case 181:
        case 176:
        case 177:
        case 178:
          return ND(n);
        case 171:
        case 170:
          return tit(n);
        case 172:
          return nit(n);
        case 173:
          return rit(n);
        case 174:
        case 175:
          return jke(n);
        case 180:
          return $ae(n);
        case 179:
          return Yrt(n);
        case 183:
          return lit(n);
        case 184:
          return uit(n);
        case 185:
          return dit(n);
        case 186:
          return fit(n);
        case 189:
        case 190:
          return _it(n);
        case 193:
        case 187:
        case 188:
          return mo(n.type);
        case 194:
          return git(n);
        case 195:
          return yit(n);
        case 191:
          return vit(n);
        case 192:
          return bit(n);
        case 200:
          return Eit(n);
        case 202:
          return Tit(n);
        case 199:
          return Sit(n);
        case 331:
          return Vit(n);
        case 332:
          return Uit(n);
        case 349:
        case 341:
        case 343:
          return Rit(n);
        case 348:
          return Nit(n);
        case 347:
          return Oit(n);
        case 327:
        case 328:
        case 329:
          return Mit(n);
        case 344:
          return Fit(n);
        case 351:
          return Bit(n);
        case 320:
          Git(n);
        case 318:
        case 317:
        case 315:
        case 316:
        case 325:
          Fwe(n), Ra(n, mo);
          return;
        case 321:
          got(n);
          return;
        case 312:
          return mo(n.type);
        case 336:
        case 338:
        case 337:
          return jit(n);
        case 353:
          return Pit(n);
        case 196:
          return pit(n);
        case 197:
          return mit(n);
        case 259:
          return Dit(n);
        case 238:
        case 265:
          return kV(n);
        case 240:
          return aat(n);
        case 241:
          return oat(n);
        case 242:
          return sat(n);
        case 243:
          return uat(n);
        case 244:
          return dat(n);
        case 245:
          return fat(n);
        case 246:
          return pat(n);
        case 247:
          return _at(n);
        case 248:
        case 249:
          return Tat(n);
        case 250:
          return Sat(n);
        case 251:
          return xat(n);
        case 252:
          return Aat(n);
        case 253:
          return Cat(n);
        case 254:
          return Lat(n);
        case 255:
          return Iat(n);
        case 257:
          return noe(n);
        case 205:
          return iat(n);
        case 260:
          return Mat(n);
        case 261:
          return qat(n);
        case 262:
          return Jat(n);
        case 263:
          return $at(n);
        case 264:
          return not(n);
        case 269:
          return iot(n);
        case 268:
          return aot(n);
        case 275:
          return oot(n);
        case 274:
          return pot(n);
        case 239:
        case 256:
          Yh(n);
          return;
        case 279:
          return ait(n);
      }
    }
    function Mwe(n) {
      Ba(n) && ze(n, (a) => {
        YS(a) && mo(a);
      });
    }
    function Fwe(n) {
      if (!fr(n))
        if (N7(n) || TC(n)) {
          const a = ho(N7(n) ? 53 : 57), c = 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 = ui(u);
          En(n, c, a, Le(TC(n) && !(p === ht || p === Rt) ? Yr(Bn([p, je], n.postfix ? void 0 : Sn)) : p));
        } else
          En(n, _.JSDoc_types_can_only_be_used_inside_documentation_comments);
    }
    function got(n) {
      Fwe(n), mo(n.type);
      const { parent: a } = n;
      if (Oa(a) && SC(a.parent)) {
        Ho(a.parent.parameters) !== a && Je(n, _.A_rest_parameter_must_be_last_in_a_parameter_list);
        return;
      }
      wT(a) || Je(n, _.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);
      const c = n.parent.parent;
      if (!tm(c)) {
        Je(n, _.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);
        return;
      }
      const u = TN(c);
      if (!u)
        return;
      const p = W0(c);
      (!p || Ho(p.parameters).symbol !== u) && Je(n, _.A_rest_parameter_must_be_last_in_a_parameter_list);
    }
    function yot(n) {
      const a = ui(n.type), { parent: c } = n, u = n.parent.parent;
      if (wT(n.parent) && tm(u)) {
        const p = W0(u), g = _J(u.parent.parent);
        if (p || g) {
          const x = ec(g ? u.parent.parent.typeExpression.parameters : p.parameters), R = TN(u);
          if (!x || R && x.symbol === R && ph(x))
            return xu(a);
        }
      }
      return Oa(c) && SC(c.parent) ? xu(a) : Co(a);
    }
    function zL(n) {
      const a = er(n), c = zr(a);
      c.flags & 1 ? D.assert(!c.deferredNodes, "A type-checked file should have no deferred nodes.") : (c.deferredNodes || (c.deferredNodes = /* @__PURE__ */ new Set()), c.deferredNodes.add(n));
    }
    function vot(n) {
      const a = zr(n);
      a.deferredNodes && a.deferredNodes.forEach(bot), a.deferredNodes = void 0;
    }
    function bot(n) {
      var a, c;
      (a = yi) == null || a.push(yi.Phase.Check, "checkDeferredNode", { kind: n.kind, pos: n.pos, end: n.end, path: n.tracingPath });
      const u = B;
      switch (B = n, I = 0, n.kind) {
        case 210:
        case 211:
        case 212:
        case 167:
        case 283:
          K2(n);
          break;
        case 215:
        case 216:
        case 171:
        case 170:
          _rt(n);
          break;
        case 174:
        case 175:
          jke(n);
          break;
        case 228:
          Pat(n);
          break;
        case 165:
          Xrt(n);
          break;
        case 282:
          Ctt(n);
          break;
        case 281:
          Itt(n);
          break;
      }
      B = u, (c = yi) == null || c.pop();
    }
    function Eot(n) {
      var a, c;
      (a = yi) == null || a.push(yi.Phase.Check, "checkSourceFile", { path: n.path }, !0), ic("beforeCheck"), Tot(n), ic("afterCheck"), Hf("Check", "beforeCheck", "afterCheck"), (c = yi) == null || c.pop();
    }
    function Bwe(n, a) {
      if (a)
        return !1;
      switch (n) {
        case 0:
          return !!Y.noUnusedLocals;
        case 1:
          return !!Y.noUnusedParameters;
        default:
          return D.assertNever(n);
      }
    }
    function Gwe(n) {
      return bn.get(n.path) || rt;
    }
    function Tot(n) {
      const a = zr(n);
      if (!(a.flags & 1)) {
        if (ck(n, Y, e))
          return;
        qst(n), co(tE), co(Qv), co(db), co(Zv), co(aS), ze(n.statements, mo), mo(n.endOfFileToken), vot(n), nf(n) && lv(n), i(() => {
          !n.isDeclarationFile && (Y.noUnusedLocals || Y.noUnusedParameters) && ewe(Gwe(n), (c, u, p) => {
            !YR(c) && Bwe(u, !!(c.flags & 16777216)) && Xo.add(p);
          }), n.isDeclarationFile || qit();
        }), Y.importsNotUsedAsValues === 2 && !n.isDeclarationFile && Yc(n) && fot(n), nf(n) && Pwe(n), tE.length && (ze(tE, Xit), co(tE)), Qv.length && (ze(Qv, Yit), co(Qv)), db.length && (ze(db, eat), co(db)), Zv.length && (ze(Zv, nat), co(Zv)), a.flags |= 1;
      }
    }
    function Uwe(n, a) {
      try {
        return o = a, Sot(n);
      } finally {
        o = void 0;
      }
    }
    function _oe() {
      for (const n of r)
        n();
      r = [];
    }
    function poe(n) {
      _oe();
      const a = i;
      i = (c) => c(), Eot(n), i = a;
    }
    function Sot(n) {
      if (n) {
        _oe();
        const a = Xo.getGlobalDiagnostics(), c = a.length;
        poe(n);
        const u = Xo.getDiagnostics(n.fileName), p = Xo.getGlobalDiagnostics();
        if (p !== a) {
          const g = lse(a, p, ik);
          return ma(g, u);
        } else if (c === 0 && p.length > 0)
          return ma(p, u);
        return u;
      }
      return ze(e.getSourceFiles(), poe), Xo.getDiagnostics();
    }
    function xot() {
      return _oe(), Xo.getGlobalDiagnostics();
    }
    function Aot(n, a) {
      if (n.flags & 33554432)
        return [];
      const c = ao();
      let u = !1;
      return p(), c.delete("this"), Cre(c);
      function p() {
        for (; n; ) {
          switch (wm(n) && n.locals && !Xm(n) && x(n.locals, a), n.kind) {
            case 308:
              if (!Yc(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(Qy(Ir(n)), a & 788968);
              break;
            case 215:
              n.name && g(n.symbol, a);
              break;
          }
          Qle(n) && g(Ct, a), u = za(n), n = n.parent;
        }
        x(He, a);
      }
      function g(M, J) {
        if (ek(M) & J) {
          const $ = M.escapedName;
          c.has($) || c.set($, M);
        }
      }
      function x(M, J) {
        J && M.forEach(($) => {
          g($, J);
        });
      }
      function R(M, J) {
        J && M.forEach(($) => {
          !Sc($, 278) && !Sc($, 277) && g($, J);
        });
      }
    }
    function Cot(n) {
      return n.kind === 79 && oC(n.parent) && Aa(n.parent) === n;
    }
    function Vwe(n) {
      for (; n.parent.kind === 163; )
        n = n.parent;
      return n.parent.kind === 180;
    }
    function Lot(n) {
      for (; n.parent.kind === 208; )
        n = n.parent;
      return n.parent.kind === 230;
    }
    function jwe(n, a) {
      let c, u = Tl(n);
      for (; u && !(c = a(u)); )
        u = Tl(u);
      return c;
    }
    function Iot(n) {
      return !!rr(n, (a) => Hc(a) && u_(a.body) || Za(a) ? !0 : li(a) || Xs(a) ? "quit" : !1);
    }
    function moe(n, a) {
      return !!jwe(n, (c) => c === a);
    }
    function kot(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 FV(n) {
      return kot(n) !== void 0;
    }
    function wot(n) {
      switch (Ac(n.parent.parent)) {
        case 1:
        case 3:
          return qd(n.parent);
        case 4:
        case 2:
        case 5:
          return Ir(n.parent.parent);
      }
    }
    function Dot(n) {
      let a = n.parent;
      for (; Sd(a); )
        n = a, a = a.parent;
      if (a && a.kind === 202 && a.qualifier === n)
        return a;
    }
    function Hwe(n) {
      if (lg(n))
        return qd(n.parent);
      if (fr(n) && n.parent.kind === 208 && n.parent === n.parent.parent.left && !Di(n) && !eb(n)) {
        const a = wot(n);
        if (a)
          return a;
      }
      if (n.parent.kind === 274 && jc(n)) {
        const a = Dc(n, 2998271, !0);
        if (a && a !== nn)
          return a;
      } else if (Zd(n) && FV(n)) {
        const a = z0(n, 268);
        return D.assert(a !== void 0), kp(n, !0);
      }
      if (Zd(n)) {
        const a = Dot(n);
        if (a) {
          ui(a);
          const c = zr(n).resolvedSymbol;
          return c === nn ? void 0 : c;
        }
      }
      for (; Xue(n); )
        n = n.parent;
      if (Lot(n)) {
        let a = 0;
        n.parent.kind === 230 ? (a = mh(n) ? 788968 : 111551, GN(n.parent) && (a |= 111551)) : a = 1920, a |= 2097152;
        const c = jc(n) ? Dc(n, a) : void 0;
        if (c)
          return c;
      }
      if (n.parent.kind === 344)
        return TN(n.parent);
      if (n.parent.kind === 165 && n.parent.parent.kind === 348) {
        D.assert(!fr(n));
        const a = mue(n.parent);
        return a && a.symbol;
      }
      if (sg(n)) {
        if (xc(n))
          return;
        const a = rr(n, Am(YS, Rk, eb)), c = a ? 901119 : 111551;
        if (n.kind === 79) {
          if (PI(n) && NL(n)) {
            const p = uae(n.parent);
            return p === nn ? void 0 : p;
          }
          const u = Dc(n, c, !1, !0, W0(n));
          if (!u && a) {
            const p = rr(n, Am(li, Qu));
            if (p)
              return m4(n, !1, Ir(p));
          }
          if (u && a) {
            const p = rx(n);
            if (p && P1(p) && p === u.valueDeclaration)
              return Dc(n, c, !0, !0, er(p)) || u;
          }
          return u;
        } else {
          if (Di(n))
            return dV(n);
          if (n.kind === 208 || n.kind === 163) {
            const u = zr(n);
            if (u.resolvedSymbol)
              return u.resolvedSymbol;
            if (n.kind === 208) {
              if (kIe(n, 0), !u.resolvedSymbol) {
                const p = Xc(n.expression), g = Are(p, zg(n.name));
                if (g.length && p.members) {
                  const R = sp(p).members.get("__index");
                  if (g === Su(p))
                    u.resolvedSymbol = R;
                  else if (R) {
                    const M = Vi(R), J = fa(g, (ge) => ge.declaration), $ = en(J, ds).join(",");
                    if (M.filteredIndexSymbolCache || (M.filteredIndexSymbolCache = /* @__PURE__ */ new Map()), M.filteredIndexSymbolCache.has($))
                      u.resolvedSymbol = M.filteredIndexSymbolCache.get($);
                    else {
                      const ge = Qo(131072, "__index");
                      ge.declarations = fa(g, (Ne) => Ne.declaration), ge.parent = p.aliasSymbol ? p.aliasSymbol : p.symbol ? p.symbol : I_(ge.declarations[0].parent), M.filteredIndexSymbolCache.set($, ge), u.resolvedSymbol = M.filteredIndexSymbolCache.get($);
                    }
                  }
                }
              }
            } else
              wIe(n, 0);
            return !u.resolvedSymbol && a && Sd(n) ? m4(n) : u.resolvedSymbol;
          } else if (eb(n))
            return m4(n);
        }
      } else if (Vwe(n)) {
        const a = n.parent.kind === 180 ? 788968 : 1920, c = Dc(n, a, !1, !0);
        return c && c !== nn ? c : _U(n);
      }
      if (n.parent.kind === 179)
        return Dc(n, 1);
    }
    function m4(n, a, c) {
      if (Zd(n)) {
        let x = Dc(n, 901119, a, !0, W0(n));
        if (!x && Ve(n) && c && (x = ns(zd(ff(c), n.escapedText, 901119))), x)
          return x;
      }
      const u = Ve(n) ? c : m4(n.left, a, c), p = Ve(n) ? n.escapedText : n.right.escapedText;
      if (u) {
        const g = u.flags & 111551 && so(or(u), "prototype"), x = g ? or(g) : Fs(u);
        return so(x, p);
      }
    }
    function I_(n, a) {
      if (Hi(n))
        return Yc(n) ? ns(n.symbol) : void 0;
      const { parent: c } = n, u = c.parent;
      if (!(n.flags & 33554432)) {
        if (Ime(n)) {
          const p = Ir(c);
          return qS(n.parent) && n.parent.propertyName === n ? cae(p) : p;
        } else if (AN(n))
          return Ir(c.parent);
        if (n.kind === 79) {
          if (FV(n))
            return Hwe(n);
          if (c.kind === 205 && u.kind === 203 && n === c.propertyName) {
            const p = IS(u), g = so(p, n.escapedText);
            if (g)
              return g;
          } else if (Lk(c) && c.name === n)
            return c.keywordToken === 103 && Pr(n) === "target" ? Pae(c).symbol : c.keywordToken === 100 && Pr(n) === "meta" ? QAe().members.get("meta") : void 0;
        }
        switch (n.kind) {
          case 79:
          case 80:
          case 208:
          case 163:
            if (!sx(n))
              return Hwe(n);
          case 108:
            const p = bd(n, !1, !1);
            if (qa(p)) {
              const R = Np(p);
              if (R.thisParameter)
                return R.thisParameter;
            }
            if (t3(n))
              return pa(n).symbol;
          case 194:
            return xU(n).symbol;
          case 106:
            return pa(n).symbol;
          case 135:
            const g = n.parent;
            return g && g.kind === 173 ? g.parent.symbol : void 0;
          case 10:
          case 14:
            if (j0(n.parent.parent) && MI(n.parent.parent) === n || (n.parent.kind === 269 || n.parent.kind === 275) && n.parent.moduleSpecifier === n || fr(n) && yc(Y) !== 100 && Ed(n.parent, !1) || rf(n.parent) || Q0(n.parent) && V0(n.parent.parent) && n.parent.parent.argument === n.parent)
              return su(n, n, a);
            if (eo(c) && ZS(c) && c.arguments[1] === n)
              return Ir(c);
          case 8:
            const x = cc(c) ? c.argumentExpression === n ? Lu(c.expression) : void 0 : Q0(c) && Ax(u) ? ui(u.objectType) : void 0;
            return x && so(x, oc(n.text));
          case 88:
          case 98:
          case 38:
          case 84:
            return qd(n.parent);
          case 202:
            return V0(n) ? I_(n.argument.literal, a) : void 0;
          case 93:
            return Mc(n.parent) ? D.checkDefined(n.parent.symbol) : void 0;
          case 100:
          case 103:
            return Lk(n.parent) ? fke(n.parent).symbol : void 0;
          case 233:
            return pa(n).symbol;
          default:
            return;
        }
      }
    }
    function Rot(n) {
      if (Ve(n) && Mr(n.parent) && n.parent.name === n) {
        const a = zg(n), c = Lu(n.parent.expression), u = c.flags & 1048576 ? c.types : [c];
        return wo(u, (p) => yn(Su(p), (g) => N2(a, g.keyType)));
      }
    }
    function Not(n) {
      if (n && n.kind === 300)
        return Dc(n.name, 2208703);
    }
    function Oot(n) {
      return cd(n) ? n.parent.parent.moduleSpecifier ? Df(n.parent.parent, n) : Dc(n.propertyName || n.name, 2998271) : Dc(n, 2998271);
    }
    function IS(n) {
      if (Hi(n) && !Yc(n) || n.flags & 33554432)
        return xe;
      const a = Mz(n), c = a && Vu(Ir(a.class));
      if (mh(n)) {
        const u = ui(n);
        return c ? Mf(u, c.thisType) : u;
      }
      if (sg(n))
        return Wwe(n);
      if (c && !a.isImplements) {
        const u = zl(Oo(c));
        return u ? Mf(u, c.thisType) : xe;
      }
      if (oC(n)) {
        const u = Ir(n);
        return Fs(u);
      }
      if (Cot(n)) {
        const u = I_(n);
        return u ? Fs(u) : xe;
      }
      if (mu(n)) {
        const u = Ir(n);
        return u ? or(u) : xe;
      }
      if (Ime(n)) {
        const u = I_(n);
        return u ? or(u) : xe;
      }
      if (Ja(n))
        return es(n.parent, !0, 0) || xe;
      if (FV(n)) {
        const u = I_(n);
        if (u) {
          const p = Fs(u);
          return Zo(p) ? or(u) : p;
        }
      }
      return Lk(n.parent) && n.parent.keywordToken === n.kind ? fke(n.parent) : xe;
    }
    function BV(n) {
      if (D.assert(n.kind === 207 || n.kind === 206), n.parent.kind === 247) {
        const p = f4(n.parent);
        return HE(n, p || xe);
      }
      if (n.parent.kind === 223) {
        const p = Lu(n.parent.right);
        return HE(n, p || xe);
      }
      if (n.parent.kind === 299) {
        const p = ro(n.parent.parent, xs), g = BV(p) || xe, x = wA(p.properties, n.parent);
        return Cke(p, g, x);
      }
      const a = ro(n.parent, Ou), c = BV(a) || xe, u = uv(65, c, je, n.parent) || xe;
      return Lke(a, c, a.elements.indexOf(n), u);
    }
    function Pot(n) {
      const a = BV(ro(n.parent.parent, xI));
      return a && so(a, n.escapedText);
    }
    function Wwe(n) {
      return YI(n) && (n = n.parent), md(Lu(n));
    }
    function zwe(n) {
      const a = qd(n.parent);
      return za(n) ? or(a) : Fs(a);
    }
    function qwe(n) {
      const a = n.name;
      switch (a.kind) {
        case 79:
          return Bf(Pr(a));
        case 8:
        case 10:
          return Bf(a.text);
        case 164:
          const c = Yg(a);
          return Nl(c, 12288) ? c : ue;
        default:
          return D.fail("Unsupported property name.");
      }
    }
    function hoe(n) {
      n = Hu(n);
      const a = ao(fs(n)), c = ja(n, 0).length ? ll : ja(n, 1).length ? ud : void 0;
      return c && ze(fs(c), (u) => {
        a.has(u.escapedName) || a.set(u.escapedName, u);
      }), Hy(a);
    }
    function GV(n) {
      return ja(n, 0).length !== 0 || ja(n, 1).length !== 0;
    }
    function Jwe(n) {
      const a = Mot(n);
      return a ? wo(a, Jwe) : [n];
    }
    function Mot(n) {
      if (Cc(n) & 6)
        return fa(Vi(n).containingType.types, (a) => so(a, n.escapedName));
      if (n.flags & 33554432) {
        const { links: { leftSpread: a, rightSpread: c, syntheticOrigin: u } } = n;
        return a ? [a, c] : u ? [u] : XE(Fot(n));
      }
    }
    function Fot(n) {
      let a, c = n;
      for (; c = Vi(c).target; )
        a = c;
      return a;
    }
    function Bot(n) {
      if (Tc(n))
        return !1;
      const a = ga(n, Ve);
      if (!a)
        return !1;
      const c = a.parent;
      return c ? !((Mr(c) || Vl(c)) && c.name === a) && h4(a) === Ct : !1;
    }
    function Got(n) {
      let a = su(n.parent, n);
      if (!a || DI(a))
        return !0;
      const c = fE(a);
      a = _d(a);
      const u = Vi(a);
      return u.exportsSomeValue === void 0 && (u.exportsSomeValue = c ? !!(a.flags & 111551) : tf(Bh(a), p)), u.exportsSomeValue;
      function p(g) {
        return g = Jc(g), g && !!(ou(g) & 111551);
      }
    }
    function Uot(n) {
      return zR(n.parent) && n === n.parent.name;
    }
    function Vot(n, a) {
      var c;
      const u = ga(n, Ve);
      if (u) {
        let p = h4(u, Uot(u));
        if (p) {
          if (p.flags & 1048576) {
            const x = ns(p.exportSymbol);
            if (!a && x.flags & 944 && !(x.flags & 3))
              return;
            p = x;
          }
          const g = pd(p);
          if (g) {
            if (g.flags & 512 && ((c = g.valueDeclaration) == null ? void 0 : c.kind) === 308) {
              const x = g.valueDeclaration, R = er(u);
              return x !== R ? void 0 : x;
            }
            return rr(u.parent, (x) => zR(x) && Ir(x) === g);
          }
        }
      }
    }
    function jot(n) {
      const a = yfe(n);
      if (a)
        return a;
      const c = ga(n, Ve);
      if (c) {
        const u = tst(c);
        if (By(u, 111551) && !kd(u, 111551))
          return fd(u);
      }
    }
    function Hot(n) {
      return n.valueDeclaration && us(n.valueDeclaration) && bA(n.valueDeclaration).parent.kind === 295;
    }
    function Kwe(n) {
      if (n.flags & 418 && n.valueDeclaration && !Hi(n.valueDeclaration)) {
        const a = Vi(n);
        if (a.isDeclarationWithCollidingName === void 0) {
          const c = Nm(n.valueDeclaration);
          if (wle(c) || Hot(n)) {
            const u = zr(n.valueDeclaration);
            if (fc(c.parent, n.escapedName, 111551, void 0, void 0, !1))
              a.isDeclarationWithCollidingName = !0;
            else if (u.flags & 16384) {
              const p = u.flags & 32768, g = Sv(c, !1), x = c.kind === 238 && Sv(c.parent, !1);
              a.isDeclarationWithCollidingName = !Ule(c) && (!p || !g && !x);
            } else
              a.isDeclarationWithCollidingName = !1;
          }
        }
        return a.isDeclarationWithCollidingName;
      }
      return !1;
    }
    function Wot(n) {
      if (!Tc(n)) {
        const a = ga(n, Ve);
        if (a) {
          const c = h4(a);
          if (c && Kwe(c))
            return c.valueDeclaration;
        }
      }
    }
    function zot(n) {
      const a = ga(n, mu);
      if (a) {
        const c = Ir(a);
        if (c)
          return Kwe(c);
      }
      return !1;
    }
    function Xwe(n) {
      switch (D.assert(!Y.verbatimModuleSyntax), n.kind) {
        case 268:
          return UV(Ir(n));
        case 270:
        case 271:
        case 273:
        case 278:
          const a = Ir(n);
          return !!a && UV(a) && !kd(a, 111551);
        case 275:
          const c = n.exportClause;
          return !!c && (Ah(c) || kt(c.elements, Xwe));
        case 274:
          return n.expression && n.expression.kind === 79 ? UV(Ir(n)) : !0;
      }
      return !1;
    }
    function qot(n) {
      const a = ga(n, ru);
      return a === void 0 || a.parent.kind !== 308 || !BA(a) ? !1 : UV(Ir(a)) && a.moduleReference && !xc(a.moduleReference);
    }
    function UV(n) {
      var a;
      if (!n)
        return !1;
      const c = wp(Zc(n));
      return c === nn ? !0 : !!(((a = ou(c)) != null ? a : -1) & 111551) && (L1(Y) || !VD(c));
    }
    function VD(n) {
      return Hae(n) || !!n.constEnumOnlyModule;
    }
    function VV(n, a) {
      if (D.assert(!Y.verbatimModuleSyntax), wg(n)) {
        const c = Ir(n), u = c && Vi(c);
        if (u != null && u.referenced)
          return !0;
        const p = Vi(c).aliasTarget;
        if (p && Ru(n) & 1 && ou(p) & 111551 && (L1(Y) || !VD(p)))
          return !0;
      }
      return a ? !!Ra(n, (c) => VV(c, a)) : !1;
    }
    function Ywe(n) {
      if (u_(n.body)) {
        if (xv(n) || _y(n))
          return !1;
        const a = Ir(n), c = Rb(a);
        return c.length > 1 || c.length === 1 && c[0].declaration !== n;
      }
      return !1;
    }
    function $we(n) {
      return !!W && !rD(n) && !tm(n) && !!n.initializer && !Kr(n, 16476);
    }
    function Jot(n) {
      return W && rD(n) && !n.initializer && Kr(n, 16476);
    }
    function Kot(n) {
      const a = ga(n, ml);
      if (!a)
        return !1;
      const c = Ir(a);
      return !c || !(c.flags & 16) ? !1 : !!tf(ff(c), (u) => u.flags & 111551 && u.valueDeclaration && Mr(u.valueDeclaration));
    }
    function Xot(n) {
      const a = ga(n, ml);
      if (!a)
        return rt;
      const c = Ir(a);
      return c && fs(or(c)) || rt;
    }
    function Z2(n) {
      var a;
      const c = n.id || 0;
      return c < 0 || c >= ub.length ? 0 : ((a = ub[c]) == null ? void 0 : a.flags) || 0;
    }
    function jV(n) {
      return wwe(n.parent), zr(n).enumMemberValue;
    }
    function Qwe(n) {
      switch (n.kind) {
        case 302:
        case 208:
        case 209:
          return !0;
      }
      return !1;
    }
    function goe(n) {
      if (n.kind === 302)
        return jV(n);
      const a = zr(n).resolvedSymbol;
      if (a && a.flags & 8) {
        const c = a.valueDeclaration;
        if (v1(c.parent))
          return jV(c);
      }
    }
    function yoe(n) {
      return !!(n.flags & 524288) && ja(n, 0).length > 0;
    }
    function Yot(n, a) {
      var c;
      const u = ga(n, Zd);
      if (!u || a && (a = ga(a), !a))
        return 0;
      let p = !1;
      if (Sd(u)) {
        const J = Dc(Sf(u), 111551, !0, !0, a);
        p = !!((c = J == null ? void 0 : J.declarations) != null && c.every(p1));
      }
      const g = Dc(u, 111551, !0, !0, a), x = g && g.flags & 2097152 ? Zc(g) : g;
      p || (p = !!(g && kd(g, 111551)));
      const R = Dc(u, 788968, !0, !1, a);
      if (x && x === R) {
        const J = Gre(!1);
        if (J && x === J)
          return 9;
        const $ = or(x);
        if ($ && v0($))
          return p ? 10 : 1;
      }
      if (!R)
        return p ? 11 : 0;
      const M = Fs(R);
      return Zo(M) ? p ? 11 : 0 : M.flags & 3 ? 11 : Nl(M, 245760) ? 2 : Nl(M, 528) ? 6 : Nl(M, 296) ? 3 : Nl(M, 2112) ? 4 : Nl(M, 402653316) ? 5 : Po(M) ? 7 : Nl(M, 12288) ? 8 : yoe(M) ? 10 : Gf(M) ? 7 : 11;
    }
    function $ot(n, a, c, u, p) {
      const g = ga(n, Xle);
      if (!g)
        return N.createToken(131);
      const x = Ir(g);
      let R = x && !(x.flags & 133120) ? Vb(or(x)) : xe;
      return R.flags & 8192 && R.symbol === x && (c |= 1048576), p && (R = Kg(R)), Xe.typeToTypeNode(R, a, c | 1024, u);
    }
    function Qot(n, a, c, u) {
      const p = ga(n, qa);
      if (!p)
        return N.createToken(131);
      const g = Np(p);
      return Xe.typeToTypeNode(ms(g), a, c | 1024, u);
    }
    function Zot(n, a, c, u) {
      const p = ga(n, yt);
      if (!p)
        return N.createToken(131);
      const g = Yd(Wwe(p));
      return Xe.typeToTypeNode(g, a, c | 1024, u);
    }
    function est(n) {
      return He.has(oc(n));
    }
    function h4(n, a) {
      const c = zr(n).resolvedSymbol;
      if (c)
        return c;
      let u = n;
      if (a) {
        const p = n.parent;
        mu(p) && n === p.name && (u = xE(p));
      }
      return fc(u, n.escapedText, 3257279, void 0, void 0, !0);
    }
    function tst(n) {
      const a = zr(n).resolvedSymbol;
      return a && a !== nn ? a : fc(n, n.escapedText, 3257279, void 0, void 0, !0, void 0, void 0);
    }
    function nst(n) {
      if (!Tc(n)) {
        const a = ga(n, Ve);
        if (a) {
          const c = h4(a);
          if (c)
            return wp(c).valueDeclaration;
        }
      }
    }
    function rst(n) {
      return jM(n) || zi(n) && og(n) ? Bb(or(Ir(n))) : !1;
    }
    function ist(n, a, c) {
      const u = n.flags & 1056 ? Xe.symbolToExpression(n.symbol, 111551, a, void 0, c) : 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 ast(n, a) {
      const c = or(Ir(n));
      return ist(c, n, a);
    }
    function Zwe(n) {
      return n ? (mb(n), er(n).localJsxFactory || xg) : xg;
    }
    function voe(n) {
      if (n) {
        const a = er(n);
        if (a) {
          if (a.localJsxFragmentFactory)
            return a.localJsxFragmentFactory;
          const c = a.pragmas.get("jsxfrag"), u = Ba(c) ? c[0] : c;
          if (u)
            return a.localJsxFragmentFactory = Fx(u.arguments.factory, P), a.localJsxFragmentFactory;
        }
      }
      if (Y.jsxFragmentFactory)
        return Fx(Y.jsxFragmentFactory, P);
    }
    function ost() {
      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: Vot,
        getReferencedImportDeclaration: jot,
        getReferencedDeclarationWithCollidingName: Wot,
        isDeclarationWithCollidingName: zot,
        isValueAliasDeclaration: (M) => {
          const J = ga(M);
          return J ? Xwe(J) : !0;
        },
        hasGlobalName: est,
        isReferencedAliasDeclaration: (M, J) => {
          const $ = ga(M);
          return $ ? VV($, J) : !0;
        },
        getNodeCheckFlags: (M) => {
          const J = ga(M);
          return J ? Z2(J) : 0;
        },
        isTopLevelValueImportEqualsWithEntityName: qot,
        isDeclarationVisible: x_,
        isImplementationOfOverload: Ywe,
        isRequiredInitializedParameter: $we,
        isOptionalUninitializedParameterProperty: Jot,
        isExpandoFunctionDeclaration: Kot,
        getPropertiesOfContainerFunction: Xot,
        createTypeOfDeclaration: $ot,
        createReturnTypeOfSignatureDeclaration: Qot,
        createTypeOfExpression: Zot,
        createLiteralConstValue: ast,
        isSymbolAccessible: Wy,
        isEntityNameVisible: C2,
        getConstantValue: (M) => {
          const J = ga(M, Qwe);
          return J ? goe(J) : void 0;
        },
        collectLinkedAliases: SE,
        getReferencedValueDeclaration: nst,
        getTypeReferenceSerializationKind: Yot,
        isOptionalParameter: rD,
        moduleExportsSomeValue: Got,
        isArgumentsLocalBinding: Bot,
        getExternalModuleFileFromDeclaration: (M) => {
          const J = ga(M, jle);
          return J && boe(J);
        },
        getTypeReferenceDirectivesForEntityName: p,
        getTypeReferenceDirectivesForSymbol: g,
        isLiteralConstDeclaration: rst,
        isLateBound: (M) => {
          const J = ga(M, mu), $ = J && Ir(J);
          return !!($ && Cc($) & 4096);
        },
        getJsxFactoryEntity: Zwe,
        getJsxFragmentFactoryEntity: voe,
        getAllAccessorDeclarations(M) {
          M = ga(M, vM);
          const J = M.kind === 175 ? 174 : 175, $ = Sc(Ir(M), J), ge = $ && $.pos < M.pos ? $ : M, Ne = $ && $.pos < M.pos ? M : $, we = M.kind === 175 ? M : $, ft = M.kind === 174 ? M : $;
          return {
            firstAccessor: ge,
            secondAccessor: Ne,
            setAccessor: we,
            getAccessor: ft
          };
        },
        getSymbolOfExternalModuleSpecifier: (M) => Mh(M, M, void 0),
        isBindingCapturedByNode: (M, J) => {
          const $ = ga(M), ge = ga(J);
          return !!$ && !!ge && (zi(ge) || us(ge)) && Fet($, ge);
        },
        getDeclarationStatementsForSourceFile: (M, J, $, ge) => {
          const Ne = ga(M);
          D.assert(Ne && Ne.kind === 308, "Non-sourcefile node passed into getDeclarationsForSourceFile");
          const we = Ir(M);
          return we ? we.exports ? Xe.symbolTableToDeclarationStatements(we.exports, M, J, $, ge) : [] : M.locals ? Xe.symbolTableToDeclarationStatements(M.locals, M, J, $, ge) : [];
        },
        isImportRequiredByAugmentation: c
      };
      function c(M) {
        const J = er(M);
        if (!J.symbol)
          return !1;
        const $ = boe(M);
        if (!$ || $ === J)
          return !1;
        const ge = Bh(J.symbol);
        for (const Ne of Do(ge.values()))
          if (Ne.mergeId) {
            const we = ns(Ne);
            if (we.declarations) {
              for (const ft of we.declarations)
                if (er(ft) === $)
                  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 && kL(M) || M.kind === 208 && !u(M)) && (J = 1160127));
        const $ = Dc(M, J, !0);
        return $ && $ !== nn ? 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 = er(ge), we = a.get(Ne.path);
            if (we)
              ($ || ($ = [])).push(we);
            else
              return;
          }
        return $;
      }
      function x(M) {
        if (!M.declarations)
          return !1;
        let J = M;
        for (; ; ) {
          const $ = pd(J);
          if ($)
            J = $;
          else
            break;
        }
        if (J.valueDeclaration && J.valueDeclaration.kind === 308 && J.flags & 512)
          return !1;
        for (const $ of M.declarations) {
          const ge = er($);
          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 we = X5(ge, M.fileName), ft = e.getSourceFile(we);
            ft && R(ft, J, Ne || M.impliedNodeFormat);
          }
        }
      }
    }
    function boe(n) {
      const a = n.kind === 264 ? ii(n.name, Go) : UA(n), c = Mh(a, a, void 0);
      if (c)
        return Sc(c, 308);
    }
    function sst() {
      for (const a of e.getSourceFiles())
        ame(a, Y);
      wr = /* @__PURE__ */ new Map();
      let n;
      for (const a of e.getSourceFiles())
        if (!a.redirectInfo) {
          if (!nf(a)) {
            const c = a.locals.get("globalThis");
            if (c != null && c.declarations)
              for (const u of c.declarations)
                Xo.add(Rr(u, _.Declaration_name_conflicts_with_built_in_global_identifier_0, "globalThis"));
            Rl(He, a.locals);
          }
          a.jsGlobalAugmentations && Rl(He, a.jsGlobalAugmentations), a.patternAmbientModules && a.patternAmbientModules.length && (po = ma(po, a.patternAmbientModules)), a.moduleAugmentations.length && (n || (n = [])).push(a.moduleAugmentations), a.symbol && a.symbol.globalExports && a.symbol.globalExports.forEach((u, p) => {
            He.has(p) || He.set(p, u);
          });
        }
      if (n)
        for (const a of n)
          for (const c of a)
            qp(c.parent) && cS(c);
      if (lL(He, _b, _.Declaration_name_conflicts_with_built_in_global_identifier_0), Vi(Fe).type = Qe, Vi(Ct).type = al("IArguments", 0, !0), Vi(nn).type = xe, Vi(st).type = _f(16, st), ys = al("Array", 1, !0), Ka = al("Object", 0, !0), uc = al("Function", 0, !0), ll = pe && al("CallableFunction", 0, !0) || uc, ud = pe && al("NewableFunction", 0, !0) || uc, dc = al("String", 0, !0), Hd = al("Number", 0, !0), Vc = al("Boolean", 0, !0), kf = al("RegExp", 0, !0), Dt = xu(ke), On = xu(gt), On === ua && (On = ws(void 0, te, rt, rt, rt)), cs = rCe("ReadonlyArray", 1) || ys, qi = cs ? cD(cs, [ke]) : Dt, Se = rCe("ThisType", 1), n)
        for (const a of n)
          for (const c of a)
            qp(c.parent) || cS(c);
      wr.forEach(({ firstFile: a, secondFile: c, 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)
              au(J, M, R, x);
            for (const J of x)
              au(J, M, R, g);
          });
        else {
          const p = Do(u.keys()).join(", ");
          Xo.add(qo(Rr(a, _.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, p), Rr(c, _.Conflicts_are_in_this_file))), Xo.add(qo(Rr(c, _.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, p), Rr(a, _.Conflicts_are_in_this_file)));
        }
      }), wr = void 0;
    }
    function fl(n, a) {
      if ((l & a) !== a && Y.importHelpers) {
        const c = er(n);
        if ($S(c, Y) && !(n.flags & 16777216)) {
          const u = lst(c, n);
          if (u !== nn) {
            const p = a & ~l;
            for (let g = 1; g <= 16777216; g <<= 1)
              if (p & g)
                for (const x of cst(g)) {
                  if (s.has(x))
                    continue;
                  s.add(x);
                  const R = zd(u.exports, oc(x), 111551);
                  R ? g & 524288 ? kt(Rb(R), (M) => $d(M) > 3) || Je(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, Y0, x, 4) : g & 1048576 ? kt(Rb(R), (M) => $d(M) > 4) || Je(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, Y0, x, 5) : g & 1024 && (kt(Rb(R), (M) => $d(M) > 2) || Je(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, Y0, x, 3)) : Je(n, _.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0, Y0, x);
                }
          }
          l |= a;
        }
      }
    }
    function cst(n) {
      switch (n) {
        case 1:
          return ["__extends"];
        case 2:
          return ["__assign"];
        case 4:
          return ["__rest"];
        case 8:
          return ne ? ["__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 lst(n, a) {
      return f || (f = gl(n, Y0, _.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found, a) || nn), f;
    }
    function sh(n) {
      const a = fst(n) || ust(n);
      if (a !== void 0)
        return a;
      if (Oa(n) && A1(n))
        return Ol(n, _.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters);
      let c, u, p, g, x, R = 0, M = !1, J = !1;
      for (const $ of n.modifiers)
        if (Nu($)) {
          if (e3(ne, n, n.parent, n.parent.parent)) {
            if (ne && (n.kind === 174 || n.kind === 175)) {
              const ge = vT(n.parent.members, n);
              if (Jf(ge.firstAccessor) && n === ge.secondAccessor)
                return Ol(n, _.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);
            }
          } else
            return n.kind === 171 && !u_(n.body) ? Ol(n, _.A_decorator_can_only_decorate_a_method_implementation_not_an_overload) : Ol(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 = er($);
            return qb(ge) ? !1 : (qo(Je($, _.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export), Rr(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, ho($.kind));
            if (n.kind === 178 && ($.kind !== 124 || !li(n.parent)))
              return En($, _._0_modifier_cannot_appear_on_an_index_signature, ho($.kind));
          }
          if ($.kind !== 101 && $.kind !== 145 && $.kind !== 85 && n.kind === 165)
            return En($, _._0_modifier_cannot_appear_on_a_type_parameter, ho($.kind));
          switch ($.kind) {
            case 85:
              if (n.kind !== 263 && n.kind !== 165)
                return En(n, _.A_class_member_cannot_have_the_0_keyword, ho(85));
              const ge = n.parent;
              if (n.kind === 165 && !(Xs(ge) || li(ge) || Sh(ge) || Sk(ge) || _C(ge) || TO(ge) || Th(ge)))
                return En($, _._0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class, ho($.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 = pf(lx($.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 (Ju(n))
                return En($, _.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);
              R |= lx($.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, c = $;
              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 || er(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 (li(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 we = n.parent.kind === 308 ? n.parent : n.parent.parent;
              if (we.kind === 264 && !Du(we))
                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 (li(n.parent) && !Za(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 (Ju(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 && Kr(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 (_u(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 ft = $.kind === 101 ? 32768 : 65536, Bt = $.kind === 101 ? "in" : "out";
              if (n.kind !== 165 || !(Qu(n.parent) || li(n.parent) || Qp(n.parent)))
                return En($, _._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias, Bt);
              if (R & ft)
                return En($, _._0_modifier_already_seen, Bt);
              if (ft & 32768 && R & 65536)
                return En($, _._0_modifier_must_precede_1_modifier, "in", "out");
              R |= ft;
              break;
          }
        }
      return n.kind === 173 ? R & 32 ? En(c, _._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 && Ja(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 ? pst(n, p) : !1;
    }
    function ust(n) {
      if (!n.modifiers)
        return !1;
      const a = dst(n);
      return a && Ol(a, _.Modifiers_cannot_appear_here);
    }
    function Eoe(n, a) {
      const c = cn(n.modifiers, lo);
      return c && c.kind !== a ? c : void 0;
    }
    function dst(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 cn(n.modifiers, lo);
        default:
          if (n.parent.kind === 265 || n.parent.kind === 308)
            return;
          switch (n.kind) {
            case 259:
              return Eoe(n, 132);
            case 260:
            case 182:
              return Eoe(n, 126);
            case 228:
            case 261:
            case 240:
            case 262:
              return cn(n.modifiers, lo);
            case 263:
              return Eoe(n, 85);
            default:
              D.assertNever(n);
          }
      }
    }
    function fst(n) {
      const a = _st(n);
      return a && Ol(a, _.Decorators_are_not_valid_here);
    }
    function _st(n) {
      return DJ(n) ? cn(n.modifiers, Nu) : void 0;
    }
    function pst(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 ? Jb(n[0], n.end - 1, 1, a) : !1;
    }
    function eDe(n, a) {
      if (n && n.length === 0) {
        const c = n.pos - 1, u = zo(a.text, n.end) + 1;
        return Jb(a, c, u - c, _.Type_parameter_list_cannot_be_empty);
      }
      return !1;
    }
    function mst(n) {
      let a = !1;
      const c = n.length;
      for (let u = 0; u < c; u++) {
        const p = n[u];
        if (p.dotDotDotToken) {
          if (u !== c - 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 (rD(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 hst(n) {
      return yn(n, (a) => !!a.initializer || Ja(a.name) || ph(a));
    }
    function gst(n) {
      if (P >= 3) {
        const a = n.body && oo(n.body) && LJ(n.body.statements);
        if (a) {
          const c = hst(n.parameters);
          if (Ie(c)) {
            ze(c, (p) => {
              qo(Je(p, _.This_parameter_is_not_allowed_with_use_strict_directive), Rr(a, _.use_strict_directive_used_here));
            });
            const u = c.map((p, g) => g === 0 ? Rr(p, _.Non_simple_parameter_declared_here) : Rr(p, _.and_here));
            return qo(Je(a, _.use_strict_directive_cannot_be_used_with_non_simple_parameter_list), ...u), !0;
          }
        }
      }
      return !1;
    }
    function HV(n) {
      const a = er(n);
      return sh(n) || eDe(n.typeParameters, a) || mst(n.parameters) || vst(n, a) || Xs(n) && gst(n);
    }
    function yst(n) {
      const a = er(n);
      return xst(n) || eDe(n.typeParameters, a);
    }
    function vst(n, a) {
      if (!Ws(n))
        return !1;
      n.typeParameters && !(Ie(n.typeParameters) > 1 || n.typeParameters.hasTrailingComma || n.typeParameters[0].constraint) && a && bl(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: c } = n, u = ac(a, c.pos).line, p = ac(a, c.end).line;
      return u !== p && En(c, _.Line_terminator_not_permitted_before_arrow);
    }
    function bst(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 (b3(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 c = ui(a.type);
      return Xh(c, (u) => !!(u.flags & 8576)) || SL(c) ? En(a.name, _.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead) : ah(c, dU) ? 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 Est(n) {
      return sh(n) || bst(n);
    }
    function Tst(n, a) {
      if (a && a.length === 0) {
        const c = er(n), u = a.pos - 1, p = zo(c.text, a.end) + 1;
        return Jb(c, u, p - u, _.Type_argument_list_cannot_be_empty);
      }
      return !1;
    }
    function g4(n, a) {
      return kS(a) || Tst(n, a);
    }
    function Sst(n) {
      return n.questionDotToken || n.flags & 32 ? En(n.template, _.Tagged_template_expressions_are_not_permitted_in_an_optional_chain) : !1;
    }
    function tDe(n) {
      const a = n.types;
      if (kS(a))
        return !0;
      if (a && a.length === 0) {
        const c = ho(n.token);
        return Jb(n, a.pos, 0, _._0_list_cannot_be_empty, c);
      }
      return kt(a, nDe);
    }
    function nDe(n) {
      return by(n) && Tk(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) : g4(n, n.typeArguments);
    }
    function xst(n) {
      let a = !1, c = !1;
      if (!sh(n) && n.heritageClauses)
        for (const u of n.heritageClauses) {
          if (u.token === 94) {
            if (a)
              return Ol(u, _.extends_clause_already_seen);
            if (c)
              return Ol(u, _.extends_clause_must_precede_implements_clause);
            if (u.types.length > 1)
              return Ol(u.types[1], _.Classes_can_only_extend_a_single_class);
            a = !0;
          } else {
            if (D.assert(u.token === 117), c)
              return Ol(u, _.implements_clause_already_seen);
            c = !0;
          }
          tDe(u);
        }
    }
    function Ast(n) {
      let a = !1;
      if (n.heritageClauses)
        for (const c of n.heritageClauses) {
          if (c.token === 94) {
            if (a)
              return Ol(c, _.extends_clause_already_seen);
            a = !0;
          } else
            return D.assert(c.token === 117), Ol(c, _.Interface_declaration_cannot_have_implements_clause);
          tDe(c);
        }
      return !1;
    }
    function WV(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 Toe(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 Soe(n, a) {
      return !!n && En(n, a);
    }
    function rDe(n, a) {
      return !!n && En(n, a);
    }
    function Cst(n, a) {
      const c = /* @__PURE__ */ new Map();
      for (const u of n.properties) {
        if (u.kind === 301) {
          if (a) {
            const x = Gs(u.expression);
            if (Ou(x) || xs(x))
              return En(u.expression, _.A_rest_element_cannot_contain_a_binding_pattern);
          }
          continue;
        }
        const p = u.name;
        if (p.kind === 164 && WV(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), q_(u) && u.modifiers)
          for (const x of u.modifiers)
            lo(x) && (x.kind !== 132 || u.kind !== 171) && En(x, _._0_modifier_cannot_be_used_here, El(x));
        else if (a_e(u) && u.modifiers)
          for (const x of u.modifiers)
            lo(x) && En(x, _._0_modifier_cannot_be_used_here, El(x));
        let g;
        switch (u.kind) {
          case 300:
          case 299:
            rDe(u.exclamationToken, _.A_definite_assignment_assertion_is_not_permitted_in_this_context), Soe(u.questionToken, _.An_object_member_cannot_be_declared_optional), p.kind === 8 && Coe(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 = S1(p);
          if (x === void 0)
            continue;
          const R = c.get(x);
          if (!R)
            c.set(x, g);
          else if (g & 8 && R & 8)
            En(p, _.Duplicate_identifier_0, El(p));
          else if (g & 4 && R & 4)
            En(p, _.An_object_literal_cannot_have_multiple_properties_with_the_same_name, El(p));
          else if (g & 3 && R & 3)
            if (R !== 3 && g !== R)
              c.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 Lst(n) {
      Ist(n.tagName), g4(n, n.typeArguments);
      const a = /* @__PURE__ */ new Map();
      for (const c of n.attributes.properties) {
        if (c.kind === 290)
          continue;
        const { name: u, initializer: p } = c;
        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 Ist(n) {
      if (Mr(n)) {
        let c = n;
        do {
          const p = a(c.name);
          if (p)
            return p;
          c = c.expression;
        } while (Mr(c));
        const u = a(c);
        if (u)
          return u;
      }
      function a(c) {
        if (Ve(c) && Pr(c).indexOf(":") !== -1)
          return En(c, _.JSX_property_access_expressions_cannot_include_JSX_namespace_names);
      }
    }
    function kst(n) {
      if (n.expression && Mk(n.expression))
        return En(n.expression, _.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array);
    }
    function iDe(n) {
      if (Yh(n))
        return !0;
      if (n.kind === 247 && n.awaitModifier && !(n.flags & 32768)) {
        const a = er(n);
        if ($M(n)) {
          if (!qb(a))
            switch ($S(a, Y) || Xo.add(Rr(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) {
                  Xo.add(Rr(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:
                Xo.add(Rr(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 (!qb(a)) {
          const c = Rr(n.awaitModifier, _.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules), u = Tf(n);
          if (u && u.kind !== 173) {
            D.assert((Fl(u) & 2) === 0, "Enclosing function should never be an async function.");
            const p = Rr(u, _.Did_you_mean_to_mark_this_function_as_async);
            qo(c, p);
          }
          return Xo.add(c), !0;
        }
        return !1;
      }
      if (AO(n) && !(n.flags & 32768) && Ve(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 (!Aoe(a)) {
          const c = a.declarations;
          if (!c.length)
            return !1;
          if (c.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 Ol(a.declarations[1], p);
          }
          const u = c[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 wst(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 && Di(n.name))
          return En(n.name, _.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);
        if (n.body === void 0 && !Kr(n, 256))
          return Jb(n, n.end - 1, 1, _._0_expected, "{");
      }
      if (n.body) {
        if (Kr(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 (!Dst(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(qI(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 Dst(n) {
      return xoe(n) || n.parameters.length === (n.kind === 174 ? 0 : 1);
    }
    function xoe(n) {
      if (n.parameters.length === (n.kind === 174 ? 1 : 2))
        return x1(n);
    }
    function Rst(n) {
      if (n.operator === 156) {
        if (n.type.kind !== 153)
          return En(n.type, _._0_expected, ho(153));
        let a = SN(n.parent);
        if (fr(a) && wT(a)) {
          const c = rx(a);
          c && (a = HA(c) || c);
        }
        switch (a.kind) {
          case 257:
            const c = a;
            if (c.name.kind !== 79)
              return En(n, _.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);
            if (!qM(c))
              return En(n, _.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);
            if (!(c.parent.flags & 2))
              return En(a.name, _.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);
            break;
          case 169:
            if (!za(a) || !JI(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 (!Kr(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 Ol(n, _.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types, ho(153));
    }
    function qL(n, a) {
      if (oYe(n))
        return En(n, a);
    }
    function aDe(n) {
      if (HV(n))
        return !0;
      if (n.kind === 171) {
        if (n.parent.kind === 207) {
          if (n.modifiers && !(n.modifiers.length === 1 && ss(n.modifiers).kind === 132))
            return Ol(n, _.Modifiers_cannot_appear_here);
          if (Soe(n.questionToken, _.An_object_member_cannot_be_declared_optional))
            return !0;
          if (rDe(n.exclamationToken, _.A_definite_assignment_assertion_is_not_permitted_in_this_context))
            return !0;
          if (n.body === void 0)
            return Jb(n, n.end - 1, 1, _._0_expected, "{");
        }
        if (Toe(n))
          return !0;
      }
      if (li(n.parent)) {
        if (P < 2 && Di(n.name))
          return En(n.name, _.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);
        if (n.flags & 16777216)
          return qL(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 qL(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 qL(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 qL(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 Nst(n) {
      let a = n;
      for (; a; ) {
        if (SA(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 && !Sv(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 (Sv(a, !1) && !n.label)
              return !1;
            break;
        }
        a = a.parent;
      }
      if (n.label) {
        const c = 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, c);
      } else {
        const c = 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, c);
      }
    }
    function Ost(n) {
      if (n.dotDotDotToken) {
        const a = n.parent.elements;
        if (n !== Ho(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 Jb(n, n.initializer.pos - 1, 1, _.A_rest_element_cannot_have_an_initializer);
    }
    function oDe(n) {
      return zf(n) || n.kind === 221 && n.operator === 40 && n.operand.kind === 8;
    }
    function Pst(n) {
      return n.kind === 9 || n.kind === 221 && n.operator === 40 && n.operand.kind === 9;
    }
    function Mst(n) {
      if ((Mr(n) || cc(n) && oDe(n.argumentExpression)) && jc(n.expression))
        return !!(Xc(n).flags & 1056);
    }
    function sDe(n) {
      const a = n.initializer;
      if (a) {
        const c = !(oDe(a) || Mst(a) || a.kind === 110 || a.kind === 95 || Pst(a));
        if ((jM(n) || zi(n) && og(n)) && !n.type) {
          if (c)
            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 Fst(n) {
      if (n.parent.parent.kind !== 246 && n.parent.parent.kind !== 247) {
        if (n.flags & 16777216)
          sDe(n);
        else if (!n.initializer) {
          if (Ja(n.name) && !Ja(n.parent))
            return En(n, _.A_destructuring_declaration_must_have_an_initializer);
          if (og(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 c = 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, c);
      }
      return (de < 5 || er(n).impliedNodeFormat === 1) && de !== 4 && !(n.parent.parent.flags & 16777216) && Kr(n.parent.parent, 1) && cDe(n.name), (RI(n) || og(n)) && lDe(n.name);
    }
    function cDe(n) {
      if (n.kind === 79) {
        if (Pr(n) === "__esModule")
          return Ust("noEmit", n, _.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules);
      } else {
        const a = n.elements;
        for (const c of a)
          if (!kl(c))
            return cDe(c.name);
      }
      return !1;
    }
    function lDe(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 c of a)
          kl(c) || lDe(c.name);
      }
      return !1;
    }
    function Aoe(n) {
      const a = n.declarations;
      return kS(n.declarations) ? !0 : n.declarations.length ? !1 : Jb(n, a.pos, a.end - a.pos, _.Variable_declaration_list_cannot_be_empty);
    }
    function uDe(n) {
      switch (n.kind) {
        case 242:
        case 243:
        case 244:
        case 251:
        case 245:
        case 246:
        case 247:
          return !1;
        case 253:
          return uDe(n.parent);
      }
      return !0;
    }
    function Bst(n) {
      if (!uDe(n.parent)) {
        if (RI(n.declarationList))
          return En(n, _.let_declarations_can_only_be_declared_inside_a_block);
        if (og(n.declarationList))
          return En(n, _.const_declarations_can_only_be_declared_inside_a_block);
      }
    }
    function Gst(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, ho(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, ho(n.keywordToken), "meta");
          break;
      }
    }
    function qb(n) {
      return n.parseDiagnostics.length > 0;
    }
    function Ol(n, a, c, u, p) {
      const g = er(n);
      if (!qb(g)) {
        const x = py(g, n.pos);
        return Xo.add(Il(g, x.start, x.length, a, c, u, p)), !0;
      }
      return !1;
    }
    function Jb(n, a, c, u, p, g, x) {
      const R = er(n);
      return qb(R) ? !1 : (Xo.add(Il(R, a, c, u, p, g, x)), !0);
    }
    function Ust(n, a, c, u, p, g) {
      const x = er(a);
      return qb(x) ? !1 : (e0(n, a, c, u, p, g), !0);
    }
    function En(n, a, c, u, p) {
      const g = er(n);
      return qb(g) ? !1 : (Xo.add(Rr(n, a, c, u, p)), !0);
    }
    function Vst(n) {
      const a = fr(n) ? v3(n) : void 0, c = n.typeParameters || a && zl(a);
      if (c) {
        const u = c.pos === c.end ? c.pos : zo(er(n).text, c.pos);
        return Jb(n, u, c.end - u, _.Type_parameters_cannot_appear_on_a_constructor_declaration);
      }
    }
    function jst(n) {
      const a = n.type || mp(n);
      if (a)
        return En(a, _.Type_annotation_cannot_appear_on_a_constructor_declaration);
    }
    function Hst(n) {
      if (Ts(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 (li(n.parent)) {
        if (Go(n.name) && n.name.text === "constructor")
          return En(n.name, _.Classes_may_not_have_a_field_named_constructor);
        if (qL(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 && Di(n.name))
          return En(n.name, _.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);
        if (P < 2 && ef(n))
          return En(n.name, _.Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher);
        if (ef(n) && Soe(n.questionToken, _.An_accessor_property_cannot_be_declared_optional))
          return !0;
      } else if (n.parent.kind === 261) {
        if (qL(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, xf), n.initializer)
          return En(n.initializer, _.An_interface_property_cannot_have_an_initializer);
      } else if (of(n.parent)) {
        if (qL(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, xf), n.initializer)
          return En(n.initializer, _.A_type_literal_property_cannot_have_an_initializer);
      }
      if (n.flags & 16777216 && sDe(n), Za(n) && n.exclamationToken && (!li(n.parent) || !n.type || n.initializer || n.flags & 16777216 || za(n) || C1(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 Wst(n) {
      return n.kind === 261 || n.kind === 262 || n.kind === 269 || n.kind === 268 || n.kind === 275 || n.kind === 274 || n.kind === 267 || Kr(n, 1027) ? !1 : Ol(n, _.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier);
    }
    function zst(n) {
      for (const a of n.statements)
        if ((mu(a) || a.kind === 240) && Wst(a))
          return !0;
      return !1;
    }
    function qst(n) {
      return !!(n.flags & 16777216) && zst(n);
    }
    function Yh(n) {
      if (n.flags & 16777216) {
        if (!zr(n).hasReportedStatementInAmbientContext && (qa(n.parent) || U0(n.parent)))
          return zr(n).hasReportedStatementInAmbientContext = Ol(n, _.An_implementation_cannot_be_declared_in_ambient_contexts);
        if (n.parent.kind === 238 || n.parent.kind === 265 || n.parent.kind === 308) {
          const c = zr(n.parent);
          if (!c.hasReportedStatementInAmbientContext)
            return c.hasReportedStatementInAmbientContext = Ol(n, _.Statements_are_not_allowed_in_ambient_contexts);
        }
      }
      return !1;
    }
    function Coe(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 : KW(n, 198) ? a = _.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0 : KW(n, 302) && (a = _.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0), a) {
          const c = Ov(n.parent) && n.parent.operator === 40, u = (c ? "-" : "") + "0o" + n.text;
          return En(c ? n.parent : n, a, u);
        }
      }
      return Jst(n), !1;
    }
    function Jst(n) {
      const a = El(n).indexOf(".") !== -1, c = n.numericLiteralFlags & 16;
      a || c || +n.text <= 2 ** 53 - 1 || Ny(!1, Rr(n, _.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers));
    }
    function Kst(n) {
      return !!(!(Q0(n.parent) || Ov(n.parent) && Q0(n.parent.parent)) && P < 7 && En(n, _.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020));
    }
    function Xst(n, a, c, u, p) {
      const g = er(n);
      if (!qb(g)) {
        const x = py(g, n.pos);
        return Xo.add(Il(g, eu(x), 0, a, c, u, p)), !0;
      }
      return !1;
    }
    function Yst() {
      return as || (as = [], He.forEach((n, a) => {
        I5.test(a) && as.push(n);
      })), as;
    }
    function $st(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 ? dDe(n.namedBindings) : !1;
    }
    function dDe(n) {
      return !!ze(n.elements, (a) => {
        if (a.isTypeOnly)
          return Ol(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 Qst(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 c = cn(a, xh);
      return c ? En(c, _.Argument_of_dynamic_import_cannot_be_spread_element) : !1;
    }
    function Zst(n, a) {
      const c = Zr(n);
      if (c & 20 && a.flags & 1048576)
        return cn(a.types, (u) => {
          if (u.flags & 524288) {
            const p = c & Zr(u);
            if (p & 4)
              return n.target === u.target;
            if (p & 16)
              return !!n.aliasSymbol && n.aliasSymbol === u.aliasSymbol;
          }
          return !1;
        });
    }
    function ect(n, a) {
      if (Zr(n) & 128 && Xh(a, C0))
        return cn(a.types, (c) => !C0(c));
    }
    function tct(n, a) {
      let c = 0;
      if (ja(n, c).length > 0 || (c = 1, ja(n, c).length > 0))
        return cn(a.types, (p) => ja(p, c).length > 0);
    }
    function nct(n, a) {
      let c;
      if (!(n.flags & 406978556)) {
        let u = 0;
        for (const p of a.types)
          if (!(p.flags & 406978556)) {
            const g = Io([mm(n), mm(p)]);
            if (g.flags & 4194304)
              return p;
            if (lp(g) || g.flags & 1048576) {
              const x = g.flags & 1048576 ? Zi(g.types, lp) : 1;
              x >= u && (c = p, u = x);
            }
          }
      }
      return c;
    }
    function rct(n) {
      if (_c(n, 67108864)) {
        const a = dl(n, (c) => !(c.flags & 134348796));
        if (!(a.flags & 131072))
          return a;
      }
      return n;
    }
    function fDe(n, a, c, u) {
      if (a.flags & 1048576 && n.flags & 2621440) {
        const p = wLe(a, n);
        if (p)
          return p;
        const g = fs(n);
        if (g) {
          const x = kLe(g, a);
          if (x)
            return hie(a, en(x, (R) => [() => or(R), R.escapedName]), c, void 0, u);
        }
      }
    }
  }
  function aMe(e) {
    return !U0(e);
  }
  function Lme(e) {
    return e.kind !== 259 && e.kind !== 171 || !!e.body;
  }
  function Ime(e) {
    switch (e.parent.kind) {
      case 273:
      case 278:
        return Ve(e);
      default:
        return lg(e);
    }
  }
  function kme(e) {
    switch (e) {
      case 0:
        return "yieldType";
      case 1:
        return "returnType";
      case 2:
        return "nextType";
    }
  }
  function gu(e) {
    return !!(e.flags & 1);
  }
  function GK(e) {
    return !!(e.flags & 2);
  }
  function oMe(e) {
    return {
      getCommonSourceDirectory: e.getCommonSourceDirectory ? () => e.getCommonSourceDirectory() : () => "",
      getCurrentDirectory: () => e.getCurrentDirectory(),
      getSymlinkCache: Fo(e, e.getSymlinkCache),
      getPackageJsonInfoCache: () => {
        var t;
        return (t = e.getPackageJsonInfoCache) == null ? void 0 : t.call(e);
      },
      useCaseSensitiveFileNames: Fo(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 I5, p8, UK, VK, jK, HK, k5, w5, D5, R5, wme, m8, WK, Af, h8, sMe = C({
    "src/compiler/checker.ts"() {
      wa(), FK(), c1(), I5 = /^".+"$/, p8 = "(anonymous)", UK = 1, VK = 1, jK = 1, HK = 1, k5 = /* @__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))(k5 || {}), w5 = new Map(Object.entries({
        string: 256,
        number: 512,
        bigint: 1024,
        boolean: 2048,
        symbol: 4096,
        undefined: 524288,
        object: 8192,
        function: 16384
      })), D5 = /* @__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))(D5 || {}), R5 = /* @__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))(R5 || {}), wme = P4(Lme, aMe), m8 = new Map(Object.entries({
        Uppercase: 0,
        Lowercase: 1,
        Capitalize: 2,
        Uncapitalize: 3
      })), WK = 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";
      })(Af || (Af = {})), h8 = class {
        constructor(e, t, r) {
          this.moduleResolverHost = void 0, this.inner = void 0, this.disableTrackSymbol = !1;
          for (var i; t instanceof h8; )
            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 ct(e, t, r, i) {
    if (e === void 0)
      return e;
    const o = t(e);
    let s;
    if (o !== void 0)
      return Ba(o) ? s = (i || fMe)(o) : s = o, D.assertNode(s, r), s;
  }
  function Xn(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 l, f = -1, d = -1;
    i > 0 || o < s ? l = e.hasTrailingComma && i + o === s : (f = e.pos, d = e.end, l = e.hasTrailingComma);
    const y = Dme(e, t, r, i, o);
    if (y !== e) {
      const h = N.createNodeArray(y, l);
      return Bm(h, f, d), h;
    }
    return e;
  }
  function zK(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), Dme(e, t, r, i, o);
  }
  function Dme(e, t, r, i, o) {
    let s;
    const l = e.length;
    (i > 0 || o < l) && (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 (Ba(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 N5(e, t, r, i, o, s = Xn) {
    return r.startLexicalEnvironment(), e = s(e, t, Ca, i), o && (e = r.factory.ensureUseStrict(e)), N.mergeLexicalEnvironment(e, r.endLexicalEnvironment());
  }
  function zc(e, t, r, i = Xn) {
    let o;
    return r.startLexicalEnvironment(), e && (r.setLexicalEnvironmentFlags(1, !0), o = i(e, t, Oa), r.getLexicalEnvironmentFlags() & 2 && $o(r.getCompilerOptions()) >= 2 && (o = cMe(o, r)), r.setLexicalEnvironmentFlags(1, !1)), r.suspendLexicalEnvironment(), o;
  }
  function cMe(e, t) {
    let r;
    for (let i = 0; i < e.length; i++) {
      const o = e[i], s = lMe(o, t);
      (r || s !== o) && (r || (r = e.slice(0, i)), r[i] = s);
    }
    return r ? mt(t.factory.createNodeArray(r, e.hasTrailingComma), e) : e;
  }
  function lMe(e, t) {
    return e.dotDotDotToken ? e : Ja(e.name) ? uMe(e, t) : e.initializer ? dMe(e, e.name, e.initializer, t) : e;
  }
  function uMe(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 dMe(e, t, r, i) {
    const o = i.factory;
    return i.addInitializationStatement(o.createIfStatement(o.createTypeCheck(o.cloneNode(t), "undefined"), sr(mt(o.createBlock([
      o.createExpressionStatement(sr(mt(o.createAssignment(sr(o.cloneNode(t), 96), sr(r, 96 | go(r) | 3072)), e), 3072))
    ]), e), 3905))), o.updateParameterDeclaration(e, e.modifiers, e.dotDotDotToken, e.name, e.questionToken, e.type, void 0);
  }
  function Cf(e, t, r, i = ct) {
    r.resumeLexicalEnvironment();
    const o = i(e, t, IM), s = r.endLexicalEnvironment();
    if (kt(s)) {
      if (!o)
        return r.factory.createBlock(s);
      const l = r.factory.converters.convertToFunctionBlock(o), f = N.mergeLexicalEnvironment(l.statements, s);
      return r.factory.updateBlock(l, f);
    }
    return o;
  }
  function g_(e, t, r, i = ct) {
    r.startBlockScope();
    const o = i(e, t, Ca, r.factory.liftToBlock);
    D.assert(o);
    const s = r.endBlockScope();
    return kt(s) ? oo(o) ? (s.push(...o.statements), r.factory.updateBlock(o, s)) : (s.push(o), r.factory.createBlock(s)) : o;
  }
  function g8(e, t, r = t) {
    if (r === t || e.length <= 1)
      return Xn(e, t, yt);
    let i = 0;
    const o = e.length;
    return Xn(e, (s) => {
      const l = i < o - 1;
      return i++, l ? r(s) : t(s);
    }, yt);
  }
  function Gn(e, t, r, i = Xn, o, s = ct) {
    if (e === void 0)
      return;
    const l = Rme[e.kind];
    return l === void 0 ? e : l(e, t, r, i, s, o);
  }
  function fMe(e) {
    return D.assert(e.length <= 1, "Too many nodes written to output."), Tm(e);
  }
  var Rme, _Me = C({
    "src/compiler/visitorPublic.ts"() {
      wa(), Rme = {
        [163]: function(t, r, i, o, s, l) {
          return i.factory.updateQualifiedName(t, D.checkDefined(s(t.left, r, Zd)), D.checkDefined(s(t.right, r, Ve)));
        },
        [164]: function(t, r, i, o, s, l) {
          return i.factory.updateComputedPropertyName(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [165]: function(t, r, i, o, s, l) {
          return i.factory.updateTypeParameterDeclaration(t, o(t.modifiers, r, lo), D.checkDefined(s(t.name, r, Ve)), s(t.constraint, r, Mi), s(t.default, r, Mi));
        },
        [166]: function(t, r, i, o, s, l) {
          return i.factory.updateParameterDeclaration(t, o(t.modifiers, r, tc), l ? s(t.dotDotDotToken, l, x7) : t.dotDotDotToken, D.checkDefined(s(t.name, r, _h)), l ? s(t.questionToken, l, Nv) : t.questionToken, s(t.type, r, Mi), s(t.initializer, r, yt));
        },
        [167]: function(t, r, i, o, s, l) {
          return i.factory.updateDecorator(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [168]: function(t, r, i, o, s, l) {
          return i.factory.updatePropertySignature(t, o(t.modifiers, r, lo), D.checkDefined(s(t.name, r, gc)), l ? s(t.questionToken, l, Nv) : t.questionToken, s(t.type, r, Mi));
        },
        [169]: function(t, r, i, o, s, l) {
          var f, d;
          return i.factory.updatePropertyDeclaration(t, o(t.modifiers, r, tc), D.checkDefined(s(t.name, r, gc)), l ? s((f = t.questionToken) != null ? f : t.exclamationToken, l, o_e) : (d = t.questionToken) != null ? d : t.exclamationToken, s(t.type, r, Mi), s(t.initializer, r, yt));
        },
        [170]: function(t, r, i, o, s, l) {
          return i.factory.updateMethodSignature(t, o(t.modifiers, r, lo), D.checkDefined(s(t.name, r, gc)), l ? s(t.questionToken, l, Nv) : t.questionToken, o(t.typeParameters, r, Pc), o(t.parameters, r, Oa), s(t.type, r, Mi));
        },
        [171]: function(t, r, i, o, s, l) {
          return i.factory.updateMethodDeclaration(t, o(t.modifiers, r, tc), l ? s(t.asteriskToken, l, bO) : t.asteriskToken, D.checkDefined(s(t.name, r, gc)), l ? s(t.questionToken, l, Nv) : t.questionToken, o(t.typeParameters, r, Pc), zc(t.parameters, r, i, o), s(t.type, r, Mi), Cf(t.body, r, i, s));
        },
        [173]: function(t, r, i, o, s, l) {
          return i.factory.updateConstructorDeclaration(t, o(t.modifiers, r, tc), zc(t.parameters, r, i, o), Cf(t.body, r, i, s));
        },
        [174]: function(t, r, i, o, s, l) {
          return i.factory.updateGetAccessorDeclaration(t, o(t.modifiers, r, tc), D.checkDefined(s(t.name, r, gc)), zc(t.parameters, r, i, o), s(t.type, r, Mi), Cf(t.body, r, i, s));
        },
        [175]: function(t, r, i, o, s, l) {
          return i.factory.updateSetAccessorDeclaration(t, o(t.modifiers, r, tc), D.checkDefined(s(t.name, r, gc)), zc(t.parameters, r, i, o), Cf(t.body, r, i, s));
        },
        [172]: function(t, r, i, o, s, l) {
          return i.startLexicalEnvironment(), i.suspendLexicalEnvironment(), i.factory.updateClassStaticBlockDeclaration(t, Cf(t.body, r, i, s));
        },
        [176]: function(t, r, i, o, s, l) {
          return i.factory.updateCallSignature(t, o(t.typeParameters, r, Pc), o(t.parameters, r, Oa), s(t.type, r, Mi));
        },
        [177]: function(t, r, i, o, s, l) {
          return i.factory.updateConstructSignature(t, o(t.typeParameters, r, Pc), o(t.parameters, r, Oa), s(t.type, r, Mi));
        },
        [178]: function(t, r, i, o, s, l) {
          return i.factory.updateIndexSignature(t, o(t.modifiers, r, tc), o(t.parameters, r, Oa), D.checkDefined(s(t.type, r, Mi)));
        },
        [179]: function(t, r, i, o, s, l) {
          return i.factory.updateTypePredicateNode(t, s(t.assertsModifier, r, Lfe), D.checkDefined(s(t.parameterName, r, s_e)), s(t.type, r, Mi));
        },
        [180]: function(t, r, i, o, s, l) {
          return i.factory.updateTypeReferenceNode(t, D.checkDefined(s(t.typeName, r, Zd)), o(t.typeArguments, r, Mi));
        },
        [181]: function(t, r, i, o, s, l) {
          return i.factory.updateFunctionTypeNode(t, o(t.typeParameters, r, Pc), o(t.parameters, r, Oa), D.checkDefined(s(t.type, r, Mi)));
        },
        [182]: function(t, r, i, o, s, l) {
          return i.factory.updateConstructorTypeNode(t, o(t.modifiers, r, lo), o(t.typeParameters, r, Pc), o(t.parameters, r, Oa), D.checkDefined(s(t.type, r, Mi)));
        },
        [183]: function(t, r, i, o, s, l) {
          return i.factory.updateTypeQueryNode(t, D.checkDefined(s(t.exprName, r, Zd)), o(t.typeArguments, r, Mi));
        },
        [184]: function(t, r, i, o, s, l) {
          return i.factory.updateTypeLiteralNode(t, o(t.members, r, rT));
        },
        [185]: function(t, r, i, o, s, l) {
          return i.factory.updateArrayTypeNode(t, D.checkDefined(s(t.elementType, r, Mi)));
        },
        [186]: function(t, r, i, o, s, l) {
          return i.factory.updateTupleTypeNode(t, o(t.elements, r, Mi));
        },
        [187]: function(t, r, i, o, s, l) {
          return i.factory.updateOptionalTypeNode(t, D.checkDefined(s(t.type, r, Mi)));
        },
        [188]: function(t, r, i, o, s, l) {
          return i.factory.updateRestTypeNode(t, D.checkDefined(s(t.type, r, Mi)));
        },
        [189]: function(t, r, i, o, s, l) {
          return i.factory.updateUnionTypeNode(t, o(t.types, r, Mi));
        },
        [190]: function(t, r, i, o, s, l) {
          return i.factory.updateIntersectionTypeNode(t, o(t.types, r, Mi));
        },
        [191]: function(t, r, i, o, s, l) {
          return i.factory.updateConditionalTypeNode(t, D.checkDefined(s(t.checkType, r, Mi)), D.checkDefined(s(t.extendsType, r, Mi)), D.checkDefined(s(t.trueType, r, Mi)), D.checkDefined(s(t.falseType, r, Mi)));
        },
        [192]: function(t, r, i, o, s, l) {
          return i.factory.updateInferTypeNode(t, D.checkDefined(s(t.typeParameter, r, Pc)));
        },
        [202]: function(t, r, i, o, s, l) {
          return i.factory.updateImportTypeNode(t, D.checkDefined(s(t.argument, r, Mi)), s(t.assertions, r, Bfe), s(t.qualifier, r, Zd), o(t.typeArguments, r, Mi), t.isTypeOf);
        },
        [298]: function(t, r, i, o, s, l) {
          return i.factory.updateImportTypeAssertionContainer(t, D.checkDefined(s(t.assertClause, r, R7)), t.multiLine);
        },
        [199]: function(t, r, i, o, s, l) {
          return i.factory.updateNamedTupleMember(t, l ? s(t.dotDotDotToken, l, x7) : t.dotDotDotToken, D.checkDefined(s(t.name, r, Ve)), l ? s(t.questionToken, l, Nv) : t.questionToken, D.checkDefined(s(t.type, r, Mi)));
        },
        [193]: function(t, r, i, o, s, l) {
          return i.factory.updateParenthesizedType(t, D.checkDefined(s(t.type, r, Mi)));
        },
        [195]: function(t, r, i, o, s, l) {
          return i.factory.updateTypeOperatorNode(t, D.checkDefined(s(t.type, r, Mi)));
        },
        [196]: function(t, r, i, o, s, l) {
          return i.factory.updateIndexedAccessTypeNode(t, D.checkDefined(s(t.objectType, r, Mi)), D.checkDefined(s(t.indexType, r, Mi)));
        },
        [197]: function(t, r, i, o, s, l) {
          return i.factory.updateMappedTypeNode(t, l ? s(t.readonlyToken, l, c_e) : t.readonlyToken, D.checkDefined(s(t.typeParameter, r, Pc)), s(t.nameType, r, Mi), l ? s(t.questionToken, l, l_e) : t.questionToken, s(t.type, r, Mi), o(t.members, r, rT));
        },
        [198]: function(t, r, i, o, s, l) {
          return i.factory.updateLiteralTypeNode(t, D.checkDefined(s(t.literal, r, _le)));
        },
        [200]: function(t, r, i, o, s, l) {
          return i.factory.updateTemplateLiteralType(t, D.checkDefined(s(t.head, r, fC)), o(t.templateSpans, r, Nfe));
        },
        [201]: function(t, r, i, o, s, l) {
          return i.factory.updateTemplateLiteralTypeSpan(t, D.checkDefined(s(t.type, r, Mi)), D.checkDefined(s(t.literal, r, xM)));
        },
        [203]: function(t, r, i, o, s, l) {
          return i.factory.updateObjectBindingPattern(t, o(t.elements, r, us));
        },
        [204]: function(t, r, i, o, s, l) {
          return i.factory.updateArrayBindingPattern(t, o(t.elements, r, CM));
        },
        [205]: function(t, r, i, o, s, l) {
          return i.factory.updateBindingElement(t, l ? s(t.dotDotDotToken, l, x7) : t.dotDotDotToken, s(t.propertyName, r, gc), D.checkDefined(s(t.name, r, _h)), s(t.initializer, r, yt));
        },
        [206]: function(t, r, i, o, s, l) {
          return i.factory.updateArrayLiteralExpression(t, o(t.elements, r, yt));
        },
        [207]: function(t, r, i, o, s, l) {
          return i.factory.updateObjectLiteralExpression(t, o(t.properties, r, fy));
        },
        [208]: function(t, r, i, o, s, l) {
          return bM(t) ? i.factory.updatePropertyAccessChain(t, D.checkDefined(s(t.expression, r, yt)), l ? s(t.questionDotToken, l, A7) : t.questionDotToken, D.checkDefined(s(t.name, r, ng))) : i.factory.updatePropertyAccessExpression(t, D.checkDefined(s(t.expression, r, yt)), D.checkDefined(s(t.name, r, ng)));
        },
        [209]: function(t, r, i, o, s, l) {
          return nW(t) ? i.factory.updateElementAccessChain(t, D.checkDefined(s(t.expression, r, yt)), l ? s(t.questionDotToken, l, A7) : t.questionDotToken, D.checkDefined(s(t.argumentExpression, r, yt))) : i.factory.updateElementAccessExpression(t, D.checkDefined(s(t.expression, r, yt)), D.checkDefined(s(t.argumentExpression, r, yt)));
        },
        [210]: function(t, r, i, o, s, l) {
          return tT(t) ? i.factory.updateCallChain(t, D.checkDefined(s(t.expression, r, yt)), l ? s(t.questionDotToken, l, A7) : t.questionDotToken, o(t.typeArguments, r, Mi), o(t.arguments, r, yt)) : i.factory.updateCallExpression(t, D.checkDefined(s(t.expression, r, yt)), o(t.typeArguments, r, Mi), o(t.arguments, r, yt));
        },
        [211]: function(t, r, i, o, s, l) {
          return i.factory.updateNewExpression(t, D.checkDefined(s(t.expression, r, yt)), o(t.typeArguments, r, Mi), o(t.arguments, r, yt));
        },
        [212]: function(t, r, i, o, s, l) {
          return i.factory.updateTaggedTemplateExpression(t, D.checkDefined(s(t.tag, r, yt)), o(t.typeArguments, r, Mi), D.checkDefined(s(t.template, r, AA)));
        },
        [213]: function(t, r, i, o, s, l) {
          return i.factory.updateTypeAssertion(t, D.checkDefined(s(t.type, r, Mi)), D.checkDefined(s(t.expression, r, yt)));
        },
        [214]: function(t, r, i, o, s, l) {
          return i.factory.updateParenthesizedExpression(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [215]: function(t, r, i, o, s, l) {
          return i.factory.updateFunctionExpression(t, o(t.modifiers, r, lo), l ? s(t.asteriskToken, l, bO) : t.asteriskToken, s(t.name, r, Ve), o(t.typeParameters, r, Pc), zc(t.parameters, r, i, o), s(t.type, r, Mi), Cf(t.body, r, i, s));
        },
        [216]: function(t, r, i, o, s, l) {
          return i.factory.updateArrowFunction(t, o(t.modifiers, r, lo), o(t.typeParameters, r, Pc), zc(t.parameters, r, i, o), s(t.type, r, Mi), l ? D.checkDefined(s(t.equalsGreaterThanToken, l, Afe)) : t.equalsGreaterThanToken, Cf(t.body, r, i, s));
        },
        [217]: function(t, r, i, o, s, l) {
          return i.factory.updateDeleteExpression(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [218]: function(t, r, i, o, s, l) {
          return i.factory.updateTypeOfExpression(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [219]: function(t, r, i, o, s, l) {
          return i.factory.updateVoidExpression(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [220]: function(t, r, i, o, s, l) {
          return i.factory.updateAwaitExpression(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [221]: function(t, r, i, o, s, l) {
          return i.factory.updatePrefixUnaryExpression(t, D.checkDefined(s(t.operand, r, yt)));
        },
        [222]: function(t, r, i, o, s, l) {
          return i.factory.updatePostfixUnaryExpression(t, D.checkDefined(s(t.operand, r, yt)));
        },
        [223]: function(t, r, i, o, s, l) {
          return i.factory.updateBinaryExpression(t, D.checkDefined(s(t.left, r, yt)), l ? D.checkDefined(s(t.operatorToken, l, d_e)) : t.operatorToken, D.checkDefined(s(t.right, r, yt)));
        },
        [224]: function(t, r, i, o, s, l) {
          return i.factory.updateConditionalExpression(t, D.checkDefined(s(t.condition, r, yt)), l ? D.checkDefined(s(t.questionToken, l, Nv)) : t.questionToken, D.checkDefined(s(t.whenTrue, r, yt)), l ? D.checkDefined(s(t.colonToken, l, xfe)) : t.colonToken, D.checkDefined(s(t.whenFalse, r, yt)));
        },
        [225]: function(t, r, i, o, s, l) {
          return i.factory.updateTemplateExpression(t, D.checkDefined(s(t.head, r, fC)), o(t.templateSpans, r, kk));
        },
        [226]: function(t, r, i, o, s, l) {
          return i.factory.updateYieldExpression(t, l ? s(t.asteriskToken, l, bO) : t.asteriskToken, s(t.expression, r, yt));
        },
        [227]: function(t, r, i, o, s, l) {
          return i.factory.updateSpreadElement(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [228]: function(t, r, i, o, s, l) {
          return i.factory.updateClassExpression(t, o(t.modifiers, r, tc), s(t.name, r, Ve), o(t.typeParameters, r, Pc), o(t.heritageClauses, r, Bd), o(t.members, r, Ml));
        },
        [230]: function(t, r, i, o, s, l) {
          return i.factory.updateExpressionWithTypeArguments(t, D.checkDefined(s(t.expression, r, yt)), o(t.typeArguments, r, Mi));
        },
        [231]: function(t, r, i, o, s, l) {
          return i.factory.updateAsExpression(t, D.checkDefined(s(t.expression, r, yt)), D.checkDefined(s(t.type, r, Mi)));
        },
        [235]: function(t, r, i, o, s, l) {
          return i.factory.updateSatisfiesExpression(t, D.checkDefined(s(t.expression, r, yt)), D.checkDefined(s(t.type, r, Mi)));
        },
        [232]: function(t, r, i, o, s, l) {
          return pu(t) ? i.factory.updateNonNullChain(t, D.checkDefined(s(t.expression, r, yt))) : i.factory.updateNonNullExpression(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [233]: function(t, r, i, o, s, l) {
          return i.factory.updateMetaProperty(t, D.checkDefined(s(t.name, r, Ve)));
        },
        [236]: function(t, r, i, o, s, l) {
          return i.factory.updateTemplateSpan(t, D.checkDefined(s(t.expression, r, yt)), D.checkDefined(s(t.literal, r, xM)));
        },
        [238]: function(t, r, i, o, s, l) {
          return i.factory.updateBlock(t, o(t.statements, r, Ca));
        },
        [240]: function(t, r, i, o, s, l) {
          return i.factory.updateVariableStatement(t, o(t.modifiers, r, tc), D.checkDefined(s(t.declarationList, r, Mu)));
        },
        [241]: function(t, r, i, o, s, l) {
          return i.factory.updateExpressionStatement(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [242]: function(t, r, i, o, s, l) {
          return i.factory.updateIfStatement(t, D.checkDefined(s(t.expression, r, yt)), D.checkDefined(s(t.thenStatement, r, Ca, i.factory.liftToBlock)), s(t.elseStatement, r, Ca, i.factory.liftToBlock));
        },
        [243]: function(t, r, i, o, s, l) {
          return i.factory.updateDoStatement(t, g_(t.statement, r, i, s), D.checkDefined(s(t.expression, r, yt)));
        },
        [244]: function(t, r, i, o, s, l) {
          return i.factory.updateWhileStatement(t, D.checkDefined(s(t.expression, r, yt)), g_(t.statement, r, i, s));
        },
        [245]: function(t, r, i, o, s, l) {
          return i.factory.updateForStatement(t, s(t.initializer, r, zp), s(t.condition, r, yt), s(t.incrementor, r, yt), g_(t.statement, r, i, s));
        },
        [246]: function(t, r, i, o, s, l) {
          return i.factory.updateForInStatement(t, D.checkDefined(s(t.initializer, r, zp)), D.checkDefined(s(t.expression, r, yt)), g_(t.statement, r, i, s));
        },
        [247]: function(t, r, i, o, s, l) {
          return i.factory.updateForOfStatement(t, l ? s(t.awaitModifier, l, nJ) : t.awaitModifier, D.checkDefined(s(t.initializer, r, zp)), D.checkDefined(s(t.expression, r, yt)), g_(t.statement, r, i, s));
        },
        [248]: function(t, r, i, o, s, l) {
          return i.factory.updateContinueStatement(t, s(t.label, r, Ve));
        },
        [249]: function(t, r, i, o, s, l) {
          return i.factory.updateBreakStatement(t, s(t.label, r, Ve));
        },
        [250]: function(t, r, i, o, s, l) {
          return i.factory.updateReturnStatement(t, s(t.expression, r, yt));
        },
        [251]: function(t, r, i, o, s, l) {
          return i.factory.updateWithStatement(t, D.checkDefined(s(t.expression, r, yt)), D.checkDefined(s(t.statement, r, Ca, i.factory.liftToBlock)));
        },
        [252]: function(t, r, i, o, s, l) {
          return i.factory.updateSwitchStatement(t, D.checkDefined(s(t.expression, r, yt)), D.checkDefined(s(t.caseBlock, r, IO)));
        },
        [253]: function(t, r, i, o, s, l) {
          return i.factory.updateLabeledStatement(t, D.checkDefined(s(t.label, r, Ve)), D.checkDefined(s(t.statement, r, Ca, i.factory.liftToBlock)));
        },
        [254]: function(t, r, i, o, s, l) {
          return i.factory.updateThrowStatement(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [255]: function(t, r, i, o, s, l) {
          return i.factory.updateTryStatement(t, D.checkDefined(s(t.tryBlock, r, oo)), s(t.catchClause, r, EC), s(t.finallyBlock, r, oo));
        },
        [257]: function(t, r, i, o, s, l) {
          return i.factory.updateVariableDeclaration(t, D.checkDefined(s(t.name, r, _h)), l ? s(t.exclamationToken, l, EO) : t.exclamationToken, s(t.type, r, Mi), s(t.initializer, r, yt));
        },
        [258]: function(t, r, i, o, s, l) {
          return i.factory.updateVariableDeclarationList(t, o(t.declarations, r, zi));
        },
        [259]: function(t, r, i, o, s, l) {
          return i.factory.updateFunctionDeclaration(t, o(t.modifiers, r, lo), l ? s(t.asteriskToken, l, bO) : t.asteriskToken, s(t.name, r, Ve), o(t.typeParameters, r, Pc), zc(t.parameters, r, i, o), s(t.type, r, Mi), Cf(t.body, r, i, s));
        },
        [260]: function(t, r, i, o, s, l) {
          return i.factory.updateClassDeclaration(t, o(t.modifiers, r, tc), s(t.name, r, Ve), o(t.typeParameters, r, Pc), o(t.heritageClauses, r, Bd), o(t.members, r, Ml));
        },
        [261]: function(t, r, i, o, s, l) {
          return i.factory.updateInterfaceDeclaration(t, o(t.modifiers, r, tc), D.checkDefined(s(t.name, r, Ve)), o(t.typeParameters, r, Pc), o(t.heritageClauses, r, Bd), o(t.members, r, rT));
        },
        [262]: function(t, r, i, o, s, l) {
          return i.factory.updateTypeAliasDeclaration(t, o(t.modifiers, r, tc), D.checkDefined(s(t.name, r, Ve)), o(t.typeParameters, r, Pc), D.checkDefined(s(t.type, r, Mi)));
        },
        [263]: function(t, r, i, o, s, l) {
          return i.factory.updateEnumDeclaration(t, o(t.modifiers, r, tc), D.checkDefined(s(t.name, r, Ve)), o(t.members, r, P1));
        },
        [264]: function(t, r, i, o, s, l) {
          return i.factory.updateModuleDeclaration(t, o(t.modifiers, r, tc), D.checkDefined(s(t.name, r, u_e)), s(t.body, r, hle));
        },
        [265]: function(t, r, i, o, s, l) {
          return i.factory.updateModuleBlock(t, o(t.statements, r, Ca));
        },
        [266]: function(t, r, i, o, s, l) {
          return i.factory.updateCaseBlock(t, o(t.clauses, r, vW));
        },
        [267]: function(t, r, i, o, s, l) {
          return i.factory.updateNamespaceExportDeclaration(t, D.checkDefined(s(t.name, r, Ve)));
        },
        [268]: function(t, r, i, o, s, l) {
          return i.factory.updateImportEqualsDeclaration(t, o(t.modifiers, r, tc), t.isTypeOnly, D.checkDefined(s(t.name, r, Ve)), D.checkDefined(s(t.moduleReference, r, vle)));
        },
        [269]: function(t, r, i, o, s, l) {
          return i.factory.updateImportDeclaration(t, o(t.modifiers, r, tc), s(t.importClause, r, Vm), D.checkDefined(s(t.moduleSpecifier, r, yt)), s(t.assertClause, r, R7));
        },
        [296]: function(t, r, i, o, s, l) {
          return i.factory.updateAssertClause(t, o(t.elements, r, Gfe), t.multiLine);
        },
        [297]: function(t, r, i, o, s, l) {
          return i.factory.updateAssertEntry(t, D.checkDefined(s(t.name, r, nle)), D.checkDefined(s(t.value, r, yt)));
        },
        [270]: function(t, r, i, o, s, l) {
          return i.factory.updateImportClause(t, t.isTypeOnly, s(t.name, r, Ve), s(t.namedBindings, r, hW));
        },
        [271]: function(t, r, i, o, s, l) {
          return i.factory.updateNamespaceImport(t, D.checkDefined(s(t.name, r, Ve)));
        },
        [277]: function(t, r, i, o, s, l) {
          return i.factory.updateNamespaceExport(t, D.checkDefined(s(t.name, r, Ve)));
        },
        [272]: function(t, r, i, o, s, l) {
          return i.factory.updateNamedImports(t, o(t.elements, r, xd));
        },
        [273]: function(t, r, i, o, s, l) {
          return i.factory.updateImportSpecifier(t, t.isTypeOnly, s(t.propertyName, r, Ve), D.checkDefined(s(t.name, r, Ve)));
        },
        [274]: function(t, r, i, o, s, l) {
          return i.factory.updateExportAssignment(t, o(t.modifiers, r, tc), D.checkDefined(s(t.expression, r, yt)));
        },
        [275]: function(t, r, i, o, s, l) {
          return i.factory.updateExportDeclaration(t, o(t.modifiers, r, tc), t.isTypeOnly, s(t.exportClause, r, iW), s(t.moduleSpecifier, r, yt), s(t.assertClause, r, R7));
        },
        [276]: function(t, r, i, o, s, l) {
          return i.factory.updateNamedExports(t, o(t.elements, r, cd));
        },
        [278]: function(t, r, i, o, s, l) {
          return i.factory.updateExportSpecifier(t, t.isTypeOnly, s(t.propertyName, r, Ve), D.checkDefined(s(t.name, r, Ve)));
        },
        [280]: function(t, r, i, o, s, l) {
          return i.factory.updateExternalModuleReference(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [281]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxElement(t, D.checkDefined(s(t.openingElement, r, Ch)), o(t.children, r, JR), D.checkDefined(s(t.closingElement, r, wx)));
        },
        [282]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxSelfClosingElement(t, D.checkDefined(s(t.tagName, r, AI)), o(t.typeArguments, r, Mi), D.checkDefined(s(t.attributes, r, O1)));
        },
        [283]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxOpeningElement(t, D.checkDefined(s(t.tagName, r, AI)), o(t.typeArguments, r, Mi), D.checkDefined(s(t.attributes, r, O1)));
        },
        [284]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxClosingElement(t, D.checkDefined(s(t.tagName, r, AI)));
        },
        [285]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxFragment(t, D.checkDefined(s(t.openingFragment, r, Rx)), o(t.children, r, JR), D.checkDefined(s(t.closingFragment, r, Ufe)));
        },
        [288]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxAttribute(t, D.checkDefined(s(t.name, r, Ve)), s(t.initializer, r, ble));
        },
        [289]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxAttributes(t, o(t.properties, r, kM));
        },
        [290]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxSpreadAttribute(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [291]: function(t, r, i, o, s, l) {
          return i.factory.updateJsxExpression(t, s(t.expression, r, yt));
        },
        [292]: function(t, r, i, o, s, l) {
          return i.factory.updateCaseClause(t, D.checkDefined(s(t.expression, r, yt)), o(t.statements, r, Ca));
        },
        [293]: function(t, r, i, o, s, l) {
          return i.factory.updateDefaultClause(t, o(t.statements, r, Ca));
        },
        [294]: function(t, r, i, o, s, l) {
          return i.factory.updateHeritageClause(t, o(t.types, r, by));
        },
        [295]: function(t, r, i, o, s, l) {
          return i.factory.updateCatchClause(t, s(t.variableDeclaration, r, zi), D.checkDefined(s(t.block, r, oo)));
        },
        [299]: function(t, r, i, o, s, l) {
          return i.factory.updatePropertyAssignment(t, D.checkDefined(s(t.name, r, gc)), D.checkDefined(s(t.initializer, r, yt)));
        },
        [300]: function(t, r, i, o, s, l) {
          return i.factory.updateShorthandPropertyAssignment(t, D.checkDefined(s(t.name, r, Ve)), s(t.objectAssignmentInitializer, r, yt));
        },
        [301]: function(t, r, i, o, s, l) {
          return i.factory.updateSpreadAssignment(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [302]: function(t, r, i, o, s, l) {
          return i.factory.updateEnumMember(t, D.checkDefined(s(t.name, r, gc)), s(t.initializer, r, yt));
        },
        [308]: function(t, r, i, o, s, l) {
          return i.factory.updateSourceFile(t, N5(t.statements, r, i));
        },
        [356]: function(t, r, i, o, s, l) {
          return i.factory.updatePartiallyEmittedExpression(t, D.checkDefined(s(t.expression, r, yt)));
        },
        [357]: function(t, r, i, o, s, l) {
          return i.factory.updateCommaListExpression(t, o(t.elements, r, yt));
        }
      };
    }
  });
  function Nme(e, t, r, i, o) {
    var { enter: s, exit: l } = o.extendedDiagnostics ? j4("Source Map", "beforeSourcemap", "afterSourcemap") : H4, f = [], d = [], y = /* @__PURE__ */ new Map(), h, b = [], A, L = [], I = "", O = 0, k = 0, B = 0, V = 0, H = 0, te = 0, X = !1, Y = 0, P = 0, de = 0, ne = 0, ye = 0, ie = 0, W = !1, ce = !1, pe = !1;
    return {
      getSources: () => f,
      addSource: ve,
      setSourceContent: Te,
      addName: ee,
      addMapping: Be,
      appendSourceMap: We,
      toJSON: Fe,
      toString: () => JSON.stringify(Fe())
    };
    function ve(Ct) {
      s();
      const Et = WS(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)), l(), Vt;
    }
    function Te(Ct, Et) {
      if (s(), Et !== null) {
        for (h || (h = []); h.length < Ct; )
          h.push(null);
        h[Ct] = Et;
      }
      l();
    }
    function ee(Ct) {
      s(), A || (A = /* @__PURE__ */ new Map());
      let Et = A.get(Ct);
      return Et === void 0 && (Et = b.length, b.push(Ct), A.set(Ct, Et)), l(), Et;
    }
    function $e(Ct, Et) {
      return !W || Y !== Ct || P !== Et;
    }
    function Ue(Ct, Et, Vt) {
      return Ct !== void 0 && Et !== void 0 && Vt !== void 0 && de === Ct && (ne > Et || ne === Et && ye > Vt);
    }
    function Be(Ct, Et, Vt, tt, at, an) {
      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(), ($e(Ct, Et) || Ue(Vt, tt, at)) && (Xe(), Y = Ct, P = Et, ce = !1, pe = !1, W = !0), Vt !== void 0 && tt !== void 0 && at !== void 0 && (de = Vt, ne = tt, ye = at, ce = !0, an !== void 0 && (ie = an, pe = !0)), l();
    }
    function We(Ct, Et, Vt, tt, at, an) {
      D.assert(Ct >= Y, "generatedLine cannot backtrack"), D.assert(Et >= 0, "generatedCharacter cannot be negative"), s();
      const Xt = [];
      let Pn;
      const Wn = JK(Vt.mappings);
      for (const In of Wn) {
        if (an && (In.generatedLine > an.line || In.generatedLine === an.line && In.generatedCharacter > an.character))
          break;
        if (at && (In.generatedLine < at.line || at.line === In.generatedLine && In.generatedCharacter < at.character))
          continue;
        let Yt, _r, Ai, Ki;
        if (In.sourceIndex !== void 0) {
          if (Yt = Xt[In.sourceIndex], Yt === void 0) {
            const Ht = Vt.sources[In.sourceIndex], dn = Vt.sourceRoot ? Pi(Vt.sourceRoot, Ht) : Ht, ir = Pi(_i(tt), dn);
            Xt[In.sourceIndex] = Yt = ve(ir), Vt.sourcesContent && typeof Vt.sourcesContent[In.sourceIndex] == "string" && Te(Yt, Vt.sourcesContent[In.sourceIndex]);
          }
          _r = In.sourceLine, Ai = In.sourceCharacter, Vt.names && In.nameIndex !== void 0 && (Pn || (Pn = []), Ki = Pn[In.nameIndex], Ki === void 0 && (Pn[In.nameIndex] = Ki = ee(Vt.names[In.nameIndex])));
        }
        const Xi = In.generatedLine - (at ? at.line : 0), Nr = Xi + Ct, At = at && at.line === In.generatedLine ? In.generatedCharacter - at.character : In.generatedCharacter, vn = Xi === 0 ? At + Et : At;
        Be(Nr, vn, Yt, _r, Ai, Ki);
      }
      l();
    }
    function Oe() {
      return !X || O !== Y || k !== P || B !== de || V !== ne || H !== ye || te !== ie;
    }
    function Me(Ct) {
      L.push(Ct), L.length >= 1024 && He();
    }
    function Xe() {
      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 - B), B = de, st(ne - V), V = ne, st(ye - H), H = ye, pe && (st(ie - te), te = ie)), X = !0, l();
      }
    }
    function He() {
      L.length > 0 && (I += String.fromCharCode.apply(void 0, L), L.length = 0);
    }
    function Fe() {
      return Xe(), He(), {
        version: 3,
        file: t,
        sourceRoot: r,
        sources: d,
        names: b,
        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(hMe(Et));
      } while (Ct > 0);
    }
  }
  function Ome(e, t) {
    return {
      getLineCount: () => t.length,
      getLineText: (r) => e.substring(t[r], t[r + 1])
    };
  }
  function Pme(e) {
    for (let t = e.getLineCount() - 1; t >= 0; t--) {
      const r = e.getLineText(t), i = O5.exec(r);
      if (i)
        return lR(i[1]);
      if (!r.match(P5))
        break;
    }
  }
  function pMe(e) {
    return typeof e == "string" || e === null;
  }
  function Mme(e) {
    return e !== null && typeof e == "object" && e.version === 3 && typeof e.file == "string" && typeof e.mappings == "string" && Ba(e.sources) && Rn(e.sources, Ua) && (e.sourceRoot === void 0 || e.sourceRoot === null || typeof e.sourceRoot == "string") && (e.sourcesContent === void 0 || e.sourcesContent === null || Ba(e.sourcesContent) && Rn(e.sourcesContent, pMe)) && (e.names === void 0 || e.names === null || Ba(e.names) && Rn(e.names, Ua));
  }
  function qK(e) {
    try {
      const t = JSON.parse(e);
      if (Mme(t))
        return t;
    } catch {
    }
  }
  function JK(e) {
    let t = !1, r = 0, i = 0, o = 0, s = 0, l = 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 B = e.charCodeAt(r);
          if (B === 59) {
            i++, o = 0, r++;
            continue;
          }
          if (B === 44) {
            r++;
            continue;
          }
          let V = !1, H = !1;
          if (o += k(), I())
            return b();
          if (o < 0)
            return L("Invalid generatedCharacter found");
          if (!O()) {
            if (V = !0, s += k(), I())
              return b();
            if (s < 0)
              return L("Invalid sourceIndex found");
            if (O())
              return L("Unsupported Format: No entries after sourceIndex");
            if (l += k(), I())
              return b();
            if (l < 0)
              return L("Invalid sourceLine found");
            if (O())
              return L("Unsupported Format: No entries after sourceLine");
            if (f += k(), I())
              return b();
            if (f < 0)
              return L("Invalid sourceCharacter found");
            if (!O()) {
              if (H = !0, d += k(), I())
                return b();
              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 b();
      },
      [Symbol.iterator]() {
        return this;
      }
    };
    function h(B, V) {
      return {
        generatedLine: i,
        generatedCharacter: o,
        sourceIndex: B ? s : void 0,
        sourceLine: B ? l : void 0,
        sourceCharacter: B ? f : void 0,
        nameIndex: V ? d : void 0
      };
    }
    function b() {
      return t = !0, { value: void 0, done: !0 };
    }
    function A(B) {
      y === void 0 && (y = B);
    }
    function L(B) {
      return A(B), b();
    }
    function I() {
      return y !== void 0;
    }
    function O() {
      return r === e.length || e.charCodeAt(r) === 44 || e.charCodeAt(r) === 59;
    }
    function k() {
      let B = !0, V = 0, H = 0;
      for (; B; r++) {
        if (r >= e.length)
          return A("Error in decoding base64VLQFormatDecode, past the mapping string"), -1;
        const te = gMe(e.charCodeAt(r));
        if (te === -1)
          return A("Invalid character in VLQ"), -1;
        B = (te & 32) !== 0, H = H | (te & 31) << V, V += 5;
      }
      return H & 1 ? (H = H >> 1, H = -H) : H = H >> 1, H;
    }
  }
  function mMe(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 Fme(e) {
    return e.sourceIndex !== void 0 && e.sourceLine !== void 0 && e.sourceCharacter !== void 0;
  }
  function hMe(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 gMe(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 Bme(e) {
    return e.sourceIndex !== void 0 && e.sourcePosition !== void 0;
  }
  function Gme(e, t) {
    return e.generatedPosition === t.generatedPosition && e.sourceIndex === t.sourceIndex && e.sourcePosition === t.sourcePosition;
  }
  function yMe(e, t) {
    return D.assert(e.sourceIndex === t.sourceIndex), Vs(e.sourcePosition, t.sourcePosition);
  }
  function vMe(e, t) {
    return Vs(e.generatedPosition, t.generatedPosition);
  }
  function bMe(e) {
    return e.sourcePosition;
  }
  function EMe(e) {
    return e.generatedPosition;
  }
  function Ume(e, t, r) {
    const i = _i(r), o = t.sourceRoot ? Da(t.sourceRoot, i) : i, s = Da(t.file, i), l = e.getSourceFileLike(s), f = t.sources.map((V) => Da(V, o)), d = new Map(f.map((V, H) => [e.getCanonicalFileName(V), H]));
    let y, h, b;
    return {
      getSourcePosition: B,
      getGeneratedPosition: k
    };
    function A(V) {
      const H = l !== void 0 ? kR(l, V.generatedLine, V.generatedCharacter, !0) : -1;
      let te, X;
      if (Fme(V)) {
        const Y = e.getSourceFileLike(f[V.sourceIndex]);
        te = t.sources[V.sourceIndex], X = Y !== void 0 ? kR(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 = JK(t.mappings), H = Do(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 (b === void 0) {
        const H = [];
        for (const te of L()) {
          if (!Bme(te))
            continue;
          let X = H[te.sourceIndex];
          X || (H[te.sourceIndex] = X = []), X.push(te);
        }
        b = H.map((te) => tR(te, yMe, Gme));
      }
      return b[V];
    }
    function O() {
      if (h === void 0) {
        const V = [];
        for (const H of L())
          V.push(H);
        h = tR(V, vMe, Gme);
      }
      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 = OS(te, V.pos, bMe, Vs);
      X < 0 && (X = ~X);
      const Y = te[X];
      return Y === void 0 || Y.sourceIndex !== H ? V : { fileName: s, pos: Y.generatedPosition };
    }
    function B(V) {
      const H = O();
      if (!kt(H))
        return V;
      let te = OS(H, V.pos, EMe, Vs);
      te < 0 && (te = ~te);
      const X = H[te];
      return X === void 0 || !Bme(X) ? V : { fileName: f[X.sourceIndex], pos: X.sourcePosition };
    }
  }
  var KK, O5, P5, M5, TMe = C({
    "src/compiler/sourcemap.ts"() {
      wa(), c1(), KK = /\/\/[@#] source[M]appingURL=(.+)\r?\n?$/, O5 = /^\/\/[@#] source[M]appingURL=(.+)\r?\n?$/, P5 = /^\s*(\/\/[@#] .*)?$/, M5 = {
        getSourcePosition: pc,
        getGeneratedPosition: pc
      };
    }
  });
  function Ic(e) {
    return e = Ec(e), e ? ds(e) : 0;
  }
  function SMe(e) {
    return !e || !Ey(e) ? !1 : kt(e.elements, Vme);
  }
  function Vme(e) {
    return e.propertyName !== void 0 && e.propertyName.escapedText === "default";
  }
  function J_(e, t) {
    return r;
    function r(o) {
      return o.kind === 308 ? t(o) : i(o);
    }
    function i(o) {
      return e.factory.createBundle(en(o.sourceFiles, t), o.prepends);
    }
  }
  function jme(e) {
    return !!VA(e);
  }
  function F5(e) {
    if (VA(e))
      return !0;
    const t = e.importClause && e.importClause.namedBindings;
    if (!t || !Ey(t))
      return !1;
    let r = 0;
    for (const i of t.elements)
      Vme(i) && r++;
    return r > 0 && r !== t.elements.length || !!(t.elements.length - r) && tx(e);
  }
  function XK(e) {
    return !F5(e) && (tx(e) || !!e.importClause && Ey(e.importClause.namedBindings) && SMe(e.importClause.namedBindings));
  }
  function YK(e, t, r, i) {
    const o = [], s = l_(), l = [], f = /* @__PURE__ */ new Map();
    let d, y = !1, h, b = !1, A = !1, L = !1;
    for (const k of t.statements)
      switch (k.kind) {
        case 269:
          o.push(k), !A && F5(k) && (A = !0), !L && XK(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), b = !0;
            else if (o.push(k), z_(k.exportClause))
              O(k);
            else {
              const B = k.exportClause.name;
              f.get(Pr(B)) || (Kk(l, Ic(k), B), f.set(Pr(B), !0), d = Bn(d, B)), A = !0;
            }
          else
            O(k);
          break;
        case 274:
          k.isExportEquals && !h && (h = k);
          break;
        case 240:
          if (Kr(k, 1))
            for (const B of k.declarationList.declarations)
              d = Hme(B, f, d);
          break;
        case 259:
          if (Kr(k, 1))
            if (Kr(k, 1024))
              y || (Kk(l, Ic(k), e.factory.getDeclarationName(k)), y = !0);
            else {
              const B = k.name;
              f.get(Pr(B)) || (Kk(l, Ic(k), B), f.set(Pr(B), !0), d = Bn(d, B));
            }
          break;
        case 260:
          if (Kr(k, 1))
            if (Kr(k, 1024))
              y || (Kk(l, Ic(k), e.factory.getDeclarationName(k)), y = !0);
            else {
              const B = k.name;
              B && !f.get(Pr(B)) && (Kk(l, Ic(k), B), f.set(Pr(B), !0), d = Bn(d, B));
            }
          break;
      }
    const I = IJ(e.factory, e.getEmitHelperFactory(), t, i, b, A, L);
    return I && o.unshift(I), { externalImports: o, exportSpecifiers: s, exportEquals: h, hasExportStarsToExportValues: b, exportedBindings: l, exportedNames: d, externalHelpersImportDeclaration: I };
    function O(k) {
      for (const B of ro(k.exportClause, z_).elements)
        if (!f.get(Pr(B.name))) {
          const V = B.propertyName || B.name;
          k.moduleSpecifier || s.add(Pr(V), B);
          const H = r.getReferencedImportDeclaration(V) || r.getReferencedValueDeclaration(V);
          H && Kk(l, Ic(H), B.name), f.set(Pr(B.name), !0), d = Bn(d, B.name);
        }
    }
  }
  function Hme(e, t, r) {
    if (Ja(e.name))
      for (const i of e.name.elements)
        kl(i) || (r = Hme(i, t, r));
    else if (!Tc(e.name)) {
      const i = Pr(e.name);
      t.get(i) || (t.set(i, !0), r = Bn(r, e.name));
    }
    return r;
  }
  function Kk(e, t, r) {
    let i = e[t];
    return i ? i.push(r) : e[t] = i = [r], i;
  }
  function U1(e) {
    return Es(e) || e.kind === 8 || Td(e.kind) || Ve(e);
  }
  function nm(e) {
    return !Ve(e) && U1(e);
  }
  function y8(e) {
    return e >= 64 && e <= 78;
  }
  function Xk(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 $K(e) {
    if (!nu(e))
      return;
    const t = Gs(e.expression);
    return NA(t) ? t : void 0;
  }
  function B5(e, t) {
    for (let r = t; r < e.length; r += 1) {
      const i = e[r];
      if ($K(i))
        return r;
    }
    return -1;
  }
  function QK(e, t, r) {
    return yn(e.members, (i) => AMe(i, t, r));
  }
  function xMe(e) {
    return CMe(e) || Lc(e);
  }
  function G5(e) {
    return yn(e.members, xMe);
  }
  function AMe(e, t, r) {
    return Za(e) && (!!e.initializer || !t) && pl(e) === r;
  }
  function CMe(e) {
    return Za(e) && pl(e);
  }
  function v8(e) {
    return e.kind === 169 && e.initializer !== void 0;
  }
  function Wme(e) {
    return !za(e) && (xA(e) || ef(e)) && Di(e.name);
  }
  function ZK(e) {
    let t;
    if (e) {
      const r = e.parameters, i = r.length > 0 && A1(r[0]), o = i ? 1 : 0, s = i ? r.length - 1 : r.length;
      for (let l = 0; l < s; l++) {
        const f = r[l + o];
        (t || Jf(f)) && (t || (t = new Array(s)), t[l] = vv(f));
      }
    }
    return t;
  }
  function eX(e) {
    const t = vv(e), r = ZK(yh(e));
    if (!(!kt(t) && !kt(r)))
      return {
        decorators: t,
        parameters: r
      };
  }
  function U5(e, t, r) {
    switch (e.kind) {
      case 174:
      case 175:
        return r ? LMe(e, t) : zme(e);
      case 171:
        return zme(e);
      case 169:
        return IMe(e);
      default:
        return;
    }
  }
  function LMe(e, t) {
    if (!e.body)
      return;
    const { firstAccessor: r, secondAccessor: i, getAccessor: o, setAccessor: s } = vT(t.members, e), l = Jf(r) ? r : i && Jf(i) ? i : void 0;
    if (!l || e !== l)
      return;
    const f = vv(l), d = ZK(s);
    if (!(!kt(f) && !kt(d)))
      return {
        decorators: f,
        parameters: d,
        getDecorators: o && vv(o),
        setDecorators: s && vv(s)
      };
  }
  function zme(e) {
    if (!e.body)
      return;
    const t = vv(e), r = ZK(e);
    if (!(!kt(t) && !kt(r)))
      return { decorators: t, parameters: r };
  }
  function IMe(e) {
    const t = vv(e);
    if (kt(t))
      return { decorators: t };
  }
  function qme(e, t) {
    for (; e; ) {
      const r = t(e);
      if (r !== void 0)
        return r;
      e = e.previous;
    }
  }
  function Jme(e) {
    return { data: e };
  }
  function tX(e, t) {
    var r, i;
    return JS(t) ? (r = e == null ? void 0 : e.generatedIdentifiers) == null ? void 0 : r.get(z7(t)) : (i = e == null ? void 0 : e.identifiers) == null ? void 0 : i.get(t.escapedText);
  }
  function MT(e, t, r) {
    var i, o;
    JS(t) ? ((i = e.generatedIdentifiers) != null || (e.generatedIdentifiers = /* @__PURE__ */ new Map()), e.generatedIdentifiers.set(z7(t), r)) : ((o = e.identifiers) != null || (e.identifiers = /* @__PURE__ */ new Map()), e.identifiers.set(t.escapedText, r));
  }
  function Kme(e, t) {
    return qme(e, (r) => tX(r.privateEnv, t));
  }
  var kMe = C({
    "src/compiler/transformers/utilities.ts"() {
      wa();
    }
  });
  function FT(e, t, r, i, o, s) {
    let l = e, f;
    if (hy(e))
      for (f = e.right; Yue(e.left) || Fz(e.left); )
        if (hy(f))
          l = e = f, f = e.right;
        else
          return D.checkDefined(ct(f, t, yt));
    let d;
    const y = {
      context: r,
      level: i,
      downlevelIteration: !!r.getCompilerOptions().downlevelIteration,
      hoistTempVariables: !0,
      emitExpression: h,
      emitBindingOrAssignment: b,
      createArrayBindingOrAssignmentPattern: (A) => FMe(r.factory, A),
      createObjectBindingOrAssignmentPattern: (A) => GMe(r.factory, A),
      createArrayBindingOrAssignmentElement: VMe,
      visitor: t
    };
    if (f && (f = ct(f, t, yt), D.assert(f), Ve(f) && nX(e, f.escapedText) || rX(e) ? f = BT(y, f, !1, l) : o ? f = BT(y, f, !0, l) : Ys(e) && (l = f)), MC(y, e, f, l, hy(e)), f && o) {
      if (!kt(d))
        return f;
      d.push(f);
    }
    return r.factory.inlineExpressions(d) || r.factory.createOmittedExpression();
    function h(A) {
      d = Bn(d, A);
    }
    function b(A, L, I, O) {
      D.assertNode(A, s ? Ve : yt);
      const k = s ? s(A, L, I) : mt(r.factory.createAssignment(D.checkDefined(ct(A, t, yt)), L), I);
      k.original = O, h(k);
    }
  }
  function nX(e, t) {
    const r = Fv(e);
    return VR(r) ? wMe(r, t) : Ve(r) ? r.escapedText === t : !1;
  }
  function wMe(e, t) {
    const r = LC(e);
    for (const i of r)
      if (nX(i, t))
        return !0;
    return !1;
  }
  function rX(e) {
    const t = H7(e);
    if (t && Ts(t) && !nT(t.expression))
      return !0;
    const r = Fv(e);
    return !!r && VR(r) && DMe(r);
  }
  function DMe(e) {
    return !!ze(LC(e), rX);
  }
  function V1(e, t, r, i, o, s = !1, l) {
    let f;
    const d = [], y = [], h = {
      context: r,
      level: i,
      downlevelIteration: !!r.getCompilerOptions().downlevelIteration,
      hoistTempVariables: s,
      emitExpression: b,
      emitBindingOrAssignment: A,
      createArrayBindingOrAssignmentPattern: (L) => MMe(r.factory, L),
      createObjectBindingOrAssignmentPattern: (L) => BMe(r.factory, L),
      createArrayBindingOrAssignmentElement: (L) => UMe(r.factory, L),
      visitor: t
    };
    if (zi(e)) {
      let L = FO(e);
      L && (Ve(L) && nX(e, L.escapedText) || rX(e)) && (L = BT(h, D.checkDefined(ct(L, h.visitor, yt)), !1, L), e = r.factory.updateVariableDeclaration(e, e.name, void 0, void 0, L));
    }
    if (MC(h, e, o, e, l), 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 = Ho(d);
        I.pendingExpressions = Bn(I.pendingExpressions, r.factory.createAssignment(L, I.value)), bi(I.pendingExpressions, f), I.value = L;
      }
    }
    for (const { pendingExpressions: L, name: I, value: O, location: k, original: B } of d) {
      const V = r.factory.createVariableDeclaration(I, void 0, void 0, L ? r.factory.inlineExpressions(Bn(L, O)) : O);
      V.original = B, mt(V, k), y.push(V);
    }
    return y;
    function b(L) {
      f = Bn(f, L);
    }
    function A(L, I, O, k) {
      D.assertNode(L, _h), f && (I = r.factory.inlineExpressions(Bn(f, I)), f = void 0), d.push({ pendingExpressions: f, name: L, value: I, location: O, original: k });
    }
  }
  function MC(e, t, r, i, o) {
    const s = Fv(t);
    if (!o) {
      const l = ct(FO(t), e.visitor, yt);
      l ? r ? (r = OMe(e, r, l, i), !nm(l) && VR(s) && (r = BT(e, r, !0, i))) : r = l : r || (r = e.context.factory.createVoidZero());
    }
    fW(s) ? RMe(e, t, s, r, i) : _W(s) ? NMe(e, t, s, r, i) : e.emitBindingOrAssignment(s, r, i, t);
  }
  function RMe(e, t, r, i, o) {
    const s = LC(r), l = s.length;
    if (l !== 1) {
      const y = !UR(t) || l !== 0;
      i = BT(e, i, y, o);
    }
    let f, d;
    for (let y = 0; y < l; y++) {
      const h = s[y];
      if (j7(h)) {
        if (y === l - 1) {
          f && (e.emitBindingOrAssignment(e.createObjectBindingOrAssignmentPattern(f), i, o, r), f = void 0);
          const b = e.context.getEmitHelperFactory().createRestHelper(i, s, d, r);
          MC(e, h, b, h);
        }
      } else {
        const b = kJ(h);
        if (e.level >= 1 && !(h.transformFlags & 98304) && !(Fv(h).transformFlags & 98304) && !Ts(b))
          f = Bn(f, ct(h, e.visitor, sle));
        else {
          f && (e.emitBindingOrAssignment(e.createObjectBindingOrAssignmentPattern(f), i, o, r), f = void 0);
          const A = PMe(e, i, b);
          Ts(b) && (d = Bn(d, A.argumentExpression)), MC(e, h, A, h);
        }
      }
    }
    f && e.emitBindingOrAssignment(e.createObjectBindingOrAssignmentPattern(f), i, o, r);
  }
  function NMe(e, t, r, i, o) {
    const s = LC(r), l = s.length;
    if (e.level < 1 && e.downlevelIteration)
      i = BT(e, mt(e.context.getEmitHelperFactory().createReadHelper(i, l > 0 && j7(s[l - 1]) ? void 0 : l), o), !1, o);
    else if (l !== 1 && (e.level < 1 || l === 0) || Rn(s, kl)) {
      const y = !UR(t) || l !== 0;
      i = BT(e, i, y, o);
    }
    let f, d;
    for (let y = 0; y < l; y++) {
      const h = s[y];
      if (e.level >= 1)
        if (h.transformFlags & 65536 || e.hasTransformedPriorElement && !Xme(h)) {
          e.hasTransformedPriorElement = !0;
          const b = e.context.factory.createTempVariable(void 0);
          e.hoistTempVariables && e.context.hoistVariableDeclaration(b), d = Bn(d, [b, h]), f = Bn(f, e.createArrayBindingOrAssignmentElement(b));
        } else
          f = Bn(f, h);
      else {
        if (kl(h))
          continue;
        if (j7(h)) {
          if (y === l - 1) {
            const b = e.context.factory.createArraySliceCall(i, y);
            MC(e, h, b, h);
          }
        } else {
          const b = e.context.factory.createElementAccessExpression(i, y);
          MC(e, h, b, h);
        }
      }
    }
    if (f && e.emitBindingOrAssignment(e.createArrayBindingOrAssignmentPattern(f), i, o, r), d)
      for (const [y, h] of d)
        MC(e, h, y, h);
  }
  function Xme(e) {
    const t = Fv(e);
    if (!t || kl(t))
      return !0;
    const r = H7(e);
    if (r && !F_(r))
      return !1;
    const i = FO(e);
    return i && !nm(i) ? !1 : VR(t) ? Rn(LC(t), Xme) : Ve(t);
  }
  function OMe(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 PMe(e, t, r) {
    if (Ts(r)) {
      const i = BT(e, D.checkDefined(ct(r.expression, e.visitor, yt)), !1, r);
      return e.context.factory.createElementAccessExpression(t, i);
    } else if (zf(r)) {
      const i = N.cloneNode(r);
      return e.context.factory.createElementAccessExpression(t, i);
    } else {
      const i = e.context.factory.createIdentifier(Pr(r));
      return e.context.factory.createPropertyAccessExpression(t, i);
    }
  }
  function BT(e, t, r, i) {
    if (Ve(t) && r)
      return t;
    {
      const o = e.context.factory.createTempVariable(void 0);
      return e.hoistTempVariables ? (e.context.hoistVariableDeclaration(o), e.emitExpression(mt(e.context.factory.createAssignment(o, t), i))) : e.emitBindingOrAssignment(o, t, i, void 0), o;
    }
  }
  function MMe(e, t) {
    return D.assertEachNode(t, CM), e.createArrayBindingPattern(t);
  }
  function FMe(e, t) {
    return D.assertEachNode(t, HR), e.createArrayLiteralExpression(en(t, e.converters.convertToArrayAssignmentElement));
  }
  function BMe(e, t) {
    return D.assertEachNode(t, us), e.createObjectBindingPattern(t);
  }
  function GMe(e, t) {
    return D.assertEachNode(t, jR), e.createObjectLiteralExpression(en(t, e.converters.convertToObjectAssignmentElement));
  }
  function UMe(e, t) {
    return e.createBindingElement(void 0, void 0, t);
  }
  function VMe(e) {
    return e;
  }
  var iX, jMe = C({
    "src/compiler/transformers/destructuring.ts"() {
      wa(), iX = /* @__PURE__ */ ((e) => (e[e.All = 0] = "All", e[e.ObjectRest = 1] = "ObjectRest", e))(iX || {});
    }
  });
  function aX(e, t, r, i, o, s) {
    const l = ct(t.tag, r, yt);
    D.assert(l);
    const f = [void 0], d = [], y = [], h = t.template;
    if (s === 0 && !vz(h))
      return Gn(t, r, e);
    if (vx(h))
      d.push(oX(h)), y.push(sX(h, i));
    else {
      d.push(oX(h.head)), y.push(sX(h.head, i));
      for (const A of h.templateSpans)
        d.push(oX(A.literal)), y.push(sX(A.literal, i)), f.push(D.checkDefined(ct(A.expression, r, yt)));
    }
    const b = e.getEmitHelperFactory().createTemplateObjectHelper(N.createArrayLiteralExpression(d), N.createArrayLiteralExpression(y));
    if (Yc(i)) {
      const A = N.createUniqueName("templateObject");
      o(A), f[0] = N.createLogicalOr(A, N.createAssignment(A, b));
    } else
      f[0] = b;
    return N.createCallExpression(l, void 0, f);
  }
  function oX(e) {
    return e.templateFlags ? N.createVoidZero() : N.createStringLiteral(e.text);
  }
  function sX(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 = h1(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, `
`), mt(N.createStringLiteral(r), e);
  }
  var cX, HMe = C({
    "src/compiler/transformers/taggedTemplate.ts"() {
      wa(), cX = /* @__PURE__ */ ((e) => (e[e.LiftRestriction = 0] = "LiftRestriction", e[e.All = 1] = "All", e))(cX || {});
    }
  });
  function Yme(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      startLexicalEnvironment: i,
      resumeLexicalEnvironment: o,
      endLexicalEnvironment: s,
      hoistVariableDeclaration: l
    } = e, f = e.getEmitResolver(), d = e.getCompilerOptions(), y = $o(d), h = tu(d), b = !!d.experimentalDecorators, A = d.emitDecoratorMetadata ? Zme(e) : void 0, L = e.onEmitNode, I = e.onSubstituteNode;
    e.onEmitNode = Hl, e.onSubstituteNode = Is, e.enableSubstitution(208), e.enableSubstitution(209);
    let O, k, B, V, H, te, X, Y;
    return P;
    function P(Q) {
      return Q.kind === 309 ? de(Q) : ne(Q);
    }
    function de(Q) {
      return t.createBundle(Q.sourceFiles.map(ne), fa(Q.prepends, (ot) => ot.kind === 311 ? Bq(ot, "js") : ot));
    }
    function ne(Q) {
      if (Q.isDeclarationFile)
        return Q;
      O = Q;
      const ot = ye(Q, st);
      return yy(ot, e.readEmitHelpers()), O = void 0, ot;
    }
    function ye(Q, ot) {
      const xt = V, pn = H, wr = te;
      ie(Q);
      const Or = ot(Q);
      return V !== xt && (H = pn), V = xt, te = wr, Or;
    }
    function ie(Q) {
      switch (Q.kind) {
        case 308:
        case 266:
        case 265:
        case 238:
          V = Q, H = void 0;
          break;
        case 260:
        case 259:
          if (Kr(Q, 2))
            break;
          Q.name ? Re(Q) : D.assert(Q.kind === 260 || Kr(Q, 1024));
          break;
      }
    }
    function W(Q) {
      return ye(Q, ce);
    }
    function ce(Q) {
      return Q.transformFlags & 1 ? Fe(Q) : Q;
    }
    function pe(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 (ga(Q) !== Q)
        return Q.transformFlags & 1 ? Gn(Q, W, e) : Q;
      switch (Q.kind) {
        case 269:
          return ai(Q);
        case 268:
          return di(Q);
        case 274:
          return _o(Q);
        case 275:
          return bo(Q);
        default:
          D.fail("Unhandled ellided statement");
      }
    }
    function ee(Q) {
      return ye(Q, $e);
    }
    function $e(Q) {
      if (!(Q.kind === 275 || Q.kind === 269 || Q.kind === 270 || Q.kind === 268 && Q.moduleReference.kind === 280))
        return Q.transformFlags & 1 || Kr(Q, 1) ? Fe(Q) : Q;
    }
    function Ue(Q) {
      return (ot) => ye(ot, (xt) => Be(xt, Q));
    }
    function Be(Q, ot) {
      switch (Q.kind) {
        case 173:
          return Ni(Q);
        case 169:
          return lr(Q, ot);
        case 174:
          return Ar(Q, ot);
        case 175:
          return Vr(Q, ot);
        case 171:
          return nn(Q, ot);
        case 172:
          return Gn(Q, W, e);
        case 237:
          return Q;
        case 178:
          return;
        default:
          return D.failBadSyntaxKind(Q);
      }
    }
    function We(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 Vr(Q, ot);
        case 171:
          return nn(Q, ot);
        default:
          return D.failBadSyntaxKind(Q);
      }
    }
    function Me(Q) {
      return Nu(Q) ? void 0 : W(Q);
    }
    function Xe(Q) {
      return lo(Q) ? void 0 : W(Q);
    }
    function He(Q) {
      if (!Nu(Q) && !(lx(Q.kind) & 117086) && !(k && Q.kind === 93))
        return Q;
    }
    function Fe(Q) {
      if (Ca(Q) && Kr(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 Xt(Q);
        case 294:
          return Ht(Q);
        case 230:
          return dn(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 ke(Q);
        case 215:
          return gt(Q);
        case 216:
          return Nt(Q);
        case 166:
          return xe(Q);
        case 214:
          return he(Q);
        case 213:
        case 231:
          return j(Q);
        case 235:
          return Qe(Q);
        case 210:
          return Ke(Q);
        case 211:
          return Ut(Q);
        case 212:
          return ln(Q);
        case 232:
          return je(Q);
        case 263:
          return pt(Q);
        case 240:
          return _t(Q);
        case 257:
          return re(Q);
        case 264:
          return dt(Q);
        case 268:
          return di(Q);
        case 282:
          return Sn(Q);
        case 283:
          return Er(Q);
        default:
          return Gn(Q, W, e);
      }
    }
    function st(Q) {
      const ot = m_(d, "alwaysStrict") && !(Yc(Q) && h >= 5) && !d_(Q);
      return t.updateSourceFile(Q, N5(Q.statements, pe, e, 0, ot));
    }
    function Ct(Q) {
      return t.updateObjectLiteralExpression(Q, Xn(Q.properties, We(Q), fy));
    }
    function Et(Q) {
      let ot = 0;
      kt(QK(Q, !0, !0)) && (ot |= 1);
      const xt = Jp(Q);
      return xt && hu(xt.expression).kind !== 104 && (ot |= 64), b1(b, Q) && (ot |= 2), OI(b, Q) && (ot |= 4), ca(Q) ? ot |= 8 : $c(Q) ? ot |= 32 : ua(Q) && (ot |= 16), ot;
    }
    function Vt(Q) {
      return !!(Q.transformFlags & 8192);
    }
    function tt(Q) {
      return Jf(Q) || kt(Q.typeParameters) || kt(Q.heritageClauses, Vt) || kt(Q.members, Vt);
    }
    function at(Q) {
      var ot;
      const xt = Et(Q), pn = y <= 1 && !!(xt & 7);
      if (!tt(Q) && !b1(b, Q) && !ca(Q))
        return t.updateClassDeclaration(Q, Xn(Q.modifiers, He, lo), Q.name, void 0, Xn(Q.heritageClauses, W, Bd), Xn(Q.members, Ue(Q), Ml));
      pn && e.startLexicalEnvironment();
      const wr = pn || xt & 8 || xt & 2 && b || xt & 1;
      let Or = wr ? Xn(Q.modifiers, Xe, tc) : Xn(Q.modifiers, W, tc);
      xt & 2 && (Or = Wn(Or, Q));
      const as = wr && !Q.name || xt & 4 || xt & 1 ? (ot = Q.name) != null ? ot : t.getGeneratedNameForNode(Q) : Q.name, po = t.updateClassDeclaration(Q, Or, as, void 0, Xn(Q.heritageClauses, W, Bd), Pn(Q));
      let Uo = go(Q);
      xt & 1 && (Uo |= 64), sr(po, Uo);
      let Ka;
      if (pn) {
        const uc = [po], ll = Gz(zo(O.text, Q.members.end), 19), ud = t.getInternalName(Q), ys = t.createPartiallyEmittedExpression(ud);
        rC(ys, ll.end), sr(ys, 3072);
        const cs = t.createReturnStatement(ys);
        uk(cs, ll.pos), sr(cs, 3840), uc.push(cs), Rm(uc, e.endLexicalEnvironment());
        const dc = t.createImmediatelyInvokedArrowFunction(uc);
        fO(dc, 1);
        const Hd = xt & 16 ? t.createModifiersFromModifierFlags(1) : void 0, Vc = t.createVariableStatement(Hd, t.createVariableDeclarationList([
          t.createVariableDeclaration(t.getLocalName(Q, !1, !1), void 0, void 0, dc)
        ], 1));
        jr(Vc, Q), Gl(Vc, Q), ls(Vc, wv(Q)), Fu(Vc), Ka = Vc;
      } else
        Ka = po;
      if (wr) {
        if (xt & 8)
          return an(Ka, nc(Q));
        if (xt & 32)
          return an(Ka, t.createExportDefault(t.getLocalName(Q, !1, !0)));
        if (xt & 16 && !pn)
          return an(Ka, t.createExternalModuleExport(t.getLocalName(Q, !1, !0)));
      }
      return Ka;
    }
    function an(Q, ot) {
      return $p(Q, 8388608), [
        Q,
        ot,
        t.createEndOfDeclarationMarker(Q)
      ];
    }
    function Xt(Q) {
      let ot = Xn(Q.modifiers, Xe, tc);
      return b1(b, Q) && (ot = Wn(ot, Q)), t.updateClassExpression(Q, ot, Q.name, void 0, Xn(Q.heritageClauses, W, Bd), Pn(Q));
    }
    function Pn(Q) {
      const ot = Xn(Q.members, Ue(Q), Ml);
      let xt;
      const pn = yh(Q), wr = pn && yn(pn.parameters, (Or) => Qd(Or, pn));
      if (wr)
        for (const Or of wr) {
          const ya = t.createPropertyDeclaration(void 0, Or.name, void 0, void 0, void 0);
          jr(ya, Or), xt = Bn(xt, ya);
        }
      return xt ? (xt = bi(xt, ot), mt(t.createNodeArray(xt), Q.members)) : ot;
    }
    function Wn(Q, ot) {
      const xt = Yt(ot, ot);
      if (kt(xt)) {
        const pn = [];
        bi(pn, F4(Q, RJ)), bi(pn, yn(Q, Nu)), bi(pn, xt), bi(pn, yn(Dse(Q, RJ), lo)), Q = mt(t.createNodeArray(pn), Q);
      }
      return Q;
    }
    function In(Q, ot, xt) {
      if (li(xt) && $W(b, ot, xt)) {
        const pn = Yt(ot, xt);
        if (kt(pn)) {
          const wr = [];
          bi(wr, yn(Q, Nu)), bi(wr, pn), bi(wr, yn(Q, lo)), Q = mt(t.createNodeArray(wr), Q);
        }
      }
      return Q;
    }
    function Yt(Q, ot) {
      if (b)
        return $me ? Ai(Q, ot) : _r(Q, ot);
    }
    function _r(Q, ot) {
      if (A) {
        let xt;
        if (Ki(Q)) {
          const pn = r().createMetadataHelper("design:type", A.serializeTypeOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q));
          xt = Bn(xt, t.createDecorator(pn));
        }
        if (Nr(Q)) {
          const pn = r().createMetadataHelper("design:paramtypes", A.serializeParameterTypesOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q, ot));
          xt = Bn(xt, t.createDecorator(pn));
        }
        if (Xi(Q)) {
          const pn = r().createMetadataHelper("design:returntype", A.serializeReturnTypeOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q));
          xt = Bn(xt, t.createDecorator(pn));
        }
        return xt;
      }
    }
    function Ai(Q, ot) {
      if (A) {
        let xt;
        if (Ki(Q)) {
          const pn = t.createPropertyAssignment("type", t.createArrowFunction(void 0, void 0, [], void 0, t.createToken(38), A.serializeTypeOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q)));
          xt = Bn(xt, pn);
        }
        if (Nr(Q)) {
          const pn = t.createPropertyAssignment("paramTypes", t.createArrowFunction(void 0, void 0, [], void 0, t.createToken(38), A.serializeParameterTypesOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q, ot)));
          xt = Bn(xt, pn);
        }
        if (Xi(Q)) {
          const pn = t.createPropertyAssignment("returnType", t.createArrowFunction(void 0, void 0, [], void 0, t.createToken(38), A.serializeReturnTypeOfNode({ currentLexicalScope: V, currentNameScope: ot }, Q)));
          xt = Bn(xt, pn);
        }
        if (xt) {
          const pn = r().createMetadataHelper("design:typeinfo", t.createObjectLiteralExpression(xt, !0));
          return [t.createDecorator(pn)];
        }
      }
    }
    function Ki(Q) {
      const ot = Q.kind;
      return ot === 171 || ot === 174 || ot === 175 || ot === 169;
    }
    function Xi(Q) {
      return Q.kind === 171;
    }
    function Nr(Q) {
      switch (Q.kind) {
        case 260:
        case 228:
          return yh(Q) !== void 0;
        case 171:
        case 174:
        case 175:
          return !0;
      }
      return !1;
    }
    function At(Q, ot) {
      const xt = Q.name;
      return Di(xt) ? t.createIdentifier("") : Ts(xt) ? ot && !nm(xt.expression) ? t.getGeneratedNameForNode(xt) : xt.expression : Ve(xt) ? t.createStringLiteral(Pr(xt)) : t.cloneNode(xt);
    }
    function vn(Q) {
      const ot = Q.name;
      if (Ts(ot) && (!pl(Q) && te || Jf(Q) && b)) {
        const xt = ct(ot.expression, W, yt);
        D.assert(xt);
        const pn = O_(xt);
        if (!nm(pn)) {
          const wr = t.getGeneratedNameForNode(ot);
          return l(wr), t.updateComputedPropertyName(ot, t.createAssignment(wr, xt));
        }
      }
      return D.checkDefined(ct(ot, W, gc));
    }
    function Ht(Q) {
      if (Q.token !== 117)
        return Gn(Q, W, e);
    }
    function dn(Q) {
      return t.updateExpressionWithTypeArguments(Q, D.checkDefined(ct(Q.expression, W, vd)), void 0);
    }
    function ir(Q) {
      return !xc(Q.body);
    }
    function lr(Q, ot) {
      const xt = Q.flags & 16777216 || Kr(Q, 256);
      if (xt && !(b && Jf(Q)))
        return;
      let pn = li(ot) ? xt ? Xn(Q.modifiers, Xe, tc) : Xn(Q.modifiers, W, tc) : Xn(Q.modifiers, Me, tc);
      return pn = In(pn, Q, ot), xt ? t.updatePropertyDeclaration(Q, ma(pn, t.createModifiersFromModifierFlags(2)), D.checkDefined(ct(Q.name, W, gc)), void 0, void 0, void 0) : t.updatePropertyDeclaration(Q, pn, vn(Q), void 0, void 0, ct(Q.initializer, W, yt));
    }
    function Ni(Q) {
      if (ir(Q))
        return t.updateConstructorDeclaration(Q, void 0, zc(Q.parameters, W, e), pi(Q.body, Q));
    }
    function pi(Q, ot) {
      const xt = ot && yn(ot.parameters, (Uo) => Qd(Uo, ot));
      if (!kt(xt))
        return Cf(Q, W, e);
      let pn = [];
      o();
      const wr = t.copyPrologue(Q.statements, pn, !1, W), Or = B5(Q.statements, wr);
      Or >= 0 && bi(pn, Xn(Q.statements, W, Ca, wr, Or + 1 - wr));
      const ya = fa(xt, Nn);
      Or >= 0 ? bi(pn, ya) : pn = [
        ...pn.slice(0, wr),
        ...ya,
        ...pn.slice(wr)
      ];
      const as = Or >= 0 ? Or + 1 : wr;
      bi(pn, Xn(Q.statements, W, Ca, as)), pn = t.mergeLexicalEnvironment(pn, s());
      const po = t.createBlock(mt(t.createNodeArray(pn), Q.statements), !0);
      return mt(po, Q), jr(po, Q), po;
    }
    function Nn(Q) {
      const ot = Q.name;
      if (!Ve(ot))
        return;
      const xt = Bo(mt(t.cloneNode(ot), ot), ot.parent);
      sr(xt, 3168);
      const pn = Bo(mt(t.cloneNode(ot), ot), ot.parent);
      return sr(pn, 3072), Fu(dO(mt(jr(t.createExpressionStatement(t.createAssignment(mt(t.createPropertyAccessExpression(t.createThis(), xt), Q.name), pn)), Q), X0(Q, -1))));
    }
    function nn(Q, ot) {
      if (!(Q.transformFlags & 1))
        return Q;
      if (!ir(Q))
        return;
      let xt = li(ot) ? Xn(Q.modifiers, W, tc) : Xn(Q.modifiers, Me, tc);
      return xt = In(xt, Q, ot), t.updateMethodDeclaration(Q, xt, Q.asteriskToken, vn(Q), void 0, void 0, zc(Q.parameters, W, e), void 0, Cf(Q.body, W, e));
    }
    function Mn(Q) {
      return !(xc(Q.body) && Kr(Q, 256));
    }
    function Ar(Q, ot) {
      if (!(Q.transformFlags & 1))
        return Q;
      if (!Mn(Q))
        return;
      let xt = li(ot) ? Xn(Q.modifiers, W, tc) : Xn(Q.modifiers, Me, tc);
      return xt = In(xt, Q, ot), t.updateGetAccessorDeclaration(Q, xt, vn(Q), zc(Q.parameters, W, e), void 0, Cf(Q.body, W, e) || t.createBlock([]));
    }
    function Vr(Q, ot) {
      if (!(Q.transformFlags & 1))
        return Q;
      if (!Mn(Q))
        return;
      let xt = li(ot) ? Xn(Q.modifiers, W, tc) : Xn(Q.modifiers, Me, tc);
      return xt = In(xt, Q, ot), t.updateSetAccessorDeclaration(Q, xt, vn(Q), zc(Q.parameters, W, e), Cf(Q.body, W, e) || t.createBlock([]));
    }
    function ke(Q) {
      if (!ir(Q))
        return t.createNotEmittedStatement(Q);
      const ot = t.updateFunctionDeclaration(Q, Xn(Q.modifiers, He, lo), Q.asteriskToken, Q.name, void 0, zc(Q.parameters, W, e), void 0, Cf(Q.body, W, e) || t.createBlock([]));
      if (ca(Q)) {
        const xt = [ot];
        return Fc(xt, Q), xt;
      }
      return ot;
    }
    function gt(Q) {
      return ir(Q) ? t.updateFunctionExpression(Q, Xn(Q.modifiers, He, lo), Q.asteriskToken, Q.name, void 0, zc(Q.parameters, W, e), void 0, Cf(Q.body, W, e) || t.createBlock([])) : t.createOmittedExpression();
    }
    function Nt(Q) {
      return t.updateArrowFunction(Q, Xn(Q.modifiers, He, lo), void 0, zc(Q.parameters, W, e), void 0, Q.equalsGreaterThanToken, Cf(Q.body, W, e));
    }
    function xe(Q) {
      if (A1(Q))
        return;
      const ot = t.updateParameterDeclaration(Q, Xn(Q.modifiers, (xt) => Nu(xt) ? W(xt) : void 0, tc), Q.dotDotDotToken, D.checkDefined(ct(Q.name, W, _h)), void 0, void 0, ct(Q.initializer, W, yt));
      return ot !== Q && (Gl(ot, Q), mt(ot, Xp(Q)), ls(ot, Xp(Q)), sr(ot.name, 64)), ot;
    }
    function _t(Q) {
      if (ca(Q)) {
        const ot = ZI(Q.declarationList);
        return ot.length === 0 ? void 0 : mt(t.createExpressionStatement(t.inlineExpressions(en(ot, _e))), Q);
      } else
        return Gn(Q, W, e);
    }
    function _e(Q) {
      const ot = Q.name;
      return Ja(ot) ? FT(Q, W, e, 0, !1, Bc) : mt(t.createAssignment(xo(ot), D.checkDefined(ct(Q.initializer, W, yt))), Q);
    }
    function re(Q) {
      const ot = t.updateVariableDeclaration(Q, D.checkDefined(ct(Q.name, W, _h)), void 0, void 0, ct(Q.initializer, W, yt));
      return Q.type && mfe(ot.name, Q.type), ot;
    }
    function he(Q) {
      const ot = hu(Q.expression, -7);
      if (iT(ot)) {
        const xt = ct(Q.expression, W, yt);
        return D.assert(xt), t.createPartiallyEmittedExpression(xt, Q);
      }
      return Gn(Q, W, e);
    }
    function j(Q) {
      const ot = ct(Q.expression, W, yt);
      return D.assert(ot), t.createPartiallyEmittedExpression(ot, Q);
    }
    function je(Q) {
      const ot = ct(Q.expression, W, vd);
      return D.assert(ot), t.createPartiallyEmittedExpression(ot, Q);
    }
    function Qe(Q) {
      const ot = ct(Q.expression, W, yt);
      return D.assert(ot), t.createPartiallyEmittedExpression(ot, Q);
    }
    function Ke(Q) {
      return t.updateCallExpression(Q, D.checkDefined(ct(Q.expression, W, yt)), void 0, Xn(Q.arguments, W, yt));
    }
    function Ut(Q) {
      return t.updateNewExpression(Q, D.checkDefined(ct(Q.expression, W, yt)), void 0, Xn(Q.arguments, W, yt));
    }
    function ln(Q) {
      return t.updateTaggedTemplateExpression(Q, D.checkDefined(ct(Q.tag, W, yt)), void 0, D.checkDefined(ct(Q.template, W, AA)));
    }
    function Sn(Q) {
      return t.updateJsxSelfClosingElement(Q, D.checkDefined(ct(Q.tagName, W, AI)), void 0, D.checkDefined(ct(Q.attributes, W, O1)));
    }
    function Er(Q) {
      return t.updateJsxOpeningElement(Q, D.checkDefined(ct(Q.tagName, W, AI)), void 0, D.checkDefined(ct(Q.attributes, W, O1)));
    }
    function ue(Q) {
      return !v1(Q) || L1(d);
    }
    function pt(Q) {
      if (!ue(Q))
        return t.createNotEmittedStatement(Q);
      const ot = [];
      let xt = 4;
      const pn = ht(ot, Q);
      pn && (h !== 4 || V !== O) && (xt |= 1024);
      const wr = Sa(Q), Or = Jo(Q), ya = Kr(Q, 1) ? t.getExternalModuleOrNamespaceExportName(B, Q, !1, !0) : t.getLocalName(Q, !1, !0);
      let as = t.createLogicalOr(ya, t.createAssignment(ya, t.createObjectLiteralExpression()));
      if (Z(Q)) {
        const Uo = t.getLocalName(Q, !1, !0);
        as = t.createAssignment(Uo, as);
      }
      const po = t.createExpressionStatement(t.createCallExpression(t.createFunctionExpression(void 0, void 0, void 0, void 0, [t.createParameterDeclaration(void 0, void 0, wr)], void 0, Wt(Q, Or)), void 0, [as]));
      return jr(po, Q), pn && (D1(po, void 0), uC(po, void 0)), mt(po, Q), $p(po, xt), ot.push(po), ot.push(t.createEndOfDeclarationMarker(Q)), ot;
    }
    function Wt(Q, ot) {
      const xt = B;
      B = ot;
      const pn = [];
      i();
      const wr = en(Q.members, it);
      return Rm(pn, s()), bi(pn, wr), B = xt, t.createBlock(mt(t.createNodeArray(pn), Q.members), !0);
    }
    function it(Q) {
      const ot = At(Q, !1), xt = K(Q), pn = t.createAssignment(t.createElementAccessExpression(B, ot), xt), wr = xt.kind === 10 ? pn : t.createAssignment(t.createElementAccessExpression(B, pn), ot);
      return mt(t.createExpressionStatement(mt(wr, Q)), Q);
    }
    function K(Q) {
      const ot = f.getConstantValue(Q);
      return ot !== void 0 ? typeof ot == "string" ? t.createStringLiteral(ot) : t.createNumericLiteral(ot) : (Gc(), Q.initializer ? D.checkDefined(ct(Q.initializer, W, yt)) : t.createVoidZero());
    }
    function Pe(Q) {
      const ot = ga(Q, Wc);
      return ot ? BK(ot, L1(d)) : !0;
    }
    function Z(Q) {
      return ca(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, Ve), Q.name.escapedText;
    }
    function ht(Q, ot) {
      const xt = t.createVariableStatement(Xn(ot.modifiers, He, lo), t.createVariableDeclarationList([
        t.createVariableDeclaration(t.getLocalName(ot, !1, !0))
      ], V.kind === 308 ? 0 : 1));
      if (jr(xt, ot), Re(ot), q(ot))
        return ot.kind === 263 ? ls(xt.declarationList, ot) : ls(xt, ot), Gl(xt, ot), $p(xt, 8390656), Q.push(xt), !0;
      {
        const pn = t.createMergeDeclarationMarker(xt);
        return sr(pn, 8391680), Q.push(pn), !1;
      }
    }
    function dt(Q) {
      if (!Pe(Q))
        return t.createNotEmittedStatement(Q);
      D.assertNode(Q.name, Ve, "A TypeScript namespace should have an Identifier name."), Yl();
      const ot = [];
      let xt = 4;
      const pn = ht(ot, Q);
      pn && (h !== 4 || V !== O) && (xt |= 1024);
      const wr = Sa(Q), Or = Jo(Q), ya = Kr(Q, 1) ? t.getExternalModuleOrNamespaceExportName(B, Q, !1, !0) : t.getLocalName(Q, !1, !0);
      let as = t.createLogicalOr(ya, t.createAssignment(ya, t.createObjectLiteralExpression()));
      if (Z(Q)) {
        const Uo = t.getLocalName(Q, !1, !0);
        as = t.createAssignment(Uo, as);
      }
      const po = t.createExpressionStatement(t.createCallExpression(t.createFunctionExpression(void 0, void 0, void 0, void 0, [t.createParameterDeclaration(void 0, void 0, wr)], void 0, fn(Q, Or)), void 0, [as]));
      return jr(po, Q), pn && (D1(po, void 0), uC(po, void 0)), mt(po, Q), $p(po, xt), ot.push(po), ot.push(t.createEndOfDeclarationMarker(Q)), ot;
    }
    function fn(Q, ot) {
      const xt = B, pn = k, wr = H;
      B = ot, k = Q, H = void 0;
      const Or = [];
      i();
      let ya, as;
      if (Q.body)
        if (Q.body.kind === 265)
          ye(Q.body, (Uo) => bi(Or, Xn(Uo.statements, ee, Ca))), ya = Q.body.statements, as = Q.body;
        else {
          const Uo = dt(Q.body);
          Uo && (Ba(Uo) ? bi(Or, Uo) : Or.push(Uo));
          const Ka = Qn(Q).body;
          ya = X0(Ka.statements, -1);
        }
      Rm(Or, s()), B = xt, k = pn, H = wr;
      const po = t.createBlock(mt(t.createNodeArray(Or), ya), !0);
      return mt(po, as), (!Q.body || Q.body.kind !== 265) && sr(po, go(po) | 3072), po;
    }
    function Qn(Q) {
      if (Q.body.kind === 264)
        return Qn(Q.body) || Q.body;
    }
    function ai(Q) {
      if (!Q.importClause)
        return Q;
      if (Q.importClause.isTypeOnly)
        return;
      const ot = ct(Q.importClause, Si, Vm);
      return ot || d.importsNotUsedAsValues === 1 || d.importsNotUsedAsValues === 2 ? t.updateImportDeclaration(Q, void 0, ot, Q.moduleSpecifier, Q.assertClause) : void 0;
    }
    function Si(Q) {
      D.assert(!Q.isTypeOnly);
      const ot = jt(Q) ? Q.name : void 0, xt = ct(Q.namedBindings, xi, hW);
      return ot || xt ? t.updateImportClause(Q, !1, ot, xt) : void 0;
    }
    function xi(Q) {
      if (Q.kind === 271)
        return jt(Q) ? Q : void 0;
      {
        const ot = d.verbatimModuleSyntax || d.preserveValueImports && (d.importsNotUsedAsValues === 1 || d.importsNotUsedAsValues === 2), xt = Xn(Q.elements, Gi, xd);
        return ot || kt(xt) ? t.updateNamedImports(Q, xt) : void 0;
      }
    }
    function Gi(Q) {
      return !Q.isTypeOnly && jt(Q) ? Q : void 0;
    }
    function _o(Q) {
      return d.verbatimModuleSyntax || f.isValueAliasDeclaration(Q) ? Gn(Q, W, e) : void 0;
    }
    function bo(Q) {
      if (Q.isTypeOnly)
        return;
      if (!Q.exportClause || Ah(Q.exportClause))
        return Q;
      const ot = d.verbatimModuleSyntax || !!Q.moduleSpecifier && (d.importsNotUsedAsValues === 1 || d.importsNotUsedAsValues === 2), xt = ct(Q.exportClause, (pn) => Ui(pn, ot), iW);
      return xt ? t.updateExportDeclaration(Q, void 0, Q.isTypeOnly, xt, Q.moduleSpecifier, Q.assertClause) : void 0;
    }
    function no(Q, ot) {
      const xt = Xn(Q.elements, Jr, cd);
      return ot || kt(xt) ? t.updateNamedExports(Q, xt) : void 0;
    }
    function sa(Q) {
      return t.updateNamespaceExport(Q, D.checkDefined(ct(Q.name, W, Ve)));
    }
    function Ui(Q, ot) {
      return Ah(Q) ? sa(Q) : no(Q, ot);
    }
    function Jr(Q) {
      return !Q.isTypeOnly && (d.verbatimModuleSyntax || f.isValueAliasDeclaration(Q)) ? Q : void 0;
    }
    function is(Q) {
      return jt(Q) || !Yc(O) && f.isTopLevelValueImportEqualsWithEntityName(Q);
    }
    function di(Q) {
      if (Q.isTypeOnly)
        return;
      if (j0(Q)) {
        const xt = jt(Q);
        return !xt && d.importsNotUsedAsValues === 1 ? jr(mt(t.createImportDeclaration(void 0, void 0, Q.moduleReference.expression, void 0), Q), Q) : xt ? Gn(Q, W, e) : void 0;
      }
      if (!is(Q))
        return;
      const ot = NO(t, Q.moduleReference);
      return sr(ot, 7168), ua(Q) || !ca(Q) ? jr(mt(t.createVariableStatement(Xn(Q.modifiers, He, lo), t.createVariableDeclarationList([
        jr(t.createVariableDeclaration(Q.name, void 0, void 0, ot), Q)
      ])), Q), Q) : jr(qc(Q.name, ot, Q), Q);
    }
    function ca(Q) {
      return k !== void 0 && Kr(Q, 1);
    }
    function wn(Q) {
      return k === void 0 && Kr(Q, 1);
    }
    function ua(Q) {
      return wn(Q) && !Kr(Q, 1024);
    }
    function $c(Q) {
      return wn(Q) && Kr(Q, 1024);
    }
    function nc(Q) {
      const ot = t.createAssignment(t.getExternalModuleOrNamespaceExportName(B, Q, !1, !0), t.getLocalName(Q));
      ls(ot, __(Q.name ? Q.name.pos : Q.pos, Q.end));
      const xt = t.createExpressionStatement(ot);
      return ls(xt, __(-1, Q.end)), xt;
    }
    function Fc(Q, ot) {
      Q.push(nc(ot));
    }
    function qc(Q, ot, xt) {
      return mt(t.createExpressionStatement(t.createAssignment(t.getNamespaceMemberName(B, Q, !1, !0), ot)), xt);
    }
    function Bc(Q, ot, xt) {
      return mt(t.createAssignment(xo(Q), ot), xt);
    }
    function xo(Q) {
      return t.getNamespaceMemberName(B, Q, !1, !0);
    }
    function Sa(Q) {
      const ot = t.getGeneratedNameForNode(Q);
      return ls(ot, Q.name), ot;
    }
    function Jo(Q) {
      return t.getGeneratedNameForNode(Q);
    }
    function Gc() {
      X & 8 || (X |= 8, e.enableSubstitution(79));
    }
    function Yl() {
      X & 2 || (X |= 2, e.enableSubstitution(79), e.enableSubstitution(300), e.enableEmitNotification(264));
    }
    function jd(Q) {
      return Ec(Q).kind === 264;
    }
    function rl(Q) {
      return Ec(Q).kind === 263;
    }
    function Hl(Q, ot, xt) {
      const pn = Y, wr = O;
      Hi(ot) && (O = ot), X & 2 && jd(ot) && (Y |= 2), X & 8 && rl(ot) && (Y |= 8), L(Q, ot, xt), Y = pn, O = wr;
    }
    function Is(Q, ot) {
      return ot = I(Q, ot), Q === 1 ? $s(ot) : $f(ot) ? mc(ot) : ot;
    }
    function mc(Q) {
      if (X & 2) {
        const ot = Q.name, xt = tn(ot);
        if (xt) {
          if (Q.objectAssignmentInitializer) {
            const pn = t.createAssignment(xt, Q.objectAssignmentInitializer);
            return mt(t.createPropertyAssignment(ot, pn), Q);
          }
          return mt(t.createPropertyAssignment(ot, xt), Q);
        }
      }
      return Q;
    }
    function $s(Q) {
      switch (Q.kind) {
        case 79:
          return zs(Q);
        case 208:
          return Uc(Q);
        case 209:
          return bu(Q);
      }
      return Q;
    }
    function zs(Q) {
      return tn(Q) || Q;
    }
    function tn(Q) {
      if (X & Y && !Tc(Q) && !Mv(Q)) {
        const ot = f.getReferencedExportContainer(Q, !1);
        if (ot && ot.kind !== 308 && (Y & 2 && ot.kind === 264 || Y & 8 && ot.kind === 263))
          return mt(t.createPropertyAccessExpression(t.getGeneratedNameForNode(ot), Q), Q);
      }
    }
    function Uc(Q) {
      return fe(Q);
    }
    function bu(Q) {
      return fe(Q);
    }
    function Uu(Q) {
      return Q.replace(/\*\//g, "*_/");
    }
    function fe(Q) {
      const ot = It(Q);
      if (ot !== void 0) {
        _fe(Q, ot);
        const xt = typeof ot == "string" ? t.createStringLiteral(ot) : t.createNumericLiteral(ot);
        if (!d.removeComments) {
          const pn = Ec(Q, sc);
          Y3(xt, 3, ` ${Uu(El(pn))} `);
        }
        return xt;
      }
      return Q;
    }
    function It(Q) {
      if (!U_(d))
        return Mr(Q) || cc(Q) ? f.getConstantValue(Q) : void 0;
    }
    function jt(Q) {
      return d.verbatimModuleSyntax || fr(Q) || (d.preserveValueImports ? f.isValueAliasDeclaration(Q) : f.isReferencedAliasDeclaration(Q));
    }
  }
  var $me, WMe = C({
    "src/compiler/transformers/ts.ts"() {
      wa(), $me = !1;
    }
  });
  function Qme(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      hoistVariableDeclaration: i,
      endLexicalEnvironment: o,
      startLexicalEnvironment: s,
      resumeLexicalEnvironment: l,
      addBlockScopedVariable: f
    } = e, d = e.getEmitResolver(), y = e.getCompilerOptions(), h = $o(y), b = KN(y), A = !!y.experimentalDecorators, L = !b, I = b && h < 9, O = L || I, k = h < 9, B = h < 99 ? -1 : b ? 0 : 3, V = h < 9, H = V && h >= 2, te = O || k || B === -1, X = e.onSubstituteNode;
    e.onSubstituteNode = zs;
    const Y = e.onEmitNode;
    e.onEmitNode = $s;
    let P = !1, de, ne, ye, ie, W;
    const ce = /* @__PURE__ */ new Map();
    let pe, ve, Te = !1, ee = !1;
    return J_(e, $e);
    function $e(fe) {
      if (fe.isDeclarationFile || (W = void 0, P = !!(P_(fe) & 32), !te && !P))
        return fe;
      const It = Gn(fe, Be, e);
      return yy(It, e.readEmitHelpers()), It;
    }
    function Ue(fe) {
      switch (fe.kind) {
        case 127:
          return lr() ? void 0 : fe;
        default:
          return ii(fe, lo);
      }
    }
    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 Wt(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 Xt(fe);
        case 166:
          return Pn(fe);
        case 205:
          return Wn(fe);
        case 274:
          return In(fe);
        case 80:
          return Et(fe);
        case 208:
          return nn(fe);
        case 209:
          return Mn(fe);
        case 221:
        case 222:
          return Ar(fe, !1);
        case 223:
          return re(fe, !1);
        case 214:
          return j(fe, !1, void 0);
        case 210:
          return Nt(fe);
        case 241:
          return ke(fe);
        case 212:
          return xe(fe);
        case 245:
          return Vr(fe);
        case 259:
        case 215:
        case 173:
        case 171:
        case 174:
        case 175:
          return Nr(void 0, We, fe);
        default:
          return We(fe);
      }
    }
    function We(fe) {
      return Gn(fe, Be, e);
    }
    function Oe(fe, It) {
      switch (fe.kind) {
        case 356:
          return je(fe, !1, It);
        case 214:
          return j(fe, !1, It);
        case 228:
          return Wt(fe, It);
        default:
          return Be(fe);
      }
    }
    function Me(fe) {
      switch (fe.kind) {
        case 221:
        case 222:
          return Ar(fe, !0);
        case 223:
          return re(fe, !0);
        case 357:
          return he(fe, !0);
        case 214:
          return j(fe, !0, void 0);
        default:
          return Be(fe);
      }
    }
    function Xe(fe) {
      switch (fe.kind) {
        case 294:
          return Gn(fe, Xe, e);
        case 230:
          return Sn(fe);
        default:
          return Be(fe);
      }
    }
    function He(fe) {
      switch (fe.kind) {
        case 207:
        case 206:
          return mc(fe);
        default:
          return Be(fe);
      }
    }
    function Fe(fe) {
      switch (fe.kind) {
        case 173:
          return Ai(fe);
        case 174:
        case 175:
        case 171:
          return Nr(void 0, Xi, fe);
        case 169:
          return Nr(void 0, Ni, fe);
        case 172:
          return K(fe);
        case 164:
          return _r(fe);
        case 237:
          return fe;
        default:
          return tc(fe) ? Ue(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 ir(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 || Ca(fe.parent) ? fe : jr(t.createIdentifier(""), fe);
    }
    function Vt(fe) {
      const It = Bc(fe.left);
      if (It) {
        const jt = ct(fe.right, Be, yt);
        return jr(r().createClassPrivateFieldInHelper(It.brandCheckIdentifier, jt), fe);
      }
      return Gn(fe, Be, e);
    }
    function tt(fe) {
      if (qf(fe, _e)) {
        const { referencedName: It, name: jt } = Qe(fe.name), Q = ct(fe.initializer, (ot) => Oe(ot, It), yt);
        return t.updatePropertyAssignment(fe, jt, Q);
      }
      return Gn(fe, Be, e);
    }
    function at(fe) {
      const It = ie;
      ie = [];
      const jt = Gn(fe, Be, e), Q = kt(ie) ? [jt, ...ie] : jt;
      return ie = It, Q;
    }
    function an(fe, It) {
      const jt = Ec(It, li);
      return jt && !jt.name && Kr(jt, 1024) ? t.createStringLiteral("default") : t.createStringLiteralFromNode(fe);
    }
    function Xt(fe) {
      if (qf(fe, _e)) {
        const It = an(fe.name, fe.initializer), jt = ct(fe.name, Be, _h), Q = ct(fe.initializer, (ot) => Oe(ot, It), yt);
        return t.updateVariableDeclaration(fe, jt, void 0, void 0, Q);
      }
      return Gn(fe, Be, e);
    }
    function Pn(fe) {
      if (qf(fe, _e)) {
        const It = an(fe.name, fe.initializer), jt = ct(fe.name, Be, _h), Q = ct(fe.initializer, (ot) => Oe(ot, It), yt);
        return t.updateParameterDeclaration(fe, void 0, void 0, jt, void 0, void 0, Q);
      }
      return Gn(fe, Be, e);
    }
    function Wn(fe) {
      if (qf(fe, _e)) {
        const It = an(fe.name, fe.initializer), jt = ct(fe.propertyName, Be, gc), Q = ct(fe.name, Be, _h), ot = ct(fe.initializer, (xt) => Oe(xt, It), yt);
        return t.updateBindingElement(fe, void 0, jt, Q, ot);
      }
      return Gn(fe, Be, e);
    }
    function In(fe) {
      if (qf(fe, _e)) {
        const It = t.createStringLiteral(fe.isExportEquals ? "" : "default"), jt = Xn(fe.modifiers, Ue, lo), Q = ct(fe.expression, (ot) => Oe(ot, It), yt);
        return t.updateExportAssignment(fe, jt, Q);
      }
      return Gn(fe, Be, e);
    }
    function Yt(fe) {
      return kt(ye) && (Fd(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 = ct(fe.expression, Be, yt);
      return t.updateComputedPropertyName(fe, Yt(It));
    }
    function Ai(fe) {
      return pe ? Re(fe, pe) : We(fe);
    }
    function Ki(fe) {
      return !!(k || pl(fe) && P_(fe) & 32);
    }
    function Xi(fe) {
      if (D.assert(!Jf(fe)), !Ju(fe) || !Ki(fe))
        return Gn(fe, Fe, e);
      const It = Bc(fe.name);
      if (D.assert(It, "Undeclared private name for property declaration."), !It.isValid)
        return fe;
      const jt = At(fe);
      jt && Jr().push(t.createAssignment(jt, t.createFunctionExpression(yn(fe.modifiers, (Q) => lo(Q) && !bx(Q) && !Dfe(Q)), fe.asteriskToken, jt, void 0, zc(fe.parameters, Be, e), void 0, Cf(fe.body, Be, e))));
    }
    function Nr(fe, It, jt) {
      const Q = ve;
      ve = fe;
      const ot = It(jt);
      return ve = Q, ot;
    }
    function At(fe) {
      D.assert(Di(fe.name));
      const It = Bc(fe.name);
      if (D.assert(It, "Undeclared private name for property declaration."), It.kind === "m")
        return It.methodName;
      if (It.kind === "a") {
        if (xv(fe))
          return It.getterName;
        if (_y(fe))
          return It.setterName;
      }
    }
    function vn(fe) {
      const It = Gm(fe), jt = $0(fe), Q = fe.name;
      let ot = Q, xt = Q;
      if (Ts(Q) && !nm(Q.expression)) {
        const as = q7(Q);
        if (as)
          ot = t.updateComputedPropertyName(Q, ct(Q.expression, Be, yt)), xt = t.updateComputedPropertyName(Q, as.left);
        else {
          const po = t.createTempVariable(i);
          ls(po, Q.expression);
          const Uo = ct(Q.expression, Be, yt), Ka = t.createAssignment(po, Uo);
          ls(Ka, Q.expression), ot = t.updateComputedPropertyName(Q, Ka), xt = t.updateComputedPropertyName(Q, po);
        }
      }
      const pn = Xn(fe.modifiers, Ue, lo), wr = NJ(t, fe, pn, fe.initializer);
      jr(wr, fe), sr(wr, 3072), ls(wr, jt);
      const Or = p_e(t, fe, pn, ot);
      jr(Or, fe), Gl(Or, It), ls(Or, jt);
      const ya = m_e(t, fe, pn, xt);
      return jr(ya, fe), sr(ya, 3072), ls(ya, jt), zK([wr, Or, ya], Ct, Ml);
    }
    function Ht(fe) {
      if (Ki(fe)) {
        const It = Bc(fe.name);
        if (D.assert(It, "Undeclared private name for property declaration."), !It.isValid)
          return fe;
        if (It.isStatic && !k) {
          const jt = ht(fe, t.createThis());
          if (jt)
            return t.createClassStaticBlockDeclaration(t.createBlock([jt], !0));
        }
        return;
      }
      if (L && !za(fe) && (W != null && W.data) && W.data.facts & 16)
        return t.updatePropertyDeclaration(fe, Xn(fe.modifiers, Be, tc), fe.name, void 0, void 0, void 0);
      if (qf(fe, _e)) {
        const { referencedName: It, name: jt } = Qe(fe.name);
        return t.updatePropertyDeclaration(fe, Xn(fe.modifiers, Ue, lo), jt, void 0, void 0, ct(fe.initializer, (Q) => Oe(Q, It), yt));
      }
      return t.updatePropertyDeclaration(fe, Xn(fe.modifiers, Ue, lo), ct(fe.name, st, gc), void 0, void 0, ct(fe.initializer, Be, yt));
    }
    function dn(fe) {
      if (O && !ef(fe)) {
        const It = _o(fe.name, !!fe.initializer || b, qf(fe, _e));
        if (It && Jr().push(...h_e(It)), za(fe) && !k) {
          const jt = ht(fe, t.createThis());
          if (jt) {
            const Q = t.createClassStaticBlockDeclaration(t.createBlock([jt]));
            return jr(Q, fe), Gl(Q, fe), Gl(jt, { pos: -1, end: -1 }), D1(jt, void 0), uC(jt, void 0), Q;
          }
        }
        return;
      }
      return t.updatePropertyDeclaration(fe, Xn(fe.modifiers, Ue, lo), ct(fe.name, st, gc), void 0, void 0, ct(fe.initializer, Be, yt));
    }
    function ir(fe) {
      return D.assert(!Jf(fe), "Decorators should already have been transformed and elided."), Ju(fe) ? Ht(fe) : dn(fe);
    }
    function lr() {
      return B === -1 || B === 3 && !!(W != null && W.data) && !!(W.data.facts & 16);
    }
    function Ni(fe) {
      return ef(fe) && (lr() || pl(fe) && P_(fe) & 32) ? vn(fe) : ir(fe);
    }
    function pi(fe, It) {
      return Nn(fe, ct(It, Be, yt));
    }
    function Nn(fe, It) {
      switch (Gl(It, X0(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 nn(fe) {
      if (Di(fe.name)) {
        const It = Bc(fe.name);
        if (It)
          return mt(jr(pi(It, fe.expression), fe), fe);
      }
      if (H && sd(fe) && Ve(fe.name) && ve && (W != null && W.data)) {
        const { classConstructor: It, superClassReference: jt, facts: Q } = W.data;
        if (Q & 1)
          return Gi(fe);
        if (It && jt) {
          const ot = t.createReflectGetCall(jt, t.createStringLiteralFromNode(fe.name), It);
          return jr(ot, fe.expression), mt(ot, fe.expression), ot;
        }
      }
      return Gn(fe, Be, e);
    }
    function Mn(fe) {
      if (H && sd(fe) && ve && (W != null && W.data)) {
        const { classConstructor: It, superClassReference: jt, facts: Q } = W.data;
        if (Q & 1)
          return Gi(fe);
        if (It && jt) {
          const ot = t.createReflectGetCall(jt, ct(fe.argumentExpression, Be, yt), It);
          return jr(ot, fe.expression), mt(ot, fe.expression), ot;
        }
      }
      return Gn(fe, Be, e);
    }
    function Ar(fe, It) {
      if (fe.operator === 45 || fe.operator === 46) {
        const jt = Gs(fe.operand);
        if (TA(jt)) {
          let Q;
          if (Q = Bc(jt.name)) {
            const ot = ct(jt.expression, Be, yt), { readExpression: xt, initializeExpression: pn } = gt(ot);
            let wr = pi(Q, xt);
            const Or = Ov(fe) || It ? void 0 : t.createTempVariable(i);
            return wr = B7(t, fe, wr, i, Or), wr = Ke(Q, pn || xt, wr, 63), jr(wr, fe), mt(wr, fe), Or && (wr = t.createComma(wr, Or), mt(wr, fe)), wr;
          }
        } else if (H && sd(jt) && ve && (W != null && W.data)) {
          const { classConstructor: Q, superClassReference: ot, facts: xt } = W.data;
          if (xt & 1) {
            const pn = Gi(jt);
            return Ov(fe) ? t.updatePrefixUnaryExpression(fe, pn) : t.updatePostfixUnaryExpression(fe, pn);
          }
          if (Q && ot) {
            let pn, wr;
            if (Mr(jt) ? Ve(jt.name) && (wr = pn = t.createStringLiteralFromNode(jt.name)) : nm(jt.argumentExpression) ? wr = pn = jt.argumentExpression : (wr = t.createTempVariable(i), pn = t.createAssignment(wr, ct(jt.argumentExpression, Be, yt))), pn && wr) {
              let Or = t.createReflectGetCall(ot, wr, Q);
              mt(Or, jt);
              const ya = It ? void 0 : t.createTempVariable(i);
              return Or = B7(t, fe, Or, i, ya), Or = t.createReflectSetCall(ot, pn, Or, Q), jr(Or, fe), mt(Or, fe), ya && (Or = t.createComma(Or, ya), mt(Or, fe)), Or;
            }
          }
        }
      }
      return Gn(fe, Be, e);
    }
    function Vr(fe) {
      return t.updateForStatement(fe, ct(fe.initializer, Me, zp), ct(fe.condition, Be, yt), ct(fe.incrementor, Me, yt), g_(fe.statement, Be, e));
    }
    function ke(fe) {
      return t.updateExpressionStatement(fe, ct(fe.expression, Me, yt));
    }
    function gt(fe) {
      const It = Ys(fe) ? fe : t.cloneNode(fe);
      if (nm(fe))
        return { readExpression: It, initializeExpression: void 0 };
      const jt = t.createTempVariable(i), Q = t.createAssignment(jt, It);
      return { readExpression: jt, initializeExpression: Q };
    }
    function Nt(fe) {
      var It;
      if (TA(fe.expression) && Bc(fe.expression.name)) {
        const { thisArg: jt, target: Q } = t.createCallBinding(fe.expression, i, h);
        return tT(fe) ? t.updateCallChain(fe, t.createPropertyAccessChain(ct(Q, Be, yt), fe.questionDotToken, "call"), void 0, void 0, [ct(jt, Be, yt), ...Xn(fe.arguments, Be, yt)]) : t.updateCallExpression(fe, t.createPropertyAccessExpression(ct(Q, Be, yt), "call"), void 0, [ct(jt, Be, yt), ...Xn(fe.arguments, Be, yt)]);
      }
      if (H && sd(fe.expression) && ve && ((It = W == null ? void 0 : W.data) != null && It.classConstructor)) {
        const jt = t.createFunctionCallCall(ct(fe.expression, Be, yt), W.data.classConstructor, Xn(fe.arguments, Be, yt));
        return jr(jt, fe), mt(jt, fe), jt;
      }
      return Gn(fe, Be, e);
    }
    function xe(fe) {
      var It;
      if (TA(fe.tag) && Bc(fe.tag.name)) {
        const { thisArg: jt, target: Q } = t.createCallBinding(fe.tag, i, h);
        return t.updateTaggedTemplateExpression(fe, t.createCallExpression(t.createPropertyAccessExpression(ct(Q, Be, yt), "bind"), void 0, [ct(jt, Be, yt)]), void 0, ct(fe.template, Be, AA));
      }
      if (H && sd(fe.tag) && ve && ((It = W == null ? void 0 : W.data) != null && It.classConstructor)) {
        const jt = t.createFunctionBindCall(ct(fe.tag, Be, yt), W.data.classConstructor, []);
        return jr(jt, fe), mt(jt, fe), t.updateTaggedTemplateExpression(fe, jt, void 0, ct(fe.template, Be, AA));
      }
      return Gn(fe, Be, e);
    }
    function _t(fe) {
      if (W && ce.set(Ec(fe), W), k) {
        s();
        let It = Nr(fe, (Q) => Xn(Q, Be, Ca), fe.body.statements);
        It = t.mergeLexicalEnvironment(It, o());
        const jt = t.createImmediatelyInvokedArrowFunction(It);
        return jr(jt, fe), mt(jt, fe), $p(jt, 4), jt;
      }
    }
    function _e(fe) {
      if (Pu(fe) && !fe.name) {
        const It = G5(fe), jt = cn(It, Lc);
        if (jt) {
          for (const ot of jt.body.statements)
            if (nu(ot) && vk(ot.expression, "___setFunctionName"))
              return !1;
        }
        return (k || !!P_(fe)) && kt(It, (ot) => Lc(ot) || Ju(ot) || O && v8(ot));
      }
      return !1;
    }
    function re(fe, It) {
      if (hy(fe)) {
        const jt = ye;
        ye = void 0, fe = t.updateBinaryExpression(fe, ct(fe.left, He, yt), fe.operatorToken, ct(fe.right, Be, yt));
        const Q = kt(ye) ? t.inlineExpressions(nR([...ye, fe])) : fe;
        return ye = jt, Q;
      }
      if (Yu(fe)) {
        if (qf(fe, _e)) {
          const jt = an(fe.left, fe.right), Q = ct(fe.left, Be, yt), ot = ct(fe.right, (xt) => Oe(xt, jt), yt);
          return t.updateBinaryExpression(fe, Q, fe.operatorToken, ot);
        }
        if (TA(fe.left)) {
          const jt = Bc(fe.left.name);
          if (jt)
            return mt(jr(Ke(jt, fe.left.expression, fe.right, fe.operatorToken.kind), fe), fe);
        } else if (H && sd(fe.left) && ve && (W != null && W.data)) {
          const { classConstructor: jt, superClassReference: Q, facts: ot } = W.data;
          if (ot & 1)
            return t.updateBinaryExpression(fe, Gi(fe.left), fe.operatorToken, ct(fe.right, Be, yt));
          if (jt && Q) {
            let xt = cc(fe.left) ? ct(fe.left.argumentExpression, Be, yt) : Ve(fe.left.name) ? t.createStringLiteralFromNode(fe.left.name) : void 0;
            if (xt) {
              let pn = ct(fe.right, Be, yt);
              if (y8(fe.operatorToken.kind)) {
                let Or = xt;
                nm(xt) || (Or = t.createTempVariable(i), xt = t.createAssignment(Or, xt));
                const ya = t.createReflectGetCall(Q, Or, jt);
                jr(ya, fe.left), mt(ya, fe.left), pn = t.createBinaryExpression(ya, Xk(fe.operatorToken.kind), pn), mt(pn, fe);
              }
              const wr = It ? void 0 : t.createTempVariable(i);
              return wr && (pn = t.createAssignment(wr, pn), mt(wr, fe)), pn = t.createReflectSetCall(Q, xt, pn, jt), jr(pn, fe), mt(pn, fe), wr && (pn = t.createComma(pn, wr), mt(pn, fe)), pn;
            }
          }
        }
      }
      return XMe(fe) ? Vt(fe) : Gn(fe, Be, e);
    }
    function he(fe, It) {
      const jt = It ? g8(fe.elements, Me) : g8(fe.elements, Be, Me);
      return t.updateCommaListExpression(fe, jt);
    }
    function j(fe, It, jt) {
      const Q = It ? Me : jt ? (xt) => Oe(xt, jt) : Be, ot = ct(fe.expression, Q, yt);
      return t.updateParenthesizedExpression(fe, ot);
    }
    function je(fe, It, jt) {
      const Q = It ? Me : jt ? (xt) => Oe(xt, jt) : Be, ot = ct(fe.expression, Q, yt);
      return t.updatePartiallyEmittedExpression(fe, ot);
    }
    function Qe(fe) {
      if (F_(fe) || Di(fe)) {
        const xt = t.createStringLiteralFromNode(fe), pn = ct(fe, Be, gc);
        return { referencedName: xt, name: pn };
      }
      if (F_(fe.expression) && !Ve(fe.expression)) {
        const xt = t.createStringLiteralFromNode(fe.expression), pn = ct(fe, Be, gc);
        return { referencedName: xt, name: pn };
      }
      const It = t.createTempVariable(i), jt = r().createPropKeyHelper(ct(fe.expression, Be, yt)), Q = t.createAssignment(It, jt), ot = t.updateComputedPropertyName(fe, Yt(Q));
      return { referencedName: It, name: ot };
    }
    function Ke(fe, It, jt, Q) {
      if (It = ct(It, Be, yt), jt = ct(jt, Be, yt), y8(Q)) {
        const { readExpression: ot, initializeExpression: xt } = gt(It);
        It = xt || ot, jt = t.createBinaryExpression(Nn(fe, ot), Xk(Q), jt);
      }
      switch (Gl(It, X0(It, -1)), fe.kind) {
        case "a":
          return r().createClassPrivateFieldSetHelper(It, fe.brandCheckIdentifier, jt, fe.kind, fe.setterName);
        case "m":
          return r().createClassPrivateFieldSetHelper(It, fe.brandCheckIdentifier, jt, fe.kind, void 0);
        case "f":
          return r().createClassPrivateFieldSetHelper(It, fe.brandCheckIdentifier, jt, 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 yn(fe.members, Wme);
    }
    function ln(fe) {
      let It = 0;
      const jt = Ec(fe);
      wl(jt) && b1(A, jt) && (It |= 1);
      let Q = !1, ot = !1, xt = !1, pn = !1;
      for (const Or of fe.members)
        za(Or) ? (Or.name && (Di(Or.name) || ef(Or)) && k && (It |= 2), (Za(Or) || Lc(Or)) && (V && Or.transformFlags & 16384 && (It |= 8, It & 1 || (It |= 2)), H && Or.transformFlags & 134217728 && (It & 1 || (It |= 6)))) : C1(Ec(Or)) || (ef(Or) ? (pn = !0, xt || (xt = Ju(Or))) : Ju(Or) ? xt = !0 : Za(Or) && (Q = !0, ot || (ot = !!Or.initializer)));
      return (I && Q || L && ot || k && xt || k && pn && B === -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 sa().superClassReference = Q, t.updateExpressionWithTypeArguments(fe, t.createAssignment(Q, ct(fe.expression, Be, yt)), void 0);
      }
      return Gn(fe, Be, e);
    }
    function Er(fe, It, jt) {
      const Q = pe, ot = ye, xt = W;
      pe = fe, ye = void 0, bo();
      const pn = P_(fe) & 32;
      if (k || pn) {
        const ya = Aa(fe);
        ya && Ve(ya) && (Ui().data.className = ya);
      }
      if (k) {
        const ya = Ut(fe);
        kt(ya) && (Ui().data.weakSetName = Fc("instances", ya[0].name));
      }
      const wr = ln(fe);
      wr && (sa().facts = wr), wr & 8 && Si();
      const Or = jt(fe, wr, It);
      return no(), D.assert(W === xt), pe = Q, ye = ot, Or;
    }
    function ue(fe) {
      return Er(fe, void 0, pt);
    }
    function pt(fe, It) {
      var jt, Q;
      let ot;
      if (It & 2) {
        if (k && ((jt = fe.emitNode) != null && jt.classThis))
          sa().classConstructor = fe.emitNode.classThis, ot = t.createAssignment(fe.emitNode.classThis, t.getInternalName(fe));
        else {
          const po = t.createTempVariable(i, !0);
          sa().classConstructor = t.cloneNode(po), ot = t.createAssignment(po, t.getInternalName(fe));
        }
        (Q = fe.emitNode) != null && Q.classThis && (sa().classThis = fe.emitNode.classThis);
      }
      const xt = Xn(fe.modifiers, Ue, lo), pn = Xn(fe.heritageClauses, Xe, Bd), { members: wr, prologue: Or } = Pe(fe), ya = t.updateClassDeclaration(fe, xt, fe.name, void 0, pn, wr), as = [];
      if (Or && as.push(t.createExpressionStatement(Or)), as.push(ya), ot && Jr().unshift(ot), kt(ye) && as.push(t.createExpressionStatement(t.inlineExpressions(ye))), L || k || P_(fe) & 32) {
        const po = G5(fe);
        kt(po) && Rt(as, po, t.getInternalName(fe));
      }
      return as;
    }
    function Wt(fe, It) {
      return Er(fe, It, it);
    }
    function it(fe, It, jt) {
      var Q, ot, xt, pn, wr, Or;
      const ya = !!(It & 1), as = G5(fe), po = d.getNodeCheckFlags(fe) & 1048576;
      let Uo;
      function Ka() {
        var Vc;
        if (k && ((Vc = fe.emitNode) != null && Vc.classThis))
          return sa().classConstructor = fe.emitNode.classThis;
        const kf = d.getNodeCheckFlags(fe), Se = kf & 1048576, Dt = kf & 32768, On = t.createTempVariable(Dt ? f : i, !!Se);
        return sa().classConstructor = t.cloneNode(On), On;
      }
      (Q = fe.emitNode) != null && Q.classThis && (sa().classThis = fe.emitNode.classThis), It & 2 && (Uo ?? (Uo = Ka()));
      const uc = Xn(fe.modifiers, Ue, lo), ll = Xn(fe.heritageClauses, Xe, Bd), { members: ud, prologue: ys } = Pe(fe);
      let cs = t.updateClassExpression(fe, uc, fe.name, void 0, ll, ud);
      const dc = [];
      if (ys && dc.push(ys), (k || P_(fe) & 32) && kt(as, (Vc) => Lc(Vc) || Ju(Vc) || O && v8(Vc)) || kt(ye) || jt)
        if (ya) {
          if (D.assertIsDefined(ie, "Decorated classes transformed by TypeScript are expected to be within a variable declaration."), kt(ye) && bi(ie, en(ye, t.createExpressionStatement)), jt)
            if (k) {
              const Vc = r().createSetFunctionNameHelper((xt = Uo ?? ((ot = fe.emitNode) == null ? void 0 : ot.classThis)) != null ? xt : t.getInternalName(fe), jt);
              ie.push(t.createExpressionStatement(Vc));
            } else {
              const Vc = r().createSetFunctionNameHelper(t.createThis(), jt);
              cs = t.updateClassExpression(cs, cs.modifiers, cs.name, cs.typeParameters, cs.heritageClauses, [
                t.createClassStaticBlockDeclaration(t.createBlock([
                  t.createExpressionStatement(Vc)
                ])),
                ...cs.members
              ]);
            }
          kt(as) && Rt(ie, as, (wr = (pn = fe.emitNode) == null ? void 0 : pn.classThis) != null ? wr : t.getInternalName(fe)), Uo ? dc.push(t.createAssignment(Uo, cs)) : k && ((Or = fe.emitNode) != null && Or.classThis) ? dc.push(t.createAssignment(fe.emitNode.classThis, cs)) : dc.push(cs);
        } else {
          if (Uo ?? (Uo = Ka()), po) {
            ai();
            const Vc = t.cloneNode(Uo);
            Vc.emitNode.autoGenerate.flags &= -9, ne[Ic(fe)] = Vc;
          }
          dc.push(t.createAssignment(Uo, cs)), bi(dc, ye), jt && dc.push(r().createSetFunctionNameHelper(Uo, jt)), bi(dc, dt(as, Uo)), dc.push(t.cloneNode(Uo));
        }
      else
        dc.push(cs);
      return dc.length > 1 && ($p(cs, 131072), dc.forEach(Fu)), t.inlineExpressions(dc);
    }
    function K(fe) {
      if (!k)
        return Gn(fe, Be, e);
    }
    function Pe(fe) {
      const It = !!(P_(fe) & 32);
      if (k || P) {
        for (const pn of fe.members)
          if (Ju(pn))
            if (Ki(pn))
              nc(pn, pn.name, is);
            else {
              const wr = Ui();
              MT(wr, pn.name, { kind: "untransformed" });
            }
        if (k && kt(Ut(fe)) && Z(), lr()) {
          for (const pn of fe.members)
            if (ef(pn)) {
              const wr = t.getGeneratedPrivateNameForNode(pn.name, void 0, "_accessor_storage");
              if (k || It && pl(pn))
                nc(pn, wr, di);
              else {
                const Or = Ui();
                MT(Or, wr, { kind: "untransformed" });
              }
            }
        }
      }
      let jt = Xn(fe.members, Fe, Ml), Q;
      kt(jt, Hc) || (Q = Re(void 0, fe));
      let ot, xt;
      if (!k && kt(ye)) {
        let pn = t.createExpressionStatement(t.inlineExpressions(ye));
        if (pn.transformFlags & 134234112) {
          const Or = t.createTempVariable(i), ya = t.createArrowFunction(void 0, void 0, [], void 0, void 0, t.createBlock([pn]));
          ot = t.createAssignment(Or, ya), pn = t.createExpressionStatement(t.createCallExpression(Or, void 0, []));
        }
        const wr = t.createBlock([pn]);
        xt = t.createClassStaticBlockDeclaration(wr), ye = void 0;
      }
      if (Q || xt) {
        let pn;
        pn = Bn(pn, Q), pn = Bn(pn, xt), pn = bi(pn, jt), jt = mt(t.createNodeArray(pn), fe.members);
      }
      return { members: jt, prologue: ot };
    }
    function Z() {
      const { weakSetName: fe } = Ui().data;
      D.assert(fe, "weakSetName should be set in private identifier environment"), Jr().push(t.createAssignment(fe, t.createNewExpression(t.createIdentifier("WeakSet"), void 0, [])));
    }
    function Re(fe, It) {
      if (fe = ct(fe, Be, Hc), !(W != null && W.data) || !(W.data.facts & 16))
        return fe;
      const jt = Jp(It), Q = !!(jt && hu(jt.expression).kind !== 104), ot = zc(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)) : Fu(jr(mt(t.createConstructorDeclaration(void 0, ot ?? [], xt), fe || It), fe)) : fe;
    }
    function q(fe, It, jt) {
      var Q, ot;
      const xt = QK(fe, !1, !1);
      let pn = xt;
      b || (pn = yn(pn, (ys) => !!ys.initializer || Di(ys.name) || Pm(ys)));
      const wr = Ut(fe), Or = kt(pn) || kt(wr);
      if (!It && !Or)
        return Cf(void 0, Be, e);
      l();
      const ya = !It && jt;
      let as = 0, po = 0, Uo = -1, Ka = [];
      (Q = It == null ? void 0 : It.body) != null && Q.statements && (po = t.copyPrologue(It.body.statements, Ka, !1, Be), Uo = B5(It.body.statements, po), Uo >= 0 ? (as = Uo + 1, Ka = [
        ...Ka.slice(0, po),
        ...Xn(It.body.statements, Be, Ca, po, as - po),
        ...Ka.slice(po)
      ]) : po >= 0 && (as = po)), ya && Ka.push(t.createExpressionStatement(t.createCallExpression(t.createSuper(), void 0, [t.createSpreadElement(t.createIdentifier("arguments"))])));
      let uc = 0;
      if (It != null && It.body) {
        for (let ys = as; ys < It.body.statements.length; ys++) {
          const cs = It.body.statements[ys];
          if (Qd(Ec(cs), It))
            uc++;
          else
            break;
        }
        uc > 0 && (as += uc);
      }
      const ll = t.createThis();
      if (xi(Ka, wr, ll), It) {
        const ys = yn(xt, (dc) => Qd(Ec(dc), It)), cs = yn(pn, (dc) => !Qd(Ec(dc), It));
        Rt(Ka, ys, ll), Rt(Ka, cs, ll);
      } else
        Rt(Ka, pn, ll);
      if (It && bi(Ka, Xn(It.body.statements, Be, Ca, as)), Ka = t.mergeLexicalEnvironment(Ka, o()), Ka.length === 0 && !It)
        return;
      const ud = It != null && It.body && It.body.statements.length >= Ka.length && (ot = It.body.multiLine) != null ? ot : Ka.length > 0;
      return mt(t.createBlock(mt(t.createNodeArray(Ka), It ? It.body.statements : fe.members), ud), It ? It.body : void 0);
    }
    function Rt(fe, It, jt) {
      for (const Q of It) {
        if (za(Q) && !k)
          continue;
        const ot = ht(Q, jt);
        ot && fe.push(ot);
      }
    }
    function ht(fe, It) {
      const jt = Lc(fe) ? _t(fe) : fn(fe, It);
      if (!jt)
        return;
      const Q = t.createExpressionStatement(jt);
      jr(Q, fe), $p(Q, go(fe) & 3072), Gl(Q, fe);
      const ot = Ec(fe);
      return Oa(ot) ? (ls(Q, ot), dO(Q)) : ls(Q, Xp(fe)), D1(jt, void 0), uC(jt, void 0), Pm(ot) && $p(Q, 3072), Q;
    }
    function dt(fe, It) {
      const jt = [];
      for (const Q of fe) {
        const ot = Lc(Q) ? _t(Q) : fn(Q, It);
        ot && (Fu(ot), jr(ot, Q), $p(ot, go(Q) & 3072), ls(ot, Xp(Q)), Gl(ot, Q), jt.push(ot));
      }
      return jt;
    }
    function fn(fe, It) {
      var jt;
      const Q = ve, ot = Qn(fe, It);
      return ot && pl(fe) && ((jt = W == null ? void 0 : W.data) != null && jt.facts) && (jr(ot, fe), $p(ot, 4), ls(ot, $0(fe.name)), ce.set(Ec(fe), W)), ve = Q, ot;
    }
    function Qn(fe, It) {
      const jt = !b;
      let Q;
      qf(fe, _e) && (F_(fe.name) || Di(fe.name) ? Q = t.createStringLiteralFromNode(fe.name) : F_(fe.name.expression) && !Ve(fe.name.expression) ? Q = t.createStringLiteralFromNode(fe.name.expression) : Q = t.getGeneratedNameForNode(fe.name));
      const ot = Pm(fe) ? t.getGeneratedPrivateNameForNode(fe.name) : Ts(fe.name) && !nm(fe.name.expression) ? t.updateComputedPropertyName(fe.name, t.getGeneratedNameForNode(fe.name)) : fe.name;
      pl(fe) && (ve = fe);
      const xt = Q ? (Or) => Oe(Or, Q) : Be;
      if (Di(ot) && Ki(fe)) {
        const Or = Bc(ot);
        if (Or)
          return Or.kind === "f" ? Or.isStatic ? zMe(Or.variableName, ct(fe.initializer, xt, yt)) : qMe(It, ct(fe.initializer, xt, yt), Or.brandCheckIdentifier) : void 0;
        D.fail("Undeclared private name for property declaration.");
      }
      if ((Di(ot) || pl(fe)) && !fe.initializer)
        return;
      const pn = Ec(fe);
      if (Kr(pn, 256))
        return;
      let wr = ct(fe.initializer, xt, yt);
      if (Qd(pn, pn.parent) && Ve(ot)) {
        const Or = t.cloneNode(ot);
        wr ? (Fd(wr) && OO(wr.expression) && vk(wr.expression.left, "___runInitializers") && Cx(wr.expression.right) && h_(wr.expression.right.expression) && (wr = wr.expression.left), wr = t.inlineExpressions([wr, Or])) : wr = Or, sr(ot, 3168), ls(Or, pn.name), sr(Or, 3072);
      } else
        wr ?? (wr = t.createVoidZero());
      if (jt || Di(ot)) {
        const Or = DT(t, It, ot, ot);
        return $p(Or, 1024), t.createAssignment(Or, wr);
      } else {
        const Or = Ts(ot) ? ot.expression : Ve(ot) ? t.createStringLiteral(ta(ot.escapedText)) : ot, ya = t.createPropertyDescriptor({ value: wr, configurable: !0, writable: !0, enumerable: !0 });
        return t.createObjectDefinePropertyCall(It, Or, ya);
      }
    }
    function ai() {
      de & 1 || (de |= 1, e.enableSubstitution(79), ne = []);
    }
    function Si() {
      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 xi(fe, It, jt) {
      if (!k || !kt(It))
        return;
      const { weakSetName: Q } = Ui().data;
      D.assert(Q, "weakSetName should be set in private identifier environment"), fe.push(t.createExpressionStatement(JMe(jt, Q)));
    }
    function Gi(fe) {
      return Mr(fe) ? t.updatePropertyAccessExpression(fe, t.createVoidZero(), fe.name) : t.updateElementAccessExpression(fe, t.createVoidZero(), ct(fe.argumentExpression, Be, yt));
    }
    function _o(fe, It, jt) {
      if (Ts(fe)) {
        const Q = q7(fe);
        let ot = ct(fe.expression, Be, yt);
        const xt = O_(ot), pn = nm(xt);
        if (!(!!Q || Yu(xt) && Tc(xt.left)) && !pn && It) {
          const Or = t.getGeneratedNameForNode(fe);
          return d.getNodeCheckFlags(fe) & 32768 ? f(Or) : i(Or), jt && (ot = r().createPropKeyHelper(ot)), t.createAssignment(Or, ot);
        }
        return pn || Ve(xt) ? void 0 : ot;
      }
    }
    function bo() {
      W = { previous: W, data: void 0 };
    }
    function no() {
      W = W == null ? void 0 : W.previous;
    }
    function sa() {
      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 Ui() {
      var fe;
      return D.assert(W), (fe = W.privateEnv) != null ? fe : W.privateEnv = Jme({
        className: void 0,
        weakSetName: void 0
      });
    }
    function Jr() {
      return ye ?? (ye = []);
    }
    function is(fe, It, jt, Q, ot, xt, pn) {
      ef(fe) ? $c(fe, It, jt, Q, ot, xt) : Za(fe) ? di(fe, It, jt, Q, ot, xt) : nl(fe) ? ca(fe, It, jt, Q, ot, xt) : H_(fe) ? wn(fe, It, jt, Q, ot, xt, pn) : Yf(fe) && ua(fe, It, jt, Q, ot, xt, pn);
    }
    function di(fe, It, jt, Q, ot, xt, pn) {
      var wr;
      if (ot) {
        const Or = D.checkDefined((wr = jt.classThis) != null ? wr : jt.classConstructor, "classConstructor should be set in private identifier environment"), ya = qc(It);
        MT(Q, It, {
          kind: "f",
          isStatic: !0,
          brandCheckIdentifier: Or,
          variableName: ya,
          isValid: xt
        });
      } else {
        const Or = qc(It);
        MT(Q, It, {
          kind: "f",
          isStatic: !1,
          brandCheckIdentifier: Or,
          isValid: xt
        }), Jr().push(t.createAssignment(Or, t.createNewExpression(t.createIdentifier("WeakMap"), void 0, [])));
      }
    }
    function ca(fe, It, jt, Q, ot, xt, pn) {
      var wr;
      const Or = qc(It), ya = ot ? D.checkDefined((wr = jt.classThis) != null ? wr : jt.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: Or,
        brandCheckIdentifier: ya,
        isStatic: ot,
        isValid: xt
      });
    }
    function wn(fe, It, jt, Q, ot, xt, pn) {
      var wr;
      const Or = qc(It, "_get"), ya = ot ? D.checkDefined((wr = jt.classThis) != null ? wr : jt.classConstructor, "classConstructor should be set in private identifier environment") : D.checkDefined(Q.data.weakSetName, "weakSetName should be set in private identifier environment");
      (pn == null ? void 0 : pn.kind) === "a" && pn.isStatic === ot && !pn.getterName ? pn.getterName = Or : MT(Q, It, {
        kind: "a",
        getterName: Or,
        setterName: void 0,
        brandCheckIdentifier: ya,
        isStatic: ot,
        isValid: xt
      });
    }
    function ua(fe, It, jt, Q, ot, xt, pn) {
      var wr;
      const Or = qc(It, "_set"), ya = ot ? D.checkDefined((wr = jt.classThis) != null ? wr : jt.classConstructor, "classConstructor should be set in private identifier environment") : D.checkDefined(Q.data.weakSetName, "weakSetName should be set in private identifier environment");
      (pn == null ? void 0 : pn.kind) === "a" && pn.isStatic === ot && !pn.setterName ? pn.setterName = Or : MT(Q, It, {
        kind: "a",
        getterName: void 0,
        setterName: Or,
        brandCheckIdentifier: ya,
        isStatic: ot,
        isValid: xt
      });
    }
    function $c(fe, It, jt, Q, ot, xt, pn) {
      var wr;
      const Or = qc(It, "_get"), ya = qc(It, "_set"), as = ot ? D.checkDefined((wr = jt.classThis) != null ? wr : jt.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: Or,
        setterName: ya,
        brandCheckIdentifier: as,
        isStatic: ot,
        isValid: xt
      });
    }
    function nc(fe, It, jt) {
      const Q = sa(), ot = Ui(), xt = tX(ot, It), pn = pl(fe), wr = !KMe(It) && xt === void 0;
      jt(fe, It, Q, ot, pn, wr, xt);
    }
    function Fc(fe, It, jt) {
      const { className: Q } = Ui().data, ot = Q ? { prefix: "_", node: Q, suffix: "_" } : "_", xt = typeof fe == "object" ? t.getGeneratedNameForNode(fe, 24, ot, jt) : typeof fe == "string" ? t.createUniqueName(fe, 16, ot, jt) : t.createTempVariable(void 0, !0, ot, jt);
      return d.getNodeCheckFlags(It) & 32768 ? f(xt) : i(xt), xt;
    }
    function qc(fe, It) {
      var jt;
      const Q = UM(fe);
      return Fc((jt = Q == null ? void 0 : Q.substring(1)) != null ? jt : fe, fe, It);
    }
    function Bc(fe) {
      const It = Kme(W, fe);
      return (It == null ? void 0 : It.kind) === "untransformed" ? void 0 : It;
    }
    function xo(fe) {
      const It = t.getGeneratedNameForNode(fe), jt = Bc(fe.name);
      if (!jt)
        return Gn(fe, Be, e);
      let Q = fe.expression;
      return (rN(fe) || sd(fe) || !U1(fe.expression)) && (Q = t.createTempVariable(i, !0), Jr().push(t.createBinaryExpression(Q, 63, ct(fe.expression, Be, yt)))), t.createAssignmentTargetWrapper(It, Ke(jt, Q, It, 63));
    }
    function Sa(fe) {
      if (xs(fe) || Ou(fe))
        return mc(fe);
      if (TA(fe))
        return xo(fe);
      if (H && sd(fe) && ve && (W != null && W.data)) {
        const { classConstructor: It, superClassReference: jt, facts: Q } = W.data;
        if (Q & 1)
          return Gi(fe);
        if (It && jt) {
          const ot = cc(fe) ? ct(fe.argumentExpression, Be, yt) : Ve(fe.name) ? t.createStringLiteralFromNode(fe.name) : void 0;
          if (ot) {
            const xt = t.createTempVariable(void 0);
            return t.createAssignmentTargetWrapper(xt, t.createReflectSetCall(jt, ot, xt, It));
          }
        }
      }
      return Gn(fe, Be, e);
    }
    function Jo(fe) {
      if (qf(fe, _e)) {
        const It = Sa(fe.left), jt = an(fe.left, fe.right), Q = ct(fe.right, (ot) => Oe(ot, jt), yt);
        return t.updateBinaryExpression(fe, It, fe.operatorToken, Q);
      }
      if (Yu(fe, !0)) {
        const It = Sa(fe.left), jt = ct(fe.right, Be, yt);
        return t.updateBinaryExpression(fe, It, fe.operatorToken, jt);
      }
      return Sa(fe);
    }
    function Gc(fe) {
      if (vd(fe.expression)) {
        const It = Sa(fe.expression);
        return t.updateSpreadElement(fe, It);
      }
      return Gn(fe, Be, e);
    }
    function Yl(fe) {
      return D.assertNode(fe, HR), xh(fe) ? Gc(fe) : kl(fe) ? Gn(fe, Be, e) : Jo(fe);
    }
    function jd(fe) {
      const It = ct(fe.name, Be, gc);
      if (Yu(fe.initializer, !0)) {
        const jt = Jo(fe.initializer);
        return t.updatePropertyAssignment(fe, It, jt);
      }
      if (vd(fe.initializer)) {
        const jt = Sa(fe.initializer);
        return t.updatePropertyAssignment(fe, It, jt);
      }
      return Gn(fe, Be, e);
    }
    function rl(fe) {
      if (qf(fe, _e)) {
        const It = an(fe.name, fe.objectAssignmentInitializer), jt = ct(fe.objectAssignmentInitializer, (Q) => Oe(Q, It), yt);
        return t.updateShorthandPropertyAssignment(fe, fe.name, jt);
      }
      return Gn(fe, Be, e);
    }
    function Hl(fe) {
      if (vd(fe.expression)) {
        const It = Sa(fe.expression);
        return t.updateSpreadAssignment(fe, It);
      }
      return Gn(fe, Be, e);
    }
    function Is(fe) {
      return D.assertNode(fe, jR), Nx(fe) ? Hl(fe) : $f(fe) ? rl(fe) : Vl(fe) ? jd(fe) : Gn(fe, Be, e);
    }
    function mc(fe) {
      return Ou(fe) ? t.updateArrayLiteralExpression(fe, Xn(fe.elements, Yl, yt)) : t.updateObjectLiteralExpression(fe, Xn(fe.properties, Is, fy));
    }
    function $s(fe, It, jt) {
      const Q = Ec(It), ot = ce.get(Q);
      if (ot) {
        const xt = W, pn = ee;
        W = ot, ee = Te, Te = !Lc(Q) || !(P_(Q) & 32), Y(fe, It, jt), Te = ee, ee = pn, W = xt;
        return;
      }
      switch (It.kind) {
        case 215:
          if (Ws(Q) || go(It) & 524288)
            break;
        case 259:
        case 173:
        case 174:
        case 175:
        case 171:
        case 169: {
          const xt = W, pn = ee;
          W = void 0, ee = Te, Te = !1, Y(fe, It, jt), Te = ee, ee = pn, W = xt;
          return;
        }
        case 164: {
          const xt = W, pn = Te;
          W = W == null ? void 0 : W.previous, Te = ee, Y(fe, It, jt), Te = pn, W = xt;
          return;
        }
      }
      Y(fe, It, jt);
    }
    function zs(fe, It) {
      return It = X(fe, It), fe === 1 ? tn(It) : It;
    }
    function tn(fe) {
      switch (fe.kind) {
        case 79:
          return bu(fe);
        case 108:
          return Uc(fe);
      }
      return fe;
    }
    function Uc(fe) {
      if (de & 2 && (W != null && W.data)) {
        const { facts: It, classConstructor: jt, classThis: Q } = W.data;
        if (It & 1 && A)
          return t.createParenthesizedExpression(t.createVoidZero());
        const ot = Te ? Q ?? jt : jt;
        if (ot)
          return mt(jr(t.cloneNode(ot), fe), fe);
      }
      return fe;
    }
    function bu(fe) {
      return Uu(fe) || fe;
    }
    function Uu(fe) {
      if (de & 1 && d.getNodeCheckFlags(fe) & 2097152) {
        const It = d.getReferencedValueDeclaration(fe);
        if (It) {
          const jt = ne[It.id];
          if (jt) {
            const Q = t.cloneNode(jt);
            return ls(Q, fe), Gl(Q, fe), Q;
          }
        }
      }
    }
  }
  function zMe(e, t) {
    return N.createAssignment(e, N.createObjectLiteralExpression([
      N.createPropertyAssignment("value", t || N.createVoidZero())
    ]));
  }
  function qMe(e, t, r) {
    return N.createCallExpression(N.createPropertyAccessExpression(r, "set"), void 0, [e, t || N.createVoidZero()]);
  }
  function JMe(e, t) {
    return N.createCallExpression(N.createPropertyAccessExpression(t, "add"), void 0, [e]);
  }
  function KMe(e) {
    return !JS(e) && e.escapedText === "#constructor";
  }
  function XMe(e) {
    return Di(e.left) && e.operatorToken.kind === 101;
  }
  var YMe = C({
    "src/compiler/transformers/classFields.ts"() {
      wa();
    }
  });
  function Zme(e) {
    const {
      hoistVariableDeclaration: t
    } = e, r = e.getEmitResolver(), i = e.getCompilerOptions(), o = $o(i), s = m_(i, "strictNullChecks");
    let l, f;
    return {
      serializeTypeNode: (ne, ye) => d(ne, I, ye),
      serializeTypeOfNode: (ne, ye) => d(ne, h, ye),
      serializeParameterTypesOfNode: (ne, ye, ie) => d(ne, b, ye, ie),
      serializeReturnTypeOfNode: (ne, ye) => d(ne, L, ye)
    };
    function d(ne, ye, ie, W) {
      const ce = l, pe = f;
      l = ne.currentLexicalScope, f = ne.currentNameScope;
      const ve = W === void 0 ? ye(ie) : ye(ie, W);
      return l = ce, f = pe, ve;
    }
    function y(ne) {
      const ye = r.getAllAccessorDeclarations(ne);
      return ye.setAccessor && Rue(ye.setAccessor) || ye.getAccessor && mp(ye.getAccessor);
    }
    function h(ne) {
      switch (ne.kind) {
        case 169:
        case 166:
          return I(ne.type);
        case 175:
        case 174:
          return I(y(ne));
        case 260:
        case 228:
        case 171:
          return N.createIdentifier("Function");
        default:
          return N.createVoidZero();
      }
    }
    function b(ne, ye) {
      const ie = li(ne) ? yh(ne) : qa(ne) && u_(ne.body) ? ne : void 0, W = [];
      if (ie) {
        const ce = A(ie, ye), pe = ce.length;
        for (let ve = 0; ve < pe; ve++) {
          const Te = ce[ve];
          ve === 0 && Ve(Te.name) && Te.name.escapedText === "this" || (Te.dotDotDotToken ? W.push(I(XW(Te.type))) : W.push(h(Te)));
        }
      }
      return N.createArrayLiteralExpression(W);
    }
    function A(ne, ye) {
      if (ye && ne.kind === 174) {
        const { setAccessor: ie } = vT(ye.members, ne);
        if (ie)
          return ie.parameters;
      }
      return ne.parameters;
    }
    function L(ne) {
      return qa(ne) && ne.type ? I(ne.type) : KA(ne) ? N.createIdentifier("Promise") : N.createVoidZero();
    }
    function I(ne) {
      if (ne === void 0)
        return N.createIdentifier("Object");
      switch (ne = lz(ne), ne.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 ne.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(ne.literal);
        case 148:
          return N.createIdentifier("Number");
        case 160:
          return de("BigInt", 7);
        case 153:
          return de("Symbol", 2);
        case 180:
          return V(ne);
        case 190:
          return k(ne.types, !0);
        case 189:
          return k(ne.types, !1);
        case 191:
          return k([ne.trueType, ne.falseType], !1);
        case 195:
          if (ne.operator === 146)
            return I(ne.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(ne.type);
        default:
          return D.failBadSyntaxKind(ne);
      }
      return N.createIdentifier("Object");
    }
    function O(ne) {
      switch (ne.kind) {
        case 10:
        case 14:
          return N.createIdentifier("String");
        case 221: {
          const ye = ne.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(ne);
      }
    }
    function k(ne, ye) {
      let ie;
      for (let W of ne) {
        if (W = lz(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 && (Q0(W) && W.literal.kind === 104 || W.kind === 155))
          continue;
        const ce = I(W);
        if (Ve(ce) && ce.escapedText === "Object")
          return ce;
        if (ie) {
          if (!B(ie, ce))
            return N.createIdentifier("Object");
        } else
          ie = ce;
      }
      return ie ?? N.createVoidZero();
    }
    function B(ne, ye) {
      return Tc(ne) ? Tc(ye) : Ve(ne) ? Ve(ye) && ne.escapedText === ye.escapedText : Mr(ne) ? Mr(ye) && B(ne.expression, ye.expression) && B(ne.name, ye.name) : Cx(ne) ? Cx(ye) && h_(ne.expression) && ne.expression.text === "0" && h_(ye.expression) && ye.expression.text === "0" : Go(ne) ? Go(ye) && ne.text === ye.text : yC(ne) ? yC(ye) && B(ne.expression, ye.expression) : Fd(ne) ? Fd(ye) && B(ne.expression, ye.expression) : bC(ne) ? bC(ye) && B(ne.condition, ye.condition) && B(ne.whenTrue, ye.whenTrue) && B(ne.whenFalse, ye.whenFalse) : br(ne) ? br(ye) && ne.operatorToken.kind === ye.operatorToken.kind && B(ne.left, ye.left) && B(ne.right, ye.right) : !1;
    }
    function V(ne) {
      const ye = r.getTypeReferenceSerializationKind(ne.typeName, f ?? l);
      switch (ye) {
        case 0:
          if (rr(ne, (ce) => ce.parent && mC(ce.parent) && (ce.parent.trueType === ce || ce.parent.falseType === ce)))
            return N.createIdentifier("Object");
          const ie = te(ne.typeName), W = N.createTempVariable(t);
          return N.createConditionalExpression(N.createTypeCheck(N.createAssignment(W, ie), "function"), void 0, W, void 0, N.createIdentifier("Object"));
        case 1:
          return X(ne.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(ne, ye) {
      return N.createLogicalAnd(N.createStrictInequality(N.createTypeOfExpression(ne), N.createStringLiteral("undefined")), ye);
    }
    function te(ne) {
      if (ne.kind === 79) {
        const W = X(ne);
        return H(W, W);
      }
      if (ne.left.kind === 79)
        return H(X(ne.left), X(ne));
      const ye = te(ne.left), ie = N.createTempVariable(t);
      return N.createLogicalAnd(N.createLogicalAnd(ye.left, N.createStrictInequality(N.createAssignment(ie, ye.right), N.createVoidZero())), N.createPropertyAccessExpression(ie, ne.right));
    }
    function X(ne) {
      switch (ne.kind) {
        case 79:
          const ye = Bo(mt(Wm.cloneNode(ne), ne), ne.parent);
          return ye.original = void 0, Bo(ye, ga(l)), ye;
        case 163:
          return Y(ne);
      }
    }
    function Y(ne) {
      return N.createPropertyAccessExpression(X(ne.left), ne.right);
    }
    function P(ne) {
      return N.createConditionalExpression(N.createTypeCheck(N.createIdentifier(ne), "function"), void 0, N.createIdentifier(ne), void 0, N.createIdentifier("Object"));
    }
    function de(ne, ye) {
      return o < ye ? P(ne) : N.createIdentifier(ne);
    }
  }
  var $Me = C({
    "src/compiler/transformers/typeSerializer.ts"() {
      wa();
    }
  });
  function ehe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      hoistVariableDeclaration: i
    } = e, o = e.getEmitResolver(), s = e.getCompilerOptions(), l = $o(s), f = e.onSubstituteNode;
    e.onSubstituteNode = st;
    let d;
    return J_(e, y);
    function y(tt) {
      const at = Gn(tt, b, e);
      return yy(at, e.readEmitHelpers()), at;
    }
    function h(tt) {
      return Nu(tt) ? void 0 : tt;
    }
    function b(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 ne(tt);
        case 166:
          return ye(tt);
        default:
          return Gn(tt, b, e);
      }
    }
    function A(tt) {
      if (!(b1(!0, tt) || OI(!0, tt)))
        return Gn(tt, b, e);
      const at = b1(!0, tt) ? V(tt, tt.name) : B(tt, tt.name);
      return at.length > 1 && (at.push(t.createEndOfDeclarationMarker(tt)), sr(at[0], go(at[0]) | 8388608)), Sm(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 (!Px(at))
          continue;
        const an = U5(at, tt, !0);
        if (kt(an == null ? void 0 : an.decorators, L) || kt(an == null ? void 0 : an.parameters, I))
          return !0;
      }
      return !1;
    }
    function k(tt, at) {
      let an = [];
      return ce(an, tt, !1), ce(an, tt, !0), O(tt) && (at = mt(t.createNodeArray([
        ...at,
        t.createClassStaticBlockDeclaration(t.createBlock(an, !0))
      ]), at), an = void 0), { decorationStatements: an, members: at };
    }
    function B(tt, at) {
      const an = Xn(tt.modifiers, h, lo), Xt = Xn(tt.heritageClauses, b, Bd);
      let Pn = Xn(tt.members, b, Ml), Wn = [];
      ({ members: Pn, decorationStatements: Wn } = k(tt, Pn));
      const In = t.updateClassDeclaration(tt, an, at, void 0, Xt, Pn);
      return bi([In], Wn);
    }
    function V(tt, at) {
      const an = Xp(tt), Xt = Xe(tt), Pn = l <= 2 ? t.getInternalName(tt, !1, !0) : t.getLocalName(tt, !1, !0), Wn = Xn(tt.heritageClauses, b, Bd);
      let In = Xn(tt.members, b, Ml), Yt = [];
      ({ members: In, decorationStatements: Yt } = k(tt, In));
      const _r = t.createClassExpression(void 0, at && Tc(at) ? void 0 : at, void 0, Wn, In);
      jr(_r, tt), mt(_r, an);
      const Ai = t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(Pn, void 0, void 0, Xt ? t.createAssignment(Xt, _r) : _r)
      ], 1));
      jr(Ai, tt), mt(Ai, an), Gl(Ai, tt);
      const Ki = [Ai];
      return bi(Ki, Yt), $e(Ki, tt), Ki;
    }
    function H(tt) {
      return t.updateClassExpression(tt, Xn(tt.modifiers, h, lo), tt.name, void 0, Xn(tt.heritageClauses, b, Bd), Xn(tt.members, b, Ml));
    }
    function te(tt) {
      return t.updateConstructorDeclaration(tt, Xn(tt.modifiers, h, lo), Xn(tt.parameters, b, Oa), ct(tt.body, b, oo));
    }
    function X(tt, at) {
      return tt !== at && (Gl(tt, at), ls(tt, Xp(at))), tt;
    }
    function Y(tt) {
      return X(t.updateMethodDeclaration(tt, Xn(tt.modifiers, h, lo), tt.asteriskToken, D.checkDefined(ct(tt.name, b, gc)), void 0, void 0, Xn(tt.parameters, b, Oa), void 0, ct(tt.body, b, oo)), tt);
    }
    function P(tt) {
      return X(t.updateGetAccessorDeclaration(tt, Xn(tt.modifiers, h, lo), D.checkDefined(ct(tt.name, b, gc)), Xn(tt.parameters, b, Oa), void 0, ct(tt.body, b, oo)), tt);
    }
    function de(tt) {
      return X(t.updateSetAccessorDeclaration(tt, Xn(tt.modifiers, h, lo), D.checkDefined(ct(tt.name, b, gc)), Xn(tt.parameters, b, Oa), ct(tt.body, b, oo)), tt);
    }
    function ne(tt) {
      if (!(tt.flags & 16777216 || Kr(tt, 2)))
        return X(t.updatePropertyDeclaration(tt, Xn(tt.modifiers, h, lo), D.checkDefined(ct(tt.name, b, gc)), void 0, void 0, ct(tt.initializer, b, yt)), tt);
    }
    function ye(tt) {
      const at = t.updateParameterDeclaration(tt, __e(t, tt.modifiers), tt.dotDotDotToken, D.checkDefined(ct(tt.name, b, _h)), void 0, void 0, ct(tt.initializer, b, yt));
      return at !== tt && (Gl(at, tt), mt(at, Xp(tt)), ls(at, Xp(tt)), sr(at.name, 64)), at;
    }
    function ie(tt) {
      return vk(tt.expression, "___metadata");
    }
    function W(tt) {
      if (!tt)
        return;
      const { false: at, true: an } = mse(tt.decorators, ie), Xt = [];
      return bi(Xt, en(at, Be)), bi(Xt, wo(tt.parameters, We)), bi(Xt, en(an, Be)), Xt;
    }
    function ce(tt, at, an) {
      bi(tt, en(Te(at, an), (Xt) => t.createExpressionStatement(Xt)));
    }
    function pe(tt, at, an) {
      return aN(!0, tt, an) && at === za(tt);
    }
    function ve(tt, at) {
      return yn(tt.members, (an) => pe(an, at, tt));
    }
    function Te(tt, at) {
      const an = ve(tt, at);
      let Xt;
      for (const Pn of an)
        Xt = Bn(Xt, ee(tt, Pn));
      return Xt;
    }
    function ee(tt, at) {
      const an = U5(at, tt, !0), Xt = W(an);
      if (!Xt)
        return;
      const Pn = Fe(tt, at), Wn = Oe(at, !Kr(at, 2)), In = l > 0 ? Za(at) && !Pm(at) ? t.createVoidZero() : t.createNull() : void 0, Yt = r().createDecorateHelper(Xt, Pn, Wn, In);
      return sr(Yt, 3072), ls(Yt, Xp(at)), Yt;
    }
    function $e(tt, at) {
      const an = Ue(at);
      an && tt.push(jr(t.createExpressionStatement(an), at));
    }
    function Ue(tt) {
      const at = eX(tt), an = W(at);
      if (!an)
        return;
      const Xt = d && d[Ic(tt)], Pn = l <= 2 ? t.getInternalName(tt, !1, !0) : t.getLocalName(tt, !1, !0), Wn = r().createDecorateHelper(an, Pn), In = t.createAssignment(Pn, Xt ? t.createAssignment(Xt, Wn) : Wn);
      return sr(In, 3072), ls(In, Xp(tt)), In;
    }
    function Be(tt) {
      return D.checkDefined(ct(tt.expression, b, yt));
    }
    function We(tt, at) {
      let an;
      if (tt) {
        an = [];
        for (const Xt of tt) {
          const Pn = r().createParamHelper(Be(Xt), at);
          mt(Pn, Xt.expression), sr(Pn, 3072), an.push(Pn);
        }
      }
      return an;
    }
    function Oe(tt, at) {
      const an = tt.name;
      return Di(an) ? t.createIdentifier("") : Ts(an) ? at && !nm(an.expression) ? t.getGeneratedNameForNode(an) : an.expression : Ve(an) ? t.createStringLiteral(Pr(an)) : t.cloneNode(an);
    }
    function Me() {
      d || (e.enableSubstitution(79), d = []);
    }
    function Xe(tt) {
      if (o.getNodeCheckFlags(tt) & 1048576) {
        Me();
        const at = t.createUniqueName(tt.name && !Tc(tt.name) ? Pr(tt.name) : "default");
        return d[Ic(tt)] = at, i(at), at;
      }
    }
    function He(tt) {
      return t.createPropertyAccessExpression(t.getDeclarationName(tt), "prototype");
    }
    function Fe(tt, at) {
      return za(at) ? t.getDeclarationName(tt) : He(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 an = d[at.id];
          if (an) {
            const Xt = t.cloneNode(an);
            return ls(Xt, tt), Gl(Xt, tt), Xt;
          }
        }
      }
    }
  }
  var QMe = C({
    "src/compiler/transformers/legacyDecorators.ts"() {
      wa();
    }
  });
  function the(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      startLexicalEnvironment: i,
      endLexicalEnvironment: o,
      hoistVariableDeclaration: s
    } = e;
    let l, f, d, y, h, b;
    return J_(e, A);
    function A(ue) {
      l = void 0, b = !1;
      const pt = Gn(ue, P, e);
      return yy(pt, e.readEmitHelpers()), b && (mx(pt, 32), b = !1), pt;
    }
    function L() {
      switch (f = void 0, d = void 0, y = void 0, l == null ? void 0 : l.kind) {
        case "class":
          f = l.classInfo;
          break;
        case "class-element":
          f = l.next.classInfo, d = l.classThis, y = l.classSuper;
          break;
        case "name":
          const ue = l.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) {
      l = { kind: "class", next: l, classInfo: ue, savedPendingExpressions: h }, h = void 0, L();
    }
    function O() {
      D.assert((l == null ? void 0 : l.kind) === "class", "Incorrect value for top.kind.", () => `Expected top.kind to be 'class' but got '${l == null ? void 0 : l.kind}' instead.`), h = l.savedPendingExpressions, l = l.next, L();
    }
    function k(ue) {
      var pt, Wt;
      D.assert((l == null ? void 0 : l.kind) === "class", "Incorrect value for top.kind.", () => `Expected top.kind to be 'class' but got '${l == null ? void 0 : l.kind}' instead.`), l = { kind: "class-element", next: l }, (Lc(ue) || Za(ue) && pl(ue)) && (l.classThis = (pt = l.next.classInfo) == null ? void 0 : pt.classThis, l.classSuper = (Wt = l.next.classInfo) == null ? void 0 : Wt.classSuper), L();
    }
    function B() {
      var ue;
      D.assert((l == null ? void 0 : l.kind) === "class-element", "Incorrect value for top.kind.", () => `Expected top.kind to be 'class-element' but got '${l == null ? void 0 : l.kind}' instead.`), D.assert(((ue = l.next) == null ? void 0 : ue.kind) === "class", "Incorrect value for top.next.kind.", () => {
        var pt;
        return `Expected top.next.kind to be 'class' but got '${(pt = l.next) == null ? void 0 : pt.kind}' instead.`;
      }), l = l.next, L();
    }
    function V() {
      D.assert((l == null ? void 0 : l.kind) === "class-element", "Incorrect value for top.kind.", () => `Expected top.kind to be 'class-element' but got '${l == null ? void 0 : l.kind}' instead.`), l = { kind: "name", next: l }, L();
    }
    function H() {
      D.assert((l == null ? void 0 : l.kind) === "name", "Incorrect value for top.kind.", () => `Expected top.kind to be 'name' but got '${l == null ? void 0 : l.kind}' instead.`), l = l.next, L();
    }
    function te() {
      (l == null ? void 0 : l.kind) === "other" ? (D.assert(!h), l.depth++) : (l = { kind: "other", next: l, depth: 0, savedPendingExpressions: h }, h = void 0, L());
    }
    function X() {
      D.assert((l == null ? void 0 : l.kind) === "other", "Incorrect value for top.kind.", () => `Expected top.kind to be 'other' but got '${l == null ? void 0 : l.kind}' instead.`), l.depth > 0 ? (D.assert(!h), l.depth--) : (h = l.savedPendingExpressions, l = l.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 We(ue, void 0);
        case 173:
        case 169:
        case 172:
          return D.fail("Not supported outside of a class. Use 'classElementVisitor' instead.");
        case 166:
          return Wn(ue);
        case 223:
          return Ai(ue, !1);
        case 299:
          return Ht(ue);
        case 257:
          return dn(ue);
        case 205:
          return ir(ue);
        case 274:
          return gt(ue);
        case 108:
          return tt(ue);
        case 245:
          return Yt(ue);
        case 241:
          return _r(ue);
        case 357:
          return Xi(ue, !1);
        case 214:
          return Nt(ue, !1, void 0);
        case 356:
          return xe(ue, !1, void 0);
        case 210:
          return at(ue);
        case 212:
          return an(ue);
        case 221:
        case 222:
          return Ki(ue, !1);
        case 208:
          return Xt(ue);
        case 209:
          return Pn(ue);
        case 164:
          return vn(ue);
        case 171:
        case 175:
        case 174:
        case 215:
        case 259: {
          te();
          const pt = Gn(ue, de, e);
          return X(), pt;
        }
        default:
          return Gn(ue, de, e);
      }
    }
    function de(ue) {
      switch (ue.kind) {
        case 167:
          return;
        default:
          return P(ue);
      }
    }
    function ne(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 ie(ue, pt) {
      switch (ue.kind) {
        case 356:
          return xe(ue, !1, pt);
        case 214:
          return Nt(ue, !1, pt);
        case 228:
          return We(ue, pt);
        default:
          return P(ue);
      }
    }
    function W(ue) {
      switch (ue.kind) {
        case 221:
        case 222:
          return Ki(ue, !0);
        case 223:
          return Ai(ue, !0);
        case 357:
          return Xi(ue, !0);
        case 214:
          return Nt(ue, !0, void 0);
        default:
          return P(ue);
      }
    }
    function ce(ue) {
      let pt = ue.name && Ve(ue.name) && !Tc(ue.name) ? Pr(ue.name) : ue.name && Di(ue.name) && !Tc(ue.name) ? Pr(ue.name).slice(1) : ue.name && Go(ue.name) && N_(ue.name.text, 99) ? ue.name.text : li(ue) ? "class" : "member";
      return xv(ue) && (pt = `get_${pt}`), _y(ue) && (pt = `set_${pt}`), ue.name && Di(ue.name) && (pt = `private_${pt}`), za(ue) && (pt = `static_${pt}`), "_" + pt;
    }
    function pe(ue, pt) {
      return t.createUniqueName(`${ce(ue)}_${pt}`, 24);
    }
    function ve(ue, pt) {
      return t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(ue, void 0, void 0, pt)
      ], 1));
    }
    function Te(ue) {
      let pt, Wt, it = !1, K = !1, Pe = !1;
      for (const Z of ue.members)
        if (ale(Z) && aN(!1, Z, ue) && (pl(Z) ? Wt ?? (Wt = t.createUniqueName("_staticExtraInitializers", 16)) : pt ?? (pt = t.createUniqueName("_instanceExtraInitializers", 16))), Lc(Z) ? it = !0 : Za(Z) && (pl(Z) ? it || (it = !!Z.initializer || Jf(Z)) : K || (K = !GW(Z))), (Ju(Z) || ef(Z)) && pl(Z) && (Pe = !0), Wt && pt && it && K && Pe)
          break;
      return {
        class: ue,
        instanceExtraInitializersName: pt,
        staticExtraInitializersName: Wt,
        hasStaticInitializers: it,
        hasNonAmbientInstanceFields: K,
        hasStaticPrivateClassElements: Pe
      };
    }
    function ee(ue) {
      for (const pt of ue.members)
        if ((Lc(pt) || Za(pt) && pl(pt)) && pt.transformFlags & 134217728)
          return !0;
      return !1;
    }
    function $e(ue, pt) {
      var Wt, it, K, Pe, Z;
      i();
      const Re = (Wt = ue.name) != null ? Wt : t.getGeneratedNameForNode(ue), q = Te(ue), Rt = [];
      let ht, dt, fn, Qn, ai = !1;
      const Si = _e(eX(ue));
      if (Si && (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(Si)), ve(q.classDescriptorName), ve(q.classExtraInitializersName, t.createArrayLiteralExpression()), ve(q.classThis)), q.hasStaticPrivateClassElements && (ai = !0, b = !0)), Si && ee(ue)) {
        const Ui = LN(ue.heritageClauses, 94), Jr = Ui && zl(Ui.types), is = Jr && ct(Jr.expression, P, yt);
        if (is) {
          q.classSuper = t.createUniqueName("_classSuper", 16);
          const di = hu(is), ca = Pu(di) && !di.name || Ps(di) && !di.name || Ws(di) ? t.createComma(t.createNumericLiteral(0), is) : is;
          Rt.push(ve(q.classSuper, ca));
          const wn = t.updateExpressionWithTypeArguments(Jr, q.classSuper, void 0), ua = t.updateHeritageClause(Ui, [wn]);
          Qn = t.createNodeArray([ua]);
        }
      } else
        Qn = Xn(ue.heritageClauses, P, Bd);
      const xi = (it = q.classThis) != null ? it : t.createThis();
      if (!((K = Ec(ue, li)) != null && K.name) && (Si || !Go(pt) || !QW(pt))) {
        const Ui = r().createSetFunctionNameHelper(t.createThis(), pt);
        ht = Bn(ht, t.createExpressionStatement(Ui));
      }
      I(q);
      let _o = Xn(ue.members, ye, Ml);
      if (h) {
        let Ui;
        for (let Jr of h) {
          Jr = ct(Jr, function di(ca) {
            if (!(ca.transformFlags & 16384))
              return ca;
            switch (ca.kind) {
              case 108:
                return Ui || (Ui = t.createUniqueName("_outerThis", 16), Rt.unshift(ve(Ui, t.createThis()))), Ui;
              default:
                return Gn(ca, di, e);
            }
          }, yt);
          const is = t.createExpressionStatement(Jr);
          ht = Bn(ht, is);
        }
        h = void 0;
      }
      if (O(), q.instanceExtraInitializersName && !yh(ue)) {
        const Ui = Oe(ue, q);
        if (Ui) {
          const Jr = Jp(ue), is = !!(Jr && hu(Jr.expression).kind !== 104), di = [];
          if (is) {
            const wn = t.createSpreadElement(t.createIdentifier("arguments")), ua = t.createCallExpression(t.createSuper(), void 0, [wn]);
            di.push(t.createExpressionStatement(ua));
          }
          bi(di, Ui);
          const ca = t.createBlock(di, !0);
          fn = t.createConstructorDeclaration(void 0, [], ca);
        }
      }
      if (q.staticExtraInitializersName && Rt.push(ve(q.staticExtraInitializersName, t.createArrayLiteralExpression())), q.instanceExtraInitializersName && Rt.push(ve(q.instanceExtraInitializersName, t.createArrayLiteralExpression())), q.memberInfos && tf(q.memberInfos, (Ui, Jr) => {
        za(Jr) && (Rt.push(ve(Ui.memberDecoratorsName)), Ui.memberInitializersName && Rt.push(ve(Ui.memberInitializersName, t.createArrayLiteralExpression())), Ui.memberDescriptorName && Rt.push(ve(Ui.memberDescriptorName)));
      }), q.memberInfos && tf(q.memberInfos, (Ui, Jr) => {
        za(Jr) || (Rt.push(ve(Ui.memberDecoratorsName)), Ui.memberInitializersName && Rt.push(ve(Ui.memberInitializersName, t.createArrayLiteralExpression())), Ui.memberDescriptorName && Rt.push(ve(Ui.memberDescriptorName)));
      }), ht = bi(ht, q.staticNonFieldDecorationStatements), ht = bi(ht, q.nonStaticNonFieldDecorationStatements), ht = bi(ht, q.staticFieldDecorationStatements), ht = bi(ht, q.nonStaticFieldDecorationStatements), q.classDescriptorName && q.classDecoratorsName && q.classExtraInitializersName && q.classThis) {
        ht ?? (ht = []);
        const Ui = t.createPropertyAssignment("value", t.createThis()), Jr = t.createObjectLiteralExpression([Ui]), is = t.createAssignment(q.classDescriptorName, Jr), di = t.createPropertyAccessExpression(t.createThis(), "name"), ca = r().createESDecorateHelper(t.createNull(), is, q.classDecoratorsName, { kind: "class", name: di }, t.createNull(), q.classExtraInitializersName), wn = t.createExpressionStatement(ca);
        ls(wn, wv(ue)), ht.push(wn);
        const ua = t.createPropertyAccessExpression(q.classDescriptorName, "value"), $c = t.createAssignment(q.classThis, ua), nc = t.createAssignment(Re, $c);
        ht.push(t.createExpressionStatement(nc));
      }
      if (q.staticExtraInitializersName) {
        const Ui = r().createRunInitializersHelper(xi, q.staticExtraInitializersName), Jr = t.createExpressionStatement(Ui);
        ls(Jr, (Pe = ue.name) != null ? Pe : wv(ue)), ht = Bn(ht, Jr);
      }
      if (q.classExtraInitializersName) {
        const Ui = r().createRunInitializersHelper(xi, q.classExtraInitializersName), Jr = t.createExpressionStatement(Ui);
        ls(Jr, (Z = ue.name) != null ? Z : wv(ue)), dt = Bn(dt, Jr);
      }
      ht && dt && !q.hasStaticInitializers && (bi(ht, dt), dt = void 0);
      let bo = _o;
      if (ht) {
        const Ui = t.createBlock(ht, !0), Jr = t.createClassStaticBlockDeclaration(Ui);
        ai && fO(Jr, 32), bo = [Jr, ...bo];
      }
      if (fn && (bo = [...bo, fn]), dt) {
        const Ui = t.createBlock(dt, !0), Jr = t.createClassStaticBlockDeclaration(Ui);
        bo = [...bo, Jr];
      }
      bo !== _o && (_o = mt(t.createNodeArray(bo), _o));
      const no = o();
      let sa;
      if (Si) {
        sa = t.createClassExpression(void 0, void 0, void 0, Qn, _o);
        const Ui = t.createVariableDeclaration(Re, void 0, void 0, sa), Jr = t.createVariableDeclarationList([Ui]), is = q.classThis ? t.createAssignment(Re, q.classThis) : Re;
        Rt.push(t.createVariableStatement(void 0, Jr), t.createReturnStatement(is));
      } else
        sa = t.createClassExpression(void 0, ue.name, void 0, Qn, _o), Rt.push(t.createReturnStatement(sa));
      if (ai) {
        mx(sa, 32);
        for (const Ui of sa.members)
          (Ju(Ui) || ef(Ui)) && pl(Ui) && mx(Ui, 32);
      }
      return jr(sa, ue), $u(sa).classThis = q.classThis, t.createImmediatelyInvokedArrowFunction(t.mergeLexicalEnvironment(Rt, no));
    }
    function Ue(ue) {
      return b1(!1, ue) || OI(!1, ue);
    }
    function Be(ue) {
      var pt;
      if (Ue(ue))
        if (Kr(ue, 1) && Kr(ue, 1024)) {
          const Wt = (pt = Ec(ue, li)) != null ? pt : ue, it = Wt.name ? t.createStringLiteralFromNode(Wt.name) : t.createStringLiteral("default"), K = $e(ue, it), Pe = t.createExportDefault(K);
          return jr(Pe, ue), Gl(Pe, Gm(ue)), ls(Pe, wv(ue)), Pe;
        } else {
          D.assertIsDefined(ue.name, "A class declaration that is not a default export must have a name.");
          const Wt = $e(ue, t.createStringLiteralFromNode(ue.name)), it = Xn(ue.modifiers, ne, lo), K = t.createVariableDeclaration(ue.name, void 0, void 0, Wt), Pe = t.createVariableDeclarationList([K], 1), Z = t.createVariableStatement(it, Pe);
          return jr(Z, ue), Gl(Z, Gm(ue)), Z;
        }
      else {
        const Wt = Xn(ue.modifiers, ne, lo), it = Xn(ue.heritageClauses, P, Bd);
        I(void 0);
        const K = Xn(ue.members, ye, Ml);
        return O(), t.updateClassDeclaration(ue, Wt, ue.name, void 0, it, K);
      }
    }
    function We(ue, pt) {
      if (Ue(ue)) {
        const Wt = ue.name ? t.createStringLiteralFromNode(ue.name) : pt ?? t.createStringLiteral(""), it = $e(ue, Wt);
        return jr(it, ue), it;
      } else {
        const Wt = Xn(ue.modifiers, ne, lo), it = Xn(ue.heritageClauses, P, Bd);
        I(void 0);
        const K = Xn(ue.members, ye, Ml);
        return O(), t.updateClassExpression(ue, Wt, ue.name, void 0, it, K);
      }
    }
    function Oe(ue, pt) {
      if (pt.instanceExtraInitializersName && !pt.hasNonAmbientInstanceFields) {
        const Wt = [];
        return Wt.push(t.createExpressionStatement(r().createRunInitializersHelper(t.createThis(), pt.instanceExtraInitializersName))), Wt;
      }
    }
    function Me(ue) {
      k(ue);
      const pt = Xn(ue.modifiers, ne, lo), Wt = Xn(ue.parameters, P, Oa);
      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 = B5(ue.body.statements, Z), q = Re >= 0 ? Re + 1 : void 0;
          bi(Pe, Xn(ue.body.statements, P, Ca, Z, q ? q - Z : void 0)), bi(Pe, K), bi(Pe, Xn(ue.body.statements, P, Ca, q)), it = t.createBlock(Pe, !0), jr(it, ue.body), mt(it, ue.body);
        }
      }
      return it ?? (it = ct(ue.body, P, oo)), B(), t.updateConstructorDeclaration(ue, pt, Wt, it);
    }
    function Xe(ue, pt) {
      return ue !== pt && (Gl(ue, pt), ls(ue, wv(pt))), ue;
    }
    function He(ue, pt, Wt, it) {
      var K, Pe, Z, Re, q, Rt, ht, dt;
      let fn, Qn, ai, Si, xi;
      if (!Wt) {
        const bo = Xn(ue.modifiers, ne, lo);
        return V(), pt ? { referencedName: fn, name: Qn } = Nr(ue.name) : Qn = At(ue.name), H(), { modifiers: bo, referencedName: fn, name: Qn, initializersName: ai, descriptorName: xi, thisArg: Si };
      }
      const Gi = _e(U5(ue, Wt.class, !1)), _o = Xn(ue.modifiers, ne, lo);
      if (Gi) {
        const bo = pe(ue, "decorators"), no = t.createArrayLiteralExpression(Gi), sa = t.createAssignment(bo, no), Ui = { memberDecoratorsName: bo };
        (K = Wt.memberInfos) != null || (Wt.memberInfos = /* @__PURE__ */ new Map()), Wt.memberInfos.set(ue, Ui), h ?? (h = []), h.push(sa);
        const Jr = xA(ue) || ef(ue) ? za(ue) ? (Pe = Wt.staticNonFieldDecorationStatements) != null ? Pe : Wt.staticNonFieldDecorationStatements = [] : (Z = Wt.nonStaticNonFieldDecorationStatements) != null ? Z : Wt.nonStaticNonFieldDecorationStatements = [] : Za(ue) && !ef(ue) ? za(ue) ? (Re = Wt.staticFieldDecorationStatements) != null ? Re : Wt.staticFieldDecorationStatements = [] : (q = Wt.nonStaticFieldDecorationStatements) != null ? q : Wt.nonStaticFieldDecorationStatements = [] : D.fail(), is = H_(ue) ? "getter" : Yf(ue) ? "setter" : nl(ue) ? "method" : ef(ue) ? "accessor" : Za(ue) ? "field" : D.fail();
        let di;
        if (Ve(ue.name) || Di(ue.name))
          di = { computed: !1, name: ue.name };
        else if (F_(ue.name))
          di = { computed: !0, name: t.createStringLiteralFromNode(ue.name) };
        else {
          const ua = ue.name.expression;
          F_(ua) && !Ve(ua) ? di = { computed: !0, name: t.createStringLiteralFromNode(ua) } : (V(), { referencedName: fn, name: Qn } = Nr(ue.name), di = { computed: !0, name: fn }, H());
        }
        const ca = {
          kind: is,
          name: di,
          static: za(ue),
          private: Di(ue.name),
          access: {
            get: Za(ue) || H_(ue) || nl(ue),
            set: Za(ue) || Yf(ue)
          }
        }, wn = za(ue) ? (Rt = Wt.staticExtraInitializersName) != null ? Rt : Wt.staticExtraInitializersName = t.createUniqueName("_staticExtraInitializers", 16) : (ht = Wt.instanceExtraInitializersName) != null ? ht : Wt.instanceExtraInitializersName = t.createUniqueName("_instanceExtraInitializers", 16);
        if (xA(ue)) {
          let ua;
          Ju(ue) && it && (ua = it(ue, Xn(_o, (Fc) => ii(Fc, bk), lo)), Ui.memberDescriptorName = xi = pe(ue, "descriptor"), ua = t.createAssignment(xi, ua));
          const $c = r().createESDecorateHelper(t.createThis(), ua ?? t.createNull(), bo, ca, t.createNull(), wn), nc = t.createExpressionStatement($c);
          ls(nc, wv(ue)), Jr.push(nc);
        } else if (Za(ue)) {
          ai = (dt = Ui.memberInitializersName) != null ? dt : Ui.memberInitializersName = pe(ue, "initializers"), za(ue) && (Si = Wt.classThis);
          let ua;
          Ju(ue) && Pm(ue) && it && (ua = it(ue, void 0), Ui.memberDescriptorName = xi = pe(ue, "descriptor"), ua = t.createAssignment(xi, ua));
          const $c = r().createESDecorateHelper(ef(ue) ? t.createThis() : t.createNull(), ua ?? t.createNull(), bo, ca, ai, wn), nc = t.createExpressionStatement($c);
          ls(nc, wv(ue)), Jr.push(nc);
        }
      }
      return Qn === void 0 && (V(), pt ? { referencedName: fn, name: Qn } = Nr(ue.name) : Qn = At(ue.name), H()), !kt(_o) && (nl(ue) || Za(ue)) && sr(Qn, 1024), { modifiers: _o, referencedName: fn, name: Qn, initializersName: ai, descriptorName: xi, thisArg: Si };
    }
    function Fe(ue) {
      k(ue);
      const { modifiers: pt, name: Wt, descriptorName: it } = He(ue, !1, f, j);
      if (it)
        return B(), Xe(Ut(pt, Wt, it), ue);
      {
        const K = Xn(ue.parameters, P, Oa), Pe = ct(ue.body, P, oo);
        return B(), Xe(t.updateMethodDeclaration(ue, pt, ue.asteriskToken, Wt, void 0, void 0, K, void 0, Pe), ue);
      }
    }
    function st(ue) {
      k(ue);
      const { modifiers: pt, name: Wt, descriptorName: it } = He(ue, !1, f, je);
      if (it)
        return B(), Xe(ln(pt, Wt, it), ue);
      {
        const K = Xn(ue.parameters, P, Oa), Pe = ct(ue.body, P, oo);
        return B(), Xe(t.updateGetAccessorDeclaration(ue, pt, Wt, K, void 0, Pe), ue);
      }
    }
    function Ct(ue) {
      k(ue);
      const { modifiers: pt, name: Wt, descriptorName: it } = He(ue, !1, f, Qe);
      if (it)
        return B(), Xe(Sn(pt, Wt, it), ue);
      {
        const K = Xn(ue.parameters, P, Oa), Pe = ct(ue.body, P, oo);
        return B(), Xe(t.updateSetAccessorDeclaration(ue, pt, Wt, K, Pe), ue);
      }
    }
    function Et(ue) {
      k(ue), f && (f.hasStaticInitializers = !0);
      const pt = Gn(ue, P, e);
      return B(), pt;
    }
    function Vt(ue) {
      k(ue), D.assert(!GW(ue), "Not yet implemented.");
      const pt = qf(ue, In), { modifiers: Wt, name: it, referencedName: K, initializersName: Pe, descriptorName: Z, thisArg: Re } = He(ue, pt, f, Pm(ue) ? Ke : void 0);
      i();
      let q = K ? ct(ue.initializer, (ht) => ie(ht, K), yt) : ct(ue.initializer, P, yt);
      Pe && (q = r().createRunInitializersHelper(Re ?? t.createThis(), Pe, q ?? t.createVoidZero())), !za(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))), za(ue) && f && q && (f.hasStaticInitializers = !0);
      const Rt = o();
      if (kt(Rt) && (q = t.createImmediatelyInvokedArrowFunction([
        ...Rt,
        t.createReturnStatement(q)
      ])), B(), Pm(ue) && Z) {
        const ht = Gm(ue), dt = $0(ue), fn = ue.name;
        let Qn = fn, ai = fn;
        if (Ts(fn) && !nm(fn.expression)) {
          const bo = q7(fn);
          if (bo)
            Qn = t.updateComputedPropertyName(fn, ct(fn.expression, P, yt)), ai = t.updateComputedPropertyName(fn, bo.left);
          else {
            const no = t.createTempVariable(s);
            ls(no, fn.expression);
            const sa = ct(fn.expression, P, yt), Ui = t.createAssignment(no, sa);
            ls(Ui, fn.expression), Qn = t.updateComputedPropertyName(fn, Ui), ai = t.updateComputedPropertyName(fn, no);
          }
        }
        const Si = Xn(Wt, (bo) => bo.kind !== 127 ? bo : void 0, lo), xi = NJ(t, ue, Si, q);
        jr(xi, ue), sr(xi, 3072), ls(xi, dt), ls(xi.name, ue.name);
        const Gi = ln(Si, Qn, Z);
        jr(Gi, ue), Gl(Gi, ht), ls(Gi, dt);
        const _o = Sn(Si, ai, Z);
        return jr(_o, ue), sr(_o, 3072), ls(_o, dt), [xi, Gi, _o];
      }
      return Xe(t.updatePropertyDeclaration(ue, Wt, it, void 0, void 0, q), ue);
    }
    function tt(ue) {
      return d ?? ue;
    }
    function at(ue) {
      if (sd(ue.expression) && d) {
        const pt = ct(ue.expression, P, yt), Wt = Xn(ue.arguments, P, yt), it = t.createFunctionCallCall(pt, d, Wt);
        return jr(it, ue), mt(it, ue), it;
      }
      return Gn(ue, P, e);
    }
    function an(ue) {
      if (sd(ue.tag) && d) {
        const pt = ct(ue.tag, P, yt), Wt = t.createFunctionBindCall(pt, d, []);
        jr(Wt, ue), mt(Wt, ue);
        const it = ct(ue.template, P, AA);
        return t.updateTaggedTemplateExpression(ue, Wt, void 0, it);
      }
      return Gn(ue, P, e);
    }
    function Xt(ue) {
      if (sd(ue) && Ve(ue.name) && d && y) {
        const pt = t.createStringLiteralFromNode(ue.name), Wt = t.createReflectGetCall(y, pt, d);
        return jr(Wt, ue.expression), mt(Wt, ue.expression), Wt;
      }
      return Gn(ue, P, e);
    }
    function Pn(ue) {
      if (sd(ue) && d && y) {
        const pt = ct(ue.argumentExpression, P, yt), Wt = t.createReflectGetCall(y, pt, d);
        return jr(Wt, ue.expression), mt(Wt, ue.expression), Wt;
      }
      return Gn(ue, P, e);
    }
    function Wn(ue) {
      let pt;
      if (qf(ue, In)) {
        const Wt = Er(ue.name, ue.initializer), it = ct(ue.name, P, _h), K = ct(ue.initializer, (Pe) => ie(Pe, Wt), yt);
        pt = t.updateParameterDeclaration(ue, void 0, void 0, it, void 0, void 0, K);
      } else
        pt = t.updateParameterDeclaration(ue, void 0, ue.dotDotDotToken, ct(ue.name, P, _h), void 0, void 0, ct(ue.initializer, P, yt));
      return pt !== ue && (Gl(pt, ue), mt(pt, Xp(ue)), ls(pt, Xp(ue)), sr(pt.name, 64)), pt;
    }
    function In(ue) {
      return Pu(ue) && !ue.name && Ue(ue);
    }
    function Yt(ue) {
      return t.updateForStatement(ue, ct(ue.initializer, W, zp), ct(ue.condition, P, yt), ct(ue.incrementor, W, yt), g_(ue.statement, P, e));
    }
    function _r(ue) {
      return Gn(ue, W, e);
    }
    function Ai(ue, pt) {
      if (hy(ue)) {
        const Wt = ke(ue.left), it = ct(ue.right, P, yt);
        return t.updateBinaryExpression(ue, Wt, ue.operatorToken, it);
      }
      if (Yu(ue)) {
        if (qf(ue, In)) {
          const Wt = Er(ue.left, ue.right), it = ct(ue.left, P, yt), K = ct(ue.right, (Pe) => ie(Pe, Wt), yt);
          return t.updateBinaryExpression(ue, it, ue.operatorToken, K);
        }
        if (sd(ue.left) && d && y) {
          let Wt = cc(ue.left) ? ct(ue.left.argumentExpression, P, yt) : Ve(ue.left.name) ? t.createStringLiteralFromNode(ue.left.name) : void 0;
          if (Wt) {
            let it = ct(ue.right, P, yt);
            if (y8(ue.operatorToken.kind)) {
              let Pe = Wt;
              nm(Wt) || (Pe = t.createTempVariable(s), Wt = t.createAssignment(Pe, Wt));
              const Z = t.createReflectGetCall(y, Pe, d);
              jr(Z, ue.left), mt(Z, ue.left), it = t.createBinaryExpression(Z, Xk(ue.operatorToken.kind), it), mt(it, ue);
            }
            const K = pt ? void 0 : t.createTempVariable(s);
            return K && (it = t.createAssignment(K, it), mt(K, ue)), it = t.createReflectSetCall(y, Wt, it, d), jr(it, ue), mt(it, ue), K && (it = t.createComma(it, K), mt(it, ue)), it;
          }
        }
      }
      if (ue.operatorToken.kind === 27) {
        const Wt = ct(ue.left, W, yt), it = ct(ue.right, pt ? W : P, yt);
        return t.updateBinaryExpression(ue, Wt, ue.operatorToken, it);
      }
      return Gn(ue, P, e);
    }
    function Ki(ue, pt) {
      if (ue.operator === 45 || ue.operator === 46) {
        const Wt = Gs(ue.operand);
        if (sd(Wt) && d && y) {
          let it = cc(Wt) ? ct(Wt.argumentExpression, P, yt) : Ve(Wt.name) ? t.createStringLiteralFromNode(Wt.name) : void 0;
          if (it) {
            let K = it;
            nm(it) || (K = t.createTempVariable(s), it = t.createAssignment(K, it));
            let Pe = t.createReflectGetCall(y, K, d);
            jr(Pe, ue), mt(Pe, ue);
            const Z = pt ? void 0 : t.createTempVariable(s);
            return Pe = B7(t, ue, Pe, s, Z), Pe = t.createReflectSetCall(y, it, Pe, d), jr(Pe, ue), mt(Pe, ue), Z && (Pe = t.createComma(Pe, Z), mt(Pe, ue)), Pe;
          }
        }
      }
      return Gn(ue, P, e);
    }
    function Xi(ue, pt) {
      const Wt = pt ? g8(ue.elements, W) : g8(ue.elements, P, W);
      return t.updateCommaListExpression(ue, Wt);
    }
    function Nr(ue) {
      if (F_(ue) || Di(ue)) {
        const Pe = t.createStringLiteralFromNode(ue), Z = ct(ue, P, gc);
        return { referencedName: Pe, name: Z };
      }
      if (F_(ue.expression) && !Ve(ue.expression)) {
        const Pe = t.createStringLiteralFromNode(ue.expression), Z = ct(ue, P, gc);
        return { referencedName: Pe, name: Z };
      }
      const pt = t.getGeneratedNameForNode(ue);
      s(pt);
      const Wt = r().createPropKeyHelper(ct(ue.expression, P, yt)), it = t.createAssignment(pt, Wt), K = t.updateComputedPropertyName(ue, _t(it));
      return { referencedName: pt, name: K };
    }
    function At(ue) {
      return Ts(ue) ? vn(ue) : ct(ue, P, gc);
    }
    function vn(ue) {
      let pt = ct(ue.expression, P, yt);
      return nm(pt) || (pt = _t(pt)), t.updateComputedPropertyName(ue, pt);
    }
    function Ht(ue) {
      if (qf(ue, In)) {
        const { referencedName: pt, name: Wt } = Nr(ue.name), it = ct(ue.initializer, (K) => ie(K, pt), yt);
        return t.updatePropertyAssignment(ue, Wt, it);
      }
      return Gn(ue, P, e);
    }
    function dn(ue) {
      if (qf(ue, In)) {
        const pt = Er(ue.name, ue.initializer), Wt = ct(ue.name, P, _h), it = ct(ue.initializer, (K) => ie(K, pt), yt);
        return t.updateVariableDeclaration(ue, Wt, void 0, void 0, it);
      }
      return Gn(ue, P, e);
    }
    function ir(ue) {
      if (qf(ue, In)) {
        const pt = Er(ue.name, ue.initializer), Wt = ct(ue.propertyName, P, gc), it = ct(ue.name, P, _h), K = ct(ue.initializer, (Pe) => ie(Pe, pt), yt);
        return t.updateBindingElement(ue, void 0, Wt, it, K);
      }
      return Gn(ue, P, e);
    }
    function lr(ue) {
      if (xs(ue) || Ou(ue))
        return ke(ue);
      if (sd(ue) && d && y) {
        const pt = cc(ue) ? ct(ue.argumentExpression, P, yt) : Ve(ue.name) ? t.createStringLiteralFromNode(ue.name) : void 0;
        if (pt) {
          const Wt = t.createTempVariable(void 0), it = t.createAssignmentTargetWrapper(Wt, t.createReflectSetCall(y, pt, Wt, d));
          return jr(it, ue), mt(it, ue), it;
        }
      }
      return Gn(ue, P, e);
    }
    function Ni(ue) {
      if (Yu(ue, !0)) {
        const pt = lr(ue.left);
        let Wt;
        if (qf(ue, In)) {
          const it = Er(ue.left, ue.right);
          Wt = ct(ue.right, (K) => ie(K, it), yt);
        } else
          Wt = ct(ue.right, P, yt);
        return t.updateBinaryExpression(ue, pt, ue.operatorToken, Wt);
      } else
        return lr(ue);
    }
    function pi(ue) {
      if (vd(ue.expression)) {
        const pt = lr(ue.expression);
        return t.updateSpreadElement(ue, pt);
      }
      return Gn(ue, P, e);
    }
    function Nn(ue) {
      return D.assertNode(ue, HR), xh(ue) ? pi(ue) : kl(ue) ? Gn(ue, P, e) : Ni(ue);
    }
    function nn(ue) {
      const pt = ct(ue.name, P, gc);
      if (Yu(ue.initializer, !0)) {
        const Wt = Ni(ue.initializer);
        return t.updatePropertyAssignment(ue, pt, Wt);
      }
      if (vd(ue.initializer)) {
        const Wt = lr(ue.initializer);
        return t.updatePropertyAssignment(ue, pt, Wt);
      }
      return Gn(ue, P, e);
    }
    function Mn(ue) {
      if (qf(ue, In)) {
        const pt = Er(ue.name, ue.objectAssignmentInitializer), Wt = ct(ue.name, P, Ve), it = ct(ue.objectAssignmentInitializer, (K) => ie(K, pt), yt);
        return t.updateShorthandPropertyAssignment(ue, Wt, it);
      }
      return Gn(ue, P, e);
    }
    function Ar(ue) {
      if (vd(ue.expression)) {
        const pt = lr(ue.expression);
        return t.updateSpreadAssignment(ue, pt);
      }
      return Gn(ue, P, e);
    }
    function Vr(ue) {
      return D.assertNode(ue, jR), Nx(ue) ? Ar(ue) : $f(ue) ? Mn(ue) : Vl(ue) ? nn(ue) : Gn(ue, P, e);
    }
    function ke(ue) {
      if (Ou(ue)) {
        const pt = Xn(ue.elements, Nn, yt);
        return t.updateArrayLiteralExpression(ue, pt);
      } else {
        const pt = Xn(ue.properties, Vr, fy);
        return t.updateObjectLiteralExpression(ue, pt);
      }
    }
    function gt(ue) {
      if (qf(ue, In)) {
        const pt = t.createStringLiteral(ue.isExportEquals ? "" : "default"), Wt = Xn(ue.modifiers, ne, lo), it = ct(ue.expression, (K) => ie(K, pt), yt);
        return t.updateExportAssignment(ue, Wt, it);
      }
      return Gn(ue, P, e);
    }
    function Nt(ue, pt, Wt) {
      const it = pt ? W : Wt ? (Pe) => ie(Pe, Wt) : P, K = ct(ue.expression, it, yt);
      return t.updateParenthesizedExpression(ue, K);
    }
    function xe(ue, pt, Wt) {
      const it = pt ? W : Wt ? (Pe) => ie(Pe, Wt) : P, K = ct(ue.expression, it, yt);
      return t.updatePartiallyEmittedExpression(ue, K);
    }
    function _t(ue) {
      return kt(h) && (Fd(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 pt = [];
      return bi(pt, en(ue.decorators, re)), pt;
    }
    function re(ue) {
      const pt = ct(ue.expression, P, yt);
      return sr(pt, 3072), pt;
    }
    function he(ue, pt, Wt, it, K, Pe, Z) {
      const Re = t.createFunctionExpression(Wt, it, void 0, void 0, Pe, void 0, Z ?? t.createBlock([]));
      jr(Re, ue), ls(Re, wv(ue)), sr(Re, 3072);
      const q = K === "get" || K === "set" ? K : void 0, Rt = t.createStringLiteralFromNode(pt, void 0), ht = r().createSetFunctionNameHelper(Re, Rt, q), dt = t.createPropertyAssignment(t.createIdentifier(K), ht);
      return jr(dt, ue), ls(dt, wv(ue)), sr(dt, 3072), dt;
    }
    function j(ue, pt) {
      return t.createObjectLiteralExpression([
        he(ue, ue.name, pt, ue.asteriskToken, "value", Xn(ue.parameters, P, Oa), ct(ue.body, P, oo))
      ]);
    }
    function je(ue, pt) {
      return t.createObjectLiteralExpression([
        he(ue, ue.name, pt, void 0, "get", [], ct(ue.body, P, oo))
      ]);
    }
    function Qe(ue, pt) {
      return t.createObjectLiteralExpression([
        he(ue, ue.name, pt, void 0, "set", Xn(ue.parameters, P, Oa), ct(ue.body, P, oo))
      ]);
    }
    function Ke(ue, pt) {
      return t.createObjectLiteralExpression([
        he(ue, ue.name, pt, void 0, "get", [], t.createBlock([
          t.createReturnStatement(t.createPropertyAccessExpression(t.createThis(), t.getGeneratedPrivateNameForNode(ue.name)))
        ])),
        he(ue, ue.name, pt, 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, pt, Wt) {
      return ue = Xn(ue, (it) => bx(it) ? it : void 0, lo), t.createGetAccessorDeclaration(ue, pt, [], void 0, t.createBlock([
        t.createReturnStatement(t.createPropertyAccessExpression(Wt, t.createIdentifier("value")))
      ]));
    }
    function ln(ue, pt, Wt) {
      return ue = Xn(ue, (it) => bx(it) ? it : void 0, lo), t.createGetAccessorDeclaration(ue, pt, [], void 0, t.createBlock([
        t.createReturnStatement(t.createFunctionCallCall(t.createPropertyAccessExpression(Wt, t.createIdentifier("get")), t.createThis(), []))
      ]));
    }
    function Sn(ue, pt, Wt) {
      return ue = Xn(ue, (it) => bx(it) ? it : void 0, lo), t.createSetAccessorDeclaration(ue, pt, [t.createParameterDeclaration(void 0, void 0, "value")], t.createBlock([
        t.createReturnStatement(t.createFunctionCallCall(t.createPropertyAccessExpression(Wt, t.createIdentifier("set")), t.createThis(), [t.createIdentifier("value")]))
      ]));
    }
    function Er(ue, pt) {
      const Wt = Ec(pt, li);
      return Wt && !Wt.name && Kr(Wt, 1024) ? t.createStringLiteral("default") : t.createStringLiteralFromNode(ue);
    }
  }
  var ZMe = C({
    "src/compiler/transformers/esDecorators.ts"() {
      wa();
    }
  });
  function nhe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      resumeLexicalEnvironment: i,
      endLexicalEnvironment: o,
      hoistVariableDeclaration: s
    } = e, l = e.getEmitResolver(), f = e.getCompilerOptions(), d = $o(f);
    let y, h = 0, b, A, L;
    const I = [];
    let O = 0;
    const k = e.onEmitNode, B = e.onSubstituteNode;
    return e.onEmitNode = Wn, e.onSubstituteNode = In, J_(e, V);
    function V(At) {
      if (At.isDeclarationFile)
        return At;
      H(1, !1), H(2, !BW(At, f));
      const vn = Gn(At, ne, e);
      return yy(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, Ht) {
      const dn = At & ~O;
      if (dn) {
        H(dn, !0);
        const ir = vn(Ht);
        return H(dn, !1), ir;
      }
      return vn(Ht);
    }
    function de(At) {
      return Gn(At, ne, e);
    }
    function ne(At) {
      if (!(At.transformFlags & 256))
        return At;
      switch (At.kind) {
        case 132:
          return;
        case 220:
          return Te(At);
        case 171:
          return P(3, $e, At);
        case 259:
          return P(3, We, At);
        case 215:
          return P(3, Oe, At);
        case 216:
          return P(1, Me, At);
        case 208:
          return A && Mr(At) && At.expression.kind === 106 && A.add(At.name.escapedText), Gn(At, ne, e);
        case 209:
          return A && At.expression.kind === 106 && (L = !0), Gn(At, ne, e);
        case 174:
          return P(3, Ue, 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 Gn(At, ne, e);
      }
    }
    function ye(At) {
      if (hue(At))
        switch (At.kind) {
          case 240:
            return W(At);
          case 245:
            return ve(At);
          case 246:
            return ce(At);
          case 247:
            return pe(At);
          case 295:
            return ie(At);
          case 238:
          case 252:
          case 266:
          case 292:
          case 293:
          case 255:
          case 243:
          case 244:
          case 242:
          case 251:
          case 253:
            return Gn(At, ye, e);
          default:
            return D.assertNever(At, "Unhandled node.");
        }
      return ne(At);
    }
    function ie(At) {
      const vn = /* @__PURE__ */ new Set();
      Xe(At.variableDeclaration, vn);
      let Ht;
      if (vn.forEach((dn, ir) => {
        b.has(ir) && (Ht || (Ht = new Set(b)), Ht.delete(ir));
      }), Ht) {
        const dn = b;
        b = Ht;
        const ir = Gn(At, ye, e);
        return b = dn, ir;
      } else
        return Gn(At, ye, e);
    }
    function W(At) {
      if (He(At.declarationList)) {
        const vn = Fe(At.declarationList, !1);
        return vn ? t.createExpressionStatement(vn) : void 0;
      }
      return Gn(At, ne, e);
    }
    function ce(At) {
      return t.updateForInStatement(At, He(At.initializer) ? Fe(At.initializer, !0) : D.checkDefined(ct(At.initializer, ne, zp)), D.checkDefined(ct(At.expression, ne, yt)), g_(At.statement, ye, e));
    }
    function pe(At) {
      return t.updateForOfStatement(At, ct(At.awaitModifier, ne, nJ), He(At.initializer) ? Fe(At.initializer, !0) : D.checkDefined(ct(At.initializer, ne, zp)), D.checkDefined(ct(At.expression, ne, yt)), g_(At.statement, ye, e));
    }
    function ve(At) {
      const vn = At.initializer;
      return t.updateForStatement(At, He(vn) ? Fe(vn, !1) : ct(At.initializer, ne, zp), ct(At.condition, ne, yt), ct(At.incrementor, ne, yt), g_(At.statement, ye, e));
    }
    function Te(At) {
      return X() ? Gn(At, ne, e) : jr(mt(t.createYieldExpression(void 0, ct(At.expression, ne, yt)), At), At);
    }
    function ee(At) {
      return t.updateConstructorDeclaration(At, Xn(At.modifiers, ne, lo), zc(At.parameters, ne, e), tt(At));
    }
    function $e(At) {
      return t.updateMethodDeclaration(At, Xn(At.modifiers, ne, tc), At.asteriskToken, At.name, void 0, void 0, zc(At.parameters, ne, e), void 0, Fl(At) & 2 ? at(At) : tt(At));
    }
    function Ue(At) {
      return t.updateGetAccessorDeclaration(At, Xn(At.modifiers, ne, tc), At.name, zc(At.parameters, ne, e), void 0, tt(At));
    }
    function Be(At) {
      return t.updateSetAccessorDeclaration(At, Xn(At.modifiers, ne, tc), At.name, zc(At.parameters, ne, e), tt(At));
    }
    function We(At) {
      return t.updateFunctionDeclaration(At, Xn(At.modifiers, ne, tc), At.asteriskToken, At.name, void 0, zc(At.parameters, ne, e), void 0, Fl(At) & 2 ? at(At) : Cf(At.body, ne, e));
    }
    function Oe(At) {
      return t.updateFunctionExpression(At, Xn(At.modifiers, ne, lo), At.asteriskToken, At.name, void 0, zc(At.parameters, ne, e), void 0, Fl(At) & 2 ? at(At) : Cf(At.body, ne, e));
    }
    function Me(At) {
      return t.updateArrowFunction(At, Xn(At.modifiers, ne, lo), void 0, zc(At.parameters, ne, e), void 0, At.equalsGreaterThanToken, Fl(At) & 2 ? at(At) : Cf(At.body, ne, e));
    }
    function Xe({ name: At }, vn) {
      if (Ve(At))
        vn.add(At.escapedText);
      else
        for (const Ht of At.elements)
          kl(Ht) || Xe(Ht, vn);
    }
    function He(At) {
      return !!At && Mu(At) && !(At.flags & 3) && At.declarations.some(Vt);
    }
    function Fe(At, vn) {
      st(At);
      const Ht = ZI(At);
      return Ht.length === 0 ? vn ? ct(t.converters.convertToAssignmentElementTarget(At.declarations[0].name), ne, yt) : void 0 : t.inlineExpressions(en(Ht, Et));
    }
    function st(At) {
      ze(At.declarations, Ct);
    }
    function Ct({ name: At }) {
      if (Ve(At))
        s(At);
      else
        for (const vn of At.elements)
          kl(vn) || Ct(vn);
    }
    function Et(At) {
      const vn = ls(t.createAssignment(t.converters.convertToAssignmentElementTarget(At.name), At.initializer), At);
      return D.checkDefined(ct(vn, ne, yt));
    }
    function Vt({ name: At }) {
      if (Ve(At))
        return b.has(At.escapedText);
      for (const vn of At.elements)
        if (!kl(vn) && Vt(vn))
          return !0;
      return !1;
    }
    function tt(At) {
      D.assertIsDefined(At.body);
      const vn = A, Ht = L;
      A = /* @__PURE__ */ new Set(), L = !1;
      let dn = Cf(At.body, ne, e);
      const ir = Ec(At, Xs);
      if (d >= 2 && l.getNodeCheckFlags(At) & 384 && (Fl(ir) & 3) !== 3) {
        if (Pn(), A.size) {
          const Ni = V5(t, l, At, A);
          I[ds(Ni)] = !0;
          const pi = dn.statements.slice();
          Rm(pi, [Ni]), dn = t.updateBlock(dn, pi);
        }
        L && (l.getNodeCheckFlags(At) & 256 ? hx(dn, vO) : l.getNodeCheckFlags(At) & 128 && hx(dn, yO));
      }
      return A = vn, L = Ht, dn;
    }
    function at(At) {
      i();
      const Ht = Ec(At, qa).type, dn = d < 2 ? Xt(Ht) : void 0, ir = At.kind === 216, lr = (l.getNodeCheckFlags(At) & 512) !== 0, Ni = b;
      b = /* @__PURE__ */ new Set();
      for (const Mn of At.parameters)
        Xe(Mn, b);
      const pi = A, Nn = L;
      ir || (A = /* @__PURE__ */ new Set(), L = !1);
      let nn;
      if (ir) {
        const Mn = r().createAwaiterHelper(Y(), lr, dn, an(At.body)), Ar = o();
        if (kt(Ar)) {
          const Vr = t.converters.convertToFunctionBlock(Mn);
          nn = t.updateBlock(Vr, mt(t.createNodeArray(ma(Ar, Vr.statements)), Vr.statements));
        } else
          nn = Mn;
      } else {
        const Mn = [], Ar = t.copyPrologue(At.body.statements, Mn, !1, ne);
        Mn.push(t.createReturnStatement(r().createAwaiterHelper(Y(), lr, dn, an(At.body, Ar)))), Rm(Mn, o());
        const Vr = d >= 2 && l.getNodeCheckFlags(At) & 384;
        if (Vr && (Pn(), A.size)) {
          const gt = V5(t, l, At, A);
          I[ds(gt)] = !0, Rm(Mn, [gt]);
        }
        const ke = t.createBlock(Mn, !0);
        mt(ke, At.body), Vr && L && (l.getNodeCheckFlags(At) & 256 ? hx(ke, vO) : l.getNodeCheckFlags(At) & 128 && hx(ke, yO)), nn = ke;
      }
      return b = Ni, ir || (A = pi, L = Nn), nn;
    }
    function an(At, vn) {
      return oo(At) ? t.updateBlock(At, Xn(At.statements, ye, Ca, vn)) : t.converters.convertToFunctionBlock(D.checkDefined(ct(At, ye, IM)));
    }
    function Xt(At) {
      const vn = At && iN(At);
      if (vn && Zd(vn)) {
        const Ht = l.getTypeReferenceSerializationKind(vn);
        if (Ht === 1 || Ht === 0)
          return vn;
      }
    }
    function Pn() {
      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 Wn(At, vn, Ht) {
      if (y & 1 && Xi(vn)) {
        const dn = l.getNodeCheckFlags(vn) & 384;
        if (dn !== h) {
          const ir = h;
          h = dn, k(At, vn, Ht), h = ir;
          return;
        }
      } else if (y && I[ds(vn)]) {
        const dn = h;
        h = 0, k(At, vn, Ht), h = dn;
        return;
      }
      k(At, vn, Ht);
    }
    function In(At, vn) {
      return vn = B(At, vn), At === 1 && h ? Yt(vn) : vn;
    }
    function Yt(At) {
      switch (At.kind) {
        case 208:
          return _r(At);
        case 209:
          return Ai(At);
        case 210:
          return Ki(At);
      }
      return At;
    }
    function _r(At) {
      return At.expression.kind === 106 ? mt(t.createPropertyAccessExpression(t.createUniqueName("_super", 48), At.name), At) : At;
    }
    function Ai(At) {
      return At.expression.kind === 106 ? Nr(At.argumentExpression, At) : At;
    }
    function Ki(At) {
      const vn = At.expression;
      if (sd(vn)) {
        const Ht = Mr(vn) ? _r(vn) : Ai(vn);
        return t.createCallExpression(t.createPropertyAccessExpression(Ht, "call"), void 0, [
          t.createThis(),
          ...At.arguments
        ]);
      }
      return At;
    }
    function Xi(At) {
      const vn = At.kind;
      return vn === 260 || vn === 173 || vn === 171 || vn === 174 || vn === 175;
    }
    function Nr(At, vn) {
      return h & 256 ? mt(t.createPropertyAccessExpression(t.createCallExpression(t.createUniqueName("_superIndex", 48), void 0, [At]), "value"), vn) : mt(t.createCallExpression(t.createUniqueName("_superIndex", 48), void 0, [At]), vn);
    }
  }
  function V5(e, t, r, i) {
    const o = (t.getNodeCheckFlags(r) & 256) !== 0, s = [];
    return i.forEach((l, f) => {
      const d = ta(f), y = [];
      y.push(e.createPropertyAssignment("get", e.createArrowFunction(void 0, void 0, [], void 0, void 0, sr(e.createPropertyAccessExpression(sr(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(sr(e.createPropertyAccessExpression(sr(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 e3e = C({
    "src/compiler/transformers/es2017.ts"() {
      wa();
    }
  });
  function rhe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      resumeLexicalEnvironment: i,
      endLexicalEnvironment: o,
      hoistVariableDeclaration: s
    } = e, l = e.getEmitResolver(), f = e.getCompilerOptions(), d = $o(f), y = e.onEmitNode;
    e.onEmitNode = Mn;
    const h = e.onSubstituteNode;
    e.onSubstituteNode = Ar;
    let b = !1, A, L, I, O = 0, k = 0, B, V, H, te;
    const X = [];
    return J_(e, ye);
    function Y(_e, re) {
      return k !== (k & ~_e | re);
    }
    function P(_e, re) {
      const he = k;
      return k = (k & ~_e | re) & 3, he;
    }
    function de(_e) {
      k = _e;
    }
    function ne(_e) {
      V = Bn(V, t.createVariableDeclaration(_e));
    }
    function ye(_e) {
      if (_e.isDeclarationFile)
        return _e;
      B = _e;
      const re = He(_e);
      return yy(re, e.readEmitHelpers()), B = void 0, V = void 0, re;
    }
    function ie(_e) {
      return Te(_e, !1);
    }
    function W(_e) {
      return Te(_e, !0);
    }
    function ce(_e) {
      if (_e.kind !== 132)
        return _e;
    }
    function pe(_e, re, he, j) {
      if (Y(he, j)) {
        const je = P(he, j), Qe = _e(re);
        return de(je), Qe;
      }
      return _e(re);
    }
    function ve(_e) {
      return Gn(_e, ie, e);
    }
    function Te(_e, re) {
      if (!(_e.transformFlags & 128))
        return _e;
      switch (_e.kind) {
        case 220:
          return ee(_e);
        case 226:
          return $e(_e);
        case 250:
          return Ue(_e);
        case 253:
          return Be(_e);
        case 207:
          return Oe(_e);
        case 223:
          return st(_e, re);
        case 357:
          return Ct(_e, re);
        case 295:
          return Et(_e);
        case 240:
          return Vt(_e);
        case 257:
          return tt(_e);
        case 243:
        case 244:
        case 246:
          return pe(ve, _e, 0, 2);
        case 247:
          return Pn(_e, void 0);
        case 245:
          return pe(an, _e, 0, 2);
        case 219:
          return Xt(_e);
        case 173:
          return pe(Nr, _e, 2, 1);
        case 171:
          return pe(Ht, _e, 2, 1);
        case 174:
          return pe(At, _e, 2, 1);
        case 175:
          return pe(vn, _e, 2, 1);
        case 259:
          return pe(dn, _e, 2, 1);
        case 215:
          return pe(lr, _e, 2, 1);
        case 216:
          return pe(ir, _e, 2, 0);
        case 166:
          return Ki(_e);
        case 241:
          return Me(_e);
        case 214:
          return Xe(_e, re);
        case 212:
          return Fe(_e);
        case 208:
          return H && Mr(_e) && _e.expression.kind === 106 && H.add(_e.name.escapedText), Gn(_e, ie, e);
        case 209:
          return H && _e.expression.kind === 106 && (te = !0), Gn(_e, ie, e);
        case 260:
        case 228:
          return pe(ve, _e, 2, 1);
        default:
          return Gn(_e, ie, e);
      }
    }
    function ee(_e) {
      return L & 2 && L & 1 ? jr(mt(t.createYieldExpression(void 0, r().createAwaitHelper(ct(_e.expression, ie, yt))), _e), _e) : Gn(_e, ie, e);
    }
    function $e(_e) {
      if (L & 2 && L & 1) {
        if (_e.asteriskToken) {
          const re = ct(D.checkDefined(_e.expression), ie, yt);
          return jr(mt(t.createYieldExpression(void 0, r().createAwaitHelper(t.updateYieldExpression(_e, _e.asteriskToken, mt(r().createAsyncDelegatorHelper(mt(r().createAsyncValuesHelper(re), re)), re)))), _e), _e);
        }
        return jr(mt(t.createYieldExpression(void 0, Yt(_e.expression ? ct(_e.expression, ie, yt) : t.createVoidZero())), _e), _e);
      }
      return Gn(_e, ie, e);
    }
    function Ue(_e) {
      return L & 2 && L & 1 ? t.updateReturnStatement(_e, Yt(_e.expression ? ct(_e.expression, ie, yt) : t.createVoidZero())) : Gn(_e, ie, e);
    }
    function Be(_e) {
      if (L & 2) {
        const re = YW(_e);
        return re.kind === 247 && re.awaitModifier ? Pn(re, _e) : t.restoreEnclosingLabel(ct(re, ie, Ca, t.liftToBlock), _e);
      }
      return Gn(_e, ie, e);
    }
    function We(_e) {
      let re;
      const he = [];
      for (const j of _e)
        if (j.kind === 301) {
          re && (he.push(t.createObjectLiteralExpression(re)), re = void 0);
          const je = j.expression;
          he.push(ct(je, ie, yt));
        } else
          re = Bn(re, j.kind === 299 ? t.createPropertyAssignment(j.name, ct(j.initializer, ie, yt)) : ct(j, ie, fy));
      return re && he.push(t.createObjectLiteralExpression(re)), he;
    }
    function Oe(_e) {
      if (_e.transformFlags & 65536) {
        const re = We(_e.properties);
        re.length && re[0].kind !== 207 && re.unshift(t.createObjectLiteralExpression());
        let he = re[0];
        if (re.length > 1) {
          for (let j = 1; j < re.length; j++)
            he = r().createAssignHelper([he, re[j]]);
          return he;
        } else
          return r().createAssignHelper(re);
      }
      return Gn(_e, ie, e);
    }
    function Me(_e) {
      return Gn(_e, W, e);
    }
    function Xe(_e, re) {
      return Gn(_e, re ? W : ie, e);
    }
    function He(_e) {
      const re = P(2, BW(_e, f) ? 0 : 1);
      b = !1;
      const he = Gn(_e, ie, e), j = ma(he.statements, V && [
        t.createVariableStatement(void 0, t.createVariableDeclarationList(V))
      ]), je = t.updateSourceFile(he, mt(t.createNodeArray(j), _e.statements));
      return de(re), je;
    }
    function Fe(_e) {
      return aX(e, _e, ie, B, ne, 0);
    }
    function st(_e, re) {
      return hy(_e) && GO(_e.left) ? FT(_e, ie, e, 1, !re) : _e.operatorToken.kind === 27 ? t.updateBinaryExpression(_e, ct(_e.left, W, yt), _e.operatorToken, ct(_e.right, re ? W : ie, yt)) : Gn(_e, ie, e);
    }
    function Ct(_e, re) {
      if (re)
        return Gn(_e, W, e);
      let he;
      for (let je = 0; je < _e.elements.length; je++) {
        const Qe = _e.elements[je], Ke = ct(Qe, je < _e.elements.length - 1 ? W : ie, yt);
        (he || Ke !== Qe) && (he || (he = _e.elements.slice(0, je)), he.push(Ke));
      }
      const j = he ? mt(t.createNodeArray(he), _e.elements) : _e.elements;
      return t.updateCommaListExpression(_e, j);
    }
    function Et(_e) {
      if (_e.variableDeclaration && Ja(_e.variableDeclaration.name) && _e.variableDeclaration.name.transformFlags & 65536) {
        const re = t.getGeneratedNameForNode(_e.variableDeclaration.name), he = t.updateVariableDeclaration(_e.variableDeclaration, _e.variableDeclaration.name, void 0, void 0, re), j = V1(he, ie, e, 1);
        let je = ct(_e.block, ie, oo);
        return kt(j) && (je = t.updateBlock(je, [
          t.createVariableStatement(void 0, j),
          ...je.statements
        ])), t.updateCatchClause(_e, t.updateVariableDeclaration(_e.variableDeclaration, re, void 0, void 0, void 0), je);
      }
      return Gn(_e, ie, e);
    }
    function Vt(_e) {
      if (Kr(_e, 1)) {
        const re = b;
        b = !0;
        const he = Gn(_e, ie, e);
        return b = re, he;
      }
      return Gn(_e, ie, e);
    }
    function tt(_e) {
      if (b) {
        const re = b;
        b = !1;
        const he = at(_e, !0);
        return b = re, he;
      }
      return at(_e, !1);
    }
    function at(_e, re) {
      return Ja(_e.name) && _e.name.transformFlags & 65536 ? V1(_e, ie, e, 1, void 0, re) : Gn(_e, ie, e);
    }
    function an(_e) {
      return t.updateForStatement(_e, ct(_e.initializer, W, zp), ct(_e.condition, ie, yt), ct(_e.incrementor, W, yt), g_(_e.statement, ie, e));
    }
    function Xt(_e) {
      return Gn(_e, W, e);
    }
    function Pn(_e, re) {
      const he = P(0, 2);
      (_e.initializer.transformFlags & 65536 || xI(_e.initializer) && GO(_e.initializer)) && (_e = Wn(_e));
      const j = _e.awaitModifier ? _r(_e, re, he) : t.restoreEnclosingLabel(Gn(_e, ie, e), re);
      return de(he), j;
    }
    function Wn(_e) {
      const re = Gs(_e.initializer);
      if (Mu(re) || xI(re)) {
        let he, j;
        const je = t.createTempVariable(void 0), Qe = [xJ(t, re, je)];
        return oo(_e.statement) ? (bi(Qe, _e.statement.statements), he = _e.statement, j = _e.statement.statements) : _e.statement && (Bn(Qe, _e.statement), he = _e.statement, j = _e.statement), t.updateForOfStatement(_e, _e.awaitModifier, mt(t.createVariableDeclarationList([
          mt(t.createVariableDeclaration(je), _e.initializer)
        ], 1), _e.initializer), _e.expression, mt(t.createBlock(mt(t.createNodeArray(Qe), j), !0), he));
      }
      return _e;
    }
    function In(_e, re, he) {
      const j = t.createTempVariable(s), je = t.createAssignment(j, re), Qe = t.createExpressionStatement(je);
      ls(Qe, _e.expression);
      const Ke = t.createAssignment(he, t.createFalse()), Ut = t.createExpressionStatement(Ke);
      ls(Ut, _e.expression);
      const ln = t.createAssignment(he, t.createTrue()), Sn = t.createExpressionStatement(ln);
      ls(Ut, _e.expression);
      const Er = [], ue = xJ(t, _e.initializer, j);
      Er.push(ct(ue, ie, Ca));
      let pt, Wt;
      const it = g_(_e.statement, ie, e);
      oo(it) ? (bi(Er, it.statements), pt = it, Wt = it.statements) : Er.push(it);
      const K = sr(mt(t.createBlock(mt(t.createNodeArray(Er), Wt), !0), pt), 864);
      return t.createBlock([
        Qe,
        Ut,
        t.createTryStatement(K, void 0, t.createBlock([
          Sn
        ]))
      ]);
    }
    function Yt(_e) {
      return L & 1 ? t.createYieldExpression(void 0, r().createAwaitHelper(_e)) : t.createAwaitExpression(_e);
    }
    function _r(_e, re, he) {
      const j = ct(_e.expression, ie, yt), je = Ve(j) ? t.getGeneratedNameForNode(j) : t.createTempVariable(void 0), Qe = Ve(j) ? t.getGeneratedNameForNode(je) : t.createTempVariable(void 0), Ke = t.createTempVariable(void 0), Ut = t.createTempVariable(s), ln = t.createUniqueName("e"), Sn = t.getGeneratedNameForNode(ln), Er = t.createTempVariable(void 0), ue = mt(r().createAsyncValuesHelper(j), _e.expression), pt = t.createCallExpression(t.createPropertyAccessExpression(je, "next"), void 0, []), Wt = t.createPropertyAccessExpression(Qe, "done"), it = t.createPropertyAccessExpression(Qe, "value"), K = t.createFunctionCallCall(Er, je, []);
      s(ln), s(Er);
      const Pe = he & 2 ? t.inlineExpressions([t.createAssignment(ln, t.createVoidZero()), ue]) : ue, Z = sr(mt(t.createForStatement(sr(mt(t.createVariableDeclarationList([
        t.createVariableDeclaration(Ke, void 0, void 0, t.createTrue()),
        mt(t.createVariableDeclaration(je, void 0, void 0, Pe), _e.expression),
        t.createVariableDeclaration(Qe)
      ]), _e.expression), 4194304), t.inlineExpressions([
        t.createAssignment(Qe, Yt(pt)),
        t.createAssignment(Ut, Wt),
        t.createLogicalNot(Ut)
      ]), void 0, In(_e, it, Ke)), _e), 512);
      return jr(Z, _e), t.createTryStatement(t.createBlock([
        t.restoreEnclosingLabel(Z, re)
      ]), t.createCatchClause(t.createVariableDeclaration(Sn), sr(t.createBlock([
        t.createExpressionStatement(t.createAssignment(ln, t.createObjectLiteralExpression([
          t.createPropertyAssignment("error", Sn)
        ])))
      ]), 1)), t.createBlock([
        t.createTryStatement(t.createBlock([
          sr(t.createIfStatement(t.createLogicalAnd(t.createLogicalAnd(t.createLogicalNot(Ke), t.createLogicalNot(Ut)), t.createAssignment(Er, t.createPropertyAccessExpression(je, "return"))), t.createExpressionStatement(Yt(K))), 1)
        ]), void 0, sr(t.createBlock([
          sr(t.createIfStatement(ln, t.createThrowStatement(t.createPropertyAccessExpression(ln, "error"))), 1)
        ]), 1))
      ]));
    }
    function Ai(_e) {
      return D.assertNode(_e, Oa), Ki(_e);
    }
    function Ki(_e) {
      return I != null && I.has(_e) ? t.updateParameterDeclaration(_e, void 0, _e.dotDotDotToken, Ja(_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, ct(_e.initializer, ie, yt)) : Gn(_e, ie, e);
    }
    function Xi(_e) {
      let re;
      for (const he of _e.parameters)
        re ? re.add(he) : he.transformFlags & 65536 && (re = /* @__PURE__ */ new Set());
      return re;
    }
    function Nr(_e) {
      const re = L, he = I;
      L = Fl(_e), I = Xi(_e);
      const j = t.updateConstructorDeclaration(_e, _e.modifiers, zc(_e.parameters, Ai, e), pi(_e));
      return L = re, I = he, j;
    }
    function At(_e) {
      const re = L, he = I;
      L = Fl(_e), I = Xi(_e);
      const j = t.updateGetAccessorDeclaration(_e, _e.modifiers, ct(_e.name, ie, gc), zc(_e.parameters, Ai, e), void 0, pi(_e));
      return L = re, I = he, j;
    }
    function vn(_e) {
      const re = L, he = I;
      L = Fl(_e), I = Xi(_e);
      const j = t.updateSetAccessorDeclaration(_e, _e.modifiers, ct(_e.name, ie, gc), zc(_e.parameters, Ai, e), pi(_e));
      return L = re, I = he, j;
    }
    function Ht(_e) {
      const re = L, he = I;
      L = Fl(_e), I = Xi(_e);
      const j = t.updateMethodDeclaration(_e, L & 1 ? Xn(_e.modifiers, ce, tc) : _e.modifiers, L & 2 ? void 0 : _e.asteriskToken, ct(_e.name, ie, gc), ct(void 0, ie, Nv), void 0, zc(_e.parameters, Ai, e), void 0, L & 2 && L & 1 ? Ni(_e) : pi(_e));
      return L = re, I = he, j;
    }
    function dn(_e) {
      const re = L, he = I;
      L = Fl(_e), I = Xi(_e);
      const j = t.updateFunctionDeclaration(_e, L & 1 ? Xn(_e.modifiers, ce, lo) : _e.modifiers, L & 2 ? void 0 : _e.asteriskToken, _e.name, void 0, zc(_e.parameters, Ai, e), void 0, L & 2 && L & 1 ? Ni(_e) : pi(_e));
      return L = re, I = he, j;
    }
    function ir(_e) {
      const re = L, he = I;
      L = Fl(_e), I = Xi(_e);
      const j = t.updateArrowFunction(_e, _e.modifiers, void 0, zc(_e.parameters, Ai, e), void 0, _e.equalsGreaterThanToken, pi(_e));
      return L = re, I = he, j;
    }
    function lr(_e) {
      const re = L, he = I;
      L = Fl(_e), I = Xi(_e);
      const j = t.updateFunctionExpression(_e, L & 1 ? Xn(_e.modifiers, ce, lo) : _e.modifiers, L & 2 ? void 0 : _e.asteriskToken, _e.name, void 0, zc(_e.parameters, Ai, e), void 0, L & 2 && L & 1 ? Ni(_e) : pi(_e));
      return L = re, I = he, j;
    }
    function Ni(_e) {
      i();
      const re = [], he = t.copyPrologue(_e.body.statements, re, !1, ie);
      Nn(re, _e);
      const j = H, je = te;
      H = /* @__PURE__ */ new Set(), te = !1;
      const Qe = 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, N5(_e.body.statements, ie, e, he))), !!(k & 1))), Ke = d >= 2 && l.getNodeCheckFlags(_e) & 384;
      if (Ke) {
        nn();
        const ln = V5(t, l, _e, H);
        X[ds(ln)] = !0, Rm(re, [ln]);
      }
      re.push(Qe), Rm(re, o());
      const Ut = t.updateBlock(_e.body, re);
      return Ke && te && (l.getNodeCheckFlags(_e) & 256 ? hx(Ut, vO) : l.getNodeCheckFlags(_e) & 128 && hx(Ut, yO)), H = j, te = je, Ut;
    }
    function pi(_e) {
      var re;
      i();
      let he = 0;
      const j = [], je = (re = ct(_e.body, ie, IM)) != null ? re : t.createBlock([]);
      oo(je) && (he = t.copyPrologue(je.statements, j, !1, ie)), bi(j, Nn(void 0, _e));
      const Qe = o();
      if (he > 0 || kt(j) || kt(Qe)) {
        const Ke = t.converters.convertToFunctionBlock(je, !0);
        return Rm(j, Qe), bi(j, Ke.statements.slice(he)), t.updateBlock(Ke, mt(t.createNodeArray(j), Ke.statements));
      }
      return je;
    }
    function Nn(_e, re) {
      let he = !1;
      for (const j of re.parameters)
        if (he) {
          if (Ja(j.name)) {
            if (j.name.elements.length > 0) {
              const je = V1(j, ie, e, 0, t.getGeneratedNameForNode(j));
              if (kt(je)) {
                const Qe = t.createVariableDeclarationList(je), Ke = t.createVariableStatement(void 0, Qe);
                sr(Ke, 2097152), _e = Bn(_e, Ke);
              }
            } else if (j.initializer) {
              const je = t.getGeneratedNameForNode(j), Qe = ct(j.initializer, ie, yt), Ke = t.createAssignment(je, Qe), Ut = t.createExpressionStatement(Ke);
              sr(Ut, 2097152), _e = Bn(_e, Ut);
            }
          } else if (j.initializer) {
            const je = t.cloneNode(j.name);
            mt(je, j.name), sr(je, 96);
            const Qe = ct(j.initializer, ie, yt);
            $p(Qe, 3168);
            const Ke = t.createAssignment(je, Qe);
            mt(Ke, j), sr(Ke, 3072);
            const Ut = t.createBlock([t.createExpressionStatement(Ke)]);
            mt(Ut, j), sr(Ut, 3905);
            const ln = t.createTypeCheck(t.cloneNode(j.name), "undefined"), Sn = t.createIfStatement(ln, Ut);
            Fu(Sn), mt(Sn, j), sr(Sn, 2101056), _e = Bn(_e, Sn);
          }
        } else if (j.transformFlags & 65536) {
          he = !0;
          const je = V1(j, ie, e, 1, t.getGeneratedNameForNode(j), !1, !0);
          if (kt(je)) {
            const Qe = t.createVariableDeclarationList(je), Ke = t.createVariableStatement(void 0, Qe);
            sr(Ke, 2097152), _e = Bn(_e, Ke);
          }
        }
      return _e;
    }
    function nn() {
      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 Mn(_e, re, he) {
      if (A & 1 && xe(re)) {
        const j = l.getNodeCheckFlags(re) & 384;
        if (j !== O) {
          const je = O;
          O = j, y(_e, re, he), O = je;
          return;
        }
      } else if (A && X[ds(re)]) {
        const j = O;
        O = 0, y(_e, re, he), O = j;
        return;
      }
      y(_e, re, he);
    }
    function Ar(_e, re) {
      return re = h(_e, re), _e === 1 && O ? Vr(re) : re;
    }
    function Vr(_e) {
      switch (_e.kind) {
        case 208:
          return ke(_e);
        case 209:
          return gt(_e);
        case 210:
          return Nt(_e);
      }
      return _e;
    }
    function ke(_e) {
      return _e.expression.kind === 106 ? mt(t.createPropertyAccessExpression(t.createUniqueName("_super", 48), _e.name), _e) : _e;
    }
    function gt(_e) {
      return _e.expression.kind === 106 ? _t(_e.argumentExpression, _e) : _e;
    }
    function Nt(_e) {
      const re = _e.expression;
      if (sd(re)) {
        const he = Mr(re) ? ke(re) : gt(re);
        return t.createCallExpression(t.createPropertyAccessExpression(he, "call"), void 0, [
          t.createThis(),
          ..._e.arguments
        ]);
      }
      return _e;
    }
    function xe(_e) {
      const re = _e.kind;
      return re === 260 || re === 173 || re === 171 || re === 174 || re === 175;
    }
    function _t(_e, re) {
      return O & 256 ? mt(t.createPropertyAccessExpression(t.createCallExpression(t.createIdentifier("_superIndex"), void 0, [_e]), "value"), re) : mt(t.createCallExpression(t.createIdentifier("_superIndex"), void 0, [_e]), re);
    }
  }
  var t3e = C({
    "src/compiler/transformers/es2018.ts"() {
      wa();
    }
  });
  function ihe(e) {
    const t = e.factory;
    return J_(e, r);
    function r(s) {
      return s.isDeclarationFile ? s : Gn(s, i, e);
    }
    function i(s) {
      if (!(s.transformFlags & 64))
        return s;
      switch (s.kind) {
        case 295:
          return o(s);
        default:
          return Gn(s, i, e);
      }
    }
    function o(s) {
      return s.variableDeclaration ? Gn(s, i, e) : t.updateCatchClause(s, t.createVariableDeclaration(t.createTempVariable(void 0)), ct(s.block, i, oo));
    }
  }
  var n3e = C({
    "src/compiler/transformers/es2019.ts"() {
      wa();
    }
  });
  function ahe(e) {
    const {
      factory: t,
      hoistVariableDeclaration: r
    } = e;
    return J_(e, i);
    function i(I) {
      return I.isDeclarationFile ? I : Gn(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, Ix), O;
        }
        case 208:
        case 209:
          if (pu(I)) {
            const O = h(I, !1, !1);
            return D.assertNotNode(O, Ix), O;
          }
          return Gn(I, o, e);
        case 223:
          return I.operatorToken.kind === 60 ? A(I) : Gn(I, o, e);
        case 217:
          return L(I);
        default:
          return Gn(I, o, e);
      }
    }
    function s(I) {
      D.assertNotNode(I, TM);
      const O = [I];
      for (; !I.questionDotToken && !AT(I); )
        I = ro(O_(I.expression), pu), D.assertNotNode(I, TM), O.unshift(I);
      return { expression: I.expression, chain: O };
    }
    function l(I, O, k) {
      const B = y(I.expression, O, k);
      return Ix(B) ? t.createSyntheticReferenceExpression(t.updateParenthesizedExpression(I, B.expression), B.thisArg) : t.updateParenthesizedExpression(I, B);
    }
    function f(I, O, k) {
      if (pu(I))
        return h(I, O, k);
      let B = ct(I.expression, o, yt);
      D.assertNotNode(B, Ix);
      let V;
      return O && (U1(B) ? V = B : (V = t.createTempVariable(r), B = t.createAssignment(V, B))), B = I.kind === 208 ? t.updatePropertyAccessExpression(I, B, ct(I.name, o, Ve)) : t.updateElementAccessExpression(I, B, ct(I.argumentExpression, o, yt)), V ? t.createSyntheticReferenceExpression(B, V) : B;
    }
    function d(I, O) {
      if (pu(I))
        return h(I, O, !1);
      if (Fd(I.expression) && pu(Gs(I.expression))) {
        const k = l(I.expression, !0, !1), B = Xn(I.arguments, o, yt);
        return Ix(k) ? mt(t.createFunctionCallCall(k.expression, k.thisArg, B), I) : t.updateCallExpression(I, k, void 0, B);
      }
      return Gn(I, o, e);
    }
    function y(I, O, k) {
      switch (I.kind) {
        case 214:
          return l(I, O, k);
        case 208:
        case 209:
          return f(I, O, k);
        case 210:
          return d(I, O);
        default:
          return ct(I, o, yt);
      }
    }
    function h(I, O, k) {
      const { expression: B, chain: V } = s(I), H = y(O_(B), tT(V[0]), !1);
      let te = Ix(H) ? H.thisArg : void 0, X = Ix(H) ? H.expression : H, Y = t.restoreOuterExpressions(B, X, 8);
      U1(X) || (X = t.createTempVariable(r), Y = t.createAssignment(X, Y));
      let P = X, de;
      for (let ye = 0; ye < V.length; ye++) {
        const ie = V[ye];
        switch (ie.kind) {
          case 208:
          case 209:
            ye === V.length - 1 && O && (U1(P) ? de = P : (de = t.createTempVariable(r), P = t.createAssignment(de, P))), P = ie.kind === 208 ? t.createPropertyAccessExpression(P, ct(ie.name, o, Ve)) : t.createElementAccessExpression(P, ct(ie.argumentExpression, o, yt));
            break;
          case 210:
            ye === 0 && te ? (Tc(te) || (te = t.cloneNode(te), $p(te, 3072)), P = t.createFunctionCallCall(P, te.kind === 106 ? t.createThis() : te, Xn(ie.arguments, o, yt))) : P = t.createCallExpression(P, void 0, Xn(ie.arguments, o, yt));
            break;
        }
        jr(P, ie);
      }
      const ne = k ? t.createConditionalExpression(b(Y, X, !0), void 0, t.createTrue(), void 0, t.createDeleteExpression(P)) : t.createConditionalExpression(b(Y, X, !0), void 0, t.createVoidZero(), void 0, P);
      return mt(ne, I), de ? t.createSyntheticReferenceExpression(ne, de) : ne;
    }
    function b(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 = ct(I.left, o, yt), k = O;
      return U1(O) || (k = t.createTempVariable(r), O = t.createAssignment(k, O)), mt(t.createConditionalExpression(b(O, k), void 0, k, void 0, ct(I.right, o, yt)), I);
    }
    function L(I) {
      return pu(Gs(I.expression)) ? jr(y(I.expression, !1, !0), I) : t.updateDeleteExpression(I, ct(I.expression, o, yt));
    }
  }
  var r3e = C({
    "src/compiler/transformers/es2020.ts"() {
      wa();
    }
  });
  function ohe(e) {
    const {
      hoistVariableDeclaration: t,
      factory: r
    } = e;
    return J_(e, i);
    function i(l) {
      return l.isDeclarationFile ? l : Gn(l, o, e);
    }
    function o(l) {
      return l.transformFlags & 16 ? Oz(l) ? s(l) : Gn(l, o, e) : l;
    }
    function s(l) {
      const f = l.operatorToken, d = Xk(f.kind);
      let y = Gs(ct(l.left, o, vd)), h = y;
      const b = Gs(ct(l.right, o, yt));
      if (sc(y)) {
        const A = U1(y.expression), L = A ? y.expression : r.createTempVariable(t), I = A ? y.expression : r.createAssignment(L, y.expression);
        if (Mr(y))
          h = r.createPropertyAccessExpression(L, y.name), y = r.createPropertyAccessExpression(I, y.name);
        else {
          const O = U1(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, b)));
    }
  }
  var i3e = C({
    "src/compiler/transformers/es2021.ts"() {
      wa();
    }
  });
  function she(e) {
    return J_(e, t);
    function t(i) {
      return i.isDeclarationFile ? i : Gn(i, r, e);
    }
    function r(i) {
      if (!(i.transformFlags & 4))
        return i;
      switch (i.kind) {
        default:
          return Gn(i, r, e);
      }
    }
  }
  var a3e = C({
    "src/compiler/transformers/esnext.ts"() {
      wa();
    }
  });
  function che(e) {
    const {
      factory: t,
      getEmitHelperFactory: r
    } = e, i = e.getCompilerOptions();
    let o, s;
    return J_(e, b);
    function l() {
      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 : R3(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), an = t.createImportSpecifier(!1, t.createIdentifier(Fe), at);
      return gfe(at, an), tt.set(Fe, an), at;
    }
    function b(Fe) {
      if (Fe.isDeclarationFile)
        return Fe;
      o = Fe, s = {}, s.importSpecifier = D3(i, Fe);
      let st = Gn(Fe, A, e);
      yy(st, e.readEmitHelpers());
      let Ct = st.statements;
      if (s.filenameDeclaration && (Ct = m1(Ct.slice(), t.createVariableStatement(void 0, t.createVariableDeclarationList([s.filenameDeclaration], 2)))), s.utilizedImplicitRuntimeImports) {
        for (const [Et, Vt] of Do(s.utilizedImplicitRuntimeImports.entries()))
          if (Yc(Fe)) {
            const tt = t.createImportDeclaration(void 0, t.createImportClause(!1, void 0, t.createNamedImports(Do(Vt.values()))), t.createStringLiteral(Et), void 0);
            Rv(tt, !1), Ct = m1(Ct.slice(), tt);
          } else if (nf(Fe)) {
            const tt = t.createVariableStatement(void 0, t.createVariableDeclarationList([
              t.createVariableDeclaration(t.createObjectBindingPattern(Do(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));
            Rv(tt, !1), Ct = m1(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 B(Fe, !1);
        case 282:
          return V(Fe, !1);
        case 285:
          return H(Fe, !1);
        case 291:
          return He(Fe);
        default:
          return Gn(Fe, A, e);
      }
    }
    function I(Fe) {
      switch (Fe.kind) {
        case 11:
          return $e(Fe);
        case 291:
          return He(Fe);
        case 281:
          return B(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 && em(Ct) && Ct.name.escapedText === "key")
          return !0;
      return !1;
    }
    function k(Fe) {
      return s.importSpecifier === void 0 || O(Fe);
    }
    function B(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 : ne)(Fe.openingFragment, Fe.children, st, Fe);
    }
    function te(Fe) {
      const st = X(Fe);
      return st && t.createObjectLiteralExpression([st]);
    }
    function X(Fe) {
      const st = RN(Fe);
      if (Ie(st) === 1 && !st[0].dotDotDotToken) {
        const Et = I(st[0]);
        return Et && t.createPropertyAssignment("children", Et);
      }
      const Ct = fa(Fe, I);
      return Ie(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 = cn(Fe.attributes.properties, (Pn) => !!Pn.name && Ve(Pn.name) && Pn.name.escapedText === "key"), an = at ? yn(Fe.attributes.properties, (Pn) => Pn !== at) : Fe.attributes.properties, Xt = Ie(an) ? W(an, tt) : t.createObjectLiteralExpression(tt ? [tt] : rt);
      return P(Vt, Xt, at, st || rt, Ct, Et);
    }
    function P(Fe, st, Ct, Et, Vt, tt) {
      var at;
      const an = RN(Et), Xt = Ie(an) > 1 || !!((at = an[0]) != null && at.dotDotDotToken), Pn = [Fe, st];
      if (Ct && Pn.push(ee(Ct.initializer)), i.jsx === 5) {
        const In = Ec(o);
        if (In && Hi(In)) {
          Ct === void 0 && Pn.push(t.createVoidZero()), Pn.push(Xt ? t.createTrue() : t.createFalse());
          const Yt = ac(In, tt.pos);
          Pn.push(t.createObjectLiteralExpression([
            t.createPropertyAssignment("fileName", l()),
            t.createPropertyAssignment("lineNumber", t.createNumericLiteral(Yt.line + 1)),
            t.createPropertyAssignment("columnNumber", t.createNumericLiteral(Yt.character + 1))
          ])), Pn.push(t.createThis());
        }
      }
      const Wn = mt(t.createCallExpression(d(Xt), void 0, Pn), tt);
      return Vt && Fu(Wn), Wn;
    }
    function de(Fe, st, Ct, Et) {
      const Vt = Me(Fe), tt = Fe.attributes.properties, at = Ie(tt) ? W(tt) : t.createNull(), an = s.importSpecifier === void 0 ? SJ(t, e.getEmitResolver().getJsxFactoryEntity(o), i.reactNamespace, Fe) : h("createElement"), Xt = Xfe(t, an, Vt, at, fa(st, I), Et);
      return Ct && Fu(Xt), Xt;
    }
    function ne(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 = Yfe(t, e.getEmitResolver().getJsxFactoryEntity(o), e.getEmitResolver().getJsxFragmentFactoryEntity(o), i.reactNamespace, fa(st, I), Fe, Et);
      return Ct && Fu(Vt), Vt;
    }
    function ie(Fe) {
      return t.createSpreadAssignment(D.checkDefined(ct(Fe.expression, A, yt)));
    }
    function W(Fe, st) {
      const Ct = $o(i);
      return Ct && Ct >= 5 ? t.createObjectLiteralExpression(ce(Fe, st)) : pe(Fe, st);
    }
    function ce(Fe, st) {
      const Ct = id(C4(Fe, IT, (Et, Vt) => en(Et, (tt) => Vt ? ie(tt) : Te(tt))));
      return st && Ct.push(st), Ct;
    }
    function pe(Fe, st) {
      const Ct = id(C4(Fe, IT, (Et, Vt) => Vt ? en(Et, ve) : t.createObjectLiteralExpression(en(Et, Te))));
      return IT(Fe[0]) && Ct.unshift(t.createObjectLiteralExpression()), st && Ct.push(t.createObjectLiteralExpression([st])), Tm(Ct) || r().createAssignHelper(Ct);
    }
    function ve(Fe) {
      return D.checkDefined(ct(Fe.expression, A, yt));
    }
    function Te(Fe) {
      const st = Xe(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 : !a3(Fe, o), Ct = t.createStringLiteral(Oe(Fe.text) || Fe.text, st);
        return mt(Ct, Fe);
      }
      return Fe.kind === 291 ? Fe.expression === void 0 ? t.createTrue() : D.checkDefined(ct(Fe.expression, A, yt)) : Ty(Fe) ? B(Fe, !1) : kx(Fe) ? V(Fe, !1) : Dx(Fe) ? H(Fe, !1) : D.failBadSyntaxKind(Fe);
    }
    function $e(Fe) {
      const st = Ue(Fe.text);
      return st === void 0 ? void 0 : t.createStringLiteral(st);
    }
    function Ue(Fe) {
      let st, Ct = 0, Et = -1;
      for (let Vt = 0; Vt < Fe.length; Vt++) {
        const tt = Fe.charCodeAt(Vt);
        fu(tt) ? (Ct !== -1 && Et !== -1 && (st = Be(st, Fe.substr(Ct, Et - Ct + 1))), Ct = -1) : Im(tt) || (Et = Vt, Ct === -1 && (Ct = Vt));
      }
      return Ct !== -1 ? Be(st, Fe.substr(Ct)) : st;
    }
    function Be(Fe, st) {
      const Ct = We(st);
      return Fe === void 0 ? Ct : Fe + " " + Ct;
    }
    function We(Fe) {
      return Fe.replace(/&((#((\d+)|x([\da-fA-F]+)))|(\w+));/g, (st, Ct, Et, Vt, tt, at, an) => {
        if (tt)
          return pI(parseInt(tt, 10));
        if (at)
          return pI(parseInt(at, 16));
        {
          const Xt = lhe.get(an);
          return Xt ? pI(Xt) : st;
        }
      });
    }
    function Oe(Fe) {
      const st = We(Fe);
      return st === Fe ? void 0 : st;
    }
    function Me(Fe) {
      if (Fe.kind === 281)
        return Me(Fe.openingElement);
      {
        const st = Fe.tagName;
        return Ve(st) && HI(st.escapedText) ? t.createStringLiteral(Pr(st)) : NO(t, st);
      }
    }
    function Xe(Fe) {
      const st = Fe.name, Ct = Pr(st);
      return /^[A-Za-z_]\w*$/.test(Ct) ? st : t.createStringLiteral(Ct);
    }
    function He(Fe) {
      const st = ct(Fe.expression, A, yt);
      return Fe.dotDotDotToken ? t.createSpreadElement(st) : st;
    }
  }
  var lhe, o3e = C({
    "src/compiler/transformers/jsx.ts"() {
      wa(), lhe = 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 uhe(e) {
    const {
      factory: t,
      hoistVariableDeclaration: r
    } = e;
    return J_(e, i);
    function i(d) {
      return d.isDeclarationFile ? d : Gn(d, o, e);
    }
    function o(d) {
      if (!(d.transformFlags & 512))
        return d;
      switch (d.kind) {
        case 223:
          return s(d);
        default:
          return Gn(d, o, e);
      }
    }
    function s(d) {
      switch (d.operatorToken.kind) {
        case 67:
          return l(d);
        case 42:
          return f(d);
        default:
          return Gn(d, o, e);
      }
    }
    function l(d) {
      let y, h;
      const b = ct(d.left, o, yt), A = ct(d.right, o, yt);
      if (cc(b)) {
        const L = t.createTempVariable(r), I = t.createTempVariable(r);
        y = mt(t.createElementAccessExpression(mt(t.createAssignment(L, b.expression), b.expression), mt(t.createAssignment(I, b.argumentExpression), b.argumentExpression)), b), h = mt(t.createElementAccessExpression(L, I), b);
      } else if (Mr(b)) {
        const L = t.createTempVariable(r);
        y = mt(t.createPropertyAccessExpression(mt(t.createAssignment(L, b.expression), b.expression), b.name), b), h = mt(t.createPropertyAccessExpression(L, b.name), b);
      } else
        y = b, h = b;
      return mt(t.createAssignment(y, mt(t.createGlobalMethodCall("Math", "pow", [h, A]), d)), d);
    }
    function f(d) {
      const y = ct(d.left, o, yt), h = ct(d.right, o, yt);
      return mt(t.createGlobalMethodCall("Math", "pow", [y, h]), d);
    }
  }
  var s3e = C({
    "src/compiler/transformers/es2016.ts"() {
      wa();
    }
  });
  function dhe(e, t) {
    return { kind: e, expression: t };
  }
  function fhe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      startLexicalEnvironment: i,
      resumeLexicalEnvironment: o,
      endLexicalEnvironment: s,
      hoistVariableDeclaration: l
    } = e, f = e.getCompilerOptions(), d = e.getEmitResolver(), y = e.onSubstituteNode, h = e.onEmitNode;
    e.onEmitNode = ud, e.onSubstituteNode = dc;
    let b, A, L, I;
    function O(ae) {
      I = Bn(I, t.createVariableDeclaration(ae));
    }
    let k, B;
    return J_(e, V);
    function V(ae) {
      if (ae.isDeclarationFile)
        return ae;
      b = ae, A = ae.text;
      const lt = ce(ae);
      return yy(lt, e.readEmitHelpers()), b = void 0, A = void 0, I = void 0, L = 0, lt;
    }
    function H(ae, lt) {
      const Mt = L;
      return L = (L & ~ae | lt) & 32767, Mt;
    }
    function te(ae, lt, Mt) {
      L = (L & ~lt | Mt) & -32768 | ae;
    }
    function X(ae) {
      return (L & 8192) !== 0 && ae.kind === 250 && !ae.expression;
    }
    function Y(ae) {
      return ae.transformFlags & 4194304 && (gp(ae) || CT(ae) || Ffe(ae) || CO(ae) || IO(ae) || Dk(ae) || wO(ae) || LO(ae) || EC(ae) || N1(ae) || Sv(ae, !1) || oo(ae));
    }
    function P(ae) {
      return (ae.transformFlags & 1024) !== 0 || k !== void 0 || L & 8192 && Y(ae) || Sv(ae, !1) && ai(ae) || (P_(ae) & 1) !== 0;
    }
    function de(ae) {
      return P(ae) ? W(ae, !1) : ae;
    }
    function ne(ae) {
      return P(ae) ? W(ae, !0) : ae;
    }
    function ye(ae) {
      if (P(ae)) {
        const lt = Ec(ae);
        if (Za(lt) && pl(lt)) {
          const Mt = H(32670, 16449), Pt = W(ae, !1);
          return te(Mt, 98304, 0), Pt;
        }
        return W(ae, !1);
      }
      return ae;
    }
    function ie(ae) {
      return ae.kind === 106 ? uc(!0) : de(ae);
    }
    function W(ae, lt) {
      switch (ae.kind) {
        case 124:
          return;
        case 260:
          return Oe(ae);
        case 228:
          return Me(ae);
        case 166:
          return Pn(ae);
        case 259:
          return nn(ae);
        case 216:
          return pi(ae);
        case 215:
          return Nn(ae);
        case 257:
          return Qe(ae);
        case 79:
          return Be(ae);
        case 258:
          return re(ae);
        case 252:
          return pe(ae);
        case 266:
          return ve(ae);
        case 238:
          return Vr(ae, !1);
        case 249:
        case 248:
          return We(ae);
        case 253:
          return ln(ae);
        case 243:
        case 244:
          return ue(ae, void 0);
        case 245:
          return pt(ae, void 0);
        case 246:
          return it(ae, void 0);
        case 247:
          return K(ae, void 0);
        case 241:
          return ke(ae);
        case 207:
          return Rt(ae);
        case 295:
          return rl(ae);
        case 300:
          return $s(ae);
        case 164:
          return zs(ae);
        case 206:
          return Uc(ae);
        case 210:
          return bu(ae);
        case 211:
          return jt(ae);
        case 214:
          return gt(ae, lt);
        case 223:
          return Nt(ae, lt);
        case 357:
          return xe(ae, lt);
        case 14:
        case 15:
        case 16:
        case 17:
          return ya(ae);
        case 10:
          return as(ae);
        case 8:
          return po(ae);
        case 212:
          return Uo(ae);
        case 225:
          return Ka(ae);
        case 226:
          return tn(ae);
        case 227:
          return Or(ae);
        case 106:
          return uc(!1);
        case 108:
          return $e(ae);
        case 233:
          return ll(ae);
        case 171:
          return Is(ae);
        case 174:
        case 175:
          return mc(ae);
        case 240:
          return _e(ae);
        case 250:
          return ee(ae);
        case 219:
          return Ue(ae);
        default:
          return Gn(ae, de, e);
      }
    }
    function ce(ae) {
      const lt = H(8064, 64), Mt = [], Pt = [];
      i();
      const un = t.copyPrologue(ae.statements, Mt, !1, de);
      return bi(Pt, Xn(ae.statements, de, Ca, un)), I && Pt.push(t.createVariableStatement(void 0, t.createVariableDeclarationList(I))), t.mergeLexicalEnvironment(Mt, s()), Xi(Mt, ae), te(lt, 0, 0), t.updateSourceFile(ae, mt(t.createNodeArray(ma(Mt, Pt)), ae.statements));
    }
    function pe(ae) {
      if (k !== void 0) {
        const lt = k.allowedNonLabeledJumps;
        k.allowedNonLabeledJumps |= 2;
        const Mt = Gn(ae, de, e);
        return k.allowedNonLabeledJumps = lt, Mt;
      }
      return Gn(ae, de, e);
    }
    function ve(ae) {
      const lt = H(7104, 0), Mt = Gn(ae, de, e);
      return te(lt, 0, 0), Mt;
    }
    function Te(ae) {
      return jr(t.createReturnStatement(t.createUniqueName("_this", 48)), ae);
    }
    function ee(ae) {
      return k ? (k.nonLocalJumps |= 8, X(ae) && (ae = Te(ae)), t.createReturnStatement(t.createObjectLiteralExpression([
        t.createPropertyAssignment(t.createIdentifier("value"), ae.expression ? D.checkDefined(ct(ae.expression, de, yt)) : t.createVoidZero())
      ]))) : X(ae) ? Te(ae) : Gn(ae, de, e);
    }
    function $e(ae) {
      return L & 2 && !(L & 16384) && (L |= 65536), k ? L & 2 ? (k.containsLexicalThis = !0, ae) : k.thisName || (k.thisName = t.createUniqueName("this")) : ae;
    }
    function Ue(ae) {
      return Gn(ae, ne, e);
    }
    function Be(ae) {
      return k && d.isArgumentsLocalBinding(ae) ? k.argumentsName || (k.argumentsName = t.createUniqueName("arguments")) : ae.flags & 128 ? jr(mt(t.createIdentifier(ta(ae.escapedText)), ae), ae) : ae;
    }
    function We(ae) {
      if (k) {
        const lt = ae.kind === 249 ? 2 : 4;
        if (!(ae.label && k.labels && k.labels.get(Pr(ae.label)) || !ae.label && k.allowedNonLabeledJumps & lt)) {
          let Pt;
          const un = ae.label;
          un ? ae.kind === 249 ? (Pt = `break-${un.escapedText}`, Bc(k, !0, Pr(un), Pt)) : (Pt = `continue-${un.escapedText}`, Bc(k, !1, Pr(un), Pt)) : ae.kind === 249 ? (k.nonLocalJumps |= 2, Pt = "break") : (k.nonLocalJumps |= 4, Pt = "continue");
          let jn = t.createStringLiteral(Pt);
          if (k.loopOutParameters.length) {
            const Dr = k.loopOutParameters;
            let ei;
            for (let Oi = 0; Oi < Dr.length; Oi++) {
              const Ga = $c(Dr[Oi], 1);
              Oi === 0 ? ei = Ga : ei = t.createBinaryExpression(ei, 27, Ga);
            }
            jn = t.createBinaryExpression(ei, 27, jn);
          }
          return t.createReturnStatement(jn);
        }
      }
      return Gn(ae, de, e);
    }
    function Oe(ae) {
      const lt = t.createVariableDeclaration(t.getLocalName(ae, !0), void 0, void 0, Xe(ae));
      jr(lt, ae);
      const Mt = [], Pt = t.createVariableStatement(void 0, t.createVariableDeclarationList([lt]));
      if (jr(Pt, ae), mt(Pt, ae), Fu(Pt), Mt.push(Pt), Kr(ae, 1)) {
        const jn = Kr(ae, 1024) ? t.createExportDefault(t.getLocalName(ae)) : t.createExternalModuleExport(t.getLocalName(ae));
        jr(jn, Pt), Mt.push(jn);
      }
      const un = go(ae);
      return un & 8388608 || (Mt.push(t.createEndOfDeclarationMarker(ae)), sr(Pt, un | 8388608)), Sm(Mt);
    }
    function Me(ae) {
      return Xe(ae);
    }
    function Xe(ae) {
      ae.name && ys();
      const lt = T1(ae), Mt = t.createFunctionExpression(void 0, void 0, void 0, void 0, lt ? [t.createParameterDeclaration(void 0, void 0, t.createUniqueName("_super", 48))] : [], void 0, He(ae, lt));
      sr(Mt, go(ae) & 131072 | 1048576);
      const Pt = t.createPartiallyEmittedExpression(Mt);
      rC(Pt, ae.end), sr(Pt, 3072);
      const un = t.createPartiallyEmittedExpression(Pt);
      rC(un, zo(A, ae.pos)), sr(un, 3072);
      const jn = t.createParenthesizedExpression(t.createCallExpression(un, void 0, lt ? [D.checkDefined(ct(lt.expression, de, yt))] : []));
      return pO(jn, 3, "* @class "), jn;
    }
    function He(ae, lt) {
      const Mt = [], Pt = t.getInternalName(ae), un = f3(Pt) ? t.getGeneratedNameForNode(Pt) : Pt;
      i(), Fe(Mt, ae, lt), st(Mt, ae, un, lt), Ht(Mt, ae);
      const jn = Gz(zo(A, ae.members.end), 19), Dr = t.createPartiallyEmittedExpression(un);
      rC(Dr, jn.end), sr(Dr, 3072);
      const ei = t.createReturnStatement(Dr);
      uk(ei, jn.pos), sr(ei, 3840), Mt.push(ei), Rm(Mt, s());
      const Oi = t.createBlock(mt(t.createNodeArray(Mt), ae.members), !0);
      return sr(Oi, 3072), Oi;
    }
    function Fe(ae, lt, Mt) {
      Mt && ae.push(mt(t.createExpressionStatement(r().createExtendsHelper(t.getInternalName(lt))), Mt));
    }
    function st(ae, lt, Mt, Pt) {
      const un = k;
      k = void 0;
      const jn = H(32662, 73), Dr = yh(lt), ei = Ao(Dr, Pt !== void 0), Oi = t.createFunctionDeclaration(void 0, void 0, Mt, void 0, Ct(Dr, ei), void 0, Vt(Dr, lt, Pt, ei));
      mt(Oi, Dr || lt), Pt && sr(Oi, 16), ae.push(Oi), te(jn, 98304, 0), k = un;
    }
    function Ct(ae, lt) {
      return zc(ae && !lt ? ae.parameters : void 0, de, e) || [];
    }
    function Et(ae, lt) {
      const Mt = [];
      o(), t.mergeLexicalEnvironment(Mt, s()), lt && Mt.push(t.createReturnStatement(Xt()));
      const Pt = t.createNodeArray(Mt);
      mt(Pt, ae.members);
      const un = t.createBlock(Pt, !0);
      return mt(un, ae), sr(un, 3072), un;
    }
    function Vt(ae, lt, Mt, Pt) {
      const un = !!Mt && hu(Mt.expression).kind !== 104;
      if (!ae)
        return Et(lt, un);
      const jn = [], Dr = [];
      o();
      const ei = F4(ae.body.statements, pp), { superCall: Oi, superStatementIndex: Ga } = tt(ae.body.statements, ei), Vo = Ga === -1 ? ei.length : Ga + 1;
      let vs = Vo;
      Pt || (vs = t.copyStandardPrologue(ae.body.statements, jn, vs, !1)), Pt || (vs = t.copyCustomPrologue(ae.body.statements, Dr, vs, de, void 0));
      let qs;
      if (Pt ? qs = Xt() : Oi && (qs = fe(Oi)), qs && (L |= 8192), In(jn, ae), Ki(jn, ae, Pt), bi(Dr, Xn(ae.body.statements, de, Ca, vs)), t.mergeLexicalEnvironment(jn, s()), vn(jn, ae, !1), un || qs)
        if (qs && Vo === ae.body.statements.length && !(ae.body.transformFlags & 16384)) {
          const lf = ro(ro(qs, br).left, eo), Qc = t.createReturnStatement(qs);
          Gl(Qc, Gm(lf)), sr(lf, 3072), Dr.push(Qc);
        } else
          Ga <= ei.length ? At(Dr, ae, qs || an()) : (At(jn, ae, an()), qs && Nr(Dr, qs)), at(ae.body) || Dr.push(t.createReturnStatement(t.createUniqueName("_this", 48)));
      else
        Xi(jn, ae);
      const dd = t.createBlock(mt(t.createNodeArray([
        ...ei,
        ...jn,
        ...Ga <= ei.length ? rt : Xn(ae.body.statements, de, Ca, ei.length, Ga - ei.length),
        ...Dr
      ]), ae.body.statements), !0);
      return mt(dd, ae.body), dd;
    }
    function tt(ae, lt) {
      for (let Mt = lt.length; Mt < ae.length; Mt += 1) {
        const Pt = $K(ae[Mt]);
        if (Pt)
          return {
            superCall: Pt,
            superStatementIndex: Mt
          };
      }
      return {
        superStatementIndex: -1
      };
    }
    function at(ae) {
      if (ae.kind === 250)
        return !0;
      if (ae.kind === 242) {
        const lt = ae;
        if (lt.elseStatement)
          return at(lt.thenStatement) && at(lt.elseStatement);
      } else if (ae.kind === 238) {
        const lt = ec(ae.statements);
        if (lt && at(lt))
          return !0;
      }
      return !1;
    }
    function an() {
      return sr(t.createThis(), 8);
    }
    function Xt() {
      return t.createLogicalOr(t.createLogicalAnd(t.createStrictInequality(t.createUniqueName("_super", 48), t.createNull()), t.createFunctionApplyCall(t.createUniqueName("_super", 48), an(), t.createIdentifier("arguments"))), an());
    }
    function Pn(ae) {
      if (!ae.dotDotDotToken)
        return Ja(ae.name) ? jr(mt(t.createParameterDeclaration(void 0, void 0, t.getGeneratedNameForNode(ae), void 0, void 0, void 0), ae), ae) : ae.initializer ? jr(mt(t.createParameterDeclaration(void 0, void 0, ae.name, void 0, void 0, void 0), ae), ae) : ae;
    }
    function Wn(ae) {
      return ae.initializer !== void 0 || Ja(ae.name);
    }
    function In(ae, lt) {
      if (!kt(lt.parameters, Wn))
        return !1;
      let Mt = !1;
      for (const Pt of lt.parameters) {
        const { name: un, initializer: jn, dotDotDotToken: Dr } = Pt;
        Dr || (Ja(un) ? Mt = Yt(ae, Pt, un, jn) || Mt : jn && (_r(ae, Pt, un, jn), Mt = !0));
      }
      return Mt;
    }
    function Yt(ae, lt, Mt, Pt) {
      return Mt.elements.length > 0 ? (m1(ae, sr(t.createVariableStatement(void 0, t.createVariableDeclarationList(V1(lt, de, e, 0, t.getGeneratedNameForNode(lt)))), 2097152)), !0) : Pt ? (m1(ae, sr(t.createExpressionStatement(t.createAssignment(t.getGeneratedNameForNode(lt), D.checkDefined(ct(Pt, de, yt)))), 2097152)), !0) : !1;
    }
    function _r(ae, lt, Mt, Pt) {
      Pt = D.checkDefined(ct(Pt, de, yt));
      const un = t.createIfStatement(t.createTypeCheck(t.cloneNode(Mt), "undefined"), sr(mt(t.createBlock([
        t.createExpressionStatement(sr(mt(t.createAssignment(sr(Bo(mt(t.cloneNode(Mt), Mt), Mt.parent), 96), sr(Pt, 96 | go(Pt) | 3072)), lt), 3072))
      ]), lt), 3905));
      Fu(un), mt(un, lt), sr(un, 2101056), m1(ae, un);
    }
    function Ai(ae, lt) {
      return !!(ae && ae.dotDotDotToken && !lt);
    }
    function Ki(ae, lt, Mt) {
      const Pt = [], un = ec(lt.parameters);
      if (!Ai(un, Mt))
        return !1;
      const jn = un.name.kind === 79 ? Bo(mt(t.cloneNode(un.name), un.name), un.name.parent) : t.createTempVariable(void 0);
      sr(jn, 96);
      const Dr = un.name.kind === 79 ? t.cloneNode(un.name) : jn, ei = lt.parameters.length - 1, Oi = t.createLoopVariable();
      Pt.push(sr(mt(t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(jn, void 0, void 0, t.createArrayLiteralExpression([]))
      ])), un), 2097152));
      const Ga = t.createForStatement(mt(t.createVariableDeclarationList([
        t.createVariableDeclaration(Oi, void 0, void 0, t.createNumericLiteral(ei))
      ]), un), mt(t.createLessThan(Oi, t.createPropertyAccessExpression(t.createIdentifier("arguments"), "length")), un), mt(t.createPostfixIncrement(Oi), un), t.createBlock([
        Fu(mt(t.createExpressionStatement(t.createAssignment(t.createElementAccessExpression(Dr, ei === 0 ? Oi : t.createSubtract(Oi, t.createNumericLiteral(ei))), t.createElementAccessExpression(t.createIdentifier("arguments"), Oi))), un))
      ]));
      return sr(Ga, 2097152), Fu(Ga), Pt.push(Ga), un.name.kind !== 79 && Pt.push(sr(mt(t.createVariableStatement(void 0, t.createVariableDeclarationList(V1(un, de, e, 0, Dr))), un), 2097152)), kW(ae, Pt), !0;
    }
    function Xi(ae, lt) {
      return L & 65536 && lt.kind !== 216 ? (At(ae, lt, t.createThis()), !0) : !1;
    }
    function Nr(ae, lt) {
      cs();
      const Mt = t.createExpressionStatement(t.createBinaryExpression(t.createThis(), 63, lt));
      m1(ae, Mt), Gl(Mt, Ec(lt).parent);
    }
    function At(ae, lt, Mt) {
      cs();
      const Pt = t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(t.createUniqueName("_this", 48), void 0, void 0, Mt)
      ]));
      sr(Pt, 2100224), ls(Pt, lt), m1(ae, Pt);
    }
    function vn(ae, lt, Mt) {
      if (L & 32768) {
        let Pt;
        switch (lt.kind) {
          case 216:
            return ae;
          case 171:
          case 174:
          case 175:
            Pt = t.createVoidZero();
            break;
          case 173:
            Pt = t.createPropertyAccessExpression(sr(t.createThis(), 8), "constructor");
            break;
          case 259:
          case 215:
            Pt = t.createConditionalExpression(t.createLogicalAnd(sr(t.createThis(), 8), t.createBinaryExpression(sr(t.createThis(), 8), 102, t.getLocalName(lt))), void 0, t.createPropertyAccessExpression(sr(t.createThis(), 8), "constructor"), void 0, t.createVoidZero());
            break;
          default:
            return D.failBadSyntaxKind(lt);
        }
        const un = t.createVariableStatement(void 0, t.createVariableDeclarationList([
          t.createVariableDeclaration(t.createUniqueName("_newTarget", 48), void 0, void 0, Pt)
        ]));
        sr(un, 2100224), Mt && (ae = ae.slice()), m1(ae, un);
      }
      return ae;
    }
    function Ht(ae, lt) {
      for (const Mt of lt.members)
        switch (Mt.kind) {
          case 237:
            ae.push(dn(Mt));
            break;
          case 171:
            ae.push(ir(qi(lt, Mt), Mt, lt));
            break;
          case 174:
          case 175:
            const Pt = vT(lt.members, Mt);
            Mt === Pt.firstAccessor && ae.push(lr(qi(lt, Mt), Pt, lt));
            break;
          case 173:
          case 172:
            break;
          default:
            D.failBadSyntaxKind(Mt, b && b.fileName);
            break;
        }
    }
    function dn(ae) {
      return mt(t.createEmptyStatement(), ae);
    }
    function ir(ae, lt, Mt) {
      const Pt = Gm(lt), un = $0(lt), jn = Mn(lt, lt, void 0, Mt), Dr = ct(lt.name, de, gc);
      D.assert(Dr);
      let ei;
      if (!Di(Dr) && KN(e.getCompilerOptions())) {
        const Ga = Ts(Dr) ? Dr.expression : Ve(Dr) ? t.createStringLiteral(ta(Dr.escapedText)) : Dr;
        ei = t.createObjectDefinePropertyCall(ae, Ga, t.createPropertyDescriptor({ value: jn, enumerable: !1, writable: !0, configurable: !0 }));
      } else {
        const Ga = DT(t, ae, Dr, lt.name);
        ei = t.createAssignment(Ga, jn);
      }
      sr(jn, 3072), ls(jn, un);
      const Oi = mt(t.createExpressionStatement(ei), lt);
      return jr(Oi, lt), Gl(Oi, Pt), sr(Oi, 96), Oi;
    }
    function lr(ae, lt, Mt) {
      const Pt = t.createExpressionStatement(Ni(ae, lt, Mt, !1));
      return sr(Pt, 3072), ls(Pt, $0(lt.firstAccessor)), Pt;
    }
    function Ni(ae, { firstAccessor: lt, getAccessor: Mt, setAccessor: Pt }, un, jn) {
      const Dr = Bo(mt(t.cloneNode(ae), ae), ae.parent);
      sr(Dr, 3136), ls(Dr, lt.name);
      const ei = ct(lt.name, de, gc);
      if (D.assert(ei), Di(ei))
        return D.failBadSyntaxKind(ei, "Encountered unhandled private identifier while transforming ES2015.");
      const Oi = AJ(t, ei);
      sr(Oi, 3104), ls(Oi, lt.name);
      const Ga = [];
      if (Mt) {
        const vs = Mn(Mt, void 0, void 0, un);
        ls(vs, $0(Mt)), sr(vs, 1024);
        const qs = t.createPropertyAssignment("get", vs);
        Gl(qs, Gm(Mt)), Ga.push(qs);
      }
      if (Pt) {
        const vs = Mn(Pt, void 0, void 0, un);
        ls(vs, $0(Pt)), sr(vs, 1024);
        const qs = t.createPropertyAssignment("set", vs);
        Gl(qs, Gm(Pt)), Ga.push(qs);
      }
      Ga.push(t.createPropertyAssignment("enumerable", Mt || Pt ? t.createFalse() : t.createTrue()), t.createPropertyAssignment("configurable", t.createTrue()));
      const Vo = t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"), "defineProperty"), void 0, [
        Dr,
        Oi,
        t.createObjectLiteralExpression(Ga, !0)
      ]);
      return jn && Fu(Vo), Vo;
    }
    function pi(ae) {
      ae.transformFlags & 16384 && !(L & 16384) && (L |= 65536);
      const lt = k;
      k = void 0;
      const Mt = H(15232, 66), Pt = t.createFunctionExpression(void 0, void 0, void 0, void 0, zc(ae.parameters, de, e), void 0, Ar(ae));
      return mt(Pt, ae), jr(Pt, ae), sr(Pt, 16), te(Mt, 0, 0), k = lt, Pt;
    }
    function Nn(ae) {
      const lt = go(ae) & 524288 ? H(32662, 69) : H(32670, 65), Mt = k;
      k = void 0;
      const Pt = zc(ae.parameters, de, e), un = Ar(ae), jn = L & 32768 ? t.getLocalName(ae) : ae.name;
      return te(lt, 98304, 0), k = Mt, t.updateFunctionExpression(ae, void 0, ae.asteriskToken, jn, void 0, Pt, void 0, un);
    }
    function nn(ae) {
      const lt = k;
      k = void 0;
      const Mt = H(32670, 65), Pt = zc(ae.parameters, de, e), un = Ar(ae), jn = L & 32768 ? t.getLocalName(ae) : ae.name;
      return te(Mt, 98304, 0), k = lt, t.updateFunctionDeclaration(ae, Xn(ae.modifiers, de, lo), ae.asteriskToken, jn, void 0, Pt, void 0, un);
    }
    function Mn(ae, lt, Mt, Pt) {
      const un = k;
      k = void 0;
      const jn = Pt && li(Pt) && !za(ae) ? H(32670, 73) : H(32670, 65), Dr = zc(ae.parameters, de, e), ei = Ar(ae);
      return L & 32768 && !Mt && (ae.kind === 259 || ae.kind === 215) && (Mt = t.getGeneratedNameForNode(ae)), te(jn, 98304, 0), k = un, jr(mt(t.createFunctionExpression(void 0, ae.asteriskToken, Mt, void 0, Dr, void 0, ei), lt), ae);
    }
    function Ar(ae) {
      let lt = !1, Mt = !1, Pt, un;
      const jn = [], Dr = [], ei = ae.body;
      let Oi;
      if (o(), oo(ei) && (Oi = t.copyStandardPrologue(ei.statements, jn, 0, !1), Oi = t.copyCustomPrologue(ei.statements, Dr, Oi, de, WM), Oi = t.copyCustomPrologue(ei.statements, Dr, Oi, de, zM)), lt = In(Dr, ae) || lt, lt = Ki(Dr, ae, !1) || lt, oo(ei))
        Oi = t.copyCustomPrologue(ei.statements, Dr, Oi, de), Pt = ei.statements, bi(Dr, Xn(ei.statements, de, Ca, Oi)), !lt && ei.multiLine && (lt = !0);
      else {
        D.assert(ae.kind === 216), Pt = T3(ei, -1);
        const Vo = ae.equalsGreaterThanToken;
        !Ys(Vo) && !Ys(ei) && (jN(Vo, ei, b) ? Mt = !0 : lt = !0);
        const vs = ct(ei, de, yt), qs = t.createReturnStatement(vs);
        mt(qs, ei), dfe(qs, ei), sr(qs, 2880), Dr.push(qs), un = ei;
      }
      if (t.mergeLexicalEnvironment(jn, s()), vn(jn, ae, !1), Xi(jn, ae), kt(jn) && (lt = !0), Dr.unshift(...jn), oo(ei) && Vp(Dr, ei.statements))
        return ei;
      const Ga = t.createBlock(mt(t.createNodeArray(Dr), Pt), lt);
      return mt(Ga, ae.body), !lt && Mt && sr(Ga, 1), un && ufe(Ga, 19, un), jr(Ga, ae.body), Ga;
    }
    function Vr(ae, lt) {
      if (lt)
        return Gn(ae, de, e);
      const Mt = L & 256 ? H(7104, 512) : H(6976, 128), Pt = Gn(ae, de, e);
      return te(Mt, 0, 0), Pt;
    }
    function ke(ae) {
      return Gn(ae, ne, e);
    }
    function gt(ae, lt) {
      return Gn(ae, lt ? ne : de, e);
    }
    function Nt(ae, lt) {
      return hy(ae) ? FT(ae, de, e, 0, !lt) : ae.operatorToken.kind === 27 ? t.updateBinaryExpression(ae, D.checkDefined(ct(ae.left, ne, yt)), ae.operatorToken, D.checkDefined(ct(ae.right, lt ? ne : de, yt))) : Gn(ae, de, e);
    }
    function xe(ae, lt) {
      if (lt)
        return Gn(ae, ne, e);
      let Mt;
      for (let un = 0; un < ae.elements.length; un++) {
        const jn = ae.elements[un], Dr = ct(jn, un < ae.elements.length - 1 ? ne : de, yt);
        (Mt || Dr !== jn) && (Mt || (Mt = ae.elements.slice(0, un)), D.assert(Dr), Mt.push(Dr));
      }
      const Pt = Mt ? mt(t.createNodeArray(Mt), ae.elements) : ae.elements;
      return t.updateCommaListExpression(ae, Pt);
    }
    function _t(ae) {
      return ae.declarationList.declarations.length === 1 && !!ae.declarationList.declarations[0].initializer && !!(P_(ae.declarationList.declarations[0].initializer) & 1);
    }
    function _e(ae) {
      const lt = H(0, Kr(ae, 1) ? 32 : 0);
      let Mt;
      if (k && !(ae.declarationList.flags & 3) && !_t(ae)) {
        let Pt;
        for (const un of ae.declarationList.declarations)
          if (xi(k, un), un.initializer) {
            let jn;
            Ja(un.name) ? jn = FT(un, de, e, 0) : (jn = t.createBinaryExpression(un.name, 63, D.checkDefined(ct(un.initializer, de, yt))), mt(jn, un)), Pt = Bn(Pt, jn);
          }
        Pt ? Mt = mt(t.createExpressionStatement(t.inlineExpressions(Pt)), ae) : Mt = void 0;
      } else
        Mt = Gn(ae, de, e);
      return te(lt, 0, 0), Mt;
    }
    function re(ae) {
      if (ae.flags & 3 || ae.transformFlags & 524288) {
        ae.flags & 3 && ys();
        const lt = Xn(ae.declarations, ae.flags & 1 ? je : Qe, zi), Mt = t.createVariableDeclarationList(lt);
        return jr(Mt, ae), mt(Mt, ae), Gl(Mt, ae), ae.transformFlags & 524288 && (Ja(ae.declarations[0].name) || Ja(Ho(ae.declarations).name)) && ls(Mt, he(lt)), Mt;
      }
      return Gn(ae, de, e);
    }
    function he(ae) {
      let lt = -1, Mt = -1;
      for (const Pt of ae)
        lt = lt === -1 ? Pt.pos : Pt.pos === -1 ? lt : Math.min(lt, Pt.pos), Mt = Math.max(Mt, Pt.end);
      return __(lt, Mt);
    }
    function j(ae) {
      const lt = d.getNodeCheckFlags(ae), Mt = lt & 16384, Pt = lt & 32768;
      return !((L & 64) !== 0 || Mt && Pt && (L & 512) !== 0) && (L & 4096) === 0 && (!d.isDeclarationWithCollidingName(ae) || Pt && !Mt && (L & 6144) === 0);
    }
    function je(ae) {
      const lt = ae.name;
      return Ja(lt) ? Qe(ae) : !ae.initializer && j(ae) ? t.updateVariableDeclaration(ae, ae.name, void 0, void 0, t.createVoidZero()) : Gn(ae, de, e);
    }
    function Qe(ae) {
      const lt = H(32, 0);
      let Mt;
      return Ja(ae.name) ? Mt = V1(ae, de, e, 0, void 0, (lt & 32) !== 0) : Mt = Gn(ae, de, e), te(lt, 0, 0), Mt;
    }
    function Ke(ae) {
      k.labels.set(Pr(ae.label), !0);
    }
    function Ut(ae) {
      k.labels.set(Pr(ae.label), !1);
    }
    function ln(ae) {
      k && !k.labels && (k.labels = /* @__PURE__ */ new Map());
      const lt = YW(ae, k && Ke);
      return Sv(lt, !1) ? Sn(lt, ae) : t.restoreEnclosingLabel(D.checkDefined(ct(lt, de, Ca, t.liftToBlock)), ae, k && Ut);
    }
    function Sn(ae, lt) {
      switch (ae.kind) {
        case 243:
        case 244:
          return ue(ae, lt);
        case 245:
          return pt(ae, lt);
        case 246:
          return it(ae, lt);
        case 247:
          return K(ae, lt);
      }
    }
    function Er(ae, lt, Mt, Pt, un) {
      const jn = H(ae, lt), Dr = Gi(Mt, Pt, jn, un);
      return te(jn, 0, 0), Dr;
    }
    function ue(ae, lt) {
      return Er(0, 1280, ae, lt);
    }
    function pt(ae, lt) {
      return Er(5056, 3328, ae, lt);
    }
    function Wt(ae) {
      return t.updateForStatement(ae, ct(ae.initializer, ne, zp), ct(ae.condition, de, yt), ct(ae.incrementor, ne, yt), D.checkDefined(ct(ae.statement, de, Ca, t.liftToBlock)));
    }
    function it(ae, lt) {
      return Er(3008, 5376, ae, lt);
    }
    function K(ae, lt) {
      return Er(3008, 5376, ae, lt, f.downlevelIteration ? q : Re);
    }
    function Pe(ae, lt, Mt) {
      const Pt = [], un = ae.initializer;
      if (Mu(un)) {
        ae.initializer.flags & 3 && ys();
        const jn = zl(un.declarations);
        if (jn && Ja(jn.name)) {
          const Dr = V1(jn, de, e, 0, lt), ei = mt(t.createVariableDeclarationList(Dr), ae.initializer);
          jr(ei, ae.initializer), ls(ei, __(Dr[0].pos, Ho(Dr).end)), Pt.push(t.createVariableStatement(void 0, ei));
        } else
          Pt.push(mt(t.createVariableStatement(void 0, jr(mt(t.createVariableDeclarationList([
            t.createVariableDeclaration(jn ? jn.name : t.createTempVariable(void 0), void 0, void 0, lt)
          ]), X0(un, -1)), un)), T3(un, -1)));
      } else {
        const jn = t.createAssignment(un, lt);
        hy(jn) ? Pt.push(t.createExpressionStatement(Nt(jn, !0))) : (rC(jn, un.end), Pt.push(mt(t.createExpressionStatement(D.checkDefined(ct(jn, de, yt))), T3(un, -1))));
      }
      if (Mt)
        return Z(bi(Pt, Mt));
      {
        const jn = ct(ae.statement, de, Ca, t.liftToBlock);
        return D.assert(jn), oo(jn) ? t.updateBlock(jn, mt(t.createNodeArray(ma(Pt, jn.statements)), jn.statements)) : (Pt.push(jn), Z(Pt));
      }
    }
    function Z(ae) {
      return sr(t.createBlock(t.createNodeArray(ae), !0), 864);
    }
    function Re(ae, lt, Mt) {
      const Pt = ct(ae.expression, de, yt);
      D.assert(Pt);
      const un = t.createLoopVariable(), jn = Ve(Pt) ? t.getGeneratedNameForNode(Pt) : t.createTempVariable(void 0);
      sr(Pt, 96 | go(Pt));
      const Dr = mt(t.createForStatement(sr(mt(t.createVariableDeclarationList([
        mt(t.createVariableDeclaration(un, void 0, void 0, t.createNumericLiteral(0)), X0(ae.expression, -1)),
        mt(t.createVariableDeclaration(jn, void 0, void 0, Pt), ae.expression)
      ]), ae.expression), 4194304), mt(t.createLessThan(un, t.createPropertyAccessExpression(jn, "length")), ae.expression), mt(t.createPostfixIncrement(un), ae.expression), Pe(ae, t.createElementAccessExpression(jn, un), Mt)), ae);
      return sr(Dr, 512), mt(Dr, ae), t.restoreEnclosingLabel(Dr, lt, k && Ut);
    }
    function q(ae, lt, Mt, Pt) {
      const un = ct(ae.expression, de, yt);
      D.assert(un);
      const jn = Ve(un) ? t.getGeneratedNameForNode(un) : t.createTempVariable(void 0), Dr = Ve(un) ? t.getGeneratedNameForNode(jn) : t.createTempVariable(void 0), ei = t.createUniqueName("e"), Oi = t.getGeneratedNameForNode(ei), Ga = t.createTempVariable(void 0), Vo = mt(r().createValuesHelper(un), ae.expression), vs = t.createCallExpression(t.createPropertyAccessExpression(jn, "next"), void 0, []);
      l(ei), l(Ga);
      const qs = Pt & 1024 ? t.inlineExpressions([t.createAssignment(ei, t.createVoidZero()), Vo]) : Vo, dd = sr(mt(t.createForStatement(sr(mt(t.createVariableDeclarationList([
        mt(t.createVariableDeclaration(jn, void 0, void 0, qs), ae.expression),
        t.createVariableDeclaration(Dr, void 0, void 0, vs)
      ]), ae.expression), 4194304), t.createLogicalNot(t.createPropertyAccessExpression(Dr, "done")), t.createAssignment(Dr, vs), Pe(ae, t.createPropertyAccessExpression(Dr, "value"), Mt)), ae), 512);
      return t.createTryStatement(t.createBlock([
        t.restoreEnclosingLabel(dd, lt, k && Ut)
      ]), t.createCatchClause(t.createVariableDeclaration(Oi), sr(t.createBlock([
        t.createExpressionStatement(t.createAssignment(ei, t.createObjectLiteralExpression([
          t.createPropertyAssignment("error", Oi)
        ])))
      ]), 1)), t.createBlock([
        t.createTryStatement(t.createBlock([
          sr(t.createIfStatement(t.createLogicalAnd(t.createLogicalAnd(Dr, t.createLogicalNot(t.createPropertyAccessExpression(Dr, "done"))), t.createAssignment(Ga, t.createPropertyAccessExpression(jn, "return"))), t.createExpressionStatement(t.createFunctionCallCall(Ga, jn, []))), 1)
        ]), void 0, sr(t.createBlock([
          sr(t.createIfStatement(ei, t.createThrowStatement(t.createPropertyAccessExpression(ei, "error"))), 1)
        ]), 1))
      ]));
    }
    function Rt(ae) {
      const lt = ae.properties;
      let Mt = -1, Pt = !1;
      for (let ei = 0; ei < lt.length; ei++) {
        const Oi = lt[ei];
        if (Oi.transformFlags & 1048576 && L & 4 || (Pt = D.checkDefined(Oi.name).kind === 164)) {
          Mt = ei;
          break;
        }
      }
      if (Mt < 0)
        return Gn(ae, de, e);
      const un = t.createTempVariable(l), jn = [], Dr = t.createAssignment(un, sr(t.createObjectLiteralExpression(Xn(lt, de, fy, 0, Mt), ae.multiLine), Pt ? 131072 : 0));
      return ae.multiLine && Fu(Dr), jn.push(Dr), Jo(jn, ae, un, Mt), jn.push(ae.multiLine ? Fu(Bo(mt(t.cloneNode(un), un), un.parent)) : un), t.inlineExpressions(jn);
    }
    function ht(ae) {
      return (d.getNodeCheckFlags(ae) & 8192) !== 0;
    }
    function dt(ae) {
      return LT(ae) && !!ae.initializer && ht(ae.initializer);
    }
    function fn(ae) {
      return LT(ae) && !!ae.condition && ht(ae.condition);
    }
    function Qn(ae) {
      return LT(ae) && !!ae.incrementor && ht(ae.incrementor);
    }
    function ai(ae) {
      return Si(ae) || dt(ae);
    }
    function Si(ae) {
      return (d.getNodeCheckFlags(ae) & 4096) !== 0;
    }
    function xi(ae, lt) {
      ae.hoistedLocalVariables || (ae.hoistedLocalVariables = []), Mt(lt.name);
      function Mt(Pt) {
        if (Pt.kind === 79)
          ae.hoistedLocalVariables.push(Pt);
        else
          for (const un of Pt.elements)
            kl(un) || Mt(un.name);
      }
    }
    function Gi(ae, lt, Mt, Pt) {
      if (!ai(ae)) {
        let Vo;
        k && (Vo = k.allowedNonLabeledJumps, k.allowedNonLabeledJumps = 6);
        const vs = Pt ? Pt(ae, lt, void 0, Mt) : t.restoreEnclosingLabel(LT(ae) ? Wt(ae) : Gn(ae, de, e), lt, k && Ut);
        return k && (k.allowedNonLabeledJumps = Vo), vs;
      }
      const un = is(ae), jn = [], Dr = k;
      k = un;
      const ei = dt(ae) ? wn(ae, un) : void 0, Oi = Si(ae) ? ua(ae, un, Dr) : void 0;
      k = Dr, ei && jn.push(ei.functionDeclaration), Oi && jn.push(Oi.functionDeclaration), di(jn, un, Dr), ei && jn.push(Fc(ei.functionName, ei.containsYield));
      let Ga;
      if (Oi)
        if (Pt)
          Ga = Pt(ae, lt, Oi.part, Mt);
        else {
          const Vo = _o(ae, ei, t.createBlock(Oi.part, !0));
          Ga = t.restoreEnclosingLabel(Vo, lt, k && Ut);
        }
      else {
        const Vo = _o(ae, ei, D.checkDefined(ct(ae.statement, de, Ca, t.liftToBlock)));
        Ga = t.restoreEnclosingLabel(Vo, lt, k && Ut);
      }
      return jn.push(Ga), jn;
    }
    function _o(ae, lt, Mt) {
      switch (ae.kind) {
        case 245:
          return bo(ae, lt, Mt);
        case 246:
          return sa(ae, Mt);
        case 247:
          return no(ae, Mt);
        case 243:
          return Ui(ae, Mt);
        case 244:
          return Jr(ae, Mt);
        default:
          return D.failBadSyntaxKind(ae, "IterationStatement expected");
      }
    }
    function bo(ae, lt, Mt) {
      const Pt = ae.condition && ht(ae.condition), un = Pt || ae.incrementor && ht(ae.incrementor);
      return t.updateForStatement(ae, ct(lt ? lt.part : ae.initializer, ne, zp), ct(Pt ? void 0 : ae.condition, de, yt), ct(un ? void 0 : ae.incrementor, ne, yt), Mt);
    }
    function no(ae, lt) {
      return t.updateForOfStatement(ae, void 0, D.checkDefined(ct(ae.initializer, de, zp)), D.checkDefined(ct(ae.expression, de, yt)), lt);
    }
    function sa(ae, lt) {
      return t.updateForInStatement(ae, D.checkDefined(ct(ae.initializer, de, zp)), D.checkDefined(ct(ae.expression, de, yt)), lt);
    }
    function Ui(ae, lt) {
      return t.updateDoStatement(ae, lt, D.checkDefined(ct(ae.expression, de, yt)));
    }
    function Jr(ae, lt) {
      return t.updateWhileStatement(ae, D.checkDefined(ct(ae.expression, de, yt)), lt);
    }
    function is(ae) {
      let lt;
      switch (ae.kind) {
        case 245:
        case 246:
        case 247:
          const jn = ae.initializer;
          jn && jn.kind === 258 && (lt = jn);
          break;
      }
      const Mt = [], Pt = [];
      if (lt && _p(lt) & 3) {
        const jn = dt(ae) || fn(ae) || Qn(ae);
        for (const Dr of lt.declarations)
          Sa(ae, Dr, Mt, Pt, jn);
      }
      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 di(ae, lt, Mt) {
      let Pt;
      if (lt.argumentsName && (Mt ? Mt.argumentsName = lt.argumentsName : (Pt || (Pt = [])).push(t.createVariableDeclaration(lt.argumentsName, void 0, void 0, t.createIdentifier("arguments")))), lt.thisName && (Mt ? Mt.thisName = lt.thisName : (Pt || (Pt = [])).push(t.createVariableDeclaration(lt.thisName, void 0, void 0, t.createIdentifier("this")))), lt.hoistedLocalVariables)
        if (Mt)
          Mt.hoistedLocalVariables = lt.hoistedLocalVariables;
        else {
          Pt || (Pt = []);
          for (const un of lt.hoistedLocalVariables)
            Pt.push(t.createVariableDeclaration(un));
        }
      if (lt.loopOutParameters.length) {
        Pt || (Pt = []);
        for (const un of lt.loopOutParameters)
          Pt.push(t.createVariableDeclaration(un.outParamName));
      }
      lt.conditionVariable && (Pt || (Pt = []), Pt.push(t.createVariableDeclaration(lt.conditionVariable, void 0, void 0, t.createFalse()))), Pt && ae.push(t.createVariableStatement(void 0, t.createVariableDeclarationList(Pt)));
    }
    function ca(ae) {
      return t.createVariableDeclaration(ae.originalName, void 0, void 0, ae.outParamName);
    }
    function wn(ae, lt) {
      const Mt = t.createUniqueName("_loop_init"), Pt = (ae.initializer.transformFlags & 1048576) !== 0;
      let un = 0;
      lt.containsLexicalThis && (un |= 16), Pt && L & 4 && (un |= 524288);
      const jn = [];
      jn.push(t.createVariableStatement(void 0, ae.initializer)), nc(lt.loopOutParameters, 2, 1, jn);
      const Dr = t.createVariableStatement(void 0, sr(t.createVariableDeclarationList([
        t.createVariableDeclaration(Mt, void 0, void 0, sr(t.createFunctionExpression(void 0, Pt ? t.createToken(41) : void 0, void 0, void 0, void 0, void 0, D.checkDefined(ct(t.createBlock(jn, !0), de, oo))), un))
      ]), 4194304)), ei = t.createVariableDeclarationList(en(lt.loopOutParameters, ca));
      return { functionName: Mt, containsYield: Pt, functionDeclaration: Dr, part: ei };
    }
    function ua(ae, lt, Mt) {
      const Pt = t.createUniqueName("_loop");
      i();
      const un = ct(ae.statement, de, Ca, t.liftToBlock), jn = s(), Dr = [];
      (fn(ae) || Qn(ae)) && (lt.conditionVariable = t.createUniqueName("inc"), ae.incrementor ? Dr.push(t.createIfStatement(lt.conditionVariable, t.createExpressionStatement(D.checkDefined(ct(ae.incrementor, de, yt))), t.createExpressionStatement(t.createAssignment(lt.conditionVariable, t.createTrue())))) : Dr.push(t.createIfStatement(t.createLogicalNot(lt.conditionVariable), t.createExpressionStatement(t.createAssignment(lt.conditionVariable, t.createTrue())))), fn(ae) && Dr.push(t.createIfStatement(t.createPrefixUnaryExpression(53, D.checkDefined(ct(ae.condition, de, yt))), D.checkDefined(ct(t.createBreakStatement(), de, Ca))))), D.assert(un), oo(un) ? bi(Dr, un.statements) : Dr.push(un), nc(lt.loopOutParameters, 1, 1, Dr), Rm(Dr, jn);
      const ei = t.createBlock(Dr, !0);
      oo(un) && jr(ei, un);
      const Oi = (ae.statement.transformFlags & 1048576) !== 0;
      let Ga = 1048576;
      lt.containsLexicalThis && (Ga |= 16), Oi && L & 4 && (Ga |= 524288);
      const Vo = t.createVariableStatement(void 0, sr(t.createVariableDeclarationList([
        t.createVariableDeclaration(Pt, void 0, void 0, sr(t.createFunctionExpression(void 0, Oi ? t.createToken(41) : void 0, void 0, void 0, lt.loopParameters, void 0, ei), Ga))
      ]), 4194304)), vs = qc(Pt, lt, Mt, Oi);
      return { functionName: Pt, containsYield: Oi, functionDeclaration: Vo, part: vs };
    }
    function $c(ae, lt) {
      const Mt = lt === 0 ? ae.outParamName : ae.originalName, Pt = lt === 0 ? ae.originalName : ae.outParamName;
      return t.createBinaryExpression(Pt, 63, Mt);
    }
    function nc(ae, lt, Mt, Pt) {
      for (const un of ae)
        un.flags & lt && Pt.push(t.createExpressionStatement($c(un, Mt)));
    }
    function Fc(ae, lt) {
      const Mt = t.createCallExpression(ae, void 0, []), Pt = lt ? t.createYieldExpression(t.createToken(41), sr(Mt, 16777216)) : Mt;
      return t.createExpressionStatement(Pt);
    }
    function qc(ae, lt, Mt, Pt) {
      const un = [], jn = !(lt.nonLocalJumps & -5) && !lt.labeledNonLocalBreaks && !lt.labeledNonLocalContinues, Dr = t.createCallExpression(ae, void 0, en(lt.loopParameters, (Oi) => Oi.name)), ei = Pt ? t.createYieldExpression(t.createToken(41), sr(Dr, 16777216)) : Dr;
      if (jn)
        un.push(t.createExpressionStatement(ei)), nc(lt.loopOutParameters, 1, 0, un);
      else {
        const Oi = t.createUniqueName("state"), Ga = t.createVariableStatement(void 0, t.createVariableDeclarationList([t.createVariableDeclaration(Oi, void 0, void 0, ei)]));
        if (un.push(Ga), nc(lt.loopOutParameters, 1, 0, un), lt.nonLocalJumps & 8) {
          let Vo;
          Mt ? (Mt.nonLocalJumps |= 8, Vo = t.createReturnStatement(Oi)) : Vo = t.createReturnStatement(t.createPropertyAccessExpression(Oi, "value")), un.push(t.createIfStatement(t.createTypeCheck(Oi, "object"), Vo));
        }
        if (lt.nonLocalJumps & 2 && un.push(t.createIfStatement(t.createStrictEquality(Oi, t.createStringLiteral("break")), t.createBreakStatement())), lt.labeledNonLocalBreaks || lt.labeledNonLocalContinues) {
          const Vo = [];
          xo(lt.labeledNonLocalBreaks, !0, Oi, Mt, Vo), xo(lt.labeledNonLocalContinues, !1, Oi, Mt, Vo), un.push(t.createSwitchStatement(Oi, t.createCaseBlock(Vo)));
        }
      }
      return un;
    }
    function Bc(ae, lt, Mt, Pt) {
      lt ? (ae.labeledNonLocalBreaks || (ae.labeledNonLocalBreaks = /* @__PURE__ */ new Map()), ae.labeledNonLocalBreaks.set(Mt, Pt)) : (ae.labeledNonLocalContinues || (ae.labeledNonLocalContinues = /* @__PURE__ */ new Map()), ae.labeledNonLocalContinues.set(Mt, Pt));
    }
    function xo(ae, lt, Mt, Pt, un) {
      ae && ae.forEach((jn, Dr) => {
        const ei = [];
        if (!Pt || Pt.labels && Pt.labels.get(Dr)) {
          const Oi = t.createIdentifier(Dr);
          ei.push(lt ? t.createBreakStatement(Oi) : t.createContinueStatement(Oi));
        } else
          Bc(Pt, lt, Dr, jn), ei.push(t.createReturnStatement(Mt));
        un.push(t.createCaseClause(t.createStringLiteral(jn), ei));
      });
    }
    function Sa(ae, lt, Mt, Pt, un) {
      const jn = lt.name;
      if (Ja(jn))
        for (const Dr of jn.elements)
          kl(Dr) || Sa(ae, Dr, Mt, Pt, un);
      else {
        Mt.push(t.createParameterDeclaration(void 0, void 0, jn));
        const Dr = d.getNodeCheckFlags(lt);
        if (Dr & 262144 || un) {
          const ei = t.createUniqueName("out_" + Pr(jn));
          let Oi = 0;
          Dr & 262144 && (Oi |= 1), LT(ae) && (ae.initializer && d.isBindingCapturedByNode(ae.initializer, lt) && (Oi |= 2), (ae.condition && d.isBindingCapturedByNode(ae.condition, lt) || ae.incrementor && d.isBindingCapturedByNode(ae.incrementor, lt)) && (Oi |= 1)), Pt.push({ flags: Oi, originalName: jn, outParamName: ei });
        }
      }
    }
    function Jo(ae, lt, Mt, Pt) {
      const un = lt.properties, jn = un.length;
      for (let Dr = Pt; Dr < jn; Dr++) {
        const ei = un[Dr];
        switch (ei.kind) {
          case 174:
          case 175:
            const Oi = vT(lt.properties, ei);
            ei === Oi.firstAccessor && ae.push(Ni(Mt, Oi, lt, !!lt.multiLine));
            break;
          case 171:
            ae.push(jd(ei, Mt, lt, lt.multiLine));
            break;
          case 299:
            ae.push(Gc(ei, Mt, lt.multiLine));
            break;
          case 300:
            ae.push(Yl(ei, Mt, lt.multiLine));
            break;
          default:
            D.failBadSyntaxKind(lt);
            break;
        }
      }
    }
    function Gc(ae, lt, Mt) {
      const Pt = t.createAssignment(DT(t, lt, D.checkDefined(ct(ae.name, de, gc))), D.checkDefined(ct(ae.initializer, de, yt)));
      return mt(Pt, ae), Mt && Fu(Pt), Pt;
    }
    function Yl(ae, lt, Mt) {
      const Pt = t.createAssignment(DT(t, lt, D.checkDefined(ct(ae.name, de, gc))), t.cloneNode(ae.name));
      return mt(Pt, ae), Mt && Fu(Pt), Pt;
    }
    function jd(ae, lt, Mt, Pt) {
      const un = t.createAssignment(DT(t, lt, D.checkDefined(ct(ae.name, de, gc))), Mn(ae, ae, void 0, Mt));
      return mt(un, ae), Pt && Fu(un), un;
    }
    function rl(ae) {
      const lt = H(7104, 0);
      let Mt;
      if (D.assert(!!ae.variableDeclaration, "Catch clause variable should always be present when downleveling ES2015."), Ja(ae.variableDeclaration.name)) {
        const Pt = t.createTempVariable(void 0), un = t.createVariableDeclaration(Pt);
        mt(un, ae.variableDeclaration);
        const jn = V1(ae.variableDeclaration, de, e, 0, Pt), Dr = t.createVariableDeclarationList(jn);
        mt(Dr, ae.variableDeclaration);
        const ei = t.createVariableStatement(void 0, Dr);
        Mt = t.updateCatchClause(ae, un, Hl(ae.block, ei));
      } else
        Mt = Gn(ae, de, e);
      return te(lt, 0, 0), Mt;
    }
    function Hl(ae, lt) {
      const Mt = Xn(ae.statements, de, Ca);
      return t.updateBlock(ae, [lt, ...Mt]);
    }
    function Is(ae) {
      D.assert(!Ts(ae.name));
      const lt = Mn(ae, X0(ae, -1), void 0, void 0);
      return sr(lt, 1024 | go(lt)), mt(t.createPropertyAssignment(ae.name, lt), ae);
    }
    function mc(ae) {
      D.assert(!Ts(ae.name));
      const lt = k;
      k = void 0;
      const Mt = H(32670, 65);
      let Pt;
      const un = zc(ae.parameters, de, e), jn = Ar(ae);
      return ae.kind === 174 ? Pt = t.updateGetAccessorDeclaration(ae, ae.modifiers, ae.name, un, ae.type, jn) : Pt = t.updateSetAccessorDeclaration(ae, ae.modifiers, ae.name, un, jn), te(Mt, 98304, 0), k = lt, Pt;
    }
    function $s(ae) {
      return mt(t.createPropertyAssignment(ae.name, Be(t.cloneNode(ae.name))), ae);
    }
    function zs(ae) {
      return Gn(ae, de, e);
    }
    function tn(ae) {
      return Gn(ae, de, e);
    }
    function Uc(ae) {
      return kt(ae.elements, xh) ? Q(ae.elements, !1, !!ae.multiLine, !!ae.elements.hasTrailingComma) : Gn(ae, de, e);
    }
    function bu(ae) {
      if (P_(ae) & 1)
        return Uu(ae);
      const lt = hu(ae.expression);
      return lt.kind === 106 || sd(lt) || kt(ae.arguments, xh) ? It(ae, !0) : t.updateCallExpression(ae, D.checkDefined(ct(ae.expression, ie, yt)), void 0, Xn(ae.arguments, de, yt));
    }
    function Uu(ae) {
      const lt = ro(ro(hu(ae.expression), Ws).body, oo), Mt = (uf) => cl(uf) && !!ss(uf.declarationList.declarations).initializer, Pt = k;
      k = void 0;
      const un = Xn(lt.statements, ye, Ca);
      k = Pt;
      const jn = yn(un, Mt), Dr = yn(un, (uf) => !Mt(uf)), Oi = ro(ss(jn), cl).declarationList.declarations[0], Ga = hu(Oi.initializer);
      let Vo = ii(Ga, Yu);
      !Vo && br(Ga) && Ga.operatorToken.kind === 27 && (Vo = ii(Ga.left, Yu));
      const vs = ro(Vo ? hu(Vo.right) : Ga, eo), qs = ro(hu(vs.expression), Ps), dd = qs.body.statements;
      let lf = 0, Qc = -1;
      const Wd = [];
      if (Vo) {
        const uf = ii(dd[lf], nu);
        uf && (Wd.push(uf), lf++), Wd.push(dd[lf]), lf++, Wd.push(t.createExpressionStatement(t.createAssignment(Vo.left, ro(Oi.name, Ve))));
      }
      for (; !gp(oy(dd, Qc)); )
        Qc--;
      bi(Wd, dd, lf, Qc), Qc < -1 && bi(Wd, dd, Qc + 1);
      const Eu = ii(oy(dd, Qc), gp);
      for (const uf of Dr)
        gp(uf) && (Eu != null && Eu.expression) && !Ve(Eu.expression) ? Wd.push(Eu) : Wd.push(uf);
      return bi(Wd, jn, 1), t.restoreOuterExpressions(ae.expression, t.restoreOuterExpressions(Oi.initializer, t.restoreOuterExpressions(Vo && Vo.right, t.updateCallExpression(vs, t.restoreOuterExpressions(vs.expression, t.updateFunctionExpression(qs, void 0, void 0, void 0, void 0, qs.parameters, void 0, t.updateBlock(qs.body, Wd))), void 0, vs.arguments))));
    }
    function fe(ae) {
      return It(ae, !1);
    }
    function It(ae, lt) {
      if (ae.transformFlags & 32768 || ae.expression.kind === 106 || sd(hu(ae.expression))) {
        const { target: Mt, thisArg: Pt } = t.createCallBinding(ae.expression, l);
        ae.expression.kind === 106 && sr(Pt, 8);
        let un;
        if (ae.transformFlags & 32768 ? un = t.createFunctionApplyCall(D.checkDefined(ct(Mt, ie, yt)), ae.expression.kind === 106 ? Pt : D.checkDefined(ct(Pt, de, yt)), Q(ae.arguments, !0, !1, !1)) : un = mt(t.createFunctionCallCall(D.checkDefined(ct(Mt, ie, yt)), ae.expression.kind === 106 ? Pt : D.checkDefined(ct(Pt, de, yt)), Xn(ae.arguments, de, yt)), ae), ae.expression.kind === 106) {
          const jn = t.createLogicalOr(un, an());
          un = lt ? t.createAssignment(t.createUniqueName("_this", 48), jn) : jn;
        }
        return jr(un, ae);
      }
      return Gn(ae, de, e);
    }
    function jt(ae) {
      if (kt(ae.arguments, xh)) {
        const { target: lt, thisArg: Mt } = t.createCallBinding(t.createPropertyAccessExpression(ae.expression, "bind"), l);
        return t.createNewExpression(t.createFunctionApplyCall(D.checkDefined(ct(lt, de, yt)), Mt, Q(t.createNodeArray([t.createVoidZero(), ...ae.arguments]), !0, !1, !1)), void 0, []);
      }
      return Gn(ae, de, e);
    }
    function Q(ae, lt, Mt, Pt) {
      const un = ae.length, jn = id(C4(ae, ot, (Ga, Vo, vs, qs) => Vo(Ga, Mt, Pt && qs === un)));
      if (jn.length === 1) {
        const Ga = jn[0];
        if (lt && !f.downlevelIteration || fq(Ga.expression) || vk(Ga.expression, "___spreadArray"))
          return Ga.expression;
      }
      const Dr = r(), ei = jn[0].kind !== 0;
      let Oi = ei ? t.createArrayLiteralExpression() : jn[0].expression;
      for (let Ga = ei ? 0 : 1; Ga < jn.length; Ga++) {
        const Vo = jn[Ga];
        Oi = Dr.createSpreadArrayHelper(Oi, Vo.expression, Vo.kind === 1 && !lt);
      }
      return Oi;
    }
    function ot(ae) {
      return xh(ae) ? xt : wr;
    }
    function xt(ae) {
      return en(ae, pn);
    }
    function pn(ae) {
      D.assertNode(ae, xh);
      let lt = ct(ae.expression, de, yt);
      D.assert(lt);
      const Mt = vk(lt, "___read");
      let Pt = Mt || fq(lt) ? 2 : 1;
      return f.downlevelIteration && Pt === 1 && !Ou(lt) && !Mt && (lt = r().createReadHelper(lt, void 0), Pt = 2), dhe(Pt, lt);
    }
    function wr(ae, lt, Mt) {
      const Pt = t.createArrayLiteralExpression(Xn(t.createNodeArray(ae, Mt), de, yt), lt);
      return dhe(0, Pt);
    }
    function Or(ae) {
      return ct(ae.expression, de, yt);
    }
    function ya(ae) {
      return mt(t.createStringLiteral(ae.text), ae);
    }
    function as(ae) {
      return ae.hasExtendedUnicodeEscape ? mt(t.createStringLiteral(ae.text), ae) : ae;
    }
    function po(ae) {
      return ae.numericLiteralFlags & 384 ? mt(t.createNumericLiteral(ae.text), ae) : ae;
    }
    function Uo(ae) {
      return aX(e, ae, de, b, O, 1);
    }
    function Ka(ae) {
      let lt = t.createStringLiteral(ae.head.text);
      for (const Mt of ae.templateSpans) {
        const Pt = [D.checkDefined(ct(Mt.expression, de, yt))];
        Mt.literal.text.length > 0 && Pt.push(t.createStringLiteral(Mt.literal.text)), lt = t.createCallExpression(t.createPropertyAccessExpression(lt, "concat"), void 0, Pt);
      }
      return mt(lt, ae);
    }
    function uc(ae) {
      return L & 8 && !ae ? t.createPropertyAccessExpression(t.createUniqueName("_super", 48), "prototype") : t.createUniqueName("_super", 48);
    }
    function ll(ae) {
      return ae.keywordToken === 103 && ae.name.escapedText === "target" ? (L |= 32768, t.createUniqueName("_newTarget", 48)) : ae;
    }
    function ud(ae, lt, Mt) {
      if (B & 1 && qa(lt)) {
        const Pt = H(32670, go(lt) & 16 ? 81 : 65);
        h(ae, lt, Mt), te(Pt, 0, 0);
        return;
      }
      h(ae, lt, Mt);
    }
    function ys() {
      B & 2 || (B |= 2, e.enableSubstitution(79));
    }
    function cs() {
      B & 1 || (B |= 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 dc(ae, lt) {
      return lt = y(ae, lt), ae === 1 ? kf(lt) : Ve(lt) ? Hd(lt) : lt;
    }
    function Hd(ae) {
      if (B & 2 && !CJ(ae)) {
        const lt = ga(ae, Ve);
        if (lt && Vc(lt))
          return mt(t.getGeneratedNameForNode(lt), ae);
      }
      return ae;
    }
    function Vc(ae) {
      switch (ae.parent.kind) {
        case 205:
        case 260:
        case 263:
        case 257:
          return ae.parent.name === ae && d.isDeclarationWithCollidingName(ae.parent);
      }
      return !1;
    }
    function kf(ae) {
      switch (ae.kind) {
        case 79:
          return Se(ae);
        case 108:
          return On(ae);
      }
      return ae;
    }
    function Se(ae) {
      if (B & 2 && !CJ(ae)) {
        const lt = d.getReferencedDeclarationWithCollidingName(ae);
        if (lt && !(li(lt) && Dt(lt, ae)))
          return mt(t.getGeneratedNameForNode(Aa(lt)), ae);
      }
      return ae;
    }
    function Dt(ae, lt) {
      let Mt = ga(lt);
      if (!Mt || Mt === ae || Mt.end <= ae.pos || Mt.pos >= ae.end)
        return !1;
      const Pt = Nm(ae);
      for (; Mt; ) {
        if (Mt === Pt || Mt === ae)
          return !1;
        if (Ml(Mt) && Mt.parent === ae)
          return !0;
        Mt = Mt.parent;
      }
      return !1;
    }
    function On(ae) {
      return B & 1 && L & 16 ? mt(t.createUniqueName("_this", 48), ae) : ae;
    }
    function qi(ae, lt) {
      return za(lt) ? t.getInternalName(ae) : t.createPropertyAccessExpression(t.getInternalName(ae), "prototype");
    }
    function Ao(ae, lt) {
      if (!ae || !lt || kt(ae.parameters))
        return !1;
      const Mt = zl(ae.body.statements);
      if (!Mt || !Ys(Mt) || Mt.kind !== 241)
        return !1;
      const Pt = Mt.expression;
      if (!Ys(Pt) || Pt.kind !== 210)
        return !1;
      const un = Pt.expression;
      if (!Ys(un) || un.kind !== 106)
        return !1;
      const jn = Tm(Pt.arguments);
      if (!jn || !Ys(jn) || jn.kind !== 227)
        return !1;
      const Dr = jn.expression;
      return Ve(Dr) && Dr.escapedText === "arguments";
    }
  }
  var c3e = C({
    "src/compiler/transformers/es2015.ts"() {
      wa();
    }
  });
  function _he(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), J_(e, l);
    function l(A) {
      return A;
    }
    function f(A, L, I) {
      switch (L.kind) {
        case 283:
        case 284:
        case 282:
          const O = L.tagName;
          o[Ic(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), Mr(L) ? y(L) : Vl(L) ? h(L) : L);
    }
    function y(A) {
      if (Di(A.name))
        return A;
      const L = b(A.name);
      return L ? mt(t.createElementAccessExpression(A.expression, L), A) : A;
    }
    function h(A) {
      const L = Ve(A.name) && b(A.name);
      return L ? t.updatePropertyAssignment(A, L, A.initializer) : A;
    }
    function b(A) {
      const L = G0(A);
      if (L !== void 0 && L >= 81 && L <= 116)
        return mt(t.createStringLiteralFromNode(A), A);
    }
  }
  var l3e = C({
    "src/compiler/transformers/es5.ts"() {
      wa();
    }
  });
  function u3e(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 phe(e) {
    const {
      factory: t,
      getEmitHelperFactory: r,
      resumeLexicalEnvironment: i,
      endLexicalEnvironment: o,
      hoistFunctionDeclaration: s,
      hoistVariableDeclaration: l
    } = e, f = e.getCompilerOptions(), d = $o(f), y = e.getEmitResolver(), h = e.onSubstituteNode;
    e.onSubstituteNode = K;
    let b, A, L, I, O, k, B, V, H, te, X = 1, Y, P, de, ne, ye = 0, ie = 0, W, ce, pe, ve, Te, ee, $e, Ue;
    return J_(e, Be);
    function Be(Se) {
      if (Se.isDeclarationFile || !(Se.transformFlags & 2048))
        return Se;
      const Dt = Gn(Se, We, e);
      return yy(Dt, e.readEmitHelpers()), Dt;
    }
    function We(Se) {
      const Dt = Se.transformFlags;
      return I ? Oe(Se) : L ? Me(Se) : Xs(Se) && Se.asteriskToken ? He(Se) : Dt & 2048 ? Gn(Se, We, e) : Se;
    }
    function Oe(Se) {
      switch (Se.kind) {
        case 243:
          return Ar(Se);
        case 244:
          return ke(Se);
        case 252:
          return ln(Se);
        case 253:
          return Er(Se);
        default:
          return Me(Se);
      }
    }
    function Me(Se) {
      switch (Se.kind) {
        case 259:
          return Fe(Se);
        case 215:
          return st(Se);
        case 174:
        case 175:
          return Ct(Se);
        case 240:
          return Vt(Se);
        case 245:
          return Nt(Se);
        case 246:
          return _t(Se);
        case 249:
          return j(Se);
        case 248:
          return re(Se);
        case 250:
          return Qe(Se);
        default:
          return Se.transformFlags & 1048576 ? Xe(Se) : Se.transformFlags & 4196352 ? Gn(Se, We, e) : Se;
      }
    }
    function Xe(Se) {
      switch (Se.kind) {
        case 223:
          return tt(Se);
        case 357:
          return Pn(Se);
        case 224:
          return In(Se);
        case 226:
          return Yt(Se);
        case 206:
          return _r(Se);
        case 207:
          return Ki(Se);
        case 209:
          return Xi(Se);
        case 210:
          return Nr(Se);
        case 211:
          return At(Se);
        default:
          return Gn(Se, We, e);
      }
    }
    function He(Se) {
      switch (Se.kind) {
        case 259:
          return Fe(Se);
        case 215:
          return st(Se);
        default:
          return D.failBadSyntaxKind(Se);
      }
    }
    function Fe(Se) {
      if (Se.asteriskToken)
        Se = jr(mt(t.createFunctionDeclaration(Se.modifiers, void 0, Se.name, void 0, zc(Se.parameters, We, e), void 0, Et(Se.body)), Se), Se);
      else {
        const Dt = L, On = I;
        L = !1, I = !1, Se = Gn(Se, We, e), L = Dt, I = On;
      }
      if (L) {
        s(Se);
        return;
      } else
        return Se;
    }
    function st(Se) {
      if (Se.asteriskToken)
        Se = jr(mt(t.createFunctionExpression(void 0, void 0, Se.name, void 0, zc(Se.parameters, We, e), void 0, Et(Se.body)), Se), Se);
      else {
        const Dt = L, On = I;
        L = !1, I = !1, Se = Gn(Se, We, e), L = Dt, I = On;
      }
      return Se;
    }
    function Ct(Se) {
      const Dt = L, On = I;
      return L = !1, I = !1, Se = Gn(Se, We, e), L = Dt, I = On, Se;
    }
    function Et(Se) {
      const Dt = [], On = L, qi = I, Ao = O, ae = k, lt = B, Mt = V, Pt = H, un = te, jn = X, Dr = Y, ei = P, Oi = de, Ga = ne;
      L = !0, I = !1, O = void 0, k = void 0, B = void 0, V = void 0, H = void 0, te = void 0, X = 1, Y = void 0, P = void 0, de = void 0, ne = t.createTempVariable(void 0), i();
      const Vo = t.copyPrologue(Se.statements, Dt, !1, We);
      vn(Se.statements, Vo);
      const vs = Q();
      return Rm(Dt, o()), Dt.push(t.createReturnStatement(vs)), L = On, I = qi, O = Ao, k = ae, B = lt, V = Mt, H = Pt, te = un, X = jn, Y = Dr, P = ei, de = Oi, ne = Ga, mt(t.createBlock(Dt, Se.multiLine), Se);
    }
    function Vt(Se) {
      if (Se.transformFlags & 1048576) {
        pi(Se.declarationList);
        return;
      } else {
        if (go(Se) & 2097152)
          return Se;
        for (const On of Se.declarationList.declarations)
          l(On.name);
        const Dt = ZI(Se.declarationList);
        return Dt.length === 0 ? void 0 : ls(t.createExpressionStatement(t.inlineExpressions(en(Dt, Nn))), Se);
      }
    }
    function tt(Se) {
      const Dt = hz(Se);
      switch (Dt) {
        case 0:
          return an(Se);
        case 1:
          return at(Se);
        default:
          return D.assertNever(Dt);
      }
    }
    function at(Se) {
      const { left: Dt, right: On } = Se;
      if (Wt(On)) {
        let qi;
        switch (Dt.kind) {
          case 208:
            qi = t.updatePropertyAccessExpression(Dt, Re(D.checkDefined(ct(Dt.expression, We, vd))), Dt.name);
            break;
          case 209:
            qi = t.updateElementAccessExpression(Dt, Re(D.checkDefined(ct(Dt.expression, We, vd))), Re(D.checkDefined(ct(Dt.argumentExpression, We, yt))));
            break;
          default:
            qi = D.checkDefined(ct(Dt, We, yt));
            break;
        }
        const Ao = Se.operatorToken.kind;
        return y8(Ao) ? mt(t.createAssignment(qi, mt(t.createBinaryExpression(Re(qi), Xk(Ao), D.checkDefined(ct(On, We, yt))), Se)), Se) : t.updateBinaryExpression(Se, qi, Se.operatorToken, D.checkDefined(ct(On, We, yt)));
      }
      return Gn(Se, We, e);
    }
    function an(Se) {
      return Wt(Se.right) ? Jue(Se.operatorToken.kind) ? Wn(Se) : Se.operatorToken.kind === 27 ? Xt(Se) : t.updateBinaryExpression(Se, Re(D.checkDefined(ct(Se.left, We, yt))), Se.operatorToken, D.checkDefined(ct(Se.right, We, yt))) : Gn(Se, We, e);
    }
    function Xt(Se) {
      let Dt = [];
      return On(Se.left), On(Se.right), t.inlineExpressions(Dt);
      function On(qi) {
        br(qi) && qi.operatorToken.kind === 27 ? (On(qi.left), On(qi.right)) : (Wt(qi) && Dt.length > 0 && (jt(1, [t.createExpressionStatement(t.inlineExpressions(Dt))]), Dt = []), Dt.push(D.checkDefined(ct(qi, We, yt))));
      }
    }
    function Pn(Se) {
      let Dt = [];
      for (const On of Se.elements)
        br(On) && On.operatorToken.kind === 27 ? Dt.push(Xt(On)) : (Wt(On) && Dt.length > 0 && (jt(1, [t.createExpressionStatement(t.inlineExpressions(Dt))]), Dt = []), Dt.push(D.checkDefined(ct(On, We, yt))));
      return t.inlineExpressions(Dt);
    }
    function Wn(Se) {
      const Dt = Rt(), On = q();
      return mc(On, D.checkDefined(ct(Se.left, We, yt)), Se.left), Se.operatorToken.kind === 55 ? tn(Dt, On, Se.left) : zs(Dt, On, Se.left), mc(On, D.checkDefined(ct(Se.right, We, yt)), Se.right), ht(Dt), On;
    }
    function In(Se) {
      if (Wt(Se.whenTrue) || Wt(Se.whenFalse)) {
        const Dt = Rt(), On = Rt(), qi = q();
        return tn(Dt, D.checkDefined(ct(Se.condition, We, yt)), Se.condition), mc(qi, D.checkDefined(ct(Se.whenTrue, We, yt)), Se.whenTrue), $s(On), ht(Dt), mc(qi, D.checkDefined(ct(Se.whenFalse, We, yt)), Se.whenFalse), ht(On), qi;
      }
      return Gn(Se, We, e);
    }
    function Yt(Se) {
      const Dt = Rt(), On = ct(Se.expression, We, yt);
      if (Se.asteriskToken) {
        const qi = go(Se.expression) & 16777216 ? On : mt(r().createValuesHelper(On), Se);
        Uc(qi, Se);
      } else
        bu(On, Se);
      return ht(Dt), rl(Se);
    }
    function _r(Se) {
      return Ai(Se.elements, void 0, void 0, Se.multiLine);
    }
    function Ai(Se, Dt, On, qi) {
      const Ao = it(Se);
      let ae;
      if (Ao > 0) {
        ae = q();
        const Pt = Xn(Se, We, yt, 0, Ao);
        mc(ae, t.createArrayLiteralExpression(Dt ? [Dt, ...Pt] : Pt)), Dt = void 0;
      }
      const lt = Iu(Se, Mt, [], Ao);
      return ae ? t.createArrayConcatCall(ae, [t.createArrayLiteralExpression(lt, qi)]) : mt(t.createArrayLiteralExpression(Dt ? [Dt, ...lt] : lt, qi), On);
      function Mt(Pt, un) {
        if (Wt(un) && Pt.length > 0) {
          const jn = ae !== void 0;
          ae || (ae = q()), mc(ae, jn ? t.createArrayConcatCall(ae, [t.createArrayLiteralExpression(Pt, qi)]) : t.createArrayLiteralExpression(Dt ? [Dt, ...Pt] : Pt, qi)), Dt = void 0, Pt = [];
        }
        return Pt.push(D.checkDefined(ct(un, We, yt))), Pt;
      }
    }
    function Ki(Se) {
      const Dt = Se.properties, On = Se.multiLine, qi = it(Dt), Ao = q();
      mc(Ao, t.createObjectLiteralExpression(Xn(Dt, We, fy, 0, qi), On));
      const ae = Iu(Dt, lt, [], qi);
      return ae.push(On ? Fu(Bo(mt(t.cloneNode(Ao), Ao), Ao.parent)) : Ao), t.inlineExpressions(ae);
      function lt(Mt, Pt) {
        Wt(Pt) && Mt.length > 0 && (Is(t.createExpressionStatement(t.inlineExpressions(Mt))), Mt = []);
        const un = $fe(t, Se, Pt, Ao), jn = ct(un, We, yt);
        return jn && (On && Fu(jn), Mt.push(jn)), Mt;
      }
    }
    function Xi(Se) {
      return Wt(Se.argumentExpression) ? t.updateElementAccessExpression(Se, Re(D.checkDefined(ct(Se.expression, We, vd))), D.checkDefined(ct(Se.argumentExpression, We, yt))) : Gn(Se, We, e);
    }
    function Nr(Se) {
      if (!rf(Se) && ze(Se.arguments, Wt)) {
        const { target: Dt, thisArg: On } = t.createCallBinding(Se.expression, l, d, !0);
        return jr(mt(t.createFunctionApplyCall(Re(D.checkDefined(ct(Dt, We, vd))), On, Ai(Se.arguments)), Se), Se);
      }
      return Gn(Se, We, e);
    }
    function At(Se) {
      if (ze(Se.arguments, Wt)) {
        const { target: Dt, thisArg: On } = t.createCallBinding(t.createPropertyAccessExpression(Se.expression, "bind"), l);
        return jr(mt(t.createNewExpression(t.createFunctionApplyCall(Re(D.checkDefined(ct(Dt, We, yt))), On, Ai(Se.arguments, t.createVoidZero())), void 0, []), Se), Se);
      }
      return Gn(Se, We, e);
    }
    function vn(Se, Dt = 0) {
      const On = Se.length;
      for (let qi = Dt; qi < On; qi++)
        dn(Se[qi]);
    }
    function Ht(Se) {
      oo(Se) ? vn(Se.statements) : dn(Se);
    }
    function dn(Se) {
      const Dt = I;
      I || (I = Wt(Se)), ir(Se), I = Dt;
    }
    function ir(Se) {
      switch (Se.kind) {
        case 238:
          return lr(Se);
        case 241:
          return Ni(Se);
        case 242:
          return nn(Se);
        case 243:
          return Mn(Se);
        case 244:
          return Vr(Se);
        case 245:
          return gt(Se);
        case 246:
          return xe(Se);
        case 248:
          return _e(Se);
        case 249:
          return he(Se);
        case 250:
          return je(Se);
        case 251:
          return Ke(Se);
        case 252:
          return Ut(Se);
        case 253:
          return Sn(Se);
        case 254:
          return ue(Se);
        case 255:
          return pt(Se);
        default:
          return Is(ct(Se, We, Ca));
      }
    }
    function lr(Se) {
      Wt(Se) ? vn(Se.statements) : Is(ct(Se, We, Ca));
    }
    function Ni(Se) {
      Is(ct(Se, We, Ca));
    }
    function pi(Se) {
      for (const ae of Se.declarations) {
        const lt = t.cloneNode(ae.name);
        Gl(lt, ae.name), l(lt);
      }
      const Dt = ZI(Se), On = Dt.length;
      let qi = 0, Ao = [];
      for (; qi < On; ) {
        for (let ae = qi; ae < On; ae++) {
          const lt = Dt[ae];
          if (Wt(lt.initializer) && Ao.length > 0)
            break;
          Ao.push(Nn(lt));
        }
        Ao.length && (Is(t.createExpressionStatement(t.inlineExpressions(Ao))), qi += Ao.length, Ao = []);
      }
    }
    function Nn(Se) {
      return ls(t.createAssignment(ls(t.cloneNode(Se.name), Se.name), D.checkDefined(ct(Se.initializer, We, yt))), Se);
    }
    function nn(Se) {
      if (Wt(Se))
        if (Wt(Se.thenStatement) || Wt(Se.elseStatement)) {
          const Dt = Rt(), On = Se.elseStatement ? Rt() : void 0;
          tn(Se.elseStatement ? On : Dt, D.checkDefined(ct(Se.expression, We, yt)), Se.expression), Ht(Se.thenStatement), Se.elseStatement && ($s(Dt), ht(On), Ht(Se.elseStatement)), ht(Dt);
        } else
          Is(ct(Se, We, Ca));
      else
        Is(ct(Se, We, Ca));
    }
    function Mn(Se) {
      if (Wt(Se)) {
        const Dt = Rt(), On = Rt();
        Ui(Dt), ht(On), Ht(Se.statement), ht(Dt), zs(On, D.checkDefined(ct(Se.expression, We, yt))), Jr();
      } else
        Is(ct(Se, We, Ca));
    }
    function Ar(Se) {
      return I ? (sa(), Se = Gn(Se, We, e), Jr(), Se) : Gn(Se, We, e);
    }
    function Vr(Se) {
      if (Wt(Se)) {
        const Dt = Rt(), On = Ui(Dt);
        ht(Dt), tn(On, D.checkDefined(ct(Se.expression, We, yt))), Ht(Se.statement), $s(Dt), Jr();
      } else
        Is(ct(Se, We, Ca));
    }
    function ke(Se) {
      return I ? (sa(), Se = Gn(Se, We, e), Jr(), Se) : Gn(Se, We, e);
    }
    function gt(Se) {
      if (Wt(Se)) {
        const Dt = Rt(), On = Rt(), qi = Ui(On);
        if (Se.initializer) {
          const Ao = Se.initializer;
          Mu(Ao) ? pi(Ao) : Is(mt(t.createExpressionStatement(D.checkDefined(ct(Ao, We, yt))), Ao));
        }
        ht(Dt), Se.condition && tn(qi, D.checkDefined(ct(Se.condition, We, yt))), Ht(Se.statement), ht(On), Se.incrementor && Is(mt(t.createExpressionStatement(D.checkDefined(ct(Se.incrementor, We, yt))), Se.incrementor)), $s(Dt), Jr();
      } else
        Is(ct(Se, We, Ca));
    }
    function Nt(Se) {
      I && sa();
      const Dt = Se.initializer;
      if (Dt && Mu(Dt)) {
        for (const qi of Dt.declarations)
          l(qi.name);
        const On = ZI(Dt);
        Se = t.updateForStatement(Se, On.length > 0 ? t.inlineExpressions(en(On, Nn)) : void 0, ct(Se.condition, We, yt), ct(Se.incrementor, We, yt), g_(Se.statement, We, e));
      } else
        Se = Gn(Se, We, e);
      return I && Jr(), Se;
    }
    function xe(Se) {
      if (Wt(Se)) {
        const Dt = q(), On = q(), qi = q(), Ao = t.createLoopVariable(), ae = Se.initializer;
        l(Ao), mc(Dt, D.checkDefined(ct(Se.expression, We, yt))), mc(On, t.createArrayLiteralExpression()), Is(t.createForInStatement(qi, Dt, t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(On, "push"), void 0, [qi])))), mc(Ao, t.createNumericLiteral(0));
        const lt = Rt(), Mt = Rt(), Pt = Ui(Mt);
        ht(lt), tn(Pt, t.createLessThan(Ao, t.createPropertyAccessExpression(On, "length"))), mc(qi, t.createElementAccessExpression(On, Ao)), tn(Mt, t.createBinaryExpression(qi, 101, Dt));
        let un;
        if (Mu(ae)) {
          for (const jn of ae.declarations)
            l(jn.name);
          un = t.cloneNode(ae.declarations[0].name);
        } else
          un = D.checkDefined(ct(ae, We, yt)), D.assert(vd(un));
        mc(un, qi), Ht(Se.statement), ht(Mt), Is(t.createExpressionStatement(t.createPostfixIncrement(Ao))), $s(lt), Jr();
      } else
        Is(ct(Se, We, Ca));
    }
    function _t(Se) {
      I && sa();
      const Dt = Se.initializer;
      if (Mu(Dt)) {
        for (const On of Dt.declarations)
          l(On.name);
        Se = t.updateForInStatement(Se, Dt.declarations[0].name, D.checkDefined(ct(Se.expression, We, yt)), D.checkDefined(ct(Se.statement, We, Ca, t.liftToBlock)));
      } else
        Se = Gn(Se, We, e);
      return I && Jr(), Se;
    }
    function _e(Se) {
      const Dt = Sa(Se.label ? Pr(Se.label) : void 0);
      Dt > 0 ? $s(Dt, Se) : Is(Se);
    }
    function re(Se) {
      if (I) {
        const Dt = Sa(Se.label && Pr(Se.label));
        if (Dt > 0)
          return Yl(Dt, Se);
      }
      return Gn(Se, We, e);
    }
    function he(Se) {
      const Dt = xo(Se.label ? Pr(Se.label) : void 0);
      Dt > 0 ? $s(Dt, Se) : Is(Se);
    }
    function j(Se) {
      if (I) {
        const Dt = xo(Se.label && Pr(Se.label));
        if (Dt > 0)
          return Yl(Dt, Se);
      }
      return Gn(Se, We, e);
    }
    function je(Se) {
      Uu(ct(Se.expression, We, yt), Se);
    }
    function Qe(Se) {
      return jd(ct(Se.expression, We, yt), Se);
    }
    function Ke(Se) {
      Wt(Se) ? (Si(Re(D.checkDefined(ct(Se.expression, We, yt)))), Ht(Se.statement), xi()) : Is(ct(Se, We, Ca));
    }
    function Ut(Se) {
      if (Wt(Se.caseBlock)) {
        const Dt = Se.caseBlock, On = Dt.clauses.length, qi = di(), Ao = Re(D.checkDefined(ct(Se.expression, We, yt))), ae = [];
        let lt = -1;
        for (let un = 0; un < On; un++) {
          const jn = Dt.clauses[un];
          ae.push(Rt()), jn.kind === 293 && lt === -1 && (lt = un);
        }
        let Mt = 0, Pt = [];
        for (; Mt < On; ) {
          let un = 0;
          for (let jn = Mt; jn < On; jn++) {
            const Dr = Dt.clauses[jn];
            if (Dr.kind === 292) {
              if (Wt(Dr.expression) && Pt.length > 0)
                break;
              Pt.push(t.createCaseClause(D.checkDefined(ct(Dr.expression, We, yt)), [
                Yl(ae[jn], Dr.expression)
              ]));
            } else
              un++;
          }
          Pt.length && (Is(t.createSwitchStatement(Ao, t.createCaseBlock(Pt))), Mt += Pt.length, Pt = []), un > 0 && (Mt += un, un = 0);
        }
        lt >= 0 ? $s(ae[lt]) : $s(qi);
        for (let un = 0; un < On; un++)
          ht(ae[un]), vn(Dt.clauses[un].statements);
        ca();
      } else
        Is(ct(Se, We, Ca));
    }
    function ln(Se) {
      return I && is(), Se = Gn(Se, We, e), I && ca(), Se;
    }
    function Sn(Se) {
      Wt(Se) ? (ua(Pr(Se.label)), Ht(Se.statement), $c()) : Is(ct(Se, We, Ca));
    }
    function Er(Se) {
      return I && wn(Pr(Se.label)), Se = Gn(Se, We, e), I && $c(), Se;
    }
    function ue(Se) {
      var Dt;
      fe(D.checkDefined(ct((Dt = Se.expression) != null ? Dt : t.createVoidZero(), We, yt)), Se);
    }
    function pt(Se) {
      Wt(Se) ? (Gi(), Ht(Se.tryBlock), Se.catchClause && (_o(Se.catchClause.variableDeclaration), Ht(Se.catchClause.block)), Se.finallyBlock && (bo(), Ht(Se.finallyBlock)), no()) : Is(Gn(Se, We, e));
    }
    function Wt(Se) {
      return !!Se && (Se.transformFlags & 1048576) !== 0;
    }
    function it(Se) {
      const Dt = Se.length;
      for (let On = 0; On < Dt; On++)
        if (Wt(Se[On]))
          return On;
      return -1;
    }
    function K(Se, Dt) {
      return Dt = h(Se, Dt), Se === 1 ? Pe(Dt) : Dt;
    }
    function Pe(Se) {
      return Ve(Se) ? Z(Se) : Se;
    }
    function Z(Se) {
      if (!Tc(Se) && b && b.has(Pr(Se))) {
        const Dt = Ec(Se);
        if (Ve(Dt) && Dt.parent) {
          const On = y.getReferencedValueDeclaration(Dt);
          if (On) {
            const qi = A[Ic(On)];
            if (qi) {
              const Ao = Bo(mt(t.cloneNode(qi), qi), qi.parent);
              return ls(Ao, Se), Gl(Ao, Se), Ao;
            }
          }
        }
      }
      return Se;
    }
    function Re(Se) {
      if (Tc(Se) || go(Se) & 8192)
        return Se;
      const Dt = t.createTempVariable(l);
      return mc(Dt, Se, Se), Dt;
    }
    function q(Se) {
      const Dt = Se ? t.createUniqueName(Se) : t.createTempVariable(void 0);
      return l(Dt), Dt;
    }
    function Rt() {
      H || (H = []);
      const Se = X;
      return X++, H[Se] = -1, Se;
    }
    function ht(Se) {
      D.assert(H !== void 0, "No labels were defined."), H[Se] = Y ? Y.length : 0;
    }
    function dt(Se) {
      O || (O = [], B = [], k = [], V = []);
      const Dt = B.length;
      return B[Dt] = 0, k[Dt] = Y ? Y.length : 0, O[Dt] = Se, V.push(Se), Dt;
    }
    function fn() {
      const Se = Qn();
      if (Se === void 0)
        return D.fail("beginBlock was never called.");
      const Dt = B.length;
      return B[Dt] = 1, k[Dt] = Y ? Y.length : 0, O[Dt] = Se, V.pop(), Se;
    }
    function Qn() {
      return ec(V);
    }
    function ai() {
      const Se = Qn();
      return Se && Se.kind;
    }
    function Si(Se) {
      const Dt = Rt(), On = Rt();
      ht(Dt), dt({
        kind: 1,
        expression: Se,
        startLabel: Dt,
        endLabel: On
      });
    }
    function xi() {
      D.assert(ai() === 1);
      const Se = fn();
      ht(Se.endLabel);
    }
    function Gi() {
      const Se = Rt(), Dt = Rt();
      return ht(Se), dt({
        kind: 0,
        state: 0,
        startLabel: Se,
        endLabel: Dt
      }), Hl(), Dt;
    }
    function _o(Se) {
      D.assert(ai() === 0);
      let Dt;
      if (Tc(Se.name))
        Dt = Se.name, l(Se.name);
      else {
        const ae = Pr(Se.name);
        Dt = q(ae), b || (b = /* @__PURE__ */ new Map(), A = [], e.enableSubstitution(79)), b.set(ae, !0), A[Ic(Se)] = Dt;
      }
      const On = Qn();
      D.assert(On.state < 1);
      const qi = On.endLabel;
      $s(qi);
      const Ao = Rt();
      ht(Ao), On.state = 1, On.catchVariable = Dt, On.catchLabel = Ao, mc(Dt, t.createCallExpression(t.createPropertyAccessExpression(ne, "sent"), void 0, [])), Hl();
    }
    function bo() {
      D.assert(ai() === 0);
      const Se = Qn();
      D.assert(Se.state < 2);
      const Dt = Se.endLabel;
      $s(Dt);
      const On = Rt();
      ht(On), Se.state = 2, Se.finallyLabel = On;
    }
    function no() {
      D.assert(ai() === 0);
      const Se = fn();
      Se.state < 2 ? $s(Se.endLabel) : It(), ht(Se.endLabel), Hl(), Se.state = 3;
    }
    function sa() {
      dt({
        kind: 3,
        isScript: !0,
        breakLabel: -1,
        continueLabel: -1
      });
    }
    function Ui(Se) {
      const Dt = Rt();
      return dt({
        kind: 3,
        isScript: !1,
        breakLabel: Dt,
        continueLabel: Se
      }), Dt;
    }
    function Jr() {
      D.assert(ai() === 3);
      const Se = fn(), Dt = Se.breakLabel;
      Se.isScript || ht(Dt);
    }
    function is() {
      dt({
        kind: 2,
        isScript: !0,
        breakLabel: -1
      });
    }
    function di() {
      const Se = Rt();
      return dt({
        kind: 2,
        isScript: !1,
        breakLabel: Se
      }), Se;
    }
    function ca() {
      D.assert(ai() === 2);
      const Se = fn(), Dt = Se.breakLabel;
      Se.isScript || ht(Dt);
    }
    function wn(Se) {
      dt({
        kind: 4,
        isScript: !0,
        labelText: Se,
        breakLabel: -1
      });
    }
    function ua(Se) {
      const Dt = Rt();
      dt({
        kind: 4,
        isScript: !1,
        labelText: Se,
        breakLabel: Dt
      });
    }
    function $c() {
      D.assert(ai() === 4);
      const Se = fn();
      Se.isScript || ht(Se.breakLabel);
    }
    function nc(Se) {
      return Se.kind === 2 || Se.kind === 3;
    }
    function Fc(Se) {
      return Se.kind === 4;
    }
    function qc(Se) {
      return Se.kind === 3;
    }
    function Bc(Se, Dt) {
      for (let On = Dt; On >= 0; On--) {
        const qi = V[On];
        if (Fc(qi)) {
          if (qi.labelText === Se)
            return !0;
        } else
          break;
      }
      return !1;
    }
    function xo(Se) {
      if (V)
        if (Se)
          for (let Dt = V.length - 1; Dt >= 0; Dt--) {
            const On = V[Dt];
            if (Fc(On) && On.labelText === Se)
              return On.breakLabel;
            if (nc(On) && Bc(Se, Dt - 1))
              return On.breakLabel;
          }
        else
          for (let Dt = V.length - 1; Dt >= 0; Dt--) {
            const On = V[Dt];
            if (nc(On))
              return On.breakLabel;
          }
      return 0;
    }
    function Sa(Se) {
      if (V)
        if (Se)
          for (let Dt = V.length - 1; Dt >= 0; Dt--) {
            const On = V[Dt];
            if (qc(On) && Bc(Se, Dt - 1))
              return On.continueLabel;
          }
        else
          for (let Dt = V.length - 1; Dt >= 0; Dt--) {
            const On = V[Dt];
            if (qc(On))
              return On.continueLabel;
          }
      return 0;
    }
    function Jo(Se) {
      if (Se !== void 0 && Se > 0) {
        te === void 0 && (te = []);
        const Dt = t.createNumericLiteral(-1);
        return te[Se] === void 0 ? te[Se] = [Dt] : te[Se].push(Dt), Dt;
      }
      return t.createOmittedExpression();
    }
    function Gc(Se) {
      const Dt = t.createNumericLiteral(Se);
      return Y3(Dt, 3, u3e(Se)), Dt;
    }
    function Yl(Se, Dt) {
      return D.assertLessThan(0, Se, "Invalid label"), mt(t.createReturnStatement(t.createArrayLiteralExpression([
        Gc(3),
        Jo(Se)
      ])), Dt);
    }
    function jd(Se, Dt) {
      return mt(t.createReturnStatement(t.createArrayLiteralExpression(Se ? [Gc(2), Se] : [Gc(2)])), Dt);
    }
    function rl(Se) {
      return mt(t.createCallExpression(t.createPropertyAccessExpression(ne, "sent"), void 0, []), Se);
    }
    function Hl() {
      jt(0);
    }
    function Is(Se) {
      Se ? jt(1, [Se]) : Hl();
    }
    function mc(Se, Dt, On) {
      jt(2, [Se, Dt], On);
    }
    function $s(Se, Dt) {
      jt(3, [Se], Dt);
    }
    function zs(Se, Dt, On) {
      jt(4, [Se, Dt], On);
    }
    function tn(Se, Dt, On) {
      jt(5, [Se, Dt], On);
    }
    function Uc(Se, Dt) {
      jt(7, [Se], Dt);
    }
    function bu(Se, Dt) {
      jt(6, [Se], Dt);
    }
    function Uu(Se, Dt) {
      jt(8, [Se], Dt);
    }
    function fe(Se, Dt) {
      jt(9, [Se], Dt);
    }
    function It() {
      jt(10);
    }
    function jt(Se, Dt, On) {
      Y === void 0 && (Y = [], P = [], de = []), H === void 0 && ht(Rt());
      const qi = Y.length;
      Y[qi] = Se, P[qi] = Dt, de[qi] = On;
    }
    function Q() {
      ye = 0, ie = 0, W = void 0, ce = !1, pe = !1, ve = void 0, Te = void 0, ee = void 0, $e = void 0, Ue = void 0;
      const Se = ot();
      return r().createGeneratorHelper(sr(t.createFunctionExpression(void 0, void 0, void 0, void 0, [t.createParameterDeclaration(void 0, void 0, ne)], void 0, t.createBlock(Se, Se.length > 0)), 1048576));
    }
    function ot() {
      if (Y) {
        for (let Se = 0; Se < Y.length; Se++)
          Uo(Se);
        pn(Y.length);
      } else
        pn(0);
      if (ve) {
        const Se = t.createPropertyAccessExpression(ne, "label"), Dt = t.createSwitchStatement(Se, t.createCaseBlock(ve));
        return [Fu(Dt)];
      }
      return Te || [];
    }
    function xt() {
      Te && (Or(!ce), ce = !1, pe = !1, ie++);
    }
    function pn(Se) {
      wr(Se) && (ya(Se), Ue = void 0, ud(void 0, void 0)), Te && ve && Or(!1), as();
    }
    function wr(Se) {
      if (!pe)
        return !0;
      if (!H || !te)
        return !1;
      for (let Dt = 0; Dt < H.length; Dt++)
        if (H[Dt] === Se && te[Dt])
          return !0;
      return !1;
    }
    function Or(Se) {
      if (ve || (ve = []), Te) {
        if (Ue)
          for (let Dt = Ue.length - 1; Dt >= 0; Dt--) {
            const On = Ue[Dt];
            Te = [t.createWithStatement(On.expression, t.createBlock(Te))];
          }
        if ($e) {
          const { startLabel: Dt, catchLabel: On, finallyLabel: qi, endLabel: Ao } = $e;
          Te.unshift(t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(t.createPropertyAccessExpression(ne, "trys"), "push"), void 0, [
            t.createArrayLiteralExpression([
              Jo(Dt),
              Jo(On),
              Jo(qi),
              Jo(Ao)
            ])
          ]))), $e = void 0;
        }
        Se && Te.push(t.createExpressionStatement(t.createAssignment(t.createPropertyAccessExpression(ne, "label"), t.createNumericLiteral(ie + 1))));
      }
      ve.push(t.createCaseClause(t.createNumericLiteral(ie), Te || [])), Te = void 0;
    }
    function ya(Se) {
      if (H)
        for (let Dt = 0; Dt < H.length; Dt++)
          H[Dt] === Se && (xt(), W === void 0 && (W = []), W[ie] === void 0 ? W[ie] = [Dt] : W[ie].push(Dt));
    }
    function as() {
      if (te !== void 0 && W !== void 0)
        for (let Se = 0; Se < W.length; Se++) {
          const Dt = W[Se];
          if (Dt !== void 0)
            for (const On of Dt) {
              const qi = te[On];
              if (qi !== void 0)
                for (const Ao of qi)
                  Ao.text = String(Se);
            }
        }
    }
    function po(Se) {
      if (O)
        for (; ye < B.length && k[ye] <= Se; ye++) {
          const Dt = O[ye], On = B[ye];
          switch (Dt.kind) {
            case 0:
              On === 0 ? (ee || (ee = []), Te || (Te = []), ee.push($e), $e = Dt) : On === 1 && ($e = ee.pop());
              break;
            case 1:
              On === 0 ? (Ue || (Ue = []), Ue.push(Dt)) : On === 1 && Ue.pop();
              break;
          }
        }
    }
    function Uo(Se) {
      if (ya(Se), po(Se), ce)
        return;
      ce = !1, pe = !1;
      const Dt = Y[Se];
      if (Dt === 0)
        return;
      if (Dt === 10)
        return kf();
      const On = P[Se];
      if (Dt === 1)
        return Ka(On[0]);
      const qi = de[Se];
      switch (Dt) {
        case 2:
          return uc(On[0], On[1], qi);
        case 3:
          return ys(On[0], qi);
        case 4:
          return cs(On[0], On[1], qi);
        case 5:
          return dc(On[0], On[1], qi);
        case 6:
          return Hd(On[0], qi);
        case 7:
          return Vc(On[0], qi);
        case 8:
          return ud(On[0], qi);
        case 9:
          return ll(On[0], qi);
      }
    }
    function Ka(Se) {
      Se && (Te ? Te.push(Se) : Te = [Se]);
    }
    function uc(Se, Dt, On) {
      Ka(mt(t.createExpressionStatement(t.createAssignment(Se, Dt)), On));
    }
    function ll(Se, Dt) {
      ce = !0, pe = !0, Ka(mt(t.createThrowStatement(Se), Dt));
    }
    function ud(Se, Dt) {
      ce = !0, pe = !0, Ka(sr(mt(t.createReturnStatement(t.createArrayLiteralExpression(Se ? [Gc(2), Se] : [Gc(2)])), Dt), 768));
    }
    function ys(Se, Dt) {
      ce = !0, Ka(sr(mt(t.createReturnStatement(t.createArrayLiteralExpression([
        Gc(3),
        Jo(Se)
      ])), Dt), 768));
    }
    function cs(Se, Dt, On) {
      Ka(sr(t.createIfStatement(Dt, sr(mt(t.createReturnStatement(t.createArrayLiteralExpression([
        Gc(3),
        Jo(Se)
      ])), On), 768)), 1));
    }
    function dc(Se, Dt, On) {
      Ka(sr(t.createIfStatement(t.createLogicalNot(Dt), sr(mt(t.createReturnStatement(t.createArrayLiteralExpression([
        Gc(3),
        Jo(Se)
      ])), On), 768)), 1));
    }
    function Hd(Se, Dt) {
      ce = !0, Ka(sr(mt(t.createReturnStatement(t.createArrayLiteralExpression(Se ? [Gc(4), Se] : [Gc(4)])), Dt), 768));
    }
    function Vc(Se, Dt) {
      ce = !0, Ka(sr(mt(t.createReturnStatement(t.createArrayLiteralExpression([
        Gc(5),
        Se
      ])), Dt), 768));
    }
    function kf() {
      ce = !0, Ka(t.createReturnStatement(t.createArrayLiteralExpression([
        Gc(7)
      ])));
    }
  }
  var d3e = C({
    "src/compiler/transformers/generators.ts"() {
      wa();
    }
  });
  function lX(e) {
    function t(re) {
      switch (re) {
        case 2:
          return P;
        case 3:
          return de;
        default:
          return Y;
      }
    }
    const {
      factory: r,
      getEmitHelperFactory: i,
      startLexicalEnvironment: o,
      endLexicalEnvironment: s,
      hoistVariableDeclaration: l
    } = e, f = e.getCompilerOptions(), d = e.getEmitResolver(), y = e.getEmitHost(), h = $o(f), b = tu(f), A = e.onSubstituteNode, L = e.onEmitNode;
    e.onSubstituteNode = Ar, e.onEmitNode = Mn, e.enableSubstitution(210), e.enableSubstitution(212), e.enableSubstitution(79), e.enableSubstitution(223), e.enableSubstitution(300), e.enableEmitNotification(308);
    const I = [], O = [];
    let k, B;
    const V = [];
    let H;
    return J_(e, te);
    function te(re) {
      if (re.isDeclarationFile || !($S(re, f) || re.transformFlags & 8388608 || d_(re) && L3(f) && Hs(f)))
        return re;
      k = re, B = YK(e, re, d, f), I[Ic(re)] = B;
      const j = t(b)(re);
      return k = void 0, B = void 0, H = !1, j;
    }
    function X() {
      return !!(!B.exportEquals && Yc(k));
    }
    function Y(re) {
      o();
      const he = [], j = m_(f, "alwaysStrict") || !f.noImplicitUseStrict && Yc(k), je = r.copyPrologue(re.statements, he, j && !d_(re), ce);
      if (X() && Bn(he, Ni()), Ie(B.exportedNames))
        for (let Ut = 0; Ut < B.exportedNames.length; Ut += 50)
          Bn(he, r.createExpressionStatement(Iu(B.exportedNames.slice(Ut, Ut + 50), (ln, Sn) => r.createAssignment(r.createPropertyAccessExpression(r.createIdentifier("exports"), r.createIdentifier(Pr(Sn))), ln), r.createVoidZero())));
      Bn(he, ct(B.externalHelpersImportDeclaration, ce, Ca)), bi(he, Xn(re.statements, ce, Ca, je)), W(he, !1), Rm(he, s());
      const Qe = r.updateSourceFile(re, mt(r.createNodeArray(he), re.statements));
      return yy(Qe, e.readEmitHelpers()), Qe;
    }
    function P(re) {
      const he = r.createIdentifier("define"), j = MO(r, re, y, f), je = d_(re) && re, { aliasedModuleNames: Qe, unaliasedModuleNames: Ke, importAliasNames: Ut } = ne(re, !0), ln = r.updateSourceFile(re, mt(r.createNodeArray([
        r.createExpressionStatement(r.createCallExpression(he, void 0, [
          ...j ? [j] : [],
          r.createArrayLiteralExpression(je ? rt : [
            r.createStringLiteral("require"),
            r.createStringLiteral("exports"),
            ...Qe,
            ...Ke
          ]),
          je ? je.statements.length ? je.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, ie(re))
        ]))
      ]), re.statements));
      return yy(ln, e.readEmitHelpers()), ln;
    }
    function de(re) {
      const { aliasedModuleNames: he, unaliasedModuleNames: j, importAliasNames: je } = ne(re, !1), Qe = MO(r, re, y, f), Ke = r.createFunctionExpression(void 0, void 0, void 0, void 0, [r.createParameterDeclaration(void 0, void 0, "factory")], void 0, mt(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")
            ]))
          ]),
          sr(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, [
            ...Qe ? [Qe] : [],
            r.createArrayLiteralExpression([
              r.createStringLiteral("require"),
              r.createStringLiteral("exports"),
              ...he,
              ...j
            ]),
            r.createIdentifier("factory")
          ]))
        ])))
      ], !0), void 0)), Ut = r.updateSourceFile(re, mt(r.createNodeArray([
        r.createExpressionStatement(r.createCallExpression(Ke, 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"),
            ...je
          ], void 0, ie(re))
        ]))
      ]), re.statements));
      return yy(Ut, e.readEmitHelpers()), Ut;
    }
    function ne(re, he) {
      const j = [], je = [], Qe = [];
      for (const Ke of re.amdDependencies)
        Ke.name ? (j.push(r.createStringLiteral(Ke.path)), Qe.push(r.createParameterDeclaration(void 0, void 0, Ke.name))) : je.push(r.createStringLiteral(Ke.path));
      for (const Ke of B.externalImports) {
        const Ut = Ox(r, Ke, k, y, d, f), ln = CC(r, Ke, k);
        Ut && (he && ln ? (sr(ln, 8), j.push(Ut), Qe.push(r.createParameterDeclaration(void 0, void 0, ln))) : je.push(Ut));
      }
      return { aliasedModuleNames: j, unaliasedModuleNames: je, importAliasNames: Qe };
    }
    function ye(re) {
      if (ru(re) || Xl(re) || !Ox(r, re, k, y, d, f))
        return;
      const he = CC(r, re, k), j = Et(re, he);
      if (j !== he)
        return r.createExpressionStatement(r.createAssignment(he, j));
    }
    function ie(re) {
      o();
      const he = [], j = r.copyPrologue(re.statements, he, !f.noImplicitUseStrict, ce);
      X() && Bn(he, Ni()), Ie(B.exportedNames) && Bn(he, r.createExpressionStatement(Iu(B.exportedNames, (Qe, Ke) => r.createAssignment(r.createPropertyAccessExpression(r.createIdentifier("exports"), r.createIdentifier(Pr(Ke))), Qe), r.createVoidZero()))), Bn(he, ct(B.externalHelpersImportDeclaration, ce, Ca)), b === 2 && bi(he, fa(B.externalImports, ye)), bi(he, Xn(re.statements, ce, Ca, j)), W(he, !0), Rm(he, s());
      const je = r.createBlock(he, !0);
      return H && hx(je, mhe), je;
    }
    function W(re, he) {
      if (B.exportEquals) {
        const j = ct(B.exportEquals.expression, ve, yt);
        if (j)
          if (he) {
            const je = r.createReturnStatement(j);
            mt(je, B.exportEquals), sr(je, 3840), re.push(je);
          } else {
            const je = r.createExpressionStatement(r.createAssignment(r.createPropertyAccessExpression(r.createIdentifier("module"), "exports"), j));
            mt(je, B.exportEquals), sr(je, 3072), re.push(je);
          }
      }
    }
    function ce(re) {
      switch (re.kind) {
        case 269:
          return Vt(re);
        case 268:
          return at(re);
        case 275:
          return an(re);
        case 274:
          return Xt(re);
        case 240:
          return In(re);
        case 259:
          return Pn(re);
        case 260:
          return Wn(re);
        case 358:
          return Ai(re);
        case 359:
          return Xi(re);
        default:
          return ve(re);
      }
    }
    function pe(re, he) {
      if (!(re.transformFlags & 276828160))
        return re;
      switch (re.kind) {
        case 245:
          return Ue(re);
        case 241:
          return Be(re);
        case 214:
          return We(re, he);
        case 356:
          return Oe(re, he);
        case 210:
          if (rf(re) && k.impliedNodeFormat === void 0)
            return Xe(re);
          break;
        case 223:
          if (hy(re))
            return $e(re, he);
          break;
        case 221:
        case 222:
          return Me(re, he);
      }
      return Gn(re, ve, e);
    }
    function ve(re) {
      return pe(re, !1);
    }
    function Te(re) {
      return pe(re, !0);
    }
    function ee(re) {
      if (xs(re))
        for (const he of re.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 (Ou(re)) {
        for (const he of re.elements)
          if (xh(he)) {
            if (ee(he.expression))
              return !0;
          } else if (ee(he))
            return !0;
      } else if (Ve(re))
        return Ie(_e(re)) > (G7(re) ? 1 : 0);
      return !1;
    }
    function $e(re, he) {
      return ee(re.left) ? FT(re, ve, e, 0, !he, Yt) : Gn(re, ve, e);
    }
    function Ue(re) {
      return r.updateForStatement(re, ct(re.initializer, Te, zp), ct(re.condition, ve, yt), ct(re.incrementor, Te, yt), g_(re.statement, ve, e));
    }
    function Be(re) {
      return r.updateExpressionStatement(re, ct(re.expression, Te, yt));
    }
    function We(re, he) {
      return r.updateParenthesizedExpression(re, ct(re.expression, he ? Te : ve, yt));
    }
    function Oe(re, he) {
      return r.updatePartiallyEmittedExpression(re, ct(re.expression, he ? Te : ve, yt));
    }
    function Me(re, he) {
      if ((re.operator === 45 || re.operator === 46) && Ve(re.operand) && !Tc(re.operand) && !Mv(re.operand) && !HN(re.operand)) {
        const j = _e(re.operand);
        if (j) {
          let je, Qe = ct(re.operand, ve, yt);
          Ov(re) ? Qe = r.updatePrefixUnaryExpression(re, Qe) : (Qe = r.updatePostfixUnaryExpression(re, Qe), he || (je = r.createTempVariable(l), Qe = r.createAssignment(je, Qe), mt(Qe, re)), Qe = r.createComma(Qe, r.cloneNode(re.operand)), mt(Qe, re));
          for (const Ke of j)
            V[ds(Qe)] = !0, Qe = Nn(Ke, Qe), mt(Qe, re);
          return je && (V[ds(Qe)] = !0, Qe = r.createComma(Qe, je), mt(Qe, re)), Qe;
        }
      }
      return Gn(re, ve, e);
    }
    function Xe(re) {
      if (b === 0 && h >= 7)
        return Gn(re, ve, e);
      const he = Ox(r, re, k, y, d, f), j = ct(zl(re.arguments), ve, yt), je = he && (!j || !Go(j) || j.text !== he.text) ? he : j, Qe = !!(re.transformFlags & 16384);
      switch (f.module) {
        case 2:
          return Fe(je, Qe);
        case 3:
          return He(je ?? r.createVoidZero(), Qe);
        case 1:
        default:
          return st(je);
      }
    }
    function He(re, he) {
      if (H = !0, U1(re)) {
        const j = Tc(re) ? re : Go(re) ? r.createStringLiteralFromNode(re) : sr(mt(r.cloneNode(re), re), 3072);
        return r.createConditionalExpression(r.createIdentifier("__syncRequire"), void 0, st(re), void 0, Fe(j, he));
      } else {
        const j = r.createTempVariable(l);
        return r.createComma(r.createAssignment(j, re), r.createConditionalExpression(r.createIdentifier("__syncRequire"), void 0, st(j, !0), void 0, Fe(j, he)));
      }
    }
    function Fe(re, he) {
      const j = r.createUniqueName("resolve"), je = r.createUniqueName("reject"), Qe = [
        r.createParameterDeclaration(void 0, void 0, j),
        r.createParameterDeclaration(void 0, void 0, je)
      ], Ke = r.createBlock([
        r.createExpressionStatement(r.createCallExpression(r.createIdentifier("require"), void 0, [r.createArrayLiteralExpression([re || r.createOmittedExpression()]), j, je]))
      ]);
      let Ut;
      h >= 2 ? Ut = r.createArrowFunction(void 0, void 0, Qe, void 0, void 0, Ke) : (Ut = r.createFunctionExpression(void 0, void 0, void 0, void 0, Qe, void 0, Ke), he && sr(Ut, 16));
      const ln = r.createNewExpression(r.createIdentifier("Promise"), void 0, [Ut]);
      return V_(f) ? r.createCallExpression(r.createPropertyAccessExpression(ln, r.createIdentifier("then")), void 0, [i().createImportStarCallbackHelper()]) : ln;
    }
    function st(re, he) {
      const j = re && !nm(re) && !he, je = r.createCallExpression(r.createPropertyAccessExpression(r.createIdentifier("Promise"), "resolve"), void 0, j ? h >= 2 ? [
        r.createTemplateExpression(r.createTemplateHead(""), [
          r.createTemplateSpan(re, r.createTemplateTail(""))
        ])
      ] : [
        r.createCallExpression(r.createPropertyAccessExpression(r.createStringLiteral(""), "concat"), void 0, [re])
      ] : []);
      let Qe = r.createCallExpression(r.createIdentifier("require"), void 0, j ? [r.createIdentifier("s")] : re ? [re] : []);
      V_(f) && (Qe = i().createImportStarHelper(Qe));
      const Ke = j ? [
        r.createParameterDeclaration(void 0, void 0, "s")
      ] : [];
      let Ut;
      return h >= 2 ? Ut = r.createArrowFunction(void 0, void 0, Ke, void 0, void 0, Qe) : Ut = r.createFunctionExpression(void 0, void 0, void 0, void 0, Ke, void 0, r.createBlock([r.createReturnStatement(Qe)])), r.createCallExpression(r.createPropertyAccessExpression(je, "then"), void 0, [Ut]);
    }
    function Ct(re, he) {
      return !V_(f) || P_(re) & 2 ? he : jme(re) ? i().createImportStarHelper(he) : he;
    }
    function Et(re, he) {
      return !V_(f) || P_(re) & 2 ? he : F5(re) ? i().createImportStarHelper(he) : XK(re) ? i().createImportDefaultHelper(he) : he;
    }
    function Vt(re) {
      let he;
      const j = VA(re);
      if (b !== 2)
        if (re.importClause) {
          const je = [];
          j && !tx(re) ? je.push(r.createVariableDeclaration(r.cloneNode(j.name), void 0, void 0, Et(re, tt(re)))) : (je.push(r.createVariableDeclaration(r.getGeneratedNameForNode(re), void 0, void 0, Et(re, tt(re)))), j && tx(re) && je.push(r.createVariableDeclaration(r.cloneNode(j.name), void 0, void 0, r.getGeneratedNameForNode(re)))), he = Bn(he, jr(mt(r.createVariableStatement(void 0, r.createVariableDeclarationList(je, h >= 2 ? 2 : 0)), re), re));
        } else
          return jr(mt(r.createExpressionStatement(tt(re)), re), re);
      else
        j && tx(re) && (he = Bn(he, r.createVariableStatement(void 0, r.createVariableDeclarationList([
          jr(mt(r.createVariableDeclaration(r.cloneNode(j.name), void 0, void 0, r.getGeneratedNameForNode(re)), re), re)
        ], h >= 2 ? 2 : 0))));
      if (Ki(re)) {
        const je = Ic(re);
        O[je] = Nr(O[je], re);
      } else
        he = Nr(he, re);
      return Sm(he);
    }
    function tt(re) {
      const he = Ox(r, re, k, y, d, f), j = [];
      return he && j.push(he), r.createCallExpression(r.createIdentifier("require"), void 0, j);
    }
    function at(re) {
      D.assert(j0(re), "import= for internal module references should be handled in an earlier transformer.");
      let he;
      if (b !== 2 ? Kr(re, 1) ? he = Bn(he, jr(mt(r.createExpressionStatement(Nn(re.name, tt(re))), re), re)) : he = Bn(he, jr(mt(r.createVariableStatement(void 0, r.createVariableDeclarationList([
        r.createVariableDeclaration(r.cloneNode(re.name), void 0, void 0, tt(re))
      ], h >= 2 ? 2 : 0)), re), re)) : Kr(re, 1) && (he = Bn(he, jr(mt(r.createExpressionStatement(Nn(r.getExportName(re), r.getLocalName(re))), re), re))), Ki(re)) {
        const j = Ic(re);
        O[j] = At(O[j], re);
      } else
        he = At(he, re);
      return Sm(he);
    }
    function an(re) {
      if (!re.moduleSpecifier)
        return;
      const he = r.getGeneratedNameForNode(re);
      if (re.exportClause && z_(re.exportClause)) {
        const j = [];
        b !== 2 && j.push(jr(mt(r.createVariableStatement(void 0, r.createVariableDeclarationList([
          r.createVariableDeclaration(he, void 0, void 0, tt(re))
        ])), re), re));
        for (const je of re.exportClause.elements)
          if (h === 0)
            j.push(jr(mt(r.createExpressionStatement(i().createCreateBindingHelper(he, r.createStringLiteralFromNode(je.propertyName || je.name), je.propertyName ? r.createStringLiteralFromNode(je.name) : void 0)), je), je));
          else {
            const Qe = !!V_(f) && !(P_(re) & 2) && Pr(je.propertyName || je.name) === "default", Ke = r.createPropertyAccessExpression(Qe ? i().createImportDefaultHelper(he) : he, je.propertyName || je.name);
            j.push(jr(mt(r.createExpressionStatement(Nn(r.getExportName(je), Ke, void 0, !0)), je), je));
          }
        return Sm(j);
      } else if (re.exportClause) {
        const j = [];
        return j.push(jr(mt(r.createExpressionStatement(Nn(r.cloneNode(re.exportClause.name), Ct(re, b !== 2 ? tt(re) : FM(re) ? he : r.createIdentifier(Pr(re.exportClause.name))))), re), re)), Sm(j);
      } else
        return jr(mt(r.createExpressionStatement(i().createExportStarHelper(b !== 2 ? tt(re) : he)), re), re);
    }
    function Xt(re) {
      if (re.isExportEquals)
        return;
      let he;
      const j = re.original;
      if (j && Ki(j)) {
        const je = Ic(re);
        O[je] = lr(O[je], r.createIdentifier("default"), ct(re.expression, ve, yt), re, !0);
      } else
        he = lr(he, r.createIdentifier("default"), ct(re.expression, ve, yt), re, !0);
      return Sm(he);
    }
    function Pn(re) {
      let he;
      if (Kr(re, 1) ? he = Bn(he, jr(mt(r.createFunctionDeclaration(Xn(re.modifiers, nn, lo), re.asteriskToken, r.getDeclarationName(re, !0, !0), void 0, Xn(re.parameters, ve, Oa), void 0, Gn(re.body, ve, e)), re), re)) : he = Bn(he, Gn(re, ve, e)), Ki(re)) {
        const j = Ic(re);
        O[j] = dn(O[j], re);
      } else
        he = dn(he, re);
      return Sm(he);
    }
    function Wn(re) {
      let he;
      if (Kr(re, 1) ? he = Bn(he, jr(mt(r.createClassDeclaration(Xn(re.modifiers, nn, tc), r.getDeclarationName(re, !0, !0), void 0, Xn(re.heritageClauses, ve, Bd), Xn(re.members, ve, Ml)), re), re)) : he = Bn(he, Gn(re, ve, e)), Ki(re)) {
        const j = Ic(re);
        O[j] = dn(O[j], re);
      } else
        he = dn(he, re);
      return Sm(he);
    }
    function In(re) {
      let he, j, je;
      if (Kr(re, 1)) {
        let Qe, Ke = !1;
        for (const Ut of re.declarationList.declarations)
          if (Ve(Ut.name) && Mv(Ut.name))
            if (Qe || (Qe = Xn(re.modifiers, nn, lo)), Ut.initializer) {
              const ln = r.updateVariableDeclaration(Ut, Ut.name, void 0, void 0, Nn(Ut.name, ct(Ut.initializer, ve, yt)));
              j = Bn(j, ln);
            } else
              j = Bn(j, Ut);
          else if (Ut.initializer)
            if (!Ja(Ut.name) && (Ws(Ut.initializer) || Ps(Ut.initializer) || Pu(Ut.initializer))) {
              const ln = r.createAssignment(mt(r.createPropertyAccessExpression(r.createIdentifier("exports"), Ut.name), Ut.name), r.createIdentifier(B_(Ut.name))), Sn = r.createVariableDeclaration(Ut.name, Ut.exclamationToken, Ut.type, ct(Ut.initializer, ve, yt));
              j = Bn(j, Sn), je = Bn(je, ln), Ke = !0;
            } else
              je = Bn(je, _r(Ut));
        if (j && (he = Bn(he, r.updateVariableStatement(re, Qe, r.updateVariableDeclarationList(re.declarationList, j)))), je) {
          const Ut = jr(mt(r.createExpressionStatement(r.inlineExpressions(je)), re), re);
          Ke && dO(Ut), he = Bn(he, Ut);
        }
      } else
        he = Bn(he, Gn(re, ve, e));
      if (Ki(re)) {
        const Qe = Ic(re);
        O[Qe] = vn(O[Qe], re);
      } else
        he = vn(he, re);
      return Sm(he);
    }
    function Yt(re, he, j) {
      const je = _e(re);
      if (je) {
        let Qe = G7(re) ? he : r.createAssignment(re, he);
        for (const Ke of je)
          sr(Qe, 8), Qe = Nn(Ke, Qe, j);
        return Qe;
      }
      return r.createAssignment(re, he);
    }
    function _r(re) {
      return Ja(re.name) ? FT(ct(re, ve, Vz), ve, e, 0, !1, Yt) : r.createAssignment(mt(r.createPropertyAccessExpression(r.createIdentifier("exports"), re.name), re.name), re.initializer ? ct(re.initializer, ve, yt) : r.createVoidZero());
    }
    function Ai(re) {
      if (Ki(re) && re.original.kind === 240) {
        const he = Ic(re);
        O[he] = vn(O[he], re.original);
      }
      return re;
    }
    function Ki(re) {
      return (go(re) & 8388608) !== 0;
    }
    function Xi(re) {
      const he = Ic(re), j = O[he];
      return j ? (delete O[he], Bn(j, re)) : re;
    }
    function Nr(re, he) {
      if (B.exportEquals)
        return re;
      const j = he.importClause;
      if (!j)
        return re;
      j.name && (re = ir(re, j));
      const je = j.namedBindings;
      if (je)
        switch (je.kind) {
          case 271:
            re = ir(re, je);
            break;
          case 272:
            for (const Qe of je.elements)
              re = ir(re, Qe, !0);
            break;
        }
      return re;
    }
    function At(re, he) {
      return B.exportEquals ? re : ir(re, he);
    }
    function vn(re, he) {
      if (B.exportEquals)
        return re;
      for (const j of he.declarationList.declarations)
        re = Ht(re, j);
      return re;
    }
    function Ht(re, he) {
      if (B.exportEquals)
        return re;
      if (Ja(he.name))
        for (const j of he.name.elements)
          kl(j) || (re = Ht(re, j));
      else
        Tc(he.name) || (re = ir(re, he));
      return re;
    }
    function dn(re, he) {
      if (B.exportEquals)
        return re;
      if (Kr(he, 1)) {
        const j = Kr(he, 1024) ? r.createIdentifier("default") : r.getDeclarationName(he);
        re = lr(re, j, r.getLocalName(he), he);
      }
      return he.name && (re = ir(re, he)), re;
    }
    function ir(re, he, j) {
      const je = r.getDeclarationName(he), Qe = B.exportSpecifiers.get(Pr(je));
      if (Qe)
        for (const Ke of Qe)
          re = lr(re, Ke.name, je, Ke.name, void 0, j);
      return re;
    }
    function lr(re, he, j, je, Qe, Ke) {
      return re = Bn(re, pi(he, j, je, Qe, Ke)), re;
    }
    function Ni() {
      let re;
      return h === 0 ? re = r.createExpressionStatement(Nn(r.createIdentifier("__esModule"), r.createTrue())) : re = 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())
        ])
      ])), sr(re, 2097152), re;
    }
    function pi(re, he, j, je, Qe) {
      const Ke = mt(r.createExpressionStatement(Nn(re, he, void 0, Qe)), j);
      return Fu(Ke), je || sr(Ke, 3072), Ke;
    }
    function Nn(re, he, j, je) {
      return mt(je && h !== 0 ? r.createCallExpression(r.createPropertyAccessExpression(r.createIdentifier("Object"), "defineProperty"), void 0, [
        r.createIdentifier("exports"),
        r.createStringLiteralFromNode(re),
        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(re)), he), j);
    }
    function nn(re) {
      switch (re.kind) {
        case 93:
        case 88:
          return;
      }
      return re;
    }
    function Mn(re, he, j) {
      he.kind === 308 ? (k = he, B = I[Ic(k)], L(re, he, j), k = void 0, B = void 0) : L(re, he, j);
    }
    function Ar(re, he) {
      return he = A(re, he), he.id && V[he.id] ? he : re === 1 ? ke(he) : $f(he) ? Vr(he) : he;
    }
    function Vr(re) {
      const he = re.name, j = xe(he);
      if (j !== he) {
        if (re.objectAssignmentInitializer) {
          const je = r.createAssignment(j, re.objectAssignmentInitializer);
          return mt(r.createPropertyAssignment(he, je), re);
        }
        return mt(r.createPropertyAssignment(he, j), re);
      }
      return re;
    }
    function ke(re) {
      switch (re.kind) {
        case 79:
          return xe(re);
        case 210:
          return gt(re);
        case 212:
          return Nt(re);
        case 223:
          return _t(re);
      }
      return re;
    }
    function gt(re) {
      if (Ve(re.expression)) {
        const he = xe(re.expression);
        if (V[ds(he)] = !0, !Ve(he) && !(go(re.expression) & 8192))
          return mx(r.updateCallExpression(re, he, void 0, re.arguments), 16);
      }
      return re;
    }
    function Nt(re) {
      if (Ve(re.tag)) {
        const he = xe(re.tag);
        if (V[ds(he)] = !0, !Ve(he) && !(go(re.tag) & 8192))
          return mx(r.updateTaggedTemplateExpression(re, he, void 0, re.template), 16);
      }
      return re;
    }
    function xe(re) {
      var he, j;
      if (go(re) & 8192) {
        const je = PO(k);
        return je ? r.createPropertyAccessExpression(je, re) : re;
      } else if (!(Tc(re) && !(re.emitNode.autoGenerate.flags & 64)) && !Mv(re)) {
        const je = d.getReferencedExportContainer(re, G7(re));
        if (je && je.kind === 308)
          return mt(r.createPropertyAccessExpression(r.createIdentifier("exports"), r.cloneNode(re)), re);
        const Qe = d.getReferencedImportDeclaration(re);
        if (Qe) {
          if (Vm(Qe))
            return mt(r.createPropertyAccessExpression(r.getGeneratedNameForNode(Qe.parent), r.createIdentifier("default")), re);
          if (xd(Qe)) {
            const Ke = Qe.propertyName || Qe.name;
            return mt(r.createPropertyAccessExpression(r.getGeneratedNameForNode(((j = (he = Qe.parent) == null ? void 0 : he.parent) == null ? void 0 : j.parent) || Qe), r.cloneNode(Ke)), re);
          }
        }
      }
      return re;
    }
    function _t(re) {
      if (my(re.operatorToken.kind) && Ve(re.left) && !Tc(re.left) && !Mv(re.left) && !HN(re.left)) {
        const he = _e(re.left);
        if (he) {
          let j = re;
          for (const je of he)
            V[ds(j)] = !0, j = Nn(je, j, re);
          return j;
        }
      }
      return re;
    }
    function _e(re) {
      if (!Tc(re)) {
        const he = d.getReferencedImportDeclaration(re) || d.getReferencedValueDeclaration(re);
        if (he)
          return B && B.exportedBindings[Ic(he)];
      }
    }
  }
  var mhe, f3e = C({
    "src/compiler/transformers/module/module.ts"() {
      wa(), mhe = {
        name: "typescript:dynamicimport-sync-require",
        scoped: !0,
        text: `
            var __syncRequire = typeof module === "object" && typeof module.exports === "object";`
      };
    }
  });
  function hhe(e) {
    const {
      factory: t,
      startLexicalEnvironment: r,
      endLexicalEnvironment: i,
      hoistVariableDeclaration: o
    } = e, s = e.getCompilerOptions(), l = e.getEmitResolver(), f = e.getEmitHost(), d = e.onSubstituteNode, y = e.onEmitNode;
    e.onSubstituteNode = Qe, e.onEmitNode = je, e.enableSubstitution(79), e.enableSubstitution(300), e.enableSubstitution(223), e.enableSubstitution(233), e.enableEmitNotification(308);
    const h = [], b = [], A = [], L = [], I = [];
    let O, k, B, V, H, te, X;
    return J_(e, Y);
    function Y(K) {
      if (K.isDeclarationFile || !($S(K, s) || K.transformFlags & 8388608))
        return K;
      const Pe = Ic(K);
      O = K, te = K, k = h[Pe] = YK(e, K, l, s), B = t.createUniqueName("exports"), A[Pe] = B, 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, B),
        t.createParameterDeclaration(void 0, void 0, V)
      ], void 0, Re), Rt = MO(t, K, f, s), ht = t.createArrayLiteralExpression(en(Z, (fn) => fn.name)), dt = sr(t.updateSourceFile(K, mt(t.createNodeArray([
        t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("System"), "register"), void 0, Rt ? [Rt, ht, q] : [ht, q]))
      ]), K.statements)), 2048);
      return Hs(s) || pfe(dt, Re, (fn) => !fn.scoped), X && (L[Pe] = X, X = void 0), O = void 0, k = void 0, B = void 0, V = void 0, H = void 0, te = void 0, dt;
    }
    function P(K) {
      const Pe = /* @__PURE__ */ new Map(), Z = [];
      for (const Re of K) {
        const q = Ox(t, Re, O, f, l, s);
        if (q) {
          const Rt = q.text, ht = Pe.get(Rt);
          ht !== void 0 ? Z[ht].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 = m_(s, "alwaysStrict") || !s.noImplicitUseStrict && Yc(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")))
      ]))), ct(k.externalHelpersImportDeclaration, W, Ca);
      const Rt = Xn(K.statements, W, Ca, q);
      bi(Z, H), Rm(Z, i());
      const ht = ne(Z), dt = K.transformFlags & 2097152 ? t.createModifiersFromModifierFlags(512) : void 0, fn = t.createObjectLiteralExpression([
        t.createPropertyAssignment("setters", ie(ht, Pe)),
        t.createPropertyAssignment("execute", t.createFunctionExpression(dt, void 0, void 0, void 0, [], void 0, t.createBlock(Rt, !0)))
      ], !0);
      return Z.push(t.createReturnStatement(fn)), t.createBlock(Z, !0);
    }
    function ne(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([
          sr(t.createIfStatement(Rt, t.createExpressionStatement(t.createAssignment(t.createElementAccessExpression(q, Re), t.createElementAccessExpression(Z, Re)))), 1)
        ])),
        t.createExpressionStatement(t.createCallExpression(B, void 0, [q]))
      ], !0));
    }
    function ie(K, Pe) {
      const Z = [];
      for (const Re of Pe) {
        const q = ze(Re.externalImports, (dt) => CC(t, dt, O)), Rt = q ? t.getGeneratedNameForNode(q) : t.createUniqueName(""), ht = [];
        for (const dt of Re.externalImports) {
          const fn = CC(t, dt, O);
          switch (dt.kind) {
            case 269:
              if (!dt.importClause)
                break;
            case 268:
              D.assert(fn !== void 0), ht.push(t.createExpressionStatement(t.createAssignment(fn, Rt))), Kr(dt, 1) && ht.push(t.createExpressionStatement(t.createCallExpression(B, void 0, [
                t.createStringLiteral(Pr(fn)),
                Rt
              ])));
              break;
            case 275:
              if (D.assert(fn !== void 0), dt.exportClause)
                if (z_(dt.exportClause)) {
                  const Qn = [];
                  for (const ai of dt.exportClause.elements)
                    Qn.push(t.createPropertyAssignment(t.createStringLiteral(Pr(ai.name)), t.createElementAccessExpression(Rt, t.createStringLiteral(Pr(ai.propertyName || ai.name)))));
                  ht.push(t.createExpressionStatement(t.createCallExpression(B, void 0, [t.createObjectLiteralExpression(Qn, !0)])));
                } else
                  ht.push(t.createExpressionStatement(t.createCallExpression(B, void 0, [
                    t.createStringLiteral(Pr(dt.exportClause.name)),
                    Rt
                  ])));
              else
                ht.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(ht, !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 pe(K);
        case 274:
          return Te(K);
        default:
          return Yt(K);
      }
    }
    function ce(K) {
      let Pe;
      if (K.importClause && o(CC(t, K, O)), st(K)) {
        const Z = Ic(K);
        b[Z] = Et(b[Z], K);
      } else
        Pe = Et(Pe, K);
      return Sm(Pe);
    }
    function pe(K) {
      D.assertIsDefined(K);
    }
    function ve(K) {
      D.assert(j0(K), "import= for internal module references should be handled in an earlier transformer.");
      let Pe;
      if (o(CC(t, K, O)), st(K)) {
        const Z = Ic(K);
        b[Z] = Vt(b[Z], K);
      } else
        Pe = Vt(Pe, K);
      return Sm(Pe);
    }
    function Te(K) {
      if (K.isExportEquals)
        return;
      const Pe = ct(K.expression, Vr, yt), Z = K.original;
      if (Z && st(Z)) {
        const Re = Ic(K);
        b[Re] = Pn(b[Re], t.createIdentifier("default"), Pe, !0);
      } else
        return Wn(t.createIdentifier("default"), Pe, !0);
    }
    function ee(K) {
      if (Kr(K, 1) ? H = Bn(H, t.updateFunctionDeclaration(K, Xn(K.modifiers, j, tc), K.asteriskToken, t.getDeclarationName(K, !0, !0), void 0, Xn(K.parameters, Vr, Oa), void 0, ct(K.body, Vr, oo))) : H = Bn(H, Gn(K, Vr, e)), st(K)) {
        const Pe = Ic(K);
        b[Pe] = an(b[Pe], K);
      } else
        H = an(H, K);
    }
    function $e(K) {
      let Pe;
      const Z = t.getLocalName(K);
      if (o(Z), Pe = Bn(Pe, mt(t.createExpressionStatement(t.createAssignment(Z, mt(t.createClassExpression(Xn(K.modifiers, j, tc), K.name, void 0, Xn(K.heritageClauses, Vr, Bd), Xn(K.members, Vr, Ml)), K))), K)), st(K)) {
        const Re = Ic(K);
        b[Re] = an(b[Re], K);
      } else
        Pe = an(Pe, K);
      return Sm(Pe);
    }
    function Ue(K) {
      if (!We(K.declarationList))
        return ct(K, Vr, Ca);
      let Pe;
      const Z = Kr(K, 1), Re = st(K);
      for (const Rt of K.declarationList.declarations)
        Rt.initializer ? Pe = Bn(Pe, Oe(Rt, Z && !Re)) : Be(Rt);
      let q;
      if (Pe && (q = Bn(q, mt(t.createExpressionStatement(t.inlineExpressions(Pe)), K))), Re) {
        const Rt = Ic(K);
        b[Rt] = tt(b[Rt], K, Z);
      } else
        q = tt(q, K, !1);
      return Sm(q);
    }
    function Be(K) {
      if (Ja(K.name))
        for (const Pe of K.name.elements)
          kl(Pe) || Be(Pe);
      else
        o(t.cloneNode(K.name));
    }
    function We(K) {
      return (go(K) & 4194304) === 0 && (te.kind === 308 || (Ec(K).flags & 3) === 0);
    }
    function Oe(K, Pe) {
      const Z = Pe ? Me : Xe;
      return Ja(K.name) ? FT(K, Vr, e, 0, !1, Z) : K.initializer ? Z(K.name, ct(K.initializer, Vr, yt)) : K.name;
    }
    function Me(K, Pe, Z) {
      return He(K, Pe, Z, !0);
    }
    function Xe(K, Pe, Z) {
      return He(K, Pe, Z, !1);
    }
    function He(K, Pe, Z, Re) {
      return o(t.cloneNode(K)), Re ? In(K, Wt(mt(t.createAssignment(K, Pe), Z))) : Wt(mt(t.createAssignment(K, Pe), Z));
    }
    function Fe(K) {
      if (st(K) && K.original.kind === 240) {
        const Pe = Ic(K), Z = Kr(K.original, 1);
        b[Pe] = tt(b[Pe], K.original, Z);
      }
      return K;
    }
    function st(K) {
      return (go(K) & 8388608) !== 0;
    }
    function Ct(K) {
      const Pe = Ic(K), Z = b[Pe];
      if (Z)
        return delete b[Pe], Bn(Z, K);
      {
        const Re = Ec(K);
        if (zR(Re))
          return Bn(Xt(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 = Xt(K, Z));
      const Re = Z.namedBindings;
      if (Re)
        switch (Re.kind) {
          case 271:
            K = Xt(K, Re);
            break;
          case 272:
            for (const q of Re.elements)
              K = Xt(K, q);
            break;
        }
      return K;
    }
    function Vt(K, Pe) {
      return k.exportEquals ? K : Xt(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 (Ja(Pe.name))
        for (const Re of Pe.name.elements)
          kl(Re) || (K = at(K, Re, Z));
      else if (!Tc(Pe.name)) {
        let Re;
        Z && (K = Pn(K, Pe.name, t.getLocalName(Pe)), Re = Pr(Pe.name)), K = Xt(K, Pe, Re);
      }
      return K;
    }
    function an(K, Pe) {
      if (k.exportEquals)
        return K;
      let Z;
      if (Kr(Pe, 1)) {
        const Re = Kr(Pe, 1024) ? t.createStringLiteral("default") : Pe.name;
        K = Pn(K, Re, t.getLocalName(Pe)), Z = B_(Re);
      }
      return Pe.name && (K = Xt(K, Pe, Z)), K;
    }
    function Xt(K, Pe, Z) {
      if (k.exportEquals)
        return K;
      const Re = t.getDeclarationName(Pe), q = k.exportSpecifiers.get(Pr(Re));
      if (q)
        for (const Rt of q)
          Rt.name.escapedText !== Z && (K = Pn(K, Rt.name, Re));
      return K;
    }
    function Pn(K, Pe, Z, Re) {
      return K = Bn(K, Wn(Pe, Z, Re)), K;
    }
    function Wn(K, Pe, Z) {
      const Re = t.createExpressionStatement(In(K, Pe));
      return Fu(Re), Z || sr(Re, 3072), Re;
    }
    function In(K, Pe) {
      const Z = Ve(K) ? t.createStringLiteralFromNode(K) : K;
      return sr(Pe, go(Pe) | 3072), Gl(t.createCallExpression(B, void 0, [Z, Pe]), Pe);
    }
    function Yt(K) {
      switch (K.kind) {
        case 240:
          return Ue(K);
        case 259:
          return ee(K);
        case 260:
          return $e(K);
        case 245:
          return _r(K, !0);
        case 246:
          return Ai(K);
        case 247:
          return Ki(K);
        case 243:
          return At(K);
        case 244:
          return vn(K);
        case 253:
          return Ht(K);
        case 251:
          return dn(K);
        case 252:
          return ir(K);
        case 266:
          return lr(K);
        case 292:
          return Ni(K);
        case 293:
          return pi(K);
        case 255:
          return Nn(K);
        case 295:
          return nn(K);
        case 238:
          return Mn(K);
        case 358:
          return Fe(K);
        case 359:
          return Ct(K);
        default:
          return Vr(K);
      }
    }
    function _r(K, Pe) {
      const Z = te;
      return te = K, K = t.updateForStatement(K, ct(K.initializer, Pe ? Nr : ke, zp), ct(K.condition, Vr, yt), ct(K.incrementor, ke, yt), g_(K.statement, Pe ? Yt : Vr, e)), te = Z, K;
    }
    function Ai(K) {
      const Pe = te;
      return te = K, K = t.updateForInStatement(K, Nr(K.initializer), ct(K.expression, Vr, yt), g_(K.statement, Yt, e)), te = Pe, K;
    }
    function Ki(K) {
      const Pe = te;
      return te = K, K = t.updateForOfStatement(K, K.awaitModifier, Nr(K.initializer), ct(K.expression, Vr, yt), g_(K.statement, Yt, e)), te = Pe, K;
    }
    function Xi(K) {
      return Mu(K) && We(K);
    }
    function Nr(K) {
      if (Xi(K)) {
        let Pe;
        for (const Z of K.declarations)
          Pe = Bn(Pe, Oe(Z, !1)), Z.initializer || Be(Z);
        return Pe ? t.inlineExpressions(Pe) : t.createOmittedExpression();
      } else
        return ct(K, ke, zp);
    }
    function At(K) {
      return t.updateDoStatement(K, g_(K.statement, Yt, e), ct(K.expression, Vr, yt));
    }
    function vn(K) {
      return t.updateWhileStatement(K, ct(K.expression, Vr, yt), g_(K.statement, Yt, e));
    }
    function Ht(K) {
      return t.updateLabeledStatement(K, K.label, D.checkDefined(ct(K.statement, Yt, Ca, t.liftToBlock)));
    }
    function dn(K) {
      return t.updateWithStatement(K, ct(K.expression, Vr, yt), D.checkDefined(ct(K.statement, Yt, Ca, t.liftToBlock)));
    }
    function ir(K) {
      return t.updateSwitchStatement(K, ct(K.expression, Vr, yt), D.checkDefined(ct(K.caseBlock, Yt, IO)));
    }
    function lr(K) {
      const Pe = te;
      return te = K, K = t.updateCaseBlock(K, Xn(K.clauses, Yt, vW)), te = Pe, K;
    }
    function Ni(K) {
      return t.updateCaseClause(K, ct(K.expression, Vr, yt), Xn(K.statements, Yt, Ca));
    }
    function pi(K) {
      return Gn(K, Yt, e);
    }
    function Nn(K) {
      return Gn(K, Yt, e);
    }
    function nn(K) {
      const Pe = te;
      return te = K, K = t.updateCatchClause(K, K.variableDeclaration, D.checkDefined(ct(K.block, Yt, oo))), te = Pe, K;
    }
    function Mn(K) {
      const Pe = te;
      return te = K, K = Gn(K, Yt, 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 gt(K);
        case 214:
          return Nt(K, Pe);
        case 356:
          return xe(K, Pe);
        case 223:
          if (hy(K))
            return _e(K, Pe);
          break;
        case 210:
          if (rf(K))
            return _t(K);
          break;
        case 221:
        case 222:
          return he(K, Pe);
      }
      return Gn(K, Vr, e);
    }
    function Vr(K) {
      return Ar(K, !1);
    }
    function ke(K) {
      return Ar(K, !0);
    }
    function gt(K) {
      return t.updateExpressionStatement(K, ct(K.expression, ke, yt));
    }
    function Nt(K, Pe) {
      return t.updateParenthesizedExpression(K, ct(K.expression, Pe ? ke : Vr, yt));
    }
    function xe(K, Pe) {
      return t.updatePartiallyEmittedExpression(K, ct(K.expression, Pe ? ke : Vr, yt));
    }
    function _t(K) {
      const Pe = Ox(t, K, O, f, l, s), Z = ct(zl(K.arguments), Vr, yt), Re = Pe && (!Z || !Go(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 re(K.left) ? FT(K, Vr, e, 0, !Pe) : Gn(K, Vr, e);
    }
    function re(K) {
      if (Yu(K, !0))
        return re(K.left);
      if (xh(K))
        return re(K.expression);
      if (xs(K))
        return kt(K.properties, re);
      if (Ou(K))
        return kt(K.elements, re);
      if ($f(K))
        return re(K.name);
      if (Vl(K))
        return re(K.initializer);
      if (Ve(K)) {
        const Pe = l.getReferencedExportContainer(K);
        return Pe !== void 0 && Pe.kind === 308;
      } else
        return !1;
    }
    function he(K, Pe) {
      if ((K.operator === 45 || K.operator === 46) && Ve(K.operand) && !Tc(K.operand) && !Mv(K.operand) && !HN(K.operand)) {
        const Z = pt(K.operand);
        if (Z) {
          let Re, q = ct(K.operand, Vr, yt);
          Ov(K) ? q = t.updatePrefixUnaryExpression(K, q) : (q = t.updatePostfixUnaryExpression(K, q), Pe || (Re = t.createTempVariable(o), q = t.createAssignment(Re, q), mt(q, K)), q = t.createComma(q, t.cloneNode(K.operand)), mt(q, K));
          for (const Rt of Z)
            q = In(Rt, Wt(q));
          return Re && (q = t.createComma(q, Re), mt(q, K)), q;
        }
      }
      return Gn(K, Vr, e);
    }
    function j(K) {
      switch (K.kind) {
        case 93:
        case 88:
          return;
      }
      return K;
    }
    function je(K, Pe, Z) {
      if (Pe.kind === 308) {
        const Re = Ic(Pe);
        O = Pe, k = h[Re], B = A[Re], X = L[Re], V = I[Re], X && delete L[Re], y(K, Pe, Z), O = void 0, k = void 0, B = void 0, V = void 0, X = void 0;
      } else
        y(K, Pe, Z);
    }
    function Qe(K, Pe) {
      return Pe = d(K, Pe), it(Pe) ? Pe : K === 1 ? ln(Pe) : K === 4 ? Ke(Pe) : Pe;
    }
    function Ke(K) {
      switch (K.kind) {
        case 300:
          return Ut(K);
      }
      return K;
    }
    function Ut(K) {
      var Pe, Z;
      const Re = K.name;
      if (!Tc(Re) && !Mv(Re)) {
        const q = l.getReferencedImportDeclaration(Re);
        if (q) {
          if (Vm(q))
            return mt(t.createPropertyAssignment(t.cloneNode(Re), t.createPropertyAccessExpression(t.getGeneratedNameForNode(q.parent), t.createIdentifier("default"))), K);
          if (xd(q))
            return mt(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 ln(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 (go(K) & 8192) {
        const Re = PO(O);
        return Re ? t.createPropertyAccessExpression(Re, K) : K;
      }
      if (!Tc(K) && !Mv(K)) {
        const Re = l.getReferencedImportDeclaration(K);
        if (Re) {
          if (Vm(Re))
            return mt(t.createPropertyAccessExpression(t.getGeneratedNameForNode(Re.parent), t.createIdentifier("default")), K);
          if (xd(Re))
            return mt(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 (my(K.operatorToken.kind) && Ve(K.left) && !Tc(K.left) && !Mv(K.left) && !HN(K.left)) {
        const Pe = pt(K.left);
        if (Pe) {
          let Z = K;
          for (const Re of Pe)
            Z = In(Re, Wt(Z));
          return Z;
        }
      }
      return K;
    }
    function ue(K) {
      return OA(K) ? t.createPropertyAccessExpression(V, t.createIdentifier("meta")) : K;
    }
    function pt(K) {
      let Pe;
      if (!Tc(K)) {
        const Z = l.getReferencedImportDeclaration(K) || l.getReferencedValueDeclaration(K);
        if (Z) {
          const Re = l.getReferencedExportContainer(K, !1);
          Re && Re.kind === 308 && (Pe = Bn(Pe, t.getDeclarationName(Z))), Pe = bi(Pe, k && k.exportedBindings[Ic(Z)]);
        }
      }
      return Pe;
    }
    function Wt(K) {
      return X === void 0 && (X = []), X[ds(K)] = !0, K;
    }
    function it(K) {
      return X && K.id && X[K.id];
    }
  }
  var _3e = C({
    "src/compiler/transformers/module/system.ts"() {
      wa();
    }
  });
  function uX(e) {
    const {
      factory: t,
      getEmitHelperFactory: r
    } = e, i = e.getEmitHost(), o = e.getEmitResolver(), s = e.getCompilerOptions(), l = $o(s), f = e.onEmitNode, d = e.onSubstituteNode;
    e.onEmitNode = te, e.onSubstituteNode = X, e.enableEmitNotification(308), e.enableSubstitution(79);
    let y, h, b;
    return J_(e, A);
    function A(P) {
      if (P.isDeclarationFile)
        return P;
      if (Yc(P) || U_(s)) {
        h = P, b = void 0;
        let de = L(P);
        return h = void 0, b && (de = t.updateSourceFile(de, mt(t.createNodeArray(kW(de.statements.slice(), b)), de.statements))), !Yc(P) || kt(de.statements, WR) ? de : t.updateSourceFile(de, mt(t.createNodeArray([...de.statements, RO(t)]), de.statements));
      }
      return P;
    }
    function L(P) {
      const de = IJ(t, r(), P, s);
      if (de) {
        const ne = [], ye = t.copyPrologue(P.statements, ne);
        return Bn(ne, de), bi(ne, Xn(P.statements, I, Ca, ye)), t.updateSourceFile(P, mt(t.createNodeArray(ne), P.statements));
      } else
        return Gn(P, I, e);
    }
    function I(P) {
      switch (P.kind) {
        case 268:
          return tu(s) >= 100 ? k(P) : void 0;
        case 274:
          return V(P);
        case 275:
          return H(P);
      }
      return P;
    }
    function O(P) {
      const de = Ox(t, P, D.checkDefined(h), i, o, s), ne = [];
      if (de && ne.push(de), !b) {
        const ie = t.createUniqueName("_createRequire", 48), W = t.createImportDeclaration(void 0, t.createImportClause(!1, void 0, t.createNamedImports([
          t.createImportSpecifier(!1, t.createIdentifier("createRequire"), ie)
        ])), t.createStringLiteral("module")), ce = t.createUniqueName("__require", 48), pe = t.createVariableStatement(void 0, t.createVariableDeclarationList([
          t.createVariableDeclaration(ce, void 0, void 0, t.createCallExpression(t.cloneNode(ie), void 0, [
            t.createPropertyAccessExpression(t.createMetaProperty(100, t.createIdentifier("meta")), t.createIdentifier("url"))
          ]))
        ], l >= 2 ? 2 : 0));
        b = [W, pe];
      }
      const ye = b[1].declarationList.declarations[0].name;
      return D.assertNode(ye, Ve), t.createCallExpression(t.cloneNode(ye), void 0, ne);
    }
    function k(P) {
      D.assert(j0(P), "import= for internal module references should be handled in an earlier transformer.");
      let de;
      return de = Bn(de, jr(mt(t.createVariableStatement(void 0, t.createVariableDeclarationList([
        t.createVariableDeclaration(t.cloneNode(P.name), void 0, void 0, O(P))
      ], l >= 2 ? 2 : 0)), P), P)), de = B(de, P), Sm(de);
    }
    function B(P, de) {
      return Kr(de, 1) && (P = Bn(P, t.createExportDeclaration(void 0, de.isTypeOnly, t.createNamedExports([t.createExportSpecifier(!1, void 0, Pr(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 || !Ah(P.exportClause) || !P.moduleSpecifier)
        return P;
      const de = P.exportClause.name, ne = t.getGeneratedNameForNode(de), ye = t.createImportDeclaration(void 0, t.createImportClause(!1, void 0, t.createNamespaceImport(ne)), P.moduleSpecifier, P.assertClause);
      jr(ye, P.exportClause);
      const ie = FM(P) ? t.createExportDefault(ne) : t.createExportDeclaration(void 0, !1, t.createNamedExports([t.createExportSpecifier(!1, ne, de)]));
      return jr(ie, P), [ye, ie];
    }
    function te(P, de, ne) {
      Hi(de) ? ((Yc(de) || U_(s)) && s.importHelpers && (y = /* @__PURE__ */ new Map()), f(P, de, ne), y = void 0) : f(P, de, ne);
    }
    function X(P, de) {
      return de = d(P, de), y && Ve(de) && go(de) & 8192 ? Y(de) : de;
    }
    function Y(P) {
      const de = Pr(P);
      let ne = y.get(de);
      return ne || y.set(de, ne = t.createUniqueName(de, 48)), ne;
    }
  }
  var p3e = C({
    "src/compiler/transformers/module/esnextAnd2015.ts"() {
      wa();
    }
  });
  function ghe(e) {
    const t = e.onSubstituteNode, r = e.onEmitNode, i = uX(e), o = e.onSubstituteNode, s = e.onEmitNode;
    e.onSubstituteNode = t, e.onEmitNode = r;
    const l = lX(e), f = e.onSubstituteNode, d = e.onEmitNode;
    e.onSubstituteNode = h, e.onEmitNode = b, e.enableSubstitution(308), e.enableEmitNotification(308);
    let y;
    return I;
    function h(k, B) {
      return Hi(B) ? (y = B, t(k, B)) : y ? y.impliedNodeFormat === 99 ? o(k, B) : f(k, B) : t(k, B);
    }
    function b(k, B, V) {
      return Hi(B) && (y = B), y ? y.impliedNodeFormat === 99 ? s(k, B, V) : d(k, B, V) : r(k, B, V);
    }
    function A(k) {
      return k.impliedNodeFormat === 99 ? i : l;
    }
    function L(k) {
      if (k.isDeclarationFile)
        return k;
      y = k;
      const B = A(k)(k);
      return y = void 0, D.assert(Hi(B)), B;
    }
    function I(k) {
      return k.kind === 308 ? L(k) : O(k);
    }
    function O(k) {
      return e.factory.createBundle(en(k.sourceFiles, L), k.prepends);
    }
  }
  var m3e = C({
    "src/compiler/transformers/module/node.ts"() {
      wa();
    }
  });
  function j5(e) {
    return zi(e) || Za(e) || xf(e) || us(e) || _y(e) || xv(e) || TO(e) || _C(e) || nl(e) || Th(e) || ml(e) || Oa(e) || Pc(e) || by(e) || ru(e) || Qp(e) || Hc(e) || Ex(e) || Mr(e) || f_(e);
  }
  function yhe(e) {
    if (_y(e) || xv(e))
      return t;
    return Th(e) || nl(e) ? i : xy(e);
    function t(s) {
      const l = r(s);
      return l !== void 0 ? {
        diagnosticMessage: l,
        errorNode: e,
        typeName: e.name
      } : void 0;
    }
    function r(s) {
      return za(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 l = o(s);
      return l !== void 0 ? {
        diagnosticMessage: l,
        errorNode: e,
        typeName: e.name
      } : void 0;
    }
    function o(s) {
      return za(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 xy(e) {
    if (zi(e) || Za(e) || xf(e) || Mr(e) || us(e) || Hc(e))
      return r;
    return _y(e) || xv(e) ? i : TO(e) || _C(e) || nl(e) || Th(e) || ml(e) || Ex(e) ? o : Oa(e) ? Qd(e, e.parent) && Kr(e.parent, 8) ? r : s : Pc(e) ? f : by(e) ? d : ru(e) ? y : Qp(e) || f_(e) ? h : D.assertNever(e, `Attempted to set a declaration diagnostic context for unhandled node kind: ${D.formatSyntaxKind(e.kind)}`);
    function t(b) {
      if (e.kind === 257 || e.kind === 205)
        return b.errorModuleName ? b.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 && Kr(e.parent, 8))
        return za(e) ? b.errorModuleName ? b.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 ? b.errorModuleName ? b.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 : b.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(b) {
      const A = t(b);
      return A !== void 0 ? {
        diagnosticMessage: A,
        errorNode: e,
        typeName: e.name
      } : void 0;
    }
    function i(b) {
      let A;
      return e.kind === 175 ? za(e) ? A = b.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 = b.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 : za(e) ? A = b.errorModuleName ? b.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 = b.errorModuleName ? b.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(b) {
      let A;
      switch (e.kind) {
        case 177:
          A = b.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 = b.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 = b.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:
          za(e) ? A = b.errorModuleName ? b.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 = b.errorModuleName ? b.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 = b.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 = b.errorModuleName ? b.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(b) {
      const A = l(b);
      return A !== void 0 ? {
        diagnosticMessage: A,
        errorNode: e,
        typeName: e.name
      } : void 0;
    }
    function l(b) {
      switch (e.parent.kind) {
        case 173:
          return b.errorModuleName ? b.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 b.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 b.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 b.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 za(e.parent) ? b.errorModuleName ? b.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 ? b.errorModuleName ? b.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 : b.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 b.errorModuleName ? b.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 b.errorModuleName ? b.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 b;
      switch (e.parent.kind) {
        case 260:
          b = _.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;
          break;
        case 261:
          b = _.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;
          break;
        case 197:
          b = _.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;
          break;
        case 182:
        case 177:
          b = _.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
          break;
        case 176:
          b = _.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
          break;
        case 171:
        case 170:
          za(e.parent) ? b = _.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1 : e.parent.parent.kind === 260 ? b = _.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1 : b = _.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
          break;
        case 181:
        case 259:
          b = _.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;
          break;
        case 192:
          b = _.Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1;
          break;
        case 262:
          b = _.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: b,
        errorNode: e,
        typeName: e.name
      };
    }
    function d() {
      let b;
      return wl(e.parent.parent) ? b = Bd(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 : b = _.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1, {
        diagnosticMessage: b,
        errorNode: e,
        typeName: Aa(e.parent.parent)
      };
    }
    function y() {
      return {
        diagnosticMessage: _.Import_declaration_0_is_using_private_name_1,
        errorNode: e,
        typeName: e.name
      };
    }
    function h(b) {
      return {
        diagnosticMessage: b.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: f_(e) ? D.checkDefined(e.typeExpression) : e.type,
        typeName: f_(e) ? Aa(e) : e.name
      };
    }
  }
  var h3e = C({
    "src/compiler/transformers/declarations/diagnostics.ts"() {
      wa();
    }
  });
  function vhe(e, t, r) {
    const i = e.getCompilerOptions();
    return E8(t, e, N, i, r ? [r] : yn(e.getSourceFiles(), ez), [fX], !1).diagnostics;
  }
  function bhe(e, t) {
    const r = t.text.substring(e.pos, e.end);
    return uu(r, "@internal");
  }
  function dX(e, t) {
    const r = ga(e);
    if (r && r.kind === 166) {
      const o = r.parent.parameters.indexOf(r), s = o > 0 ? r.parent.parameters[o - 1] : void 0, l = t.text, f = s ? ma(F0(l, zo(l, s.end + 1, !1, !0)), dh(l, e.pos)) : F0(l, zo(l, e.pos, !1, !0));
      return f && f.length && bhe(Ho(f), t);
    }
    const i = r && qW(r, t);
    return !!ze(i, (o) => bhe(o, t));
  }
  function fX(e) {
    const t = () => D.fail("Diagnostic emitted without context");
    let r = t, i = !0, o = !1, s = !1, l = !1, f = !1, d, y, h, b, A, L;
    const { factory: I } = e, O = e.getEmitHost(), k = {
      trackSymbol: ve,
      reportInaccessibleThisError: Be,
      reportInaccessibleUniqueSymbolError: $e,
      reportCyclicStructureError: Ue,
      reportPrivateInBaseOfClassExpression: Te,
      reportLikelyUnsafeImportRequiredError: We,
      reportTruncationError: Oe,
      moduleResolverHost: O,
      trackReferencedAmbientModule: W,
      trackExternalModuleSymbolOfImportTypeNode: pe,
      reportNonlocalAugmentation: Me,
      reportNonSerializableProperty: Xe,
      reportImportTypeNodeResolutionModeOverride: He
    };
    let B, V, H, te, X, Y;
    const P = e.getEmitResolver(), de = e.getCompilerOptions(), { noResolve: ne, stripInternal: ye } = de;
    return st;
    function ie(j) {
      if (j) {
        y = y || /* @__PURE__ */ new Set();
        for (const je of j)
          y.add(je);
      }
    }
    function W(j, je) {
      const Qe = P.getTypeReferenceDirectivesForSymbol(je, 67108863);
      if (Ie(Qe))
        return ie(Qe);
      const Ke = er(j);
      te.set(Ic(Ke), Ke);
    }
    function ce(j) {
      if (j.accessibility === 0) {
        if (j && j.aliasesToMakeVisible)
          if (!h)
            h = j.aliasesToMakeVisible;
          else
            for (const je of j.aliasesToMakeVisible)
              c_(h, je);
      } else {
        const je = r(j);
        if (je)
          return je.typeName ? e.addDiagnostic(Rr(j.errorNode || je.errorNode, je.diagnosticMessage, El(je.typeName), j.errorSymbolName, j.errorModuleName)) : e.addDiagnostic(Rr(j.errorNode || je.errorNode, je.diagnosticMessage, j.errorSymbolName, j.errorModuleName)), !0;
      }
      return !1;
    }
    function pe(j) {
      o || (L || (L = [])).push(j);
    }
    function ve(j, je, Qe) {
      if (j.flags & 262144)
        return !1;
      const Ke = ce(P.isSymbolAccessible(j, je, Qe, !0));
      return ie(P.getTypeReferenceDirectivesForSymbol(j, Qe)), Ke;
    }
    function Te(j) {
      (B || V) && e.addDiagnostic(Rr(B || V, _.Property_0_of_exported_class_expression_may_not_be_private_or_protected, j));
    }
    function ee() {
      return B ? Ls(B) : V && Aa(V) ? Ls(Aa(V)) : V && Mc(V) ? V.isExportEquals ? "export=" : "default" : "(Missing)";
    }
    function $e() {
      (B || V) && e.addDiagnostic(Rr(B || V, _.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, ee(), "unique symbol"));
    }
    function Ue() {
      (B || V) && e.addDiagnostic(Rr(B || 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() {
      (B || V) && e.addDiagnostic(Rr(B || V, _.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, ee(), "this"));
    }
    function We(j) {
      (B || V) && e.addDiagnostic(Rr(B || 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() {
      (B || V) && e.addDiagnostic(Rr(B || V, _.The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed));
    }
    function Me(j, je, Qe) {
      var Ke;
      const Ut = (Ke = je.declarations) == null ? void 0 : Ke.find((Sn) => er(Sn) === j), ln = yn(Qe.declarations, (Sn) => er(Sn) !== j);
      if (Ut && ln)
        for (const Sn of ln)
          e.addDiagnostic(qo(Rr(Sn, _.Declaration_augments_declaration_in_another_file_This_cannot_be_serialized), Rr(Ut, _.This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file)));
    }
    function Xe(j) {
      (B || V) && e.addDiagnostic(Rr(B || V, _.The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized, j));
    }
    function He() {
      !ON() && (B || V) && e.addDiagnostic(Rr(B || 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, je) {
      const Qe = r;
      r = (Ut) => Ut.errorNode && j5(Ut.errorNode) ? xy(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 Ke = P.getDeclarationStatementsForSourceFile(j, j1, k, je);
      return r = Qe, Ke;
    }
    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 Wt = !1;
        const it = I.createBundle(en(j.sourceFiles, (Z) => {
          if (Z.isDeclarationFile)
            return;
          if (Wt = Wt || Z.hasNoDefaultLib, H = Z, d = Z, h = void 0, A = !1, b = /* @__PURE__ */ new Map(), r = t, l = !1, f = !1, Ct(Z, te), Et(Z, X), nf(Z) || d_(Z)) {
            s = !1, i = !1;
            const q = Xu(Z) ? I.createNodeArray(Fe(Z, !0)) : Xn(Z.statements, pi, Ca);
            return I.updateSourceFile(Z, [I.createModuleDeclaration([I.createModifier(136)], I.createStringLiteral(g3(e.getEmitHost(), Z)), I.createModuleBlock(mt(I.createNodeArray(ir(q)), Z.statements)))], !0, [], [], !1, []);
          }
          i = !0;
          const Re = Xu(Z) ? I.createNodeArray(Fe(Z)) : Xn(Z.statements, pi, Ca);
          return I.updateSourceFile(Z, ir(Re), !0, [], [], !1, []);
        }), fa(j.prepends, (Z) => {
          if (Z.kind === 311) {
            const Re = Bq(Z, "dts", ye);
            return Wt = Wt || !!Re.hasNoDefaultLib, Ct(Re, te), ie(en(Re.typeReferenceDirectives, (q) => [q.fileName, q.resolutionMode])), Et(Re, X), Re;
          }
          return Z;
        }));
        it.syntheticFileReferences = [], it.syntheticTypeReferences = Er(), it.syntheticLibReferences = Sn(), it.hasNoDefaultLib = Wt;
        const K = _i(Jl(Qk(j, O, !0).declarationFilePath)), Pe = pt(it.syntheticFileReferences, K);
        return te.forEach(Pe), it;
      }
      i = !0, l = !1, f = !1, d = j, H = j, r = t, o = !1, s = !1, A = !1, h = void 0, b = /* @__PURE__ */ new Map(), y = void 0, te = Ct(H, /* @__PURE__ */ new Map()), X = Et(H, /* @__PURE__ */ new Map());
      const je = [], Qe = _i(Jl(Qk(j, O, !0).declarationFilePath)), Ke = pt(je, Qe);
      let Ut;
      if (Xu(H))
        Ut = I.createNodeArray(Fe(j)), te.forEach(Ke), Y = yn(Ut, cT);
      else {
        const Wt = Xn(j.statements, pi, Ca);
        Ut = mt(I.createNodeArray(ir(Wt)), j.statements), te.forEach(Ke), Y = yn(Ut, cT), Yc(j) && (!s || l && !f) && (Ut = mt(I.createNodeArray([...Ut, RO(I)]), Ut));
      }
      const ln = I.updateSourceFile(j, Ut, !0, je, Er(), j.hasNoDefaultLib, Sn());
      return ln.exportedModulesFromDeclarationEmit = L, ln;
      function Sn() {
        return Do(X.keys(), (Wt) => ({ fileName: Wt, pos: -1, end: -1 }));
      }
      function Er() {
        return y ? fa(Do(y.keys()), ue) : [];
      }
      function ue([Wt, it]) {
        if (Y) {
          for (const K of Y)
            if (ru(K) && jm(K.moduleReference)) {
              const Pe = K.moduleReference.expression;
              if (Es(Pe) && Pe.text === Wt)
                return;
            } else if (Ul(K) && Go(K.moduleSpecifier) && K.moduleSpecifier.text === Wt)
              return;
        }
        return { fileName: Wt, pos: -1, end: -1, ...it ? { resolutionMode: it } : void 0 };
      }
      function pt(Wt, it) {
        return (K) => {
          let Pe;
          if (K.isDeclarationFile)
            Pe = K.fileName;
          else {
            if (o && wi(j.sourceFiles, K))
              return;
            const Z = Qk(K, O, !0);
            Pe = Z.declarationFilePath || Z.jsFilePath || K.fileName;
          }
          if (Pe) {
            const Z = A5(de, H, js(it, O.getCurrentDirectory(), O.getCanonicalFileName), js(Pe, O.getCurrentDirectory(), O.getCanonicalFileName), O);
            if (!vf(Z)) {
              ie([[
                Z,
                void 0
              ]]);
              return;
            }
            let Re = WS(it, Pe, O.getCurrentDirectory(), O.getCanonicalFileName, !1);
            if (ba(Re, "./") && gA(Re) && (Re = Re.substring(2)), ba(Re, "node_modules/") || Bx(Re))
              return;
            Wt.push({ pos: -1, end: -1, fileName: Re });
          }
        };
      }
    }
    function Ct(j, je) {
      return ne || !kT(j) && Xu(j) || ze(j.referencedFiles, (Qe) => {
        const Ke = O.getSourceFileFromReference(j, Qe);
        Ke && je.set(Ic(Ke), Ke);
      }), je;
    }
    function Et(j, je) {
      return ze(j.libReferenceDirectives, (Qe) => {
        O.getLibFileFromReference(Qe) && je.set(D_(Qe.fileName), !0);
      }), je;
    }
    function Vt(j) {
      if (j.kind === 79)
        return j;
      return j.kind === 204 ? I.updateArrayBindingPattern(j, Xn(j.elements, je, CM)) : I.updateObjectBindingPattern(j, Xn(j.elements, je, us));
      function je(Qe) {
        return Qe.kind === 229 ? Qe : Qe.propertyName && Ve(Qe.propertyName) && Ve(Qe.name) && !Qe.symbol.isReferenced && !f3(Qe.propertyName) ? I.updateBindingElement(Qe, Qe.dotDotDotToken, void 0, Qe.propertyName, at(Qe) ? Qe.initializer : void 0) : I.updateBindingElement(Qe, Qe.dotDotDotToken, Qe.propertyName, Vt(Qe.name), at(Qe) ? Qe.initializer : void 0);
      }
    }
    function tt(j, je, Qe) {
      let Ke;
      A || (Ke = r, r = xy(j));
      const Ut = I.updateParameterDeclaration(j, y3e(j, je), j.dotDotDotToken, Vt(j.name), P.isOptionalParameter(j) ? j.questionToken || I.createToken(57) : void 0, Xt(j, Qe || j.type, !0), an(j));
      return A || (r = Ke), Ut;
    }
    function at(j) {
      return v3e(j) && P.isLiteralConstDeclaration(ga(j));
    }
    function an(j) {
      if (at(j))
        return P.createLiteralConstValue(ga(j), k);
    }
    function Xt(j, je, Qe) {
      if (!Qe && Pd(j, 8) || at(j))
        return;
      const Ke = j.kind === 166 && (P.isRequiredInitializedParameter(j) || P.isOptionalUninitializedParameterProperty(j));
      if (je && !Ke)
        return ct(je, lr, Mi);
      if (!ga(j))
        return je ? ct(je, lr, Mi) : I.createKeywordTypeNode(131);
      if (j.kind === 175)
        return I.createKeywordTypeNode(131);
      B = j.name;
      let Ut;
      if (A || (Ut = r, r = xy(j)), j.kind === 257 || j.kind === 205)
        return ln(P.createTypeOfDeclaration(j, d, j1, k));
      if (j.kind === 166 || j.kind === 169 || j.kind === 168)
        return xf(j) || !j.initializer ? ln(P.createTypeOfDeclaration(j, d, j1, k, Ke)) : ln(P.createTypeOfDeclaration(j, d, j1, k, Ke) || P.createTypeOfExpression(j.initializer, d, j1, k));
      return ln(P.createReturnTypeOfSignatureDeclaration(j, d, j1, k));
      function ln(Sn) {
        return B = void 0, A || (r = Ut), Sn || I.createKeywordTypeNode(131);
      }
    }
    function Pn(j) {
      switch (j = ga(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 Wn(j) {
      var je;
      if (j.body)
        return !0;
      const Qe = (je = j.symbol.declarations) == null ? void 0 : je.filter((Ke) => ml(Ke) && !Ke.body);
      return !Qe || Qe.indexOf(j) === Qe.length - 1;
    }
    function In(j) {
      return kl(j) ? !1 : Ja(j.name) ? kt(j.name.elements, In) : P.isDeclarationVisible(j);
    }
    function Yt(j, je, Qe) {
      if (Pd(j, 8))
        return I.createNodeArray();
      const Ke = en(je, (Ut) => tt(Ut, Qe));
      return Ke ? I.createNodeArray(Ke, je.hasTrailingComma) : I.createNodeArray();
    }
    function _r(j, je) {
      let Qe;
      if (!je) {
        const Ke = x1(j);
        Ke && (Qe = [tt(Ke)]);
      }
      if (Yf(j)) {
        let Ke;
        if (!je) {
          const Ut = qI(j);
          if (Ut) {
            const ln = re(j, P.getAllAccessorDeclarations(j));
            Ke = tt(Ut, void 0, ln);
          }
        }
        Ke || (Ke = I.createParameterDeclaration(void 0, void 0, "value")), Qe = Bn(Qe, Ke);
      }
      return I.createNodeArray(Qe || rt);
    }
    function Ai(j, je) {
      return Pd(j, 8) ? void 0 : Xn(je, lr, Pc);
    }
    function Ki(j) {
      return Hi(j) || Qp(j) || Wc(j) || wl(j) || Qu(j) || qa(j) || Ex(j) || Ck(j);
    }
    function Xi(j, je) {
      const Qe = P.isEntityNameVisible(j, je);
      ce(Qe), ie(P.getTypeReferenceDirectivesForEntityName(j));
    }
    function Nr(j, je) {
      return bf(j) && bf(je) && (j.jsDoc = je.jsDoc), Gl(j, Gm(je));
    }
    function At(j, je) {
      if (je) {
        if (s = s || j.kind !== 264 && j.kind !== 202, Es(je))
          if (o) {
            const Qe = Lue(e.getEmitHost(), P, j);
            if (Qe)
              return I.createStringLiteral(Qe);
          } else {
            const Qe = P.getSymbolOfExternalModuleSpecifier(je);
            Qe && (L || (L = [])).push(Qe);
          }
        return je;
      }
    }
    function vn(j) {
      if (P.isDeclarationVisible(j))
        if (j.moduleReference.kind === 280) {
          const je = MI(j);
          return I.updateImportEqualsDeclaration(j, j.modifiers, j.isTypeOnly, j.name, I.updateExternalModuleReference(j.moduleReference, At(j, je)));
        } else {
          const je = r;
          return r = xy(j), Xi(j.moduleReference, d), r = je, j;
        }
    }
    function Ht(j) {
      if (!j.importClause)
        return I.updateImportDeclaration(j, j.modifiers, j.importClause, At(j, j.moduleSpecifier), dn(j.assertClause));
      const je = j.importClause && j.importClause.name && P.isDeclarationVisible(j.importClause) ? j.importClause.name : void 0;
      if (!j.importClause.namedBindings)
        return je && I.updateImportDeclaration(j, j.modifiers, I.updateImportClause(j.importClause, j.importClause.isTypeOnly, je, void 0), At(j, j.moduleSpecifier), dn(j.assertClause));
      if (j.importClause.namedBindings.kind === 271) {
        const Ke = P.isDeclarationVisible(j.importClause.namedBindings) ? j.importClause.namedBindings : void 0;
        return je || Ke ? I.updateImportDeclaration(j, j.modifiers, I.updateImportClause(j.importClause, j.importClause.isTypeOnly, je, Ke), At(j, j.moduleSpecifier), dn(j.assertClause)) : void 0;
      }
      const Qe = fa(j.importClause.namedBindings.elements, (Ke) => P.isDeclarationVisible(Ke) ? Ke : void 0);
      if (Qe && Qe.length || je)
        return I.updateImportDeclaration(j, j.modifiers, I.updateImportClause(j.importClause, j.importClause.isTypeOnly, je, Qe && Qe.length ? I.updateNamedImports(j.importClause.namedBindings, Qe) : void 0), At(j, j.moduleSpecifier), dn(j.assertClause));
      if (P.isImportRequiredByAugmentation(j))
        return I.updateImportDeclaration(j, j.modifiers, void 0, At(j, j.moduleSpecifier), dn(j.assertClause));
    }
    function dn(j) {
      if (Ux(j) !== void 0)
        return ON() || e.addDiagnostic(Rr(j, _.resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next)), j;
    }
    function ir(j) {
      for (; Ie(h); ) {
        const Qe = h.shift();
        if (!GM(Qe))
          return D.fail(`Late replaced statement was found which is not handled by the declaration transformer!: ${D.formatSyntaxKind(Qe.kind)}`);
        const Ke = i;
        i = Qe.parent && Hi(Qe.parent) && !(Yc(Qe.parent) && o);
        const Ut = nn(Qe);
        i = Ke, b.set(Ic(Qe), Ut);
      }
      return Xn(j, je, Ca);
      function je(Qe) {
        if (GM(Qe)) {
          const Ke = Ic(Qe);
          if (b.has(Ke)) {
            const Ut = b.get(Ke);
            return b.delete(Ke), Ut && ((Ba(Ut) ? kt(Ut, LM) : LM(Ut)) && (l = !0), Hi(Qe.parent) && (Ba(Ut) ? kt(Ut, WR) : WR(Ut)) && (s = !0)), Ut;
          }
        }
        return Qe;
      }
    }
    function lr(j) {
      if (gt(j) || mu(j) && (Pn(j) || Iv(j) && !P.isLateBound(ga(j))) || qa(j) && P.isImplementationOfOverload(j) || Mfe(j))
        return;
      let je;
      Ki(j) && (je = d, d = j);
      const Qe = r, Ke = j5(j), Ut = A;
      let ln = (j.kind === 184 || j.kind === 197) && j.parent.kind !== 262;
      if ((nl(j) || Th(j)) && Pd(j, 8))
        return j.symbol && j.symbol.declarations && j.symbol.declarations[0] !== j ? void 0 : Sn(I.createPropertyDeclaration(_t(j), j.name, void 0, void 0, void 0));
      if (Ke && !A && (r = xy(j)), xk(j) && Xi(j.exprName, d), ln && (A = !0), E3e(j))
        switch (j.kind) {
          case 230: {
            (Zd(j.expression) || jc(j.expression)) && Xi(j.expression, d);
            const Er = Gn(j, lr, e);
            return Sn(I.updateExpressionWithTypeArguments(Er, Er.expression, Er.typeArguments));
          }
          case 180: {
            Xi(j.typeName, d);
            const Er = Gn(j, lr, e);
            return Sn(I.updateTypeReferenceNode(Er, Er.typeName, Er.typeArguments));
          }
          case 177:
            return Sn(I.updateConstructSignature(j, Ai(j, j.typeParameters), Yt(j, j.parameters), Xt(j, j.type)));
          case 173: {
            const Er = I.createConstructorDeclaration(_t(j), Yt(j, j.parameters, 0), void 0);
            return Sn(Er);
          }
          case 171: {
            if (Di(j.name))
              return Sn(void 0);
            const Er = I.createMethodDeclaration(_t(j), void 0, j.name, j.questionToken, Ai(j, j.typeParameters), Yt(j, j.parameters), Xt(j, j.type), void 0);
            return Sn(Er);
          }
          case 174: {
            if (Di(j.name))
              return Sn(void 0);
            const Er = re(j, P.getAllAccessorDeclarations(j));
            return Sn(I.updateGetAccessorDeclaration(j, _t(j), j.name, _r(j, Pd(j, 8)), Xt(j, Er), void 0));
          }
          case 175:
            return Di(j.name) ? Sn(void 0) : Sn(I.updateSetAccessorDeclaration(j, _t(j), j.name, _r(j, Pd(j, 8)), void 0));
          case 169:
            return Di(j.name) ? Sn(void 0) : Sn(I.updatePropertyDeclaration(j, _t(j), j.name, j.questionToken, Xt(j, j.type), an(j)));
          case 168:
            return Di(j.name) ? Sn(void 0) : Sn(I.updatePropertySignature(j, _t(j), j.name, j.questionToken, Xt(j, j.type)));
          case 170:
            return Di(j.name) ? Sn(void 0) : Sn(I.updateMethodSignature(j, _t(j), j.name, j.questionToken, Ai(j, j.typeParameters), Yt(j, j.parameters), Xt(j, j.type)));
          case 176:
            return Sn(I.updateCallSignature(j, Ai(j, j.typeParameters), Yt(j, j.parameters), Xt(j, j.type)));
          case 178:
            return Sn(I.updateIndexSignature(j, _t(j), Yt(j, j.parameters), ct(j.type, lr, Mi) || I.createKeywordTypeNode(131)));
          case 257:
            return Ja(j.name) ? Ar(j.name) : (ln = !0, A = !0, Sn(I.updateVariableDeclaration(j, j.name, void 0, Xt(j, j.type), an(j))));
          case 165:
            return Ni(j) && (j.default || j.constraint) ? Sn(I.updateTypeParameterDeclaration(j, j.modifiers, j.name, void 0, void 0)) : Sn(Gn(j, lr, e));
          case 191: {
            const Er = ct(j.checkType, lr, Mi), ue = ct(j.extendsType, lr, Mi), pt = d;
            d = j.trueType;
            const Wt = ct(j.trueType, lr, Mi);
            d = pt;
            const it = ct(j.falseType, lr, Mi);
            return D.assert(Er), D.assert(ue), D.assert(Wt), D.assert(it), Sn(I.updateConditionalTypeNode(j, Er, ue, Wt, it));
          }
          case 181:
            return Sn(I.updateFunctionTypeNode(j, Xn(j.typeParameters, lr, Pc), Yt(j, j.parameters), D.checkDefined(ct(j.type, lr, Mi))));
          case 182:
            return Sn(I.updateConstructorTypeNode(j, _t(j), Xn(j.typeParameters, lr, Pc), Yt(j, j.parameters), D.checkDefined(ct(j.type, lr, Mi))));
          case 202:
            return V0(j) ? Sn(I.updateImportTypeNode(j, I.updateLiteralTypeNode(j.argument, At(j, j.argument.literal)), j.assertions, j.qualifier, Xn(j.typeArguments, lr, Mi), j.isTypeOf)) : Sn(j);
          default:
            D.assertNever(j, `Attempted to process unhandled node kind: ${D.formatSyntaxKind(j.kind)}`);
        }
      return pC(j) && ac(H, j.pos).line === ac(H, j.end).line && sr(j, 1), Sn(Gn(j, lr, e));
      function Sn(Er) {
        return Er && Ke && Iv(j) && ke(j), Ki(j) && (d = je), Ke && !A && (r = Qe), ln && (A = Ut), Er === j ? Er : Er && jr(Nr(Er, j), j);
      }
    }
    function Ni(j) {
      return j.parent.kind === 171 && Pd(j.parent, 8);
    }
    function pi(j) {
      if (!b3e(j) || gt(j))
        return;
      switch (j.kind) {
        case 275:
          return Hi(j.parent) && (s = !0), f = !0, I.updateExportDeclaration(j, j.modifiers, j.isTypeOnly, j.exportClause, At(j, j.moduleSpecifier), Ux(j.assertClause) ? j.assertClause : void 0);
        case 274: {
          if (Hi(j.parent) && (s = !0), f = !0, j.expression.kind === 79)
            return j;
          {
            const Qe = I.createUniqueName("_default", 16);
            r = () => ({
              diagnosticMessage: _.Default_export_of_the_module_has_or_is_using_private_name_0,
              errorNode: j
            }), V = j;
            const Ke = I.createVariableDeclaration(Qe, void 0, P.createTypeOfExpression(j.expression, j, j1, k), void 0);
            V = void 0;
            const Ut = I.createVariableStatement(i ? [I.createModifier(136)] : [], I.createVariableDeclarationList([Ke], 2));
            return Nr(Ut, j), dO(j), [Ut, I.updateExportAssignment(j, j.modifiers, Qe)];
          }
        }
      }
      const je = nn(j);
      return b.set(Ic(j), je), j;
    }
    function Nn(j) {
      if (ru(j) || Pd(j, 1024) || !q_(j))
        return j;
      const je = I.createModifiersFromModifierFlags(Ru(j) & 258046);
      return I.updateModifiers(j, je);
    }
    function nn(j) {
      if (h)
        for (; N4(h, j); )
          ;
      if (gt(j))
        return;
      switch (j.kind) {
        case 268:
          return vn(j);
        case 269:
          return Ht(j);
      }
      if (mu(j) && Pn(j) || qa(j) && P.isImplementationOfOverload(j))
        return;
      let je;
      Ki(j) && (je = d, d = j);
      const Qe = j5(j), Ke = r;
      Qe && (r = xy(j));
      const Ut = i;
      switch (j.kind) {
        case 262: {
          i = !1;
          const Sn = ln(I.updateTypeAliasDeclaration(j, _t(j), j.name, Xn(j.typeParameters, lr, Pc), D.checkDefined(ct(j.type, lr, Mi))));
          return i = Ut, Sn;
        }
        case 261:
          return ln(I.updateInterfaceDeclaration(j, _t(j), j.name, Ai(j, j.typeParameters), he(j.heritageClauses), Xn(j.members, lr, rT)));
        case 259: {
          const Sn = ln(I.updateFunctionDeclaration(j, _t(j), void 0, j.name, Ai(j, j.typeParameters), Yt(j, j.parameters), Xt(j, j.type), void 0));
          if (Sn && P.isExpandoFunctionDeclaration(j) && Wn(j)) {
            const Er = P.getPropertiesOfContainerFunction(j), ue = Wm.createModuleDeclaration(void 0, Sn.name || I.createIdentifier("_default"), I.createModuleBlock([]), 16);
            Bo(ue, d), ue.locals = ao(Er), ue.symbol = Er[0].parent;
            const pt = [];
            let Wt = fa(Er, (q) => {
              if (!q.valueDeclaration || !Mr(q.valueDeclaration))
                return;
              r = xy(q.valueDeclaration);
              const Rt = P.createTypeOfDeclaration(q.valueDeclaration, ue, j1, k);
              r = Ke;
              const ht = ta(q.escapedName), dt = ix(ht), fn = dt ? I.getGeneratedNameForNode(q.valueDeclaration) : I.createIdentifier(ht);
              dt && pt.push([fn, ht]);
              const Qn = I.createVariableDeclaration(fn, void 0, Rt, void 0);
              return I.createVariableStatement(dt ? void 0 : [I.createToken(93)], I.createVariableDeclarationList([Qn]));
            });
            pt.length ? Wt.push(I.createExportDeclaration(void 0, !1, I.createNamedExports(en(pt, ([q, Rt]) => I.createExportSpecifier(!1, q, Rt))))) : Wt = fa(Wt, (q) => I.updateModifiers(q, 0));
            const it = I.createModuleDeclaration(_t(j), j.name, I.createModuleBlock(Wt), 16);
            if (!Pd(Sn, 1024))
              return [Sn, it];
            const K = I.createModifiersFromModifierFlags(Ru(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 Hi(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 = l, ue = f;
            f = !1, l = !1;
            const pt = Xn(Sn.statements, pi, Ca);
            let Wt = ir(pt);
            j.flags & 16777216 && (l = !1), !qp(j) && !xe(Wt) && !f && (l ? Wt = I.createNodeArray([...Wt, RO(I)]) : Wt = Xn(Wt, Nn, Ca));
            const it = I.updateModuleBlock(Sn, Wt);
            i = Ut, l = Er, f = ue;
            const K = _t(j);
            return ln(I.updateModuleDeclaration(j, K, g1(j) ? At(j, j.name) : j.name, it));
          } else {
            i = Ut;
            const Er = _t(j);
            i = !1, ct(Sn, pi);
            const ue = Ic(Sn), pt = b.get(ue);
            return b.delete(ue), ln(I.updateModuleDeclaration(j, Er, j.name, pt));
          }
        }
        case 260: {
          B = j.name, V = j;
          const Sn = I.createNodeArray(_t(j)), Er = Ai(j, j.typeParameters), ue = yh(j);
          let pt;
          if (ue) {
            const Re = r;
            pt = nR(wo(ue.parameters, (q) => {
              if (!Kr(q, 16476) || gt(q))
                return;
              if (r = xy(q), q.name.kind === 79)
                return Nr(I.createPropertyDeclaration(_t(q), q.name, q.questionToken, Xt(q, q.type), an(q)), q);
              return Rt(q.name);
              function Rt(ht) {
                let dt;
                for (const fn of ht.elements)
                  kl(fn) || (Ja(fn.name) && (dt = ma(dt, Rt(fn.name))), dt = dt || [], dt.push(I.createPropertyDeclaration(_t(q), fn.name, void 0, Xt(fn, void 0), void 0)));
                return dt;
              }
            })), r = Re;
          }
          const it = kt(j.members, (Re) => !!Re.name && Di(Re.name)) ? [
            I.createPropertyDeclaration(void 0, I.createPrivateIdentifier("#private"), void 0, void 0, void 0)
          ] : void 0, K = ma(ma(it, pt), Xn(j.members, lr, Ml)), Pe = I.createNodeArray(K), Z = Jp(j);
          if (Z && !jc(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, j1, k), void 0), ht = I.createVariableStatement(i ? [I.createModifier(136)] : [], I.createVariableDeclarationList([Rt], 2)), dt = I.createNodeArray(en(j.heritageClauses, (fn) => {
              if (fn.token === 94) {
                const Qn = r;
                r = xy(fn.types[0]);
                const ai = I.updateHeritageClause(fn, en(fn.types, (Si) => I.updateExpressionWithTypeArguments(Si, q, Xn(Si.typeArguments, lr, Mi))));
                return r = Qn, ai;
              }
              return I.updateHeritageClause(fn, Xn(I.createNodeArray(yn(fn.types, (Qn) => jc(Qn.expression) || Qn.expression.kind === 104)), lr, by));
            }));
            return [ht, ln(I.updateClassDeclaration(j, Sn, j.name, Er, dt, Pe))];
          } else {
            const Re = he(j.heritageClauses);
            return ln(I.updateClassDeclaration(j, Sn, j.name, Er, Re, Pe));
          }
        }
        case 240:
          return ln(Mn(j));
        case 263:
          return ln(I.updateEnumDeclaration(j, I.createNodeArray(_t(j)), j.name, I.createNodeArray(fa(j.members, (Sn) => {
            if (gt(Sn))
              return;
            const Er = P.getConstantValue(Sn);
            return Nr(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 ln(Sn) {
        return Ki(j) && (d = je), Qe && (r = Ke), j.kind === 264 && (i = Ut), Sn === j ? Sn : (V = void 0, B = void 0, Sn && jr(Nr(Sn, j), j));
      }
    }
    function Mn(j) {
      if (!ze(j.declarationList.declarations, In))
        return;
      const je = Xn(j.declarationList.declarations, lr, zi);
      if (Ie(je))
        return I.updateVariableStatement(j, I.createNodeArray(_t(j)), I.updateVariableDeclarationList(j.declarationList, je));
    }
    function Ar(j) {
      return id(fa(j.elements, (je) => Vr(je)));
    }
    function Vr(j) {
      if (j.kind !== 229 && j.name)
        return In(j) ? Ja(j.name) ? Ar(j.name) : I.createVariableDeclaration(j.name, void 0, Xt(j, void 0), void 0) : void 0;
    }
    function ke(j) {
      let je;
      A || (je = r, r = yhe(j)), B = j.name, D.assert(P.isLateBound(ga(j)));
      const Ke = j.name.expression;
      Xi(Ke, d), A || (r = je), B = void 0;
    }
    function gt(j) {
      return !!ye && !!j && dX(j, H);
    }
    function Nt(j) {
      return Mc(j) || Xl(j);
    }
    function xe(j) {
      return kt(j, Nt);
    }
    function _t(j) {
      const je = Ru(j), Qe = _e(j);
      return je === Qe ? zK(j.modifiers, (Ke) => ii(Ke, lo), lo) : I.createModifiersFromModifierFlags(Qe);
    }
    function _e(j) {
      let je = 241147, Qe = i && !g3e(j) ? 2 : 0;
      const Ke = j.parent.kind === 308;
      return (!Ke || o && Ke && Yc(j.parent)) && (je ^= 2, Qe = 0), Ehe(j, je, Qe);
    }
    function re(j, je) {
      let Qe = _X(j);
      return !Qe && j !== je.firstAccessor && (Qe = _X(je.firstAccessor), r = xy(je.firstAccessor)), !Qe && je.secondAccessor && j !== je.secondAccessor && (Qe = _X(je.secondAccessor), r = xy(je.secondAccessor)), Qe;
    }
    function he(j) {
      return I.createNodeArray(yn(en(j, (je) => I.updateHeritageClause(je, Xn(I.createNodeArray(yn(je.types, (Qe) => jc(Qe.expression) || je.token === 94 && Qe.expression.kind === 104)), lr, by))), (je) => je.types && !!je.types.length));
    }
  }
  function g3e(e) {
    return e.kind === 261;
  }
  function y3e(e, t, r) {
    return N.createModifiersFromModifierFlags(Ehe(e, t, r));
  }
  function Ehe(e, t = 258043, r = 0) {
    let i = Ru(e) & t | r;
    return i & 1024 && !(i & 1) && (i ^= 1), i & 1024 && i & 2 && (i ^= 2), i;
  }
  function _X(e) {
    if (e)
      return e.kind === 174 ? e.type : e.parameters.length > 0 ? e.parameters[0].type : void 0;
  }
  function v3e(e) {
    switch (e.kind) {
      case 169:
      case 168:
        return !Pd(e, 8);
      case 166:
      case 257:
        return !0;
    }
    return !1;
  }
  function b3e(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 E3e(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 j1, T3e = C({
    "src/compiler/transformers/declarations.ts"() {
      wa(), FK(), j1 = 531469;
    }
  });
  function S3e(e) {
    switch (e) {
      case 99:
      case 7:
      case 6:
      case 5:
        return uX;
      case 4:
        return hhe;
      case 100:
      case 199:
        return ghe;
      default:
        return lX;
    }
  }
  function pX(e, t, r) {
    return {
      scriptTransformers: x3e(e, t, r),
      declarationTransformers: A3e(t)
    };
  }
  function x3e(e, t, r) {
    if (r)
      return rt;
    const i = $o(e), o = tu(e), s = KN(e), l = [];
    return bi(l, t && en(t.before, She)), l.push(Yme), e.experimentalDecorators ? l.push(ehe) : (i < 99 || !s) && l.push(the), l.push(Qme), $z(e) && l.push(che), i < 99 && l.push(she), i < 8 && l.push(ohe), i < 7 && l.push(ahe), i < 6 && l.push(ihe), i < 5 && l.push(rhe), i < 4 && l.push(nhe), i < 3 && l.push(uhe), i < 2 && (l.push(fhe), l.push(phe)), l.push(S3e(o)), i < 1 && l.push(_he), bi(l, t && en(t.after, She)), l;
  }
  function A3e(e) {
    const t = [];
    return t.push(fX), bi(t, e && en(e.afterDeclarations, L3e)), t;
  }
  function C3e(e) {
    return (t) => dJ(t) ? e.transformBundle(t) : e.transformSourceFile(t);
  }
  function The(e, t) {
    return (r) => {
      const i = e(r);
      return typeof i == "function" ? t(r, i) : C3e(i);
    };
  }
  function She(e) {
    return The(e, J_);
  }
  function L3e(e) {
    return The(e, (t, r) => r);
  }
  function Yk(e, t) {
    return t;
  }
  function b8(e, t, r) {
    r(e, t);
  }
  function E8(e, t, r, i, o, s, l) {
    var f, d;
    const y = new Array(361);
    let h, b, A, L = 0, I = [], O = [], k = [], B = [], V = 0, H = !1, te = [], X = 0, Y, P, de = Yk, ne = b8, ye = 0;
    const ie = [], W = {
      factory: r,
      getCompilerOptions: () => i,
      getEmitResolver: () => e,
      getEmitHost: () => t,
      getEmitHelperFactory: yd(() => vfe(W)),
      startLexicalEnvironment: Fe,
      suspendLexicalEnvironment: st,
      resumeLexicalEnvironment: Ct,
      endLexicalEnvironment: Et,
      setLexicalEnvironmentFlags: Vt,
      getLexicalEnvironmentFlags: tt,
      hoistVariableDeclaration: Me,
      hoistFunctionDeclaration: Xe,
      addInitializationStatement: He,
      startBlockScope: at,
      endBlockScope: an,
      addBlockScopedVariable: Xt,
      requestEmitHelper: Pn,
      readEmitHelpers: Wn,
      enableSubstitution: ee,
      enableEmitNotification: Be,
      isSubstitutionEnabled: $e,
      isEmitNotificationEnabled: We,
      get onSubstituteNode() {
        return de;
      },
      set onSubstituteNode(Yt) {
        D.assert(ye < 1, "Cannot modify transformation hooks after initialization has completed."), D.assert(Yt !== void 0, "Value must not be 'undefined'"), de = Yt;
      },
      get onEmitNode() {
        return ne;
      },
      set onEmitNode(Yt) {
        D.assert(ye < 1, "Cannot modify transformation hooks after initialization has completed."), D.assert(Yt !== void 0, "Value must not be 'undefined'"), ne = Yt;
      },
      addDiagnostic(Yt) {
        ie.push(Yt);
      }
    };
    for (const Yt of o)
      Wq(er(ga(Yt)));
    ic("beforeTransform");
    const ce = s.map((Yt) => Yt(W)), pe = (Yt) => {
      for (const _r of ce)
        Yt = _r(Yt);
      return Yt;
    };
    ye = 1;
    const ve = [];
    for (const Yt of o)
      (f = yi) == null || f.push(yi.Phase.Emit, "transformNodes", Yt.kind === 308 ? { path: Yt.path } : { kind: Yt.kind, pos: Yt.pos, end: Yt.end }), ve.push((l ? pe : Te)(Yt)), (d = yi) == null || d.pop();
    return ye = 2, ic("afterTransform"), Hf("transformTime", "beforeTransform", "afterTransform"), {
      transformed: ve,
      substituteNode: Ue,
      emitNodeWithNotification: Oe,
      isEmitNotificationEnabled: We,
      dispose: In,
      diagnostics: ie
    };
    function Te(Yt) {
      return Yt && (!Hi(Yt) || !Yt.isDeclarationFile) ? pe(Yt) : Yt;
    }
    function ee(Yt) {
      D.assert(ye < 2, "Cannot modify the transformation context after transformation has completed."), y[Yt] |= 1;
    }
    function $e(Yt) {
      return (y[Yt.kind] & 1) !== 0 && (go(Yt) & 8) === 0;
    }
    function Ue(Yt, _r) {
      return D.assert(ye < 3, "Cannot substitute a node after the result is disposed."), _r && $e(_r) && de(Yt, _r) || _r;
    }
    function Be(Yt) {
      D.assert(ye < 2, "Cannot modify the transformation context after transformation has completed."), y[Yt] |= 2;
    }
    function We(Yt) {
      return (y[Yt.kind] & 2) !== 0 || (go(Yt) & 4) !== 0;
    }
    function Oe(Yt, _r, Ai) {
      D.assert(ye < 3, "Cannot invoke TransformationResult callbacks after the result is disposed."), _r && (We(_r) ? ne(Yt, _r, Ai) : Ai(Yt, _r));
    }
    function Me(Yt) {
      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 = sr(r.createVariableDeclaration(Yt), 128);
      h ? h.push(_r) : h = [_r], L & 1 && (L |= 2);
    }
    function Xe(Yt) {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed."), sr(Yt, 2097152), b ? b.push(Yt) : b = [Yt];
    }
    function He(Yt) {
      D.assert(ye > 0, "Cannot modify the lexical environment during initialization."), D.assert(ye < 2, "Cannot modify the lexical environment after transformation has completed."), sr(Yt, 2097152), A ? A.push(Yt) : A = [Yt];
    }
    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] = b, k[V] = A, B[V] = L, V++, h = void 0, b = 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 Yt;
      if (h || b || A) {
        if (b && (Yt = [...b]), h) {
          const _r = r.createVariableStatement(void 0, r.createVariableDeclarationList(h));
          sr(_r, 2097152), Yt ? Yt.push(_r) : Yt = [_r];
        }
        A && (Yt ? Yt = [...Yt, ...A] : Yt = [...A]);
      }
      return V--, h = I[V], b = O[V], A = k[V], L = B[V], V === 0 && (I = [], O = [], k = [], B = []), Yt;
    }
    function Vt(Yt, _r) {
      L = _r ? L | Yt : L & ~Yt;
    }
    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 an() {
      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 Yt = 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 = []), Yt;
    }
    function Xt(Yt) {
      D.assert(X > 0, "Cannot add a block scoped variable outside of an iteration body."), (Y || (Y = [])).push(Yt);
    }
    function Pn(Yt) {
      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(!Yt.scoped, "Cannot request a scoped emit helper."), Yt.dependencies)
        for (const _r of Yt.dependencies)
          Pn(_r);
      P = Bn(P, Yt);
    }
    function Wn() {
      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 Yt = P;
      return P = void 0, Yt;
    }
    function In() {
      if (ye < 3) {
        for (const Yt of o)
          Wq(er(ga(Yt)));
        h = void 0, I = void 0, b = void 0, O = void 0, de = void 0, ne = void 0, P = void 0, ye = 3;
      }
    }
  }
  var mX, hg, I3e = C({
    "src/compiler/transformer.ts"() {
      wa(), c1(), mX = { scriptTransformers: rt, declarationTransformers: rt }, hg = {
        factory: N,
        getCompilerOptions: () => ({}),
        getEmitResolver: Va,
        getEmitHost: Va,
        getEmitHelperFactory: Va,
        startLexicalEnvironment: io,
        resumeLexicalEnvironment: io,
        suspendLexicalEnvironment: io,
        endLexicalEnvironment: P0,
        setLexicalEnvironmentFlags: io,
        getLexicalEnvironmentFlags: () => 0,
        hoistVariableDeclaration: io,
        hoistFunctionDeclaration: io,
        addInitializationStatement: io,
        startBlockScope: io,
        endBlockScope: P0,
        addBlockScopedVariable: io,
        requestEmitHelper: io,
        readEmitHelpers: Va,
        enableSubstitution: io,
        enableEmitNotification: io,
        isSubstitutionEnabled: Va,
        isEmitNotificationEnabled: Va,
        onSubstituteNode: Yk,
        onEmitNode: b8,
        addDiagnostic: io
      };
    }
  });
  function xhe(e) {
    return sl(e, ".tsbuildinfo");
  }
  function hX(e, t, r, i = !1, o, s) {
    const l = Ba(r) ? r : Cz(e, r, i), f = e.getCompilerOptions();
    if (Hs(f)) {
      const d = e.getPrependNodes();
      if (l.length || d.length) {
        const y = N.createBundle(l, d), h = t(Qk(y, e, i), y);
        if (h)
          return h;
      }
    } else {
      if (!o)
        for (const d of l) {
          const y = t(Qk(d, e, i), d);
          if (y)
            return y;
        }
      if (s) {
        const d = Ay(f);
        if (d)
          return t({ buildInfoPath: d }, void 0);
      }
    }
  }
  function Ay(e) {
    const t = e.configFilePath;
    if (!qN(e))
      return;
    if (e.tsBuildInfoFile)
      return e.tsBuildInfoFile;
    const r = Hs(e);
    let i;
    if (r)
      i = Md(r);
    else {
      if (!t)
        return;
      const o = Md(t);
      i = e.outDir ? e.rootDir ? hv(e.outDir, Lm(e.rootDir, o, !0)) : Pi(e.outDir, du(o)) : o;
    }
    return i + ".tsbuildinfo";
  }
  function $k(e, t) {
    const r = Hs(e), i = e.emitDeclarationOnly ? void 0 : r, o = i && Ahe(i, e), s = t || j_(e) ? Md(r) + ".d.ts" : void 0, l = s && k3(e) ? s + ".map" : void 0, f = Ay(e);
    return { jsFilePath: i, sourceMapFilePath: o, declarationFilePath: s, declarationMapPath: l, buildInfoPath: f };
  }
  function Qk(e, t, r) {
    const i = t.getCompilerOptions();
    if (e.kind === 309)
      return $k(i, r);
    {
      const o = Iue(e.fileName, t, gX(e.fileName, i)), s = d_(e), l = s && QE(e.fileName, o, t.getCurrentDirectory(), !t.useCaseSensitiveFileNames()) === 0, f = i.emitDeclarationOnly || l ? void 0 : o, d = !f || d_(e) ? void 0 : Ahe(f, i), y = r || j_(i) && !s ? kue(e.fileName, t) : void 0, h = y && k3(i) ? y + ".map" : void 0;
      return { jsFilePath: f, sourceMapFilePath: d, declarationFilePath: y, declarationMapPath: h, buildInfoPath: void 0 };
    }
  }
  function Ahe(e, t) {
    return t.sourceMap && !t.inlineSourceMap ? e + ".map" : void 0;
  }
  function gX(e, t) {
    return sl(e, ".json") ? ".json" : t.jsx === 1 && bl(e, [".jsx", ".tsx"]) ? ".jsx" : bl(e, [".mts", ".mjs"]) ? ".mjs" : bl(e, [".cts", ".cjs"]) ? ".cjs" : ".js";
  }
  function Che(e, t, r, i, o) {
    return i ? hv(i, Lm(o ? o() : ew(t, r), e, r)) : e;
  }
  function Zk(e, t, r, i) {
    return I1(Che(e, t, r, t.options.declarationDir || t.options.outDir, i), xz(e));
  }
  function Lhe(e, t, r, i) {
    if (t.options.emitDeclarationOnly)
      return;
    const o = sl(e, ".json"), s = I1(Che(e, t, r, t.options.outDir, i), gX(e, t.options));
    return !o || QE(e, s, D.checkDefined(t.options.configFilePath), r) !== 0 ? s : void 0;
  }
  function Ihe() {
    let e;
    return { addOutput: t, getOutputs: r };
    function t(i) {
      i && (e || (e = [])).push(i);
    }
    function r() {
      return e || rt;
    }
  }
  function khe(e, t) {
    const { jsFilePath: r, sourceMapFilePath: i, declarationFilePath: o, declarationMapPath: s, buildInfoPath: l } = $k(e.options, !1);
    t(r), t(i), t(o), t(s), t(l);
  }
  function whe(e, t, r, i, o) {
    if (ld(t))
      return;
    const s = Lhe(t, e, r, o);
    if (i(s), !sl(t, ".json") && (s && e.options.sourceMap && i(`${s}.map`), j_(e.options))) {
      const l = Zk(t, e, r, o);
      i(l), e.options.declarationMap && i(`${l}.map`);
    }
  }
  function T8(e, t, r, i, o) {
    let s;
    return e.rootDir ? (s = Da(e.rootDir, r), o == null || o(e.rootDir)) : e.composite && e.configFilePath ? (s = _i(Jl(e.configFilePath)), o == null || o(s)) : s = Ghe(t(), r, i), s && s[s.length - 1] !== Ns && (s += Ns), s;
  }
  function ew({ options: e, fileNames: t }, r) {
    return T8(e, () => yn(t, (i) => !(e.noEmitForJsFiles && bl(i, hk)) && !ld(i)), _i(Jl(D.checkDefined(e.configFilePath))), Zl(!r));
  }
  function H5(e, t) {
    const { addOutput: r, getOutputs: i } = Ihe();
    if (Hs(e.options))
      khe(e, r);
    else {
      const o = yd(() => ew(e, t));
      for (const s of e.fileNames)
        whe(e, s, t, r, o);
      r(Ay(e.options));
    }
    return i();
  }
  function k3e(e, t, r) {
    t = Wo(t), D.assert(wi(e.fileNames, t), "Expected fileName to be present in command line");
    const { addOutput: i, getOutputs: o } = Ihe();
    return Hs(e.options) ? khe(e, i) : whe(e, t, r, i), o();
  }
  function yX(e, t) {
    if (Hs(e.options)) {
      const { jsFilePath: o, declarationFilePath: s } = $k(e.options, !1);
      return D.checkDefined(o || s, `project ${e.options.configFilePath} expected to have at least one output`);
    }
    const r = yd(() => ew(e, t));
    for (const o of e.fileNames) {
      if (ld(o))
        continue;
      const s = Lhe(o, e, t, r);
      if (s)
        return s;
      if (!sl(o, ".json") && j_(e.options))
        return Zk(o, e, t, r);
    }
    const i = Ay(e.options);
    return i || D.fail(`project ${e.options.configFilePath} expected to have at least one output`);
  }
  function W5(e, t, r, { scriptTransformers: i, declarationTransformers: o }, s, l, f) {
    var d = t.getCompilerOptions(), y = d.sourceMap || d.inlineSourceMap || k3(d) ? [] : void 0, h = d.listEmittedFiles ? [] : void 0, b = XA(), A = K0(d), L = PN(A), { enter: I, exit: O } = j4("printTime", "beforePrint", "afterPrint"), k, B = !1;
    return I(), hX(t, V, Cz(t, r, f), f, l, !r), O(), {
      emitSkipped: B,
      diagnostics: b.getDiagnostics(),
      emittedFiles: h,
      sourceMaps: y
    };
    function V({ jsFilePath: W, sourceMapFilePath: ce, declarationFilePath: pe, declarationMapPath: ve, buildInfoPath: Te }, ee) {
      var $e, Ue, Be, We, Oe, Me;
      let Xe;
      Te && ee && dJ(ee) && (Xe = _i(Da(Te, t.getCurrentDirectory())), k = {
        commonSourceDirectory: He(t.getCommonSourceDirectory()),
        sourceFiles: ee.sourceFiles.map((Fe) => He(Da(Fe.fileName, t.getCurrentDirectory())))
      }), ($e = yi) == null || $e.push(yi.Phase.Emit, "emitJsFileOrBundle", { jsFilePath: W }), te(ee, W, ce, He), (Ue = yi) == null || Ue.pop(), (Be = yi) == null || Be.push(yi.Phase.Emit, "emitDeclarationFileOrBundle", { declarationFilePath: pe }), X(ee, pe, ve, He), (We = yi) == null || We.pop(), (Oe = yi) == null || Oe.push(yi.Phase.Emit, "emitBuildInfo", { buildInfoPath: Te }), H(k, Te), (Me = yi) == null || Me.pop(), !B && h && (s || (W && h.push(W), ce && h.push(ce), Te && h.push(Te)), s !== 0 && (pe && h.push(pe), ve && h.push(ve)));
      function He(Fe) {
        return u1(Lm(Xe, Fe, t.getCanonicalFileName));
      }
    }
    function H(W, ce) {
      if (!ce || r || B)
        return;
      if (t.isEmitBlocked(ce)) {
        B = !0;
        return;
      }
      const pe = t.getBuildInfo(W) || S8(void 0, W);
      WI(t, b, ce, Dhe(pe), !1, void 0, { buildInfo: pe });
    }
    function te(W, ce, pe, ve) {
      if (!W || s || !ce)
        return;
      if (t.isEmitBlocked(ce) || d.noEmit) {
        B = !0;
        return;
      }
      const Te = E8(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
      }, $e = H1(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, pe, Te, $e, d), Te.dispose(), k && (k.js = $e.bundleFileInfo);
    }
    function X(W, ce, pe, ve) {
      if (!W || s === 0)
        return;
      if (!ce) {
        (s || d.emitDeclarationOnly) && (B = !0);
        return;
      }
      const Te = Hi(W) ? [W] : W.sourceFiles, ee = f ? Te : yn(Te, ez), $e = Hs(d) ? [N.createBundle(ee, Hi(W) ? void 0 : W.prepends)] : ee;
      s && !j_(d) && ee.forEach(Y);
      const Ue = E8(e, t, N, d, $e, o, !1);
      if (Ie(Ue.diagnostics))
        for (const Me of Ue.diagnostics)
          b.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
      }, We = H1(Be, {
        hasGlobalName: e.hasGlobalName,
        onEmitNode: Ue.emitNodeWithNotification,
        isEmitNotificationEnabled: Ue.isEmitNotificationEnabled,
        substituteNode: Ue.substituteNode
      }), Oe = !!Ue.diagnostics && !!Ue.diagnostics.length || !!t.isEmitBlocked(ce) || !!d.noEmit;
      B = B || Oe, (!Oe || f) && (D.assert(Ue.transformed.length === 1, "Should only see one output from the decl transform"), P(ce, pe, Ue, We, {
        sourceMap: Be.sourceMap,
        sourceRoot: d.sourceRoot,
        mapRoot: d.mapRoot,
        extendedDiagnostics: d.extendedDiagnostics
      })), Ue.dispose(), k && (k.dts = We.bundleFileInfo);
    }
    function Y(W) {
      if (Mc(W)) {
        W.expression.kind === 79 && e.collectLinkedAliases(W.expression, !0);
        return;
      } else if (cd(W)) {
        e.collectLinkedAliases(W.propertyName || W.name, !0);
        return;
      }
      Ra(W, Y);
    }
    function P(W, ce, pe, ve, Te) {
      const ee = pe.transformed[0], $e = ee.kind === 309 ? ee : void 0, Ue = ee.kind === 308 ? ee : void 0, Be = $e ? $e.sourceFiles : [Ue];
      let We;
      de(Te, ee) && (We = Nme(t, du(Jl(W)), ne(Te), ye(Te, W, Ue), Te)), $e ? ve.writeBundle($e, L, We) : ve.writeFile(Ue, L, We);
      let Oe;
      if (We) {
        y && y.push({
          inputSourceFileNames: We.getSources(),
          sourceMap: We.toJSON()
        });
        const Xe = ie(Te, We, W, ce, Ue);
        if (Xe && (L.isAtStartOfLine() || L.rawWrite(A), Oe = L.getTextPos(), L.writeComment(`//# sourceMappingURL=${Xe}`)), ce) {
          const He = We.toString();
          WI(t, b, ce, He, !1, Be), ve.bundleFileInfo && (ve.bundleFileInfo.mapHash = UT(He, t));
        }
      } else
        L.writeLine();
      const Me = L.getText();
      WI(t, b, W, Me, !!d.emitBOM, Be, { sourceMapUrlPos: Oe, diagnostics: pe.diagnostics }), ve.bundleFileInfo && (ve.bundleFileInfo.hash = UT(Me, t)), L.clear();
    }
    function de(W, ce) {
      return (W.sourceMap || W.inlineSourceMap) && (ce.kind !== 308 || !sl(ce.fileName, ".json"));
    }
    function ne(W) {
      const ce = Jl(W.sourceRoot || "");
      return ce && wu(ce);
    }
    function ye(W, ce, pe) {
      if (W.sourceRoot)
        return t.getCommonSourceDirectory();
      if (W.mapRoot) {
        let ve = Jl(W.mapRoot);
        return pe && (ve = _i(y3(pe.fileName, t, ve))), Wp(ve) === 0 && (ve = Pi(t.getCommonSourceDirectory(), ve)), ve;
      }
      return _i(Wo(ce));
    }
    function ie(W, ce, pe, ve, Te) {
      if (W.inlineSourceMap) {
        const $e = ce.toString();
        return `data:application/json;base64,${Que(ql, $e)}`;
      }
      const ee = du(Jl(D.checkDefined(ve)));
      if (W.mapRoot) {
        let $e = Jl(W.mapRoot);
        return Te && ($e = _i(y3(Te.fileName, t, $e))), Wp($e) === 0 ? ($e = Pi(t.getCommonSourceDirectory(), $e), encodeURI(WS(_i(Wo(pe)), Pi($e, ee), t.getCurrentDirectory(), t.getCanonicalFileName, !0))) : encodeURI(Pi($e, ee));
      }
      return encodeURI(ee);
    }
  }
  function S8(e, t) {
    return { bundle: t, program: e, version: De };
  }
  function Dhe(e) {
    return JSON.stringify(e);
  }
  function z5(e, t) {
    return Bz(e, t);
  }
  function w3e(e, t, r) {
    var i;
    const o = D.checkDefined(e.js), s = ((i = o.sources) == null ? void 0 : i.prologues) && t1(o.sources.prologues, (l) => l.file);
    return e.sourceFiles.map((l, f) => {
      var d, y;
      const h = s == null ? void 0 : s.get(f), b = h == null ? void 0 : h.directives.map((I) => {
        const O = mt(N.createStringLiteral(I.expression.text), I.expression), k = mt(N.createExpressionStatement(O), I);
        return Bo(O, k), k;
      }), A = N.createToken(1), L = N.createSourceFile(b ?? [], A, 0);
      return L.fileName = Lm(r.getCurrentDirectory(), Da(l, t), !r.useCaseSensitiveFileNames()), L.text = (d = h == null ? void 0 : h.text) != null ? d : "", dk(L, 0, (y = h == null ? void 0 : h.text.length) != null ? y : 0), iC(L.statements, L), dk(A, L.end, 0), Bo(A, L), L;
    });
  }
  function Rhe(e, t, r, i) {
    var o, s;
    (o = yi) == null || o.push(yi.Phase.Emit, "emitUsingBuildInfo", {}, !0), dR.mark("beforeEmit");
    const l = D3e(e, t, r, i);
    return dR.mark("afterEmit"), dR.measure("Emit", "beforeEmit", "afterEmit"), (s = yi) == null || s.pop(), l;
  }
  function D3e(e, t, r, i) {
    const { buildInfoPath: o, jsFilePath: s, sourceMapFilePath: l, declarationFilePath: f, declarationMapPath: d } = $k(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 b = l && t.readFile(l);
    if (l && !b || e.options.inlineSourceMap)
      return l || "inline sourcemap decoding";
    if (l && UT(b, t) !== y.bundle.js.mapHash)
      return l;
    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 = _i(Da(o, t.getCurrentDirectory())), O = Uq(s, h, l, b, f, A, d, L, o, y, !0), k = [], B = BX(e.projectReferences, r, (Y) => t.readFile(Y), t), V = w3e(y.bundle, I, t);
    let H, te;
    const X = {
      getPrependNodes: yd(() => [...B, O]),
      getCanonicalFileName: t.getCanonicalFileName,
      getCommonSourceDirectory: () => Da(y.bundle.commonSourceDirectory, I),
      getCompilerOptions: () => e.options,
      getCurrentDirectory: () => t.getCurrentDirectory(),
      getSourceFile: P0,
      getSourceFileByPath: P0,
      getSourceFiles: () => V,
      getLibFileFromReference: Va,
      isSourceFileFromExternalLibrary: n1,
      getResolvedProjectReferenceToRedirect: P0,
      getProjectReferenceRedirect: P0,
      isSourceOfProjectReferenceRedirect: n1,
      writeFile: (Y, P, de, ne, ye, ie) => {
        switch (Y) {
          case s:
            if (h === P)
              return;
            break;
          case l:
            if (b === P)
              return;
            break;
          case o:
            break;
          case f:
            if (A === P)
              return;
            H = P, te = ie;
            break;
          case d:
            if (L === P)
              return;
            break;
          default:
            D.fail(`Unexpected path: ${Y}`);
        }
        k.push({ name: Y, text: P, writeByteOrderMark: de, data: ie });
      },
      isEmitBlocked: n1,
      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: ne, sourceFiles: ye } = y.bundle;
        return Y.js.sources = de.sources, ne && (Y.dts.sources = ne.sources), Y.sourceFiles = ye, S8(P, Y);
      },
      getSourceFileFromReference: P0,
      redirectTargetsMap: l_(),
      getFileIncludeReasons: Va,
      createHash: Fo(t, t.createHash)
    };
    return W5(q5, X, void 0, pX(e.options, i)), k;
  }
  function H1(e = {}, t = {}) {
    var {
      hasGlobalName: r,
      onEmitNode: i = b8,
      isEmitNotificationEnabled: o,
      substituteNode: s = Yk,
      onBeforeEmitNode: l,
      onAfterEmitNode: f,
      onBeforeEmitNodeArray: d,
      onAfterEmitNodeArray: y,
      onBeforeEmitToken: h,
      onAfterEmitToken: b
    } = t, A = !!e.extendedDiagnostics, L = K0(e), I = tu(e), O = /* @__PURE__ */ new Map(), k, B, V, H, te, X, Y, P, de, ne, ye, ie, W, ce, pe, ve = e.preserveSourceNewlines, Te, ee, $e, Ue = uL, Be, We = e.writeBundleFileInfo ? { sections: [] } : void 0, Oe = We ? D.checkDefined(e.relativeToBuildInfo) : void 0, Me = e.recordInternalSection, Xe = 0, He = "text", Fe = !0, st, Ct, Et = -1, Vt, tt = -1, at = -1, an = -1, Xt = -1, Pn, Wn, In = !1, Yt = !!e.removeComments, _r, Ai, { enter: Ki, exit: Xi } = Yse(A, "commentTime", "beforeComment", "afterComment"), Nr = N.parenthesizer, At = {
      select: (S) => S === 0 ? Nr.parenthesizeLeadingTypeArgument : void 0
    }, vn = Qc();
    return je(), {
      printNode: Ht,
      printList: dn,
      printFile: lr,
      printBundle: ir,
      writeNode: pi,
      writeList: Nn,
      writeFile: xe,
      writeBundle: gt,
      bundleFileInfo: We
    };
    function Ht(S, se, Le) {
      switch (S) {
        case 0:
          D.assert(Hi(se), "Expected a SourceFile node.");
          break;
        case 2:
          D.assert(Ve(se), "Expected an Identifier node.");
          break;
        case 1:
          D.assert(yt(se), "Expected an Expression node.");
          break;
      }
      switch (se.kind) {
        case 308:
          return lr(se);
        case 309:
          return ir(se);
        case 310:
          return Ni(se);
      }
      return pi(S, se, Le, _t()), _e();
    }
    function dn(S, se, Le) {
      return Nn(S, se, Le, _t()), _e();
    }
    function ir(S) {
      return gt(S, _t(), void 0), _e();
    }
    function lr(S) {
      return xe(S, _t(), void 0), _e();
    }
    function Ni(S) {
      return Nt(S, _t()), _e();
    }
    function pi(S, se, Le, rn) {
      const Cr = ee;
      j(rn, void 0), re(S, se, Le), je(), ee = Cr;
    }
    function Nn(S, se, Le, rn) {
      const Cr = ee;
      j(rn, void 0), Le && he(Le), ks(void 0, se, S), je(), ee = Cr;
    }
    function nn() {
      return ee.getTextPosWithWriteLine ? ee.getTextPosWithWriteLine() : ee.getTextPos();
    }
    function Mn(S, se, Le) {
      const rn = ec(We.sections);
      rn && rn.kind === Le ? rn.end = se : We.sections.push({ pos: S, end: se, kind: Le });
    }
    function Ar(S) {
      if (Me && We && k && (mu(S) || cl(S)) && dX(S, k) && He !== "internal") {
        const se = He;
        return ke(ee.getTextPos()), Xe = nn(), He = "internal", se;
      }
    }
    function Vr(S) {
      S && (ke(ee.getTextPos()), Xe = nn(), He = S);
    }
    function ke(S) {
      return Xe < S ? (Mn(Xe, S, He), !0) : !1;
    }
    function gt(S, se, Le) {
      Be = !1;
      const rn = ee;
      j(se, Le), Tb(S), fS(S), fn(S), lS(S);
      for (const Cr of S.prepends) {
        Al();
        const Ei = ee.getTextPos(), si = We && We.sections;
        if (si && (We.sections = []), re(4, Cr, void 0), We) {
          const Bi = We.sections;
          We.sections = si, Cr.oldFileOfCurrentEmit ? We.sections.push(...Bi) : (Bi.forEach((uo) => D.assert(cde(uo))), We.sections.push({
            pos: Ei,
            end: ee.getTextPos(),
            kind: "prepend",
            data: Oe(Cr.fileName),
            texts: Bi
          }));
        }
      }
      Xe = nn();
      for (const Cr of S.sourceFiles)
        re(0, Cr, Cr);
      if (We && S.sourceFiles.length) {
        const Cr = ee.getTextPos();
        if (ke(Cr)) {
          const Ei = h2(S);
          Ei && (We.sources || (We.sources = {}), We.sources.prologues = Ei);
          const si = dt(S);
          si && (We.sources || (We.sources = {}), We.sources.helpers = si);
        }
      }
      je(), ee = rn;
    }
    function Nt(S, se) {
      const Le = ee;
      j(se, void 0), re(4, S, void 0), je(), ee = Le;
    }
    function xe(S, se, Le) {
      Be = !0;
      const rn = ee;
      j(se, Le), Tb(S), fS(S), re(0, S, S), je(), ee = rn;
    }
    function _t() {
      return $e || ($e = PN(L));
    }
    function _e() {
      const S = $e.getText();
      return $e.clear(), S;
    }
    function re(S, se, Le) {
      Le && he(Le), pt(S, se, void 0);
    }
    function he(S) {
      k = S, Pn = void 0, Wn = void 0, S && Bg(S);
    }
    function j(S, se) {
      S && e.omitTrailingSemicolon && (S = Ez(S)), ee = S, st = se, Fe = !ee || !st;
    }
    function je() {
      B = [], V = [], H = [], te = /* @__PURE__ */ new Set(), X = [], Y = /* @__PURE__ */ new Map(), P = [], de = 0, ne = [], ye = 0, ie = [], W = void 0, ce = [], pe = void 0, k = void 0, Pn = void 0, Wn = void 0, j(void 0, void 0);
    }
    function Qe() {
      return Pn || (Pn = eg(D.checkDefined(k)));
    }
    function Ke(S, se) {
      if (S === void 0)
        return;
      const Le = Ar(S);
      pt(4, S, se), Vr(Le);
    }
    function Ut(S) {
      S !== void 0 && pt(2, S, void 0);
    }
    function ln(S, se) {
      S !== void 0 && pt(1, S, se);
    }
    function Sn(S) {
      pt(Go(S) ? 6 : 4, S);
    }
    function Er(S) {
      ve && P_(S) & 4 && (ve = !1);
    }
    function ue(S) {
      ve = S;
    }
    function pt(S, se, Le) {
      Ai = Le, K(0, S, se)(S, se), Ai = void 0;
    }
    function Wt(S) {
      return !Yt && !Hi(S);
    }
    function it(S) {
      return !Fe && !Hi(S) && !r3(S) && !kT(S) && !Vfe(S);
    }
    function K(S, se, Le) {
      switch (S) {
        case 0:
          if (i !== b8 && (!o || o(Le)))
            return Z;
        case 1:
          if (s !== Yk && (_r = s(se, Le) || Le) !== Le)
            return Ai && (_r = Ai(_r)), ht;
        case 2:
          if (Wt(Le))
            return qd;
        case 3:
          if (it(Le))
            return bE;
        case 4:
          return Re;
        default:
          return D.assertNever(S);
      }
    }
    function Pe(S, se, Le) {
      return K(S + 1, se, Le);
    }
    function Z(S, se) {
      const Le = Pe(0, S, se);
      i(S, se, Le);
    }
    function Re(S, se) {
      if (l == null || l(se), ve) {
        const Le = ve;
        Er(se), q(S, se), ue(Le);
      } else
        q(S, se);
      f == null || f(se), Ai = void 0;
    }
    function q(S, se, Le = !0) {
      if (Le) {
        const rn = qq(se);
        if (rn)
          return no(S, se, rn);
      }
      if (S === 0)
        return bb(ro(se, Hi));
      if (S === 2)
        return Jr(ro(se, Ve));
      if (S === 6)
        return Si(ro(se, Go), !0);
      if (S === 3)
        return Rt(ro(se, Pc));
      if (S === 5)
        return D.assertNode(se, sJ), xa(!0);
      if (S === 4) {
        switch (se.kind) {
          case 15:
          case 16:
          case 17:
            return Si(se, !1);
          case 79:
            return Jr(se);
          case 80:
            return is(se);
          case 163:
            return di(se);
          case 164:
            return wn(se);
          case 165:
            return ua(se);
          case 166:
            return $c(se);
          case 167:
            return nc(se);
          case 168:
            return Fc(se);
          case 169:
            return qc(se);
          case 170:
            return Bc(se);
          case 171:
            return xo(se);
          case 172:
            return Sa(se);
          case 173:
            return Jo(se);
          case 174:
          case 175:
            return Gc(se);
          case 176:
            return Yl(se);
          case 177:
            return jd(se);
          case 178:
            return rl(se);
          case 179:
            return mc(se);
          case 180:
            return $s(se);
          case 181:
            return zs(se);
          case 182:
            return fe(se);
          case 183:
            return It(se);
          case 184:
            return jt(se);
          case 185:
            return Q(se);
          case 186:
            return xt(se);
          case 187:
            return wr(se);
          case 189:
            return Or(se);
          case 190:
            return ya(se);
          case 191:
            return as(se);
          case 192:
            return po(se);
          case 193:
            return Uo(se);
          case 230:
            return E_(se);
          case 194:
            return Ka();
          case 195:
            return uc(se);
          case 196:
            return ll(se);
          case 197:
            return ud(se);
          case 198:
            return ys(se);
          case 199:
            return pn(se);
          case 200:
            return cs(se);
          case 201:
            return Hl(se);
          case 202:
            return dc(se);
          case 203:
            return Hd(se);
          case 204:
            return Vc(se);
          case 205:
            return kf(se);
          case 236:
            return Ze(se);
          case 237:
            return Is();
          case 238:
            return zt(se);
          case 240:
            return La(se);
          case 239:
            return xa(!1);
          case 241:
            return Ce(se);
          case 242:
            return Ge(se);
          case 243:
            return Ot(se);
          case 244:
            return mn(se);
          case 245:
            return bn(se);
          case 246:
            return Tn(se);
          case 247:
            return zn(se);
          case 248:
            return Wi(se);
          case 249:
            return nr(se);
          case 250:
            return Jm(se);
          case 251:
            return bg(se);
          case 252:
            return $_(se);
          case 253:
            return lb(se);
          case 254:
            return Kv(se);
          case 255:
            return l2(se);
          case 256:
            return rS(se);
          case 257:
            return u2(se);
          case 258:
            return Eg(se);
          case 259:
            return Q_(se);
          case 260:
            return iS(se);
          case 261:
            return Q1(se);
          case 262:
            return Z1(se);
          case 263:
            return $v(se);
          case 264:
            return d2(se);
          case 265:
            return eE(se);
          case 266:
            return tE(se);
          case 267:
            return Z_(se);
          case 268:
            return Qv(se);
          case 269:
            return Zv(se);
          case 270:
            return aS(se);
          case 271:
            return Sg(se);
          case 277:
            return Cd(se);
          case 272:
            return Xo(se);
          case 273:
            return nE(se);
          case 274:
            return sL(se);
          case 275:
            return Ry(se);
          case 276:
            return Ld(se);
          case 278:
            return Id(se);
          case 296:
            return xg(se);
          case 297:
            return Km(se);
          case 279:
            return;
          case 280:
            return f2(se);
          case 11:
            return hb(se);
          case 283:
          case 286:
            return oS(se);
          case 284:
          case 287:
            return cL(se);
          case 288:
            return e0(se);
          case 289:
            return _2(se);
          case 290:
            return rE(se);
          case 291:
            return t0(se);
          case 292:
            return n0(se);
          case 293:
            return Cg(se);
          case 294:
            return Qo(se);
          case 295:
            return ep(se);
          case 299:
            return iE(se);
          case 300:
            return hl(se);
          case 301:
            return Rh(se);
          case 302:
            return yb(se);
          case 303:
            return Gi(se);
          case 310:
          case 304:
            return xi(se);
          case 305:
          case 306:
            return _o(se);
          case 307:
            return bo(se);
          case 308:
            return bb(se);
          case 309:
            return D.fail("Bundles should be printed using printBundle");
          case 311:
            return D.fail("InputFiles should not be printed");
          case 312:
            return fc(se);
          case 313:
            return Lg(se);
          case 315:
            return pr("*");
          case 316:
            return pr("?");
          case 317:
            return Uc(se);
          case 318:
            return bu(se);
          case 319:
            return Uu(se);
          case 320:
            return tn(se);
          case 188:
          case 321:
            return ot(se);
          case 322:
            return;
          case 323:
            return tp(se);
          case 325:
            return zd(se);
          case 326:
            return aE(se);
          case 330:
          case 335:
          case 340:
            return Xm(se);
          case 331:
          case 332:
            return Rl(se);
          case 333:
          case 334:
            return;
          case 336:
          case 337:
          case 338:
          case 339:
            return;
          case 341:
            return Vi(se);
          case 342:
            return zr(se);
          case 344:
          case 351:
            return Ig(se);
          case 343:
          case 345:
          case 346:
          case 347:
          case 352:
          case 353:
            return vb(se);
          case 348:
            return cS(se);
          case 349:
            return lL(se);
          case 350:
            return au(se);
          case 355:
          case 359:
          case 358:
            return;
        }
        if (yt(se) && (S = 1, s !== Yk)) {
          const rn = s(S, se) || se;
          rn !== se && (se = rn, Ai && (se = Ai(se)));
        }
      }
      if (S === 1)
        switch (se.kind) {
          case 8:
          case 9:
            return ai(se);
          case 10:
          case 13:
          case 14:
            return Si(se, !1);
          case 79:
            return Jr(se);
          case 80:
            return is(se);
          case 206:
            return Se(se);
          case 207:
            return Dt(se);
          case 208:
            return On(se);
          case 209:
            return Ao(se);
          case 210:
            return ae(se);
          case 211:
            return lt(se);
          case 212:
            return Mt(se);
          case 213:
            return Pt(se);
          case 214:
            return un(se);
          case 215:
            return jn(se);
          case 216:
            return Dr(se);
          case 217:
            return Oi(se);
          case 218:
            return Ga(se);
          case 219:
            return Vo(se);
          case 220:
            return vs(se);
          case 221:
            return qs(se);
          case 222:
            return lf(se);
          case 223:
            return vn(se);
          case 224:
            return Wd(se);
          case 225:
            return Eu(se);
          case 226:
            return uf(se);
          case 227:
            return b_(se);
          case 228:
            return Ko(se);
          case 229:
            return;
          case 231:
            return df(se);
          case 232:
            return Y_(se);
          case 230:
            return E_(se);
          case 235:
            return Ap(se);
          case 233:
            return G(se);
          case 234:
            return D.fail("SyntheticExpression should never be printed.");
          case 279:
            return;
          case 281:
            return pb(se);
          case 282:
            return Ag(se);
          case 285:
            return mb(se);
          case 354:
            return D.fail("SyntaxList should not be printed");
          case 355:
            return;
          case 356:
            return p2(se);
          case 357:
            return m2(se);
          case 358:
          case 359:
            return;
          case 360:
            return D.fail("SyntheticReferenceExpression should not be printed");
        }
      if (Td(se.kind))
        return cE(se, la);
      if (oW(se.kind))
        return cE(se, pr);
      D.fail(`Unhandled SyntaxKind: ${D.formatSyntaxKind(se.kind)}.`);
    }
    function Rt(S) {
      Ke(S.name), ar(), la("in"), ar(), Ke(S.constraint);
    }
    function ht(S, se) {
      const Le = Pe(1, S, se);
      D.assertIsDefined(_r), se = _r, _r = void 0, Le(S, se);
    }
    function dt(S) {
      let se;
      if (I === 0 || e.noEmitHelpers)
        return;
      const Le = /* @__PURE__ */ new Map();
      for (const rn of S.sourceFiles) {
        const Cr = PO(rn) !== void 0, Ei = Qn(rn);
        if (Ei)
          for (const si of Ei)
            !si.scoped && !Cr && !Le.get(si.name) && (Le.set(si.name, !0), (se || (se = [])).push(si.name));
      }
      return se;
    }
    function fn(S) {
      let se = !1;
      const Le = S.kind === 309 ? S : void 0;
      if (Le && I === 0)
        return;
      const rn = Le ? Le.prepends.length : 0, Cr = Le ? Le.sourceFiles.length + rn : 1;
      for (let Ei = 0; Ei < Cr; Ei++) {
        const si = Le ? Ei < rn ? Le.prepends[Ei] : Le.sourceFiles[Ei - rn] : S, Bi = Hi(si) ? si : kT(si) ? void 0 : k, uo = e.noEmitHelpers || !!Bi && t_e(Bi), $l = (Hi(si) || kT(si)) && !Be, Kd = kT(si) ? si.helpers : Qn(si);
        if (Kd)
          for (const pf of Kd) {
            if (pf.scoped) {
              if (Le)
                continue;
            } else {
              if (uo)
                continue;
              if ($l) {
                if (O.get(pf.name))
                  continue;
                O.set(pf.name, !0);
              }
            }
            const zy = nn();
            typeof pf.text == "string" ? Jc(pf.text) : Jc(pf.text(Rf)), We && We.sections.push({ pos: zy, end: ee.getTextPos(), kind: "emitHelpers", data: pf.name }), se = !0;
          }
      }
      return se;
    }
    function Qn(S) {
      const se = $3(S);
      return se && iy(se, bfe);
    }
    function ai(S) {
      Si(S, !1);
    }
    function Si(S, se) {
      const Le = Dc(S, e.neverAsciiEscape, se);
      (e.sourceMap || e.inlineSourceMap) && (S.kind === 10 || Tv(S.kind)) ? Ab(Le) : v2(Le);
    }
    function xi(S) {
      for (const se of S.texts)
        Al(), Ke(se);
    }
    function Gi(S) {
      ee.rawWrite(S.parent.text.substring(S.pos, S.end));
    }
    function _o(S) {
      const se = nn();
      Gi(S), We && Mn(se, ee.getTextPos(), S.kind === 305 ? "text" : "internal");
    }
    function bo(S) {
      const se = nn();
      if (Gi(S), We) {
        const Le = _j(S.section);
        Le.pos = se, Le.end = ee.getTextPos(), We.sections.push(Le);
      }
    }
    function no(S, se, Le) {
      switch (Le.kind) {
        case 1:
          sa(S, se, Le);
          break;
        case 0:
          Ui(S, se, Le);
          break;
      }
    }
    function sa(S, se, Le) {
      My(`\${${Le.order}:`), q(S, se, !1), My("}");
    }
    function Ui(S, se, Le) {
      D.assert(se.kind === 239, `A tab stop cannot be attached to a node of kind ${D.formatSyntaxKind(se.kind)}.`), D.assert(S !== 5, "A tab stop cannot be attached to an embedded statement."), My(`$${Le.order}`);
    }
    function Jr(S) {
      (S.symbol ? b2 : Ue)(Gy(S, !1), S.symbol), ks(S, xT(S), 53776);
    }
    function is(S) {
      Ue(Gy(S, !1));
    }
    function di(S) {
      ca(S.left), pr("."), Ke(S.right);
    }
    function ca(S) {
      S.kind === 79 ? ln(S) : Ke(S);
    }
    function wn(S) {
      const se = de, Le = pe;
      su(), pr("["), ln(S.expression, Nr.parenthesizeExpressionOfComputedPropertyName), pr("]"), o0(se, Le);
    }
    function ua(S) {
      kg(S, S.modifiers), Ke(S.name), S.constraint && (ar(), la("extends"), ar(), Ke(S.constraint)), S.default && (ar(), Df("="), ar(), Ke(S.default));
    }
    function $c(S) {
      wf(S, S.modifiers, !0), Ke(S.dotDotDotToken), _S(S.name, i0), Ke(S.questionToken), S.parent && S.parent.kind === 320 && !S.name ? Ke(S.type) : Lp(S.type), np(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, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function nc(S) {
      pr("@"), ln(S.expression, Nr.parenthesizeLeftSideOfAccess);
    }
    function Fc(S) {
      kg(S, S.modifiers), _S(S.name, E2), Ke(S.questionToken), Lp(S.type), wc();
    }
    function qc(S) {
      wf(S, S.modifiers, !0), Ke(S.name), Ke(S.questionToken), Ke(S.exclamationToken), Lp(S.type), np(S.initializer, S.type ? S.type.end : S.questionToken ? S.questionToken.end : S.name.end, S), wc();
    }
    function Bc(S) {
      Ng(S), kg(S, S.modifiers), Ke(S.name), Ke(S.questionToken), sm(S, S.typeParameters), Dg(S, S.parameters), Lp(S.type), wc(), Ph(S);
    }
    function xo(S) {
      wf(S, S.modifiers, !0), Ke(S.asteriskToken), Ke(S.name), Ke(S.questionToken), Dh(S, Cp);
    }
    function Sa(S) {
      la("static"), Y1(S.body);
    }
    function Jo(S) {
      wf(S, S.modifiers, !1), la("constructor"), Dh(S, Cp);
    }
    function Gc(S) {
      const se = wf(S, S.modifiers, !0), Le = S.kind === 174 ? 137 : 151;
      _n(Le, se, la, S), ar(), Ke(S.name), Dh(S, Cp);
    }
    function Yl(S) {
      Ng(S), sm(S, S.typeParameters), Dg(S, S.parameters), Lp(S.type), wc(), Ph(S);
    }
    function jd(S) {
      Ng(S), la("new"), ar(), sm(S, S.typeParameters), Dg(S, S.parameters), Lp(S.type), wc(), Ph(S);
    }
    function rl(S) {
      wf(S, S.modifiers, !1), Oy(S, S.parameters), Lp(S.type), wc();
    }
    function Hl(S) {
      Ke(S.type), Ke(S.literal);
    }
    function Is() {
      wc();
    }
    function mc(S) {
      S.assertsModifier && (Ke(S.assertsModifier), ar()), Ke(S.parameterName), S.type && (ar(), la("is"), ar(), Ke(S.type));
    }
    function $s(S) {
      Ke(S.typeName), om(S, S.typeArguments);
    }
    function zs(S) {
      Ng(S), sm(S, S.typeParameters), mS(S, S.parameters), ar(), pr("=>"), ar(), Ke(S.type), Ph(S);
    }
    function tn(S) {
      la("function"), Dg(S, S.parameters), pr(":"), Ke(S.type);
    }
    function Uc(S) {
      pr("?"), Ke(S.type);
    }
    function bu(S) {
      pr("!"), Ke(S.type);
    }
    function Uu(S) {
      Ke(S.type), pr("=");
    }
    function fe(S) {
      Ng(S), kg(S, S.modifiers), la("new"), ar(), sm(S, S.typeParameters), Dg(S, S.parameters), ar(), pr("=>"), ar(), Ke(S.type), Ph(S);
    }
    function It(S) {
      la("typeof"), ar(), Ke(S.exprName), om(S, S.typeArguments);
    }
    function jt(S) {
      o0(0, void 0), pr("{");
      const se = go(S) & 1 ? 768 : 32897;
      ks(S, S.members, se | 524288), pr("}"), su();
    }
    function Q(S) {
      Ke(S.elementType, Nr.parenthesizeNonArrayTypeOfPostfixType), pr("["), pr("]");
    }
    function ot(S) {
      pr("..."), Ke(S.type);
    }
    function xt(S) {
      _n(22, S.pos, pr, S);
      const se = go(S) & 1 ? 528 : 657;
      ks(S, S.elements, se | 524288, Nr.parenthesizeElementTypeOfTupleType), _n(23, S.elements.end, pr, S);
    }
    function pn(S) {
      Ke(S.dotDotDotToken), Ke(S.name), Ke(S.questionToken), _n(58, S.name.end, pr, S), ar(), Ke(S.type);
    }
    function wr(S) {
      Ke(S.type, Nr.parenthesizeTypeOfOptionalType), pr("?");
    }
    function Or(S) {
      ks(S, S.types, 516, Nr.parenthesizeConstituentTypeOfUnionType);
    }
    function ya(S) {
      ks(S, S.types, 520, Nr.parenthesizeConstituentTypeOfIntersectionType);
    }
    function as(S) {
      Ke(S.checkType, Nr.parenthesizeCheckTypeOfConditionalType), ar(), la("extends"), ar(), Ke(S.extendsType, Nr.parenthesizeExtendsTypeOfConditionalType), ar(), pr("?"), ar(), Ke(S.trueType), ar(), pr(":"), ar(), Ke(S.falseType);
    }
    function po(S) {
      la("infer"), ar(), Ke(S.typeParameter);
    }
    function Uo(S) {
      pr("("), Ke(S.type), pr(")");
    }
    function Ka() {
      la("this");
    }
    function uc(S) {
      rp(S.operator, la), ar();
      const se = S.operator === 146 ? Nr.parenthesizeOperandOfReadonlyTypeOperator : Nr.parenthesizeOperandOfTypeOperator;
      Ke(S.type, se);
    }
    function ll(S) {
      Ke(S.objectType, Nr.parenthesizeNonArrayTypeOfPostfixType), pr("["), Ke(S.indexType), pr("]");
    }
    function ud(S) {
      const se = go(S);
      pr("{"), se & 1 ? ar() : (Al(), T_()), S.readonlyToken && (Ke(S.readonlyToken), S.readonlyToken.kind !== 146 && la("readonly"), ar()), pr("["), pt(3, S.typeParameter), S.nameType && (ar(), la("as"), ar(), Ke(S.nameType)), pr("]"), S.questionToken && (Ke(S.questionToken), S.questionToken.kind !== 57 && pr("?")), pr(":"), ar(), Ke(S.type), wc(), se & 1 ? ar() : (Al(), Ip()), ks(S, S.members, 2), pr("}");
    }
    function ys(S) {
      ln(S.literal);
    }
    function cs(S) {
      Ke(S.head), ks(S, S.templateSpans, 262144);
    }
    function dc(S) {
      if (S.isTypeOf && (la("typeof"), ar()), la("import"), pr("("), Ke(S.argument), S.assertions) {
        pr(","), ar(), pr("{"), ar(), la("assert"), pr(":"), ar();
        const se = S.assertions.assertClause.elements;
        ks(S.assertions.assertClause, se, 526226), ar(), pr("}");
      }
      pr(")"), S.qualifier && (pr("."), Ke(S.qualifier)), om(S, S.typeArguments);
    }
    function Hd(S) {
      pr("{"), ks(S, S.elements, 525136), pr("}");
    }
    function Vc(S) {
      pr("["), ks(S, S.elements, 524880), pr("]");
    }
    function kf(S) {
      Ke(S.dotDotDotToken), S.propertyName && (Ke(S.propertyName), pr(":"), ar()), Ke(S.name), np(S.initializer, S.name.end, S, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function Se(S) {
      const se = S.elements, Le = S.multiLine ? 65536 : 0;
      Py(S, se, 8914 | Le, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function Dt(S) {
      o0(0, void 0), ze(S.properties, dE);
      const se = go(S) & 131072;
      se && T_();
      const Le = S.multiLine ? 65536 : 0, rn = k && k.languageVersion >= 1 && !d_(k) ? 64 : 0;
      ks(S, S.properties, 526226 | rn | Le), se && Ip(), su();
    }
    function On(S) {
      ln(S.expression, Nr.parenthesizeLeftSideOfAccess);
      const se = S.questionDotToken || Bm(N.createToken(24), S.expression.end, S.name.pos), Le = kp(S, S.expression, se), rn = kp(S, se, S.name);
      Zc(Le, !1), se.kind !== 28 && qi(S.expression) && !ee.hasTrailingComment() && !ee.hasTrailingWhitespace() && pr("."), S.questionDotToken ? Ke(se) : _n(se.kind, S.expression.end, pr, S), Zc(rn, !1), Ke(S.name), Rg(Le, rn);
    }
    function qi(S) {
      if (S = O_(S), h_(S)) {
        const se = Dc(S, !0, !1);
        return !S.numericLiteralFlags && !uu(se, ho(24));
      } else if (sc(S)) {
        const se = ffe(S);
        return typeof se == "number" && isFinite(se) && Math.floor(se) === se;
      }
    }
    function Ao(S) {
      ln(S.expression, Nr.parenthesizeLeftSideOfAccess), Ke(S.questionDotToken), _n(22, S.expression.end, pr, S), ln(S.argumentExpression), _n(23, S.argumentExpression.end, pr, S);
    }
    function ae(S) {
      const se = P_(S) & 16;
      se && (pr("("), Ab("0"), pr(","), ar()), ln(S.expression, Nr.parenthesizeLeftSideOfAccess), se && pr(")"), Ke(S.questionDotToken), om(S, S.typeArguments), Py(S, S.arguments, 2576, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function lt(S) {
      _n(103, S.pos, la, S), ar(), ln(S.expression, Nr.parenthesizeExpressionOfNew), om(S, S.typeArguments), Py(S, S.arguments, 18960, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function Mt(S) {
      const se = P_(S) & 16;
      se && (pr("("), Ab("0"), pr(","), ar()), ln(S.tag, Nr.parenthesizeLeftSideOfAccess), se && pr(")"), om(S, S.typeArguments), ar(), ln(S.template);
    }
    function Pt(S) {
      pr("<"), Ke(S.type), pr(">"), ln(S.expression, Nr.parenthesizeOperandOfPrefixUnary);
    }
    function un(S) {
      const se = _n(20, S.pos, pr, S), Le = lE(S.expression, S);
      ln(S.expression, void 0), Cb(S.expression, S), Rg(Le), _n(21, S.expression ? S.expression.end : se, pr, S);
    }
    function jn(S) {
      Fh(S.name), Xv(S);
    }
    function Dr(S) {
      kg(S, S.modifiers), Dh(S, ei);
    }
    function ei(S) {
      sm(S, S.typeParameters), mS(S, S.parameters), Lp(S.type), ar(), Ke(S.equalsGreaterThanToken);
    }
    function Oi(S) {
      _n(89, S.pos, la, S), ar(), ln(S.expression, Nr.parenthesizeOperandOfPrefixUnary);
    }
    function Ga(S) {
      _n(112, S.pos, la, S), ar(), ln(S.expression, Nr.parenthesizeOperandOfPrefixUnary);
    }
    function Vo(S) {
      _n(114, S.pos, la, S), ar(), ln(S.expression, Nr.parenthesizeOperandOfPrefixUnary);
    }
    function vs(S) {
      _n(133, S.pos, la, S), ar(), ln(S.expression, Nr.parenthesizeOperandOfPrefixUnary);
    }
    function qs(S) {
      rp(S.operator, Df), dd(S) && ar(), ln(S.operand, Nr.parenthesizeOperandOfPrefixUnary);
    }
    function dd(S) {
      const se = S.operand;
      return se.kind === 221 && (S.operator === 39 && (se.operator === 39 || se.operator === 45) || S.operator === 40 && (se.operator === 40 || se.operator === 46));
    }
    function lf(S) {
      ln(S.operand, Nr.parenthesizeOperandOfPostfixUnary), rp(S.operator, Df);
    }
    function Qc() {
      return W7(S, se, Le, rn, Cr, void 0);
      function S(si, Bi) {
        if (Bi) {
          Bi.stackIndex++, Bi.preserveSourceNewlinesStack[Bi.stackIndex] = ve, Bi.containerPosStack[Bi.stackIndex] = at, Bi.containerEndStack[Bi.stackIndex] = an, Bi.declarationListContainerEndStack[Bi.stackIndex] = Xt;
          const uo = Bi.shouldEmitCommentsStack[Bi.stackIndex] = Wt(si), $l = Bi.shouldEmitSourceMapsStack[Bi.stackIndex] = it(si);
          l == null || l(si), uo && pd(si), $l && EE(si), Er(si);
        } else
          Bi = {
            stackIndex: 0,
            preserveSourceNewlinesStack: [void 0],
            containerPosStack: [-1],
            containerEndStack: [-1],
            declarationListContainerEndStack: [-1],
            shouldEmitCommentsStack: [!1],
            shouldEmitSourceMapsStack: [!1]
          };
        return Bi;
      }
      function se(si, Bi, uo) {
        return Ei(si, uo, "left");
      }
      function Le(si, Bi, uo) {
        const $l = si.kind !== 27, Kd = kp(uo, uo.left, si), pf = kp(uo, si, uo.right);
        Zc(Kd, $l), wd(si.pos), cE(si, si.kind === 101 ? la : Df), Mg(si.end, !0), Zc(pf, !0);
      }
      function rn(si, Bi, uo) {
        return Ei(si, uo, "right");
      }
      function Cr(si, Bi) {
        const uo = kp(si, si.left, si.operatorToken), $l = kp(si, si.operatorToken, si.right);
        if (Rg(uo, $l), Bi.stackIndex > 0) {
          const Kd = Bi.preserveSourceNewlinesStack[Bi.stackIndex], pf = Bi.containerPosStack[Bi.stackIndex], zy = Bi.containerEndStack[Bi.stackIndex], Xd = Bi.declarationListContainerEndStack[Bi.stackIndex], f0 = Bi.shouldEmitCommentsStack[Bi.stackIndex], _0 = Bi.shouldEmitSourceMapsStack[Bi.stackIndex];
          ue(Kd), _0 && TE(si), f0 && gS(si, pf, zy, Xd), f == null || f(si), Bi.stackIndex--;
        }
      }
      function Ei(si, Bi, uo) {
        const $l = uo === "left" ? Nr.getParenthesizeLeftSideOfBinaryForOperator(Bi.operatorToken.kind) : Nr.getParenthesizeRightSideOfBinaryForOperator(Bi.operatorToken.kind);
        let Kd = K(0, 1, si);
        if (Kd === ht && (D.assertIsDefined(_r), si = $l(ro(_r, yt)), Kd = Pe(1, 1, si), _r = void 0), (Kd === qd || Kd === bE || Kd === Re) && br(si))
          return si;
        Ai = $l, Kd(1, si);
      }
    }
    function Wd(S) {
      const se = kp(S, S.condition, S.questionToken), Le = kp(S, S.questionToken, S.whenTrue), rn = kp(S, S.whenTrue, S.colonToken), Cr = kp(S, S.colonToken, S.whenFalse);
      ln(S.condition, Nr.parenthesizeConditionOfConditionalExpression), Zc(se, !0), Ke(S.questionToken), Zc(Le, !0), ln(S.whenTrue, Nr.parenthesizeBranchOfConditionalExpression), Rg(se, Le), Zc(rn, !0), Ke(S.colonToken), Zc(Cr, !0), ln(S.whenFalse, Nr.parenthesizeBranchOfConditionalExpression), Rg(rn, Cr);
    }
    function Eu(S) {
      Ke(S.head), ks(S, S.templateSpans, 262144);
    }
    function uf(S) {
      _n(125, S.pos, la, S), Ke(S.asteriskToken), am(S.expression && Js(S.expression), il);
    }
    function b_(S) {
      _n(25, S.pos, pr, S), ln(S.expression, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function Ko(S) {
      Fh(S.name), $1(S);
    }
    function E_(S) {
      ln(S.expression, Nr.parenthesizeLeftSideOfAccess), om(S, S.typeArguments);
    }
    function df(S) {
      ln(S.expression, void 0), S.type && (ar(), la("as"), ar(), Ke(S.type));
    }
    function Y_(S) {
      ln(S.expression, Nr.parenthesizeLeftSideOfAccess), Df("!");
    }
    function Ap(S) {
      ln(S.expression, void 0), S.type && (ar(), la("satisfies"), ar(), Ke(S.type));
    }
    function G(S) {
      Fy(S.keywordToken, S.pos, pr), pr("."), Ke(S.name);
    }
    function Ze(S) {
      ln(S.expression), Ke(S.literal);
    }
    function zt(S) {
      $n(S, !S.multiLine && Oh(S));
    }
    function $n(S, se) {
      _n(18, S.pos, pr, S);
      const Le = se || go(S) & 1 ? 768 : 129;
      ks(S, S.statements, Le), _n(19, S.statements.end, pr, S, !!(Le & 1));
    }
    function La(S) {
      wf(S, S.modifiers, !1), Ke(S.declarationList), wc();
    }
    function xa(S) {
      S ? pr(";") : wc();
    }
    function Ce(S) {
      ln(S.expression, Nr.parenthesizeExpressionOfExpressionStatement), (!k || !d_(k) || Ys(S.expression)) && wc();
    }
    function Ge(S) {
      const se = _n(99, S.pos, la, S);
      ar(), _n(20, se, pr, S), ln(S.expression), _n(21, S.expression.end, pr, S), fd(S, S.thenStatement), S.elseStatement && (By(S, S.thenStatement, S.elseStatement), _n(91, S.thenStatement.end, la, S), S.elseStatement.kind === 242 ? (ar(), Ke(S.elseStatement)) : fd(S, S.elseStatement));
    }
    function Lt(S, se) {
      const Le = _n(115, se, la, S);
      ar(), _n(20, Le, pr, S), ln(S.expression), _n(21, S.expression.end, pr, S);
    }
    function Ot(S) {
      _n(90, S.pos, la, S), fd(S, S.statement), oo(S.statement) && !ve ? ar() : By(S, S.statement, S.expression), Lt(S, S.statement.end), wc();
    }
    function mn(S) {
      Lt(S, S.pos), fd(S, S.statement);
    }
    function bn(S) {
      const se = _n(97, S.pos, la, S);
      ar();
      let Le = _n(20, se, pr, S);
      Wr(S.initializer), Le = _n(26, S.initializer ? S.initializer.end : Le, pr, S), am(S.condition), Le = _n(26, S.condition ? S.condition.end : Le, pr, S), am(S.incrementor), _n(21, S.incrementor ? S.incrementor.end : Le, pr, S), fd(S, S.statement);
    }
    function Tn(S) {
      const se = _n(97, S.pos, la, S);
      ar(), _n(20, se, pr, S), Wr(S.initializer), ar(), _n(101, S.initializer.end, la, S), ar(), ln(S.expression), _n(21, S.expression.end, pr, S), fd(S, S.statement);
    }
    function zn(S) {
      const se = _n(97, S.pos, la, S);
      ar(), pS(S.awaitModifier), _n(20, se, pr, S), Wr(S.initializer), ar(), _n(162, S.initializer.end, la, S), ar(), ln(S.expression), _n(21, S.expression.end, pr, S), fd(S, S.statement);
    }
    function Wr(S) {
      S !== void 0 && (S.kind === 258 ? Ke(S) : ln(S));
    }
    function Wi(S) {
      _n(86, S.pos, la, S), Sb(S.label), wc();
    }
    function nr(S) {
      _n(81, S.pos, la, S), Sb(S.label), wc();
    }
    function _n(S, se, Le, rn, Cr) {
      const Ei = ga(rn), si = Ei && Ei.kind === rn.kind, Bi = se;
      if (si && k && (se = zo(k.text, se)), si && rn.pos !== Bi) {
        const uo = Cr && k && !p_(Bi, se, k);
        uo && T_(), wd(Bi), uo && Ip();
      }
      if (se = rp(S, Le, se), si && rn.end !== se) {
        const uo = rn.kind === 291;
        Mg(se, !uo, uo);
      }
      return se;
    }
    function dr(S) {
      return S.kind === 2 || !!S.hasTrailingNewLine;
    }
    function Ea(S) {
      return k ? kt(dh(k.text, S.pos), dr) || kt(lC(S), dr) ? !0 : D7(S) ? S.pos !== S.expression.pos && kt(F0(k.text, S.expression.pos), dr) ? !0 : Ea(S.expression) : !1 : !1;
    }
    function Js(S) {
      if (!Yt && D7(S) && Ea(S)) {
        const se = ga(S);
        if (se && Fd(se)) {
          const Le = N.createParenthesizedExpression(S.expression);
          return jr(Le, S), mt(Le, se), Le;
        }
        return N.createParenthesizedExpression(S);
      }
      return S;
    }
    function il(S) {
      return Js(Nr.parenthesizeExpressionForDisallowedComma(S));
    }
    function Jm(S) {
      _n(105, S.pos, la, S), am(S.expression && Js(S.expression), Js), wc();
    }
    function bg(S) {
      const se = _n(116, S.pos, la, S);
      ar(), _n(20, se, pr, S), ln(S.expression), _n(21, S.expression.end, pr, S), fd(S, S.statement);
    }
    function $_(S) {
      const se = _n(107, S.pos, la, S);
      ar(), _n(20, se, pr, S), ln(S.expression), _n(21, S.expression.end, pr, S), ar(), Ke(S.caseBlock);
    }
    function lb(S) {
      Ke(S.label), _n(58, S.label.end, pr, S), ar(), Ke(S.statement);
    }
    function Kv(S) {
      _n(109, S.pos, la, S), am(Js(S.expression), Js), wc();
    }
    function l2(S) {
      _n(111, S.pos, la, S), ar(), Ke(S.tryBlock), S.catchClause && (By(S, S.tryBlock, S.catchClause), Ke(S.catchClause)), S.finallyBlock && (By(S, S.catchClause || S.tryBlock, S.finallyBlock), _n(96, (S.catchClause || S.tryBlock).end, la, S), ar(), Ke(S.finallyBlock));
    }
    function rS(S) {
      Fy(87, S.pos, la), wc();
    }
    function u2(S) {
      var se, Le, rn, Cr, Ei;
      Ke(S.name), Ke(S.exclamationToken), Lp(S.type), np(S.initializer, (Ei = (Cr = (se = S.type) == null ? void 0 : se.end) != null ? Cr : (rn = (Le = S.name.emitNode) == null ? void 0 : Le.typeNode) == null ? void 0 : rn.end) != null ? Ei : S.name.end, S, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function Eg(S) {
      la(RI(S) ? "let" : og(S) ? "const" : "var"), ar(), ks(S, S.declarations, 528);
    }
    function Q_(S) {
      Xv(S);
    }
    function Xv(S) {
      wf(S, S.modifiers, !1), la("function"), Ke(S.asteriskToken), ar(), Ut(S.name), Dh(S, Cp);
    }
    function Dh(S, se) {
      const Le = S.body;
      if (Le)
        if (oo(Le)) {
          const rn = go(S) & 131072;
          rn && T_(), Ng(S), ze(S.parameters, gl), gl(S.body), se(S), Y1(Le), Ph(S), rn && Ip();
        } else
          se(S), ar(), ln(Le, Nr.parenthesizeConciseBodyOfArrowFunction);
      else
        se(S), wc();
    }
    function Cp(S) {
      sm(S, S.typeParameters), Dg(S, S.parameters), Lp(S.type);
    }
    function Yv(S) {
      if (go(S) & 1)
        return !0;
      if (S.multiLine || !Ys(S) && k && !bT(S, k) || ou(S, zl(S.statements), 2) || Qm(S, ec(S.statements), 2, S.statements))
        return !1;
      let se;
      for (const Le of S.statements) {
        if (S_(se, Le, 2) > 0)
          return !1;
        se = Le;
      }
      return !0;
    }
    function Y1(S) {
      l == null || l(S), ar(), pr("{"), T_();
      const se = Yv(S) ? ub : Tg;
      Pg(S, S.statements, se), Ip(), Fy(19, S.statements.end, pr, S), f == null || f(S);
    }
    function ub(S) {
      Tg(S, !0);
    }
    function Tg(S, se) {
      const Le = r0(S.statements), rn = ee.getTextPos();
      fn(S), Le === 0 && rn === ee.getTextPos() && se ? (Ip(), ks(S, S.statements, 768), T_()) : ks(S, S.statements, 1, void 0, Le);
    }
    function iS(S) {
      $1(S);
    }
    function $1(S) {
      o0(0, void 0), ze(S.members, dE), wf(S, S.modifiers, !0), _n(84, Xp(S).pos, la, S), S.name && (ar(), Ut(S.name));
      const se = go(S) & 131072;
      se && T_(), sm(S, S.typeParameters), ks(S, S.heritageClauses, 0), ar(), pr("{"), ks(S, S.members, 129), pr("}"), se && Ip(), su();
    }
    function Q1(S) {
      o0(0, void 0), wf(S, S.modifiers, !1), la("interface"), ar(), Ke(S.name), sm(S, S.typeParameters), ks(S, S.heritageClauses, 512), ar(), pr("{"), ks(S, S.members, 129), pr("}"), su();
    }
    function Z1(S) {
      wf(S, S.modifiers, !1), la("type"), ar(), Ke(S.name), sm(S, S.typeParameters), ar(), pr("="), ar(), Ke(S.type), wc();
    }
    function $v(S) {
      wf(S, S.modifiers, !1), la("enum"), ar(), Ke(S.name), ar(), pr("{"), ks(S, S.members, 145), pr("}");
    }
    function d2(S) {
      wf(S, S.modifiers, !1), ~S.flags & 1024 && (la(S.flags & 16 ? "namespace" : "module"), ar()), Ke(S.name);
      let se = S.body;
      if (!se)
        return wc();
      for (; se && Wc(se); )
        pr("."), Ke(se.name), se = se.body;
      ar(), Ke(se);
    }
    function eE(S) {
      Ng(S), ze(S.statements, gl), $n(S, Oh(S)), Ph(S);
    }
    function tE(S) {
      _n(18, S.pos, pr, S), ks(S, S.clauses, 129), _n(19, S.clauses.end, pr, S, !0);
    }
    function Qv(S) {
      wf(S, S.modifiers, !1), _n(100, S.modifiers ? S.modifiers.end : S.pos, la, S), ar(), S.isTypeOnly && (_n(154, S.pos, la, S), ar()), Ke(S.name), ar(), _n(63, S.name.end, pr, S), ar(), db(S.moduleReference), wc();
    }
    function db(S) {
      S.kind === 79 ? ln(S) : Ke(S);
    }
    function Zv(S) {
      wf(S, S.modifiers, !1), _n(100, S.modifiers ? S.modifiers.end : S.pos, la, S), ar(), S.importClause && (Ke(S.importClause), ar(), _n(158, S.importClause.end, la, S), ar()), ln(S.moduleSpecifier), S.assertClause && Sb(S.assertClause), wc();
    }
    function aS(S) {
      S.isTypeOnly && (_n(154, S.pos, la, S), ar()), Ke(S.name), S.name && S.namedBindings && (_n(27, S.name.end, pr, S), ar()), Ke(S.namedBindings);
    }
    function Sg(S) {
      const se = _n(41, S.pos, pr, S);
      ar(), _n(128, se, la, S), ar(), Ke(S.name);
    }
    function Xo(S) {
      fb(S);
    }
    function nE(S) {
      _b(S);
    }
    function sL(S) {
      const se = _n(93, S.pos, la, S);
      ar(), S.isExportEquals ? _n(63, se, Df, S) : _n(88, se, la, S), ar(), ln(S.expression, S.isExportEquals ? Nr.getParenthesizeRightSideOfBinaryForOperator(63) : Nr.parenthesizeExpressionOfExportDefault), wc();
    }
    function Ry(S) {
      wf(S, S.modifiers, !1);
      let se = _n(93, S.pos, la, S);
      if (ar(), S.isTypeOnly && (se = _n(154, se, la, S), ar()), S.exportClause ? Ke(S.exportClause) : se = _n(41, se, pr, S), S.moduleSpecifier) {
        ar();
        const Le = S.exportClause ? S.exportClause.end : se;
        _n(158, Le, la, S), ar(), ln(S.moduleSpecifier);
      }
      S.assertClause && Sb(S.assertClause), wc();
    }
    function xg(S) {
      _n(130, S.pos, la, S), ar();
      const se = S.elements;
      ks(S, se, 526226);
    }
    function Km(S) {
      Ke(S.name), pr(":"), ar();
      const se = S.value;
      if (!(go(se) & 1024)) {
        const Le = Gm(se);
        Mg(Le.pos);
      }
      Ke(se);
    }
    function Z_(S) {
      let se = _n(93, S.pos, la, S);
      ar(), se = _n(128, se, la, S), ar(), se = _n(143, se, la, S), ar(), Ke(S.name), wc();
    }
    function Cd(S) {
      const se = _n(41, S.pos, pr, S);
      ar(), _n(128, se, la, S), ar(), Ke(S.name);
    }
    function Ld(S) {
      fb(S);
    }
    function Id(S) {
      _b(S);
    }
    function fb(S) {
      pr("{"), ks(S, S.elements, 525136), pr("}");
    }
    function _b(S) {
      S.isTypeOnly && (la("type"), ar()), S.propertyName && (Ke(S.propertyName), ar(), _n(128, S.propertyName.end, la, S), ar()), Ke(S.name);
    }
    function f2(S) {
      la("require"), pr("("), ln(S.expression), pr(")");
    }
    function pb(S) {
      Ke(S.openingElement), ks(S, S.children, 262144), Ke(S.closingElement);
    }
    function Ag(S) {
      pr("<"), gb(S.tagName), om(S, S.typeArguments), ar(), Ke(S.attributes), pr("/>");
    }
    function mb(S) {
      Ke(S.openingFragment), ks(S, S.children, 262144), Ke(S.closingFragment);
    }
    function oS(S) {
      if (pr("<"), Ch(S)) {
        const se = lE(S.tagName, S);
        gb(S.tagName), om(S, S.typeArguments), S.attributes.properties && S.attributes.properties.length > 0 && ar(), Ke(S.attributes), Cb(S.attributes, S), Rg(se);
      }
      pr(">");
    }
    function hb(S) {
      ee.writeLiteral(S.text);
    }
    function cL(S) {
      pr("</"), wx(S) && gb(S.tagName), pr(">");
    }
    function _2(S) {
      ks(S, S.properties, 262656);
    }
    function e0(S) {
      Ke(S.name), g2("=", pr, S.initializer, Sn);
    }
    function rE(S) {
      pr("{..."), ln(S.expression), pr("}");
    }
    function Je(S) {
      let se = !1;
      return RR((k == null ? void 0 : k.text) || "", S + 1, () => se = !0), se;
    }
    function Ny(S) {
      let se = !1;
      return DR((k == null ? void 0 : k.text) || "", S + 1, () => se = !0), se;
    }
    function im(S) {
      return Je(S) || Ny(S);
    }
    function t0(S) {
      var se;
      if (S.expression || !Yt && !Ys(S) && im(S.pos)) {
        const Le = k && !Ys(S) && ac(k, S.pos).line !== ac(k, S.end).line;
        Le && ee.increaseIndent();
        const rn = _n(18, S.pos, pr, S);
        Ke(S.dotDotDotToken), ln(S.expression), _n(19, ((se = S.expression) == null ? void 0 : se.end) || rn, pr, S), Le && ee.decreaseIndent();
      }
    }
    function gb(S) {
      S.kind === 79 ? ln(S) : Ke(S);
    }
    function n0(S) {
      _n(82, S.pos, la, S), ar(), ln(S.expression, Nr.parenthesizeExpressionForDisallowedComma), sS(S, S.statements, S.expression.end);
    }
    function Cg(S) {
      const se = _n(88, S.pos, la, S);
      sS(S, S.statements, se);
    }
    function sS(S, se, Le) {
      const rn = se.length === 1 && (!k || Ys(S) || Ys(se[0]) || S3(S, se[0], k));
      let Cr = 163969;
      rn ? (Fy(58, Le, pr, S), ar(), Cr &= -130) : _n(58, Le, pr, S), ks(S, se, Cr);
    }
    function Qo(S) {
      ar(), rp(S.token, la), ar(), ks(S, S.types, 528);
    }
    function ep(S) {
      const se = _n(83, S.pos, la, S);
      ar(), S.variableDeclaration && (_n(20, se, pr, S), Ke(S.variableDeclaration), _n(21, S.variableDeclaration.end, pr, S), ar()), Ke(S.block);
    }
    function iE(S) {
      Ke(S.name), pr(":"), ar();
      const se = S.initializer;
      if (!(go(se) & 1024)) {
        const Le = Gm(se);
        Mg(Le.pos);
      }
      ln(se, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function hl(S) {
      Ke(S.name), S.objectAssignmentInitializer && (ar(), pr("="), ar(), ln(S.objectAssignmentInitializer, Nr.parenthesizeExpressionForDisallowedComma));
    }
    function Rh(S) {
      S.expression && (_n(25, S.pos, pr, S), ln(S.expression, Nr.parenthesizeExpressionForDisallowedComma));
    }
    function yb(S) {
      Ke(S.name), np(S.initializer, S.name.end, S, Nr.parenthesizeExpressionForDisallowedComma);
    }
    function tp(S) {
      if (Ue("/**"), S.comment) {
        const se = BR(S.comment);
        if (se) {
          const Le = se.split(/\r\n?|\n/g);
          for (const rn of Le)
            Al(), ar(), pr("*"), ar(), Ue(rn);
        }
      }
      S.tags && (S.tags.length === 1 && S.tags[0].kind === 347 && !S.comment ? (ar(), Ke(S.tags[0])) : ks(S, S.tags, 33)), ar(), Ue("*/");
    }
    function vb(S) {
      Nh(S.tagName), fc(S.typeExpression), Ym(S.comment);
    }
    function au(S) {
      Nh(S.tagName), Ke(S.name), Ym(S.comment);
    }
    function Lg(S) {
      ar(), pr("{"), Ke(S.name), pr("}");
    }
    function Rl(S) {
      Nh(S.tagName), ar(), pr("{"), Ke(S.class), pr("}"), Ym(S.comment);
    }
    function cS(S) {
      Nh(S.tagName), fc(S.constraint), ar(), ks(S, S.typeParameters, 528), Ym(S.comment);
    }
    function lL(S) {
      Nh(S.tagName), S.typeExpression && (S.typeExpression.kind === 312 ? fc(S.typeExpression) : (ar(), pr("{"), Ue("Object"), S.typeExpression.isArrayType && (pr("["), pr("]")), pr("}"))), S.fullName && (ar(), Ke(S.fullName)), Ym(S.comment), S.typeExpression && S.typeExpression.kind === 325 && zd(S.typeExpression);
    }
    function Vi(S) {
      Nh(S.tagName), S.name && (ar(), Ke(S.name)), Ym(S.comment), aE(S.typeExpression);
    }
    function zr(S) {
      Ym(S.comment), aE(S.typeExpression);
    }
    function Xm(S) {
      Nh(S.tagName), Ym(S.comment);
    }
    function zd(S) {
      ks(S, N.createNodeArray(S.jsDocPropertyTags), 33);
    }
    function aE(S) {
      S.typeParameters && ks(S, N.createNodeArray(S.typeParameters), 33), S.parameters && ks(S, N.createNodeArray(S.parameters), 33), S.type && (Al(), ar(), pr("*"), ar(), Ke(S.type));
    }
    function Ig(S) {
      Nh(S.tagName), fc(S.typeExpression), ar(), S.isBracketed && pr("["), Ke(S.name), S.isBracketed && pr("]"), Ym(S.comment);
    }
    function Nh(S) {
      pr("@"), Ke(S);
    }
    function Ym(S) {
      const se = BR(S);
      se && (ar(), Ue(se));
    }
    function fc(S) {
      S && (ar(), pr("{"), Ke(S.type), pr("}"));
    }
    function bb(S) {
      Al();
      const se = S.statements;
      if (se.length === 0 || !pp(se[0]) || Ys(se[0])) {
        Pg(S, se, Zf);
        return;
      }
      Zf(S);
    }
    function lS(S) {
      uS(!!S.hasNoDefaultLib, S.syntheticFileReferences || [], S.syntheticTypeReferences || [], S.syntheticLibReferences || []);
      for (const se of S.prepends)
        if (kT(se) && se.syntheticReferences)
          for (const Le of se.syntheticReferences)
            Ke(Le), Al();
    }
    function Eb(S) {
      S.isDeclarationFile && uS(S.hasNoDefaultLib, S.referencedFiles, S.typeReferenceDirectives, S.libReferenceDirectives);
    }
    function uS(S, se, Le, rn) {
      if (S) {
        const Cr = ee.getTextPos();
        $m('/// <reference no-default-lib="true"/>'), We && We.sections.push({ pos: Cr, end: ee.getTextPos(), kind: "no-default-lib" }), Al();
      }
      if (k && k.moduleName && ($m(`/// <amd-module name="${k.moduleName}" />`), Al()), k && k.amdDependencies)
        for (const Cr of k.amdDependencies)
          Cr.name ? $m(`/// <amd-dependency name="${Cr.name}" path="${Cr.path}" />`) : $m(`/// <amd-dependency path="${Cr.path}" />`), Al();
      for (const Cr of se) {
        const Ei = ee.getTextPos();
        $m(`/// <reference path="${Cr.fileName}" />`), We && We.sections.push({ pos: Ei, end: ee.getTextPos(), kind: "reference", data: Cr.fileName }), Al();
      }
      for (const Cr of Le) {
        const Ei = ee.getTextPos(), si = Cr.resolutionMode && Cr.resolutionMode !== (k == null ? void 0 : k.impliedNodeFormat) ? `resolution-mode="${Cr.resolutionMode === 99 ? "import" : "require"}"` : "";
        $m(`/// <reference types="${Cr.fileName}" ${si}/>`), We && We.sections.push({ pos: Ei, end: ee.getTextPos(), kind: Cr.resolutionMode ? Cr.resolutionMode === 99 ? "type-import" : "type-require" : "type", data: Cr.fileName }), Al();
      }
      for (const Cr of rn) {
        const Ei = ee.getTextPos();
        $m(`/// <reference lib="${Cr.fileName}" />`), We && We.sections.push({ pos: Ei, end: ee.getTextPos(), kind: "lib", data: Cr.fileName }), Al();
      }
    }
    function Zf(S) {
      const se = S.statements;
      Ng(S), ze(S.statements, gl), fn(S);
      const Le = Qi(se, (rn) => !pp(rn));
      Eb(S), ks(S, se, 1, void 0, Le === -1 ? se.length : Le), Ph(S);
    }
    function p2(S) {
      const se = go(S);
      !(se & 1024) && S.pos !== S.expression.pos && Mg(S.expression.pos), ln(S.expression), !(se & 2048) && S.end !== S.expression.end && wd(S.expression.end);
    }
    function m2(S) {
      Py(S, S.elements, 528, void 0);
    }
    function r0(S, se, Le, rn) {
      let Cr = !!se;
      for (let Ei = 0; Ei < S.length; Ei++) {
        const si = S[Ei];
        if (pp(si)) {
          if (Le ? !Le.has(si.expression.text) : !0) {
            Cr && (Cr = !1, he(se)), Al();
            const uo = ee.getTextPos();
            Ke(si), rn && We && We.sections.push({ pos: uo, end: ee.getTextPos(), kind: "prologue", data: si.expression.text }), Le && Le.add(si.expression.text);
          }
        } else
          return Ei;
      }
      return S.length;
    }
    function dS(S, se) {
      for (const Le of S)
        if (!se.has(Le.data)) {
          Al();
          const rn = ee.getTextPos();
          Ke(Le), We && We.sections.push({ pos: rn, end: ee.getTextPos(), kind: "prologue", data: Le.data }), se && se.add(Le.data);
        }
    }
    function fS(S) {
      if (Hi(S))
        r0(S.statements, S);
      else {
        const se = /* @__PURE__ */ new Set();
        for (const Le of S.prepends)
          dS(Le.prologues, se);
        for (const Le of S.sourceFiles)
          r0(Le.statements, Le, se, !0);
        he(void 0);
      }
    }
    function h2(S) {
      const se = /* @__PURE__ */ new Set();
      let Le;
      for (let rn = 0; rn < S.sourceFiles.length; rn++) {
        const Cr = S.sourceFiles[rn];
        let Ei, si = 0;
        for (const Bi of Cr.statements) {
          if (!pp(Bi))
            break;
          se.has(Bi.expression.text) || (se.add(Bi.expression.text), (Ei || (Ei = [])).push({
            pos: Bi.pos,
            end: Bi.end,
            expression: {
              pos: Bi.expression.pos,
              end: Bi.expression.end,
              text: Bi.expression.text
            }
          }), si = si < Bi.end ? Bi.end : si);
        }
        Ei && (Le || (Le = [])).push({ file: rn, text: Cr.text.substring(0, si), directives: Ei });
      }
      return Le;
    }
    function Tb(S) {
      if (Hi(S) || kT(S)) {
        const se = dM(S.text);
        if (se)
          return $m(se), Al(), !0;
      } else {
        for (const se of S.prepends)
          if (D.assertNode(se, kT), Tb(se))
            return !0;
        for (const se of S.sourceFiles)
          if (Tb(se))
            return !0;
      }
    }
    function _S(S, se) {
      if (!S)
        return;
      const Le = Ue;
      Ue = se, Ke(S), Ue = Le;
    }
    function wf(S, se, Le) {
      if (se != null && se.length) {
        if (Rn(se, lo))
          return kg(S, se);
        if (Rn(se, Nu))
          return Le ? wg(S, se) : S.pos;
        d == null || d(se);
        let rn, Cr, Ei = 0, si = 0, Bi;
        for (; Ei < se.length; ) {
          for (; si < se.length; ) {
            if (Bi = se[si], Cr = Nu(Bi) ? "decorators" : "modifiers", rn === void 0)
              rn = Cr;
            else if (Cr !== rn)
              break;
            si++;
          }
          const uo = { pos: -1, end: -1 };
          Ei === 0 && (uo.pos = se.pos), si === se.length - 1 && (uo.end = se.end), (rn === "modifiers" || Le) && xb(Ke, S, se, rn === "modifiers" ? 2359808 : 2146305, void 0, Ei, si - Ei, !1, uo), Ei = si, rn = Cr, si++;
        }
        if (y == null || y(se), Bi && !Yp(Bi.end))
          return Bi.end;
      }
      return S.pos;
    }
    function kg(S, se) {
      ks(S, se, 2359808);
      const Le = ec(se);
      return Le && !Yp(Le.end) ? Le.end : S.pos;
    }
    function Lp(S) {
      S && (pr(":"), ar(), Ke(S));
    }
    function np(S, se, Le, rn) {
      S && (ar(), _n(63, se, Df, Le), ar(), ln(S, rn));
    }
    function g2(S, se, Le, rn) {
      Le && (se(S), rn(Le));
    }
    function Sb(S) {
      S && (ar(), Ke(S));
    }
    function am(S, se) {
      S && (ar(), ln(S, se));
    }
    function pS(S) {
      S && (Ke(S), ar());
    }
    function fd(S, se) {
      oo(se) || go(S) & 1 ? (ar(), Ke(se)) : (Al(), T_(), sJ(se) ? pt(5, se) : Ke(se), Ip());
    }
    function wg(S, se) {
      ks(S, se, 2146305);
      const Le = ec(se);
      return Le && !Yp(Le.end) ? Le.end : S.pos;
    }
    function om(S, se) {
      ks(S, se, 53776, At);
    }
    function sm(S, se) {
      if (qa(S) && S.typeArguments)
        return om(S, S.typeArguments);
      ks(S, se, 53776);
    }
    function Dg(S, se) {
      ks(S, se, 2576);
    }
    function oE(S, se) {
      const Le = Tm(se);
      return Le && Le.pos === S.pos && Ws(S) && !S.type && !kt(S.modifiers) && !kt(S.typeParameters) && !kt(Le.modifiers) && !Le.dotDotDotToken && !Le.questionToken && !Le.type && !Le.initializer && Ve(Le.name);
    }
    function mS(S, se) {
      oE(S, se) ? ks(S, se, 528) : Dg(S, se);
    }
    function Oy(S, se) {
      ks(S, se, 8848);
    }
    function sE(S) {
      switch (S & 60) {
        case 0:
          break;
        case 16:
          pr(",");
          break;
        case 4:
          ar(), pr("|");
          break;
        case 32:
          ar(), pr("*"), ar();
          break;
        case 8:
          ar(), pr("&");
          break;
      }
    }
    function ks(S, se, Le, rn, Cr, Ei) {
      y2(Ke, S, se, Le | (S && go(S) & 2 ? 65536 : 0), rn, Cr, Ei);
    }
    function Py(S, se, Le, rn, Cr, Ei) {
      y2(ln, S, se, Le, rn, Cr, Ei);
    }
    function y2(S, se, Le, rn, Cr, Ei = 0, si = Le ? Le.length - Ei : 0) {
      if (Le === void 0 && rn & 16384)
        return;
      const uo = Le === void 0 || Ei >= Le.length || si === 0;
      if (uo && rn & 32768) {
        d == null || d(Le), y == null || y(Le);
        return;
      }
      rn & 15360 && (pr(N3e(rn)), uo && Le && Mg(Le.pos, !0)), d == null || d(Le), uo ? rn & 1 && !(ve && (!se || k && bT(se, k))) ? Al() : rn & 256 && !(rn & 524288) && ar() : xb(S, se, Le, rn, Cr, Ei, si, Le.hasTrailingComma, Le), y == null || y(Le), rn & 15360 && (uo && Le && wd(Le.end), pr(O3e(rn)));
    }
    function xb(S, se, Le, rn, Cr, Ei, si, Bi, uo) {
      const $l = (rn & 262144) === 0;
      let Kd = $l;
      const pf = ou(se, Le[Ei], rn);
      pf ? (Al(pf), Kd = !1) : rn & 256 && ar(), rn & 128 && T_();
      const zy = B3e(S, Cr);
      let Xd, f0, _0 = !1;
      for (let th = 0; th < si; th++) {
        const Jy = Le[Ei + th];
        if (rn & 32)
          Al(), sE(rn);
        else if (Xd) {
          rn & 60 && Xd.end !== (se ? se.end : -1) && (go(Xd) & 2048 || wd(Xd.end)), sE(rn), Vr(f0);
          const e_ = S_(Xd, Jy, rn);
          e_ > 0 ? (rn & 131 || (T_(), _0 = !0), Al(e_), Kd = !1) : Xd && rn & 512 && ar();
        }
        if (f0 = Ar(Jy), Kd) {
          const e_ = Gm(Jy);
          Mg(e_.pos);
        } else
          Kd = $l;
        Te = Jy.pos, zy(Jy, S, Cr, th), _0 && (Ip(), _0 = !1), Xd = Jy;
      }
      const qy = Xd ? go(Xd) : 0, x_ = Yt || !!(qy & 2048), SE = Bi && rn & 64 && rn & 16;
      SE && (Xd && !x_ ? _n(27, Xd.end, pr, Xd) : pr(",")), Xd && (se ? se.end : -1) !== Xd.end && rn & 60 && !x_ && wd(SE && (uo != null && uo.end) ? uo.end : Xd.end), rn & 128 && Ip(), Vr(f0);
      const Of = Qm(se, Le[Ei + si - 1], rn, uo);
      Of ? Al(Of) : rn & 2097408 && ar();
    }
    function Ab(S) {
      ee.writeLiteral(S);
    }
    function v2(S) {
      ee.writeStringLiteral(S);
    }
    function uL(S) {
      ee.write(S);
    }
    function b2(S, se) {
      ee.writeSymbol(S, se);
    }
    function pr(S) {
      ee.writePunctuation(S);
    }
    function wc() {
      ee.writeTrailingSemicolon(";");
    }
    function la(S) {
      ee.writeKeyword(S);
    }
    function Df(S) {
      ee.writeOperator(S);
    }
    function i0(S) {
      ee.writeParameter(S);
    }
    function $m(S) {
      ee.writeComment(S);
    }
    function ar() {
      ee.writeSpace(" ");
    }
    function E2(S) {
      ee.writeProperty(S);
    }
    function My(S) {
      ee.nonEscapingWrite ? ee.nonEscapingWrite(S) : ee.write(S);
    }
    function Al(S = 1) {
      for (let se = 0; se < S; se++)
        ee.writeLine(se > 0);
    }
    function T_() {
      ee.increaseIndent();
    }
    function Ip() {
      ee.decreaseIndent();
    }
    function Fy(S, se, Le, rn) {
      return Fe ? rp(S, Le, se) : dL(rn, S, Le, se, rp);
    }
    function cE(S, se) {
      h && h(S), se(ho(S.kind)), b && b(S);
    }
    function rp(S, se, Le) {
      const rn = ho(S);
      return se(rn), Le < 0 ? Le : Le + rn.length;
    }
    function By(S, se, Le) {
      if (go(S) & 1)
        ar();
      else if (ve) {
        const rn = kp(S, se, Le);
        rn ? Al(rn) : ar();
      } else
        Al();
    }
    function Jc(S) {
      const se = S.split(/\r\n?|\n/g), Le = Ele(se);
      for (const rn of se) {
        const Cr = Le ? rn.slice(Le) : rn;
        Cr.length && (Al(), Ue(Cr));
      }
    }
    function Zc(S, se) {
      S ? (T_(), Al(S)) : se && ar();
    }
    function Rg(S, se) {
      S && Ip(), se && Ip();
    }
    function ou(S, se, Le) {
      if (Le & 2 || ve) {
        if (Le & 65536)
          return 1;
        if (se === void 0)
          return !S || k && bT(S, k) ? 0 : 1;
        if (se.pos === Te || se.kind === 11)
          return 0;
        if (k && S && !Yp(S.pos) && !Ys(se) && (!se.parent || Ec(se.parent) === Ec(S)))
          return ve ? kd((rn) => rde(se.pos, S.pos, k, rn)) : S3(S, se, k) ? 0 : 1;
        if (Lb(se, Le))
          return 1;
      }
      return Le & 1 ? 1 : 0;
    }
    function S_(S, se, Le) {
      if (Le & 2 || ve) {
        if (S === void 0 || se === void 0 || se.kind === 11)
          return 0;
        if (k && !Ys(S) && !Ys(se))
          return ve && Gh(S, se) ? kd((rn) => Uz(S, se, k, rn)) : !ve && u0(S, se) ? jN(S, se, k) ? 0 : 1 : Le & 65536 ? 1 : 0;
        if (Lb(S, Le) || Lb(se, Le))
          return 1;
      } else if (_O(se))
        return 1;
      return Le & 1 ? 1 : 0;
    }
    function Qm(S, se, Le, rn) {
      if (Le & 2 || ve) {
        if (Le & 65536)
          return 1;
        if (se === void 0)
          return !S || k && bT(S, k) ? 0 : 1;
        if (k && S && !Yp(S.pos) && !Ys(se) && (!se.parent || se.parent === S)) {
          if (ve) {
            const Cr = rn && !Yp(rn.end) ? rn.end : se.end;
            return kd((Ei) => ide(Cr, S.end, k, Ei));
          }
          return ede(S, se, k) ? 0 : 1;
        }
        if (Lb(se, Le))
          return 1;
      }
      return Le & 1 && !(Le & 131072) ? 1 : 0;
    }
    function kd(S) {
      D.assert(!!ve);
      const se = S(!0);
      return se === 0 ? S(!1) : se;
    }
    function lE(S, se) {
      const Le = ve && ou(se, S, 0);
      return Le && Zc(Le, !1), !!Le;
    }
    function Cb(S, se) {
      const Le = ve && Qm(se, S, 0, void 0);
      Le && Al(Le);
    }
    function Lb(S, se) {
      if (Ys(S)) {
        const Le = _O(S);
        return Le === void 0 ? (se & 65536) !== 0 : Le;
      }
      return (se & 65536) !== 0;
    }
    function kp(S, se, Le) {
      return go(S) & 262144 ? 0 : (S = uE(S), se = uE(se), Le = uE(Le), _O(Le) ? 1 : k && !Ys(S) && !Ys(se) && !Ys(Le) ? ve ? kd((rn) => Uz(se, Le, k, rn)) : jN(se, Le, k) ? 0 : 1 : 0);
    }
    function Oh(S) {
      return S.statements.length === 0 && (!k || jN(S, S, k));
    }
    function uE(S) {
      for (; S.kind === 214 && Ys(S); )
        S = S.expression;
      return S;
    }
    function Gy(S, se) {
      if (Tc(S) || JS(S))
        return Ib(S);
      if (Go(S) && S.textSourceNode)
        return Gy(S.textSourceNode, se);
      const Le = k, rn = !!Le && !!S.parent && !Ys(S);
      if (ng(S)) {
        if (!rn || er(S) !== Ec(Le))
          return Pr(S);
      } else if (D.assertNode(S, nT), !rn)
        return S.text;
      return h1(Le, S, se);
    }
    function Dc(S, se, Le) {
      if (S.kind === 10 && S.textSourceNode) {
        const Cr = S.textSourceNode;
        if (Ve(Cr) || Di(Cr) || h_(Cr)) {
          const Ei = h_(Cr) ? Cr.text : Gy(Cr);
          return Le ? `"${bz(Ei)}"` : se || go(S) & 33554432 ? `"${ax(Ei)}"` : `"${NN(Ei)}"`;
        } else
          return Dc(Cr, se, Le);
      }
      const rn = (se ? 1 : 0) | (Le ? 2 : 0) | (e.terminateUnterminatedLiterals ? 4 : 0) | (e.target && e.target === 99 ? 8 : 0);
      return Mle(S, k, rn);
    }
    function Ng(S) {
      S && go(S) & 1048576 || (ne.push(ye), ye = 0, X.push(Y), Y = void 0, ie.push(W));
    }
    function Ph(S) {
      S && go(S) & 1048576 || (ye = ne.pop(), Y = X.pop(), W = ie.pop());
    }
    function a0(S) {
      (!W || W === ec(ie)) && (W = /* @__PURE__ */ new Set()), W.add(S);
    }
    function o0(S, se) {
      P.push(de), de = S, ce.push(W), pe = se;
    }
    function su() {
      de = P.pop(), pe = ce.pop();
    }
    function Mh(S) {
      (!pe || pe === ec(ce)) && (pe = /* @__PURE__ */ new Set()), pe.add(S);
    }
    function gl(S) {
      if (S)
        switch (S.kind) {
          case 238:
            ze(S.statements, gl);
            break;
          case 253:
          case 251:
          case 243:
          case 244:
            gl(S.statement);
            break;
          case 242:
            gl(S.thenStatement), gl(S.elseStatement);
            break;
          case 245:
          case 247:
          case 246:
            gl(S.initializer), gl(S.statement);
            break;
          case 252:
            gl(S.caseBlock);
            break;
          case 266:
            ze(S.clauses, gl);
            break;
          case 292:
          case 293:
            ze(S.statements, gl);
            break;
          case 255:
            gl(S.tryBlock), gl(S.catchClause), gl(S.finallyBlock);
            break;
          case 295:
            gl(S.variableDeclaration), gl(S.block);
            break;
          case 240:
            gl(S.declarationList);
            break;
          case 258:
            ze(S.declarations, gl);
            break;
          case 257:
          case 166:
          case 205:
          case 260:
            Fh(S.name);
            break;
          case 259:
            Fh(S.name), go(S) & 1048576 && (ze(S.parameters, gl), gl(S.body));
            break;
          case 203:
          case 204:
            ze(S.elements, gl);
            break;
          case 269:
            gl(S.importClause);
            break;
          case 270:
            Fh(S.name), gl(S.namedBindings);
            break;
          case 271:
            Fh(S.name);
            break;
          case 277:
            Fh(S.name);
            break;
          case 272:
            ze(S.elements, gl);
            break;
          case 273:
            Fh(S.propertyName || S.name);
            break;
        }
    }
    function dE(S) {
      if (S)
        switch (S.kind) {
          case 299:
          case 300:
          case 169:
          case 171:
          case 174:
          case 175:
            Fh(S.name);
            break;
        }
    }
    function Fh(S) {
      S && (Tc(S) || JS(S) ? Ib(S) : Ja(S) && gl(S));
    }
    function Ib(S) {
      const se = S.emitNode.autoGenerate;
      if ((se.flags & 7) === 4)
        return _d(z7(S), Di(S), se.flags, se.prefix, se.suffix);
      {
        const Le = se.id;
        return H[Le] || (H[Le] = Ir(S));
      }
    }
    function _d(S, se, Le, rn, Cr) {
      const Ei = ds(S), si = se ? V : B;
      return si[Ei] || (si[Ei] = ns(S, se, Le ?? 0, IC(rn, Ib), IC(Cr)));
    }
    function Zm(S, se) {
      return s0(S) && !kb(S, se) && !te.has(S);
    }
    function kb(S, se) {
      return se ? !!(pe != null && pe.has(S)) : !!(W != null && W.has(S));
    }
    function s0(S, se) {
      return k ? PM(k, S, r) : !0;
    }
    function fE(S, se) {
      for (let Le = se; Le && mT(Le, se); Le = Le.nextContainer)
        if (wm(Le) && Le.locals) {
          const rn = Le.locals.get(oc(S));
          if (rn && rn.flags & 3257279)
            return !1;
        }
      return !0;
    }
    function Uy(S) {
      var se;
      switch (S) {
        case "":
          return ye;
        case "#":
          return de;
        default:
          return (se = Y == null ? void 0 : Y.get(S)) != null ? se : 0;
      }
    }
    function hS(S, se) {
      switch (S) {
        case "":
          ye = se;
          break;
        case "#":
          de = se;
          break;
        default:
          Y ?? (Y = /* @__PURE__ */ new Map()), Y.set(S, se);
          break;
      }
    }
    function c0(S, se, Le, rn, Cr) {
      rn.length > 0 && rn.charCodeAt(0) === 35 && (rn = rn.slice(1));
      const Ei = RT(Le, rn, "", Cr);
      let si = Uy(Ei);
      if (S && !(si & S)) {
        const uo = RT(Le, rn, S === 268435456 ? "_i" : "_n", Cr);
        if (Zm(uo, Le))
          return si |= S, Le ? Mh(uo) : se && a0(uo), hS(Ei, si), uo;
      }
      for (; ; ) {
        const Bi = si & 268435455;
        if (si++, Bi !== 8 && Bi !== 13) {
          const uo = Bi < 26 ? "_" + String.fromCharCode(97 + Bi) : "_" + (Bi - 26), $l = RT(Le, rn, uo, Cr);
          if (Zm($l, Le))
            return Le ? Mh($l) : se && a0($l), hS(Ei, si), $l;
        }
      }
    }
    function Og(S, se = Zm, Le, rn, Cr, Ei, si) {
      if (S.length > 0 && S.charCodeAt(0) === 35 && (S = S.slice(1)), Ei.length > 0 && Ei.charCodeAt(0) === 35 && (Ei = Ei.slice(1)), Le) {
        const uo = RT(Cr, Ei, S, si);
        if (se(uo, Cr))
          return Cr ? Mh(uo) : rn ? a0(uo) : te.add(uo), uo;
      }
      S.charCodeAt(S.length - 1) !== 95 && (S += "_");
      let Bi = 1;
      for (; ; ) {
        const uo = RT(Cr, Ei, S + Bi, si);
        if (se(uo, Cr))
          return Cr ? Mh(uo) : rn ? a0(uo) : te.add(uo), uo;
        Bi++;
      }
    }
    function Rf(S) {
      return Og(S, s0, !0, !1, !1, "", "");
    }
    function _E(S) {
      const se = Gy(S.name);
      return fE(se, ii(S, wm)) ? se : Og(se, Zm, !1, !1, !1, "", "");
    }
    function ff(S) {
      const se = UA(S), Le = Go(se) ? Ble(se.text) : "module";
      return Og(Le, Zm, !1, !1, !1, "", "");
    }
    function Bh() {
      return Og("default", Zm, !1, !1, !1, "", "");
    }
    function l0() {
      return Og("class", Zm, !1, !1, !1, "", "");
    }
    function T2(S, se, Le, rn) {
      return Ve(S.name) ? _d(S.name, se) : c0(0, !1, se, Le, rn);
    }
    function ns(S, se, Le, rn, Cr) {
      switch (S.kind) {
        case 79:
        case 80:
          return Og(Gy(S), Zm, !!(Le & 16), !!(Le & 8), se, rn, Cr);
        case 264:
        case 263:
          return D.assert(!rn && !Cr && !se), _E(S);
        case 269:
        case 275:
          return D.assert(!rn && !Cr && !se), ff(S);
        case 259:
        case 260: {
          D.assert(!rn && !Cr && !se);
          const Ei = S.name;
          return Ei && !Tc(Ei) ? ns(Ei, !1, Le, rn, Cr) : Bh();
        }
        case 274:
          return D.assert(!rn && !Cr && !se), Bh();
        case 228:
          return D.assert(!rn && !Cr && !se), l0();
        case 171:
        case 174:
        case 175:
          return T2(S, se, rn, Cr);
        case 164:
          return c0(0, !0, se, rn, Cr);
        default:
          return c0(0, !1, se, rn, Cr);
      }
    }
    function Ir(S) {
      const se = S.emitNode.autoGenerate, Le = IC(se.prefix, Ib), rn = IC(se.suffix);
      switch (se.flags & 7) {
        case 1:
          return c0(0, !!(se.flags & 8), Di(S), Le, rn);
        case 2:
          return D.assertNode(S, Ve), c0(268435456, !!(se.flags & 8), !1, Le, rn);
        case 3:
          return Og(Pr(S), se.flags & 32 ? s0 : Zm, !!(se.flags & 16), !!(se.flags & 8), Di(S), Le, rn);
      }
      return D.fail(`Unsupported GeneratedIdentifierKind: ${D.formatEnum(se.flags & 7, X4, !0)}.`);
    }
    function qd(S, se) {
      const Le = Pe(2, S, se), rn = at, Cr = an, Ei = Xt;
      pd(se), Le(S, se), gS(se, rn, Cr, Ei);
    }
    function pd(S) {
      const se = go(S), Le = Gm(S);
      pE(S, se, Le.pos, Le.end), se & 4096 && (Yt = !0);
    }
    function gS(S, se, Le, rn) {
      const Cr = go(S), Ei = Gm(S);
      Cr & 4096 && (Yt = !1), Vy(S, Cr, Ei.pos, Ei.end, se, Le, rn);
      const si = hfe(S);
      si && Vy(S, Cr, si.pos, si.end, se, Le, rn);
    }
    function pE(S, se, Le, rn) {
      Ki(), In = !1;
      const Cr = Le < 0 || (se & 1024) !== 0 || S.kind === 11, Ei = rn < 0 || (se & 2048) !== 0 || S.kind === 11;
      (Le > 0 || rn > 0) && Le !== rn && (Cr || lm(Le, S.kind !== 355), (!Cr || Le >= 0 && se & 1024) && (at = Le), (!Ei || rn >= 0 && se & 2048) && (an = rn, S.kind === 258 && (Xt = rn))), ze(lC(S), S2), Xi();
    }
    function Vy(S, se, Le, rn, Cr, Ei, si) {
      Ki();
      const Bi = rn < 0 || (se & 2048) !== 0 || S.kind === 11;
      ze(mO(S), jy), (Le > 0 || rn > 0) && Le !== rn && (at = Cr, an = Ei, Xt = si, !Bi && S.kind !== 355 && mE(rn)), Xi();
    }
    function S2(S) {
      (S.hasLeadingNewline || S.kind === 2) && ee.writeLine(), cm(S), S.hasTrailingNewLine || S.kind === 2 ? ee.writeLine() : ee.writeSpace(" ");
    }
    function jy(S) {
      ee.isAtStartOfLine() || ee.writeSpace(" "), cm(S), S.hasTrailingNewLine && ee.writeLine();
    }
    function cm(S) {
      const se = wp(S), Le = S.kind === 3 ? IR(se) : void 0;
      $A(se, Le, ee, 0, se.length, L);
    }
    function wp(S) {
      return S.kind === 3 ? `/*${S.text}*/` : `//${S.text}`;
    }
    function Pg(S, se, Le) {
      Ki();
      const { pos: rn, end: Cr } = se, Ei = go(S), si = rn < 0 || (Ei & 1024) !== 0, Bi = Yt || Cr < 0 || (Ei & 2048) !== 0;
      si || d0(se), Xi(), Ei & 4096 && !Yt ? (Yt = !0, Le(S), Yt = !1) : Le(S), Ki(), Bi || (lm(se.end, !0), In && !ee.isAtStartOfLine() && ee.writeLine()), Xi();
    }
    function u0(S, se) {
      return S = Ec(S), S.parent && S.parent === Ec(se).parent;
    }
    function Gh(S, se) {
      if (se.pos < S.end)
        return !1;
      S = Ec(S), se = Ec(se);
      const Le = S.parent;
      if (!Le || Le !== se.parent)
        return !1;
      const rn = Fde(S), Cr = rn == null ? void 0 : rn.indexOf(S);
      return Cr !== void 0 && Cr > -1 && rn.indexOf(se) === Cr + 1;
    }
    function lm(S, se) {
      In = !1, se ? S === 0 && (k != null && k.isDeclarationFile) ? ws(S, Kc) : ws(S, eh) : S === 0 && ws(S, yS);
    }
    function yS(S, se, Le, rn, Cr) {
      yE(S, se) && eh(S, se, Le, rn, Cr);
    }
    function Kc(S, se, Le, rn, Cr) {
      yE(S, se) || eh(S, se, Le, rn, Cr);
    }
    function _f(S, se) {
      return e.onlyPrintJsDocStyle ? OJ(S, se) || MM(S, se) : !0;
    }
    function eh(S, se, Le, rn, Cr) {
      !k || !_f(k.text, S) || (In || (Fue(Qe(), ee, Cr, S), In = !0), Jd(S), $A(k.text, Qe(), ee, S, se, L), Jd(se), rn ? ee.writeLine() : Le === 3 && ee.writeSpace(" "));
    }
    function wd(S) {
      Yt || S === -1 || lm(S, !0);
    }
    function mE(S) {
      hE(S, Hy);
    }
    function Hy(S, se, Le, rn) {
      !k || !_f(k.text, S) || (ee.isAtStartOfLine() || ee.writeSpace(" "), Jd(S), $A(k.text, Qe(), ee, S, se, L), Jd(se), rn && ee.writeLine());
    }
    function Mg(S, se, Le) {
      Yt || (Ki(), hE(S, se ? Hy : Le ? x2 : Nf), Xi());
    }
    function x2(S, se, Le) {
      k && (Jd(S), $A(k.text, Qe(), ee, S, se, L), Jd(se), Le === 2 && ee.writeLine());
    }
    function Nf(S, se, Le, rn) {
      k && (Jd(S), $A(k.text, Qe(), ee, S, se, L), Jd(se), rn ? ee.writeLine() : ee.writeSpace(" "));
    }
    function ws(S, se) {
      k && (at === -1 || S !== at) && (gE(S) ? Fg(se) : DR(k.text, S, se, S));
    }
    function hE(S, se) {
      k && (an === -1 || S !== an && S !== Xt) && RR(k.text, S, se);
    }
    function gE(S) {
      return Wn !== void 0 && Ho(Wn).nodePos === S;
    }
    function Fg(S) {
      if (!k)
        return;
      const se = Ho(Wn).detachedCommentEndPos;
      Wn.length - 1 ? Wn.pop() : Wn = void 0, DR(k.text, se, S, se);
    }
    function d0(S) {
      const se = k && Gue(k.text, Qe(), ee, vS, S, L, Yt);
      se && (Wn ? Wn.push(se) : Wn = [se]);
    }
    function vS(S, se, Le, rn, Cr, Ei) {
      !k || !_f(k.text, rn) || (Jd(rn), $A(S, se, Le, rn, Cr, Ei), Jd(Cr));
    }
    function yE(S, se) {
      return !!k && wW(k.text, S, se);
    }
    function vE(S) {
      return S.parsedSourceMap === void 0 && S.sourceMapText !== void 0 && (S.parsedSourceMap = qK(S.sourceMapText) || !1), S.parsedSourceMap || void 0;
    }
    function bE(S, se) {
      const Le = Pe(3, S, se);
      EE(se), Le(S, se), TE(se);
    }
    function EE(S) {
      const se = go(S), Le = $0(S);
      if (aW(S)) {
        D.assertIsDefined(S.parent, "UnparsedNodes must have parent pointers");
        const rn = vE(S.parent);
        rn && st && st.appendSourceMap(ee.getLine(), ee.getColumn(), rn, S.parent.sourceMapPath, S.parent.getLineAndCharacterOfPosition(S.pos), S.parent.getLineAndCharacterOfPosition(S.end));
      } else {
        const rn = Le.source || Ct;
        S.kind !== 355 && !(se & 32) && Le.pos >= 0 && Uh(Le.source || Ct, Wy(rn, Le.pos)), se & 128 && (Fe = !0);
      }
    }
    function TE(S) {
      const se = go(S), Le = $0(S);
      aW(S) || (se & 128 && (Fe = !1), S.kind !== 355 && !(se & 64) && Le.end >= 0 && Uh(Le.source || Ct, Le.end));
    }
    function Wy(S, se) {
      return S.skipTrivia ? S.skipTrivia(se) : zo(S.text, se);
    }
    function Jd(S) {
      if (Fe || Yp(S) || C2(Ct))
        return;
      const { line: se, character: Le } = ac(Ct, S);
      st.addMapping(ee.getLine(), ee.getColumn(), Et, se, Le, void 0);
    }
    function Uh(S, se) {
      if (S !== Ct) {
        const Le = Ct, rn = Et;
        Bg(S), Jd(se), A2(Le, rn);
      } else
        Jd(se);
    }
    function dL(S, se, Le, rn, Cr) {
      if (Fe || S && r3(S))
        return Cr(se, Le, rn);
      const Ei = S && S.emitNode, si = Ei && Ei.flags || 0, Bi = Ei && Ei.tokenSourceMapRanges && Ei.tokenSourceMapRanges[se], uo = Bi && Bi.source || Ct;
      return rn = Wy(uo, Bi ? Bi.pos : rn), !(si & 256) && rn >= 0 && Uh(uo, rn), rn = Cr(se, Le, rn), Bi && (rn = Bi.end), !(si & 512) && rn >= 0 && Uh(uo, rn), rn;
    }
    function Bg(S) {
      if (!Fe) {
        if (Ct = S, S === Vt) {
          Et = tt;
          return;
        }
        C2(S) || (Et = st.addSource(S.fileName), e.inlineSources && st.setSourceContent(Et, S.text), Vt = S, tt = Et);
      }
    }
    function A2(S, se) {
      Ct = S, Et = se;
    }
    function C2(S) {
      return sl(S.fileName, ".json");
    }
  }
  function R3e() {
    const e = [];
    return e[1024] = ["{", "}"], e[2048] = ["(", ")"], e[4096] = ["<", ">"], e[8192] = ["[", "]"], e;
  }
  function N3e(e) {
    return vX[e & 15360][0];
  }
  function O3e(e) {
    return vX[e & 15360][1];
  }
  function P3e(e, t, r, i) {
    t(e);
  }
  function M3e(e, t, r, i) {
    t(e, r.select(i));
  }
  function F3e(e, t, r, i) {
    t(e, r);
  }
  function B3e(e, t) {
    return e.length === 1 ? P3e : typeof t == "object" ? M3e : F3e;
  }
  var vX, q5, bX, W1, EX, x8, G3e = C({
    "src/compiler/emitter.ts"() {
      wa(), wa(), c1(), vX = R3e(), q5 = {
        hasGlobalName: Va,
        getReferencedExportContainer: Va,
        getReferencedImportDeclaration: Va,
        getReferencedDeclarationWithCollidingName: Va,
        isDeclarationWithCollidingName: Va,
        isValueAliasDeclaration: Va,
        isReferencedAliasDeclaration: Va,
        isTopLevelValueImportEqualsWithEntityName: Va,
        getNodeCheckFlags: Va,
        isDeclarationVisible: Va,
        isLateBound: (e) => !1,
        collectLinkedAliases: Va,
        isImplementationOfOverload: Va,
        isRequiredInitializedParameter: Va,
        isOptionalUninitializedParameterProperty: Va,
        isExpandoFunctionDeclaration: Va,
        getPropertiesOfContainerFunction: Va,
        createTypeOfDeclaration: Va,
        createReturnTypeOfSignatureDeclaration: Va,
        createTypeOfExpression: Va,
        createLiteralConstValue: Va,
        isSymbolAccessible: Va,
        isEntityNameVisible: Va,
        getConstantValue: Va,
        getReferencedValueDeclaration: Va,
        getTypeReferenceSerializationKind: Va,
        isOptionalParameter: Va,
        moduleExportsSomeValue: Va,
        isArgumentsLocalBinding: Va,
        getExternalModuleFileFromDeclaration: Va,
        getTypeReferenceDirectivesForEntityName: Va,
        getTypeReferenceDirectivesForSymbol: Va,
        isLiteralConstDeclaration: Va,
        getJsxFactoryEntity: Va,
        getJsxFragmentFactoryEntity: Va,
        getAllAccessorDeclarations: Va,
        getSymbolOfExternalModuleSpecifier: Va,
        isBindingCapturedByNode: Va,
        getDeclarationStatementsForSourceFile: Va,
        isImportRequiredByAugmentation: Va
      }, bX = /* @__PURE__ */ yd(() => H1({})), W1 = /* @__PURE__ */ yd(() => H1({ removeComments: !0 })), EX = /* @__PURE__ */ yd(() => H1({ removeComments: !0, neverAsciiEscape: !0 })), x8 = /* @__PURE__ */ yd(() => H1({ removeComments: !0, omitTrailingSemicolon: !0 }));
    }
  });
  function Nhe(e, t, r) {
    if (!e.getDirectories || !e.readDirectory)
      return;
    const i = /* @__PURE__ */ new Map(), o = Zl(r);
    return {
      useCaseSensitiveFileNames: r,
      fileExists: L,
      readFile: (P, de) => e.readFile(P, de),
      directoryExists: e.directoryExists && I,
      getDirectories: k,
      readDirectory: B,
      createDirectory: e.createDirectory && O,
      writeFile: e.writeFile && A,
      addOrDeleteFileOrDirectory: H,
      addOrDeleteFile: te,
      clearCache: Y,
      realpath: e.realpath && V
    };
    function s(P) {
      return js(P, t, o);
    }
    function l(P) {
      return i.get(wu(P));
    }
    function f(P) {
      const de = l(_i(P));
      return de && (de.sortedAndCanonicalizedFiles || (de.sortedAndCanonicalizedFiles = de.files.map(o).sort(), de.sortedAndCanonicalizedDirectories = de.directories.map(o).sort()), de);
    }
    function d(P) {
      return du(Wo(P));
    }
    function y(P, de) {
      var ne;
      if (!e.realpath || wu(s(e.realpath(P))) === de) {
        const ye = {
          files: en(e.readDirectory(P, void 0, void 0, ["*.*"]), d) || [],
          directories: e.getDirectories(P) || []
        };
        return i.set(wu(de), ye), ye;
      }
      if ((ne = e.directoryExists) != null && ne.call(e, P))
        return i.set(de, !1), !1;
    }
    function h(P, de) {
      de = wu(de);
      const ne = l(de);
      if (ne)
        return ne;
      try {
        return y(P, de);
      } catch {
        D.assert(!i.has(wu(de)));
        return;
      }
    }
    function b(P, de) {
      return pv(P, de, pc, ku) >= 0;
    }
    function A(P, de, ne) {
      const ye = s(P), ie = f(ye);
      return ie && X(ie, d(P), !0), e.writeFile(P, de, ne);
    }
    function L(P) {
      const de = s(P), ne = f(de);
      return ne && b(ne.sortedAndCanonicalizedFiles, o(d(P))) || e.fileExists(P);
    }
    function I(P) {
      const de = s(P);
      return i.has(wu(de)) || e.directoryExists(P);
    }
    function O(P) {
      const de = s(P), ne = f(de);
      if (ne) {
        const ye = d(P), ie = o(ye), W = ne.sortedAndCanonicalizedDirectories;
        _v(W, ie, ku) && ne.directories.push(ye);
      }
      e.createDirectory(P);
    }
    function k(P) {
      const de = s(P), ne = h(P, de);
      return ne ? ne.directories.slice() : e.getDirectories(P);
    }
    function B(P, de, ne, ye, ie) {
      const W = s(P), ce = h(P, W);
      let pe;
      if (ce !== void 0)
        return rq(P, de, ne, ye, r, t, ie, ve, V);
      return e.readDirectory(P, de, ne, ye, ie);
      function ve(ee) {
        const $e = s(ee);
        if ($e === W)
          return ce || Te(ee, $e);
        const Ue = h(ee, $e);
        return Ue !== void 0 ? Ue || Te(ee, $e) : K3;
      }
      function Te(ee, $e) {
        if (pe && $e === W)
          return pe;
        const Ue = {
          files: en(e.readDirectory(ee, void 0, void 0, ["*.*"]), d) || rt,
          directories: e.getDirectories(ee) || rt
        };
        return $e === W && (pe = Ue), Ue;
      }
    }
    function V(P) {
      return e.realpath ? e.realpath(P) : P;
    }
    function H(P, de) {
      if (l(de) !== void 0) {
        Y();
        return;
      }
      const ye = f(de);
      if (!ye)
        return;
      if (!e.directoryExists) {
        Y();
        return;
      }
      const ie = d(P), W = {
        fileExists: e.fileExists(de),
        directoryExists: e.directoryExists(de)
      };
      return W.directoryExists || b(ye.sortedAndCanonicalizedDirectories, o(ie)) ? Y() : X(ye, ie, W.fileExists), W;
    }
    function te(P, de, ne) {
      if (ne === 1)
        return;
      const ye = f(de);
      ye && X(ye, d(P), ne === 0);
    }
    function X(P, de, ne) {
      const ye = P.sortedAndCanonicalizedFiles, ie = o(de);
      if (ne)
        _v(ye, ie, ku) && P.files.push(de);
      else {
        const W = pv(ye, ie, pc, ku);
        if (W >= 0) {
          ye.splice(W, 1);
          const ce = P.files.findIndex((pe) => o(pe) === ie);
          P.files.splice(ce, 1);
        }
      }
    }
    function Y() {
      i.clear();
    }
  }
  function TX(e, t, r, i, o) {
    var s;
    const l = t1(((s = t == null ? void 0 : t.configFile) == null ? void 0 : s.extendedSourceFiles) || rt, o);
    r.forEach((f, d) => {
      l.has(d) || (f.projects.delete(e), f.close());
    }), l.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 Ohe(e, t) {
    t.forEach((r) => {
      r.projects.delete(e) && r.close();
    });
  }
  function SX(e, t, r) {
    e.delete(t) && e.forEach(({ extendedResult: i }, o) => {
      var s;
      (s = i.extendedSourceFiles) != null && s.some((l) => r(l) === t) && SX(e, o, r);
    });
  }
  function U3e(e, t, r) {
    const i = new Map(e);
    eC(t, i, {
      createNewValue: r,
      onDeleteValue: Fm
    });
  }
  function Phe(e, t, r) {
    const i = e.getMissingFilePaths(), o = t1(i, pc, r1);
    eC(t, o, {
      createNewValue: r,
      onDeleteValue: Fm
    });
  }
  function J5(e, t, r) {
    eC(e, t, {
      createNewValue: i,
      onDeleteValue: zm,
      onExistingValue: o
    });
    function i(s, l) {
      return {
        watcher: r(s, l),
        flags: l
      };
    }
    function o(s, l, f) {
      s.flags !== l && (s.watcher.close(), e.set(f, i(f, l)));
    }
  }
  function K5({
    watchedDirPath: e,
    fileOrDirectory: t,
    fileOrDirectoryPath: r,
    configFileName: i,
    options: o,
    program: s,
    extraFileExtensions: l,
    currentDirectory: f,
    useCaseSensitiveFileNames: d,
    writeLog: y,
    toPath: h
  }) {
    const b = nY(r);
    if (!b)
      return y(`Project: ${i} Detected ignored path: ${t}`), !0;
    if (r = b, r === e)
      return !1;
    if (gA(r) && !Ide(t, o, l))
      return y(`Project: ${i} Detected file add/remove of non supported extension: ${t}`), !0;
    if (ppe(t, o.configFile.configFileSpecs, Da(_i(i), f), d, f))
      return y(`Project: ${i} Detected excluded file: ${t}`), !0;
    if (!s || Hs(o) || o.outDir)
      return !1;
    if (ld(r)) {
      if (o.declarationDir)
        return !1;
    } else if (!bl(r, hk))
      return !1;
    const A = Md(r), L = Ba(s) ? void 0 : V3e(s) ? s.getProgramOrUndefined() : s, I = !L && !Ba(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) : !!cn(s, (B) => h(B) === k);
    }
  }
  function V3e(e) {
    return !!e.getState;
  }
  function Mhe(e, t) {
    return e ? e.isEmittedFile(t) : !1;
  }
  function Fhe(e, t, r, i) {
    rce(t === 2 ? r : io);
    const o = {
      watchFile: (O, k, B, V) => e.watchFile(O, k, B, V),
      watchDirectory: (O, k, B, V) => e.watchDirectory(O, k, (B & 1) !== 0, V)
    }, s = t !== 0 ? {
      watchFile: L("watchFile"),
      watchDirectory: L("watchDirectory")
    } : void 0, l = t === 2 ? {
      watchFile: b,
      watchDirectory: A
    } : s || o, f = t === 2 ? h : O8;
    return {
      watchFile: d("watchFile"),
      watchDirectory: d("watchDirectory")
    };
    function d(O) {
      return (k, B, V, H, te, X) => {
        var Y;
        return n5(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) : l[O].call(void 0, k, B, V, H, te, X);
      };
    }
    function y() {
      return typeof e.useCaseSensitiveFileNames == "boolean" ? e.useCaseSensitiveFileNames : e.useCaseSensitiveFileNames();
    }
    function h(O, k, B, V, H) {
      return r(`ExcludeWatcher:: Added:: ${I(O, k, B, V, H, i)}`), {
        close: () => r(`ExcludeWatcher:: Close:: ${I(O, k, B, V, H, i)}`)
      };
    }
    function b(O, k, B, V, H, te) {
      r(`FileWatcher:: Added:: ${I(O, B, V, H, te, i)}`);
      const X = s.watchFile(O, k, B, V, H, te);
      return {
        close: () => {
          r(`FileWatcher:: Close:: ${I(O, B, V, H, te, i)}`), X.close();
        }
      };
    }
    function A(O, k, B, V, H, te) {
      const X = `DirectoryWatcher:: Added:: ${I(O, B, V, H, te, i)}`;
      r(X);
      const Y = rc(), P = s.watchDirectory(O, k, B, V, H, te), de = rc() - Y;
      return r(`Elapsed:: ${de}ms ${X}`), {
        close: () => {
          const ne = `DirectoryWatcher:: Close:: ${I(O, B, V, H, te, i)}`;
          r(ne);
          const ye = rc();
          P.close();
          const ie = rc() - ye;
          r(`Elapsed:: ${ie}ms ${ne}`);
        }
      };
    }
    function L(O) {
      return (k, B, 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 = rc();
        B.call(void 0, ...Y);
        const ne = rc() - de;
        r(`Elapsed:: ${ne}ms ${P}`);
      }, V, H, te, X);
    }
    function I(O, k, B, V, H, te) {
      return `WatchInfo: ${O} ${k} ${JSON.stringify(B)} ${te ? te(V, H) : H === void 0 ? V : `${V} ${H}`}`;
    }
  }
  function A8(e) {
    const t = e == null ? void 0 : e.fallbackPolling;
    return {
      watchFile: t !== void 0 ? t : 1
    };
  }
  function zm(e) {
    e.watcher.close();
  }
  var xX, AX, j3e = C({
    "src/compiler/watchUtilities.ts"() {
      wa(), wa(), xX = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Partial = 1] = "Partial", e[e.Full = 2] = "Full", e))(xX || {}), AX = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.TriggerOnly = 1] = "TriggerOnly", e[e.Verbose = 2] = "Verbose", e))(AX || {});
    }
  });
  function Bhe(e, t, r = "tsconfig.json") {
    return Zh(e, (i) => {
      const o = Pi(i, r);
      return t(o) ? o : void 0;
    });
  }
  function X5(e, t) {
    const r = _i(t), i = Cm(e) ? e : Pi(r, e);
    return Wo(i);
  }
  function Ghe(e, t, r) {
    let i;
    return ze(e, (s) => {
      const l = xR(s, t);
      if (l.pop(), !i) {
        i = l;
        return;
      }
      const f = Math.min(i.length, l.length);
      for (let d = 0; d < f; d++)
        if (r(i[d]) !== r(l[d])) {
          if (d === 0)
            return !0;
          i.length = d;
          break;
        }
      l.length < i.length && (i.length = l.length);
    }) ? "" : i ? l1(i) : t;
  }
  function Uhe(e, t) {
    return IX(e, t);
  }
  function CX(e, t, r) {
    return (i, o, s) => {
      let l;
      try {
        ic("beforeIORead"), l = e(i, t().charset), ic("afterIORead"), Hf("I/O Read", "beforeIORead", "afterIORead");
      } catch (f) {
        s && s(f.message), l = "";
      }
      return l !== void 0 ? jO(i, l, o, r) : void 0;
    };
  }
  function LX(e, t, r) {
    return (i, o, s, l) => {
      try {
        ic("beforeIOWrite"), Iz(i, o, s, e, t, r), ic("afterIOWrite"), Hf("I/O Write", "beforeIOWrite", "afterIOWrite");
      } catch (f) {
        l && l(f.message);
      }
    };
  }
  function IX(e, t, r = ql) {
    const i = /* @__PURE__ */ new Map(), o = Zl(r.useCaseSensitiveFileNames);
    function s(h) {
      return i.has(h) ? !0 : (y.directoryExists || r.directoryExists)(h) ? (i.set(h, !0), !0) : !1;
    }
    function l() {
      return _i(Wo(r.getExecutingFilePath()));
    }
    const f = K0(e), d = r.realpath && ((h) => r.realpath(h)), y = {
      getSourceFile: CX((h) => y.readFile(h), () => e, t),
      getDefaultLibLocation: l,
      getDefaultLibFileName: (h) => Pi(l(), _M(h)),
      writeFile: LX((h, b, A) => r.writeFile(h, b, A), (h) => (y.createDirectory || r.createDirectory)(h), (h) => s(h)),
      getCurrentDirectory: yd(() => 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, b, A, L, I) => r.readDirectory(h, b, A, L, I),
      createDirectory: (h) => r.createDirectory(h),
      createHash: Fo(r, r.createHash)
    };
    return y;
  }
  function C8(e, t, r) {
    const i = e.readFile, o = e.fileExists, s = e.directoryExists, l = e.createDirectory, f = e.writeFile, d = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map(), b = /* @__PURE__ */ new Map(), A = (O) => {
      const k = t(O), B = d.get(k);
      return B !== void 0 ? B !== !1 ? B : void 0 : L(k, O);
    }, L = (O, k) => {
      const B = i.call(e, k);
      return d.set(O, B !== void 0 ? B : !1), B;
    };
    e.readFile = (O) => {
      const k = t(O), B = d.get(k);
      return B !== void 0 ? B !== !1 ? B : void 0 : !sl(O, ".json") && !xhe(O) ? i.call(e, O) : L(k, O);
    };
    const I = r ? (O, k, B, V) => {
      const H = t(O), te = typeof k == "object" ? k.impliedNodeFormat : void 0, X = b.get(te), Y = X == null ? void 0 : X.get(H);
      if (Y)
        return Y;
      const P = r(O, k, B, V);
      return P && (ld(O) || sl(O, ".json")) && b.set(te, (X || /* @__PURE__ */ new Map()).set(H, P)), P;
    } : void 0;
    return e.fileExists = (O) => {
      const k = t(O), B = y.get(k);
      if (B !== void 0)
        return B;
      const V = o.call(e, O);
      return y.set(k, !!V), V;
    }, f && (e.writeFile = (O, k, ...B) => {
      const V = t(O);
      y.delete(V);
      const H = d.get(V);
      H !== void 0 && H !== k ? (d.delete(V), b.forEach((te) => te.delete(V))) : I && b.forEach((te) => {
        const X = te.get(V);
        X && X.text !== k && te.delete(V);
      }), f.call(e, O, k, ...B);
    }), s && (e.directoryExists = (O) => {
      const k = t(O), B = h.get(k);
      if (B !== void 0)
        return B;
      const V = s.call(e, O);
      return h.set(k, !!V), V;
    }, l && (e.createDirectory = (O) => {
      const k = t(O);
      h.delete(k), l.call(e, O);
    })), {
      originalReadFile: i,
      originalFileExists: o,
      originalDirectoryExists: s,
      originalCreateDirectory: l,
      originalWriteFile: f,
      getSourceFileWithCache: I,
      readFileWithCache: A
    };
  }
  function H3e(e, t, r) {
    let i;
    return i = bi(i, e.getConfigFileParsingDiagnostics()), i = bi(i, e.getOptionsDiagnostics(r)), i = bi(i, e.getSyntacticDiagnostics(t, r)), i = bi(i, e.getGlobalDiagnostics(r)), i = bi(i, e.getSemanticDiagnostics(t, r)), j_(e.getCompilerOptions()) && (i = bi(i, e.getDeclarationDiagnostics(t, r))), vA(i || rt);
  }
  function W3e(e, t) {
    let r = "";
    for (const i of e)
      r += kX(i, t);
    return r;
  }
  function kX(e, t) {
    const r = `${W4(e)} TS${e.code}: ${Uv(e.messageText, t.getNewLine())}${t.getNewLine()}`;
    if (e.file) {
      const { line: i, character: o } = ac(e.file, e.start), s = e.file.fileName;
      return `${cI(s, t.getCurrentDirectory(), (f) => t.getCanonicalFileName(f))}(${i + 1},${o + 1}): ` + r;
    }
    return r;
  }
  function Vhe(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 z1(e, t) {
    return t + e + VX;
  }
  function jhe(e, t, r, i, o, s) {
    const { line: l, character: f } = ac(e, t), { line: d, character: y } = ac(e, t + r), h = ac(e, e.text.length).line, b = d - l >= 4;
    let A = (d + 1 + "").length;
    b && (A = Math.max(jX.length, A));
    let L = "";
    for (let I = l; I <= d; I++) {
      L += s.getNewLine(), b && l + 1 < I && I < d - 1 && (L += i + z1(BS(jX, A), rF) + iF + s.getNewLine(), I = d - 1);
      const O = kR(e, I, 0), k = I < h ? kR(e, I + 1, 0) : e.text.length;
      let B = e.text.slice(O, k);
      if (B = lR(B), B = B.replace(/\t/g, " "), L += i + z1(BS(I + 1 + "", A), rF) + iF, L += B + s.getNewLine(), L += i + z1(BS("", A), rF) + iF, L += o, I === l) {
        const V = I === d ? y : void 0;
        L += B.slice(0, f).replace(/\S/g, " "), L += B.slice(f, V).replace(/./g, "~");
      } else
        I === d ? L += B.slice(0, y).replace(/./g, "~") : L += B.replace(/./g, "~");
      L += VX;
    }
    return L;
  }
  function wX(e, t, r, i = z1) {
    const { line: o, character: s } = ac(e, t), l = r ? cI(e.fileName, r.getCurrentDirectory(), (d) => r.getCanonicalFileName(d)) : e.fileName;
    let f = "";
    return f += i(l, "\x1B[96m"), f += ":", f += i(`${o + 1}`, "\x1B[93m"), f += ":", f += i(`${s + 1}`, "\x1B[93m"), f;
  }
  function Hhe(e, t) {
    let r = "";
    for (const i of e) {
      if (i.file) {
        const { file: o, start: s } = i;
        r += wX(o, s, t), r += " - ";
      }
      if (r += z1(W4(i), Vhe(i.category)), r += z1(` TS${i.code}: `, "\x1B[90m"), r += Uv(i.messageText, t.getNewLine()), i.file && (r += t.getNewLine(), r += jhe(i.file, i.start, i.length, "", Vhe(i.category), t)), i.relatedInformation) {
        r += t.getNewLine();
        for (const { file: o, start: s, length: l, messageText: f } of i.relatedInformation)
          o && (r += t.getNewLine(), r += qhe + wX(o, s, t), r += jhe(o, s, l, HX, "\x1B[96m", t)), r += t.getNewLine(), r += HX + Uv(f, t.getNewLine());
      }
      r += t.getNewLine();
    }
    return r;
  }
  function Uv(e, t, r = 0) {
    if (Ua(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 += Uv(o, t, r);
    return i;
  }
  function L8(e, t) {
    return (Ua(e) ? t : e.resolutionMode) || t;
  }
  function DX(e, t) {
    if (e.impliedNodeFormat !== void 0)
      return vp(e, nF(e, t));
  }
  function RX(e) {
    var t;
    return Xl(e) ? e.isTypeOnly : !!((t = e.importClause) != null && t.isTypeOnly);
  }
  function vp(e, t) {
    var r, i;
    if (e.impliedNodeFormat === void 0)
      return;
    if ((Ul(t.parent) || Xl(t.parent)) && RX(t.parent)) {
      const l = Ux(t.parent.assertClause);
      if (l)
        return l;
    }
    if (t.parent.parent && _g(t.parent.parent)) {
      const s = Ux((r = t.parent.parent.assertions) == null ? void 0 : r.assertClause);
      if (s)
        return s;
    }
    if (e.impliedNodeFormat !== 99)
      return rf(Lv(t.parent)) ? 99 : 1;
    const o = (i = Lv(t.parent)) == null ? void 0 : i.parent;
    return o && ru(o) ? 1 : 99;
  }
  function Ux(e, t) {
    if (!e)
      return;
    if (Ie(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 (Es(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 (Es(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 NX(e) {
    return e.text;
  }
  function OX(e, t, r, i, o) {
    return {
      nameAndMode: rw,
      resolve: (s, l) => jk(s, e, r, i, o, t, l)
    };
  }
  function Y5(e) {
    return Ua(e) ? e : D_(e.fileName);
  }
  function $5(e, t, r, i, o) {
    return {
      nameAndMode: w8,
      resolve: (s, l) => mK(s, e, r, i, t, o, l)
    };
  }
  function I8(e, t, r, i, o, s, l, f) {
    if (e.length === 0)
      return rt;
    const d = [], y = /* @__PURE__ */ new Map(), h = f(t, r, i, s, l);
    for (const b of e) {
      const A = h.nameAndMode.getName(b), L = h.nameAndMode.getMode(b, o), I = Vk(A, L);
      let O = y.get(I);
      O || y.set(I, O = h.resolve(A, L)), d.push(O);
    }
    return d;
  }
  function Whe(e, t) {
    return k8(void 0, e, (r, i) => r && t(r, i));
  }
  function k8(e, t, r, i) {
    let o;
    return s(e, t, void 0);
    function s(l, f, d) {
      if (i) {
        const y = i(l, d);
        if (y)
          return y;
      }
      return ze(f, (y, h) => {
        if (y && (o != null && o.has(y.sourceFile.path)))
          return;
        const b = r(y, d, h);
        return b || !y ? b : ((o || (o = /* @__PURE__ */ new Set())).add(y.sourceFile.path), s(y.commandLine.projectReferences, y.references, y));
      });
    }
  }
  function nb(e) {
    switch (e == null ? void 0 : e.kind) {
      case 3:
      case 4:
      case 5:
      case 7:
        return !0;
      default:
        return !1;
    }
  }
  function FC(e) {
    return e.pos !== void 0;
  }
  function tw(e, t) {
    var r, i, o, s, l, f;
    const d = D.checkDefined(e(t.file)), { kind: y, index: h } = t;
    let b, A, L, I;
    switch (y) {
      case 3:
        const O = nF(d, h);
        if (L = (o = (i = (r = d.resolvedModules) == null ? void 0 : r.get(O.text, DX(d, h))) == null ? void 0 : i.resolvedModule) == null ? void 0 : o.packageId, O.pos === -1)
          return { file: d, packageId: L, text: O.text };
        b = zo(d.text, O.pos), A = O.end;
        break;
      case 4:
        ({ pos: b, end: A } = d.referencedFiles[h]);
        break;
      case 5:
        ({ pos: b, end: A, resolutionMode: I } = d.typeReferenceDirectives[h]), L = (f = (l = (s = d.resolvedTypeReferenceDirectiveNames) == null ? void 0 : s.get(D_(d.typeReferenceDirectives[h].fileName), I || d.impliedNodeFormat)) == null ? void 0 : l.resolvedTypeReferenceDirective) == null ? void 0 : f.packageId;
        break;
      case 7:
        ({ pos: b, end: A } = d.libReferenceDirectives[h]);
        break;
      default:
        return D.assertNever(y);
    }
    return { file: d, pos: b, end: A, packageId: L };
  }
  function PX(e, t, r, i, o, s, l, f, d) {
    if (!e || l != null && l() || !Vp(e.getRootFileNames(), t))
      return !1;
    let y;
    if (!Vp(e.getProjectReferences(), d, L) || e.getSourceFiles().some(b) || e.getMissingFilePaths().some(o))
      return !1;
    const h = e.getCompilerOptions();
    if (!Hz(h, r))
      return !1;
    if (h.configFile && r.configFile)
      return h.configFile.text === r.configFile.text;
    return !0;
    function b(O) {
      return !A(O) || s(O.path);
    }
    function A(O) {
      return O.version === i(O.resolvedPath, O.fileName);
    }
    function L(O, k, B) {
      return LW(O, k) && I(e.getResolvedProjectReferences()[B], O);
    }
    function I(O, k) {
      if (O) {
        if (wi(y, O))
          return !0;
        const V = nw(k), H = f(V);
        return !H || O.commandLine.options.configFile !== H.options.configFile || !Vp(O.commandLine.fileNames, H.fileNames) ? !1 : ((y || (y = [])).push(O), !ze(O.references, (te, X) => !I(te, O.commandLine.projectReferences[X])));
      }
      const B = nw(k);
      return !f(B);
    }
  }
  function GT(e) {
    return e.options.configFile ? [...e.options.configFile.parseDiagnostics, ...e.errors] : e.errors;
  }
  function Q5(e, t, r, i) {
    const o = MX(e, t, r, i);
    return typeof o == "object" ? o.impliedNodeFormat : o;
  }
  function MX(e, t, r, i) {
    switch (yc(i)) {
      case 3:
      case 99:
        return bl(e, [".d.mts", ".mts", ".mjs"]) ? 99 : bl(e, [".d.cts", ".cts", ".cjs"]) ? 1 : bl(e, [".d.ts", ".ts", ".tsx", ".js", ".jsx"]) ? o() : void 0;
      default:
        return;
    }
    function o() {
      const s = g5(t, r, i), l = [];
      s.failedLookupLocations = l, s.affectingLocations = l;
      const f = y5(e, s);
      return { impliedNodeFormat: (f == null ? void 0 : f.contents.packageJsonContent.type) === "module" ? 99 : 1, packageJsonLocations: l, packageJsonScope: f };
    }
  }
  function z3e(e, t) {
    return e ? IA(e.getCompilerOptions(), t, a5) : !1;
  }
  function q3e(e, t, r, i, o, s) {
    return {
      rootNames: e,
      options: t,
      host: r,
      oldProgram: i,
      configFileParsingDiagnostics: o,
      typeScriptVersion: s
    };
  }
  function Z5(e, t, r, i, o) {
    var s, l, f, d, y, h, b, A, L, I, O, k, B, V, H, te;
    const X = Ba(e) ? q3e(e, t, r, i, o) : e, { rootNames: Y, options: P, configFileParsingDiagnostics: de, projectReferences: ne, typeScriptVersion: ye } = X;
    let { oldProgram: ie } = X;
    const W = yd(() => E_("ignoreDeprecations", _.Invalid_value_for_ignoreDeprecations));
    let ce, pe, ve, Te, ee, $e, Ue;
    const Be = /* @__PURE__ */ new Map();
    let We = l_();
    const Oe = {}, Me = {};
    let Xe = OT(), He, Fe, st;
    const Ct = typeof P.maxNodeModuleJsDepth == "number" ? P.maxNodeModuleJsDepth : 0;
    let Et = 0;
    const Vt = /* @__PURE__ */ new Map(), tt = /* @__PURE__ */ new Map();
    (s = yi) == null || s.push(yi.Phase.Program, "createProgram", { configFilePath: P.configFilePath, rootDir: P.rootDir }, !0), ic("beforeProgram");
    const at = X.host || Uhe(P), an = tF(at);
    let Xt = P.noLib;
    const Pn = yd(() => at.getDefaultLibFileName(P)), Wn = at.getDefaultLibLocation ? at.getDefaultLibLocation() : _i(Pn()), In = XA(), Yt = at.getCurrentDirectory(), _r = sk(P), Ai = XN(P, _r), Ki = /* @__PURE__ */ new Map();
    let Xi, Nr, At;
    const vn = at.hasInvalidatedResolutions || n1;
    at.resolveModuleNameLiterals ? (At = at.resolveModuleNameLiterals.bind(at), Nr = (l = at.getModuleResolutionCache) == null ? void 0 : l.call(at)) : at.resolveModuleNames ? (At = (Ce, Ge, Lt, Ot, mn, bn) => at.resolveModuleNames(Ce.map(NX), Ge, bn == null ? void 0 : bn.map(NX), Lt, Ot, mn).map((Tn) => Tn ? Tn.extension !== void 0 ? { resolvedModule: Tn } : { resolvedModule: { ...Tn, extension: eO(Tn.resolvedFileName) } } : WX), Nr = (f = at.getModuleResolutionCache) == null ? void 0 : f.call(at)) : (Nr = p5(Yt, ae, P), At = (Ce, Ge, Lt, Ot, mn) => I8(Ce, Ge, Lt, Ot, mn, at, Nr, OX));
    let Ht;
    if (at.resolveTypeReferenceDirectiveReferences)
      Ht = at.resolveTypeReferenceDirectiveReferences.bind(at);
    else if (at.resolveTypeReferenceDirectives)
      Ht = (Ce, Ge, Lt, Ot, mn) => at.resolveTypeReferenceDirectives(Ce.map(Y5), Ge, Lt, Ot, mn == null ? void 0 : mn.impliedNodeFormat).map((bn) => ({ resolvedTypeReferenceDirective: bn }));
    else {
      const Ce = m5(Yt, ae, void 0, Nr == null ? void 0 : Nr.getPackageJsonInfoCache());
      Ht = (Ge, Lt, Ot, mn, bn) => I8(Ge, Lt, Ot, mn, bn, at, Ce, $5);
    }
    const dn = /* @__PURE__ */ new Map();
    let ir = /* @__PURE__ */ new Map(), lr = l_(), Ni = !1;
    const pi = /* @__PURE__ */ new Map();
    let Nn;
    const nn = at.useCaseSensitiveFileNames() ? /* @__PURE__ */ new Map() : void 0;
    let Mn, Ar, Vr, ke;
    const gt = !!((d = at.useSourceOfProjectReferenceRedirect) != null && d.call(at)) && !P.disableSourceOfProjectReferenceRedirect, { onProgramCreateComplete: Nt, fileExists: xe, directoryExists: _t } = J3e({
      compilerHost: at,
      getSymlinkCache: xa,
      useSourceOfProjectReferenceRedirect: gt,
      toPath: pt,
      getResolvedProjectReferences: dt,
      getSourceOfProjectReferenceRedirect: dc,
      forEachResolvedProjectReference: cs
    }), _e = at.readFile.bind(at);
    (y = yi) == null || y.push(yi.Phase.Program, "shouldProgramCreateNewSourceFiles", { hasOldProgram: !!ie });
    const re = z3e(ie, P);
    (h = yi) == null || h.pop();
    let he;
    if ((b = yi) == null || b.push(yi.Phase.Program, "tryReuseStructureFromOldProgram", {}), he = Re(), (A = yi) == null || A.pop(), he !== 2) {
      if (ce = [], pe = [], ne && (Mn || (Mn = ne.map(Pt)), Y.length && (Mn == null || Mn.forEach((Ce, Ge) => {
        if (!Ce)
          return;
        const Lt = Hs(Ce.commandLine.options);
        if (gt) {
          if (Lt || tu(Ce.commandLine.options) === 0)
            for (const Ot of Ce.commandLine.fileNames)
              pn(Ot, { kind: 1, index: Ge });
        } else if (Lt)
          pn(I1(Lt, ".d.ts"), { kind: 2, index: Ge });
        else if (tu(Ce.commandLine.options) === 0) {
          const Ot = yd(() => ew(Ce.commandLine, !at.useCaseSensitiveFileNames()));
          for (const mn of Ce.commandLine.fileNames)
            !ld(mn) && !sl(mn, ".json") && pn(Zk(mn, Ce.commandLine, !at.useCaseSensitiveFileNames(), Ot), { kind: 2, index: Ge });
        }
      }))), (L = yi) == null || L.push(yi.Phase.Program, "processRootFiles", { count: Y.length }), ze(Y, (Ce, Ge) => Uc(Ce, !1, !1, { kind: 0, index: Ge })), (I = yi) == null || I.pop(), Fe ?? (Fe = Y.length ? _5(P, at) : rt), st = OT(), Fe.length) {
        (O = yi) == null || O.push(yi.Phase.Program, "processTypeReferences", { count: Fe.length });
        const Ce = P.configFilePath ? _i(P.configFilePath) : at.getCurrentDirectory(), Ge = Pi(Ce, aF), Lt = Pe(Fe, Ge);
        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: (B = (k = Lt[Ot]) == null ? void 0 : k.resolvedTypeReferenceDirective) == null ? void 0 : B.packageId
          });
        (V = yi) == null || V.pop();
      }
      if (Y.length && !Xt) {
        const Ce = Pn();
        !P.lib && Ce ? Uc(Ce, !0, !1, { kind: 6 }) : ze(P.lib, (Ge, Lt) => {
          Uc(qi(Ge), !0, !1, { kind: 6, index: Lt });
        });
      }
      Nn = Do(dA(pi.entries(), ([Ce, Ge]) => Ge === void 0 ? Ce : void 0)), ve = iy(ce, Er).concat(pe), ce = void 0, pe = void 0;
    }
    if (D.assert(!!Nn), ie && at.onReleaseOldSourceFile) {
      const Ce = ie.getSourceFiles();
      for (const Ge of Ce) {
        const Lt = sa(Ge.resolvedPath);
        (re || !Lt || Lt.impliedNodeFormat !== Ge.impliedNodeFormat || Ge.resolvedPath === Ge.path && Lt.resolvedPath !== Ge.path) && at.onReleaseOldSourceFile(Ge, ie.getCompilerOptions(), !!sa(Ge.path));
      }
      at.getParsedCommandLine || ie.forEachResolvedProjectReference((Ge) => {
        Vc(Ge.sourceFile.path) || at.onReleaseOldSourceFile(Ge.sourceFile, ie.getCompilerOptions(), !1);
      });
    }
    ie && at.onReleaseParsedCommandLine && k8(ie.getProjectReferences(), ie.getResolvedProjectReferences(), (Ce, Ge, Lt) => {
      const Ot = (Ge == null ? void 0 : Ge.commandLine.projectReferences[Lt]) || ie.getProjectReferences()[Lt], mn = nw(Ot);
      Ar != null && Ar.has(pt(mn)) || at.onReleaseParsedCommandLine(mn, Ce, ie.getCompilerOptions());
    }), ie = void 0;
    const j = {
      getRootFileNames: () => Y,
      getSourceFile: no,
      getSourceFileByPath: sa,
      getSourceFiles: () => ve,
      getMissingFilePaths: () => Nn,
      getModuleResolutionCache: () => Nr,
      getFilesByNameMap: () => pi,
      getCompilerOptions: () => P,
      getSyntacticDiagnostics: Jr,
      getOptionsDiagnostics: mc,
      getGlobalDiagnostics: zs,
      getSemanticDiagnostics: is,
      getCachedSemanticDiagnostics: di,
      getSuggestionDiagnostics: Jo,
      getDeclarationDiagnostics: ua,
      getBindAndCheckDiagnostics: ca,
      getProgramDiagnostics: wn,
      getTypeChecker: xi,
      getClassifiableNames: it,
      getCommonSourceDirectory: Wt,
      emit: Gi,
      getCurrentDirectory: () => Yt,
      getNodeCount: () => xi().getNodeCount(),
      getIdentifierCount: () => xi().getIdentifierCount(),
      getSymbolCount: () => xi().getSymbolCount(),
      getTypeCount: () => xi().getTypeCount(),
      getInstantiationCount: () => xi().getInstantiationCount(),
      getRelationCacheSizes: () => xi().getRelationCacheSizes(),
      getFileProcessingDiagnostics: () => He,
      getResolvedTypeReferenceDirectives: () => Xe,
      getAutomaticTypeDirectiveNames: () => Fe,
      getAutomaticTypeDirectiveResolutions: () => st,
      isSourceFileFromExternalLibrary: ai,
      isSourceFileDefaultLibrary: Si,
      getSourceFileFromReference: Q,
      getLibFileFromReference: jt,
      sourceFileToPackageName: ir,
      redirectTargetsMap: lr,
      usesUriStyleNodeCoreModules: Ni,
      isEmittedFile: $n,
      getConfigFileParsingDiagnostics: tn,
      getProjectReferences: fn,
      getResolvedProjectReferences: dt,
      getProjectReferenceRedirect: uc,
      getResolvedProjectReferenceToRedirect: ys,
      getResolvedProjectReferenceByPath: Vc,
      forEachResolvedProjectReference: cs,
      isSourceOfProjectReferenceRedirect: Hd,
      emitBuildInfo: ht,
      fileExists: xe,
      readFile: _e,
      directoryExists: _t,
      getSymlinkCache: xa,
      realpath: (H = at.realpath) == null ? void 0 : H.bind(at),
      useCaseSensitiveFileNames: () => at.useCaseSensitiveFileNames(),
      getCanonicalFileName: ae,
      getFileIncludeReasons: () => We,
      structureIsReused: he,
      writeFile: Rt
    };
    return Nt(), He == null || He.forEach((Ce) => {
      switch (Ce.kind) {
        case 1:
          return In.add(Ga(Ce.file && sa(Ce.file), Ce.fileProcessingReason, Ce.diagnostic, Ce.args || rt));
        case 0:
          const { file: Ge, pos: Lt, end: Ot } = tw(sa, Ce.reason);
          return In.add(Il(Ge, D.checkDefined(Lt), D.checkDefined(Ot) - Lt, Ce.diagnostic, ...Ce.args || rt));
        case 2:
          return Ce.diagnostics.forEach((mn) => In.add(mn));
        default:
          D.assertNever(Ce);
      }
    }), un(), ic("afterProgram"), Hf("Program", "beforeProgram", "afterProgram"), (te = yi) == null || te.pop(), j;
    function je(Ce) {
      var Ge;
      (Ge = Ce.resolutionDiagnostics) != null && Ge.length && (He ?? (He = [])).push({
        kind: 2,
        diagnostics: Ce.resolutionDiagnostics
      });
    }
    function Qe(Ce, Ge, Lt, Ot) {
      if (at.resolveModuleNameLiterals || !at.resolveModuleNames)
        return je(Lt);
      if (!Nr || Pl(Ge))
        return;
      const mn = Da(Ce.originalFileName, Yt), bn = _i(mn), Tn = ln(Ce), zn = Nr.getFromNonRelativeNameCache(Ge, Ot, bn, Tn);
      zn && je(zn);
    }
    function Ke(Ce, Ge, Lt) {
      var Ot, mn;
      if (!Ce.length)
        return rt;
      const bn = Da(Ge.originalFileName, Yt), Tn = ln(Ge);
      (Ot = yi) == null || Ot.push(yi.Phase.Program, "resolveModuleNamesWorker", { containingFileName: bn }), ic("beforeResolveModule");
      const zn = At(Ce, bn, Tn, P, Ge, Lt);
      return ic("afterResolveModule"), Hf("ResolveModule", "beforeResolveModule", "afterResolveModule"), (mn = yi) == null || mn.pop(), zn;
    }
    function Ut(Ce, Ge, Lt) {
      var Ot, mn;
      if (!Ce.length)
        return [];
      const bn = Ua(Ge) ? void 0 : Ge, Tn = Ua(Ge) ? Ge : Da(Ge.originalFileName, Yt), zn = bn && ln(bn);
      (Ot = yi) == null || Ot.push(yi.Phase.Program, "resolveTypeReferenceDirectiveNamesWorker", { containingFileName: Tn }), ic("beforeResolveTypeReference");
      const Wr = Ht(Ce, Tn, zn, P, bn, Lt);
      return ic("afterResolveTypeReference"), Hf("ResolveTypeReference", "beforeResolveTypeReference", "afterResolveTypeReference"), (mn = yi) == null || mn.pop(), Wr;
    }
    function ln(Ce) {
      const Ge = ys(Ce.originalFileName);
      if (Ge || !ld(Ce.originalFileName))
        return Ge;
      const Lt = Sn(Ce.path);
      if (Lt)
        return Lt;
      if (!at.realpath || !P.preserveSymlinks || !uu(Ce.originalFileName, Sy))
        return;
      const Ot = pt(at.realpath(Ce.originalFileName));
      return Ot === Ce.path ? void 0 : Sn(Ot);
    }
    function Sn(Ce) {
      const Ge = dc(Ce);
      if (Ua(Ge))
        return ys(Ge);
      if (Ge)
        return cs((Lt) => {
          const Ot = Hs(Lt.commandLine.options);
          if (Ot)
            return pt(Ot) === Ce ? Lt : void 0;
        });
    }
    function Er(Ce, Ge) {
      return Vs(ue(Ce), ue(Ge));
    }
    function ue(Ce) {
      if (gv(Wn, Ce.fileName, !1)) {
        const Ge = du(Ce.fileName);
        if (Ge === "lib.d.ts" || Ge === "lib.es6.d.ts")
          return 0;
        const Lt = pA(rI(Ge, "lib."), ".d.ts"), Ot = ZO.indexOf(Lt);
        if (Ot !== -1)
          return Ot + 1;
      }
      return ZO.length + 2;
    }
    function pt(Ce) {
      return js(Ce, Yt, ae);
    }
    function Wt() {
      if (ee === void 0) {
        const Ce = yn(ve, (Ge) => ox(Ge, j));
        ee = T8(P, () => fa(Ce, (Ge) => Ge.isDeclarationFile ? void 0 : Ge.fileName), Yt, ae, (Ge) => Mt(Ce, Ge));
      }
      return ee;
    }
    function it() {
      var Ce;
      if (!Ue) {
        xi(), Ue = /* @__PURE__ */ new Set();
        for (const Ge of ve)
          (Ce = Ge.classifiableNames) == null || Ce.forEach((Lt) => Ue.add(Lt));
      }
      return Ue;
    }
    function K(Ce, Ge) {
      var Lt;
      if (he === 0 && !Ge.ambientModuleNames.length)
        return Ke(Ce, Ge, void 0);
      const Ot = ie && ie.getSourceFile(Ge.fileName);
      if (Ot !== Ge && Ge.resolvedModules) {
        const _n = [];
        for (const dr of Ce) {
          const Ea = Ge.resolvedModules.get(dr.text, vp(Ge, dr));
          _n.push(Ea);
        }
        return _n;
      }
      let mn, bn, Tn;
      const zn = WX;
      for (let _n = 0; _n < Ce.length; _n++) {
        const dr = Ce[_n];
        if (Ge === Ot && !vn(Ot.path)) {
          const Js = vp(Ge, dr), il = (Lt = Ot.resolvedModules) == null ? void 0 : Lt.get(dr.text, Js);
          if (il != null && il.resolvedModule) {
            Gv(P, at) && _a(at, il.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, Da(Ge.originalFileName, Yt), il.resolvedModule.resolvedFileName, il.resolvedModule.packageId && oT(il.resolvedModule.packageId)), (bn ?? (bn = new Array(Ce.length)))[_n] = il, (Tn ?? (Tn = [])).push(dr);
            continue;
          }
        }
        let Ea = !1;
        wi(Ge.ambientModuleNames, dr.text) ? (Ea = !0, Gv(P, at) && _a(at, _.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1, dr.text, Da(Ge.originalFileName, Yt))) : Ea = nr(dr), Ea ? (bn || (bn = new Array(Ce.length)))[_n] = zn : (mn ?? (mn = [])).push(dr);
      }
      const Wr = mn && mn.length ? Ke(mn, Ge, Tn) : rt;
      if (!bn)
        return D.assert(Wr.length === Ce.length), Wr;
      let Wi = 0;
      for (let _n = 0; _n < bn.length; _n++)
        bn[_n] || (bn[_n] = Wr[Wi], Wi++);
      return D.assert(Wi === Wr.length), bn;
      function nr(_n) {
        const dr = kA(Ot, _n.text, vp(Ge, _n)), Ea = dr && ie.getSourceFile(dr.resolvedFileName);
        if (dr && Ea)
          return !1;
        const Js = Be.get(_n.text);
        return Js ? (Gv(P, at) && _a(at, _.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, _n.text, Js), !0) : !1;
      }
    }
    function Pe(Ce, Ge) {
      var Lt;
      if (he === 0)
        return Ut(Ce, Ge, void 0);
      const Ot = Ua(Ge) ? void 0 : ie && ie.getSourceFile(Ge.fileName);
      if (!Ua(Ge) && Ot !== Ge && Ge.resolvedTypeReferenceDirectiveNames) {
        const _n = [];
        for (const dr of Ce) {
          const Ea = Ge.resolvedTypeReferenceDirectiveNames.get(Y5(dr), L8(dr, Ge.impliedNodeFormat));
          _n.push(Ea);
        }
        return _n;
      }
      let mn, bn, Tn;
      const zn = Ua(Ge) ? void 0 : Ge, Wr = Ua(Ge) ? !vn(pt(Ge)) : Ge === Ot && !vn(Ot.path);
      for (let _n = 0; _n < Ce.length; _n++) {
        const dr = Ce[_n];
        if (Wr) {
          const Ea = Y5(dr), Js = L8(dr, zn == null ? void 0 : zn.impliedNodeFormat), il = (Lt = Ua(Ge) ? ie == null ? void 0 : ie.getAutomaticTypeDirectiveResolutions() : Ot == null ? void 0 : Ot.resolvedTypeReferenceDirectiveNames) == null ? void 0 : Lt.get(Ea, Js);
          if (il != null && il.resolvedTypeReferenceDirective) {
            Gv(P, at) && _a(at, il.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, Ea, Ua(Ge) ? Ge : Da(Ge.originalFileName, Yt), il.resolvedTypeReferenceDirective.resolvedFileName, il.resolvedTypeReferenceDirective.packageId && oT(il.resolvedTypeReferenceDirective.packageId)), (bn ?? (bn = new Array(Ce.length)))[_n] = il, (Tn ?? (Tn = [])).push(dr);
            continue;
          }
        }
        (mn ?? (mn = [])).push(dr);
      }
      if (!mn)
        return bn || rt;
      const Wi = Ut(mn, Ge, Tn);
      if (!bn)
        return D.assert(Wi.length === Ce.length), Wi;
      let nr = 0;
      for (let _n = 0; _n < bn.length; _n++)
        bn[_n] || (bn[_n] = Wi[nr], nr++);
      return D.assert(nr === Wi.length), bn;
    }
    function Z() {
      return !k8(ie.getProjectReferences(), ie.getResolvedProjectReferences(), (Ce, Ge, Lt) => {
        const Ot = (Ge ? Ge.commandLine.projectReferences : ne)[Lt], mn = Pt(Ot);
        return Ce ? !mn || mn.sourceFile !== Ce.sourceFile || !Vp(Ce.commandLine.fileNames, mn.commandLine.fileNames) : mn !== void 0;
      }, (Ce, Ge) => {
        const Lt = Ge ? Vc(Ge.sourceFile.path).commandLine.projectReferences : ne;
        return !Vp(Ce, Lt, LW);
      });
    }
    function Re() {
      var Ce;
      if (!ie)
        return 0;
      const Ge = ie.getCompilerOptions();
      if (CW(Ge, P))
        return 0;
      const Lt = ie.getRootFileNames();
      if (!Vp(Lt, Y) || !Z())
        return 0;
      ne && (Mn = ne.map(Pt));
      const Ot = [], mn = [];
      if (he = 2, ie.getMissingFilePaths().some((nr) => at.fileExists(nr)))
        return 0;
      const bn = ie.getSourceFiles();
      let Tn;
      ((nr) => {
        nr[nr.Exists = 0] = "Exists", nr[nr.Modified = 1] = "Modified";
      })(Tn || (Tn = {}));
      const zn = /* @__PURE__ */ new Map();
      for (const nr of bn) {
        const _n = as(nr.fileName, Nr, at, P);
        let dr = at.getSourceFileByPath ? at.getSourceFileByPath(nr.fileName, nr.resolvedPath, _n, void 0, re || _n.impliedNodeFormat !== nr.impliedNodeFormat) : at.getSourceFile(nr.fileName, _n, void 0, re || _n.impliedNodeFormat !== nr.impliedNodeFormat);
        if (!dr)
          return 0;
        dr.packageJsonLocations = (Ce = _n.packageJsonLocations) != null && Ce.length ? _n.packageJsonLocations : void 0, dr.packageJsonScope = _n.packageJsonScope, D.assert(!dr.redirectInfo, "Host should not return a redirect source file from `getSourceFile`");
        let Ea;
        if (nr.redirectInfo) {
          if (dr !== nr.redirectInfo.unredirected)
            return 0;
          Ea = !1, dr = nr;
        } else if (ie.redirectTargetsMap.has(nr.path)) {
          if (dr !== nr)
            return 0;
          Ea = !1;
        } else
          Ea = dr !== nr;
        dr.path = nr.path, dr.originalFileName = nr.originalFileName, dr.resolvedPath = nr.resolvedPath, dr.fileName = nr.fileName;
        const Js = ie.sourceFileToPackageName.get(nr.path);
        if (Js !== void 0) {
          const il = zn.get(Js), Jm = Ea ? 1 : 0;
          if (il !== void 0 && Jm === 1 || il === 1)
            return 0;
          zn.set(Js, Jm);
        }
        Ea ? (nr.impliedNodeFormat !== dr.impliedNodeFormat ? he = 1 : Vp(nr.libReferenceDirectives, dr.libReferenceDirectives, bu) ? nr.hasNoDefaultLib !== dr.hasNoDefaultLib ? he = 1 : Vp(nr.referencedFiles, dr.referencedFiles, bu) ? (It(dr), Vp(nr.imports, dr.imports, Uu) && Vp(nr.moduleAugmentations, dr.moduleAugmentations, Uu) ? (nr.flags & 6291456) !== (dr.flags & 6291456) ? he = 1 : Vp(nr.typeReferenceDirectives, dr.typeReferenceDirectives, bu) || (he = 1) : he = 1) : he = 1 : he = 1, mn.push({ oldFile: nr, newFile: dr })) : vn(nr.path) && (he = 1, mn.push({ oldFile: nr, newFile: dr })), Ot.push(dr);
      }
      if (he !== 2)
        return he;
      const Wr = mn.map((nr) => nr.oldFile);
      for (const nr of bn)
        if (!wi(Wr, nr))
          for (const _n of nr.ambientModuleNames)
            Be.set(_n, nr.fileName);
      for (const { oldFile: nr, newFile: _n } of mn) {
        const dr = zhe(_n), Ea = K(dr, _n);
        IW(dr, _n, Ea, nr.resolvedModules, Ile, rw) ? (he = 1, _n.resolvedModules = bK(_n, dr, Ea, rw)) : _n.resolvedModules = nr.resolvedModules;
        const il = _n.typeReferenceDirectives, Jm = Pe(il, _n);
        IW(il, _n, Jm, nr.resolvedTypeReferenceDirectiveNames, kle, w8) ? (he = 1, _n.resolvedTypeReferenceDirectiveNames = bK(_n, il, Jm, w8)) : _n.resolvedTypeReferenceDirectiveNames = nr.resolvedTypeReferenceDirectiveNames;
      }
      if (he !== 2)
        return he;
      if (xle(Ge, P))
        return 1;
      if (at.hasChangedAutomaticTypeDirectiveNames) {
        if (at.hasChangedAutomaticTypeDirectiveNames())
          return 1;
      } else if (Fe = _5(P, at), !Vp(ie.getAutomaticTypeDirectiveNames(), Fe))
        return 1;
      Nn = ie.getMissingFilePaths(), D.assert(Ot.length === ie.getSourceFiles().length);
      for (const nr of Ot)
        pi.set(nr.path, nr);
      return ie.getFilesByNameMap().forEach((nr, _n) => {
        if (!nr) {
          pi.set(_n, nr);
          return;
        }
        if (nr.path === _n) {
          ie.isSourceFileFromExternalLibrary(nr) && tt.set(nr.path, !0);
          return;
        }
        pi.set(_n, pi.get(nr.path));
      }), ve = Ot, We = ie.getFileIncludeReasons(), He = ie.getFileProcessingDiagnostics(), Xe = ie.getResolvedTypeReferenceDirectives(), Fe = ie.getAutomaticTypeDirectiveNames(), st = ie.getAutomaticTypeDirectiveResolutions(), ir = ie.sourceFileToPackageName, lr = ie.redirectTargetsMap, Ni = ie.usesUriStyleNodeCoreModules, 2;
    }
    function q(Ce) {
      return {
        getPrependNodes: Qn,
        getCanonicalFileName: ae,
        getCommonSourceDirectory: j.getCommonSourceDirectory,
        getCompilerOptions: j.getCompilerOptions,
        getCurrentDirectory: () => Yt,
        getSourceFile: j.getSourceFile,
        getSourceFileByPath: j.getSourceFileByPath,
        getSourceFiles: j.getSourceFiles,
        getLibFileFromReference: j.getLibFileFromReference,
        isSourceFileFromExternalLibrary: ai,
        getResolvedProjectReferenceToRedirect: ys,
        getProjectReferenceRedirect: uc,
        isSourceOfProjectReferenceRedirect: Hd,
        getSymlinkCache: xa,
        writeFile: Ce || Rt,
        isEmitBlocked: _o,
        readFile: (Ge) => at.readFile(Ge),
        fileExists: (Ge) => {
          const Lt = pt(Ge);
          return sa(Lt) ? !0 : wi(Nn, Lt) ? !1 : at.fileExists(Ge);
        },
        useCaseSensitiveFileNames: () => at.useCaseSensitiveFileNames(),
        getBuildInfo: (Ge) => {
          var Lt;
          return (Lt = j.getBuildInfo) == null ? void 0 : Lt.call(j, Ge);
        },
        getSourceFileFromReference: (Ge, Lt) => j.getSourceFileFromReference(Ge, Lt),
        redirectTargetsMap: lr,
        getFileIncludeReasons: j.getFileIncludeReasons,
        createHash: Fo(at, at.createHash)
      };
    }
    function Rt(Ce, Ge, Lt, Ot, mn, bn) {
      at.writeFile(Ce, Ge, Lt, Ot, mn, bn);
    }
    function ht(Ce) {
      var Ge, Lt;
      D.assert(!Hs(P)), (Ge = yi) == null || Ge.push(yi.Phase.Emit, "emitBuildInfo", {}, !0), ic("beforeEmit");
      const Ot = W5(q5, q(Ce), void 0, mX, !1, !0);
      return ic("afterEmit"), Hf("Emit", "beforeEmit", "afterEmit"), (Lt = yi) == null || Lt.pop(), Ot;
    }
    function dt() {
      return Mn;
    }
    function fn() {
      return ne;
    }
    function Qn() {
      return BX(ne, (Ce, Ge) => {
        var Lt;
        return (Lt = Mn[Ge]) == null ? void 0 : Lt.commandLine;
      }, (Ce) => {
        const Ge = pt(Ce), Lt = sa(Ge);
        return Lt ? Lt.text : pi.has(Ge) ? void 0 : at.readFile(Ge);
      }, at);
    }
    function ai(Ce) {
      return !!tt.get(Ce.path);
    }
    function Si(Ce) {
      if (!Ce.isDeclarationFile)
        return !1;
      if (Ce.hasNoDefaultLib)
        return !0;
      if (!P.noLib)
        return !1;
      const Ge = at.useCaseSensitiveFileNames() ? FS : MS;
      return P.lib ? kt(P.lib, (Lt) => Ge(Ce.fileName, qi(Lt))) : Ge(Ce.fileName, Pn());
    }
    function xi() {
      return $e || ($e = Cme(j));
    }
    function Gi(Ce, Ge, Lt, Ot, mn, bn) {
      var Tn, zn;
      (Tn = yi) == null || Tn.push(yi.Phase.Emit, "emit", { path: Ce == null ? void 0 : Ce.path }, !0);
      const Wr = nc(() => bo(j, Ce, Ge, Lt, Ot, mn, bn));
      return (zn = yi) == null || zn.pop(), Wr;
    }
    function _o(Ce) {
      return Ki.has(pt(Ce));
    }
    function bo(Ce, Ge, Lt, Ot, mn, bn, Tn) {
      if (!Tn) {
        const Wi = FX(Ce, Ge, Lt, Ot);
        if (Wi)
          return Wi;
      }
      const zn = xi().getEmitResolver(Hs(P) ? void 0 : Ge, Ot);
      ic("beforeEmit");
      const Wr = W5(zn, q(Lt), Ge, pX(P, bn, mn), mn, !1, Tn);
      return ic("afterEmit"), Hf("Emit", "beforeEmit", "afterEmit"), Wr;
    }
    function no(Ce) {
      return sa(pt(Ce));
    }
    function sa(Ce) {
      return pi.get(Ce) || void 0;
    }
    function Ui(Ce, Ge, Lt) {
      return vA(Ce ? Ge(Ce, Lt) : wo(j.getSourceFiles(), (Ot) => (Lt && Lt.throwIfCancellationRequested(), Ge(Ot, Lt))));
    }
    function Jr(Ce, Ge) {
      return Ui(Ce, $c, Ge);
    }
    function is(Ce, Ge) {
      return Ui(Ce, Fc, Ge);
    }
    function di(Ce) {
      var Ge;
      return Ce ? (Ge = Oe.perFile) == null ? void 0 : Ge.get(Ce.path) : Oe.allDiagnostics;
    }
    function ca(Ce, Ge) {
      return qc(Ce, Ge);
    }
    function wn(Ce) {
      var Ge;
      if (ck(Ce, P, j))
        return rt;
      const Lt = In.getDiagnostics(Ce.fileName);
      return (Ge = Ce.commentDirectives) != null && Ge.length ? Sa(Ce, Ce.commentDirectives, Lt).diagnostics : Lt;
    }
    function ua(Ce, Ge) {
      const Lt = j.getCompilerOptions();
      return !Ce || Hs(Lt) ? jd(Ce, Ge) : Ui(Ce, Is, Ge);
    }
    function $c(Ce) {
      return Xu(Ce) ? (Ce.additionalSyntacticDiagnostics || (Ce.additionalSyntacticDiagnostics = Yl(Ce)), ma(Ce.additionalSyntacticDiagnostics, Ce.parseDiagnostics)) : Ce.parseDiagnostics;
    }
    function nc(Ce) {
      try {
        return Ce();
      } catch (Ge) {
        throw Ge instanceof oI && ($e = void 0), Ge;
      }
    }
    function Fc(Ce, Ge) {
      return ma(eF(qc(Ce, Ge), P), wn(Ce));
    }
    function qc(Ce, Ge) {
      return Hl(Ce, Ge, Oe, Bc);
    }
    function Bc(Ce, Ge) {
      return nc(() => {
        if (ck(Ce, P, j))
          return rt;
        const Lt = xi();
        D.assert(!!Ce.bindDiagnostics);
        const mn = (Ce.scriptKind === 1 || Ce.scriptKind === 2) && tO(Ce, P), bn = OM(Ce, P.checkJs), zn = !(!!Ce.checkJsDirective && Ce.checkJsDirective.enabled === !1) && (Ce.scriptKind === 3 || Ce.scriptKind === 4 || Ce.scriptKind === 5 || bn || mn || Ce.scriptKind === 7);
        let Wr = zn ? Ce.bindDiagnostics : rt, Wi = zn ? Lt.getDiagnostics(Ce, Ge) : rt;
        return bn && (Wr = yn(Wr, (nr) => oF.has(nr.code)), Wi = yn(Wi, (nr) => oF.has(nr.code))), xo(Ce, zn && !bn, Wr, Wi, mn ? Ce.jsDocDiagnostics : void 0);
      });
    }
    function xo(Ce, Ge, ...Lt) {
      var Ot;
      const mn = id(Lt);
      if (!Ge || !((Ot = Ce.commentDirectives) != null && Ot.length))
        return mn;
      const { diagnostics: bn, directives: Tn } = Sa(Ce, Ce.commentDirectives, mn);
      for (const zn of Tn.getUnusedExpectations())
        bn.push(zW(Ce, zn.range, _.Unused_ts_expect_error_directive));
      return bn;
    }
    function Sa(Ce, Ge, Lt) {
      const Ot = Ple(Ce, Ge);
      return { diagnostics: Lt.filter((bn) => Gc(bn, Ot) === -1), directives: Ot };
    }
    function Jo(Ce, Ge) {
      return nc(() => xi().getSuggestionDiagnostics(Ce, Ge));
    }
    function Gc(Ce, Ge) {
      const { file: Lt, start: Ot } = Ce;
      if (!Lt)
        return -1;
      const mn = eg(Lt);
      let bn = wR(mn, Ot).line - 1;
      for (; bn >= 0; ) {
        if (Ge.markUsed(bn))
          return bn;
        const Tn = Lt.text.slice(mn[bn], mn[bn + 1]).trim();
        if (Tn !== "" && !/^(\s*)\/\/(.*)$/.test(Tn))
          return -1;
        bn--;
      }
      return -1;
    }
    function Yl(Ce) {
      return nc(() => {
        const Ge = [];
        return Lt(Ce, Ce), VO(Ce, Lt, Ot), Ge;
        function Lt(zn, Wr) {
          switch (Wr.kind) {
            case 166:
            case 169:
            case 171:
              if (Wr.questionToken === zn)
                return Ge.push(Tn(zn, _.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 (Wr.type === zn)
                return Ge.push(Tn(zn, _.Type_annotations_can_only_be_used_in_TypeScript_files)), "skip";
          }
          switch (zn.kind) {
            case 270:
              if (zn.isTypeOnly)
                return Ge.push(Tn(Wr, _._0_declarations_can_only_be_used_in_TypeScript_files, "import type")), "skip";
              break;
            case 275:
              if (zn.isTypeOnly)
                return Ge.push(Tn(zn, _._0_declarations_can_only_be_used_in_TypeScript_files, "export type")), "skip";
              break;
            case 273:
            case 278:
              if (zn.isTypeOnly)
                return Ge.push(Tn(zn, _._0_declarations_can_only_be_used_in_TypeScript_files, xd(zn) ? "import...type" : "export...type")), "skip";
              break;
            case 268:
              return Ge.push(Tn(zn, _.import_can_only_be_used_in_TypeScript_files)), "skip";
            case 274:
              if (zn.isExportEquals)
                return Ge.push(Tn(zn, _.export_can_only_be_used_in_TypeScript_files)), "skip";
              break;
            case 294:
              if (zn.token === 117)
                return Ge.push(Tn(zn, _.implements_clauses_can_only_be_used_in_TypeScript_files)), "skip";
              break;
            case 261:
              const nr = ho(118);
              return D.assertIsDefined(nr), Ge.push(Tn(zn, _._0_declarations_can_only_be_used_in_TypeScript_files, nr)), "skip";
            case 264:
              const _n = zn.flags & 16 ? ho(143) : ho(142);
              return D.assertIsDefined(_n), Ge.push(Tn(zn, _._0_declarations_can_only_be_used_in_TypeScript_files, _n)), "skip";
            case 262:
              return Ge.push(Tn(zn, _.Type_aliases_can_only_be_used_in_TypeScript_files)), "skip";
            case 263:
              const dr = D.checkDefined(ho(92));
              return Ge.push(Tn(zn, _._0_declarations_can_only_be_used_in_TypeScript_files, dr)), "skip";
            case 232:
              return Ge.push(Tn(zn, _.Non_null_assertions_can_only_be_used_in_TypeScript_files)), "skip";
            case 231:
              return Ge.push(Tn(zn.type, _.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)), "skip";
            case 235:
              return Ge.push(Tn(zn.type, _.Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files)), "skip";
            case 213:
              D.fail();
          }
        }
        function Ot(zn, Wr) {
          if (DJ(Wr)) {
            const Wi = cn(Wr.modifiers, Nu);
            Wi && Ge.push(Tn(Wi, _.Decorators_are_not_valid_here));
          } else if (Px(Wr) && Wr.modifiers) {
            const Wi = Qi(Wr.modifiers, Nu);
            if (Wi >= 0) {
              if (Oa(Wr) && !P.experimentalDecorators)
                Ge.push(Tn(Wr.modifiers[Wi], _.Decorators_are_not_valid_here));
              else if (wl(Wr)) {
                const nr = Qi(Wr.modifiers, C7);
                if (nr >= 0) {
                  const _n = Qi(Wr.modifiers, Cfe);
                  if (Wi > nr && _n >= 0 && Wi < _n)
                    Ge.push(Tn(Wr.modifiers[Wi], _.Decorators_are_not_valid_here));
                  else if (nr >= 0 && Wi < nr) {
                    const dr = Qi(Wr.modifiers, Nu, nr);
                    dr >= 0 && Ge.push(qo(Tn(Wr.modifiers[dr], _.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export), Tn(Wr.modifiers[Wi], _.Decorator_used_before_export_here)));
                  }
                }
              }
            }
          }
          switch (Wr.kind) {
            case 260:
            case 228:
            case 171:
            case 173:
            case 174:
            case 175:
            case 215:
            case 259:
            case 216:
              if (zn === Wr.typeParameters)
                return Ge.push(bn(zn, _.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)), "skip";
            case 240:
              if (zn === Wr.modifiers)
                return mn(Wr.modifiers, Wr.kind === 240), "skip";
              break;
            case 169:
              if (zn === Wr.modifiers) {
                for (const Wi of zn)
                  lo(Wi) && Wi.kind !== 124 && Wi.kind !== 127 && Ge.push(Tn(Wi, _.The_0_modifier_can_only_be_used_in_TypeScript_files, ho(Wi.kind)));
                return "skip";
              }
              break;
            case 166:
              if (zn === Wr.modifiers && kt(zn, lo))
                return Ge.push(bn(zn, _.Parameter_modifiers_can_only_be_used_in_TypeScript_files)), "skip";
              break;
            case 210:
            case 211:
            case 230:
            case 282:
            case 283:
            case 212:
              if (zn === Wr.typeArguments)
                return Ge.push(bn(zn, _.Type_arguments_can_only_be_used_in_TypeScript_files)), "skip";
              break;
          }
        }
        function mn(zn, Wr) {
          for (const Wi of zn)
            switch (Wi.kind) {
              case 85:
                if (Wr)
                  continue;
              case 123:
              case 121:
              case 122:
              case 146:
              case 136:
              case 126:
              case 161:
              case 101:
              case 145:
                Ge.push(Tn(Wi, _.The_0_modifier_can_only_be_used_in_TypeScript_files, ho(Wi.kind)));
                break;
              case 124:
              case 93:
              case 88:
              case 127:
            }
        }
        function bn(zn, Wr, Wi, nr, _n) {
          const dr = zn.pos;
          return Il(Ce, dr, zn.end - dr, Wr, Wi, nr, _n);
        }
        function Tn(zn, Wr, Wi, nr, _n) {
          return od(Ce, zn, Wr, Wi, nr, _n);
        }
      });
    }
    function jd(Ce, Ge) {
      return Hl(Ce, Ge, Me, rl);
    }
    function rl(Ce, Ge) {
      return nc(() => {
        const Lt = xi().getEmitResolver(Ce, Ge);
        return vhe(q(io), Lt, Ce) || rt;
      });
    }
    function Hl(Ce, Ge, Lt, Ot) {
      var mn;
      const bn = Ce ? (mn = Lt.perFile) == null ? void 0 : mn.get(Ce.path) : Lt.allDiagnostics;
      if (bn)
        return bn;
      const Tn = Ot(Ce, Ge);
      return Ce ? (Lt.perFile || (Lt.perFile = /* @__PURE__ */ new Map())).set(Ce.path, Tn) : Lt.allDiagnostics = Tn, Tn;
    }
    function Is(Ce, Ge) {
      return Ce.isDeclarationFile ? [] : jd(Ce, Ge);
    }
    function mc() {
      return vA(ma(In.getGlobalDiagnostics(), $s()));
    }
    function $s() {
      if (!P.configFile)
        return rt;
      let Ce = In.getDiagnostics(P.configFile.fileName);
      return cs((Ge) => {
        Ce = ma(Ce, In.getDiagnostics(Ge.sourceFile.fileName));
      }), Ce;
    }
    function zs() {
      return Y.length ? vA(xi().getGlobalDiagnostics().slice()) : rt;
    }
    function tn() {
      return de || rt;
    }
    function Uc(Ce, Ge, Lt, Ot) {
      xt(Wo(Ce), Ge, Lt, void 0, Ot);
    }
    function bu(Ce, Ge) {
      return Ce.fileName === Ge.fileName;
    }
    function Uu(Ce, Ge) {
      return Ce.kind === 79 ? Ge.kind === 79 && Ce.escapedText === Ge.escapedText : Ge.kind === 10 && Ce.text === Ge.text;
    }
    function fe(Ce, Ge) {
      const Lt = N.createStringLiteral(Ce), Ot = N.createImportDeclaration(void 0, void 0, Lt, void 0);
      return mx(Ot, 2), Bo(Lt, Ot), Bo(Ot, Ge), Lt.flags &= -9, Ot.flags &= -9, Lt;
    }
    function It(Ce) {
      if (Ce.imports)
        return;
      const Ge = Xu(Ce), Lt = Yc(Ce);
      let Ot, mn, bn;
      if ((U_(P) || Lt) && !Ce.isDeclarationFile) {
        P.importHelpers && (Ot = [fe(Y0, Ce)]);
        const nr = R3(D3(P, Ce), P);
        nr && (Ot || (Ot = [])).push(fe(nr, Ce));
      }
      for (const nr of Ce.statements)
        zn(nr, !1);
      const Tn = Ge && yc(P) !== 100;
      (Ce.flags & 2097152 || Tn) && Wr(Ce), Ce.imports = Ot || rt, Ce.moduleAugmentations = mn || rt, Ce.ambientModuleNames = bn || rt;
      return;
      function zn(nr, _n) {
        if (QR(nr)) {
          const dr = UA(nr);
          dr && Go(dr) && dr.text && (!_n || !Pl(dr.text)) && (Rv(nr, !1), Ot = Bn(Ot, dr), !Ni && Et === 0 && !Ce.isDeclarationFile && (Ni = ba(dr.text, "node:")));
        } else if (Wc(nr) && Du(nr) && (_n || Kr(nr, 2) || Ce.isDeclarationFile)) {
          nr.name.parent = nr;
          const dr = B_(nr.name);
          if (Lt || _n && !Pl(dr))
            (mn || (mn = [])).push(nr.name);
          else if (!_n) {
            Ce.isDeclarationFile && (bn || (bn = [])).push(dr);
            const Ea = nr.body;
            if (Ea)
              for (const Js of Ea.statements)
                zn(Js, !0);
          }
        }
      }
      function Wr(nr) {
        const _n = /import|require/g;
        for (; _n.exec(nr.text) !== null; ) {
          const dr = Wi(nr, _n.lastIndex);
          Tn && Ed(dr, !0) || rf(dr) && dr.arguments.length >= 1 && Es(dr.arguments[0]) ? (Rv(dr, !1), Ot = Bn(Ot, dr.arguments[0])) : V0(dr) && (Rv(dr, !1), Ot = Bn(Ot, dr.argument.literal));
        }
      }
      function Wi(nr, _n) {
        let dr = nr;
        const Ea = (Js) => {
          if (Js.pos <= _n && (_n < Js.end || _n === Js.end && Js.kind === 1))
            return Js;
        };
        for (; ; ) {
          const Js = Ge && bf(dr) && ze(dr.jsDoc, Ea) || Ra(dr, Ea);
          if (!Js)
            return dr;
          dr = Js;
        }
      }
    }
    function jt(Ce) {
      const Ge = D_(Ce.fileName), Lt = e8.get(Ge);
      if (Lt)
        return no(qi(Lt));
    }
    function Q(Ce, Ge) {
      return ot(X5(Ge.fileName, Ce.fileName), no);
    }
    function ot(Ce, Ge, Lt, Ot) {
      if (gA(Ce)) {
        const mn = at.getCanonicalFileName(Ce);
        if (!P.allowNonTsExtensions && !ze(id(Ai), (Tn) => sl(mn, Tn))) {
          Lt && (_x(mn) ? Lt(_.File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option, Ce) : Lt(_.File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1, Ce, "'" + id(_r).join("', '") + "'"));
          return;
        }
        const bn = Ge(Ce);
        if (Lt)
          if (bn)
            nb(Ot) && mn === at.getCanonicalFileName(sa(Ot.file).fileName) && Lt(_.A_file_cannot_have_a_reference_to_itself);
          else {
            const Tn = uc(Ce);
            Tn ? Lt(_.Output_file_0_has_not_been_built_from_source_file_1, Tn, Ce) : Lt(_.File_0_not_found, Ce);
          }
        return bn;
      } else {
        const mn = P.allowNonTsExtensions && Ge(Ce);
        if (mn)
          return mn;
        if (Lt && P.allowNonTsExtensions) {
          Lt(_.File_0_not_found, Ce);
          return;
        }
        const bn = ze(_r[0], (Tn) => Ge(Ce + Tn));
        return Lt && !bn && Lt(_.Could_not_resolve_the_path_0_with_the_extensions_Colon_1, Ce, "'" + id(_r).join("', '") + "'"), bn;
      }
    }
    function xt(Ce, Ge, Lt, Ot, mn) {
      ot(Ce, (bn) => ya(bn, Ge, Lt, mn, Ot), (bn, ...Tn) => Vo(void 0, mn, bn, Tn), mn);
    }
    function pn(Ce, Ge) {
      return xt(Ce, !1, !1, void 0, Ge);
    }
    function wr(Ce, Ge, Lt) {
      !nb(Lt) && kt(We.get(Ge.path), nb) ? Vo(Ge, Lt, _.Already_included_file_name_0_differs_from_file_name_1_only_in_casing, [Ge.fileName, Ce]) : Vo(Ge, Lt, _.File_name_0_differs_from_already_included_file_name_1_only_in_casing, [Ce, Ge.fileName]);
    }
    function Or(Ce, Ge, Lt, Ot, mn, bn, Tn) {
      var zn;
      const Wr = Wm.createRedirectedSourceFile({ redirectTarget: Ce, unredirected: Ge });
      return Wr.fileName = Lt, Wr.path = Ot, Wr.resolvedPath = mn, Wr.originalFileName = bn, Wr.packageJsonLocations = (zn = Tn.packageJsonLocations) != null && zn.length ? Tn.packageJsonLocations : void 0, Wr.packageJsonScope = Tn.packageJsonScope, tt.set(Ot, Et > 0), Wr;
    }
    function ya(Ce, Ge, Lt, Ot, mn) {
      var bn, Tn;
      (bn = yi) == null || bn.push(yi.Phase.Program, "findSourceFile", {
        fileName: Ce,
        isDefaultLib: Ge || void 0,
        fileIncludeKind: Y4[Ot.kind]
      });
      const zn = po(Ce, Ge, Lt, Ot, mn);
      return (Tn = yi) == null || Tn.pop(), zn;
    }
    function as(Ce, Ge, Lt, Ot) {
      const mn = MX(Da(Ce, Yt), Ge == null ? void 0 : Ge.getPackageJsonInfoCache(), Lt, Ot), bn = $o(Ot), Tn = zN(Ot);
      return typeof mn == "object" ? { ...mn, languageVersion: bn, setExternalModuleIndicator: Tn } : { languageVersion: bn, impliedNodeFormat: mn, setExternalModuleIndicator: Tn };
    }
    function po(Ce, Ge, Lt, Ot, mn) {
      var bn, Tn;
      const zn = pt(Ce);
      if (gt) {
        let dr = dc(zn);
        if (!dr && at.realpath && P.preserveSymlinks && ld(Ce) && uu(Ce, Sy)) {
          const Ea = pt(at.realpath(Ce));
          Ea !== zn && (dr = dc(Ea));
        }
        if (dr) {
          const Ea = Ua(dr) ? ya(dr, Ge, Lt, Ot, mn) : void 0;
          return Ea && Ka(Ea, zn, void 0), Ea;
        }
      }
      const Wr = Ce;
      if (pi.has(zn)) {
        const dr = pi.get(zn);
        if (Uo(dr || void 0, Ot), dr && P.forceConsistentCasingInFileNames !== !1) {
          const Ea = dr.fileName;
          pt(Ea) !== pt(Ce) && (Ce = uc(Ce) || Ce);
          const il = PH(Ea, Yt), Jm = PH(Ce, Yt);
          il !== Jm && wr(Ce, dr, Ot);
        }
        return dr && tt.get(dr.path) && Et === 0 ? (tt.set(dr.path, !1), P.noResolve || (kf(dr, Ge), Se(dr)), P.noLib || Ao(dr), Vt.set(dr.path, !1), lt(dr)) : dr && Vt.get(dr.path) && Et < Ct && (Vt.set(dr.path, !1), lt(dr)), dr || void 0;
      }
      let Wi;
      if (nb(Ot) && !gt) {
        const dr = ll(Ce);
        if (dr) {
          if (Hs(dr.commandLine.options))
            return;
          const Ea = ud(dr, Ce);
          Ce = Ea, Wi = pt(Ea);
        }
      }
      const nr = as(Ce, Nr, at, P), _n = at.getSourceFile(Ce, nr, (dr) => Vo(void 0, Ot, _.Cannot_read_file_0_Colon_1, [Ce, dr]), re || ((bn = ie == null ? void 0 : ie.getSourceFileByPath(pt(Ce))) == null ? void 0 : bn.impliedNodeFormat) !== nr.impliedNodeFormat);
      if (mn) {
        const dr = oT(mn), Ea = dn.get(dr);
        if (Ea) {
          const Js = Or(Ea, _n, Ce, zn, pt(Ce), Wr, nr);
          return lr.add(Ea.path, Ce), Ka(Js, zn, Wi), Uo(Js, Ot), ir.set(zn, RM(mn)), pe.push(Js), Js;
        } else
          _n && (dn.set(dr, _n), ir.set(zn, RM(mn)));
      }
      if (Ka(_n, zn, Wi), _n) {
        if (tt.set(zn, Et > 0), _n.fileName = Ce, _n.path = zn, _n.resolvedPath = pt(Ce), _n.originalFileName = Wr, _n.packageJsonLocations = (Tn = nr.packageJsonLocations) != null && Tn.length ? nr.packageJsonLocations : void 0, _n.packageJsonScope = nr.packageJsonScope, Uo(_n, Ot), at.useCaseSensitiveFileNames()) {
          const dr = D_(zn), Ea = nn.get(dr);
          Ea ? wr(Ce, Ea, Ot) : nn.set(dr, _n);
        }
        Xt = Xt || _n.hasNoDefaultLib && !Lt, P.noResolve || (kf(_n, Ge), Se(_n)), P.noLib || Ao(_n), lt(_n), Ge ? ce.push(_n) : pe.push(_n);
      }
      return _n;
    }
    function Uo(Ce, Ge) {
      Ce && We.add(Ce.path, Ge);
    }
    function Ka(Ce, Ge, Lt) {
      Lt ? (pi.set(Lt, Ce), pi.set(Ge, Ce || !1)) : pi.set(Ge, Ce);
    }
    function uc(Ce) {
      const Ge = ll(Ce);
      return Ge && ud(Ge, Ce);
    }
    function ll(Ce) {
      if (!(!Mn || !Mn.length || ld(Ce) || sl(Ce, ".json")))
        return ys(Ce);
    }
    function ud(Ce, Ge) {
      const Lt = Hs(Ce.commandLine.options);
      return Lt ? I1(Lt, ".d.ts") : Zk(Ge, Ce.commandLine, !at.useCaseSensitiveFileNames());
    }
    function ys(Ce) {
      Vr === void 0 && (Vr = /* @__PURE__ */ new Map(), cs((Lt) => {
        pt(P.configFilePath) !== Lt.sourceFile.path && Lt.commandLine.fileNames.forEach((Ot) => Vr.set(pt(Ot), Lt.sourceFile.path));
      }));
      const Ge = Vr.get(pt(Ce));
      return Ge && Vc(Ge);
    }
    function cs(Ce) {
      return Whe(Mn, Ce);
    }
    function dc(Ce) {
      if (ld(Ce))
        return ke === void 0 && (ke = /* @__PURE__ */ new Map(), cs((Ge) => {
          const Lt = Hs(Ge.commandLine.options);
          if (Lt) {
            const Ot = I1(Lt, ".d.ts");
            ke.set(pt(Ot), !0);
          } else {
            const Ot = yd(() => ew(Ge.commandLine, !at.useCaseSensitiveFileNames()));
            ze(Ge.commandLine.fileNames, (mn) => {
              if (!ld(mn) && !sl(mn, ".json")) {
                const bn = Zk(mn, Ge.commandLine, !at.useCaseSensitiveFileNames(), Ot);
                ke.set(pt(bn), mn);
              }
            });
          }
        })), ke.get(Ce);
    }
    function Hd(Ce) {
      return gt && !!ys(Ce);
    }
    function Vc(Ce) {
      if (Ar)
        return Ar.get(Ce) || void 0;
    }
    function kf(Ce, Ge) {
      ze(Ce.referencedFiles, (Lt, Ot) => {
        xt(X5(Lt.fileName, Ce.fileName), Ge, !1, void 0, { kind: 4, file: Ce.path, index: Ot });
      });
    }
    function Se(Ce) {
      const Ge = Ce.typeReferenceDirectives;
      if (!Ge.length) {
        Ce.resolvedTypeReferenceDirectiveNames = void 0;
        return;
      }
      const Lt = Pe(Ge, Ce);
      for (let Ot = 0; Ot < Ge.length; Ot++) {
        const mn = Ce.typeReferenceDirectives[Ot], bn = Lt[Ot], Tn = D_(mn.fileName);
        Lle(Ce, Tn, bn, L8(mn, Ce.impliedNodeFormat));
        const zn = mn.resolutionMode || Ce.impliedNodeFormat;
        zn && yc(P) !== 3 && yc(P) !== 99 && (He ?? (He = [])).push({
          kind: 2,
          diagnostics: [
            zW(Ce, mn, _.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext)
          ]
        }), Dt(Tn, zn, bn, { kind: 5, file: Ce.path, index: Ot });
      }
    }
    function Dt(Ce, Ge, Lt, Ot) {
      var mn, bn;
      (mn = yi) == null || mn.push(yi.Phase.Program, "processTypeReferenceDirective", { directive: Ce, hasResolved: !!Lt.resolvedTypeReferenceDirective, refKind: Ot.kind, refPath: nb(Ot) ? Ot.file : void 0 }), On(Ce, Ge, Lt, Ot), (bn = yi) == null || bn.pop();
    }
    function On(Ce, Ge, Lt, Ot) {
      var mn;
      je(Lt);
      const bn = (mn = Xe.get(Ce, Ge)) == null ? void 0 : mn.resolvedTypeReferenceDirective;
      if (bn && bn.primary)
        return;
      let Tn = !0;
      const { resolvedTypeReferenceDirective: zn } = Lt;
      if (zn) {
        if (zn.isExternalLibraryImport && Et++, zn.primary)
          xt(zn.resolvedFileName, !1, !1, zn.packageId, Ot);
        else if (bn) {
          if (zn.resolvedFileName !== bn.resolvedFileName) {
            const Wr = at.readFile(zn.resolvedFileName), Wi = no(bn.resolvedFileName);
            Wr !== Wi.text && Vo(Wi, Ot, _.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict, [Ce, zn.resolvedFileName, bn.resolvedFileName]);
          }
          Tn = !1;
        } else
          xt(zn.resolvedFileName, !1, !1, zn.packageId, Ot);
        zn.isExternalLibraryImport && Et--;
      } else
        Vo(void 0, Ot, _.Cannot_find_type_definition_file_for_0, [Ce]);
      Tn && Xe.set(Ce, Ge, Lt);
    }
    function qi(Ce) {
      const Ge = Ce.split(".");
      let Lt = Ge[1], Ot = 2;
      for (; Ge[Ot] && Ge[Ot] !== "d"; )
        Lt += (Ot === 2 ? "/" : "-") + Ge[Ot], Ot++;
      const mn = Pi(Yt, `__lib_node_modules_lookup_${Ce}__.ts`), bn = jk("@typescript/lib-" + Lt, mn, { moduleResolution: 2 }, at, Nr);
      return bn != null && bn.resolvedModule ? bn.resolvedModule.resolvedFileName : Pi(Wn, Ce);
    }
    function Ao(Ce) {
      ze(Ce.libReferenceDirectives, (Ge, Lt) => {
        const Ot = D_(Ge.fileName), mn = e8.get(Ot);
        if (mn)
          Uc(qi(mn), !0, !0, { kind: 7, file: Ce.path, index: Lt });
        else {
          const bn = pA(rI(Ot, "lib."), ".d.ts"), Tn = nI(bn, ZO, pc), zn = Tn ? _.Cannot_find_lib_definition_for_0_Did_you_mean_1 : _.Cannot_find_lib_definition_for_0;
          (He || (He = [])).push({
            kind: 0,
            reason: { kind: 7, file: Ce.path, index: Lt },
            diagnostic: zn,
            args: [Ot, Tn]
          });
        }
      });
    }
    function ae(Ce) {
      return at.getCanonicalFileName(Ce);
    }
    function lt(Ce) {
      var Ge;
      if (It(Ce), Ce.imports.length || Ce.moduleAugmentations.length) {
        const Lt = zhe(Ce), Ot = K(Lt, Ce);
        D.assert(Ot.length === Lt.length);
        const mn = (gt ? (Ge = ln(Ce)) == null ? void 0 : Ge.commandLine.options : void 0) || P;
        for (let bn = 0; bn < Lt.length; bn++) {
          const Tn = Ot[bn].resolvedModule, zn = Lt[bn].text, Wr = vp(Ce, Lt[bn]);
          if (Cle(Ce, zn, Ot[bn], Wr), Qe(Ce, zn, Ot[bn], Wr), !Tn)
            continue;
          const Wi = Tn.isExternalLibraryImport, nr = !ZN(Tn.extension), _n = Wi && nr, dr = Tn.resolvedFileName;
          Wi && Et++;
          const Ea = _n && Et > Ct, Js = dr && !GX(mn, Tn, Ce) && !mn.noResolve && bn < Ce.imports.length && !Ea && !(nr && !JN(mn)) && (fr(Ce.imports[bn]) || !(Ce.imports[bn].flags & 8388608));
          Ea ? Vt.set(Ce.path, !0) : Js && ya(dr, !1, !1, { kind: 3, file: Ce.path, index: bn }, Tn.packageId), Wi && Et--;
        }
      } else
        Ce.resolvedModules = void 0;
    }
    function Mt(Ce, Ge) {
      let Lt = !0;
      const Ot = at.getCanonicalFileName(Da(Ge, Yt));
      for (const mn of Ce)
        mn.isDeclarationFile || at.getCanonicalFileName(Da(mn.fileName, Yt)).indexOf(Ot) !== 0 && (vs(mn, _.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, [mn.fileName, Ge]), Lt = !1);
      return Lt;
    }
    function Pt(Ce) {
      Ar || (Ar = /* @__PURE__ */ new Map());
      const Ge = nw(Ce), Lt = pt(Ge), Ot = Ar.get(Lt);
      if (Ot !== void 0)
        return Ot || void 0;
      let mn, bn;
      if (at.getParsedCommandLine) {
        if (mn = at.getParsedCommandLine(Ge), !mn) {
          Ka(void 0, Lt, void 0), Ar.set(Lt, !1);
          return;
        }
        bn = D.checkDefined(mn.options.configFile), D.assert(!bn.path || bn.path === Lt), Ka(bn, Lt, void 0);
      } else {
        const zn = Da(_i(Ge), at.getCurrentDirectory());
        if (bn = at.getSourceFile(Ge, 100), Ka(bn, Lt, void 0), bn === void 0) {
          Ar.set(Lt, !1);
          return;
        }
        mn = KO(bn, an, zn, void 0, Ge);
      }
      bn.fileName = Ge, bn.path = Lt, bn.resolvedPath = Lt, bn.originalFileName = Ge;
      const Tn = { commandLine: mn, sourceFile: bn };
      return Ar.set(Lt, Tn), mn.projectReferences && (Tn.references = mn.projectReferences.map(Pt)), Tn;
    }
    function un() {
      P.strictPropertyInitialization && !m_(P, "strictNullChecks") && Ko(_.Option_0_cannot_be_specified_without_specifying_option_1, "strictPropertyInitialization", "strictNullChecks"), P.exactOptionalPropertyTypes && !m_(P, "strictNullChecks") && Ko(_.Option_0_cannot_be_specified_without_specifying_option_1, "exactOptionalPropertyTypes", "strictNullChecks"), (P.isolatedModules || P.verbatimModuleSyntax) && (P.out && Ko(_.Option_0_cannot_be_specified_with_option_1, "out", P.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules"), P.outFile && Ko(_.Option_0_cannot_be_specified_with_option_1, "outFile", P.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules")), P.inlineSourceMap && (P.sourceMap && Ko(_.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"), P.mapRoot && Ko(_.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap")), P.composite && (P.declaration === !1 && Ko(_.Composite_projects_may_not_disable_declaration_emit, "declaration"), P.incremental === !1 && Ko(_.Composite_projects_may_not_disable_incremental_compilation, "declaration"));
      const Ce = Hs(P);
      if (P.tsBuildInfoFile ? qN(P) || Ko(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "tsBuildInfoFile", "incremental", "composite") : P.incremental && !Ce && !P.configFilePath && In.add(Os(_.Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified)), ei(), dd(), P.composite) {
        const Tn = new Set(Y.map(pt));
        for (const zn of ve)
          ox(zn, j) && !Tn.has(zn.path) && vs(zn, _.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern, [zn.fileName, P.configFilePath || ""]);
      }
      if (P.paths) {
        for (const Tn in P.paths)
          if (Rs(P.paths, Tn))
            if (Qz(Tn) || Qc(!0, Tn, _.Pattern_0_can_have_at_most_one_Asterisk_character, Tn), Ba(P.paths[Tn])) {
              const zn = P.paths[Tn].length;
              zn === 0 && Qc(!1, Tn, _.Substitutions_for_pattern_0_shouldn_t_be_an_empty_array, Tn);
              for (let Wr = 0; Wr < zn; Wr++) {
                const Wi = P.paths[Tn][Wr], nr = typeof Wi;
                nr === "string" ? (Qz(Wi) || lf(Tn, Wr, _.Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character, Wi, Tn), !P.baseUrl && !vf(Wi) && !sI(Wi) && lf(Tn, Wr, _.Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash)) : lf(Tn, Wr, _.Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2, Wi, Tn, nr);
              }
            } else
              Qc(!1, Tn, _.Substitutions_for_pattern_0_should_be_an_array, Tn);
      }
      !P.sourceMap && !P.inlineSourceMap && (P.inlineSources && Ko(_.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, "inlineSources"), P.sourceRoot && Ko(_.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, "sourceRoot")), P.out && P.outFile && Ko(_.Option_0_cannot_be_specified_with_option_1, "out", "outFile"), P.mapRoot && !(P.sourceMap || P.declarationMap) && Ko(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "mapRoot", "sourceMap", "declarationMap"), P.declarationDir && (j_(P) || Ko(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "declarationDir", "declaration", "composite"), Ce && Ko(_.Option_0_cannot_be_specified_with_option_1, "declarationDir", P.out ? "out" : "outFile")), P.declarationMap && !j_(P) && Ko(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "declarationMap", "declaration", "composite"), P.lib && P.noLib && Ko(_.Option_0_cannot_be_specified_with_option_1, "lib", "noLib"), P.noImplicitUseStrict && m_(P, "alwaysStrict") && Ko(_.Option_0_cannot_be_specified_with_option_1, "noImplicitUseStrict", "alwaysStrict");
      const Ge = $o(P), Lt = cn(ve, (Tn) => Yc(Tn) && !Tn.isDeclarationFile);
      if (P.isolatedModules || P.verbatimModuleSyntax)
        P.module === 0 && Ge < 2 && P.isolatedModules && Ko(_.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher, "isolatedModules", "target"), P.preserveConstEnums === !1 && Ko(_.Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled, P.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules", "preserveConstEnums");
      else if (Lt && Ge < 2 && P.module === 0) {
        const Tn = y1(Lt, typeof Lt.externalModuleIndicator == "boolean" ? Lt : Lt.externalModuleIndicator);
        In.add(Il(Lt, Tn.start, Tn.length, _.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none));
      }
      if (Ce && !P.emitDeclarationOnly) {
        if (P.module && !(P.module === 2 || P.module === 4))
          Ko(_.Only_amd_and_system_modules_are_supported_alongside_0, P.out ? "out" : "outFile", "module");
        else if (P.module === void 0 && Lt) {
          const Tn = y1(Lt, typeof Lt.externalModuleIndicator == "boolean" ? Lt : Lt.externalModuleIndicator);
          In.add(Il(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) && (yc(P) === 1 ? Ko(_.Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic, "resolveJsonModule") : L3(P) || Ko(_.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 = Wt();
        P.outDir && Tn === "" && ve.some((zn) => Wp(zn.fileName) > 1) && Ko(_.Cannot_find_the_common_subdirectory_path_for_the_input_files, "outDir");
      }
      P.useDefineForClassFields && Ge === 0 && Ko(_.Option_0_cannot_be_specified_when_option_target_is_ES3, "useDefineForClassFields"), P.checkJs && !JN(P) && In.add(Os(_.Option_0_cannot_be_specified_without_specifying_option_1, "checkJs", "allowJs")), P.emitDeclarationOnly && (j_(P) || Ko(_.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "emitDeclarationOnly", "declaration", "composite"), P.noEmit && Ko(_.Option_0_cannot_be_specified_with_option_1, "emitDeclarationOnly", "noEmit")), P.emitDecoratorMetadata && !P.experimentalDecorators && Ko(_.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"), P.jsxFactory ? (P.reactNamespace && Ko(_.Option_0_cannot_be_specified_with_option_1, "reactNamespace", "jsxFactory"), (P.jsx === 4 || P.jsx === 5) && Ko(_.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxFactory", Gk.get("" + P.jsx)), Fx(P.jsxFactory, Ge) || E_("jsxFactory", _.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name, P.jsxFactory)) : P.reactNamespace && !N_(P.reactNamespace, Ge) && E_("reactNamespace", _.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier, P.reactNamespace), P.jsxFragmentFactory && (P.jsxFactory || Ko(_.Option_0_cannot_be_specified_without_specifying_option_1, "jsxFragmentFactory", "jsxFactory"), (P.jsx === 4 || P.jsx === 5) && Ko(_.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxFragmentFactory", Gk.get("" + P.jsx)), Fx(P.jsxFragmentFactory, Ge) || E_("jsxFragmentFactory", _.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name, P.jsxFragmentFactory)), P.reactNamespace && (P.jsx === 4 || P.jsx === 5) && Ko(_.Option_0_cannot_be_specified_when_option_jsx_is_1, "reactNamespace", Gk.get("" + P.jsx)), P.jsxImportSource && P.jsx === 2 && Ko(_.Option_0_cannot_be_specified_when_option_jsx_is_1, "jsxImportSource", Gk.get("" + P.jsx)), P.preserveValueImports && tu(P) < 5 && Ko(_.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "preserveValueImports");
      const Ot = tu(P);
      P.verbatimModuleSyntax && ((Ot === 2 || Ot === 3 || Ot === 4) && Ko(_.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System, "verbatimModuleSyntax"), P.isolatedModules && Ze("isolatedModules", "verbatimModuleSyntax"), P.preserveValueImports && Ze("preserveValueImports", "verbatimModuleSyntax"), P.importsNotUsedAsValues && Ze("importsNotUsedAsValues", "verbatimModuleSyntax")), P.allowImportingTsExtensions && !(P.noEmit || P.emitDeclarationOnly) && E_("allowImportingTsExtensions", _.Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set);
      const mn = yc(P);
      if (P.resolvePackageJsonExports && !fx(mn) && Ko(_.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonExports"), P.resolvePackageJsonImports && !fx(mn) && Ko(_.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonImports"), P.customConditions && !fx(mn) && Ko(_.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions"), mn === 100 && !Xz(Ot) && E_("moduleResolution", _.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "bundler"), !P.noEmit && !P.suppressOutputPathCheck) {
        const Tn = q(), zn = /* @__PURE__ */ new Set();
        hX(Tn, (Wr) => {
          P.emitDeclarationOnly || bn(Wr.jsFilePath, zn), bn(Wr.declarationFilePath, zn);
        });
      }
      function bn(Tn, zn) {
        if (Tn) {
          const Wr = pt(Tn);
          if (pi.has(Wr)) {
            let nr;
            P.configFilePath || (nr = ka(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)), nr = ka(nr, _.Cannot_write_file_0_because_it_would_overwrite_input_file, Tn), zt(Tn, A3(nr));
          }
          const Wi = at.useCaseSensitiveFileNames() ? Wr : D_(Wr);
          zn.has(Wi) ? zt(Tn, Os(_.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files, Tn)) : zn.add(Wi);
        }
      }
    }
    function jn() {
      const Ce = P.ignoreDeprecations;
      if (Ce) {
        if (Ce === "5.0")
          return new R_(Ce);
        W();
      }
      return R_.zero;
    }
    function Dr(Ce, Ge, Lt, Ot) {
      const mn = new R_(Ce), bn = new R_(Ge), Tn = new R_(ye || me), zn = jn(), Wr = bn.compareTo(Tn) !== 1, Wi = !Wr && zn.compareTo(mn) === -1;
      (Wr || Wi) && Ot((nr, _n, dr) => {
        Wr ? _n === void 0 ? Lt(nr, _n, dr, _.Option_0_has_been_removed_Please_remove_it_from_your_configuration, nr) : Lt(nr, _n, dr, _.Option_0_1_has_been_removed_Please_remove_it_from_your_configuration, nr, _n) : _n === void 0 ? Lt(nr, _n, dr, _.Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error, nr, Ge, Ce) : Lt(nr, _n, dr, _.Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error, nr, _n, Ge, Ce);
      });
    }
    function ei() {
      function Ce(Ge, Lt, Ot, mn, bn, Tn, zn, Wr) {
        if (Ot) {
          const Wi = ka(void 0, _.Use_0_instead, Ot), nr = ka(Wi, mn, bn, Tn, zn, Wr);
          Y_(!Lt, Ge, void 0, nr);
        } else
          Y_(!Lt, Ge, void 0, mn, bn, Tn, zn, Wr);
      }
      Dr("5.0", "5.5", Ce, (Ge) => {
        P.target === 0 && Ge("target", "ES3"), P.noImplicitUseStrict && Ge("noImplicitUseStrict"), P.keyofStringsOnly && Ge("keyofStringsOnly"), P.suppressExcessPropertyErrors && Ge("suppressExcessPropertyErrors"), P.suppressImplicitAnyIndexErrors && Ge("suppressImplicitAnyIndexErrors"), P.noStrictGenericChecks && Ge("noStrictGenericChecks"), P.charset && Ge("charset"), P.out && Ge("out", void 0, "outFile"), P.importsNotUsedAsValues && Ge("importsNotUsedAsValues", void 0, "verbatimModuleSyntax"), P.preserveValueImports && Ge("preserveValueImports", void 0, "verbatimModuleSyntax");
      });
    }
    function Oi(Ce, Ge, Lt) {
      function Ot(mn, bn, Tn, zn, Wr, Wi, nr, _n) {
        df(Ge, Lt, zn, Wr, Wi, nr, _n);
      }
      Dr("5.0", "5.5", Ot, (mn) => {
        Ce.prepend && mn("prepend");
      });
    }
    function Ga(Ce, Ge, Lt, Ot) {
      var mn;
      let bn, Tn, zn = nb(Ge) ? Ge : void 0;
      Ce && ((mn = We.get(Ce.path)) == null || mn.forEach(dr)), Ge && dr(Ge), zn && (bn == null ? void 0 : bn.length) === 1 && (bn = void 0);
      const Wr = zn && tw(sa, zn), Wi = bn && ka(bn, _.The_file_is_in_the_program_because_Colon), nr = Ce && aY(Ce), _n = ka(nr ? Wi ? [Wi, ...nr] : nr : Wi, Lt, ...Ot || rt);
      return Wr && FC(Wr) ? VM(Wr.file, Wr.pos, Wr.end - Wr.pos, _n, Tn) : A3(_n, Tn);
      function dr(Ea) {
        (bn || (bn = [])).push(cY(j, Ea)), !zn && nb(Ea) ? zn = Ea : zn !== Ea && (Tn = Bn(Tn, qs(Ea))), Ea === Ge && (Ge = void 0);
      }
    }
    function Vo(Ce, Ge, Lt, Ot) {
      (He || (He = [])).push({
        kind: 1,
        file: Ce && Ce.path,
        fileProcessingReason: Ge,
        diagnostic: Lt,
        args: Ot
      });
    }
    function vs(Ce, Ge, Lt) {
      In.add(Ga(Ce, void 0, Ge, Lt));
    }
    function qs(Ce) {
      if (nb(Ce)) {
        const Ot = tw(sa, Ce);
        let mn;
        switch (Ce.kind) {
          case 3:
            mn = _.File_is_included_via_import_here;
            break;
          case 4:
            mn = _.File_is_included_via_reference_here;
            break;
          case 5:
            mn = _.File_is_included_via_type_library_reference_here;
            break;
          case 7:
            mn = _.File_is_included_via_library_reference_here;
            break;
          default:
            D.assertNever(Ce);
        }
        return FC(Ot) ? Il(Ot.file, Ot.pos, Ot.end - Ot.pos, mn) : void 0;
      }
      if (!P.configFile)
        return;
      let Ge, Lt;
      switch (Ce.kind) {
        case 0:
          if (!P.configFile.configFileSpecs)
            return;
          const Ot = Da(Y[Ce.index], Yt), mn = oY(j, Ot);
          if (mn) {
            Ge = XM(P.configFile, "files", mn), Lt = _.File_is_matched_by_files_list_specified_here;
            break;
          }
          const bn = sY(j, Ot);
          if (!bn || !Ua(bn))
            return;
          Ge = XM(P.configFile, "include", bn), Lt = _.File_is_matched_by_include_pattern_specified_here;
          break;
        case 1:
        case 2:
          const Tn = D.checkDefined(Mn == null ? void 0 : Mn[Ce.index]), zn = k8(ne, Mn, (dr, Ea, Js) => dr === Tn ? { sourceFile: (Ea == null ? void 0 : Ea.sourceFile) || P.configFile, index: Js } : void 0);
          if (!zn)
            return;
          const { sourceFile: Wr, index: Wi } = zn, nr = sn(tN(Wr, "references"), (dr) => Ou(dr.initializer) ? dr.initializer : void 0);
          return nr && nr.elements.length > Wi ? od(Wr, nr.elements[Wi], Ce.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;
          Ge = b_("types", Ce.typeReference), Lt = _.File_is_entry_point_of_type_library_specified_here;
          break;
        case 6:
          if (Ce.index !== void 0) {
            Ge = b_("lib", P.lib[Ce.index]), Lt = _.File_is_library_specified_here;
            break;
          }
          const _n = tf(r8.type, (dr, Ea) => dr === $o(P) ? Ea : void 0);
          Ge = _n ? uf("target", _n) : void 0, Lt = _.File_is_default_library_for_target_specified_here;
          break;
        default:
          D.assertNever(Ce);
      }
      return Ge && od(P.configFile, Ge, Lt);
    }
    function dd() {
      const Ce = P.suppressOutputPathCheck ? void 0 : Ay(P);
      k8(ne, Mn, (Ge, Lt, Ot) => {
        const mn = (Lt ? Lt.commandLine.projectReferences : ne)[Ot], bn = Lt && Lt.sourceFile;
        if (Oi(mn, bn, Ot), !Ge) {
          df(bn, Ot, _.File_0_not_found, mn.path);
          return;
        }
        const Tn = Ge.commandLine.options;
        if ((!Tn.composite || Tn.noEmit) && (Lt ? Lt.commandLine.fileNames : Y).length && (Tn.composite || df(bn, Ot, _.Referenced_project_0_must_have_setting_composite_Colon_true, mn.path), Tn.noEmit && df(bn, Ot, _.Referenced_project_0_may_not_disable_emit, mn.path)), mn.prepend) {
          const zn = Hs(Tn);
          zn ? at.fileExists(zn) || df(bn, Ot, _.Output_file_0_from_project_1_does_not_exist, zn, mn.path) : df(bn, Ot, _.Cannot_prepend_project_0_because_it_does_not_have_outFile_set, mn.path);
        }
        !Lt && Ce && Ce === Ay(Tn) && (df(bn, Ot, _.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1, Ce, mn.path), Ki.set(pt(Ce), !0));
      });
    }
    function lf(Ce, Ge, Lt, Ot, mn, bn) {
      let Tn = !0;
      const zn = Eu();
      for (const Wr of zn)
        if (xs(Wr.initializer))
          for (const Wi of MA(Wr.initializer, Ce)) {
            const nr = Wi.initializer;
            Ou(nr) && nr.elements.length > Ge && (In.add(od(P.configFile, nr.elements[Ge], Lt, Ot, mn, bn)), Tn = !1);
          }
      Tn && In.add(Os(Lt, Ot, mn, bn));
    }
    function Qc(Ce, Ge, Lt, Ot) {
      let mn = !0;
      const bn = Eu();
      for (const Tn of bn)
        xs(Tn.initializer) && G(Tn.initializer, Ce, Ge, void 0, Lt, Ot) && (mn = !1);
      mn && In.add(Os(Lt, Ot));
    }
    function Wd(Ce) {
      const Ge = Ap();
      return Ge && MA(Ge, Ce);
    }
    function Eu() {
      return Wd("paths") || rt;
    }
    function uf(Ce, Ge) {
      const Lt = Wd(Ce);
      return Lt && sn(Lt, (Ot) => Go(Ot.initializer) && Ot.initializer.text === Ge ? Ot.initializer : void 0);
    }
    function b_(Ce, Ge) {
      const Lt = Ap();
      return Lt && eue(Lt, Ce, Ge);
    }
    function Ko(Ce, Ge, Lt, Ot) {
      Y_(!0, Ge, Lt, Ce, Ge, Lt, Ot);
    }
    function E_(Ce, Ge, Lt, Ot) {
      Y_(!1, Ce, void 0, Ge, Lt, Ot);
    }
    function df(Ce, Ge, Lt, Ot, mn, bn, Tn) {
      const zn = sn(tN(Ce || P.configFile, "references"), (Wr) => Ou(Wr.initializer) ? Wr.initializer : void 0);
      zn && zn.elements.length > Ge ? In.add(od(Ce || P.configFile, zn.elements[Ge], Lt, Ot, mn, bn, Tn)) : In.add(Os(Lt, Ot, mn, bn, Tn));
    }
    function Y_(Ce, Ge, Lt, Ot, mn, bn, Tn, zn) {
      const Wr = Ap();
      (!Wr || !G(Wr, Ce, Ge, Lt, Ot, mn, bn, Tn, zn)) && ("messageText" in Ot ? In.add(A3(Ot)) : In.add(Os(Ot, mn, bn, Tn, zn)));
    }
    function Ap() {
      if (Xi === void 0) {
        Xi = !1;
        const Ce = NI(P.configFile);
        if (Ce) {
          for (const Ge of MA(Ce, "compilerOptions"))
            if (xs(Ge.initializer)) {
              Xi = Ge.initializer;
              break;
            }
        }
      }
      return Xi || void 0;
    }
    function G(Ce, Ge, Lt, Ot, mn, bn, Tn, zn, Wr) {
      const Wi = MA(Ce, Lt, Ot);
      for (const nr of Wi)
        "messageText" in mn ? In.add(ag(P.configFile, Ge ? nr.name : nr.initializer, mn)) : In.add(od(P.configFile, Ge ? nr.name : nr.initializer, mn, bn, Tn, zn, Wr));
      return !!Wi.length;
    }
    function Ze(Ce, Ge) {
      const Lt = Ap();
      Lt ? G(Lt, !0, Ce, void 0, _.Option_0_is_redundant_and_cannot_be_specified_with_option_1, Ce, Ge) : Ko(_.Option_0_is_redundant_and_cannot_be_specified_with_option_1, Ce, Ge);
    }
    function zt(Ce, Ge) {
      Ki.set(pt(Ce), !0), In.add(Ge);
    }
    function $n(Ce) {
      if (P.noEmit)
        return !1;
      const Ge = pt(Ce);
      if (sa(Ge))
        return !1;
      const Lt = Hs(P);
      if (Lt)
        return La(Ge, Lt) || La(Ge, Md(Lt) + ".d.ts");
      if (P.declarationDir && gv(P.declarationDir, Ge, Yt, !at.useCaseSensitiveFileNames()))
        return !0;
      if (P.outDir)
        return gv(P.outDir, Ge, Yt, !at.useCaseSensitiveFileNames());
      if (bl(Ge, hk) || ld(Ge)) {
        const Ot = Md(Ge);
        return !!sa(Ot + ".ts") || !!sa(Ot + ".tsx");
      }
      return !1;
    }
    function La(Ce, Ge) {
      return QE(Ce, Ge, Yt, !at.useCaseSensitiveFileNames()) === 0;
    }
    function xa() {
      return at.getSymlinkCache ? at.getSymlinkCache() : (Te || (Te = xde(Yt, ae)), ve && st && !Te.hasProcessedResolutions() && Te.setSymlinksFromResolutions(ve, st), Te);
    }
  }
  function J3e(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: io, fileExists: d };
    e.compilerHost.fileExists = d;
    let l;
    return i && (l = e.compilerHost.directoryExists = (L) => i.call(e.compilerHost, L) ? (b(L), !0) : e.getResolvedProjectReferences() ? (t || (t = /* @__PURE__ */ new Set(), e.forEachResolvedProjectReference((I) => {
      const O = Hs(I.commandLine.options);
      if (O)
        t.add(_i(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: l };
    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() || !ld(L) ? !1 : A(L, !0);
    }
    function y(L) {
      const I = e.getSourceOfProjectReferenceRedirect(e.toPath(L));
      return I !== void 0 ? Ua(I) ? r.call(e.compilerHost, I) : !0 : void 0;
    }
    function h(L) {
      const I = e.toPath(L), O = `${I}${Ns}`;
      return LI(t, (k) => I === k || ba(k, O) || ba(I, `${k}/`));
    }
    function b(L) {
      var I;
      if (!e.getResolvedProjectReferences() || fk(L) || !s || !uu(L, Sy))
        return;
      const O = e.getSymlinkCache(), k = wu(e.toPath(L));
      if ((I = O.getSymlinkedDirectories()) != null && I.has(k))
        return;
      const B = Wo(s.call(e.compilerHost, L));
      let V;
      if (B === L || (V = wu(e.toPath(B))) === k) {
        O.setSymlinkedDirectory(k, !1);
        return;
      }
      O.setSymlinkedDirectory(L, {
        real: wu(B),
        realPath: V
      });
    }
    function A(L, I) {
      var O;
      const k = I ? (X) => y(X) : (X) => h(X), B = k(L);
      if (B !== void 0)
        return B;
      const V = e.getSymlinkCache(), H = V.getSymlinkedDirectories();
      if (!H)
        return !1;
      const te = e.toPath(L);
      return uu(te, Sy) ? I && ((O = V.getSymlinkedFiles()) != null && O.has(te)) ? !0 : Hn(H.entries(), ([X, Y]) => {
        if (!Y || !ba(te, X))
          return;
        const P = k(te.replace(X, Y.realPath));
        if (I && P) {
          const de = Da(L, e.compilerHost.getCurrentDirectory());
          V.setSymlinkedFile(te, `${Y.real}${de.replace(new RegExp(X, "i"), "")}`);
        }
        return P;
      }) || !1 : !1;
    }
  }
  function FX(e, t, r, i) {
    const o = e.getCompilerOptions();
    if (o.noEmit)
      return e.getSemanticDiagnostics(t, i), t || Hs(o) ? sF : 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 && j_(e.getCompilerOptions()) && (s = e.getDeclarationDiagnostics(void 0, i)), !s.length)
      return;
    let l;
    if (!t && !Hs(o)) {
      const f = e.emitBuildInfo(r, i);
      f.diagnostics && (s = [...s, ...f.diagnostics]), l = f.emittedFiles;
    }
    return { diagnostics: s, sourceMaps: void 0, emittedFiles: l, emitSkipped: !0 };
  }
  function eF(e, t) {
    return yn(e, (r) => !r.skippedOn || !t[r.skippedOn]);
  }
  function tF(e, t = e) {
    return {
      fileExists: (r) => t.fileExists(r),
      readDirectory(r, i, o, s, l) {
        return D.assertIsDefined(t.readDirectory, "'CompilerHost.readDirectory' must be implemented to correctly process 'projectReferences'"), t.readDirectory(r, i, o, s, l);
      },
      readFile: (r) => t.readFile(r),
      useCaseSensitiveFileNames: e.useCaseSensitiveFileNames(),
      getCurrentDirectory: () => e.getCurrentDirectory(),
      onUnRecoverableConfigFileDiagnostic: e.onUnRecoverableConfigFileDiagnostic || P0,
      trace: e.trace ? (r) => e.trace(r) : void 0
    };
  }
  function BX(e, t, r, i) {
    if (!e)
      return rt;
    let o;
    for (let s = 0; s < e.length; s++) {
      const l = e[s], f = t(l, s);
      if (l.prepend && f && f.options) {
        if (!Hs(f.options))
          continue;
        const { jsFilePath: y, sourceMapFilePath: h, declarationFilePath: b, declarationMapPath: A, buildInfoPath: L } = $k(f.options, !0), I = Gq(r, y, h, b, A, L, i, f.options);
        (o || (o = [])).push(I);
      }
    }
    return o || rt;
  }
  function nw(e) {
    return mY(e.path);
  }
  function GX(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 l();
    }
    function i() {
      return e.jsx ? void 0 : _.Module_0_was_resolved_to_1_but_jsx_is_not_set;
    }
    function o() {
      return JN(e) || !m_(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 l() {
      return r || e.allowArbitraryExtensions ? void 0 : _.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set;
    }
  }
  function zhe({ imports: e, moduleAugmentations: t }) {
    const r = e.map((i) => i);
    for (const i of t)
      i.kind === 10 && r.push(i);
    return r;
  }
  function nF({ 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 UX, rF, iF, VX, jX, qhe, HX, WX, rw, w8, aF, oF, sF, K3e = C({
    "src/compiler/program.ts"() {
      wa(), wa(), c1(), UX = /* @__PURE__ */ ((e) => (e.Grey = "\x1B[90m", e.Red = "\x1B[91m", e.Yellow = "\x1B[93m", e.Blue = "\x1B[94m", e.Cyan = "\x1B[96m", e))(UX || {}), rF = "\x1B[7m", iF = " ", VX = "\x1B[0m", jX = "...", qhe = "  ", HX = "    ", WX = {
        resolvedModule: void 0,
        resolvedTypeReferenceDirective: void 0
      }, rw = {
        getName: NX,
        getMode: (e, t) => vp(t, e)
      }, w8 = {
        getName: Y5,
        getMode: (e, t) => L8(e, t == null ? void 0 : t.impliedNodeFormat)
      }, aF = "__inferred type names__.ts", oF = /* @__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
      ]), sF = { diagnostics: rt, sourceMaps: void 0, emittedFiles: void 0, emitSkipped: !0 };
    }
  }), X3e = C({
    "src/compiler/builderStatePublic.ts"() {
    }
  });
  function Jhe(e, t, r, i, o, s) {
    const l = [], { emitSkipped: f, diagnostics: d } = e.emit(t, y, i, r, o, s);
    return { outputFiles: l, emitSkipped: f, diagnostics: d };
    function y(h, b, A) {
      l.push({ name: h, writeByteOrderMark: A, text: b });
    }
  }
  var qm, Y3e = C({
    "src/compiler/builderState.ts"() {
      wa(), ((e) => {
        function t() {
          function ie(W, ce, pe) {
            const ve = {
              getKeys: (Te) => ce.get(Te),
              getValues: (Te) => W.get(Te),
              keys: () => W.keys(),
              deleteKey: (Te) => {
                (pe || (pe = /* @__PURE__ */ new Set())).add(Te);
                const ee = W.get(Te);
                return ee ? (ee.forEach(($e) => i(ce, $e, Te)), W.delete(Te), !0) : !1;
              },
              set: (Te, ee) => {
                pe == null || pe.delete(Te);
                const $e = W.get(Te);
                return W.set(Te, ee), $e == null || $e.forEach((Ue) => {
                  ee.has(Ue) || i(ce, Ue, Te);
                }), ee.forEach((Ue) => {
                  $e != null && $e.has(Ue) || r(ce, Ue, Te);
                }), ve;
              }
            };
            return ve;
          }
          return ie(/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map(), void 0);
        }
        e.createManyToManyPathMap = t;
        function r(ie, W, ce) {
          let pe = ie.get(W);
          pe || (pe = /* @__PURE__ */ new Set(), ie.set(W, pe)), pe.add(ce);
        }
        function i(ie, W, ce) {
          const pe = ie.get(W);
          return pe != null && pe.delete(ce) ? (pe.size || ie.delete(W), !0) : !1;
        }
        function o(ie) {
          return fa(ie.declarations, (W) => {
            var ce;
            return (ce = er(W)) == null ? void 0 : ce.resolvedPath;
          });
        }
        function s(ie, W) {
          const ce = ie.getSymbolAtLocation(W);
          return ce && o(ce);
        }
        function l(ie, W, ce, pe) {
          return js(ie.getProjectReferenceRedirect(W) || W, ce, pe);
        }
        function f(ie, W, ce) {
          let pe;
          if (W.imports && W.imports.length > 0) {
            const $e = ie.getTypeChecker();
            for (const Ue of W.imports) {
              const Be = s($e, Ue);
              Be == null || Be.forEach(ee);
            }
          }
          const ve = _i(W.resolvedPath);
          if (W.referencedFiles && W.referencedFiles.length > 0)
            for (const $e of W.referencedFiles) {
              const Ue = l(ie, $e.fileName, ve, ce);
              ee(Ue);
            }
          if (W.resolvedTypeReferenceDirectiveNames && W.resolvedTypeReferenceDirectiveNames.forEach(({ resolvedTypeReferenceDirective: $e }) => {
            if (!$e)
              return;
            const Ue = $e.resolvedFileName, Be = l(ie, Ue, ve, ce);
            ee(Be);
          }), W.moduleAugmentations.length) {
            const $e = ie.getTypeChecker();
            for (const Ue of W.moduleAugmentations) {
              if (!Go(Ue))
                continue;
              const Be = $e.getSymbolAtLocation(Ue);
              Be && Te(Be);
            }
          }
          for (const $e of ie.getTypeChecker().getAmbientModules())
            $e.declarations && $e.declarations.length > 1 && Te($e);
          return pe;
          function Te($e) {
            if ($e.declarations)
              for (const Ue of $e.declarations) {
                const Be = er(Ue);
                Be && Be !== W && ee(Be.resolvedPath);
              }
          }
          function ee($e) {
            (pe || (pe = /* @__PURE__ */ new Set())).add($e);
          }
        }
        function d(ie, W) {
          return W && !W.referencedMap == !ie;
        }
        e.canReuseOldState = d;
        function y(ie, W, ce) {
          var pe, ve, Te;
          const ee = /* @__PURE__ */ new Map(), $e = ie.getCompilerOptions(), Ue = Hs($e), Be = $e.module !== 0 && !Ue ? t() : void 0, We = Be ? t() : void 0, Oe = d(Be, W);
          ie.getTypeChecker();
          for (const Me of ie.getSourceFiles()) {
            const Xe = D.checkDefined(Me.version, "Program intended to be used with Builder should have source files with versions set"), He = Oe ? (pe = W.oldSignatures) == null ? void 0 : pe.get(Me.resolvedPath) : void 0, Fe = He === void 0 ? Oe ? (ve = W.fileInfos.get(Me.resolvedPath)) == null ? void 0 : ve.signature : void 0 : He || void 0;
            if (Be) {
              const st = f(ie, Me, ie.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 && We.set(Me.resolvedPath, Et);
              }
            }
            ee.set(Me.resolvedPath, {
              version: Xe,
              signature: Fe,
              affectsGlobalScope: Ue ? void 0 : P(Me) || void 0,
              impliedFormat: Me.impliedNodeFormat
            });
          }
          return {
            fileInfos: ee,
            referencedMap: Be,
            exportedModulesMap: We,
            useFileVersionAsSignature: !ce && !Oe
          };
        }
        e.create = y;
        function h(ie) {
          ie.allFilesExcludingDefaultLibraryFile = void 0, ie.allFileNames = void 0;
        }
        e.releaseCache = h;
        function b(ie, W, ce, pe, ve) {
          var Te, ee;
          const $e = A(ie, W, ce, pe, ve);
          return (Te = ie.oldSignatures) == null || Te.clear(), (ee = ie.oldExportedModulesMap) == null || ee.clear(), $e;
        }
        e.getFilesAffectedBy = b;
        function A(ie, W, ce, pe, ve) {
          const Te = W.getSourceFileByPath(ce);
          return Te ? O(ie, W, Te, pe, ve) ? (ie.referencedMap ? ye : ne)(ie, W, Te, pe, ve) : [Te] : rt;
        }
        e.getFilesAffectedByWithOldState = A;
        function L(ie, W, ce) {
          ie.fileInfos.get(ce).signature = W, (ie.hasCalledUpdateShapeSignature || (ie.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(ce);
        }
        e.updateSignatureOfFile = L;
        function I(ie, W, ce, pe, ve) {
          ie.emit(W, (Te, ee, $e, Ue, Be, We) => {
            D.assert(ld(Te), `File extension for signature expected to be dts: Got:: ${Te}`), ve(KX(ie, W, ee, pe, We), Be);
          }, ce, !0, void 0, !0);
        }
        e.computeDtsSignature = I;
        function O(ie, W, ce, pe, ve, Te = ie.useFileVersionAsSignature) {
          var ee;
          if ((ee = ie.hasCalledUpdateShapeSignature) != null && ee.has(ce.resolvedPath))
            return !1;
          const $e = ie.fileInfos.get(ce.resolvedPath), Ue = $e.signature;
          let Be;
          if (!ce.isDeclarationFile && !Te && I(W, ce, pe, ve, (We, Oe) => {
            Be = We, Be !== Ue && k(ie, ce, Oe[0].exportedModulesFromDeclarationEmit);
          }), Be === void 0 && (Be = ce.version, ie.exportedModulesMap && Be !== Ue)) {
            (ie.oldExportedModulesMap || (ie.oldExportedModulesMap = /* @__PURE__ */ new Map())).set(ce.resolvedPath, ie.exportedModulesMap.getValues(ce.resolvedPath) || !1);
            const We = ie.referencedMap ? ie.referencedMap.getValues(ce.resolvedPath) : void 0;
            We ? ie.exportedModulesMap.set(ce.resolvedPath, We) : ie.exportedModulesMap.deleteKey(ce.resolvedPath);
          }
          return (ie.oldSignatures || (ie.oldSignatures = /* @__PURE__ */ new Map())).set(ce.resolvedPath, Ue || !1), (ie.hasCalledUpdateShapeSignature || (ie.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(ce.resolvedPath), $e.signature = Be, Be !== Ue;
        }
        e.updateShapeSignature = O;
        function k(ie, W, ce) {
          if (!ie.exportedModulesMap)
            return;
          (ie.oldExportedModulesMap || (ie.oldExportedModulesMap = /* @__PURE__ */ new Map())).set(W.resolvedPath, ie.exportedModulesMap.getValues(W.resolvedPath) || !1);
          const pe = B(ce);
          pe ? ie.exportedModulesMap.set(W.resolvedPath, pe) : ie.exportedModulesMap.deleteKey(W.resolvedPath);
        }
        e.updateExportedModules = k;
        function B(ie) {
          let W;
          return ie == null || ie.forEach((ce) => o(ce).forEach((pe) => (W ?? (W = /* @__PURE__ */ new Set())).add(pe))), W;
        }
        e.getExportedModules = B;
        function V(ie, W, ce) {
          const pe = W.getCompilerOptions();
          if (Hs(pe) || !ie.referencedMap || P(ce))
            return H(ie, W);
          const ve = /* @__PURE__ */ new Set(), Te = [ce.resolvedPath];
          for (; Te.length; ) {
            const ee = Te.pop();
            if (!ve.has(ee)) {
              ve.add(ee);
              const $e = ie.referencedMap.getValues(ee);
              if ($e)
                for (const Ue of $e.keys())
                  Te.push(Ue);
            }
          }
          return Do(dA(ve.keys(), (ee) => {
            var $e, Ue;
            return (Ue = ($e = W.getSourceFileByPath(ee)) == null ? void 0 : $e.fileName) != null ? Ue : ee;
          }));
        }
        e.getAllDependencies = V;
        function H(ie, W) {
          if (!ie.allFileNames) {
            const ce = W.getSourceFiles();
            ie.allFileNames = ce === rt ? rt : ce.map((pe) => pe.fileName);
          }
          return ie.allFileNames;
        }
        function te(ie, W) {
          const ce = ie.referencedMap.getKeys(W);
          return ce ? Do(ce.keys()) : [];
        }
        e.getReferencedByPaths = te;
        function X(ie) {
          for (const W of ie.statements)
            if (!BM(W))
              return !1;
          return !0;
        }
        function Y(ie) {
          return kt(ie.moduleAugmentations, (W) => qp(W.parent));
        }
        function P(ie) {
          return Y(ie) || !nf(ie) && !d_(ie) && !X(ie);
        }
        function de(ie, W, ce) {
          if (ie.allFilesExcludingDefaultLibraryFile)
            return ie.allFilesExcludingDefaultLibraryFile;
          let pe;
          ce && ve(ce);
          for (const Te of W.getSourceFiles())
            Te !== ce && ve(Te);
          return ie.allFilesExcludingDefaultLibraryFile = pe || rt, ie.allFilesExcludingDefaultLibraryFile;
          function ve(Te) {
            W.isSourceFileDefaultLibrary(Te) || (pe || (pe = [])).push(Te);
          }
        }
        e.getAllFilesExcludingDefaultLibraryFile = de;
        function ne(ie, W, ce) {
          const pe = W.getCompilerOptions();
          return pe && Hs(pe) ? [ce] : de(ie, W, ce);
        }
        function ye(ie, W, ce, pe, ve) {
          if (P(ce))
            return de(ie, W, ce);
          const Te = W.getCompilerOptions();
          if (Te && (U_(Te) || Hs(Te)))
            return [ce];
          const ee = /* @__PURE__ */ new Map();
          ee.set(ce.resolvedPath, ce);
          const $e = te(ie, ce.resolvedPath);
          for (; $e.length > 0; ) {
            const Ue = $e.pop();
            if (!ee.has(Ue)) {
              const Be = W.getSourceFileByPath(Ue);
              ee.set(Ue, Be), Be && O(ie, W, Be, pe, ve) && $e.push(...te(ie, Be.resolvedPath));
            }
          }
          return Do(dA(ee.values(), (Ue) => Ue));
        }
      })(qm || (qm = {}));
    }
  });
  function Vv(e) {
    let t = 1;
    return e.sourceMap && (t = t | 2), e.inlineSourceMap && (t = t | 4), j_(e) && (t = t | 8), e.declarationMap && (t = t | 16), e.emitDeclarationOnly && (t = t & 24), t;
  }
  function BC(e, t) {
    const r = t && (ay(t) ? t : Vv(t)), i = ay(e) ? e : Vv(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 $3e(e, t) {
    return e === t || e !== void 0 && t !== void 0 && e.size === t.size && !LI(e, (r) => !t.has(r));
  }
  function Q3e(e, t) {
    var r, i;
    const o = qm.create(e, t, !1);
    o.program = e;
    const s = e.getCompilerOptions();
    o.compilerOptions = s;
    const l = Hs(s);
    l ? s.composite && (t != null && t.outSignature) && l === Hs(t == null ? void 0 : t.compilerOptions) && (o.outSignature = t.outSignature && Xhe(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 = qm.canReuseOldState(o.referencedMap, t), d = f ? t.compilerOptions : void 0, y = f && t.semanticDiagnosticsPerFile && !!o.semanticDiagnosticsPerFile && !Ede(s, d), h = s.composite && (t == null ? void 0 : t.emitSignatures) && !l && !Sde(s, t.compilerOptions);
    f ? ((r = t.changedFilesSet) == null || r.forEach((O) => o.changedFilesSet.add(O)), !l && ((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 b = 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 B;
      let V, H;
      if (!f || !(V = t.fileInfos.get(k)) || V.version !== O.version || V.impliedFormat !== O.impliedFormat || !$3e(H = b && b.getValues(k), A && A.getValues(k)) || H && LI(H, (te) => !o.fileInfos.has(te) && t.fileInfos.has(te)))
        Khe(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 ? Z3e(X, e) : X), o.semanticDiagnosticsFromOldState || (o.semanticDiagnosticsFromOldState = /* @__PURE__ */ new Set()), o.semanticDiagnosticsFromOldState.add(k));
      }
      if (h) {
        const te = t.emitSignatures.get(k);
        te && ((B = o.emitSignatures) != null ? B : o.emitSignatures = /* @__PURE__ */ new Map()).set(k, Xhe(s, t.compilerOptions, te));
      }
    }), f && tf(t.fileInfos, (O, k) => o.fileInfos.has(k) ? !1 : l || O.affectsGlobalScope ? !0 : (o.buildInfoEmitPending = !0, !1)))
      qm.getAllFilesExcludingDefaultLibraryFile(o, e, void 0).forEach((O) => Khe(o, O.resolvedPath));
    else if (d) {
      const O = Tde(s, d) ? Vv(s) : BC(s, d);
      O !== 0 && (l ? o.programEmitPending = o.programEmitPending ? o.programEmitPending | O : O : (e.getSourceFiles().forEach((k) => {
        o.changedFilesSet.has(k.resolvedPath) || YX(o, k.resolvedPath, O);
      }), D.assert(!o.seenAffectedFiles || !o.seenAffectedFiles.size), o.seenAffectedFiles = o.seenAffectedFiles || /* @__PURE__ */ new Set(), o.buildInfoEmitPending = !0));
    }
    return l && !o.changedFilesSet.size && (f && (o.bundle = t.bundle), kt(e.getProjectReferences(), (O) => !!O.prepend) && (o.programEmitPending = Vv(s))), o;
  }
  function Khe(e, t) {
    e.changedFilesSet.add(t), e.buildInfoEmitPending = !0, e.programEmitPending = void 0;
  }
  function Xhe(e, t, r) {
    return !!e.declarationMap == !!t.declarationMap ? r : Ua(r) ? [r] : r[0];
  }
  function Z3e(e, t) {
    if (!e.length)
      return rt;
    let r;
    return e.map((o) => {
      const s = Yhe(o, t, i);
      s.reportsUnnecessary = o.reportsUnnecessary, s.reportsDeprecated = o.reportDeprecated, s.source = o.source, s.skippedOn = o.skippedOn;
      const { relatedInformation: l } = o;
      return s.relatedInformation = l ? l.length ? l.map((f) => Yhe(f, t, i)) : [] : void 0, s;
    });
    function i(o) {
      return r ?? (r = _i(Da(Ay(t.getCompilerOptions()), t.getCurrentDirectory()))), js(o, r, t.getCanonicalFileName);
    }
  }
  function Yhe(e, t, r) {
    const { file: i } = e;
    return {
      ...e,
      file: i ? t.getSourceFileByPath(r(i)) : void 0
    };
  }
  function e7e(e) {
    qm.releaseCache(e), e.program = void 0;
  }
  function t7e(e) {
    const t = Hs(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 n7e(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 $he(e, t) {
    D.assert(!t || !e.affectedFiles || e.affectedFiles[e.affectedFilesIndex - 1] !== t || !e.semanticDiagnosticsPerFile.has(t.resolvedPath));
  }
  function Qhe(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 b = s[h];
          if (!y.has(b.resolvedPath))
            return e.affectedFilesIndex = h, YX(e, b.resolvedPath, Vv(e.compilerOptions)), a7e(e, b, t, r), b;
          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 l = e.changedFilesSet.keys().next();
      if (l.done)
        return;
      const f = D.checkDefined(e.program), d = f.getCompilerOptions();
      if (Hs(d))
        return D.assert(!e.semanticDiagnosticsPerFile), f;
      e.affectedFiles = qm.getFilesAffectedByWithOldState(e, f, l.value, t, r), e.currentChangedFilePath = l.value, e.affectedFilesIndex = 0, e.seenAffectedFiles || (e.seenAffectedFiles = /* @__PURE__ */ new Set());
    }
  }
  function r7e(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 i7e(e, t) {
    var r;
    if ((r = e.affectedFilesPendingEmit) != null && r.size)
      return tf(e.affectedFilesPendingEmit, (i, o) => {
        var s;
        const l = e.program.getSourceFileByPath(o);
        if (!l || !ox(l, e.program)) {
          e.affectedFilesPendingEmit.delete(o);
          return;
        }
        const f = (s = e.seenEmittedFiles) == null ? void 0 : s.get(l.resolvedPath);
        let d = BC(i, f);
        if (t && (d = d & 24), d)
          return { affectedFile: l, emitKind: d };
      });
  }
  function Zhe(e) {
    if (!e.cleanedDiagnosticsOfLibFiles) {
      e.cleanedDiagnosticsOfLibFiles = !0;
      const t = D.checkDefined(e.program), r = t.getCompilerOptions();
      ze(t.getSourceFiles(), (i) => t.isSourceFileDefaultLibrary(i) && !ck(i, r, t) && zX(e, i.resolvedPath));
    }
  }
  function a7e(e, t, r, i) {
    if (zX(e, t.resolvedPath), e.allFilesExcludingDefaultLibraryFile === e.affectedFiles) {
      Zhe(e), qm.updateShapeSignature(e, D.checkDefined(e.program), t, r, i);
      return;
    }
    e.compilerOptions.assumeChangesOnlyAffectDirectDependencies || o7e(e, t, r, i);
  }
  function cF(e, t, r, i) {
    if (zX(e, t), !e.changedFilesSet.has(t)) {
      const o = D.checkDefined(e.program), s = o.getSourceFileByPath(t);
      s && (qm.updateShapeSignature(e, o, s, r, i, !0), j_(e.compilerOptions) && YX(e, t, e.compilerOptions.declarationMap ? 24 : 8));
    }
  }
  function zX(e, t) {
    return e.semanticDiagnosticsFromOldState ? (e.semanticDiagnosticsFromOldState.delete(t), e.semanticDiagnosticsPerFile.delete(t), !e.semanticDiagnosticsFromOldState.size) : !0;
  }
  function ege(e, t) {
    const r = D.checkDefined(e.oldSignatures).get(t) || void 0;
    return D.checkDefined(e.fileInfos.get(t)).signature !== r;
  }
  function qX(e, t, r, i) {
    var o;
    return (o = e.fileInfos.get(t)) != null && o.affectsGlobalScope ? (qm.getAllFilesExcludingDefaultLibraryFile(e, e.program, void 0).forEach((s) => cF(e, s.resolvedPath, r, i)), Zhe(e), !0) : !1;
  }
  function o7e(e, t, r, i) {
    var o;
    if (!e.exportedModulesMap || !e.changedFilesSet.has(t.resolvedPath) || !ege(e, t.resolvedPath))
      return;
    if (U_(e.compilerOptions)) {
      const l = /* @__PURE__ */ new Map();
      l.set(t.resolvedPath, !0);
      const f = qm.getReferencedByPaths(e, t.resolvedPath);
      for (; f.length > 0; ) {
        const d = f.pop();
        if (!l.has(d)) {
          if (l.set(d, !0), qX(e, d, r, i))
            return;
          if (cF(e, d, r, i), ege(e, d)) {
            const y = D.checkDefined(e.program).getSourceFileByPath(d);
            f.push(...qm.getReferencedByPaths(e, y.resolvedPath));
          }
        }
      }
    }
    const s = /* @__PURE__ */ new Set();
    (o = e.exportedModulesMap.getKeys(t.resolvedPath)) == null || o.forEach((l) => {
      if (qX(e, l, r, i))
        return !0;
      const f = e.referencedMap.getKeys(l);
      return f && LI(f, (d) => tge(e, d, s, r, i));
    });
  }
  function tge(e, t, r, i, o) {
    var s, l;
    if (e1(r, t)) {
      if (qX(e, t, i, o))
        return !0;
      cF(e, t, i, o), (s = e.exportedModulesMap.getKeys(t)) == null || s.forEach((f) => tge(e, f, r, i, o)), (l = e.referencedMap.getKeys(t)) == null || l.forEach((f) => !r.has(f) && cF(e, f, i, o));
    }
  }
  function JX(e, t, r) {
    return ma(s7e(e, t, r), D.checkDefined(e.program).getProgramDiagnostics(t));
  }
  function s7e(e, t, r) {
    const i = t.resolvedPath;
    if (e.semanticDiagnosticsPerFile) {
      const s = e.semanticDiagnosticsPerFile.get(i);
      if (s)
        return eF(s, e.compilerOptions);
    }
    const o = D.checkDefined(e.program).getBindAndCheckDiagnostics(t, r);
    return e.semanticDiagnosticsPerFile && e.semanticDiagnosticsPerFile.set(i, o), eF(o, e.compilerOptions);
  }
  function nge(e) {
    return !!Hs(e.options || {});
  }
  function c7e(e, t) {
    var r, i, o;
    const s = D.checkDefined(e.program).getCurrentDirectory(), l = _i(Da(Ay(e.compilerOptions), s)), f = e.latestChangedDtsFile ? X(e.latestChangedDtsFile) : void 0, d = [], y = /* @__PURE__ */ new Map(), h = [];
    if (Hs(e.compilerOptions)) {
      const ie = Do(e.fileInfos.entries(), ([ee, $e]) => {
        const Ue = P(ee);
        return ne(ee, Ue), $e.impliedFormat ? { version: $e.version, impliedFormat: $e.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : $e.version;
      }), W = {
        fileNames: d,
        fileInfos: ie,
        root: h,
        options: ye(e.compilerOptions),
        outSignature: e.outSignature,
        latestChangedDtsFile: f,
        pendingEmit: e.programEmitPending ? e.programEmitPending === Vv(e.compilerOptions) ? !1 : e.programEmitPending : void 0
      }, { js: ce, dts: pe, 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: pe || (j_(e.compilerOptions) ? (i = e.bundle) == null ? void 0 : i.dts : void 0)
      }, S8(W, t);
    }
    let b, A, L;
    const I = Do(e.fileInfos.entries(), ([ie, W]) => {
      var ce, pe;
      const ve = P(ie);
      ne(ie, ve), D.assert(d[ve - 1] === Y(ie));
      const Te = (ce = e.oldSignatures) == null ? void 0 : ce.get(ie), ee = Te !== void 0 ? Te || void 0 : W.signature;
      if (e.compilerOptions.composite) {
        const $e = e.program.getSourceFileByPath(ie);
        if (!d_($e) && ox($e, e.program)) {
          const Ue = (pe = e.emitSignatures) == null ? void 0 : pe.get(ie);
          Ue !== ee && (L || (L = [])).push(Ue === void 0 ? ve : [ve, !Ua(Ue) && Ue[0] === ee ? rt : Ue]);
        }
      }
      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 = Do(e.referencedMap.keys()).sort(ku).map((ie) => [
      P(ie),
      de(e.referencedMap.getValues(ie))
    ]));
    let k;
    e.exportedModulesMap && (k = fa(Do(e.exportedModulesMap.keys()).sort(ku), (ie) => {
      var W;
      const ce = (W = e.oldExportedModulesMap) == null ? void 0 : W.get(ie);
      if (ce === void 0)
        return [P(ie), de(e.exportedModulesMap.getValues(ie))];
      if (ce)
        return [P(ie), de(ce)];
    }));
    let B;
    if (e.semanticDiagnosticsPerFile)
      for (const ie of Do(e.semanticDiagnosticsPerFile.keys()).sort(ku)) {
        const W = e.semanticDiagnosticsPerFile.get(ie);
        (B || (B = [])).push(W.length ? [
          P(ie),
          u7e(W, Y)
        ] : P(ie));
      }
    let V;
    if ((o = e.affectedFilesPendingEmit) != null && o.size) {
      const ie = Vv(e.compilerOptions), W = /* @__PURE__ */ new Set();
      for (const ce of Do(e.affectedFilesPendingEmit.keys()).sort(ku))
        if (e1(W, ce)) {
          const pe = e.program.getSourceFileByPath(ce);
          if (!pe || !ox(pe, e.program))
            continue;
          const ve = P(ce), Te = e.affectedFilesPendingEmit.get(ce);
          (V || (V = [])).push(Te === ie ? ve : Te === 8 ? [ve] : [ve, Te]);
        }
    }
    let H;
    if (e.changedFilesSet.size)
      for (const ie of Do(e.changedFilesSet.keys()).sort(ku))
        (H || (H = [])).push(P(ie));
    const te = {
      fileNames: d,
      fileInfos: I,
      root: h,
      options: ye(e.compilerOptions),
      fileIdsList: b,
      referencedMap: O,
      exportedModulesMap: k,
      semanticDiagnosticsPerFile: B,
      affectedFilesPendingEmit: V,
      changeFileSet: H,
      emitSignatures: L,
      latestChangedDtsFile: f
    };
    return S8(te, t);
    function X(ie) {
      return Y(Da(ie, s));
    }
    function Y(ie) {
      return u1(Lm(l, ie, e.program.getCanonicalFileName));
    }
    function P(ie) {
      let W = y.get(ie);
      return W === void 0 && (d.push(Y(ie)), y.set(ie, W = d.length)), W;
    }
    function de(ie) {
      const W = Do(ie.keys(), P).sort(Vs), ce = W.join();
      let pe = A == null ? void 0 : A.get(ce);
      return pe === void 0 && ((b || (b = [])).push(W), (A || (A = /* @__PURE__ */ new Map())).set(ce, pe = b.length)), pe;
    }
    function ne(ie, W) {
      const ce = e.program.getSourceFile(ie);
      if (!e.program.getFileIncludeReasons().get(ce.path).some((ee) => ee.kind === 0))
        return;
      if (!h.length)
        return h.push(W);
      const pe = h[h.length - 1], ve = Ba(pe);
      if (ve && pe[1] === W - 1)
        return pe[1] = W;
      if (ve || h.length === 1 || pe !== W - 1)
        return h.push(W);
      const Te = h[h.length - 2];
      return !ay(Te) || Te !== pe - 1 ? h.push(W) : (h[h.length - 2] = [Te, W], h.length = h.length - 1);
    }
    function ye(ie) {
      let W;
      const { optionsNameMap: ce } = DC();
      for (const pe of $h(ie).sort(ku)) {
        const ve = ce.get(pe.toLowerCase());
        ve != null && ve.affectsBuildInfo && ((W || (W = {}))[pe] = l7e(ve, ie[pe], X));
      }
      return W;
    }
  }
  function l7e(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 u7e(e, t) {
    return D.assert(!!e.length), e.map((r) => {
      const i = rge(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) => rge(s, t)) : [] : void 0, i;
    });
  }
  function rge(e, t) {
    const { file: r } = e;
    return {
      ...e,
      file: r ? t(r.resolvedPath) : void 0
    };
  }
  function lF(e, t, r, i, o, s) {
    let l, f, d;
    return e === void 0 ? (D.assert(t === void 0), l = r, d = i, D.assert(!!d), f = d.getProgram()) : Ba(e) ? (d = i, f = Z5({
      rootNames: e,
      options: t,
      host: r,
      oldProgram: d && d.getProgramOrUndefined(),
      configFileParsingDiagnostics: o,
      projectReferences: s
    }), l = r) : (f = e, l = t, d = r, o = i), { host: l, newProgram: f, oldProgram: d, configFileParsingDiagnostics: o || rt };
  }
  function ige(e, t) {
    return (t == null ? void 0 : t.sourceMapUrlPos) !== void 0 ? e.substring(0, t.sourceMapUrlPos) : e;
  }
  function KX(e, t, r, i, o) {
    var s, l;
    r = ige(r, o);
    let f;
    return (s = o == null ? void 0 : o.diagnostics) != null && s.length && (r += o.diagnostics.map((h) => `${y(h)}${pR[h.category]}${h.code}: ${d(h.messageText)}`).join(`
`)), ((l = i.createHash) != null ? l : gR)(r);
    function d(h) {
      return Ua(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 = _i(t.resolvedPath)), `${u1(Lm(f, h.file.resolvedPath, e.getCanonicalFileName))}(${h.start},${h.length})`);
    }
  }
  function UT(e, t, r) {
    var i;
    return ((i = t.createHash) != null ? i : gR)(ige(e, r));
  }
  function XX(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 l = Q3e(t, s);
    t.getBuildInfo = (O) => c7e(l, O), t = void 0, i = void 0, s = void 0;
    const f = () => l, d = QX(f, o);
    return d.getState = f, d.saveEmitState = () => t7e(l), d.restoreEmitState = (O) => n7e(l, O), d.hasChangedEmitSignature = () => !!l.hasChangedEmitSignature, d.getAllDependencies = (O) => qm.getAllDependencies(l, D.checkDefined(l.program), O), d.getSemanticDiagnostics = I, d.emit = A, d.releaseProgram = () => e7e(l), e === 0 ? d.getSemanticDiagnosticsOfNextAffectedFile = L : e === 1 ? (d.getSemanticDiagnosticsOfNextAffectedFile = L, d.emitNextAffectedFile = h, d.emitBuildInfo = y) : Va(), d;
    function y(O, k) {
      if (l.buildInfoEmitPending) {
        const B = D.checkDefined(l.program).emitBuildInfo(O || Fo(r, r.writeFile), k);
        return l.buildInfoEmitPending = !1, B;
      }
      return sF;
    }
    function h(O, k, B, V) {
      var H, te, X, Y, P;
      let de = Qhe(l, k, r);
      const ne = Vv(l.compilerOptions);
      let ye = B ? ne & 24 : ne;
      if (!de)
        if (Hs(l.compilerOptions)) {
          if (!l.programEmitPending || (ye = l.programEmitPending, B && (ye = ye & 24), !ye))
            return;
          de = l.program;
        } else {
          const ce = i7e(l, B);
          if (!ce) {
            if (!l.buildInfoEmitPending)
              return;
            const pe = l.program, ve = pe.emitBuildInfo(O || Fo(r, r.writeFile), k);
            return l.buildInfoEmitPending = !1, { result: ve, affected: pe };
          }
          ({ affectedFile: de, emitKind: ye } = ce);
        }
      let ie;
      ye & 7 && (ie = 0), ye & 24 && (ie = ie === void 0 ? 1 : void 0), de === l.program && (l.programEmitPending = l.changedFilesSet.size ? BC(ne, ye) : l.programEmitPending ? BC(l.programEmitPending, ye) : void 0);
      const W = l.program.emit(de === l.program ? void 0 : de, b(O, V), k, ie, V);
      if (de !== l.program) {
        const ce = de;
        l.seenAffectedFiles.add(ce.resolvedPath), l.affectedFilesIndex !== void 0 && l.affectedFilesIndex++, l.buildInfoEmitPending = !0;
        const pe = ((H = l.seenEmittedFiles) == null ? void 0 : H.get(ce.resolvedPath)) || 0;
        ((te = l.seenEmittedFiles) != null ? te : l.seenEmittedFiles = /* @__PURE__ */ new Map()).set(ce.resolvedPath, ye | pe);
        const ve = ((X = l.affectedFilesPendingEmit) == null ? void 0 : X.get(ce.resolvedPath)) || ne, Te = BC(ve, ye | pe);
        Te ? ((Y = l.affectedFilesPendingEmit) != null ? Y : l.affectedFilesPendingEmit = /* @__PURE__ */ new Map()).set(ce.resolvedPath, Te) : (P = l.affectedFilesPendingEmit) == null || P.delete(ce.resolvedPath);
      } else
        l.changedFilesSet.clear();
      return { result: W, affected: de };
    }
    function b(O, k) {
      return j_(l.compilerOptions) ? (B, V, H, te, X, Y) => {
        var P, de, ne, ye, ie, W, ce;
        if (ld(B))
          if (Hs(l.compilerOptions)) {
            if (l.compilerOptions.composite) {
              const ve = pe(l.outSignature, void 0);
              if (!ve)
                return;
              l.outSignature = ve;
            }
          } else {
            D.assert((X == null ? void 0 : X.length) === 1);
            let ve;
            if (!k) {
              const Te = X[0], ee = l.fileInfos.get(Te.resolvedPath);
              if (ee.signature === Te.version) {
                const $e = KX(l.program, Te, V, r, Y);
                (P = Y == null ? void 0 : Y.diagnostics) != null && P.length || (ve = $e), $e !== Te.version && (r.storeFilesChangingSignatureDuringEmit && ((de = l.filesChangingSignature) != null ? de : l.filesChangingSignature = /* @__PURE__ */ new Set()).add(Te.resolvedPath), l.exportedModulesMap && qm.updateExportedModules(l, Te, Te.exportedModulesFromDeclarationEmit), l.affectedFiles ? (((ne = l.oldSignatures) == null ? void 0 : ne.get(Te.resolvedPath)) === void 0 && ((ye = l.oldSignatures) != null ? ye : l.oldSignatures = /* @__PURE__ */ new Map()).set(Te.resolvedPath, ee.signature || !1), ee.signature = $e) : (ee.signature = $e, (ie = l.oldExportedModulesMap) == null || ie.clear()));
              }
            }
            if (l.compilerOptions.composite) {
              const Te = X[0].resolvedPath;
              if (ve = pe((W = l.emitSignatures) == null ? void 0 : W.get(Te), ve), !ve)
                return;
              ((ce = l.emitSignatures) != null ? ce : l.emitSignatures = /* @__PURE__ */ new Map()).set(Te, ve);
            }
          }
        O ? O(B, V, H, te, X, Y) : r.writeFile ? r.writeFile(B, V, H, te, X, Y) : l.program.writeFile(B, V, H, te, X, Y);
        function pe(ve, Te) {
          const ee = !ve || Ua(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
            l.hasChangedEmitSignature = !0, l.latestChangedDtsFile = B;
          return Te;
        }
      } : O || Fo(r, r.writeFile);
    }
    function A(O, k, B, V, H) {
      e === 1 && $he(l, O);
      const te = FX(d, O, k, B);
      if (te)
        return te;
      if (!O)
        if (e === 1) {
          let X = [], Y = !1, P, de = [], ne;
          for (; ne = h(k, B, V, H); )
            Y = Y || ne.result.emitSkipped, P = bi(P, ne.result.diagnostics), de = bi(de, ne.result.emittedFiles), X = bi(X, ne.result.sourceMaps);
          return {
            emitSkipped: Y,
            diagnostics: P || rt,
            emittedFiles: de,
            sourceMaps: X
          };
        } else
          r7e(l, V);
      return D.checkDefined(l.program).emit(O, b(k, H), B, V, H);
    }
    function L(O, k) {
      for (; ; ) {
        const B = Qhe(l, O, r);
        let V;
        if (B)
          if (B !== l.program) {
            const H = B;
            if ((!k || !k(H)) && (V = JX(l, H, O)), l.seenAffectedFiles.add(H.resolvedPath), l.affectedFilesIndex++, l.buildInfoEmitPending = !0, !V)
              continue;
          } else
            V = l.program.getSemanticDiagnostics(void 0, O), l.changedFilesSet.clear(), l.programEmitPending = Vv(l.compilerOptions);
        else
          return;
        return { result: V, affected: B };
      }
    }
    function I(O, k) {
      $he(l, O);
      const B = D.checkDefined(l.program).getCompilerOptions();
      if (Hs(B))
        return D.assert(!l.semanticDiagnosticsPerFile), D.checkDefined(l.program).getSemanticDiagnostics(O, k);
      if (O)
        return JX(l, O, k);
      for (; L(k); )
        ;
      let V;
      for (const H of D.checkDefined(l.program).getSourceFiles())
        V = bi(V, JX(l, H, k));
      return V || rt;
    }
  }
  function YX(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 age(e) {
    return Ua(e) ? { version: e, signature: e, affectsGlobalScope: void 0, impliedFormat: void 0 } : Ua(e.signature) ? e : { version: e.version, signature: e.signature === !1 ? void 0 : e.version, affectsGlobalScope: e.affectsGlobalScope, impliedFormat: e.impliedFormat };
  }
  function oge(e, t) {
    return ay(e) ? t : e[1] || 8;
  }
  function sge(e, t) {
    return e || Vv(t || {});
  }
  function cge(e, t, r) {
    var i, o, s, l;
    const f = e.program, d = _i(Da(t, r.getCurrentDirectory())), y = Zl(r.useCaseSensitiveFileNames());
    let h;
    const b = (i = f.fileNames) == null ? void 0 : i.map(I);
    let A;
    const L = f.latestChangedDtsFile ? O(f.latestChangedDtsFile) : void 0;
    if (nge(f)) {
      const H = /* @__PURE__ */ new Map();
      f.fileInfos.forEach((te, X) => {
        const Y = k(X + 1);
        H.set(Y, Ua(te) ? { version: te, signature: void 0, affectsGlobalScope: void 0, impliedFormat: void 0 } : te);
      }), h = {
        fileInfos: H,
        compilerOptions: f.options ? XJ(f.options, O) : {},
        latestChangedDtsFile: L,
        outSignature: f.outSignature,
        programEmitPending: f.pendingEmit === void 0 ? void 0 : sge(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 && !Hs(f.options) ? /* @__PURE__ */ new Map() : void 0;
      f.fileInfos.forEach((Y, P) => {
        const de = k(P + 1), ne = age(Y);
        H.set(de, ne), te && ne.signature && te.set(de, ne.signature);
      }), (l = f.emitSignatures) == null || l.forEach((Y) => {
        if (ay(Y))
          te.delete(k(Y));
        else {
          const P = k(Y[0]);
          te.set(P, !Ua(Y[1]) && !Y[1].length ? [te.get(P)] : Y[1]);
        }
      });
      const X = f.affectedFilesPendingEmit ? Vv(f.options || {}) : void 0;
      h = {
        fileInfos: H,
        compilerOptions: f.options ? XJ(f.options, O) : {},
        referencedMap: V(f.referencedMap),
        exportedModulesMap: V(f.exportedModulesMap),
        semanticDiagnosticsPerFile: f.semanticDiagnosticsPerFile && t1(f.semanticDiagnosticsPerFile, (Y) => k(ay(Y) ? Y : Y[0]), (Y) => ay(Y) ? rt : Y[1]),
        hasReusableDiagnostic: !0,
        affectedFilesPendingEmit: f.affectedFilesPendingEmit && t1(f.affectedFilesPendingEmit, (Y) => k(ay(Y) ? Y : Y[0]), (Y) => oge(Y, X)),
        changedFilesSet: new Set(en(f.changeFileSet, k)),
        latestChangedDtsFile: L,
        emitSignatures: te != null && te.size ? te : void 0
      };
    }
    return {
      getState: () => h,
      saveEmitState: io,
      restoreEmitState: io,
      getProgram: Va,
      getProgramOrUndefined: P0,
      releaseProgram: io,
      getCompilerOptions: () => h.compilerOptions,
      getSourceFile: Va,
      getSourceFiles: Va,
      getOptionsDiagnostics: Va,
      getGlobalDiagnostics: Va,
      getConfigFileParsingDiagnostics: Va,
      getSyntacticDiagnostics: Va,
      getDeclarationDiagnostics: Va,
      getSemanticDiagnostics: Va,
      emit: Va,
      getAllDependencies: Va,
      getCurrentDirectory: Va,
      emitNextAffectedFile: Va,
      getSemanticDiagnosticsOfNextAffectedFile: Va,
      emitBuildInfo: Va,
      close: io,
      hasChangedEmitSignature: n1
    };
    function I(H) {
      return js(H, d, y);
    }
    function O(H) {
      return Da(H, d);
    }
    function k(H) {
      return b[H - 1];
    }
    function B(H) {
      return A[H - 1];
    }
    function V(H) {
      if (!H)
        return;
      const te = qm.createManyToManyPathMap();
      return H.forEach(([X, Y]) => te.set(k(X), B(Y))), te;
    }
  }
  function $X(e, t, r) {
    const i = _i(Da(t, r.getCurrentDirectory())), o = Zl(r.useCaseSensitiveFileNames()), s = /* @__PURE__ */ new Map();
    let l = 0;
    const f = [];
    return e.fileInfos.forEach((d, y) => {
      const h = js(e.fileNames[y], i, o), b = Ua(d) ? d : d.version;
      if (s.set(h, b), l < e.root.length) {
        const A = e.root[l], L = y + 1;
        Ba(A) ? A[0] <= L && L <= A[1] && (f.push(h), A[1] === L && l++) : A === L && (f.push(h), l++);
      }
    }), { fileInfos: s, roots: f };
  }
  function QX(e, t) {
    return {
      getState: Va,
      saveEmitState: io,
      restoreEmitState: io,
      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, l, f) => r().emit(i, o, s, l, f),
      emitBuildInfo: (i, o) => r().emitBuildInfo(i, o),
      getAllDependencies: Va,
      getCurrentDirectory: () => r().getCurrentDirectory(),
      close: io
    };
    function r() {
      return D.checkDefined(e().program);
    }
  }
  var ZX, eY, d7e = C({
    "src/compiler/builder.ts"() {
      wa(), wa(), ZX = /* @__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))(ZX || {}), eY = /* @__PURE__ */ ((e) => (e[e.SemanticDiagnosticsBuilderProgram = 0] = "SemanticDiagnosticsBuilderProgram", e[e.EmitAndSemanticDiagnosticsBuilderProgram = 1] = "EmitAndSemanticDiagnosticsBuilderProgram", e))(eY || {});
    }
  });
  function f7e(e, t, r, i, o, s) {
    return XX(0, lF(e, t, r, i, o, s));
  }
  function tY(e, t, r, i, o, s) {
    return XX(1, lF(e, t, r, i, o, s));
  }
  function _7e(e, t, r, i, o, s) {
    const { newProgram: l, configFileParsingDiagnostics: f } = lF(e, t, r, i, o, s);
    return QX(() => ({ program: l, compilerOptions: l.getCompilerOptions() }), f);
  }
  var p7e = C({
    "src/compiler/builderPublic.ts"() {
      wa();
    }
  });
  function nY(e) {
    return tl(e, "/node_modules/.staging") ? pA(e, "/.staging") : kt(TR, (t) => uu(e, t)) ? void 0 : e;
  }
  function D8(e) {
    const t = Wp(e);
    if (e.length === t)
      return !1;
    let r = e.indexOf(Ns, 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(Ns, 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, l = 2; l > 0; l--)
      if (s = e.indexOf(Ns, s) + 1, s === 0)
        return !1;
    return !0;
  }
  function lge(e, t, r) {
    let i, o, s;
    const l = l_(), f = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set(), y = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
    let b = !1, A, L, I, O, k;
    const B = yd(() => e.getCurrentDirectory()), V = e.getCachedDirectoryStructureHost(), H = /* @__PURE__ */ new Map(), te = p5(B(), e.getCanonicalFileName, e.getCompilationSettings()), X = /* @__PURE__ */ new Map(), Y = m5(B(), e.getCanonicalFileName, e.getCompilationSettings(), te.getPackageJsonInfoCache()), P = [".ts", ".tsx", ".js", ".jsx", ".json"], de = /* @__PURE__ */ new Map(), ne = /* @__PURE__ */ new Map(), ye = /* @__PURE__ */ new Map(), ie = t && $E(Da(t, B())), W = ie && e.toPath(ie), ce = W !== void 0 ? W.split(Ns).length : 0, pe = /* @__PURE__ */ new Map();
    return {
      getModuleResolutionCache: () => te,
      startRecordingFilesWithChangedResolutions: Ue,
      finishRecordingFilesWithChangedResolutions: Be,
      startCachingPerDirectoryResolution: Me,
      finishCachingPerDirectoryResolution: Xe,
      resolveModuleNameLiterals: Et,
      resolveTypeReferenceDirectiveReferences: Ct,
      resolveSingleModuleNameWithoutWatching: Vt,
      removeResolutionsFromProjectReferenceRedirects: vn,
      removeResolutionsOfFile: Ht,
      hasChangedAutomaticTypeDirectiveNames: () => b,
      invalidateResolutionOfFile: ir,
      invalidateResolutionsOfFailedLookupLocations: pi,
      setFilesWithInvalidatedNonRelativeUnresolvedImports: lr,
      createHasInvalidatedResolutions: Oe,
      isFileWithInvalidatedNonRelativeUnresolvedImports: We,
      updateTypeRootsWatch: gt,
      closeTypeRootsWatch: Ar,
      clear: $e
    };
    function ve(xe) {
      return xe.resolvedModule;
    }
    function Te(xe) {
      return xe.resolvedTypeReferenceDirective;
    }
    function ee(xe, _t) {
      return xe === void 0 || _t.length <= xe.length ? !1 : ba(_t, xe) && _t[xe.length] === Ns;
    }
    function $e() {
      Xf(ne, zm), Xf(ye, zm), de.clear(), l.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(), b = !1;
    }
    function Ue() {
      i = [];
    }
    function Be() {
      const xe = i;
      return i = void 0, xe;
    }
    function We(xe) {
      if (!s)
        return !1;
      const _t = s.get(xe);
      return !!_t && !!_t.length;
    }
    function Oe(xe) {
      pi();
      const _t = o;
      return o = void 0, (_e) => xe(_e) || !!(_t != null && _t.has(_e)) || We(_e);
    }
    function Me() {
      te.clearAllExceptPackageJsonInfoCache(), Y.clearAllExceptPackageJsonInfoCache(), l.forEach(_r), l.clear();
    }
    function Xe(xe, _t) {
      s = void 0, l.forEach(_r), l.clear(), xe !== _t && (xe == null || xe.getSourceFiles().forEach((_e) => {
        var re, he, j;
        const je = nf(_e) && (he = (re = _e.packageJsonLocations) == null ? void 0 : re.length) != null ? he : 0, Qe = (j = h.get(_e.path)) != null ? j : rt;
        for (let Ke = Qe.length; Ke < je; Ke++)
          Yt(_e.packageJsonLocations[Ke], !1);
        if (Qe.length > je)
          for (let Ke = je; Ke < Qe.length; Ke++)
            ye.get(Qe[Ke]).files--;
        je ? h.set(_e.path, _e.packageJsonLocations) : h.delete(_e.path);
      }), h.forEach((_e, re) => {
        xe != null && xe.getSourceFileByPath(re) || (_e.forEach((he) => ye.get(he).files--), h.delete(re));
      })), ne.forEach((_e, re) => {
        _e.refCount === 0 && (ne.delete(re), _e.watcher.close());
      }), ye.forEach((_e, re) => {
        _e.files === 0 && _e.resolutions === 0 && (ye.delete(re), _e.watcher.close());
      }), b = !1;
    }
    function He(xe, _t, _e, re, he) {
      var j;
      const je = ((j = e.getCompilerHost) == null ? void 0 : j.call(e)) || e, Qe = jk(xe, _t, _e, je, te, re, he);
      if (!e.getGlobalCache)
        return Qe;
      const Ke = e.getGlobalCache();
      if (Ke !== void 0 && !Pl(xe) && !(Qe.resolvedModule && M3(Qe.resolvedModule.extension))) {
        const { resolvedModule: Ut, failedLookupLocations: ln, affectingLocations: Sn, resolutionDiagnostics: Er } = ime(D.checkDefined(e.globalCacheResolutionModuleName)(xe), e.projectName, _e, je, Ke, te);
        if (Ut)
          return Qe.resolvedModule = Ut, Qe.failedLookupLocations = OC(Qe.failedLookupLocations, ln), Qe.affectingLocations = OC(Qe.affectingLocations, Sn), Qe.resolutionDiagnostics = OC(Qe.resolutionDiagnostics, Er), Qe;
      }
      return Qe;
    }
    function Fe(xe, _t, _e) {
      return {
        nameAndMode: rw,
        resolve: (re, he) => He(re, xe, _e, _t, he)
      };
    }
    function st({
      entries: xe,
      containingFile: _t,
      containingSourceFile: _e,
      redirectedReference: re,
      options: he,
      perFileCache: j,
      reusedNames: je,
      loader: Qe,
      getResolutionWithResolvedFileName: Ke,
      shouldRetryResolution: Ut,
      logChanges: ln
    }) {
      var Sn;
      const Er = e.toPath(_t), ue = j.get(Er) || j.set(Er, OT()).get(Er), pt = [], Wt = ln && We(Er), it = e.getCurrentProgram(), K = it && it.getResolvedProjectReferenceToRedirect(_t), Pe = K ? !re || re.sourceFile.path !== K.sourceFile.path : !!re, Z = OT();
      for (const q of xe) {
        const Rt = Qe.nameAndMode.getName(q), ht = Qe.nameAndMode.getMode(q, _e);
        let dt = ue.get(Rt, ht);
        if (!Z.has(Rt, ht) && Pe || !dt || dt.isInvalidated || Wt && !Pl(Rt) && Ut(dt)) {
          const fn = dt;
          dt = Qe.resolve(Rt, ht), e.onDiscoveredSymlink && m7e(dt) && e.onDiscoveredSymlink(), ue.set(Rt, ht, dt), Pn(Rt, dt, Er, Ke), fn && Ki(fn, Er, Ke), ln && i && !Re(fn, dt) && (i.push(Er), ln = !1);
        } else {
          const fn = ((Sn = e.getCompilerHost) == null ? void 0 : Sn.call(e)) || e;
          if (Gv(he, fn) && !Z.has(Rt, ht)) {
            const Qn = Ke(dt);
            _a(fn, j === H ? Qn != null && Qn.resolvedFileName ? Qn.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 : Qn != null && Qn.resolvedFileName ? Qn.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, _t, Qn == null ? void 0 : Qn.resolvedFileName, (Qn == null ? void 0 : Qn.packageId) && oT(Qn.packageId));
          }
        }
        D.assert(dt !== void 0 && !dt.isInvalidated), Z.set(Rt, ht, !0), pt.push(dt);
      }
      return je == null || je.forEach((q) => Z.set(Qe.nameAndMode.getName(q), Qe.nameAndMode.getMode(q, _e), !0)), ue.size() !== Z.size() && ue.forEach((q, Rt, ht) => {
        Z.has(Rt, ht) || (Ki(q, Er, Ke), ue.delete(Rt, ht));
      }), pt;
      function Re(q, Rt) {
        if (q === Rt)
          return !0;
        if (!q || !Rt)
          return !1;
        const ht = Ke(q), dt = Ke(Rt);
        return ht === dt ? !0 : !ht || !dt ? !1 : ht.resolvedFileName === dt.resolvedFileName;
      }
    }
    function Ct(xe, _t, _e, re, he, j) {
      var je;
      return st({
        entries: xe,
        containingFile: _t,
        containingSourceFile: he,
        redirectedReference: _e,
        options: re,
        reusedNames: j,
        perFileCache: X,
        loader: $5(_t, _e, re, ((je = e.getCompilerHost) == null ? void 0 : je.call(e)) || e, Y),
        getResolutionWithResolvedFileName: Te,
        shouldRetryResolution: (Qe) => Qe.resolvedTypeReferenceDirective === void 0
      });
    }
    function Et(xe, _t, _e, re, he, j) {
      return st({
        entries: xe,
        containingFile: _t,
        containingSourceFile: he,
        redirectedReference: _e,
        options: re,
        reusedNames: j,
        perFileCache: H,
        loader: Fe(_t, _e, re),
        getResolutionWithResolvedFileName: ve,
        shouldRetryResolution: (je) => !je.resolvedModule || !ZN(je.resolvedModule.extension),
        logChanges: r
      });
    }
    function Vt(xe, _t) {
      const _e = e.toPath(_t), re = H.get(_e), he = re == null ? void 0 : re.get(xe, void 0);
      return he && !he.isInvalidated ? he : He(xe, _t, e.getCompilationSettings());
    }
    function tt(xe) {
      return tl(xe, "/node_modules/@types");
    }
    function at(xe, _t) {
      if (ee(W, _t)) {
        xe = Cm(xe) ? Wo(xe) : Da(xe, B());
        const _e = _t.split(Ns), re = xe.split(Ns);
        return D.assert(re.length === _e.length, `FailedLookup: ${xe} failedLookupLocationPath: ${_t}`), _e.length > ce + 1 ? {
          dir: re.slice(0, ce + 1).join(Ns),
          dirPath: _e.slice(0, ce + 1).join(Ns)
        } : {
          dir: ie,
          dirPath: W,
          nonRecursive: !1
        };
      }
      return an(_i(Da(xe, B())), _i(_t));
    }
    function an(xe, _t) {
      for (; Bx(_t); )
        xe = _i(xe), _t = _i(_t);
      if (sM(_t))
        return D8(_i(_t)) ? { dir: xe, dirPath: _t } : void 0;
      let _e = !0, re, he;
      if (W !== void 0)
        for (; !ee(_t, W); ) {
          const j = _i(_t);
          if (j === _t)
            break;
          _e = !1, re = _t, he = xe, _t = j, xe = _i(xe);
        }
      return D8(_t) ? { dir: he || xe, dirPath: re || _t, nonRecursive: _e } : void 0;
    }
    function Xt(xe) {
      return bl(xe, P);
    }
    function Pn(xe, _t, _e, re) {
      var he, j;
      if (_t.refCount)
        _t.refCount++, D.assertIsDefined(_t.files);
      else {
        _t.refCount = 1, D.assert(!((he = _t.files) != null && he.size)), Pl(xe) ? Wn(_t) : l.add(xe, _t);
        const je = re(_t);
        if (je && je.resolvedFileName) {
          const Qe = e.toPath(je.resolvedFileName);
          let Ke = y.get(Qe);
          Ke || y.set(Qe, Ke = /* @__PURE__ */ new Set()), Ke.add(_t);
        }
      }
      ((j = _t.files) != null ? j : _t.files = /* @__PURE__ */ new Set()).add(_e);
    }
    function Wn(xe) {
      D.assert(!!xe.refCount);
      const { failedLookupLocations: _t, affectingLocations: _e } = xe;
      if (!(_t != null && _t.length) && !(_e != null && _e.length))
        return;
      _t != null && _t.length && f.add(xe);
      let re = !1;
      if (_t) {
        for (const he of _t) {
          const j = e.toPath(he), je = at(he, j);
          if (je) {
            const { dir: Qe, dirPath: Ke, nonRecursive: Ut } = je;
            if (!Xt(j)) {
              const ln = de.get(j) || 0;
              de.set(j, ln + 1);
            }
            Ke === W ? (D.assert(!Ut), re = !0) : Ai(Qe, Ke, Ut);
          }
        }
        re && Ai(ie, W, !0);
      }
      In(xe, !(_t != null && _t.length));
    }
    function In(xe, _t) {
      D.assert(!!xe.refCount);
      const { affectingLocations: _e } = xe;
      if (_e != null && _e.length) {
        _t && d.add(xe);
        for (const re of _e)
          Yt(re, !0);
      }
    }
    function Yt(xe, _t) {
      const _e = ye.get(xe);
      if (_e) {
        _t ? _e.resolutions++ : _e.files++;
        return;
      }
      let re = xe;
      if (e.realpath && (re = e.realpath(xe), xe !== re)) {
        const Qe = ye.get(re);
        if (Qe) {
          _t ? Qe.resolutions++ : Qe.files++, Qe.paths.add(xe), ye.set(xe, Qe);
          return;
        }
      }
      const he = /* @__PURE__ */ new Set();
      he.add(re);
      let j = D8(e.toPath(re)) ? e.watchAffectingFileLocation(re, (Qe, Ke) => {
        V == null || V.addOrDeleteFile(Qe, e.toPath(re), Ke);
        const Ut = te.getPackageJsonInfoCache().getInternalMap();
        he.forEach((ln) => {
          je.resolutions && (L ?? (L = /* @__PURE__ */ new Set())).add(ln), je.files && (A ?? (A = /* @__PURE__ */ new Set())).add(ln), Ut == null || Ut.delete(e.toPath(ln));
        }), e.scheduleInvalidateResolutionsOfFailedLookupLocations();
      }) : GC;
      const je = {
        watcher: j !== GC ? {
          close: () => {
            j.close(), j = GC;
          }
        } : j,
        resolutions: _t ? 1 : 0,
        files: _t ? 0 : 1,
        paths: he
      };
      ye.set(re, je), xe !== re && (ye.set(xe, je), he.add(xe));
    }
    function _r(xe, _t) {
      const _e = e.getCurrentProgram();
      !_e || !_e.getTypeChecker().tryFindAmbientModuleWithoutAugmentations(_t) ? xe.forEach(Wn) : xe.forEach((re) => In(re, !0));
    }
    function Ai(xe, _t, _e) {
      const re = ne.get(_t);
      re ? (D.assert(!!_e == !!re.nonRecursive), re.refCount++) : ne.set(_t, { watcher: Nr(xe, _t, _e), refCount: 1, nonRecursive: _e });
    }
    function Ki(xe, _t, _e) {
      if (D.checkDefined(xe.files).delete(_t), xe.refCount--, xe.refCount)
        return;
      const re = _e(xe);
      if (re && re.resolvedFileName) {
        const je = e.toPath(re.resolvedFileName), Qe = y.get(je);
        Qe != null && Qe.delete(xe) && !Qe.size && y.delete(je);
      }
      const { failedLookupLocations: he, affectingLocations: j } = xe;
      if (f.delete(xe)) {
        let je = !1;
        for (const Qe of he) {
          const Ke = e.toPath(Qe), Ut = at(Qe, Ke);
          if (Ut) {
            const { dirPath: ln } = Ut, Sn = de.get(Ke);
            Sn && (Sn === 1 ? de.delete(Ke) : (D.assert(Sn > 1), de.set(Ke, Sn - 1))), ln === W ? je = !0 : Xi(ln);
          }
        }
        je && Xi(W);
      } else
        j != null && j.length && d.delete(xe);
      if (j)
        for (const je of j) {
          const Qe = ye.get(je);
          Qe.resolutions--;
        }
    }
    function Xi(xe) {
      const _t = ne.get(xe);
      _t.refCount--;
    }
    function Nr(xe, _t, _e) {
      return e.watchDirectoryOfFailedLookupLocation(xe, (re) => {
        const he = e.toPath(re);
        V && V.addOrDeleteFileOrDirectory(re, he), Ni(he, _t === he);
      }, _e ? 0 : 1);
    }
    function At(xe, _t, _e) {
      const re = xe.get(_t);
      re && (re.forEach((he) => Ki(he, _t, _e)), xe.delete(_t));
    }
    function vn(xe) {
      if (!sl(xe, ".json"))
        return;
      const _t = e.getCurrentProgram();
      if (!_t)
        return;
      const _e = _t.getResolvedProjectReferenceByPath(xe);
      _e && _e.commandLine.fileNames.forEach((re) => Ht(e.toPath(re)));
    }
    function Ht(xe) {
      At(H, xe, ve), At(X, xe, Te);
    }
    function dn(xe, _t) {
      if (!xe)
        return !1;
      let _e = !1;
      return xe.forEach((re) => {
        if (!(re.isInvalidated || !_t(re))) {
          re.isInvalidated = _e = !0;
          for (const he of D.checkDefined(re.files))
            (o ?? (o = /* @__PURE__ */ new Set())).add(he), b = b || tl(he, aF);
        }
      }), _e;
    }
    function ir(xe) {
      Ht(xe);
      const _t = b;
      dn(y.get(xe), r1) && b && !_t && e.onChangedAutomaticTypeDirectiveNames();
    }
    function lr(xe) {
      D.assert(s === xe || s === void 0), s = xe;
    }
    function Ni(xe, _t) {
      if (_t)
        (k || (k = /* @__PURE__ */ new Set())).add(xe);
      else {
        const _e = nY(xe);
        if (!_e || (xe = _e, e.fileIsOpen(xe)))
          return !1;
        const re = _i(xe);
        if (tt(xe) || sM(xe) || tt(re) || sM(re))
          (I || (I = /* @__PURE__ */ new Set())).add(xe), (O || (O = /* @__PURE__ */ new Set())).add(xe);
        else {
          if (!Xt(xe) && !de.has(xe) || Mhe(e.getCurrentProgram(), xe))
            return !1;
          (I || (I = /* @__PURE__ */ new Set())).add(xe);
          const he = EK(xe);
          he && (O || (O = /* @__PURE__ */ new Set())).add(he);
        }
      }
      e.scheduleInvalidateResolutionsOfFailedLookupLocations();
    }
    function pi() {
      var xe;
      let _t = !1;
      if (A && ((xe = e.getCurrentProgram()) == null || xe.getSourceFiles().forEach((re) => {
        kt(re.packageJsonLocations, (he) => A.has(he)) && ((o ?? (o = /* @__PURE__ */ new Set())).add(re.path), _t = !0);
      }), A = void 0), !I && !O && !k && !L)
        return _t;
      _t = dn(f, Nn) || _t;
      const _e = te.getPackageJsonInfoCache().getInternalMap();
      return _e && (I || O || k) && _e.forEach((re, he) => nn(he) ? _e.delete(he) : void 0), I = void 0, O = void 0, k = void 0, _t = dn(d, Mn) || _t, L = void 0, _t;
    }
    function Nn(xe) {
      var _t;
      return Mn(xe) ? !0 : !I && !O && !k ? !1 : (_t = xe.failedLookupLocations) == null ? void 0 : _t.some((_e) => nn(e.toPath(_e)));
    }
    function nn(xe) {
      return (I == null ? void 0 : I.has(xe)) || Hn((O == null ? void 0 : O.keys()) || [], (_t) => ba(xe, _t) ? !0 : void 0) || Hn((k == null ? void 0 : k.keys()) || [], (_t) => ee(_t, xe) ? !0 : void 0);
    }
    function Mn(xe) {
      var _t;
      return !!L && ((_t = xe.affectingLocations) == null ? void 0 : _t.some((_e) => L.has(_e)));
    }
    function Ar() {
      Xf(pe, Fm);
    }
    function Vr(xe, _t) {
      if (ee(W, _t))
        return W;
      const _e = an(xe, _t);
      return _e && ne.has(_e.dirPath) ? _e.dirPath : void 0;
    }
    function ke(xe, _t) {
      return e.watchTypeRootsDirectory(_t, (_e) => {
        const re = e.toPath(_e);
        V && V.addOrDeleteFileOrDirectory(_e, re), b = !0, e.onChangedAutomaticTypeDirectiveNames();
        const he = Vr(_t, xe);
        he && Ni(re, he === re);
      }, 1);
    }
    function gt() {
      const xe = e.getCompilationSettings();
      if (xe.types) {
        Ar();
        return;
      }
      const _t = s8(xe, { directoryExists: Nt, getCurrentDirectory: B });
      _t ? eC(pe, t1(_t, (_e) => e.toPath(_e)), {
        createNewValue: ke,
        onDeleteValue: Fm
      }) : Ar();
    }
    function Nt(xe) {
      const _t = _i(_i(xe)), _e = e.toPath(_t);
      return _e === W || D8(_e);
    }
  }
  function m7e(e) {
    var t, r;
    return !!((t = e.resolvedModule) != null && t.originalPath || (r = e.resolvedTypeReferenceDirective) != null && r.originalPath);
  }
  var h7e = C({
    "src/compiler/resolutionCache.ts"() {
      wa(), wa();
    }
  });
  function R8(e, t) {
    const r = e === ql && _Y ? _Y : {
      getCurrentDirectory: () => e.getCurrentDirectory(),
      getNewLine: () => e.newLine,
      getCanonicalFileName: Zl(e.useCaseSensitiveFileNames)
    };
    if (!t)
      return (o) => e.write(kX(o, r));
    const i = new Array(1);
    return (o) => {
      i[0] = o, e.write(Hhe(i, r) + r.getNewLine()), i[0] = void 0;
    };
  }
  function uge(e, t, r) {
    return e.clearScreen && !r.preserveWatchOutput && !r.extendedDiagnostics && !r.diagnostics && wi(mF, t.code) ? (e.clearScreen(), !0) : !1;
  }
  function g7e(e, t) {
    return wi(mF, e.code) ? t + t : t;
  }
  function N8(e) {
    return e.now ? e.now().toLocaleTimeString("en-US", { timeZone: "UTC" }).replace(" ", " ") : (/* @__PURE__ */ new Date()).toLocaleTimeString();
  }
  function dge(e, t) {
    return t ? (r, i, o) => {
      uge(e, r, o);
      let s = `[${z1(N8(e), "\x1B[90m")}] `;
      s += `${Uv(r.messageText, e.newLine)}${i + i}`, e.write(s);
    } : (r, i, o) => {
      let s = "";
      uge(e, r, o) || (s += i), s += `${N8(e)} - `, s += `${Uv(r.messageText, e.newLine)}${g7e(r, i)}`, e.write(s);
    };
  }
  function y7e(e, t, r, i, o, s) {
    const l = o;
    l.onUnRecoverableConfigFileDiagnostic = (d) => yge(o, s, d);
    const f = WO(e, t, l, r, i);
    return l.onUnRecoverableConfigFileDiagnostic = void 0, f;
  }
  function uF(e) {
    return Zi(e, (t) => t.category === 1);
  }
  function dF(e) {
    return yn(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 = cn(e, (o) => o.file !== void 0 && o.file.fileName === r);
      if (i !== void 0) {
        const { line: o } = ac(i.file, i.start);
        return {
          fileName: r,
          line: o + 1
        };
      }
    });
  }
  function rY(e) {
    return e === 1 ? _.Found_1_error_Watching_for_file_changes : _.Found_0_errors_Watching_for_file_changes;
  }
  function fge(e, t) {
    const r = z1(":" + e.line, "\x1B[90m");
    return sI(e.fileName) && sI(t) ? Lm(t, e.fileName, !1) + r : e.fileName + r;
  }
  function _ge(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, b) => b.indexOf(y) === h), l = o[0] && fge(o[0], i.getCurrentDirectory()), f = e === 1 ? Os(t[0] !== void 0 ? _.Found_1_error_in_1 : _.Found_1_error, e, l) : Os(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 ? l : s.length), d = s.length > 1 ? v7e(o, i) : "";
    return `${r}${Uv(f.messageText, r)}${r}${r}${d}`;
  }
  function v7e(e, t) {
    const r = e.filter((b, A, L) => A === L.findIndex((I) => (I == null ? void 0 : I.fileName) === (b == null ? void 0 : b.fileName)));
    if (r.length === 0)
      return "";
    const i = (b) => Math.log(b) * Math.LOG10E + 1, o = r.map((b) => [b, Zi(e, (A) => A.fileName === b.fileName)]), s = o.reduce((b, A) => Math.max(b, A[1] || 0), 0), l = _.Errors_Files.message, f = l.split(" ")[0].length, d = Math.max(f, i(s)), y = Math.max(i(s) - f, 0);
    let h = "";
    return h += " ".repeat(y) + l + `
`, o.forEach((b) => {
      const [A, L] = b, I = Math.log(L) * Math.LOG10E + 1 | 0, O = I < d ? " ".repeat(d - I) : "", k = fge(A, t.getCurrentDirectory());
      h += `${O}${L}  ${k}
`;
    }), h;
  }
  function pge(e) {
    return !!e.getState;
  }
  function iY(e, t) {
    const r = e.getCompilerOptions();
    r.explainFiles ? mge(pge(e) ? e.getProgram() : e, t) : (r.listFiles || r.listFilesOnly) && ze(e.getSourceFiles(), (i) => {
      t(i.fileName);
    });
  }
  function mge(e, t) {
    var r, i;
    const o = e.getFileIncludeReasons(), s = (l) => cI(l, e.getCurrentDirectory(), e.getCanonicalFileName);
    for (const l of e.getSourceFiles())
      t(`${Vx(l, s)}`), (r = o.get(l.path)) == null || r.forEach((f) => t(`  ${cY(e, f, s).messageText}`)), (i = aY(l, s)) == null || i.forEach((f) => t(`  ${f.messageText}`));
  }
  function aY(e, t) {
    var r;
    let i;
    if (e.path !== e.resolvedPath && (i ?? (i = [])).push(ka(void 0, _.File_is_output_of_project_reference_source_0, Vx(e.originalFileName, t))), e.redirectInfo && (i ?? (i = [])).push(ka(void 0, _.File_redirects_to_file_0, Vx(e.redirectInfo.redirectTarget, t))), nf(e))
      switch (e.impliedNodeFormat) {
        case 99:
          e.packageJsonScope && (i ?? (i = [])).push(ka(void 0, _.File_is_ECMAScript_module_because_0_has_field_type_with_value_module, Vx(Ho(e.packageJsonLocations), t)));
          break;
        case 1:
          e.packageJsonScope ? (i ?? (i = [])).push(ka(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, Vx(Ho(e.packageJsonLocations), t))) : (r = e.packageJsonLocations) != null && r.length && (i ?? (i = [])).push(ka(void 0, _.File_is_CommonJS_module_because_package_json_was_not_found));
          break;
      }
    return i;
  }
  function oY(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 = _i(Da(i.fileName, e.getCurrentDirectory()));
    return cn(i.configFileSpecs.validatedFilesSpec, (l) => e.getCanonicalFileName(Da(l, s)) === o);
  }
  function sY(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 = sl(t, ".json"), l = _i(Da(o.fileName, e.getCurrentDirectory())), f = e.useCaseSensitiveFileNames();
    return cn((i = o == null ? void 0 : o.configFileSpecs) == null ? void 0 : i.validatedIncludeSpecs, (d) => {
      if (s && !tl(d, ".json"))
        return !1;
      const y = tq(d, l, "files");
      return !!y && Dv(`(${y})$`, f).test(t);
    });
  }
  function cY(e, t, r) {
    var i, o;
    const s = e.getCompilerOptions();
    if (nb(t)) {
      const l = tw((y) => e.getSourceFileByPath(y), t), f = FC(l) ? l.file.text.substring(l.pos, l.end) : `"${l.text}"`;
      let d;
      switch (D.assert(FC(l) || t.kind === 3, "Only synthetic references are imports"), t.kind) {
        case 3:
          FC(l) ? d = l.packageId ? _.Imported_via_0_from_file_1_with_packageId_2 : _.Imported_via_0_from_file_1 : l.text === Y0 ? d = l.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 = l.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(!l.packageId), d = _.Referenced_via_0_from_file_1;
          break;
        case 5:
          d = l.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(!l.packageId), d = _.Library_referenced_via_0_from_file_1;
          break;
        default:
          D.assertNever(t);
      }
      return ka(void 0, d, f, Vx(l.file, r), l.packageId && oT(l.packageId));
    }
    switch (t.kind) {
      case 0:
        if (!((i = s.configFile) != null && i.configFileSpecs))
          return ka(void 0, _.Root_file_specified_for_compilation);
        const l = Da(e.getRootFileNames()[t.index], e.getCurrentDirectory());
        if (oY(e, l))
          return ka(void 0, _.Part_of_files_list_in_tsconfig_json);
        const d = sY(e, l);
        return Ua(d) ? ka(void 0, _.Matched_by_include_pattern_0_in_1, d, Vx(s.configFile, r)) : ka(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 ka(void 0, Hs(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, Vx(h.sourceFile.fileName, r), s.outFile ? "--outFile" : "--out");
      case 8:
        return ka(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 ka(void 0, _.Library_0_specified_in_compilerOptions, s.lib[t.index]);
        const b = tf(r8.type, (A, L) => A === $o(s) ? L : void 0);
        return ka(void 0, b ? _.Default_library_for_target_0 : _.Default_library, b);
      default:
        D.assertNever(t);
    }
  }
  function Vx(e, t) {
    const r = Ua(e) ? e : e.fileName;
    return t ? t(r) : r;
  }
  function fF(e, t, r, i, o, s, l, f) {
    const d = !!e.getCompilerOptions().listFilesOnly, y = e.getConfigFileParsingDiagnostics().slice(), h = y.length;
    bi(y, e.getSyntacticDiagnostics(void 0, s)), y.length === h && (bi(y, e.getOptionsDiagnostics(s)), d || (bi(y, e.getGlobalDiagnostics(s)), y.length === h && bi(y, e.getSemanticDiagnostics(void 0, s))));
    const b = d ? { emitSkipped: !0, diagnostics: rt } : e.emit(void 0, o, s, l, f), { emittedFiles: A, diagnostics: L } = b;
    bi(y, L);
    const I = vA(y);
    if (I.forEach(t), r) {
      const O = e.getCurrentDirectory();
      ze(A, (k) => {
        const B = Da(k, O);
        r(`TSFILE: ${B}`);
      }), iY(e, r);
    }
    return i && i(uF(I), dF(I)), {
      emitResult: b,
      diagnostics: I
    };
  }
  function hge(e, t, r, i, o, s, l, f) {
    const { emitResult: d, diagnostics: y } = fF(e, t, r, i, o, s, l, f);
    return d.emitSkipped && y.length > 0 ? 1 : y.length > 0 ? 2 : 0;
  }
  function lY(e = ql, t) {
    return {
      onWatchStatusChange: t || dge(e),
      watchFile: Fo(e, e.watchFile) || O8,
      watchDirectory: Fo(e, e.watchDirectory) || O8,
      setTimeout: Fo(e, e.setTimeout) || io,
      clearTimeout: Fo(e, e.clearTimeout) || io
    };
  }
  function uY(e, t) {
    const r = e.trace ? t.extendedDiagnostics ? 2 : t.diagnostics ? 1 : 0 : 0, i = r !== 0 ? (s) => e.trace(s) : io, o = Fhe(e, r, i);
    return o.writeLog = i, o;
  }
  function dY(e, t, r = e) {
    const i = e.useCaseSensitiveFileNames(), o = {
      getSourceFile: CX((s, l) => l ? e.readFile(s, l) : o.readFile(s), t, void 0),
      getDefaultLibLocation: Fo(e, e.getDefaultLibLocation),
      getDefaultLibFileName: (s) => e.getDefaultLibFileName(s),
      writeFile: LX((s, l, f) => e.writeFile(s, l, f), (s) => e.createDirectory(s), (s) => e.directoryExists(s)),
      getCurrentDirectory: yd(() => e.getCurrentDirectory()),
      useCaseSensitiveFileNames: () => i,
      getCanonicalFileName: Zl(i),
      getNewLine: () => K0(t()),
      fileExists: (s) => e.fileExists(s),
      readFile: (s) => e.readFile(s),
      trace: Fo(e, e.trace),
      directoryExists: Fo(r, r.directoryExists),
      getDirectories: Fo(r, r.getDirectories),
      realpath: Fo(e, e.realpath),
      getEnvironmentVariable: Fo(e, e.getEnvironmentVariable) || (() => ""),
      createHash: Fo(e, e.createHash),
      readDirectory: Fo(e, e.readDirectory),
      storeFilesChangingSignatureDuringEmit: e.storeFilesChangingSignatureDuringEmit
    };
    return o;
  }
  function _F(e, t) {
    if (t.match(KK)) {
      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 || !fu(s)) {
              i = o;
              continue;
            }
            break;
        }
        const l = t.substring(i, r);
        if (l.match(O5)) {
          t = t.substring(0, i);
          break;
        } else if (!l.match(P5))
          break;
        r = i;
      }
    }
    return (e.createHash || gR)(t);
  }
  function pF(e) {
    const t = e.getSourceFile;
    e.getSourceFile = (...r) => {
      const i = t.call(e, ...r);
      return i && (i.version = _F(e, i.text)), i;
    };
  }
  function fY(e, t) {
    const r = yd(() => _i(Wo(e.getExecutingFilePath())));
    return {
      useCaseSensitiveFileNames: () => e.useCaseSensitiveFileNames,
      getNewLine: () => e.newLine,
      getCurrentDirectory: yd(() => e.getCurrentDirectory()),
      getDefaultLibLocation: r,
      getDefaultLibFileName: (i) => Pi(r(), _M(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, l, f) => e.readDirectory(i, o, s, l, f),
      realpath: Fo(e, e.realpath),
      getEnvironmentVariable: Fo(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: Fo(e, e.createHash),
      createProgram: t || tY,
      storeFilesChangingSignatureDuringEmit: e.storeFilesChangingSignatureDuringEmit,
      now: Fo(e, e.now)
    };
  }
  function gge(e = ql, t, r, i) {
    const o = (l) => e.write(l + e.newLine), s = fY(e, t);
    return pj(s, lY(e, i)), s.afterProgramCreate = (l) => {
      const f = l.getCompilerOptions(), d = K0(f);
      fF(l, r, o, (y) => s.onWatchStatusChange(Os(rY(y), y), d, f, y));
    }, s;
  }
  function yge(e, t, r) {
    t(r), e.exit(1);
  }
  function vge({
    configFileName: e,
    optionsToExtend: t,
    watchOptionsToExtend: r,
    extraFileExtensions: i,
    system: o,
    createProgram: s,
    reportDiagnostic: l,
    reportWatchStatus: f
  }) {
    const d = l || R8(o), y = gge(o, s, d, f);
    return y.onUnRecoverableConfigFileDiagnostic = (h) => yge(o, d, h), y.configFileName = e, y.optionsToExtend = t, y.watchOptionsToExtend = r, y.extraFileExtensions = i, y;
  }
  function bge({
    rootFiles: e,
    options: t,
    watchOptions: r,
    projectReferences: i,
    system: o,
    createProgram: s,
    reportDiagnostic: l,
    reportWatchStatus: f
  }) {
    const d = gge(o, s, l || R8(o), f);
    return d.rootFiles = e, d.options = t, d.watchOptions = r, d.projectReferences = i, d;
  }
  function b7e(e) {
    const t = e.system || ql, r = e.host || (e.host = pY(e.options, t)), i = Ege(e), o = hge(i, e.reportDiagnostic || R8(t), (s) => r.trace && r.trace(s), e.reportErrorSummary || e.options.pretty ? (s, l) => t.write(_ge(s, l, t.newLine, r)) : void 0);
    return e.afterProgramEmitAndDiagnostics && e.afterProgramEmitAndDiagnostics(i), o;
  }
  var _Y, mF, GC, O8, y_, E7e = C({
    "src/compiler/watch.ts"() {
      wa(), _Y = ql ? {
        getCurrentDirectory: () => ql.getCurrentDirectory(),
        getNewLine: () => ql.newLine,
        getCanonicalFileName: Zl(ql.useCaseSensitiveFileNames)
      } : void 0, mF = [
        _.Starting_compilation_in_watch_mode.code,
        _.File_change_detected_Starting_incremental_compilation.code
      ], GC = { close: io }, O8 = () => GC, y_ = {
        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 hF(e, t) {
    const r = Ay(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 = z5(r, o);
    }
    if (!(!i || i.version !== De || !i.program))
      return cge(i, r, t);
  }
  function pY(e, t = ql) {
    const r = IX(e, void 0, t);
    return r.createHash = Fo(t, t.createHash), r.storeFilesChangingSignatureDuringEmit = t.storeFilesChangingSignatureDuringEmit, pF(r), C8(r, (i) => js(i, r.getCurrentDirectory(), r.getCanonicalFileName)), r;
  }
  function Ege({
    rootNames: e,
    options: t,
    configFileParsingDiagnostics: r,
    projectReferences: i,
    host: o,
    createProgram: s
  }) {
    o = o || pY(t), s = s || tY;
    const l = hF(t, o);
    return s(e, t, o, l, r, i);
  }
  function T7e(e, t, r, i, o, s, l, f) {
    return Ba(e) ? bge({
      rootFiles: e,
      options: t,
      watchOptions: f,
      projectReferences: l,
      system: r,
      createProgram: i,
      reportDiagnostic: o,
      reportWatchStatus: s
    }) : vge({
      configFileName: e,
      optionsToExtend: t,
      watchOptionsToExtend: l,
      extraFileExtensions: f,
      system: r,
      createProgram: i,
      reportDiagnostic: o,
      reportWatchStatus: s
    });
  }
  function S7e(e) {
    let t, r, i, o, s, l, f, d, y = e.extendedConfigCache, h = !1;
    const b = /* @__PURE__ */ new Map();
    let A, L = !1;
    const I = e.useCaseSensitiveFileNames(), O = e.getCurrentDirectory(), { configFileName: k, optionsToExtend: B = {}, watchOptionsToExtend: V, extraFileExtensions: H, createProgram: te } = e;
    let { rootFiles: X, options: Y, watchOptions: P, projectReferences: de } = e, ne, ye, ie = !1, W = !1;
    const ce = k === void 0 ? void 0 : Nhe(e, O, I), pe = ce || e, ve = tF(e, pe);
    let Te = an();
    k && e.configFileParsingResult && (Mn(e.configFileParsingResult), Te = an()), Xi(_.Starting_compilation_in_watch_mode), k && !e.configFileParsingResult && (Te = K0(B), D.assert(!X), nn(), Te = an()), D.assert(Y), D.assert(X);
    const { watchFile: ee, watchDirectory: $e, writeLog: Ue } = uY(e, Y), Be = Zl(I);
    Ue(`Current directory: ${O} CaseSensitiveFileNames: ${I}`);
    let We;
    k && (We = ee(k, ir, 2e3, P, y_.ConfigFile));
    const Oe = dY(e, () => Y, pe);
    pF(Oe);
    const Me = Oe.getSourceFile;
    Oe.getSourceFile = (Qe, ...Ke) => Yt(Qe, Xt(Qe), ...Ke), Oe.getSourceFileByPath = Yt, Oe.getNewLine = () => Te, Oe.fileExists = In, Oe.onReleaseOldSourceFile = Ki, Oe.onReleaseParsedCommandLine = ke, Oe.toPath = Xt, Oe.getCompilationSettings = () => Y, Oe.useSourceOfProjectReferenceRedirect = Fo(e, e.useSourceOfProjectReferenceRedirect), Oe.watchDirectoryOfFailedLookupLocation = (Qe, Ke, Ut) => $e(Qe, Ke, Ut, P, y_.FailedLookupLocations), Oe.watchAffectingFileLocation = (Qe, Ke) => ee(Qe, Ke, 2e3, P, y_.AffectingFileLocation), Oe.watchTypeRootsDirectory = (Qe, Ke, Ut) => $e(Qe, Ke, Ut, P, y_.TypeRoots), Oe.getCachedDirectoryStructureHost = () => ce, Oe.scheduleInvalidateResolutionsOfFailedLookupLocations = vn, Oe.onInvalidatedResolution = dn, Oe.onChangedAutomaticTypeDirectiveNames = dn, Oe.fileIsOpen = n1, Oe.getCurrentProgram = Et, Oe.writeLog = Ue, Oe.getParsedCommandLine = Ar;
    const Xe = lge(Oe, k ? _i(Da(k, O)) : O, !1);
    Oe.resolveModuleNameLiterals = Fo(e, e.resolveModuleNameLiterals), Oe.resolveModuleNames = Fo(e, e.resolveModuleNames), !Oe.resolveModuleNameLiterals && !Oe.resolveModuleNames && (Oe.resolveModuleNameLiterals = Xe.resolveModuleNameLiterals.bind(Xe)), Oe.resolveTypeReferenceDirectiveReferences = Fo(e, e.resolveTypeReferenceDirectiveReferences), Oe.resolveTypeReferenceDirectives = Fo(e, e.resolveTypeReferenceDirectives), !Oe.resolveTypeReferenceDirectiveReferences && !Oe.resolveTypeReferenceDirectives && (Oe.resolveTypeReferenceDirectiveReferences = Xe.resolveTypeReferenceDirectiveReferences.bind(Xe)), Oe.getModuleResolutionCache = e.resolveModuleNameLiterals || e.resolveModuleNames ? Fo(e, e.getModuleResolutionCache) : () => Xe.getModuleResolutionCache();
    const Fe = !!e.resolveModuleNameLiterals || !!e.resolveTypeReferenceDirectiveReferences || !!e.resolveModuleNames || !!e.resolveTypeReferenceDirectives ? Fo(e, e.hasInvalidatedResolutions) || r1 : n1;
    return t = hF(Y, Oe), Vt(), re(), k && j(Xt(k), Y, P, y_.ExtendedConfigFile), k ? { getCurrentProgram: Ct, getProgram: Ni, close: st } : { getCurrentProgram: Ct, getProgram: Ni, updateRootFileNames: at, close: st };
    function st() {
      At(), Xe.clear(), Xf(b, (Qe) => {
        Qe && Qe.fileWatcher && (Qe.fileWatcher.close(), Qe.fileWatcher = void 0);
      }), We && (We.close(), We = void 0), y == null || y.clear(), y = void 0, d && (Xf(d, zm), d = void 0), o && (Xf(o, zm), o = void 0), i && (Xf(i, Fm), i = void 0), f && (Xf(f, (Qe) => {
        var Ke;
        (Ke = Qe.watcher) == null || Ke.close(), Qe.watcher = void 0, Qe.watchedDirectories && Xf(Qe.watchedDirectories, zm), Qe.watchedDirectories = void 0;
      }), f = void 0);
    }
    function Ct() {
      return t;
    }
    function Et() {
      return t && t.getProgramOrUndefined();
    }
    function Vt() {
      Ue("Synchronizing program"), D.assert(Y), D.assert(X), At();
      const Qe = Ct();
      L && (Te = an(), Qe && CW(Qe.getCompilerOptions(), Y) && Xe.clear());
      const Ke = Xe.createHasInvalidatedResolutions(Fe), {
        originalReadFile: Ut,
        originalFileExists: ln,
        originalDirectoryExists: Sn,
        originalCreateDirectory: Er,
        originalWriteFile: ue,
        readFileWithCache: pt
      } = C8(Oe, Xt);
      return PX(Et(), X, Y, (Wt) => Ai(Wt, pt), (Wt) => Oe.fileExists(Wt), Ke, Nr, Ar, de) ? W && (h && Xi(_.File_change_detected_Starting_incremental_compilation), t = te(void 0, void 0, Oe, t, ye, de), W = !1) : (h && Xi(_.File_change_detected_Starting_incremental_compilation), tt(Ke)), h = !1, e.afterProgramCreate && Qe !== t && e.afterProgramCreate(t), Oe.readFile = Ut, Oe.fileExists = ln, Oe.directoryExists = Sn, Oe.createDirectory = Er, Oe.writeFile = ue, t;
    }
    function tt(Qe) {
      Ue("CreatingProgramWith::"), Ue(`  roots: ${JSON.stringify(X)}`), Ue(`  options: ${JSON.stringify(Y)}`), de && Ue(`  projectReferences: ${JSON.stringify(de)}`);
      const Ke = L || !Et();
      L = !1, W = !1, Xe.startCachingPerDirectoryResolution(), Oe.hasInvalidatedResolutions = Qe, Oe.hasChangedAutomaticTypeDirectiveNames = Nr;
      const Ut = Et();
      if (t = te(X, Y, Oe, t, ye, de), Xe.finishCachingPerDirectoryResolution(t.getProgram(), Ut), Phe(t.getProgram(), i || (i = /* @__PURE__ */ new Map()), _t), Ke && Xe.updateTypeRootsWatch(), A) {
        for (const ln of A)
          i.has(ln) || b.delete(ln);
        A = void 0;
      }
    }
    function at(Qe) {
      D.assert(!k, "Cannot update root file names with config file watch mode"), X = Qe, dn();
    }
    function an() {
      return K0(Y || B);
    }
    function Xt(Qe) {
      return js(Qe, O, Be);
    }
    function Pn(Qe) {
      return typeof Qe == "boolean";
    }
    function Wn(Qe) {
      return typeof Qe.version == "boolean";
    }
    function In(Qe) {
      const Ke = Xt(Qe);
      return Pn(b.get(Ke)) ? !1 : pe.fileExists(Qe);
    }
    function Yt(Qe, Ke, Ut, ln, Sn) {
      const Er = b.get(Ke);
      if (!Pn(Er)) {
        if (Er === void 0 || Sn || Wn(Er)) {
          const ue = Me(Qe, Ut, ln);
          if (Er)
            ue ? (Er.sourceFile = ue, Er.version = ue.version, Er.fileWatcher || (Er.fileWatcher = gt(Ke, Qe, Nt, 250, P, y_.SourceFile))) : (Er.fileWatcher && Er.fileWatcher.close(), b.set(Ke, !1));
          else if (ue) {
            const pt = gt(Ke, Qe, Nt, 250, P, y_.SourceFile);
            b.set(Ke, { sourceFile: ue, version: ue.version, fileWatcher: pt });
          } else
            b.set(Ke, !1);
          return ue;
        }
        return Er.sourceFile;
      }
    }
    function _r(Qe) {
      const Ke = b.get(Qe);
      Ke !== void 0 && (Pn(Ke) ? b.set(Qe, { version: !1 }) : Ke.version = !1);
    }
    function Ai(Qe, Ke) {
      const Ut = b.get(Qe);
      if (!Ut)
        return;
      if (Ut.version)
        return Ut.version;
      const ln = Ke(Qe);
      return ln !== void 0 ? _F(Oe, ln) : void 0;
    }
    function Ki(Qe, Ke, Ut) {
      const ln = b.get(Qe.resolvedPath);
      ln !== void 0 && (Pn(ln) ? (A || (A = [])).push(Qe.path) : ln.sourceFile === Qe && (ln.fileWatcher && ln.fileWatcher.close(), b.delete(Qe.resolvedPath), Ut || Xe.removeResolutionsOfFile(Qe.path)));
    }
    function Xi(Qe) {
      e.onWatchStatusChange && e.onWatchStatusChange(Os(Qe), Te, Y || B);
    }
    function Nr() {
      return Xe.hasChangedAutomaticTypeDirectiveNames();
    }
    function At() {
      return l ? (e.clearTimeout(l), l = void 0, !0) : !1;
    }
    function vn() {
      if (!e.setTimeout || !e.clearTimeout)
        return Xe.invalidateResolutionsOfFailedLookupLocations();
      const Qe = At();
      Ue(`Scheduling invalidateFailedLookup${Qe ? ", Cancelled earlier one" : ""}`), l = e.setTimeout(Ht, 250);
    }
    function Ht() {
      l = void 0, Xe.invalidateResolutionsOfFailedLookupLocations() && dn();
    }
    function dn() {
      !e.setTimeout || !e.clearTimeout || (s && e.clearTimeout(s), Ue("Scheduling update"), s = e.setTimeout(lr, 250));
    }
    function ir() {
      D.assert(!!k), r = 2, dn();
    }
    function lr() {
      s = void 0, h = !0, Ni();
    }
    function Ni() {
      switch (r) {
        case 1:
          Hp.logStartUpdateProgram("PartialConfigReload"), pi();
          break;
        case 2:
          Hp.logStartUpdateProgram("FullConfigReload"), Nn();
          break;
        default:
          Hp.logStartUpdateProgram("SynchronizeProgram"), Vt();
          break;
      }
      return Hp.logStopUpdateProgram("Done"), Ct();
    }
    function pi() {
      Ue("Reloading new file names and options"), D.assert(Y), D.assert(k), r = 0, X = $O(Y.configFile.configFileSpecs, Da(_i(k), O), Y, ve, H), QJ(X, Da(k, O), Y.configFile.configFileSpecs, ye, ie) && (W = !0), Vt();
    }
    function Nn() {
      D.assert(k), Ue(`Reloading config file: ${k}`), r = 0, ce && ce.clearCache(), nn(), L = !0, Vt(), re(), j(Xt(k), Y, P, y_.ExtendedConfigFile);
    }
    function nn() {
      D.assert(k), Mn(WO(k, B, ve, y || (y = /* @__PURE__ */ new Map()), V, H));
    }
    function Mn(Qe) {
      X = Qe.fileNames, Y = Qe.options, P = Qe.watchOptions, de = Qe.projectReferences, ne = Qe.wildcardDirectories, ye = GT(Qe).slice(), ie = XO(Qe.raw), W = !0;
    }
    function Ar(Qe) {
      const Ke = Xt(Qe);
      let Ut = f == null ? void 0 : f.get(Ke);
      if (Ut) {
        if (!Ut.reloadLevel)
          return Ut.parsedCommandLine;
        if (Ut.parsedCommandLine && Ut.reloadLevel === 1 && !e.getParsedCommandLine) {
          Ue("Reloading new file names and options"), D.assert(Y);
          const Sn = $O(Ut.parsedCommandLine.options.configFile.configFileSpecs, Da(_i(Qe), O), Y, ve);
          return Ut.parsedCommandLine = { ...Ut.parsedCommandLine, fileNames: Sn }, Ut.reloadLevel = void 0, Ut.parsedCommandLine;
        }
      }
      Ue(`Loading config file: ${Qe}`);
      const ln = e.getParsedCommandLine ? e.getParsedCommandLine(Qe) : Vr(Qe);
      return Ut ? (Ut.parsedCommandLine = ln, Ut.reloadLevel = void 0) : (f || (f = /* @__PURE__ */ new Map())).set(Ke, Ut = { parsedCommandLine: ln }), je(Qe, Ke, Ut), ln;
    }
    function Vr(Qe) {
      const Ke = ve.onUnRecoverableConfigFileDiagnostic;
      ve.onUnRecoverableConfigFileDiagnostic = io;
      const Ut = WO(Qe, void 0, ve, y || (y = /* @__PURE__ */ new Map()), V);
      return ve.onUnRecoverableConfigFileDiagnostic = Ke, Ut;
    }
    function ke(Qe) {
      var Ke;
      const Ut = Xt(Qe), ln = f == null ? void 0 : f.get(Ut);
      ln && (f.delete(Ut), ln.watchedDirectories && Xf(ln.watchedDirectories, zm), (Ke = ln.watcher) == null || Ke.close(), Ohe(Ut, d));
    }
    function gt(Qe, Ke, Ut, ln, Sn, Er) {
      return ee(Ke, (ue, pt) => Ut(ue, pt, Qe), ln, Sn, Er);
    }
    function Nt(Qe, Ke, Ut) {
      xe(Qe, Ut, Ke), Ke === 2 && b.has(Ut) && Xe.invalidateResolutionOfFile(Ut), _r(Ut), dn();
    }
    function xe(Qe, Ke, Ut) {
      ce && ce.addOrDeleteFile(Qe, Ke, Ut);
    }
    function _t(Qe) {
      return f != null && f.has(Qe) ? GC : gt(Qe, Qe, _e, 500, P, y_.MissingFile);
    }
    function _e(Qe, Ke, Ut) {
      xe(Qe, Ut, Ke), Ke === 0 && i.has(Ut) && (i.get(Ut).close(), i.delete(Ut), _r(Ut), dn());
    }
    function re() {
      ne ? J5(o || (o = /* @__PURE__ */ new Map()), new Map(Object.entries(ne)), he) : o && Xf(o, zm);
    }
    function he(Qe, Ke) {
      return $e(Qe, (Ut) => {
        D.assert(k), D.assert(Y);
        const ln = Xt(Ut);
        ce && ce.addOrDeleteFileOrDirectory(Ut, ln), _r(ln), !K5({
          watchedDirPath: Xt(Qe),
          fileOrDirectory: Ut,
          fileOrDirectoryPath: ln,
          configFileName: k,
          extraFileExtensions: H,
          options: Y,
          program: Ct() || X,
          currentDirectory: O,
          useCaseSensitiveFileNames: I,
          writeLog: Ue,
          toPath: Xt
        }) && r !== 2 && (r = 1, dn());
      }, Ke, P, y_.WildcardDirectory);
    }
    function j(Qe, Ke, Ut, ln) {
      D.assert(k), TX(Qe, Ke, d || (d = /* @__PURE__ */ new Map()), (Sn, Er) => ee(Sn, (ue, pt) => {
        var Wt;
        xe(Sn, Er, pt), y && SX(y, Er, Xt);
        const it = (Wt = d.get(Er)) == null ? void 0 : Wt.projects;
        it != null && it.size && it.forEach((K) => {
          if (Xt(k) === K)
            r = 2;
          else {
            const Pe = f == null ? void 0 : f.get(K);
            Pe && (Pe.reloadLevel = 2), Xe.removeResolutionsFromProjectReferenceRedirects(K);
          }
          dn();
        });
      }, 2e3, Ut, ln), Xt);
    }
    function je(Qe, Ke, Ut) {
      var ln, Sn, Er, ue, pt;
      Ut.watcher || (Ut.watcher = ee(Qe, (Wt, it) => {
        xe(Qe, Ke, it);
        const K = f == null ? void 0 : f.get(Ke);
        K && (K.reloadLevel = 2), Xe.removeResolutionsFromProjectReferenceRedirects(Ke), dn();
      }, 2e3, ((ln = Ut.parsedCommandLine) == null ? void 0 : ln.watchOptions) || P, y_.ConfigFileOfReferencedProject)), (Sn = Ut.parsedCommandLine) != null && Sn.wildcardDirectories ? J5(Ut.watchedDirectories || (Ut.watchedDirectories = /* @__PURE__ */ new Map()), new Map(Object.entries((Er = Ut.parsedCommandLine) == null ? void 0 : Er.wildcardDirectories)), (Wt, it) => {
        var K;
        return $e(Wt, (Pe) => {
          const Z = Xt(Pe);
          ce && ce.addOrDeleteFileOrDirectory(Pe, Z), _r(Z);
          const Re = f == null ? void 0 : f.get(Ke);
          Re != null && Re.parsedCommandLine && (K5({
            watchedDirPath: Xt(Wt),
            fileOrDirectory: Pe,
            fileOrDirectoryPath: Z,
            configFileName: Qe,
            options: Re.parsedCommandLine.options,
            program: Re.parsedCommandLine.fileNames,
            currentDirectory: O,
            useCaseSensitiveFileNames: I,
            writeLog: Ue,
            toPath: Xt
          }) || Re.reloadLevel !== 2 && (Re.reloadLevel = 1, dn()));
        }, it, ((K = Ut.parsedCommandLine) == null ? void 0 : K.watchOptions) || P, y_.WildcardDirectoryOfReferencedProject);
      }) : Ut.watchedDirectories && (Xf(Ut.watchedDirectories, zm), Ut.watchedDirectories = void 0), j(Ke, (ue = Ut.parsedCommandLine) == null ? void 0 : ue.options, ((pt = Ut.parsedCommandLine) == null ? void 0 : pt.watchOptions) || P, y_.ExtendedConfigOfReferencedProject);
    }
  }
  var x7e = C({
    "src/compiler/watchPublic.ts"() {
      wa(), wa();
    }
  });
  function mY(e) {
    return sl(e, ".json") ? e : Pi(e, "tsconfig.json");
  }
  var hY, A7e = C({
    "src/compiler/tsbuild.ts"() {
      wa(), hY = /* @__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))(hY || {});
    }
  });
  function C7e(e, t, r) {
    const i = e.get(t);
    let o;
    return i || (o = r(), e.set(t, o)), i || o;
  }
  function gY(e, t) {
    return C7e(e, t, () => /* @__PURE__ */ new Map());
  }
  function P8(e) {
    return e.now ? e.now() : /* @__PURE__ */ new Date();
  }
  function jx(e) {
    return !!e && !!e.buildOrder;
  }
  function gF(e) {
    return jx(e) ? e.buildOrder : e;
  }
  function Tge(e, t) {
    return (r) => {
      let i = t ? `[${z1(N8(e), "\x1B[90m")}] ` : `${N8(e)} - `;
      i += `${Uv(r.messageText, e.newLine)}${e.newLine + e.newLine}`, e.write(i);
    };
  }
  function Sge(e, t, r, i) {
    const o = fY(e, t);
    return o.getModifiedTime = e.getModifiedTime ? (s) => e.getModifiedTime(s) : P0, o.setModifiedTime = e.setModifiedTime ? (s, l) => e.setModifiedTime(s, l) : io, o.deleteFile = e.deleteFile ? (s) => e.deleteFile(s) : io, o.reportDiagnostic = r || R8(e), o.reportSolutionBuilderStatus = i || Tge(e), o.now = Fo(e, e.now), o;
  }
  function L7e(e = ql, t, r, i, o) {
    const s = Sge(e, t, r, i);
    return s.reportErrorSummary = o, s;
  }
  function I7e(e = ql, t, r, i, o) {
    const s = Sge(e, t, r, i), l = lY(e, o);
    return pj(s, l), s;
  }
  function k7e(e) {
    const t = {};
    return n8.forEach((r) => {
      Rs(e, r.name) && (t[r.name] = e[r.name]);
    }), t;
  }
  function w7e(e, t, r) {
    return qge(!1, e, t, r);
  }
  function D7e(e, t, r, i) {
    return qge(!0, e, t, r, i);
  }
  function R7e(e, t, r, i, o) {
    const s = t, l = t, f = k7e(i), d = dY(s, () => I.projectCompilerOptions);
    pF(d), d.getParsedCommandLine = (O) => VT(I, O, bp(I, O)), d.resolveModuleNameLiterals = Fo(s, s.resolveModuleNameLiterals), d.resolveTypeReferenceDirectiveReferences = Fo(s, s.resolveTypeReferenceDirectiveReferences), d.resolveModuleNames = Fo(s, s.resolveModuleNames), d.resolveTypeReferenceDirectives = Fo(s, s.resolveTypeReferenceDirectives), d.getModuleResolutionCache = Fo(s, s.getModuleResolutionCache);
    let y, h;
    !d.resolveModuleNameLiterals && !d.resolveModuleNames && (y = p5(d.getCurrentDirectory(), d.getCanonicalFileName), d.resolveModuleNameLiterals = (O, k, B, V, H) => I8(O, k, B, V, H, s, y, OX), d.getModuleResolutionCache = () => y), !d.resolveTypeReferenceDirectiveReferences && !d.resolveTypeReferenceDirectives && (h = m5(d.getCurrentDirectory(), d.getCanonicalFileName, void 0, y == null ? void 0 : y.getPackageJsonInfoCache()), d.resolveTypeReferenceDirectiveReferences = (O, k, B, V, H) => I8(O, k, B, V, H, s, h, $5)), d.getBuildInfo = (O, k) => Fge(I, O, bp(I, k), void 0);
    const { watchFile: b, watchDirectory: A, writeLog: L } = uY(l, i), I = {
      host: s,
      hostWithWatch: l,
      parseConfigFileHost: tF(s),
      write: Fo(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: b,
      watchDirectory: A,
      writeLog: L
    };
    return I;
  }
  function Gd(e, t) {
    return js(t, e.compilerHost.getCurrentDirectory(), e.compilerHost.getCanonicalFileName);
  }
  function bp(e, t) {
    const { resolvedConfigFilePaths: r } = e, i = r.get(t);
    if (i !== void 0)
      return i;
    const o = Gd(e, t);
    return r.set(t, o), o;
  }
  function xge(e) {
    return !!e.options;
  }
  function N7e(e, t) {
    const r = e.configFileCache.get(t);
    return r && xge(r) ? r : void 0;
  }
  function VT(e, t, r) {
    const { configFileCache: i } = e, o = i.get(r);
    if (o)
      return xge(o) ? o : void 0;
    ic("SolutionBuilder::beforeConfigFileParsing");
    let s;
    const { parseConfigFileHost: l, baseCompilerOptions: f, baseWatchOptions: d, extendedConfigCache: y, host: h } = e;
    let b;
    return h.getParsedCommandLine ? (b = h.getParsedCommandLine(t), b || (s = Os(_.File_0_not_found, t))) : (l.onUnRecoverableConfigFileDiagnostic = (A) => s = A, b = WO(t, f, l, y, d), l.onUnRecoverableConfigFileDiagnostic = io), i.set(r, b || s), ic("SolutionBuilder::afterConfigFileParsing"), Hf("SolutionBuilder::Config file parsing", "SolutionBuilder::beforeConfigFileParsing", "SolutionBuilder::afterConfigFileParsing"), b;
  }
  function UC(e, t) {
    return mY(hv(e.compilerHost.getCurrentDirectory(), t));
  }
  function Age(e, t) {
    const r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), o = [];
    let s, l;
    for (const d of t)
      f(d);
    return l ? { buildOrder: s || rt, circularDiagnostics: l } : s || rt;
    function f(d, y) {
      const h = bp(e, d);
      if (i.has(h))
        return;
      if (r.has(h)) {
        y || (l || (l = [])).push(Os(_.Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0, o.join(`\r
`)));
        return;
      }
      r.set(h, !0), o.push(d);
      const b = VT(e, d, h);
      if (b && b.projectReferences)
        for (const A of b.projectReferences) {
          const L = UC(e, A.path);
          f(L, y || A.circular);
        }
      o.pop(), i.set(h, !0), (s || (s = [])).push(d);
    }
  }
  function M8(e) {
    return e.buildOrder || O7e(e);
  }
  function O7e(e) {
    const t = Age(e, e.rootNames.map((o) => UC(e, o)));
    e.resolvedConfigFilePaths.clear();
    const r = new Map(gF(t).map((o) => [bp(e, o), !0])), i = { onDeleteValue: io };
    return ug(e.configFileCache, r, i), ug(e.projectStatus, r, i), ug(e.builderPrograms, r, i), ug(e.diagnostics, r, i), ug(e.projectPendingBuild, r, i), ug(e.projectErrorsReported, r, i), ug(e.buildInfoCache, r, i), ug(e.outputTimeStamps, r, i), e.watch && (ug(e.allWatchedConfigFiles, r, { onDeleteValue: Fm }), e.allWatchedExtendedConfigFiles.forEach((o) => {
      o.projects.forEach((s) => {
        r.has(s) || o.projects.delete(s);
      }), o.close();
    }), ug(e.allWatchedWildcardDirectories, r, { onDeleteValue: (o) => o.forEach(zm) }), ug(e.allWatchedInputFiles, r, { onDeleteValue: (o) => o.forEach(Fm) }), ug(e.allWatchedPackageJsonFiles, r, { onDeleteValue: (o) => o.forEach(Fm) })), e.buildOrder = t;
  }
  function Cge(e, t, r) {
    const i = t && UC(e, t), o = M8(e);
    if (jx(o))
      return o;
    if (i) {
      const l = bp(e, i);
      if (Qi(o, (d) => bp(e, d) === l) === -1)
        return;
    }
    const s = i ? Age(e, [i]) : o;
    return D.assert(!jx(s)), D.assert(!r || i !== void 0), D.assert(!r || s[s.length - 1] === i), r ? s.slice(0, s.length - 1) : s;
  }
  function Lge(e) {
    e.cache && yY(e);
    const { compilerHost: t, host: r } = e, i = e.readFileWithCache, o = t.getSourceFile, {
      originalReadFile: s,
      originalFileExists: l,
      originalDirectoryExists: f,
      originalCreateDirectory: d,
      originalWriteFile: y,
      getSourceFileWithCache: h,
      readFileWithCache: b
    } = C8(r, (A) => Gd(e, A), (...A) => o.call(t, ...A));
    e.readFileWithCache = b, t.getSourceFile = h, e.cache = {
      originalReadFile: s,
      originalFileExists: l,
      originalDirectoryExists: f,
      originalCreateDirectory: d,
      originalWriteFile: y,
      originalReadFileWithCache: i,
      originalGetSourceFile: o
    };
  }
  function yY(e) {
    if (!e.cache)
      return;
    const { cache: t, host: r, compilerHost: i, extendedConfigCache: o, moduleResolutionCache: s, typeReferenceDirectiveResolutionCache: l } = 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(), l == null || l.clear(), e.cache = void 0;
  }
  function Ige(e, t) {
    e.projectStatus.delete(t), e.diagnostics.delete(t);
  }
  function kge({ 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 && wY(e, _.Starting_compilation_in_watch_mode), Lge(e), gF(M8(e)).forEach((i) => e.projectPendingBuild.set(bp(e, i), 0)), t && t.throwIfCancellationRequested();
  }
  function Dge(e, t) {
    return e.projectPendingBuild.delete(t), e.diagnostics.has(t) ? 1 : 0;
  }
  function P7e(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: () => {
        Gge(e, i, r), s = !1;
      },
      done: () => (s && Gge(e, i, r), ic("SolutionBuilder::Timestamps only updates"), Dge(e, r))
    };
  }
  function Rge(e, t, r, i, o, s, l) {
    let f = e === 0 ? 0 : 4, d, y, h;
    return e === 0 ? {
      kind: e,
      project: r,
      projectPath: i,
      buildOrder: l,
      getCompilerOptions: () => s.options,
      getCurrentDirectory: () => t.compilerHost.getCurrentDirectory(),
      getBuilderProgram: () => A(pc),
      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((ne) => ne.getSyntacticDiagnostics(P, de)),
      getAllDependencies: (P) => L((de) => de.getAllDependencies(P)),
      getSemanticDiagnostics: (P, de) => L((ne) => ne.getSemanticDiagnostics(P, de)),
      getSemanticDiagnosticsOfNextAffectedFile: (P, de) => A((ne) => ne.getSemanticDiagnosticsOfNextAffectedFile && ne.getSemanticDiagnosticsOfNextAffectedFile(P, de)),
      emit: (P, de, ne, ye, ie) => {
        if (P || ye)
          return A((W) => {
            var ce, pe;
            return W.emit(P, de, ne, ye, ie || ((pe = (ce = t.host).getCustomTransformers) == null ? void 0 : pe.call(ce, r)));
          });
        if (Y(2, ne), f === 5)
          return H(de, ne);
        if (f === 3)
          return V(de, ne, ie);
      },
      done: b
    } : {
      kind: e,
      project: r,
      projectPath: i,
      buildOrder: l,
      getCompilerOptions: () => s.options,
      getCurrentDirectory: () => t.compilerHost.getCurrentDirectory(),
      emit: (P, de) => f !== 4 ? h : X(P, de),
      done: b
    };
    function b(P, de, ne) {
      return Y(8, P, de, ne), ic(e === 0 ? "SolutionBuilder::Projects built" : "SolutionBuilder::Bundles updated"), Dge(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) {
        Bu(t, _.A_non_dry_build_would_build_project_0, r), y = 1, f = 7;
        return;
      }
      if (t.options.verbose && Bu(t, _.Building_project_0, r), s.fileNames.length === 0) {
        VC(t, i, GT(s)), y = 0, f = 7;
        return;
      }
      const { host: ne, compilerHost: ye } = t;
      t.projectCompilerOptions = s.options, (P = t.moduleResolutionCache) == null || P.update(s.options), (de = t.typeReferenceDirectiveResolutionCache) == null || de.update(s.options), d = ne.createProgram(s.fileNames, s.options, ye, F7e(t, i, s), GT(s), s.projectReferences), t.watch && (t.lastCachedPackageJsonLookups.set(i, t.moduleResolutionCache && en(t.moduleResolutionCache.getPackageJsonInfoCache().entries(), ([ie, W]) => [t.host.realpath && W ? Gd(t, t.host.realpath(ie)) : ie, W])), t.builderPrograms.set(i, d)), f++;
    }
    function O(P, de, ne) {
      P.length ? { buildResult: y, step: f } = EY(t, i, d, s, P, de, ne) : f++;
    }
    function k(P) {
      D.assertIsDefined(d), O([
        ...d.getConfigFileParsingDiagnostics(),
        ...d.getOptionsDiagnostics(P),
        ...d.getGlobalDiagnostics(P),
        ...d.getSyntacticDiagnostics(void 0, P)
      ], 8, "Syntactic");
    }
    function B(P) {
      O(D.checkDefined(d).getSemanticDiagnostics(void 0, P), 16, "Semantic");
    }
    function V(P, de, ne) {
      var ye, ie, W;
      D.assertIsDefined(d), D.assert(f === 3);
      const ce = d.saveEmitState();
      let pe;
      const ve = (st) => (pe || (pe = [])).push(st), Te = [], { emitResult: ee } = fF(d, ve, void 0, void 0, (st, Ct, Et, Vt, tt, at) => Te.push({ name: st, text: Ct, writeByteOrderMark: Et, data: at }), de, !1, ne || ((ie = (ye = t.host).getCustomTransformers) == null ? void 0 : ie.call(ye, r)));
      if (pe)
        return d.restoreEmitState(ce), { buildResult: y, step: f } = EY(t, i, d, s, pe, 32, "Declaration file"), {
          emitSkipped: !0,
          diagnostics: ee.diagnostics
        };
      const { host: $e, compilerHost: Ue } = t, Be = (W = d.hasChangedEmitSignature) != null && W.call(d) ? 0 : 2, We = XA(), Oe = /* @__PURE__ */ new Map(), Me = d.getCompilerOptions(), Xe = qN(Me);
      let He, Fe;
      return Te.forEach(({ name: st, text: Ct, writeByteOrderMark: Et, data: Vt }) => {
        const tt = Gd(t, st);
        Oe.set(Gd(t, st), st), Vt != null && Vt.buildInfo && SY(t, Vt.buildInfo, i, Me, Be);
        const at = Vt != null && Vt.differsOnlyInMap ? HS(t.host, st) : void 0;
        WI(P ? { writeFile: P } : Ue, We, st, Ct, Et), Vt != null && Vt.differsOnlyInMap ? t.host.setModifiedTime(st, at) : !Xe && t.watch && (He || (He = TY(t, i))).set(tt, Fe || (Fe = P8(t.host)));
      }), te(We, Oe, Te.length ? Te[0].name : yX(s, !$e.useCaseSensitiveFileNames()), Be), ee;
    }
    function H(P, de) {
      D.assertIsDefined(d), D.assert(f === 5);
      const ne = d.emitBuildInfo((ye, ie, W, ce, pe, ve) => {
        ve != null && ve.buildInfo && SY(t, ve.buildInfo, i, d.getCompilerOptions(), 2), P ? P(ye, ie, W, ce, pe, ve) : t.compilerHost.writeFile(ye, ie, W, ce, pe, ve);
      }, de);
      return ne.diagnostics.length && (B8(t, ne.diagnostics), t.diagnostics.set(i, [...t.diagnostics.get(i), ...ne.diagnostics]), y = 64 & y), ne.emittedFiles && t.write && ne.emittedFiles.forEach((ye) => Pge(t, s, ye)), bY(t, d, s), f = 7, ne;
    }
    function te(P, de, ne, ye) {
      const ie = P.getDiagnostics();
      return ie.length ? ({ buildResult: y, step: f } = EY(t, i, d, s, ie, 64, "Emit"), ie) : (t.write && de.forEach((W) => Pge(t, s, W)), Bge(t, s, i, _.Updating_unchanged_output_timestamps_of_project_0, de), t.diagnostics.delete(i), t.projectStatus.set(i, {
        type: 1,
        oldestOutputFileName: ne
      }), bY(t, d, s), f = 7, y = ye, ie);
    }
    function X(P, de) {
      var ne, ye, ie, W;
      if (D.assert(e === 1), t.options.dry) {
        Bu(t, _.A_non_dry_build_would_update_output_of_project_0, r), y = 1, f = 7;
        return;
      }
      t.options.verbose && Bu(t, _.Updating_output_of_project_0, r);
      const { compilerHost: ce } = t;
      t.projectCompilerOptions = s.options, (ye = (ne = t.host).beforeEmitBundle) == null || ye.call(ne, s);
      const pe = Rhe(s, ce, (Be) => {
        const We = UC(t, Be.path);
        return VT(t, We, bp(t, We));
      }, de || ((W = (ie = t.host).getCustomTransformers) == null ? void 0 : W.call(ie, r)));
      if (Ua(pe))
        return Bu(t, _.Cannot_update_output_of_project_0_because_there_was_error_reading_file_1, r, Dl(t, pe)), f = 6, h = Rge(0, t, r, i, o, s, l);
      D.assert(!!pe.length);
      const ve = XA(), Te = /* @__PURE__ */ new Map();
      let ee = 2;
      const $e = t.buildInfoCache.get(i).buildInfo || void 0;
      return pe.forEach(({ name: Be, text: We, writeByteOrderMark: Oe, data: Me }) => {
        var Xe, He;
        Te.set(Gd(t, Be), Be), Me != null && Me.buildInfo && (((Xe = Me.buildInfo.program) == null ? void 0 : Xe.outSignature) !== ((He = $e == null ? void 0 : $e.program) == null ? void 0 : He.outSignature) && (ee &= -3), SY(t, Me.buildInfo, i, s.options, ee)), WI(P ? { writeFile: P } : ce, ve, Be, We, Oe);
      }), { emitSkipped: !1, diagnostics: te(ve, Te, pe[0].name, ee) };
    }
    function Y(P, de, ne, ye) {
      for (; f <= P && f < 8; ) {
        const ie = f;
        switch (f) {
          case 0:
            I();
            break;
          case 1:
            k(de);
            break;
          case 2:
            B(de);
            break;
          case 3:
            V(ne, de, ye);
            break;
          case 5:
            H(ne, de);
            break;
          case 4:
            X(ne, ye);
            break;
          case 6:
            D.checkDefined(h).done(de, ne, ye), f = 8;
            break;
          case 7:
            V7e(t, r, i, o, s, l, D.checkDefined(y)), f++;
            break;
        }
        D.assert(f > ie);
      }
    }
  }
  function M7e({ options: e }, t, r) {
    return t.type !== 3 || e.force ? !0 : r.fileNames.length === 0 || !!GT(r).length || !qN(r.options);
  }
  function Nge(e, t, r) {
    if (!e.projectPendingBuild.size || jx(t))
      return;
    const { options: i, projectPendingBuild: o } = e;
    for (let s = 0; s < t.length; s++) {
      const l = t[s], f = bp(e, l), d = e.projectPendingBuild.get(f);
      if (d === void 0)
        continue;
      r && (r = !1, Xge(e, t));
      const y = VT(e, l, f);
      if (!y) {
        Jge(e, f), o.delete(f);
        continue;
      }
      d === 2 ? (Hge(e, l, f, y), Wge(e, f, y), zge(e, l, f, y), IY(e, l, f, y), kY(e, l, f, y)) : d === 1 && (y.fileNames = $O(y.options.configFile.configFileSpecs, _i(l), y.options, e.parseConfigFileHost), QJ(y.fileNames, l, y.options.configFile.configFileSpecs, y.errors, XO(y.raw)), IY(e, l, f, y), kY(e, l, f, y));
      const h = CY(e, y, f);
      if (!i.force) {
        if (h.type === 1) {
          bF(e, l, h), VC(e, f, GT(y)), o.delete(f), i.dry && Bu(e, _.Project_0_is_up_to_date, l);
          continue;
        }
        if (h.type === 2 || h.type === 15)
          return VC(e, f, GT(y)), {
            kind: 2,
            status: h,
            project: l,
            projectPath: f,
            projectIndex: s,
            config: y
          };
      }
      if (h.type === 12) {
        bF(e, l, h), VC(e, f, GT(y)), o.delete(f), i.verbose && Bu(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, l, h.upstreamProjectName);
        continue;
      }
      if (h.type === 16) {
        bF(e, l, h), VC(e, f, GT(y)), o.delete(f);
        continue;
      }
      return {
        kind: M7e(e, h, y) ? 0 : 1,
        status: h,
        project: l,
        projectPath: f,
        projectIndex: s,
        config: y
      };
    }
  }
  function Oge(e, t, r) {
    return bF(e, t.project, t.status), t.kind !== 2 ? Rge(t.kind, e, t.project, t.projectPath, t.projectIndex, t.config, r) : P7e(e, t.project, t.projectPath, t.config, r);
  }
  function vY(e, t, r) {
    const i = Nge(e, t, r);
    return i && Oge(e, i, t);
  }
  function Pge({ write: e }, t, r) {
    e && t.options.listEmittedFiles && e(`TSFILE: ${r}`);
  }
  function F7e({ options: e, builderPrograms: t, compilerHost: r }, i, o) {
    if (e.force)
      return;
    const s = t.get(i);
    return s || hF(o.options, r);
  }
  function bY(e, t, r) {
    t ? (e.write && iY(t, e.write), e.host.afterProgramEmitAndDiagnostics && e.host.afterProgramEmitAndDiagnostics(t), t.releaseProgram()) : e.host.afterEmitBundle && e.host.afterEmitBundle(r), e.projectCompilerOptions = e.baseCompilerOptions;
  }
  function EY(e, t, r, i, o, s, l) {
    const f = r && !Hs(r.getCompilerOptions());
    return VC(e, t, o), e.projectStatus.set(t, { type: 0, reason: `${l} errors` }), f ? { buildResult: s, step: 5 } : (bY(e, r, i), { buildResult: s, step: 7 });
  }
  function yF(e) {
    return !!e.watcher;
  }
  function Mge(e, t) {
    const r = Gd(e, t), i = e.filesWatched.get(r);
    if (e.watch && i) {
      if (!yF(i))
        return i;
      if (i.modifiedTime)
        return i.modifiedTime;
    }
    const o = HS(e.host, t);
    return e.watch && (i ? i.modifiedTime = o : e.filesWatched.set(r, o)), o;
  }
  function vF(e, t, r, i, o, s, l) {
    const f = Gd(e, t), d = e.filesWatched.get(f);
    if (d && yF(d))
      d.callbacks.push(r);
    else {
      const y = e.watchFile(t, (h, b, A) => {
        const L = D.checkDefined(e.filesWatched.get(f));
        D.assert(yF(L)), L.modifiedTime = A, L.callbacks.forEach((I) => I(h, b, A));
      }, i, o, s, l);
      e.filesWatched.set(f, { callbacks: [r], watcher: y, modifiedTime: d });
    }
    return {
      close: () => {
        const y = D.checkDefined(e.filesWatched.get(f));
        D.assert(yF(y)), y.callbacks.length === 1 ? (e.filesWatched.delete(f), zm(y)) : cR(y.callbacks, r);
      }
    };
  }
  function TY(e, t) {
    if (!e.watch)
      return;
    let r = e.outputTimeStamps.get(t);
    return r || e.outputTimeStamps.set(t, r = /* @__PURE__ */ new Map()), r;
  }
  function SY(e, t, r, i, o) {
    const s = Ay(i), l = xY(e, s, r), f = P8(e.host);
    l ? (l.buildInfo = t, l.modifiedTime = f, o & 2 || (l.latestChangedDtsTime = f)) : e.buildInfoCache.set(r, {
      path: Gd(e, s),
      buildInfo: t,
      modifiedTime: f,
      latestChangedDtsTime: o & 2 ? void 0 : f
    });
  }
  function xY(e, t, r) {
    const i = Gd(e, t), o = e.buildInfoCache.get(r);
    return (o == null ? void 0 : o.path) === i ? o : void 0;
  }
  function Fge(e, t, r, i) {
    const o = Gd(e, t), s = e.buildInfoCache.get(r);
    if (s !== void 0 && s.path === o)
      return s.buildInfo || void 0;
    const l = e.readFileWithCache(t), f = l ? z5(t, l) : void 0;
    return e.buildInfoCache.set(r, { path: o, buildInfo: f || !1, modifiedTime: i || Qh }), f;
  }
  function AY(e, t, r, i) {
    const o = Mge(e, t);
    if (r < o)
      return {
        type: 6,
        outOfDateOutputFileName: i,
        newerInputFileName: t
      };
  }
  function B7e(e, t, r) {
    var i, o;
    if (!t.fileNames.length && !XO(t.raw))
      return {
        type: 16
      };
    let s;
    const l = !!e.options.force;
    if (t.projectReferences) {
      e.projectStatus.set(r, { type: 13 });
      for (const ne of t.projectReferences) {
        const ye = nw(ne), ie = bp(e, ye), W = VT(e, ye, ie), ce = CY(e, W, ie);
        if (!(ce.type === 13 || ce.type === 16)) {
          if (ce.type === 0 || ce.type === 12)
            return {
              type: 12,
              upstreamProjectName: ne.path,
              upstreamProjectBlocked: ce.type === 12
            };
          if (ce.type !== 1)
            return {
              type: 11,
              upstreamProjectName: ne.path
            };
          l || (s || (s = [])).push({ ref: ne, refStatus: ce, resolvedRefPath: ie, resolvedConfig: W });
        }
      }
    }
    if (l)
      return { type: 17 };
    const { host: f } = e, d = Ay(t.options);
    let y, h = $ge, b, A, L;
    if (d) {
      const ne = xY(e, d, r);
      if (b = (ne == null ? void 0 : ne.modifiedTime) || HS(f, d), b === Qh)
        return ne || e.buildInfoCache.set(r, {
          path: Gd(e, d),
          buildInfo: !1,
          modifiedTime: b
        }), {
          type: 4,
          missingOutputFileName: d
        };
      const ye = Fge(e, d, r, b);
      if (!ye)
        return {
          type: 5,
          fileName: d
        };
      if ((ye.bundle || ye.program) && ye.version !== De)
        return {
          type: 14,
          version: ye.version
        };
      if (ye.program) {
        if ((i = ye.program.changeFileSet) != null && i.length || (t.options.noEmit ? kt(ye.program.semanticDiagnosticsPerFile, Ba) : (o = ye.program.affectedFilesPendingEmit) != null && o.length))
          return {
            type: 8,
            buildInfoFile: d
          };
        if (!t.options.noEmit && BC(t.options, ye.program.options || {}))
          return {
            type: 9,
            buildInfoFile: d
          };
        A = ye.program;
      }
      h = b, y = d;
    }
    let I, O = Yge, k = !1;
    const B = /* @__PURE__ */ new Set();
    for (const ne of t.fileNames) {
      const ye = Mge(e, ne);
      if (ye === Qh)
        return {
          type: 0,
          reason: `${ne} does not exist`
        };
      if (b && b < ye) {
        let ie, W;
        if (A) {
          L || (L = $X(A, d, f)), ie = L.fileInfos.get(Gd(e, ne));
          const ce = ie ? e.readFileWithCache(ne) : void 0;
          W = ce !== void 0 ? _F(f, ce) : void 0, ie && ie === W && (k = !0);
        }
        if (!ie || ie !== W)
          return {
            type: 6,
            outOfDateOutputFileName: d,
            newerInputFileName: ne
          };
      }
      ye > O && (I = ne, O = ye), A && B.add(Gd(e, ne));
    }
    if (A) {
      L || (L = $X(A, d, f));
      for (const ne of L.roots)
        if (!B.has(ne))
          return {
            type: 10,
            buildInfoFile: d,
            inputFile: ne
          };
    }
    if (!d) {
      const ne = H5(t, !f.useCaseSensitiveFileNames()), ye = TY(e, r);
      for (const ie of ne) {
        const W = Gd(e, ie);
        let ce = ye == null ? void 0 : ye.get(W);
        if (ce || (ce = HS(e.host, ie), ye == null || ye.set(W, ce)), ce === Qh)
          return {
            type: 4,
            missingOutputFileName: ie
          };
        if (ce < O)
          return {
            type: 6,
            outOfDateOutputFileName: ie,
            newerInputFileName: I
          };
        ce < h && (h = ce, y = ie);
      }
    }
    const V = e.buildInfoCache.get(r);
    let H = !1, te = !1, X;
    if (s)
      for (const { ref: ne, refStatus: ye, resolvedConfig: ie, resolvedRefPath: W } of s) {
        if (te = te || !!ne.prepend, ye.newestInputFileTime && ye.newestInputFileTime <= h)
          continue;
        if (V && G7e(e, V, W))
          return {
            type: 7,
            outOfDateOutputFileName: d,
            newerProjectName: ne.path
          };
        const ce = U7e(e, ie.options, W);
        if (ce && ce <= h) {
          H = !0, X = ne.path;
          continue;
        }
        return D.assert(y !== void 0, "Should have an oldest output filename here"), {
          type: 7,
          outOfDateOutputFileName: y,
          newerProjectName: ne.path
        };
      }
    const Y = AY(e, t.options.configFilePath, h, y);
    if (Y)
      return Y;
    const P = ze(t.options.configFile.extendedSourceFiles || rt, (ne) => AY(e, ne, h, y));
    if (P)
      return P;
    const de = ze(e.lastCachedPackageJsonLookups.get(r) || rt, ([ne]) => AY(e, ne, 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 G7e(e, t, r) {
    return e.buildInfoCache.get(r).path === t.path;
  }
  function CY(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;
    ic("SolutionBuilder::beforeUpToDateCheck");
    const o = B7e(e, t, r);
    return ic("SolutionBuilder::afterUpToDateCheck"), Hf("SolutionBuilder::Up-to-date check", "SolutionBuilder::beforeUpToDateCheck", "SolutionBuilder::afterUpToDateCheck"), e.projectStatus.set(r, o), o;
  }
  function Bge(e, t, r, i, o) {
    if (t.options.noEmit)
      return;
    let s;
    const l = Ay(t.options);
    if (l) {
      o != null && o.has(Gd(e, l)) || (e.options.verbose && Bu(e, i, t.options.configFilePath), e.host.setModifiedTime(l, s = P8(e.host)), xY(e, l, r).modifiedTime = s), e.outputTimeStamps.delete(r);
      return;
    }
    const { host: f } = e, d = H5(t, !f.useCaseSensitiveFileNames()), y = TY(e, r), h = y ? /* @__PURE__ */ new Set() : void 0;
    if (!o || d.length !== o.size) {
      let b = !!e.options.verbose;
      for (const A of d) {
        const L = Gd(e, A);
        o != null && o.has(L) || (b && (b = !1, Bu(e, i, t.options.configFilePath)), f.setModifiedTime(A, s || (s = P8(e.host))), y && (y.set(L, s), h.add(L)));
      }
    }
    y == null || y.forEach((b, A) => {
      !(o != null && o.has(A)) && !h.has(A) && y.delete(A);
    });
  }
  function U7e(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(Da(i.buildInfo.program.latestChangedDtsFile, _i(i.path))) : void 0;
    return i.latestChangedDtsTime = o || !1, o;
  }
  function Gge(e, t, r) {
    if (e.options.dry)
      return Bu(e, _.A_non_dry_build_would_update_timestamps_for_output_of_project_0, t.options.configFilePath);
    Bge(e, t, r, _.Updating_output_timestamps_of_project_0), e.projectStatus.set(r, {
      type: 1,
      oldestOutputFileName: yX(t, !e.host.useCaseSensitiveFileNames())
    });
  }
  function V7e(e, t, r, i, o, s, l) {
    if (!(l & 124) && o.options.composite)
      for (let f = i + 1; f < s.length; f++) {
        const d = s[f], y = bp(e, d);
        if (e.projectPendingBuild.has(y))
          continue;
        const h = VT(e, d, y);
        if (!(!h || !h.projectReferences))
          for (const b of h.projectReferences) {
            const A = UC(e, b.path);
            if (bp(e, A) !== r)
              continue;
            const L = e.projectStatus.get(y);
            if (L)
              switch (L.type) {
                case 1:
                  if (l & 2) {
                    b.prepend ? e.projectStatus.set(y, {
                      type: 3,
                      outOfDateOutputFileName: L.oldestOutputFileName,
                      newerProjectName: t
                    }) : L.type = 2;
                    break;
                  }
                case 15:
                case 2:
                case 3:
                  l & 2 || e.projectStatus.set(y, {
                    type: 7,
                    outOfDateOutputFileName: L.type === 3 ? L.outOfDateOutputFileName : L.oldestOutputFileName,
                    newerProjectName: t
                  });
                  break;
                case 12:
                  bp(e, UC(e, L.upstreamProjectName)) === r && Ige(e, y);
                  break;
              }
            kge(e, y, 0);
            break;
          }
      }
  }
  function Uge(e, t, r, i, o, s) {
    ic("SolutionBuilder::beforeBuild");
    const l = j7e(e, t, r, i, o, s);
    return ic("SolutionBuilder::afterBuild"), Hf("SolutionBuilder::Build", "SolutionBuilder::beforeBuild", "SolutionBuilder::afterBuild"), l;
  }
  function j7e(e, t, r, i, o, s) {
    const l = Cge(e, t, s);
    if (!l)
      return 3;
    wge(e, r);
    let f = !0, d = 0;
    for (; ; ) {
      const y = vY(e, l, f);
      if (!y)
        break;
      f = !1, y.done(r, i, o == null ? void 0 : o(y.project)), e.diagnostics.has(y.projectPath) || d++;
    }
    return yY(e), Kge(e, l), q7e(e, l), jx(l) ? 4 : l.some((y) => e.diagnostics.has(bp(e, y))) ? d ? 2 : 1 : 0;
  }
  function Vge(e, t, r) {
    ic("SolutionBuilder::beforeClean");
    const i = H7e(e, t, r);
    return ic("SolutionBuilder::afterClean"), Hf("SolutionBuilder::Clean", "SolutionBuilder::beforeClean", "SolutionBuilder::afterClean"), i;
  }
  function H7e(e, t, r) {
    const i = Cge(e, t, r);
    if (!i)
      return 3;
    if (jx(i))
      return B8(e, i.circularDiagnostics), 4;
    const { options: o, host: s } = e, l = o.dry ? [] : void 0;
    for (const f of i) {
      const d = bp(e, f), y = VT(e, f, d);
      if (y === void 0) {
        Jge(e, d);
        continue;
      }
      const h = H5(y, !s.useCaseSensitiveFileNames());
      if (!h.length)
        continue;
      const b = new Set(y.fileNames.map((A) => Gd(e, A)));
      for (const A of h)
        b.has(Gd(e, A)) || s.fileExists(A) && (l ? l.push(A) : (s.deleteFile(A), LY(e, d, 0)));
    }
    return l && Bu(e, _.A_non_dry_build_would_delete_the_following_files_Colon_0, l.map((f) => `\r
 * ${f}`).join("")), 0;
  }
  function LY(e, t, r) {
    e.host.getParsedCommandLine && r === 1 && (r = 2), r === 2 && (e.configFileCache.delete(t), e.buildOrder = void 0), e.needsSummary = !0, Ige(e, t), kge(e, t, r), Lge(e);
  }
  function F8(e, t, r) {
    e.reportFileChangeDetected = !0, LY(e, t, r), jge(e, 250, !0);
  }
  function jge(e, t, r) {
    const { hostWithWatch: i } = e;
    !i.setTimeout || !i.clearTimeout || (e.timerToBuildInvalidatedProject && i.clearTimeout(e.timerToBuildInvalidatedProject), e.timerToBuildInvalidatedProject = i.setTimeout(W7e, t, e, r));
  }
  function W7e(e, t) {
    ic("SolutionBuilder::beforeBuild");
    const r = z7e(e, t);
    ic("SolutionBuilder::afterBuild"), Hf("SolutionBuilder::Build", "SolutionBuilder::beforeBuild", "SolutionBuilder::afterBuild"), r && Kge(e, r);
  }
  function z7e(e, t) {
    e.timerToBuildInvalidatedProject = void 0, e.reportFileChangeDetected && (e.reportFileChangeDetected = !1, e.projectErrorsReported.clear(), wY(e, _.File_change_detected_Starting_incremental_compilation));
    let r = 0;
    const i = M8(e), o = vY(e, i, !1);
    if (o)
      for (o.done(), r++; e.projectPendingBuild.size; ) {
        if (e.timerToBuildInvalidatedProject)
          return;
        const s = Nge(e, i, !1);
        if (!s)
          break;
        if (s.kind !== 2 && (t || r === 5)) {
          jge(e, 100, !1);
          return;
        }
        Oge(e, s, i).done(), s.kind !== 2 && r++;
      }
    return yY(e), i;
  }
  function Hge(e, t, r, i) {
    !e.watch || e.allWatchedConfigFiles.has(r) || e.allWatchedConfigFiles.set(r, vF(e, t, () => F8(e, r, 2), 2e3, i == null ? void 0 : i.watchOptions, y_.ConfigFile, t));
  }
  function Wge(e, t, r) {
    TX(t, r == null ? void 0 : r.options, e.allWatchedExtendedConfigFiles, (i, o) => vF(e, i, () => {
      var s;
      return (s = e.allWatchedExtendedConfigFiles.get(o)) == null ? void 0 : s.projects.forEach((l) => F8(e, l, 2));
    }, 2e3, r == null ? void 0 : r.watchOptions, y_.ExtendedConfigFile), (i) => Gd(e, i));
  }
  function zge(e, t, r, i) {
    e.watch && J5(gY(e.allWatchedWildcardDirectories, r), new Map(Object.entries(i.wildcardDirectories)), (o, s) => e.watchDirectory(o, (l) => {
      var f;
      K5({
        watchedDirPath: Gd(e, o),
        fileOrDirectory: l,
        fileOrDirectoryPath: Gd(e, l),
        configFileName: t,
        currentDirectory: e.compilerHost.getCurrentDirectory(),
        options: i.options,
        program: e.builderPrograms.get(r) || ((f = N7e(e, r)) == null ? void 0 : f.fileNames),
        useCaseSensitiveFileNames: e.parseConfigFileHost.useCaseSensitiveFileNames,
        writeLog: (d) => e.writeLog(d),
        toPath: (d) => Gd(e, d)
      }) || F8(e, r, 1);
    }, s, i == null ? void 0 : i.watchOptions, y_.WildcardDirectory, t));
  }
  function IY(e, t, r, i) {
    e.watch && eC(gY(e.allWatchedInputFiles, r), t1(i.fileNames, (o) => Gd(e, o)), {
      createNewValue: (o, s) => vF(e, s, () => F8(e, r, 0), 250, i == null ? void 0 : i.watchOptions, y_.SourceFile, t),
      onDeleteValue: Fm
    });
  }
  function kY(e, t, r, i) {
    !e.watch || !e.lastCachedPackageJsonLookups || eC(gY(e.allWatchedPackageJsonFiles, r), new Map(e.lastCachedPackageJsonLookups.get(r)), {
      createNewValue: (o, s) => vF(e, o, () => F8(e, r, 0), 2e3, i == null ? void 0 : i.watchOptions, y_.PackageJson, t),
      onDeleteValue: Fm
    });
  }
  function q7e(e, t) {
    if (e.watchAllProjectsPending) {
      ic("SolutionBuilder::beforeWatcherCreation"), e.watchAllProjectsPending = !1;
      for (const r of gF(t)) {
        const i = bp(e, r), o = VT(e, r, i);
        Hge(e, r, i, o), Wge(e, i, o), o && (zge(e, r, i, o), IY(e, r, i, o), kY(e, r, i, o));
      }
      ic("SolutionBuilder::afterWatcherCreation"), Hf("SolutionBuilder::Watcher creation", "SolutionBuilder::beforeWatcherCreation", "SolutionBuilder::afterWatcherCreation");
    }
  }
  function J7e(e) {
    Xf(e.allWatchedConfigFiles, Fm), Xf(e.allWatchedExtendedConfigFiles, zm), Xf(e.allWatchedWildcardDirectories, (t) => Xf(t, zm)), Xf(e.allWatchedInputFiles, (t) => Xf(t, Fm)), Xf(e.allWatchedPackageJsonFiles, (t) => Xf(t, Fm));
  }
  function qge(e, t, r, i, o) {
    const s = R7e(e, t, r, i, o);
    return {
      build: (l, f, d, y) => Uge(s, l, f, d, y),
      clean: (l) => Vge(s, l),
      buildReferences: (l, f, d, y) => Uge(s, l, f, d, y, !0),
      cleanReferences: (l) => Vge(s, l, !0),
      getNextInvalidatedProject: (l) => (wge(s, l), vY(s, M8(s), !1)),
      getBuildOrder: () => M8(s),
      getUpToDateStatusOfProject: (l) => {
        const f = UC(s, l), d = bp(s, f);
        return CY(s, VT(s, f, d), d);
      },
      invalidateProject: (l, f) => LY(s, l, f || 0),
      close: () => J7e(s)
    };
  }
  function Dl(e, t) {
    return cI(t, e.compilerHost.getCurrentDirectory(), e.compilerHost.getCanonicalFileName);
  }
  function Bu(e, t, ...r) {
    e.host.reportSolutionBuilderStatus(Os(t, ...r));
  }
  function wY(e, t, ...r) {
    var i, o;
    (o = (i = e.hostWithWatch).onWatchStatusChange) == null || o.call(i, Os(t, ...r), e.host.getNewLine(), e.baseCompilerOptions);
  }
  function B8({ host: e }, t) {
    t.forEach((r) => e.reportDiagnostic(r));
  }
  function VC(e, t, r) {
    B8(e, r), e.projectErrorsReported.set(t, !0), r.length && e.diagnostics.set(t, r);
  }
  function Jge(e, t) {
    VC(e, t, [e.configFileCache.get(t)]);
  }
  function Kge(e, t) {
    if (!e.needsSummary)
      return;
    e.needsSummary = !1;
    const r = e.watch || !!e.host.reportErrorSummary, { diagnostics: i } = e;
    let o = 0, s = [];
    jx(t) ? (Xge(e, t.buildOrder), B8(e, t.circularDiagnostics), r && (o += uF(t.circularDiagnostics)), r && (s = [...s, ...dF(t.circularDiagnostics)])) : (t.forEach((l) => {
      const f = bp(e, l);
      e.projectErrorsReported.has(f) || B8(e, i.get(f) || rt);
    }), r && i.forEach((l) => o += uF(l)), r && i.forEach((l) => [...s, ...dF(l)])), e.watch ? wY(e, rY(o), o) : e.host.reportErrorSummary && e.host.reportErrorSummary(o, s);
  }
  function Xge(e, t) {
    e.options.verbose && Bu(e, _.Projects_in_this_build_Colon_0, t.map((r) => `\r
    * ` + Dl(e, r)).join(""));
  }
  function K7e(e, t, r) {
    switch (r.type) {
      case 6:
        return Bu(e, _.Project_0_is_out_of_date_because_output_1_is_older_than_input_2, Dl(e, t), Dl(e, r.outOfDateOutputFileName), Dl(e, r.newerInputFileName));
      case 7:
        return Bu(e, _.Project_0_is_out_of_date_because_output_1_is_older_than_input_2, Dl(e, t), Dl(e, r.outOfDateOutputFileName), Dl(e, r.newerProjectName));
      case 4:
        return Bu(e, _.Project_0_is_out_of_date_because_output_file_1_does_not_exist, Dl(e, t), Dl(e, r.missingOutputFileName));
      case 5:
        return Bu(e, _.Project_0_is_out_of_date_because_there_was_error_reading_file_1, Dl(e, t), Dl(e, r.fileName));
      case 8:
        return Bu(e, _.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted, Dl(e, t), Dl(e, r.buildInfoFile));
      case 9:
        return Bu(e, _.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions, Dl(e, t), Dl(e, r.buildInfoFile));
      case 10:
        return Bu(e, _.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more, Dl(e, t), Dl(e, r.buildInfoFile), Dl(e, r.inputFile));
      case 1:
        if (r.newestInputFileTime !== void 0)
          return Bu(e, _.Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2, Dl(e, t), Dl(e, r.newestInputFileName || ""), Dl(e, r.oldestOutputFileName || ""));
        break;
      case 3:
        return Bu(e, _.Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed, Dl(e, t), Dl(e, r.newerProjectName));
      case 2:
        return Bu(e, _.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies, Dl(e, t));
      case 15:
        return Bu(e, _.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files, Dl(e, t));
      case 11:
        return Bu(e, _.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date, Dl(e, t), Dl(e, r.upstreamProjectName));
      case 12:
        return Bu(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, Dl(e, t), Dl(e, r.upstreamProjectName));
      case 0:
        return Bu(e, _.Failed_to_parse_file_0_Colon_1, Dl(e, t), r.reason);
      case 14:
        return Bu(e, _.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2, Dl(e, t), r.version, De);
      case 17:
        return Bu(e, _.Project_0_is_being_forcibly_rebuilt, Dl(e, t));
    }
  }
  function bF(e, t, r) {
    e.options.verbose && K7e(e, t, r);
  }
  var Yge, $ge, DY, X7e = C({
    "src/compiler/tsbuildPublic.ts"() {
      wa(), wa(), c1(), Yge = /* @__PURE__ */ new Date(-864e13), $ge = /* @__PURE__ */ new Date(864e13), DY = /* @__PURE__ */ ((e) => (e[e.Build = 0] = "Build", e[e.UpdateBundle = 1] = "UpdateBundle", e[e.UpdateOutputFileStamps = 2] = "UpdateOutputFileStamps", e))(DY || {});
    }
  }), wa = C({
    "src/compiler/_namespaces/ts.ts"() {
      vt(), INe(), kNe(), GNe(), jNe(), HNe(), eOe(), Zse(), dOe(), vOe(), bOe(), AOe(), qOe(), d6e(), f6e(), _6e(), p6e(), C6e(), w6e(), D6e(), X6e(), IPe(), kPe(), UPe(), _4e(), H4e(), X4e(), Y4e(), sMe(), _Me(), TMe(), kMe(), jMe(), HMe(), WMe(), YMe(), $Me(), QMe(), ZMe(), e3e(), t3e(), n3e(), r3e(), i3e(), a3e(), o3e(), s3e(), c3e(), l3e(), d3e(), f3e(), _3e(), p3e(), m3e(), h3e(), T3e(), I3e(), G3e(), j3e(), K3e(), X3e(), Y3e(), d7e(), p7e(), h7e(), E7e(), x7e(), A7e(), X7e(), FK(), c1();
    }
  });
  function Qge(e, t) {
    return new R_(rR(t, `ts${me}`) || rR(t, "latest")).compareTo(e.version) <= 0;
  }
  function Zge(e) {
    return MY.has(e) ? "node" : e;
  }
  function Y7e(e, t) {
    const r = zO(t, (i) => e.readFile(i));
    return new Map(Object.entries(r.config));
  }
  function $7e(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 Q7e(e, t, r, i, o, s, l, f, d, y) {
    if (!l || !l.enable)
      return { cachedTypingPaths: [], newTypingNames: [], filesToWatch: [] };
    const h = /* @__PURE__ */ new Map();
    r = fa(r, (te) => {
      const X = Wo(te);
      if (_x(X))
        return X;
    });
    const b = [];
    l.include && B(l.include, "Explicitly included types");
    const A = l.exclude || [];
    if (!y.types) {
      const te = new Set(r.map(_i));
      te.add(i), te.forEach((X) => {
        V(X, "bower.json", "bower_components", b), V(X, "package.json", "node_modules", b);
      });
    }
    if (l.disableFilenameBasedTypeAcquisition || H(r), f) {
      const te = fA(f.map(Zge), FS, ku);
      B(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 && Qge(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: b };
    return t && t(`Result: ${JSON.stringify(O)}`), O;
    function k(te) {
      h.has(te) || h.set(te, void 0);
    }
    function B(te, X) {
      t && t(`${X}: ${JSON.stringify(te)}`), ze(te, k);
    }
    function V(te, X, Y, P) {
      const de = Pi(te, X);
      let ne, ye;
      e.fileExists(de) && (P.push(de), ne = zO(de, (pe) => e.readFile(pe)).config, ye = wo([ne.dependencies, ne.devDependencies, ne.optionalDependencies, ne.peerDependencies], $h), B(ye, `Typing names in '${de}' dependencies`));
      const ie = Pi(te, Y);
      if (P.push(ie), !e.directoryExists(ie))
        return;
      const W = [], ce = ye ? ye.map((pe) => Pi(ie, pe, X)) : e.readDirectory(ie, [".json"], void 0, void 0, 3).filter((pe) => {
        if (du(pe) !== X)
          return !1;
        const ve = ad(Wo(pe)), Te = ve[ve.length - 3][0] === "@";
        return Te && D_(ve[ve.length - 4]) === Y || !Te && D_(ve[ve.length - 3]) === Y;
      });
      t && t(`Searching for typing names in ${ie}; all files: ${JSON.stringify(ce)}`);
      for (const pe of ce) {
        const ve = Wo(pe), ee = zO(ve, (Ue) => e.readFile(Ue)).config;
        if (!ee.name)
          continue;
        const $e = ee.types || ee.typings;
        if ($e) {
          const Ue = Da($e, _i(ve));
          e.fileExists(Ue) ? (t && t(`    Package '${ee.name}' provides its own types.`), h.set(ee.name, Ue)) : t && t(`    Package '${ee.name}' provides its own types but they are missing.`);
        } else
          W.push(ee.name);
      }
      B(W, "    Found package names");
    }
    function H(te) {
      const X = fa(te, (P) => {
        if (!_x(P))
          return;
        const de = Md(D_(du(P))), ne = Ase(de);
        return o.get(ne);
      });
      X.length && B(X, "Inferred typings from file names"), kt(te, (P) => sl(P, ".jsx")) && (t && t("Inferred 'react' typings due to presence of '.jsx' extension"), k("react"));
    }
  }
  function Z7e(e) {
    return RY(e, !0);
  }
  function RY(e, t) {
    if (!e)
      return 1;
    if (e.length > BY)
      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 = RY(r[1], !1);
        if (i !== 0)
          return { name: r[1], isScopeName: !0, result: i };
        const o = RY(r[2], !1);
        return o !== 0 ? { name: r[2], isScopeName: !1, result: o } : 0;
      }
    }
    return encodeURIComponent(e) !== e ? 5 : 0;
  }
  function e5e(e, t) {
    return typeof e == "object" ? eye(t, e.result, e.name, e.isScopeName) : eye(t, e, t, !1);
  }
  function eye(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 ${BY} 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 NY, OY, PY, MY, FY, BY, t5e = C({
    "src/jsTyping/jsTyping.ts"() {
      EF(), NY = [
        "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"
      ], OY = NY.map((e) => `node:${e}`), PY = [...NY, ...OY], MY = new Set(PY), FY = /* @__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))(FY || {}), BY = 214;
    }
  }), jT = {};
  le(jT, {
    NameValidationResult: () => FY,
    discoverTypings: () => Q7e,
    isTypingUpToDate: () => Qge,
    loadSafeList: () => Y7e,
    loadTypesMap: () => $7e,
    nodeCoreModuleList: () => PY,
    nodeCoreModules: () => MY,
    nonRelativeModuleNameForTypingCache: () => Zge,
    prefixedNodeCoreModuleList: () => OY,
    renderPackageNameValidationFailure: () => e5e,
    validatePackageName: () => Z7e
  });
  var n5e = C({
    "src/jsTyping/_namespaces/ts.JsTyping.ts"() {
      t5e();
    }
  });
  function r5e(e) {
    return ql.args.indexOf(e) >= 0;
  }
  function i5e(e) {
    const t = ql.args.indexOf(e);
    return t >= 0 && t < ql.args.length - 1 ? ql.args[t + 1] : void 0;
  }
  function a5e() {
    const e = /* @__PURE__ */ new Date();
    return `${BS(e.getHours().toString(), 2, "0")}:${BS(e.getMinutes().toString(), 2, "0")}:${BS(e.getSeconds().toString(), 2, "0")}.${BS(e.getMilliseconds().toString(), 3, "0")}`;
  }
  var tye, nye, rye, iye, aye, oye, sye, GY, o5e = C({
    "src/jsTyping/shared.ts"() {
      EF(), tye = "action::set", nye = "action::invalidate", rye = "action::packageInstalled", iye = "event::typesRegistry", aye = "event::beginInstallTypes", oye = "event::endInstallTypes", sye = "event::initializationFailed", ((e) => {
        e.GlobalCacheLocation = "--globalTypingsCacheLocation", e.LogFile = "--logFile", e.EnableTelemetry = "--enableTelemetry", e.TypingSafeListLocation = "--typingSafeListLocation", e.TypesMapLocation = "--typesMapLocation", e.NpmLocation = "--npmLocation", e.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation";
      })(GY || (GY = {}));
    }
  }), s5e = C({
    "src/jsTyping/types.ts"() {
    }
  }), cye = {};
  le(cye, {
    ActionInvalidate: () => nye,
    ActionPackageInstalled: () => rye,
    ActionSet: () => tye,
    Arguments: () => GY,
    EventBeginInstallTypes: () => aye,
    EventEndInstallTypes: () => oye,
    EventInitializationFailed: () => sye,
    EventTypesRegistry: () => iye,
    findArgument: () => i5e,
    hasArgument: () => r5e,
    nowString: () => a5e
  });
  var c5e = C({
    "src/jsTyping/_namespaces/ts.server.ts"() {
      o5e(), s5e();
    }
  }), EF = C({
    "src/jsTyping/_namespaces/ts.ts"() {
      wa(), n5e(), c5e();
    }
  });
  function lye(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 UY, VY, jY, HY, rm, WY, zY, qY, JY, KY, XY, YY, uye, G8, $Y, QY, ZY, e$, t$, n$, r$, i$, a$, l5e = 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;
      })(UY || (UY = {})), VY = /* @__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))(VY || {}), jY = /* @__PURE__ */ ((e) => (e[e.Off = 0] = "Off", e[e.On = 1] = "On", e[e.Auto = 2] = "Auto", e))(jY || {}), HY = /* @__PURE__ */ ((e) => (e[e.Semantic = 0] = "Semantic", e[e.PartialSemantic = 1] = "PartialSemantic", e[e.Syntactic = 2] = "Syntactic", e))(HY || {}), rm = {}, WY = /* @__PURE__ */ ((e) => (e.Original = "original", e.TwentyTwenty = "2020", e))(WY || {}), zY = /* @__PURE__ */ ((e) => (e.All = "All", e.SortAndCombine = "SortAndCombine", e.RemoveUnused = "RemoveUnused", e))(zY || {}), qY = /* @__PURE__ */ ((e) => (e[e.Invoked = 1] = "Invoked", e[e.TriggerCharacter = 2] = "TriggerCharacter", e[e.TriggerForIncompleteCompletions = 3] = "TriggerForIncompleteCompletions", e))(qY || {}), JY = /* @__PURE__ */ ((e) => (e.Type = "Type", e.Parameter = "Parameter", e.Enum = "Enum", e))(JY || {}), KY = /* @__PURE__ */ ((e) => (e.none = "none", e.definition = "definition", e.reference = "reference", e.writtenReference = "writtenReference", e))(KY || {}), XY = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Block = 1] = "Block", e[e.Smart = 2] = "Smart", e))(XY || {}), YY = /* @__PURE__ */ ((e) => (e.Ignore = "ignore", e.Insert = "insert", e.Remove = "remove", e))(YY || {}), uye = lye(`
`), G8 = /* @__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))(G8 || {}), $Y = /* @__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))($Y || {}), QY = /* @__PURE__ */ ((e) => (e.Comment = "comment", e.Region = "region", e.Code = "code", e.Imports = "imports", e))(QY || {}), ZY = /* @__PURE__ */ ((e) => (e[e.JavaScript = 0] = "JavaScript", e[e.SourceMap = 1] = "SourceMap", e[e.Declaration = 2] = "Declaration", e))(ZY || {}), e$ = /* @__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))(e$ || {}), t$ = /* @__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))(t$ || {}), n$ = /* @__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))(n$ || {}), r$ = /* @__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))(r$ || {}), i$ = /* @__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))(i$ || {}), a$ = /* @__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))(a$ || {});
    }
  });
  function U8(e) {
    switch (e.kind) {
      case 257:
        return fr(e) && ZH(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 Du(e) || mg(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 = g$(e);
    const t = e.parent;
    return e.kind === 308 ? 1 : Mc(t) || cd(t) || jm(t) || xd(t) || Vm(t) || ru(t) && e === t.name ? 7 : TF(e) ? u5e(e) : lg(e) ? U8(t) : Zd(e) && rr(e, Am(Rk, YS, eb)) ? 7 : p5e(e) ? 2 : d5e(e) ? 4 : Pc(t) ? (D.assert(yp(t.parent)), 2) : Q0(t) ? 3 : 1;
  }
  function u5e(e) {
    const t = e.kind === 163 ? e : Sd(e.parent) && e.parent.right === e ? e.parent : void 0;
    return t && t.parent.kind === 268 ? 7 : 4;
  }
  function TF(e) {
    for (; e.parent.kind === 163; )
      e = e.parent;
    return BA(e.parent) && e.parent.moduleReference === e;
  }
  function d5e(e) {
    return f5e(e) || _5e(e);
  }
  function f5e(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 _5e(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 p5e(e) {
    switch (YI(e) && (e = e.parent), e.kind) {
      case 108:
        return !sg(e);
      case 194:
        return !0;
    }
    switch (e.parent.kind) {
      case 180:
        return !0;
      case 202:
        return !e.parent.isTypeOf;
      case 230:
        return mh(e.parent);
    }
    return !1;
  }
  function o$(e, t = !1, r = !1) {
    return aw(e, eo, SF, t, r);
  }
  function iw(e, t = !1, r = !1) {
    return aw(e, R1, SF, t, r);
  }
  function s$(e, t = !1, r = !1) {
    return aw(e, ig, SF, t, r);
  }
  function dye(e, t = !1, r = !1) {
    return aw(e, AT, m5e, t, r);
  }
  function fye(e, t = !1, r = !1) {
    return aw(e, Nu, SF, t, r);
  }
  function _ye(e, t = !1, r = !1) {
    return aw(e, Ku, h5e, t, r);
  }
  function SF(e) {
    return e.expression;
  }
  function m5e(e) {
    return e.tag;
  }
  function h5e(e) {
    return e.tagName;
  }
  function aw(e, t, r, i, o) {
    let s = i ? pye(e) : xF(e);
    return o && (s = hu(s)), !!s && !!s.parent && t(s.parent) && r(s.parent) === s;
  }
  function xF(e) {
    return jC(e) ? e.parent : e;
  }
  function pye(e) {
    return jC(e) || d$(e) ? e.parent : e;
  }
  function AF(e, t) {
    for (; e; ) {
      if (e.kind === 253 && e.label.escapedText === t)
        return e.label;
      e = e.parent;
    }
  }
  function V8(e, t) {
    return Mr(e.expression) ? e.expression.name.text === t : !1;
  }
  function j8(e) {
    var t;
    return Ve(e) && ((t = ii(e.parent, EI)) == null ? void 0 : t.label) === e;
  }
  function c$(e) {
    var t;
    return Ve(e) && ((t = ii(e.parent, N1)) == null ? void 0 : t.label) === e;
  }
  function l$(e) {
    return c$(e) || j8(e);
  }
  function u$(e) {
    var t;
    return ((t = ii(e.parent, CI)) == null ? void 0 : t.tagName) === e;
  }
  function mye(e) {
    var t;
    return ((t = ii(e.parent, Sd)) == null ? void 0 : t.right) === e;
  }
  function jC(e) {
    var t;
    return ((t = ii(e.parent, Mr)) == null ? void 0 : t.name) === e;
  }
  function d$(e) {
    var t;
    return ((t = ii(e.parent, cc)) == null ? void 0 : t.argumentExpression) === e;
  }
  function f$(e) {
    var t;
    return ((t = ii(e.parent, Wc)) == null ? void 0 : t.name) === e;
  }
  function _$(e) {
    var t;
    return Ve(e) && ((t = ii(e.parent, qa)) == null ? void 0 : t.name) === e;
  }
  function CF(e) {
    switch (e.parent.kind) {
      case 169:
      case 168:
      case 299:
      case 302:
      case 171:
      case 170:
      case 174:
      case 175:
      case 264:
        return Aa(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 hye(e) {
    return j0(e.parent.parent) && MI(e.parent.parent) === e;
  }
  function WT(e) {
    for (f_(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 q1(e) {
    switch (e.kind) {
      case 308:
        return Yc(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(Om(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 qa(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 Kr(e, 16476) ? "property" : "parameter";
      case 268:
      case 273:
      case 278:
      case 271:
      case 277:
        return "alias";
      case 223:
        const i = Ac(e), { right: o } = e;
        switch (i) {
          case 7:
          case 8:
          case 9:
          case 0:
            return "";
          case 1:
          case 2:
            const l = q1(o);
            return l === "" ? "const" : l;
          case 3:
            return Ps(o) ? "method" : "property";
          case 4:
            return "property";
          case 5:
            return Ps(o) ? "method" : "property";
          case 6:
            return "local class";
          default:
            return "";
        }
      case 79:
        return Vm(e.parent) ? "alias" : "";
      case 274:
        const s = q1(e.expression);
        return s === "" ? "const" : s;
      default:
        return "";
    }
    function t(r) {
      return og(r) ? "const" : RI(r) ? "let" : "var";
    }
  }
  function HC(e) {
    switch (e.kind) {
      case 108:
        return !0;
      case 79:
        return kz(e) && e.parent.kind === 166;
      default:
        return !1;
    }
  }
  function v_(e, t) {
    const r = eg(t), i = t.getLineAndCharacterOfPosition(e).line;
    return r[i];
  }
  function sf(e, t) {
    return p$(e.pos, e.end, t);
  }
  function gye(e, t) {
    return W8(e, t.pos) && W8(e, t.end);
  }
  function H8(e, t) {
    return e.pos <= t && t <= e.end;
  }
  function W8(e, t) {
    return e.pos < t && t < e.end;
  }
  function p$(e, t, r) {
    return e <= r.pos && t >= r.end;
  }
  function z8(e, t, r) {
    return e.pos <= t && e.end >= r;
  }
  function ow(e, t, r) {
    return LF(e.pos, e.end, t, r);
  }
  function m$(e, t, r, i) {
    return LF(e.getStart(t), e.end, r, i);
  }
  function LF(e, t, r, i) {
    const o = Math.max(e, r), s = Math.min(t, i);
    return o < s;
  }
  function h$(e, t, r) {
    return D.assert(e.pos <= t), t < e.end || !K_(e, r);
  }
  function K_(e, t) {
    if (e === void 0 || xc(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 IF(e, 19, t);
      case 295:
        return K_(e.block, t);
      case 211:
        if (!e.arguments)
          return !0;
      case 210:
      case 214:
      case 193:
        return IF(e, 21, t);
      case 181:
      case 182:
        return K_(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 ? K_(e.body, t) : e.type ? K_(e.type, t) : q8(e, 21, t);
      case 264:
        return !!e.body && K_(e.body, t);
      case 242:
        return e.elseStatement ? K_(e.elseStatement, t) : K_(e.thenStatement, t);
      case 241:
        return K_(e.expression, t) || q8(e, 26, t);
      case 206:
      case 204:
      case 209:
      case 164:
      case 186:
        return IF(e, 23, t);
      case 178:
        return e.type ? K_(e.type, t) : q8(e, 23, t);
      case 292:
      case 293:
        return !1;
      case 245:
      case 246:
      case 247:
      case 244:
        return K_(e.statement, t);
      case 243:
        return q8(e, 115, t) ? IF(e, 21, t) : K_(e.statement, t);
      case 183:
        return K_(e.exprName, t);
      case 218:
      case 217:
      case 219:
      case 226:
      case 227:
        return K_(e.expression, t);
      case 212:
        return K_(e.template, t);
      case 225:
        const i = ec(e.templateSpans);
        return K_(i, t);
      case 236:
        return u_(e.literal);
      case 275:
      case 269:
        return u_(e.moduleSpecifier);
      case 221:
        return K_(e.operand, t);
      case 223:
        return K_(e.right, t);
      case 224:
        return K_(e.whenFalse, t);
      default:
        return !0;
    }
  }
  function IF(e, t, r) {
    const i = e.getChildren(r);
    if (i.length) {
      const o = Ho(i);
      if (o.kind === t)
        return !0;
      if (o.kind === 26 && i.length !== 1)
        return i[i.length - 2].kind === t;
    }
    return !1;
  }
  function yye(e) {
    const t = kF(e);
    if (!t)
      return;
    const r = t.getChildren();
    return {
      listItemIndex: wA(r, e),
      list: t
    };
  }
  function q8(e, t, r) {
    return !!gs(e, t, r);
  }
  function gs(e, t, r) {
    return cn(e.getChildren(r), (i) => i.kind === t);
  }
  function kF(e) {
    const t = cn(e.parent.getChildren(), (r) => AC(r) && sf(r, e));
    return D.assert(!t || wi(t.getChildren(), e)), t;
  }
  function vye(e) {
    return e.kind === 88;
  }
  function g5e(e) {
    return e.kind === 84;
  }
  function y5e(e) {
    return e.kind === 98;
  }
  function v5e(e) {
    if (_u(e))
      return e.name;
    if (wl(e)) {
      const t = e.modifiers && cn(e.modifiers, vye);
      if (t)
        return t;
    }
    if (Pu(e)) {
      const t = cn(e.getChildren(), g5e);
      if (t)
        return t;
    }
  }
  function b5e(e) {
    if (_u(e))
      return e.name;
    if (ml(e)) {
      const t = cn(e.modifiers, vye);
      if (t)
        return t;
    }
    if (Ps(e)) {
      const t = cn(e.getChildren(), y5e);
      if (t)
        return t;
    }
  }
  function E5e(e) {
    let t;
    return rr(e, (r) => (Mi(r) && (t = r), !Sd(r.parent) && !Mi(r.parent) && !rT(r.parent))), t;
  }
  function wF(e, t) {
    if (e.flags & 8388608)
      return;
    const r = XF(e, t);
    if (r)
      return r;
    const i = E5e(e);
    return i && t.getTypeAtLocation(i);
  }
  function T5e(e, t) {
    if (!t)
      switch (e.kind) {
        case 260:
        case 228:
          return v5e(e);
        case 259:
        case 215:
          return b5e(e);
        case 173:
          return e;
      }
    if (_u(e))
      return e.name;
  }
  function bye(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 (Ey(e.importClause.namedBindings)) {
          const r = Tm(e.importClause.namedBindings.elements);
          return r ? r.name : void 0;
        } else if (Pv(e.importClause.namedBindings))
          return e.importClause.namedBindings.name;
      }
    }
    if (!t)
      return e.moduleSpecifier;
  }
  function Eye(e, t) {
    if (e.exportClause) {
      if (z_(e.exportClause))
        return Tm(e.exportClause.elements) ? e.exportClause.elements[0].name : void 0;
      if (Ah(e.exportClause))
        return e.exportClause.name;
    }
    if (!t)
      return e.moduleSpecifier;
  }
  function S5e(e) {
    if (e.types.length === 1)
      return e.types[0].expression;
  }
  function Tye(e, t) {
    const { parent: r } = e;
    if (lo(e) && (t || e.kind !== 88) ? q_(r) && wi(r.modifiers, e) : e.kind === 84 ? wl(r) || Pu(e) : e.kind === 98 ? ml(r) || Ps(e) : e.kind === 118 ? Qu(r) : e.kind === 92 ? Z0(r) : e.kind === 154 ? Qp(r) : e.kind === 143 || e.kind === 142 ? Wc(r) : e.kind === 100 ? ru(r) : e.kind === 137 ? H_(r) : e.kind === 151 && Yf(r)) {
      const i = T5e(r, t);
      if (i)
        return i;
    }
    if ((e.kind === 113 || e.kind === 85 || e.kind === 119) && Mu(r) && r.declarations.length === 1) {
      const i = r.declarations[0];
      if (Ve(i.name))
        return i.name;
    }
    if (e.kind === 154) {
      if (Vm(r) && r.isTypeOnly) {
        const i = bye(r.parent, t);
        if (i)
          return i;
      }
      if (Xl(r) && r.isTypeOnly) {
        const i = Eye(r, t);
        if (i)
          return i;
      }
    }
    if (e.kind === 128) {
      if (xd(r) && r.propertyName || cd(r) && r.propertyName || Pv(r) || Ah(r))
        return r.name;
      if (Xl(r) && r.exportClause && Ah(r.exportClause))
        return r.exportClause.name;
    }
    if (e.kind === 100 && Ul(r)) {
      const i = bye(r, t);
      if (i)
        return i;
    }
    if (e.kind === 93) {
      if (Xl(r)) {
        const i = Eye(r, t);
        if (i)
          return i;
      }
      if (Mc(r))
        return hu(r.expression);
    }
    if (e.kind === 147 && jm(r))
      return r.expression;
    if (e.kind === 158 && (Ul(r) || Xl(r)) && r.moduleSpecifier)
      return r.moduleSpecifier;
    if ((e.kind === 94 || e.kind === 117) && Bd(r) && r.token === e.kind) {
      const i = S5e(r);
      if (i)
        return i;
    }
    if (e.kind === 94) {
      if (Pc(r) && r.constraint && W_(r.constraint))
        return r.constraint.typeName;
      if (mC(r) && W_(r.extendsType))
        return r.extendsType.typeName;
    }
    if (e.kind === 138 && hC(r))
      return r.typeParameter.name;
    if (e.kind === 101 && Pc(r) && Ck(r.parent))
      return r.name;
    if (e.kind === 141 && xx(r) && r.operator === 141 && W_(r.type))
      return r.type.typeName;
    if (e.kind === 146 && xx(r) && r.operator === 146 && rJ(r.type) && W_(r.type.elementType))
      return r.type.elementType.typeName;
    if (!t) {
      if ((e.kind === 103 && R1(r) || e.kind === 114 && Cx(r) || e.kind === 112 && yC(r) || e.kind === 133 && vC(r) || e.kind === 125 && w7(r) || e.kind === 89 && Pfe(r)) && r.expression)
        return hu(r.expression);
      if ((e.kind === 101 || e.kind === 102) && br(r) && r.operatorToken === e)
        return hu(r.right);
      if (e.kind === 128 && xO(r) && W_(r.type))
        return r.type.typeName;
      if (e.kind === 101 && cJ(r) || e.kind === 162 && AO(r))
        return hu(r.expression);
    }
    return e;
  }
  function g$(e) {
    return Tye(e, !1);
  }
  function DF(e) {
    return Tye(e, !0);
  }
  function Lf(e, t) {
    return sw(e, t, (r) => F_(r) || Td(r.kind) || Di(r));
  }
  function sw(e, t, r) {
    return Sye(e, t, !1, r, !1);
  }
  function ia(e, t) {
    return Sye(e, t, !0, void 0, !1);
  }
  function Sye(e, t, r, i, o) {
    let s = e, l;
    e:
      for (; ; ) {
        const d = s.getChildren(e), y = OS(d, t, (h, b) => b, (h, b) => {
          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 (l)
          return l;
        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 b = Sl(t, e, d);
        if (b && i(b))
          return l = b, !0;
      }
      return !1;
    }
  }
  function xye(e, t) {
    let r = ia(e, t);
    for (; J8(r); ) {
      const i = zT(r, r.parent, e);
      if (!i)
        return;
      r = i;
    }
    return r;
  }
  function RF(e, t) {
    const r = ia(e, t);
    return zS(r) && t > r.getStart(e) && t < r.getEnd() ? r : Sl(t, e);
  }
  function zT(e, t, r) {
    return i(t);
    function i(o) {
      return zS(o) && o.pos === e.end ? o : sn(o.getChildren(r), (s) => (s.pos <= e.pos && s.end > e.end || s.pos === e.end) && S$(s, r) ? i(s) : void 0);
    }
  }
  function Sl(e, t, r, i) {
    const o = s(r || t);
    return D.assert(!(o && J8(o))), o;
    function s(l) {
      if (Aye(l) && l.kind !== 1)
        return l;
      const f = l.getChildren(t), d = OS(f, e, (h, b) => b, (h, b) => 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 || !S$(h, t) || J8(h)) {
            const L = v$(f, d, t, l.kind);
            return L && y$(L, t);
          } else
            return s(h);
      }
      D.assert(r !== void 0 || l.kind === 308 || l.kind === 1 || bW(l));
      const y = v$(f, f.length, t, l.kind);
      return y && y$(y, t);
    }
  }
  function Aye(e) {
    return zS(e) && !J8(e);
  }
  function y$(e, t) {
    if (Aye(e))
      return e;
    const r = e.getChildren(t);
    if (r.length === 0)
      return e;
    const i = v$(r, r.length, t, e.kind);
    return i && y$(i, t);
  }
  function v$(e, t, r, i) {
    for (let o = t - 1; o >= 0; o--) {
      const s = e[o];
      if (J8(s))
        o === 0 && (i === 11 || i === 282) && D.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
      else if (S$(e[o], r))
        return e[o];
    }
  }
  function qT(e, t, r = Sl(t, e)) {
    if (r && lW(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 Cye(e, t) {
    const r = ia(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 J8(e) {
    return yx(e) && e.containsOnlyTriviaWhiteSpaces;
  }
  function b$(e, t) {
    const r = ia(e, t);
    return Tv(r.kind) && t > r.getStart(e);
  }
  function Lye(e, t) {
    const r = ia(e, t);
    return !!(yx(r) || r.kind === 18 && wk(r.parent) && Ty(r.parent.parent) || r.kind === 29 && Ku(r.parent) && Ty(r.parent.parent));
  }
  function NF(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(ia(e, t));
  }
  function OF(e, t, r) {
    const i = ho(e.kind), o = ho(t), s = e.getFullStart(), l = r.text.lastIndexOf(o, s);
    if (l === -1)
      return;
    if (r.text.lastIndexOf(i, s - 1) < l) {
      const y = Sl(l + 1, r);
      if (y && y.kind === t)
        return y;
    }
    const f = e.kind;
    let d = 0;
    for (; ; ) {
      const y = Sl(e.getFullStart(), r);
      if (!y)
        return;
      if (e = y, e.kind === t) {
        if (d === 0)
          return e;
        d--;
      } else
        e.kind === f && d++;
    }
  }
  function Iye(e, t, r) {
    return t ? e.getNonNullableType() : r ? e.getNonOptionalType() : e;
  }
  function K8(e, t, r) {
    const i = T$(e, t);
    return i !== void 0 && (mh(i.called) || E$(i.called, i.nTypeArguments, r).length !== 0 || K8(i.called, t, r));
  }
  function E$(e, t, r) {
    let i = r.getTypeAtLocation(e);
    return pu(e.parent) && (i = Iye(i, vI(e.parent), !0)), (R1(e.parent) ? i.getConstructSignatures() : i.getCallSignatures()).filter((s) => !!s.typeParameters && s.typeParameters.length >= t);
  }
  function T$(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 = Sl(r.getFullStart(), t), r && r.kind === 28 && (r = Sl(r.getFullStart(), t)), !r || !Ve(r))
            return;
          if (!i)
            return lg(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 = OF(r, 18, t), !r)
            return;
          break;
        case 21:
          if (r = OF(r, 20, t), !r)
            return;
          break;
        case 23:
          if (r = OF(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 (Mi(r))
            break;
          return;
      }
      r = Sl(r.getFullStart(), t);
    }
  }
  function Cy(e, t, r) {
    return xl.getRangeOfEnclosingComment(e, t, void 0, r);
  }
  function kye(e, t) {
    const r = ia(e, t);
    return !!rr(r, Hm);
  }
  function S$(e, t) {
    return e.kind === 1 ? !!e.jsDoc : e.getWidth(t) !== 0;
  }
  function cw(e, t = 0) {
    const r = [], i = mu(e) ? KH(e) & ~t : 0;
    return i & 8 && r.push("private"), i & 16 && r.push("protected"), i & 4 && r.push("public"), (i & 32 || Lc(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 (qa(e) || e.kind === 260 || e.kind === 261)
      return e.typeParameters;
  }
  function PF(e) {
    return e === 2 || e === 3;
  }
  function x$(e) {
    return !!(e === 10 || e === 13 || Tv(e));
  }
  function Dye(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 Rye(e) {
    return 18 <= e && e <= 78;
  }
  function X8(e, t, r) {
    return Tv(e.kind) && e.getStart(r) < t && t < e.end || !!e.isUnterminated && t === e.end;
  }
  function A$(e) {
    switch (e) {
      case 123:
      case 121:
      case 122:
        return !0;
    }
    return !1;
  }
  function Nye(e) {
    const t = _j(e);
    return YJ(t, e && e.configFile), t;
  }
  function Ly(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 || Ly(e.parent.kind === 299 ? e.parent.parent : e.parent)));
  }
  function Oye(e, t) {
    return Mye(e, t, !0);
  }
  function Pye(e, t) {
    return Mye(e, t, !1);
  }
  function Mye(e, t, r) {
    const i = Cy(e, t, void 0);
    return !!i && r === gve.test(e.text.substring(i.pos, i.end));
  }
  function C$(e) {
    if (e)
      switch (e.kind) {
        case 10:
        case 14:
          return L$(e);
        default:
          return Zu(e);
      }
  }
  function Zu(e, t, r) {
    return _l(e.getStart(t), (r || e).getEnd());
  }
  function L$(e) {
    if (!e.isUnterminated)
      return _l(e.getStart() + 1, e.getEnd() - 1);
  }
  function I$(e, t) {
    return __(e.getStart(t), e.end);
  }
  function jv(e) {
    return _l(e.pos, e.end);
  }
  function MF(e) {
    return __(e.start, e.start + e.length);
  }
  function FF(e, t, r) {
    return Y8(Ll(e, t), r);
  }
  function Y8(e, t) {
    return { span: e, newText: t };
  }
  function lw(e) {
    return wi(d9, e);
  }
  function k$(e) {
    return e.kind === 154;
  }
  function BF(e) {
    return k$(e) || Ve(e) && e.text === "type";
  }
  function $8(e) {
    return !!(e.flags & 1536) && e.name.charCodeAt(0) === 34;
  }
  function WC() {
    const e = [];
    return (t) => {
      const r = ds(t);
      return !e[r] && (e[r] = !0);
    };
  }
  function GF(e) {
    return e.getText(0, e.getLength());
  }
  function Q8(e, t) {
    let r = "";
    for (let i = 0; i < t; i++)
      r += e;
    return r;
  }
  function w$(e) {
    return e.isTypeParameter() && e.getConstraint() || e;
  }
  function Z8(e) {
    return e.kind === 164 ? zf(e.expression) ? e.expression.text : void 0 : Di(e) ? Pr(e) : B_(e);
  }
  function Fye(e) {
    return e.getSourceFiles().some((t) => !t.isDeclarationFile && !e.isSourceFileFromExternalLibrary(t) && !!(t.externalModuleIndicator || t.commonJsModuleIndicator));
  }
  function Bye(e) {
    return e.getSourceFiles().some((t) => !t.isDeclarationFile && !e.isSourceFileFromExternalLibrary(t) && !!t.externalModuleIndicator);
  }
  function D$(e) {
    return !!e.module || $o(e) >= 2 || !!e.noEmit;
  }
  function Hx(e, t) {
    return {
      fileExists: (r) => e.fileExists(r),
      getCurrentDirectory: () => t.getCurrentDirectory(),
      readFile: Fo(t, t.readFile),
      useCaseSensitiveFileNames: Fo(t, t.useCaseSensitiveFileNames),
      getSymlinkCache: Fo(t, t.getSymlinkCache) || e.getSymlinkCache,
      getModuleSpecifierCache: Fo(t, t.getModuleSpecifierCache),
      getPackageJsonInfoCache: () => {
        var r;
        return (r = e.getModuleResolutionCache()) == null ? void 0 : r.getPackageJsonInfoCache();
      },
      getGlobalTypingsCacheLocation: Fo(t, t.getGlobalTypingsCacheLocation),
      redirectTargetsMap: e.redirectTargetsMap,
      getProjectReferenceRedirect: (r) => e.getProjectReferenceRedirect(r),
      isSourceOfProjectReferenceRedirect: (r) => e.isSourceOfProjectReferenceRedirect(r),
      getNearestAncestorDirectoryWithPackageJson: Fo(t, t.getNearestAncestorDirectoryWithPackageJson),
      getFileIncludeReasons: () => e.getFileIncludeReasons()
    };
  }
  function R$(e, t) {
    return {
      ...Hx(e, t),
      getCommonSourceDirectory: () => e.getCommonSourceDirectory()
    };
  }
  function UF(e) {
    return e === 2 || e >= 3 && e <= 99 || e === 100;
  }
  function Gye(e, t, r, i) {
    return e || t && t.length ? Iy(e, t, r, i) : void 0;
  }
  function Iy(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" ? VF(r, i) : r, void 0);
  }
  function VF(e, t) {
    return N.createStringLiteral(e, t === 0);
  }
  function N$(e, t) {
    return a3(e, t) ? 1 : 0;
  }
  function Ep(e, t) {
    if (t.quotePreference && t.quotePreference !== "auto")
      return t.quotePreference === "single" ? 0 : 1;
    {
      const r = e.imports && cn(e.imports, (i) => Go(i) && !Ys(i.parent));
      return r ? N$(r, e) : 1;
    }
  }
  function Uye(e) {
    switch (e) {
      case 0:
        return "'";
      case 1:
        return '"';
      default:
        return D.assertNever(e);
    }
  }
  function jF(e) {
    const t = HF(e);
    return t === void 0 ? void 0 : ta(t);
  }
  function HF(e) {
    return e.escapedName !== "default" ? e.escapedName : sn(e.declarations, (t) => {
      const r = Aa(t);
      return r && r.kind === 79 ? r.escapedText : void 0;
    });
  }
  function WF(e) {
    return Es(e) && (jm(e.parent) || Ul(e.parent) || Ed(e.parent, !1) && e.parent.arguments[0] === e || rf(e.parent) && e.parent.arguments[0] === e);
  }
  function e6(e) {
    return us(e) && Um(e.parent) && Ve(e.name) && !e.propertyName;
  }
  function zF(e, t) {
    const r = e.getTypeAtLocation(t.parent);
    return r && e.getPropertyOfType(r, t.name.text);
  }
  function t6(e, t, r) {
    if (e)
      for (; e.parent; ) {
        if (Hi(e.parent) || !x5e(r, e.parent, t))
          return e;
        e = e.parent;
      }
  }
  function x5e(e, t, r) {
    return qH(e, t.getStart(r)) && t.getEnd() <= eu(e);
  }
  function zC(e, t) {
    return q_(e) ? cn(e.modifiers, (r) => r.kind === t) : void 0;
  }
  function qF(e, t, r, i, o) {
    const l = (Ba(r) ? r[0] : r).kind === 240 ? nz : cT, f = yn(t.statements, l);
    let d = Ba(r) ? X_.detectImportDeclarationSorting(r, o) : 3;
    const y = X_.getOrganizeImportsComparer(o, d === 2), h = Ba(r) ? iy(r, (b, A) => X_.compareImportsOrRequireStatements(b, A, y)) : [r];
    if (!f.length)
      e.insertNodesAtTopOfFile(t, h, i);
    else if (f && (d = X_.detectImportDeclarationSorting(f, o))) {
      const b = X_.getOrganizeImportsComparer(o, d === 2);
      for (const A of h) {
        const L = X_.getImportDeclarationInsertionIndex(f, A, b);
        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 b = ec(f);
      b ? e.insertNodesAfter(t, b, h) : e.insertNodesAtTopOfFile(t, h, i);
    }
  }
  function O$(e, t) {
    return D.assert(e.isTypeOnly), ro(e.getChildAt(0, t), k$);
  }
  function qC(e, t) {
    return !!e && !!t && e.start === t.start && e.length === t.length;
  }
  function A5e(e, t) {
    return e.fileName === t.fileName && qC(e.textSpan, t.textSpan);
  }
  function P$(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 Vye(e, t, r) {
    for (let i = t; i < r; i++)
      if (!tg(e.charCodeAt(i)))
        return !1;
    return !0;
  }
  function n6(e, t, r) {
    const i = t.tryGetSourcePosition(e);
    return i && (!r || r(Wo(i.fileName)) ? i : void 0);
  }
  function M$(e, t, r) {
    const { fileName: i, textSpan: o } = e, s = n6({ fileName: i, pos: o.start }, t, r);
    if (!s)
      return;
    const l = n6({ fileName: i, pos: o.start + o.length }, t, r), f = l ? l.pos - s.pos : o.length;
    return {
      fileName: s.fileName,
      textSpan: {
        start: s.pos,
        length: f
      },
      originalFileName: e.fileName,
      originalTextSpan: e.textSpan,
      contextSpan: jye(e, t, r),
      originalContextSpan: e.contextSpan
    };
  }
  function jye(e, t, r) {
    const i = e.contextSpan && n6({ fileName: e.fileName, pos: e.contextSpan.start }, t, r), o = e.contextSpan && n6({ 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 F$(e) {
    const t = e.declarations ? zl(e.declarations) : void 0;
    return !!rr(t, (r) => Oa(r) ? !0 : us(r) || Um(r) || gC(r) ? !1 : "quit");
  }
  function C5e() {
    const e = aO * 10;
    let t, r, i, o;
    h();
    const s = (b) => f(b, 17);
    return {
      displayParts: () => {
        const b = t.length && t[t.length - 1].text;
        return o > e && b && b !== "..." && (tg(b.charCodeAt(b.length - 1)) || t.push(Ad(" ", 16)), t.push(Ad("...", 15))), t;
      },
      writeKeyword: (b) => f(b, 5),
      writeOperator: (b) => f(b, 12),
      writePunctuation: (b) => f(b, 15),
      writeTrailingSemicolon: (b) => f(b, 15),
      writeSpace: (b) => f(b, 16),
      writeStringLiteral: (b) => f(b, 8),
      writeParameter: (b) => f(b, 13),
      writeProperty: (b) => f(b, 14),
      writeLiteral: (b) => f(b, 8),
      writeSymbol: d,
      writeLine: y,
      write: s,
      writeComment: s,
      getText: () => "",
      getTextPos: () => 0,
      getColumn: () => 0,
      getLine: () => 0,
      isAtStartOfLine: () => !1,
      hasTrailingWhitespace: () => !1,
      hasTrailingComment: () => !1,
      rawWrite: Va,
      getIndent: () => i,
      increaseIndent: () => {
        i++;
      },
      decreaseIndent: () => {
        i--;
      },
      clear: h
    };
    function l() {
      if (!(o > e) && r) {
        const b = h3(i);
        b && (o += b.length, t.push(Ad(b, 16))), r = !1;
      }
    }
    function f(b, A) {
      o > e || (l(), o += b.length, t.push(Ad(b, A)));
    }
    function d(b, A) {
      o > e || (l(), o += b.length, t.push(Hye(b, A)));
    }
    function y() {
      o > e || (o += 1, t.push(JC()), r = !0);
    }
    function h() {
      t = [], r = !0, i = 0, o = 0;
    }
  }
  function Hye(e, t) {
    return Ad(e, r(t));
    function r(i) {
      const o = i.flags;
      return o & 3 ? F$(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 Ad(e, t) {
    return { text: e, kind: G8[t] };
  }
  function vc() {
    return Ad(" ", 16);
  }
  function Ud(e) {
    return Ad(ho(e), 5);
  }
  function yu(e) {
    return Ad(ho(e), 15);
  }
  function uw(e) {
    return Ad(ho(e), 12);
  }
  function Wye(e) {
    return Ad(e, 13);
  }
  function zye(e) {
    return Ad(e, 14);
  }
  function B$(e) {
    const t = ZE(e);
    return t === void 0 ? If(e) : Ud(t);
  }
  function If(e) {
    return Ad(e, 17);
  }
  function qye(e) {
    return Ad(e, 0);
  }
  function Jye(e) {
    return Ad(e, 18);
  }
  function JF(e) {
    return Ad(e, 24);
  }
  function Kye(e, t) {
    return {
      text: e,
      kind: G8[23],
      target: {
        fileName: er(t).fileName,
        textSpan: Zu(t)
      }
    };
  }
  function G$(e) {
    return Ad(e, 22);
  }
  function Xye(e, t) {
    var r;
    const i = jfe(e) ? "link" : Hfe(e) ? "linkcode" : "linkplain", o = [G$(`{@${i} `)];
    if (!e.name)
      e.text && o.push(JF(e.text));
    else {
      const s = t == null ? void 0 : t.getSymbolAtLocation(e.name), l = I5e(e.text), f = El(e.name) + e.text.slice(0, l), d = L5e(e.text.slice(l)), y = (s == null ? void 0 : s.valueDeclaration) || ((r = s == null ? void 0 : s.declarations) == null ? void 0 : r[0]);
      y ? (o.push(Kye(f, y)), d && o.push(JF(d))) : o.push(JF(f + (l ? "" : " ") + d));
    }
    return o.push(G$("}")), o;
  }
  function L5e(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 I5e(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 rb(e, t) {
    var r;
    return (t == null ? void 0 : t.newLineCharacter) || ((r = e.getNewLine) == null ? void 0 : r.call(e)) || yve;
  }
  function JC() {
    return Ad(`
`, 6);
  }
  function Hv(e) {
    try {
      return e(f9), f9.displayParts();
    } finally {
      f9.clear();
    }
  }
  function r6(e, t, r, i = 0) {
    return Hv((o) => {
      e.writeType(t, r, i | 1024 | 16384, o);
    });
  }
  function dw(e, t, r, i, o = 0) {
    return Hv((s) => {
      e.writeSymbol(t, r, i, o | 8, s);
    });
  }
  function U$(e, t, r, i = 0) {
    return i |= 25632, Hv((o) => {
      e.writeSignature(t, r, i, void 0, o);
    });
  }
  function k5e(e, t) {
    const r = t.getSourceFile();
    return Hv((i) => {
      x8().writeNode(4, e, r, i);
    });
  }
  function Yye(e) {
    return !!e.parent && qS(e.parent) && e.parent.propertyName === e;
  }
  function V$(e, t) {
    return O3(e, t.getScriptKind && t.getScriptKind(e));
  }
  function $ye(e, t) {
    let r = e;
    for (; w5e(r) || Dm(r) && r.links.target; )
      Dm(r) && r.links.target ? r = r.links.target : r = af(r, t);
    return r;
  }
  function w5e(e) {
    return (e.flags & 2097152) !== 0;
  }
  function Qye(e, t) {
    return yo(af(e, t));
  }
  function Zye(e, t) {
    for (; tg(e.charCodeAt(t)); )
      t += 1;
    return t;
  }
  function j$(e, t) {
    for (; t > -1 && Im(e.charCodeAt(t)); )
      t -= 1;
    return t + 1;
  }
  function kc(e, t = !0) {
    const r = e && eve(e);
    return r && !t && Vd(r), r;
  }
  function i6(e, t, r) {
    let i = r(e);
    return i ? jr(i, e) : i = eve(e, r), i && !t && Vd(i), i;
  }
  function eve(e, t) {
    const r = t ? (s) => i6(s, !0, t) : kc, o = Gn(e, r, hg, t ? (s) => s && H$(s, !0, t) : (s) => s && J1(s), r);
    if (o === e) {
      const s = Go(e) ? jr(N.createStringLiteralFromNode(e), e) : h_(e) ? jr(N.createNumericLiteral(e.text, e.numericLiteralFlags), e) : N.cloneNode(e);
      return mt(s, e);
    }
    return o.parent = void 0, o;
  }
  function J1(e, t = !0) {
    return e && N.createNodeArray(e.map((r) => kc(r, t)), e.hasTrailingComma);
  }
  function H$(e, t, r) {
    return N.createNodeArray(e.map((i) => i6(i, t, r)), e.hasTrailingComma);
  }
  function Vd(e) {
    KF(e), tve(e);
  }
  function KF(e) {
    W$(e, 1024, R5e);
  }
  function tve(e) {
    W$(e, 2048, Wz);
  }
  function JT(e, t) {
    const r = e.getSourceFile(), i = r.text;
    D5e(e, i) ? KC(e, t, r) : o6(e, t, r), fw(e, t, r);
  }
  function D5e(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 W$(e, t, r) {
    $p(e, t);
    const i = r(e);
    i && W$(i, t, r);
  }
  function R5e(e) {
    return e.forEachChild((t) => t);
  }
  function KT(e, t) {
    let r = e;
    for (let i = 1; !PM(t, r); i++)
      r = `${e}_${i}`;
    return r;
  }
  function a6(e, t, r, i) {
    let o = 0, s = -1;
    for (const { fileName: l, textChanges: f } of e) {
      D.assert(l === t);
      for (const d of f) {
        const { span: y, newText: h } = d, b = N5e(h, ax(r));
        if (b !== -1 && (s = y.start + o + b, !i))
          return s;
        o += h.length - y.length;
      }
    }
    return D.assert(i), D.assert(s >= 0), s;
  }
  function KC(e, t, r, i, o) {
    DR(r.text, e.pos, z$(t, r, i, o, pO));
  }
  function fw(e, t, r, i, o) {
    RR(r.text, e.end, z$(t, r, i, o, Y3));
  }
  function o6(e, t, r, i, o) {
    RR(r.text, e.pos, z$(t, r, i, o, pO));
  }
  function z$(e, t, r, i, o) {
    return (s, l, f, d) => {
      f === 3 ? (s += 2, l -= 2) : s += 2, o(e, r || f, t.text.slice(s, l), i !== void 0 ? i : d);
    };
  }
  function N5e(e, t) {
    if (ba(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 q$(e) {
    return br(e) && e.operatorToken.kind === 27 || xs(e) || xO(e) && xs(e.expression);
  }
  function XF(e, t, r) {
    const i = Lv(e.parent);
    switch (i.kind) {
      case 211:
        return t.getContextualType(i, r);
      case 223: {
        const { left: o, operatorToken: s, right: l } = i;
        return YF(s.kind) ? t.getTypeAtLocation(e === l ? o : l) : t.getContextualType(e, r);
      }
      case 292:
        return K$(i, t);
      default:
        return t.getContextualType(e, r);
    }
  }
  function _w(e, t, r) {
    const i = Ep(e, t), o = JSON.stringify(r);
    return i === 0 ? `'${G_(o).replace(/'/g, "\\'").replace(/\\"/g, '"')}'` : o;
  }
  function YF(e) {
    switch (e) {
      case 36:
      case 34:
      case 37:
      case 35:
        return !0;
      default:
        return !1;
    }
  }
  function nve(e) {
    switch (e.kind) {
      case 10:
      case 14:
      case 225:
      case 212:
        return !0;
      default:
        return !1;
    }
  }
  function J$(e) {
    return !!e.getStringIndexType() || !!e.getNumberIndexType();
  }
  function K$(e, t) {
    return t.getTypeAtLocation(e.parent.parent.expression);
  }
  function pw(e, t, r, i) {
    const o = r.getTypeChecker();
    let s = !0;
    const l = () => s = !1, f = o.typeToTypeNode(e, t, 1, {
      trackSymbol: (d, y, h) => (s = s && o.isSymbolAccessible(d, y, h, !1).accessibility === 0, !s),
      reportInaccessibleThisError: l,
      reportPrivateInBaseOfClassExpression: l,
      reportInaccessibleUniqueSymbolError: l,
      moduleResolverHost: R$(r, i)
    });
    return s ? f : void 0;
  }
  function X$(e) {
    return e === 176 || e === 177 || e === 178 || e === 168 || e === 170;
  }
  function rve(e) {
    return e === 259 || e === 173 || e === 171 || e === 174 || e === 175;
  }
  function ive(e) {
    return e === 264;
  }
  function $F(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 O5e(e, t) {
    const r = e.getLastToken(t);
    if (r && r.kind === 26)
      return !1;
    if (X$(e.kind)) {
      if (r && r.kind === 27)
        return !1;
    } else if (ive(e.kind)) {
      const f = Ho(e.getChildren(t));
      if (f && Zp(f))
        return !1;
    } else if (rve(e.kind)) {
      const f = Ho(e.getChildren(t));
      if (f && uT(f))
        return !1;
    } else if (!$F(e.kind))
      return !1;
    if (e.kind === 243)
      return !0;
    const i = rr(e, (f) => !f.parent), o = zT(e, i, t);
    if (!o || o.kind === 19)
      return !0;
    const s = t.getLineAndCharacterOfPosition(e.getEnd()).line, l = t.getLineAndCharacterOfPosition(o.getStart(t)).line;
    return s !== l;
  }
  function QF(e, t, r) {
    const i = rr(t, (o) => o.end !== e ? "quit" : oQ(o.kind));
    return !!i && O5e(i, r);
  }
  function ZF(e) {
    let t = 0, r = 0;
    const i = 5;
    return Ra(e, function o(s) {
      if ($F(s.kind)) {
        const l = s.getLastToken(e);
        (l == null ? void 0 : l.kind) === 26 ? t++ : r++;
      } else if (X$(s.kind)) {
        const l = s.getLastToken(e);
        if ((l == null ? void 0 : l.kind) === 26)
          t++;
        else if (l && l.kind !== 27) {
          const f = ac(e, l.getStart(e)).line, d = ac(e, py(e, l.end).start).line;
          f !== d && r++;
        }
      }
      return t + r >= i ? !0 : Ra(s, o);
    }), t === 0 && r <= 1 ? !0 : t / r > 1 / i;
  }
  function e9(e, t) {
    return i9(e, e.getDirectories, t) || [];
  }
  function Y$(e, t, r, i, o) {
    return i9(e, e.readDirectory, t, r, i, o) || rt;
  }
  function t9(e, t) {
    return i9(e, e.fileExists, t);
  }
  function n9(e, t) {
    return r9(() => Kp(t, e)) || !1;
  }
  function r9(e) {
    try {
      return e();
    } catch {
      return;
    }
  }
  function i9(e, t, ...r) {
    return r9(() => t && t.apply(e, r));
  }
  function $$(e, t, r) {
    const i = [];
    return Zh(e, (o) => {
      if (o === r)
        return !0;
      const s = Pi(o, "package.json");
      t9(t, s) && i.push(s);
    }), i;
  }
  function ave(e, t) {
    let r;
    return Zh(e, (i) => {
      if (i === "node_modules" || (r = Bhe(i, (o) => t9(t, o), "package.json"), r))
        return !0;
    }), r;
  }
  function ove(e, t) {
    if (!t.fileExists)
      return [];
    const r = [];
    return Zh(_i(e), (i) => {
      const o = Pi(i, "package.json");
      if (t.fileExists(o)) {
        const s = sve(o, t);
        s && r.push(s);
      }
    }), r;
  }
  function sve(e, t) {
    if (!t.readFile)
      return;
    const r = ["dependencies", "devDependencies", "optionalDependencies", "peerDependencies"], i = t.readFile(e) || "", o = P5e(i), s = {};
    if (o)
      for (const d of r) {
        const y = o[d];
        if (!y)
          continue;
        const h = /* @__PURE__ */ new Map();
        for (const b in y)
          h.set(b, y[b]);
        s[d] = h;
      }
    const l = [
      [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, b] of l)
        if (b && y & h) {
          const A = b.get(d);
          if (A !== void 0)
            return A;
        }
    }
  }
  function mw(e, t, r) {
    const i = (r.getPackageJsonsVisibleToFile && r.getPackageJsonsVisibleToFile(e.fileName) || ove(e.fileName, r)).filter((I) => I.parseable);
    let o, s, l;
    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(E5(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 = G_(I.getName());
      if (b(k))
        return s.set(I, !0), !0;
      const B = I.valueDeclaration.getSourceFile(), V = A(B.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 (!l)
        l = /* @__PURE__ */ new Map();
      else {
        const V = l.get(I);
        if (V !== void 0)
          return V;
      }
      const k = A(I.fileName, O);
      if (!k)
        return l.set(I, !0), !0;
      const B = f(k);
      return l.set(I, B), B;
    }
    function h(I) {
      return !i.length || b(I) || vf(I) || Cm(I) ? !0 : f(I);
    }
    function b(I) {
      return !!(Xu(e) && jT.nodeCoreModules.has(I) && (o === void 0 && (o = a9(e)), o));
    }
    function A(I, O) {
      if (!uu(I, "node_modules"))
        return;
      const k = G1.getNodeModulesPackageName(r.getCompilationSettings(), e, I, O, t);
      if (k && !vf(k) && !Cm(k))
        return L(k);
    }
    function L(I) {
      const O = ad(d8(I)).slice(1);
      return ba(O[0], "@") ? `${O[0]}/${O[1]}` : O[0];
    }
  }
  function P5e(e) {
    try {
      return JSON.parse(e);
    } catch {
      return;
    }
  }
  function a9(e) {
    return kt(e.imports, ({ text: t }) => jT.nodeCoreModules.has(t));
  }
  function cve(e) {
    return wi(ad(e), "node_modules");
  }
  function Q$(e) {
    return e.file !== void 0 && e.start !== void 0 && e.length !== void 0;
  }
  function lve(e, t) {
    const r = Zu(e), i = OS(t, r, pc, w4);
    if (i >= 0) {
      const o = t[i];
      return D.assertEqual(o.file, e.getSourceFile(), "Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile"), ro(o, Q$);
    }
  }
  function uve(e, t) {
    var r;
    let i = OS(t, e.start, (l) => l.start, Vs);
    for (i < 0 && (i = ~i); ((r = t[i - 1]) == null ? void 0 : r.start) === e.start; )
      i--;
    const o = [], s = eu(e);
    for (; ; ) {
      const l = ii(t[i], Q$);
      if (!l || l.start > s)
        break;
      kce(e, l) && o.push(l), i++;
    }
    return o;
  }
  function Wx({ startPosition: e, endPosition: t }) {
    return _l(e, t === void 0 ? e : t);
  }
  function Z$(e, t) {
    const r = ia(e, t.start);
    return rr(r, (o) => o.getStart(e) < t.start || o.getEnd() > eu(t) ? "quit" : yt(o) && qC(t, Zu(o, e)));
  }
  function dve(e, t, r = pc) {
    return e ? Ba(e) ? r(en(e, t)) : t(e, 0) : void 0;
  }
  function eQ(e) {
    return Ba(e) ? ss(e) : e;
  }
  function fve(e, t) {
    if (_ve(e)) {
      const r = pve(e);
      if (r)
        return r;
      const i = Gu.moduleSymbolToValidIdentifier(tQ(e), t, !1), o = Gu.moduleSymbolToValidIdentifier(tQ(e), t, !0);
      return i === o ? i : [i, o];
    }
    return e.name;
  }
  function o9(e, t, r) {
    return _ve(e) ? pve(e) || Gu.moduleSymbolToValidIdentifier(tQ(e), t, !!r) : e.name;
  }
  function _ve(e) {
    return !(e.flags & 33554432) && (e.escapedName === "export=" || e.escapedName === "default");
  }
  function pve(e) {
    return sn(e.declarations, (t) => {
      var r, i;
      return Mc(t) ? (r = ii(hu(t.expression), Ve)) == null ? void 0 : r.text : (i = ii(Aa(t), Ve)) == null ? void 0 : i.text;
    });
  }
  function tQ(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 mve(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 nQ(e) {
    return e.charCodeAt(0) === 95;
  }
  function M5e(e) {
    return !hve(e);
  }
  function hve(e) {
    const t = e.getSourceFile();
    return !t.externalModuleIndicator && !t.commonJsModuleIndicator ? !1 : fr(e) || !rr(e, (r) => Wc(r) && qp(r));
  }
  function s9(e) {
    return !!(KH(e) & 8192);
  }
  function c9(e, t) {
    const r = sn(e.imports, (i) => {
      if (jT.nodeCoreModules.has(i.text))
        return ba(i.text, "node:");
    });
    return r ?? t.usesUriStyleNodeCoreModules;
  }
  function s6(e) {
    return e === `
` ? 1 : 0;
  }
  function zx(e) {
    return Ba(e) ? vh(Ro(e[0]), e.slice(1)) : Ro(e);
  }
  function l9({ options: e }, t) {
    const r = !e.semicolons || e.semicolons === "ignore", i = e.semicolons === "remove" || r && !ZF(t);
    return {
      ...e,
      semicolons: i ? "remove" : "ignore"
    };
  }
  function rQ(e) {
    return e === 2 || e === 3;
  }
  function hw(e, t) {
    return e.isSourceFileFromExternalLibrary(t) || e.isSourceFileDefaultLibrary(t);
  }
  function u9(e, t) {
    const r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set();
    for (const f of t)
      if (!wO(f)) {
        const d = Gs(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 = Rde(tl(d.text, "n") ? d.text.slice(0, -1) : d.text);
              y && o.add(k1(y));
              break;
          }
        else {
          const y = e.getSymbolAtLocation(f.expression);
          if (y && y.valueDeclaration && P1(y.valueDeclaration)) {
            const h = e.getConstantValue(y.valueDeclaration);
            h !== void 0 && s(h);
          }
        }
      }
    return {
      addValue: s,
      hasValue: l
    };
    function s(f) {
      switch (typeof f) {
        case "string":
          r.add(f);
          break;
        case "number":
          i.add(f);
      }
    }
    function l(f) {
      switch (typeof f) {
        case "string":
          return r.has(f);
        case "number":
          return i.has(f);
        case "object":
          return o.has(k1(f));
      }
    }
  }
  var vu, iQ, gve, d9, aQ, f9, yve, _9, oQ, F5e = C({
    "src/services/utilities.ts"() {
      Xr(), vu = cy(99, !0), iQ = /* @__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))(iQ || {}), gve = /^\/\/\/\s*</, d9 = [
        131,
        129,
        160,
        134,
        95,
        138,
        141,
        144,
        104,
        148,
        149,
        146,
        152,
        153,
        110,
        114,
        155,
        156,
        157
      ], aQ = /* @__PURE__ */ ((e) => (e[e.Single = 0] = "Single", e[e.Double = 1] = "Double", e))(aQ || {}), f9 = C5e(), yve = `
`, _9 = "anonymous function", oQ = Am(X$, rve, ive, $F);
    }
  });
  function vve(e) {
    let t = 1;
    const r = l_(), i = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
    let s;
    const l = {
      isUsableByFile: (L) => L === s,
      isEmpty: () => !r.size,
      clear: () => {
        r.clear(), i.clear(), s = void 0;
      },
      add: (L, I, O, k, B, V, H, te) => {
        L !== s && (l.clear(), s = L);
        let X;
        if (B) {
          const Te = pq(B.fileName);
          if (Te) {
            const { topLevelNodeModulesIndex: ee, topLevelPackageNameIndex: $e, packageRootIndex: Ue } = Te;
            if (X = T5(d8(B.fileName.substring($e + 1, Ue))), ba(L, B.path.substring(0, ee))) {
              const Be = o.get(X), We = B.fileName.substring(0, $e + 1);
              if (Be) {
                const Oe = Be.indexOf(Sy);
                ee > Oe && o.set(X, We);
              } else
                o.set(X, We);
            }
          }
        }
        const P = V === 1 && QA(I) || I, de = V === 0 || $8(P) ? ta(O) : fve(P, void 0), ne = typeof de == "string" ? de : de[0], ye = typeof de == "string" ? void 0 : de[1], ie = G_(k.name), W = t++, ce = af(I, te), pe = I.flags & 33554432 ? void 0 : I, ve = k.flags & 33554432 ? void 0 : k;
        (!pe || !ve) && i.set(W, [I, k]), r.add(d(ne, I, Pl(ie) ? void 0 : ie, te), {
          id: W,
          symbolTableKey: O,
          symbolName: ne,
          capitalizedSymbolName: ye,
          moduleName: ie,
          moduleFile: B,
          moduleFileName: B == null ? void 0 : B.fileName,
          packageName: X,
          exportKind: V,
          targetFlags: ce.flags,
          isFromPackageJson: H,
          symbol: pe,
          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 tf(r, (B, V) => {
            const { symbolName: H, ambientModuleName: te } = y(V), X = I && B[0].capitalizedSymbolName || H;
            if (O(X, B[0].targetFlags)) {
              const P = B.map(f).filter((de, ne) => A(de, B[ne].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 && a9(L) !== a9(I) || !Vp(L.moduleAugmentations, I.moduleAugmentations) || !b(L, I) ? (l.clear(), !0) : (s = I.path, !1)
    };
    return D.isDebugging && Object.defineProperty(l, "__cache", { get: () => r }), l;
    function f(L) {
      if (L.symbol && L.moduleSymbol)
        return L;
      const { id: I, exportKind: O, targetFlags: k, isFromPackageJson: B, moduleFileName: V } = L, [H, te] = i.get(I) || rt;
      if (H && te)
        return {
          symbol: H,
          moduleSymbol: te,
          moduleFileName: V,
          exportKind: O,
          targetFlags: k,
          isFromPackageJson: B
        };
      const X = (B ? 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: B
      };
    }
    function d(L, I, O, k) {
      const B = O || "";
      return `${L}|${yo(af(I, k))}|${B}`;
    }
    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 b(L, I) {
      if (!Vp(L.ambientModuleNames, I.ambientModuleNames))
        return !1;
      let O = -1, k = -1;
      for (const B of I.ambientModuleNames) {
        const V = (H) => PW(H) && H.name.text === B;
        if (O = Qi(L.statements, V, O + 1), k = Qi(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 && ba(L.moduleFileName, O))
        return !0;
      const k = o.get(I);
      return !k || ba(L.moduleFileName, k);
    }
  }
  function sQ(e, t, r, i, o, s, l) {
    var f;
    if (t === r)
      return !1;
    const d = l == null ? void 0 : l.get(t.path, r.path, i, {});
    if ((d == null ? void 0 : d.isBlockedByPackageJsonDependencies) !== void 0)
      return !d.isBlockedByPackageJsonDependencies;
    const y = q0(s), h = (f = s.getGlobalTypingsCacheLocation) == null ? void 0 : f.call(s), b = !!G1.forEachFileNameOfModule(t.fileName, r.fileName, s, !1, (A) => {
      const L = e.getSourceFile(A);
      return (L === r || !L) && B5e(t.fileName, A, y, h);
    });
    if (o) {
      const A = b && o.allowsImportingSourceFile(r, s);
      return l == null || l.setBlockedByPackageJsonDependencies(t.path, r.path, i, {}, !A), A;
    }
    return b;
  }
  function B5e(e, t, r, i) {
    const o = Zh(t, (l) => du(l) === "node_modules" ? l : void 0), s = o && _i(r(o));
    return s === void 0 || ba(r(e), s) || !!i && ba(r(i), s);
  }
  function cQ(e, t, r, i, o) {
    var s, l;
    const f = MN(t), d = r.autoImportFileExcludePatterns && fa(r.autoImportFileExcludePatterns, (h) => {
      const b = tq(h, "", "exclude");
      return b ? Dv(b, f) : void 0;
    });
    bve(e.getTypeChecker(), e.getSourceFiles(), d, (h, b) => o(h, b, e, !1));
    const y = i && ((s = t.getPackageJsonAutoImportProvider) == null ? void 0 : s.call(t));
    if (y) {
      const h = rc(), b = e.getTypeChecker();
      bve(y.getTypeChecker(), y.getSourceFiles(), d, (A, L) => {
        (L && !e.getSourceFile(L.fileName) || !L && !b.resolveName(A.name, void 0, 1536, !1)) && o(A, L, y, !0);
      }), (l = t.log) == null || l.call(t, `forEachExternalModuleToImportFrom autoImportProvider: ${rc() - h}`);
    }
  }
  function bve(e, t, r, i) {
    var o;
    const s = r && ((l) => r.some((f) => f.test(l)));
    for (const l of e.getAmbientModules())
      !uu(l.name, "*") && !(r && ((o = l.declarations) != null && o.every((f) => s(f.getSourceFile().fileName)))) && i(l, void 0);
    for (const l of t)
      nf(l) && !(s != null && s(l.fileName)) && i(e.getMergedSymbol(l.symbol), l);
  }
  function c6(e, t, r, i, o) {
    var s, l, f, d, y;
    const h = rc();
    (s = t.getPackageJsonAutoImportProvider) == null || s.call(t);
    const b = ((l = t.getCachedExportInfoMap) == null ? void 0 : l.call(t)) || vve({
      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 (b.isUsableByFile(e.path))
      return (f = t.log) == null || f.call(t, "getExportInfoMap: cache hit"), b;
    (d = t.log) == null || d.call(t, "getExportInfoMap: cache miss or empty; calculating new results");
    const A = r.getCompilerOptions();
    let L = 0;
    try {
      cQ(r, t, i, !0, (I, O, k, B) => {
        ++L % 100 === 0 && (o == null || o.throwIfCancellationRequested());
        const V = /* @__PURE__ */ new Map(), H = k.getTypeChecker(), te = p9(I, H, A);
        te && Eve(te.symbol, H) && b.add(e.path, te.symbol, te.exportKind === 1 ? "default" : "export=", I, O, te.exportKind, B, H), H.forEachExportAndPropertyOfModule(I, (X, Y) => {
          X !== (te == null ? void 0 : te.symbol) && Eve(X, H) && hp(V, Y) && b.add(e.path, X, Y, I, O, 0, B, H);
        });
      });
    } catch (I) {
      throw b.clear(), I;
    }
    return (y = t.log) == null || y.call(t, `getExportInfoMap: done in ${rc() - h} ms`), b;
  }
  function p9(e, t, r) {
    const i = G5e(e, t);
    if (!i)
      return;
    const { symbol: o, exportKind: s } = i, l = m9(o, t, r);
    return l && { symbol: o, exportKind: s, ...l };
  }
  function Eve(e, t) {
    return !t.isUndefinedSymbol(e) && !t.isUnknownSymbol(e) && !kN(e) && !Sue(e);
  }
  function G5e(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 m9(e, t, r) {
    const i = QA(e);
    if (i)
      return { resolvedSymbol: i, name: i.name };
    const o = U5e(e);
    if (o !== void 0)
      return { resolvedSymbol: e, name: o };
    if (e.flags & 2097152) {
      const s = t.getImmediateAliasedSymbol(e);
      if (s && s.parent)
        return m9(s, t, r);
    }
    return e.escapedName !== "default" && e.escapedName !== "export=" ? { resolvedSymbol: e, name: e.getName() } : { resolvedSymbol: e, name: o9(e, r.target) };
  }
  function U5e(e) {
    return e.declarations && sn(e.declarations, (t) => {
      var r;
      if (Mc(t))
        return (r = ii(hu(t.expression), Ve)) == null ? void 0 : r.text;
      if (cd(t))
        return D.assert(t.name.text === "default", "Expected the specifier to be a default export"), t.propertyName && t.propertyName.text;
    });
  }
  var lQ, uQ, V5e = C({
    "src/services/exportInfoMap.ts"() {
      Xr(), lQ = /* @__PURE__ */ ((e) => (e[e.Named = 0] = "Named", e[e.Default = 1] = "Default", e[e.Namespace = 2] = "Namespace", e[e.CommonJS = 3] = "CommonJS", e))(lQ || {}), uQ = /* @__PURE__ */ ((e) => (e[e.Named = 0] = "Named", e[e.Default = 1] = "Default", e[e.ExportEquals = 2] = "ExportEquals", e[e.UMD = 3] = "UMD", e))(uQ || {});
    }
  });
  function Tve() {
    const e = cy(99, !1);
    function t(i, o, s) {
      return W5e(r(i, o, s), i);
    }
    function r(i, o, s) {
      let l = 0, f = 0;
      const d = [], { prefix: y, pushTemplate: h } = J5e(o);
      i = y + i;
      const b = y.length;
      h && d.push(15), e.setText(i);
      let A = 0;
      const L = [];
      let I = 0;
      do {
        l = e.scan(), JA(l) || (O(), f = l);
        const k = e.getTextPos();
        if (H5e(e.getTokenPos(), k, b, Y5e(l), L), k >= i.length) {
          const B = j5e(e, l, ec(d));
          B !== void 0 && (A = B);
        }
      } while (l !== 1);
      function O() {
        switch (l) {
          case 43:
          case 68:
            !Ive[f] && e.reScanSlashToken() === 13 && (l = 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 && (l = 79);
            break;
          case 15:
            d.push(l);
            break;
          case 18:
            d.length > 0 && d.push(l);
            break;
          case 19:
            if (d.length > 0) {
              const k = ec(d);
              k === 15 ? (l = e.reScanTemplateToken(!1), l === 17 ? d.pop() : D.assertEqual(l, 16, "Should have been a template middle.")) : (D.assertEqual(k, 18, "Should have been an open brace"), d.pop());
            }
            break;
          default:
            if (!Td(l))
              break;
            (f === 24 || Td(f) && Td(l) && !q5e(f, l)) && (l = 79);
        }
      }
      return { endOfLineState: A, spans: L };
    }
    return { getClassificationsForLine: t, getEncodedLexicalClassifications: r };
  }
  function j5e(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 (Tv(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 H5e(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 W5e(e, t) {
    const r = [], i = e.spans;
    let o = 0;
    for (let l = 0; l < i.length; l += 3) {
      const f = i[l], d = i[l + 1], y = i[l + 2];
      if (o >= 0) {
        const h = f - o;
        h > 0 && r.push({ length: h, classification: 4 });
      }
      r.push({ length: d, classification: z5e(y) }), o = f + d;
    }
    const s = t.length - o;
    return s > 0 && r.push({ length: s, classification: 4 }), { entries: r, finalLexState: e.endOfLineState };
  }
  function z5e(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 q5e(e, t) {
    if (!A$(e))
      return !0;
    switch (t) {
      case 137:
      case 151:
      case 135:
      case 124:
      case 127:
        return !0;
      default:
        return !1;
    }
  }
  function J5e(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 K5e(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 X5e(e) {
    switch (e) {
      case 39:
      case 40:
      case 54:
      case 53:
      case 45:
      case 46:
        return !0;
      default:
        return !1;
    }
  }
  function Y5e(e) {
    if (Td(e))
      return 3;
    if (K5e(e) || X5e(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 Tv(e) ? 6 : 2;
    }
  }
  function Sve(e, t, r, i, o) {
    return Cve(dQ(e, t, r, i, o));
  }
  function xve(e, t) {
    switch (t) {
      case 264:
      case 260:
      case 261:
      case 259:
      case 228:
      case 215:
      case 216:
        e.throwIfCancellationRequested();
    }
  }
  function dQ(e, t, r, i, o) {
    const s = [];
    return r.forEachChild(function f(d) {
      if (!(!d || !mM(o, d.pos, d.getFullWidth()))) {
        if (xve(t, d.kind), Ve(d) && !xc(d) && i.has(d.escapedText)) {
          const y = e.getSymbolAtLocation(d), h = y && Ave(y, HT(d), e);
          h && l(d.getStart(r), d.getEnd(), h);
        }
        d.forEachChild(f);
      }
    }), { spans: s, endOfLineState: 0 };
    function l(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 Ave(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 && $5e(e) ? 14 : void 0 : i & 2097152 ? Ave(r.getAliasedSymbol(e), t, r) : t & 2 ? i & 64 ? 13 : i & 262144 ? 15 : void 0 : void 0;
  }
  function $5e(e) {
    return kt(e.declarations, (t) => Wc(t) && mg(t) === 1);
  }
  function Q5e(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 Cve(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: Ll(t[i], t[i + 1]),
        classificationType: Q5e(t[i + 2])
      });
    return r;
  }
  function Lve(e, t, r) {
    return Cve(fQ(e, t, r));
  }
  function fQ(e, t, r) {
    const i = r.start, o = r.length, s = cy(99, !1, t.languageVariant, t.text), l = cy(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 (!_ce(t.text, Y))
          return Y;
        const P = s.scan(), de = s.getTextPos(), ne = de - Y;
        if (!JA(P))
          return Y;
        switch (P) {
          case 4:
          case 5:
            continue;
          case 2:
          case 3:
            h(X, P, Y, ne), s.setTextPos(de);
            continue;
          case 7:
            const ye = t.text, ie = ye.charCodeAt(Y);
            if (ie === 60 || ie === 62) {
              d(Y, ne, 1);
              continue;
            }
            D.assert(ie === 124 || ie === 61), O(ye, Y, de);
            break;
          case 6:
            break;
          default:
            D.assertNever(P);
        }
      }
    }
    function h(X, Y, P, de) {
      if (Y === 3) {
        const ne = N_e(t.text, P, de);
        if (ne && ne.jsDoc) {
          Bo(ne.jsDoc, X), A(ne.jsDoc);
          return;
        }
      } else if (Y === 2 && L(P, de))
        return;
      b(P, de);
    }
    function b(X, Y) {
      d(X, Y, 1);
    }
    function A(X) {
      var Y, P, de, ne, ye, ie, W, ce;
      let pe = X.pos;
      if (X.tags)
        for (const Te of X.tags) {
          Te.pos !== pe && b(pe, Te.pos - pe), d(Te.pos, 1, 10), d(Te.tagName.pos, Te.tagName.end - Te.tagName.pos, 18), pe = Te.tagName.end;
          let ee = Te.tagName.end;
          switch (Te.kind) {
            case 344:
              const $e = Te;
              ve($e), ee = $e.isNameFirst && ((Y = $e.typeExpression) == null ? void 0 : Y.end) || $e.name.end;
              break;
            case 351:
              const Ue = Te;
              ee = Ue.isNameFirst && ((P = Ue.typeExpression) == null ? void 0 : P.end) || Ue.name.end;
              break;
            case 348:
              I(Te), pe = Te.end, ee = Te.typeParameters.end;
              break;
            case 349:
              const Be = Te;
              ee = ((de = Be.typeExpression) == null ? void 0 : de.kind) === 312 && ((ne = Be.fullName) == null ? void 0 : ne.end) || ((ye = Be.typeExpression) == null ? void 0 : ye.end) || ee;
              break;
            case 341:
              ee = Te.typeExpression.end;
              break;
            case 347:
              te(Te.typeExpression), pe = Te.end, ee = Te.typeExpression.end;
              break;
            case 346:
            case 343:
              ee = Te.typeExpression.end;
              break;
            case 345:
              te(Te.typeExpression), pe = Te.end, ee = ((ie = Te.typeExpression) == null ? void 0 : ie.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), pe = Te.end, ee = ((ce = Te.typeExpression) == null ? void 0 : ce.end) || ee;
              break;
          }
          typeof Te.comment == "object" ? b(Te.comment.pos, Te.comment.end - Te.comment.pos) : typeof Te.comment == "string" && b(ee, Te.end - ee);
        }
      pe !== X.end && b(pe, X.end - pe);
      return;
      function ve(Te) {
        Te.isNameFirst && (b(pe, Te.name.pos - pe), d(Te.name.pos, Te.name.end - Te.name.pos, 17), pe = Te.name.end), Te.typeExpression && (b(pe, Te.typeExpression.pos - pe), te(Te.typeExpression), pe = Te.typeExpression.end), Te.isNameFirst || (b(pe, Te.name.pos - pe), d(Te.name.pos, Te.name.end - Te.name.pos, 17), pe = Te.name.end);
      }
    }
    function L(X, Y) {
      const P = /^(\/\/\/\s*)(<)(?:(\S+)((?:[^/]|\/[^>])*)(\/>)?)?/im, de = /(\s)(\S+)(\s*)(=)(\s*)('[^']+'|"[^"]+")/img, ne = t.text.substr(X, Y), ye = P.exec(ne);
      if (!ye || !ye[3] || !(ye[3] in hR))
        return !1;
      let ie = X;
      b(ie, ye[1].length), ie += ye[1].length, d(ie, ye[2].length, 10), ie += ye[2].length, d(ie, ye[3].length, 21), ie += ye[3].length;
      const W = ye[4];
      let ce = ie;
      for (; ; ) {
        const ve = de.exec(W);
        if (!ve)
          break;
        const Te = ie + ve.index + ve[1].length;
        Te > ce && (b(ce, Te - ce), ce = Te), d(ce, ve[2].length, 22), ce += ve[2].length, ve[3].length && (b(ce, ve[3].length), ce += ve[3].length), d(ce, ve[4].length, 5), ce += ve[4].length, ve[5].length && (b(ce, ve[5].length), ce += ve[5].length), d(ce, ve[6].length, 24), ce += ve[6].length;
      }
      ie += ye[4].length, ie > ce && b(ce, ie - ce), ye[5] && (d(ie, ye[5].length, 10), ie += ye[5].length);
      const pe = X + Y;
      return ie < pe && b(ie, pe - ie), !0;
    }
    function I(X) {
      for (const Y of X.getChildren())
        te(Y);
    }
    function O(X, Y, P) {
      let de;
      for (de = Y; de < P && !fu(X.charCodeAt(de)); de++)
        ;
      for (d(Y, de - Y, 1), l.setTextPos(de); l.getTextPos() < P; )
        k();
    }
    function k() {
      const X = l.getTextPos(), Y = l.scan(), P = l.getTextPos(), de = H(Y);
      de && d(X, P - X, de);
    }
    function B(X) {
      if (Hm(X) || xc(X))
        return !0;
      const Y = V(X);
      if (!zS(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 ne = Y || H(X.kind, X);
        ne && d(P, de, ne);
      }
      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 (Td(X))
        return 3;
      if ((X === 29 || X === 31) && Y && wye(Y.parent))
        return 10;
      if (Rye(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 (Tv(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 (rg(Y.parent))
              return 3;
          }
          return 2;
        }
      }
    }
    function te(X) {
      if (X && hM(i, o, X.pos, X.getFullWidth())) {
        xve(e, X.kind);
        for (const Y of X.getChildren(t))
          B(Y) || te(Y);
      }
    }
  }
  var Ive, Z5e = C({
    "src/services/classifier.ts"() {
      Xr(), Ive = pse([
        79,
        10,
        8,
        9,
        13,
        108,
        45,
        46,
        21,
        23,
        19,
        110,
        95
      ], (e) => e, () => !0);
    }
  }), h9, eFe = C({
    "src/services/documentHighlights.ts"() {
      Xr(), ((e) => {
        function t(ie, W, ce, pe, ve) {
          const Te = Lf(ce, pe);
          if (Te.parent && (Ch(Te.parent) && Te.parent.tagName === Te || wx(Te.parent))) {
            const { openingElement: ee, closingElement: $e } = Te.parent.parent, Ue = [ee, $e].map(({ tagName: Be }) => r(Be, ce));
            return [{ fileName: ce.fileName, highlightSpans: Ue }];
          }
          return i(pe, Te, ie, W, ve) || o(Te, ce);
        }
        e.getDocumentHighlights = t;
        function r(ie, W) {
          return {
            fileName: W.fileName,
            textSpan: Zu(ie, W),
            kind: "none"
          };
        }
        function i(ie, W, ce, pe, ve) {
          const Te = new Set(ve.map((Be) => Be.fileName)), ee = lc.getReferenceEntriesForNode(ie, W, ce, ve, pe, void 0, Te);
          if (!ee)
            return;
          const $e = aR(ee.map(lc.toHighlightSpan), (Be) => Be.fileName, (Be) => Be.span), Ue = Zl(ce.useCaseSensitiveFileNames());
          return Do(dA($e.entries(), ([Be, We]) => {
            if (!Te.has(Be)) {
              if (!ce.redirectTargetsMap.has(js(Be, ce.getCurrentDirectory(), Ue)))
                return;
              const Oe = ce.getSourceFile(Be);
              Be = cn(ve, (Xe) => !!Xe.redirectInfo && Xe.redirectInfo.redirectTarget === Oe).fileName, D.assert(Te.has(Be));
            }
            return { fileName: Be, highlightSpans: We };
          }));
        }
        function o(ie, W) {
          const ce = s(ie, W);
          return ce && [{ fileName: W.fileName, highlightSpans: ce }];
        }
        function s(ie, W) {
          switch (ie.kind) {
            case 99:
            case 91:
              return CT(ie.parent) ? de(ie.parent, W) : void 0;
            case 105:
              return pe(ie.parent, gp, te);
            case 109:
              return pe(ie.parent, lJ, H);
            case 111:
            case 83:
            case 96:
              const Te = ie.kind === 83 ? ie.parent.parent : ie.parent;
              return pe(Te, LO, V);
            case 107:
              return pe(ie.parent, CO, B);
            case 82:
            case 88:
              return wO(ie.parent) || Dk(ie.parent) ? pe(ie.parent.parent.parent, CO, B) : void 0;
            case 81:
            case 86:
              return pe(ie.parent, EI, k);
            case 97:
            case 115:
            case 90:
              return pe(ie.parent, (ee) => Sv(ee, !0), O);
            case 135:
              return ce(Hc, [135]);
            case 137:
            case 151:
              return ce(U0, [137, 151]);
            case 133:
              return pe(ie.parent, vC, X);
            case 132:
              return ve(X(ie));
            case 125:
              return ve(Y(ie));
            case 101:
              return;
            default:
              return dy(ie.kind) && (mu(ie.parent) || cl(ie.parent)) ? ve(A(ie.kind, ie.parent)) : void 0;
          }
          function ce(Te, ee) {
            return pe(ie.parent, Te, ($e) => {
              var Ue;
              return fa((Ue = ii($e, km)) == null ? void 0 : Ue.symbol.declarations, (Be) => Te(Be) ? cn(Be.getChildren(W), (We) => wi(ee, We.kind)) : void 0);
            });
          }
          function pe(Te, ee, $e) {
            return ee(Te) ? ve($e(Te, W)) : void 0;
          }
          function ve(Te) {
            return Te && Te.map((ee) => r(ee, W));
          }
        }
        function l(ie) {
          return lJ(ie) ? [ie] : LO(ie) ? ma(ie.catchClause ? l(ie.catchClause) : ie.tryBlock && l(ie.tryBlock), ie.finallyBlock && l(ie.finallyBlock)) : qa(ie) ? void 0 : y(ie, l);
        }
        function f(ie) {
          let W = ie;
          for (; W.parent; ) {
            const ce = W.parent;
            if (uT(ce) || ce.kind === 308)
              return ce;
            if (LO(ce) && ce.tryBlock === W && ce.catchClause)
              return W;
            W = ce;
          }
        }
        function d(ie) {
          return EI(ie) ? [ie] : qa(ie) ? void 0 : y(ie, d);
        }
        function y(ie, W) {
          const ce = [];
          return ie.forEachChild((pe) => {
            const ve = W(pe);
            ve !== void 0 && ce.push(...oR(ve));
          }), ce;
        }
        function h(ie, W) {
          const ce = b(W);
          return !!ce && ce === ie;
        }
        function b(ie) {
          return rr(ie, (W) => {
            switch (W.kind) {
              case 252:
                if (ie.kind === 248)
                  return !1;
              case 245:
              case 246:
              case 247:
              case 244:
              case 243:
                return !ie.label || ye(W, ie.label.escapedText);
              default:
                return qa(W) && "quit";
            }
          });
        }
        function A(ie, W) {
          return fa(L(W, lx(ie)), (ce) => zC(ce, ie));
        }
        function L(ie, W) {
          const ce = ie.parent;
          switch (ce.kind) {
            case 265:
            case 308:
            case 238:
            case 292:
            case 293:
              return W & 256 && wl(ie) ? [...ie.members, ie] : ce.statements;
            case 173:
            case 171:
            case 259:
              return [...ce.parameters, ...li(ce.parent) ? ce.parent.members : []];
            case 260:
            case 228:
            case 261:
            case 184:
              const pe = ce.members;
              if (W & 92) {
                const ve = cn(ce.members, Hc);
                if (ve)
                  return [...pe, ...ve.parameters];
              } else if (W & 256)
                return [...pe, ce];
              return pe;
            case 207:
              return;
            default:
              D.assertNever(ce, "Invalid container kind.");
          }
        }
        function I(ie, W, ...ce) {
          return W && wi(ce, W.kind) ? (ie.push(W), !0) : !1;
        }
        function O(ie) {
          const W = [];
          if (I(W, ie.getFirstToken(), 97, 115, 90) && ie.kind === 243) {
            const ce = ie.getChildren();
            for (let pe = ce.length - 1; pe >= 0 && !I(W, ce[pe], 115); pe--)
              ;
          }
          return ze(d(ie.statement), (ce) => {
            h(ie, ce) && I(W, ce.getFirstToken(), 81, 86);
          }), W;
        }
        function k(ie) {
          const W = b(ie);
          if (W)
            switch (W.kind) {
              case 245:
              case 246:
              case 247:
              case 243:
              case 244:
                return O(W);
              case 252:
                return B(W);
            }
        }
        function B(ie) {
          const W = [];
          return I(W, ie.getFirstToken(), 107), ze(ie.caseBlock.clauses, (ce) => {
            I(W, ce.getFirstToken(), 82, 88), ze(d(ce), (pe) => {
              h(ie, pe) && I(W, pe.getFirstToken(), 81);
            });
          }), W;
        }
        function V(ie, W) {
          const ce = [];
          if (I(ce, ie.getFirstToken(), 111), ie.catchClause && I(ce, ie.catchClause.getFirstToken(), 83), ie.finallyBlock) {
            const pe = gs(ie, 96, W);
            I(ce, pe, 96);
          }
          return ce;
        }
        function H(ie, W) {
          const ce = f(ie);
          if (!ce)
            return;
          const pe = [];
          return ze(l(ce), (ve) => {
            pe.push(gs(ve, 109, W));
          }), uT(ce) && lT(ce, (ve) => {
            pe.push(gs(ve, 105, W));
          }), pe;
        }
        function te(ie, W) {
          const ce = Tf(ie);
          if (!ce)
            return;
          const pe = [];
          return lT(ro(ce.body, oo), (ve) => {
            pe.push(gs(ve, 105, W));
          }), ze(l(ce.body), (ve) => {
            pe.push(gs(ve, 109, W));
          }), pe;
        }
        function X(ie) {
          const W = Tf(ie);
          if (!W)
            return;
          const ce = [];
          return W.modifiers && W.modifiers.forEach((pe) => {
            I(ce, pe, 132);
          }), Ra(W, (pe) => {
            P(pe, (ve) => {
              vC(ve) && I(ce, ve.getFirstToken(), 133);
            });
          }), ce;
        }
        function Y(ie) {
          const W = Tf(ie);
          if (!W)
            return;
          const ce = [];
          return Ra(W, (pe) => {
            P(pe, (ve) => {
              w7(ve) && I(ce, ve.getFirstToken(), 125);
            });
          }), ce;
        }
        function P(ie, W) {
          W(ie), !qa(ie) && !li(ie) && !Qu(ie) && !Wc(ie) && !Qp(ie) && !Mi(ie) && Ra(ie, (ce) => P(ce, W));
        }
        function de(ie, W) {
          const ce = ne(ie, W), pe = [];
          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 $e = !0;
              for (let Ue = ee.getStart(W) - 1; Ue >= Te.end; Ue--)
                if (!Im(W.text.charCodeAt(Ue))) {
                  $e = !1;
                  break;
                }
              if ($e) {
                pe.push({
                  fileName: W.fileName,
                  textSpan: _l(Te.getStart(), ee.end),
                  kind: "reference"
                }), ve++;
                continue;
              }
            }
            pe.push(r(ce[ve], W));
          }
          return pe;
        }
        function ne(ie, W) {
          const ce = [];
          for (; CT(ie.parent) && ie.parent.elseStatement === ie; )
            ie = ie.parent;
          for (; ; ) {
            const pe = ie.getChildren(W);
            I(ce, pe[0], 99);
            for (let ve = pe.length - 1; ve >= 0 && !I(ce, pe[ve], 91); ve--)
              ;
            if (!ie.elseStatement || !CT(ie.elseStatement))
              break;
            ie = ie.elseStatement;
          }
          return ce;
        }
        function ye(ie, W) {
          return !!rr(ie.parent, (ce) => N1(ce) ? ce.label.escapedText === W : "quit");
        }
      })(h9 || (h9 = {}));
    }
  });
  function g9(e) {
    return !!e.sourceFile;
  }
  function _Q(e, t) {
    return kve(e, t);
  }
  function kve(e, t = "", r) {
    const i = /* @__PURE__ */ new Map(), o = Zl(!!e);
    function s() {
      const k = Do(i.keys()).filter((B) => B && B.charAt(0) === "_").map((B) => {
        const V = i.get(B), H = [];
        return V.forEach((te, X) => {
          g9(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: B,
          sourceFiles: H
        };
      });
      return JSON.stringify(k, void 0, 2);
    }
    function l(k) {
      return typeof k.getCompilationSettings == "function" ? k.getCompilationSettings() : k;
    }
    function f(k, B, V, H, te, X) {
      const Y = js(k, t, o), P = y9(l(B));
      return d(k, Y, B, P, V, H, te, X);
    }
    function d(k, B, V, H, te, X, Y, P) {
      return A(k, B, V, H, te, X, !0, Y, P);
    }
    function y(k, B, V, H, te, X) {
      const Y = js(k, t, o), P = y9(l(B));
      return h(k, Y, B, P, V, H, te, X);
    }
    function h(k, B, V, H, te, X, Y, P) {
      return A(k, B, l(V), H, te, X, !1, Y, P);
    }
    function b(k, B) {
      const V = g9(k) ? k : k.get(D.checkDefined(B, "If there are more than one scriptKind's for same document the scriptKind should be provided"));
      return D.assert(B === void 0 || !V || V.sourceFile.scriptKind === B, `Script kind should match provided ScriptKind:${B} and sourceFile.scriptKind: ${V == null ? void 0 : V.sourceFile.scriptKind}, !entry: ${!V}`), V;
    }
    function A(k, B, V, H, te, X, Y, P, de) {
      var ne, ye, ie, W;
      P = O3(k, P);
      const ce = l(V), pe = V === ce ? void 0 : V, ve = P === 6 ? 100 : $o(ce), Te = typeof de == "object" ? de : {
        languageVersion: ve,
        impliedNodeFormat: pe && Q5(B, (W = (ie = (ye = (ne = pe.getCompilerHost) == null ? void 0 : ne.call(pe)) == null ? void 0 : ye.getModuleResolutionCache) == null ? void 0 : ie.call(ye)) == null ? void 0 : W.getPackageJsonInfoCache(), pe, ce),
        setExternalModuleIndicator: zN(ce)
      };
      Te.languageVersion = ve;
      const ee = i.size, $e = wve(H, Te.impliedNodeFormat), Ue = ZD(i, $e, () => /* @__PURE__ */ new Map());
      if (yi) {
        i.size > ee && yi.instant(yi.Phase.Session, "createdDocumentRegistryBucket", { configFilePath: ce.configFilePath, key: $e });
        const Me = !ld(B) && tf(i, (Xe, He) => He !== $e && Xe.has(B) && He);
        Me && yi.instant(yi.Phase.Session, "documentRegistryBucketOverlap", { path: B, key1: Me, key2: $e });
      }
      const Be = Ue.get(B);
      let We = Be && b(Be, P);
      if (!We && r) {
        const Me = r.getDocument($e, B);
        Me && (D.assert(Y), We = {
          sourceFile: Me,
          languageServiceRefCount: 0
        }, Oe());
      }
      if (We)
        We.sourceFile.version !== X && (We.sourceFile = GQ(We.sourceFile, te, X, te.getChangeRange(We.sourceFile.scriptSnapshot)), r && r.setDocument($e, B, We.sourceFile)), Y && We.languageServiceRefCount++;
      else {
        const Me = w9(k, te, Te, X, !1, P);
        r && r.setDocument($e, B, Me), We = {
          sourceFile: Me,
          languageServiceRefCount: 1
        }, Oe();
      }
      return D.assert(We.languageServiceRefCount !== 0), We.sourceFile;
      function Oe() {
        if (!Be)
          Ue.set(B, We);
        else if (g9(Be)) {
          const Me = /* @__PURE__ */ new Map();
          Me.set(Be.sourceFile.scriptKind, Be), Me.set(P, We), Ue.set(B, Me);
        } else
          Be.set(P, We);
      }
    }
    function L(k, B, V, H) {
      const te = js(k, t, o), X = y9(B);
      return I(te, X, V, H);
    }
    function I(k, B, V, H) {
      const te = D.checkDefined(i.get(wve(B, H))), X = te.get(k), Y = b(X, V);
      Y.languageServiceRefCount--, D.assert(Y.languageServiceRefCount >= 0), Y.languageServiceRefCount === 0 && (g9(X) ? te.delete(k) : (X.delete(V), X.size === 1 && te.set(k, Hn(X.values(), pc))));
    }
    function O(k, B) {
      return Do(i.entries(), ([V, H]) => {
        const te = H.get(k), X = te && b(te, B);
        return [V, X && X.languageServiceRefCount];
      });
    }
    return {
      acquireDocument: f,
      acquireDocumentWithKey: d,
      updateDocument: y,
      updateDocumentWithKey: h,
      releaseDocument: L,
      releaseDocumentWithKey: I,
      getLanguageServiceRefCounts: O,
      reportStats: s,
      getKeyForCompilationSettings: y9
    };
  }
  function y9(e) {
    return yK(e, a5);
  }
  function wve(e, t) {
    return t ? `${e}|${t}` : e;
  }
  var tFe = C({
    "src/services/documentRegistry.ts"() {
      Xr();
    }
  });
  function Dve(e, t, r, i, o, s, l) {
    const f = MN(i), d = Zl(f), y = pQ(t, r, d, l), h = pQ(r, t, d, l);
    return gr.ChangeTracker.with({ host: i, formatContext: o, preferences: s }, (b) => {
      rFe(e, b, y, t, r, i.getCurrentDirectory(), f), iFe(e, b, y, h, i, d);
    });
  }
  function pQ(e, t, r, i) {
    const o = r(e);
    return (l) => {
      const f = i && i.tryGetSourcePosition({ fileName: l, pos: 0 }), d = s(f ? f.fileName : l);
      return f ? d === void 0 ? void 0 : nFe(f.fileName, d, l, r) : d;
    };
    function s(l) {
      if (r(l) === o)
        return t;
      const f = Zz(l, o, r);
      return f === void 0 ? void 0 : t + "/" + f;
    }
  }
  function nFe(e, t, r, i) {
    const o = AR(e, t, i);
    return mQ(_i(r), o);
  }
  function rFe(e, t, r, i, o, s, l) {
    const { configFile: f } = e.getCompilerOptions();
    if (!f)
      return;
    const d = _i(f.fileName), y = NI(f);
    if (!y)
      return;
    hQ(y, (L, I) => {
      switch (I) {
        case "files":
        case "include":
        case "exclude": {
          if (h(L) || I !== "include" || !Ou(L.initializer))
            return;
          const k = fa(L.initializer.elements, (V) => Go(V) ? V.text : void 0);
          if (k.length === 0)
            return;
          const B = ok(d, [], k, l, s);
          Dv(D.checkDefined(B.includeFilePattern), l).test(i) && !Dv(D.checkDefined(B.includeFilePattern), l).test(o) && t.insertNodeAfter(f, Ho(L.initializer.elements), N.createStringLiteral(A(o)));
          return;
        }
        case "compilerOptions":
          hQ(L.initializer, (O, k) => {
            const B = HJ(k);
            D.assert((B == null ? void 0 : B.type) !== "listOrElement"), B && (B.isFilePath || B.type === "list" && B.element.isFilePath) ? h(O) : k === "paths" && hQ(O.initializer, (V) => {
              if (Ou(V.initializer))
                for (const H of V.initializer.elements)
                  b(H);
            });
          });
          return;
      }
    });
    function h(L) {
      const I = Ou(L.initializer) ? L.initializer.elements : [L.initializer];
      let O = !1;
      for (const k of I)
        O = b(k) || O;
      return O;
    }
    function b(L) {
      if (!Go(L))
        return !1;
      const I = mQ(d, L.text), O = r(I);
      return O !== void 0 ? (t.replaceRangeWithText(f, Nve(L, f), A(O)), !0) : !1;
    }
    function A(L) {
      return Lm(d, L, !l);
    }
  }
  function iFe(e, t, r, i, o, s) {
    const l = e.getSourceFiles();
    for (const f of l) {
      const d = r(f.fileName), y = d ?? f.fileName, h = _i(y), b = i(f.fileName), A = b || f.fileName, L = _i(A), I = d !== void 0 || b !== void 0;
      sFe(f, t, (O) => {
        if (!vf(O))
          return;
        const k = mQ(L, O), B = r(k);
        return B === void 0 ? void 0 : u1(Lm(h, B, s));
      }, (O) => {
        const k = e.getTypeChecker().getSymbolAtLocation(O);
        if (k != null && k.declarations && k.declarations.some((V) => Du(V)))
          return;
        const B = b !== void 0 ? Rve(O, jk(O.text, A, e.getCompilerOptions(), o), r, l) : oFe(k, O, f, e, o, r);
        return B !== void 0 && (B.updated || I && vf(O.text)) ? G1.updateModuleSpecifier(e.getCompilerOptions(), f, s(y), B.newFileName, Hx(e, o), O.text) : void 0;
      });
    }
  }
  function aFe(e, t) {
    return Wo(Pi(e, t));
  }
  function mQ(e, t) {
    return u1(aFe(e, t));
  }
  function oFe(e, t, r, i, o, s) {
    var l;
    if (e) {
      const f = cn(e.declarations, Hi).fileName, d = s(f);
      return d === void 0 ? { newFileName: f, updated: !1 } : { newFileName: d, updated: !0 };
    } else {
      const f = vp(r, t), d = o.resolveModuleNameLiterals || !o.resolveModuleNames ? (l = r.resolvedModules) == null ? void 0 : l.get(t.text, f) : o.getResolvedModuleWithFailedLookupLocationsFromCache && o.getResolvedModuleWithFailedLookupLocationsFromCache(t.text, r.fileName, f);
      return Rve(t, d, s, i.getSourceFiles());
    }
  }
  function Rve(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) || vf(e.text) && ze(t.failedLookupLocations, l);
    if (o)
      return o;
    return t.resolvedModule && { newFileName: t.resolvedModule.resolvedFileName, updated: !1 };
    function s(d) {
      const y = r(d);
      return y && cn(i, (h) => h.fileName === y) ? l(d) : void 0;
    }
    function l(d) {
      return tl(d, "/package.json") ? void 0 : f(d);
    }
    function f(d) {
      const y = r(d);
      return y && { newFileName: y, updated: !0 };
    }
  }
  function sFe(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, Nve(o, e), s);
    }
  }
  function Nve(e, t) {
    return __(e.getStart(t) + 1, e.end - 1);
  }
  function hQ(e, t) {
    if (xs(e))
      for (const r of e.properties)
        Vl(r) && Go(r.name) && t(r, r.name.text);
  }
  var cFe = C({
    "src/services/getEditsForFileRename.ts"() {
      Xr();
    }
  });
  function l6(e, t) {
    return {
      kind: e,
      isCaseSensitive: t
    };
  }
  function Ove(e) {
    const t = /* @__PURE__ */ new Map(), r = e.trim().split(".").map((i) => fFe(i.trim()));
    if (!r.some((i) => !i.subWordTextChunks.length))
      return {
        getFullMatch: (i, o) => lFe(i, o, r, t),
        getMatchForLastSegmentOfPattern: (i) => gQ(i, Ho(r), t),
        patternContainsDots: r.length > 1
      };
  }
  function lFe(e, t, r, i) {
    if (!gQ(t, Ho(r), i) || r.length - 1 > e.length)
      return;
    let s;
    for (let l = r.length - 2, f = e.length - 1; l >= 0; l -= 1, f -= 1)
      s = Fve(s, gQ(e[f], r[l], i));
    return s;
  }
  function Pve(e, t) {
    let r = t.get(e);
    return r || t.set(e, r = Vve(e)), r;
  }
  function Mve(e, t, r) {
    const i = _Fe(e, t.textLowerCase);
    if (i === 0)
      return l6(t.text.length === e.length ? 0 : 1, ba(e, t.text));
    if (t.isLowerCase) {
      if (i === -1)
        return;
      const o = Pve(e, r);
      for (const s of o)
        if (yQ(e, s, t.text, !0))
          return l6(2, yQ(e, s, t.text, !1));
      if (t.text.length < e.length && qx(e.charCodeAt(i)))
        return l6(2, !1);
    } else {
      if (e.indexOf(t.text) > 0)
        return l6(2, !0);
      if (t.characterSpans.length > 0) {
        const o = Pve(e, r), s = Bve(e, o, t, !1) ? !0 : Bve(e, o, t, !0) ? !1 : void 0;
        if (s !== void 0)
          return l6(3, s);
      }
    }
  }
  function gQ(e, t, r) {
    if (v9(t.totalTextChunk.text, (s) => s !== 32 && s !== 42)) {
      const s = Mve(e, t.totalTextChunk, r);
      if (s)
        return s;
    }
    const i = t.subWordTextChunks;
    let o;
    for (const s of i)
      o = Fve(o, Mve(e, s, r));
    return o;
  }
  function Fve(e, t) {
    return hj([e, t], uFe);
  }
  function uFe(e, t) {
    return e === void 0 ? 1 : t === void 0 ? -1 : Vs(e.kind, t.kind) || i1(!e.isCaseSensitive, !t.isCaseSensitive);
  }
  function yQ(e, t, r, i, o = { start: 0, length: r.length }) {
    return o.length <= t.length && Wve(0, o.length, (s) => dFe(r.charCodeAt(o.start + s), e.charCodeAt(t.start + s), i));
  }
  function dFe(e, t, r) {
    return r ? vQ(e) === vQ(t) : e === t;
  }
  function Bve(e, t, r, i) {
    const o = r.characterSpans;
    let s = 0, l = 0;
    for (; ; ) {
      if (l === o.length)
        return !0;
      if (s === t.length)
        return !1;
      let f = t[s], d = !1;
      for (; l < o.length; l++) {
        const y = o[l];
        if (d && (!qx(r.text.charCodeAt(o[l - 1].start)) || !qx(r.text.charCodeAt(o[l].start))) || !yQ(e, f, r.text, i, y))
          break;
        d = !0, f = Ll(f.start + y.length, f.length - y.length);
      }
      s++;
    }
  }
  function fFe(e) {
    return {
      totalTextChunk: EQ(e),
      subWordTextChunks: mFe(e)
    };
  }
  function qx(e) {
    if (e >= 65 && e <= 90)
      return !0;
    if (e < 127 || !cM(e, 99))
      return !1;
    const t = String.fromCharCode(e);
    return t === t.toUpperCase();
  }
  function Gve(e) {
    if (e >= 97 && e <= 122)
      return !0;
    if (e < 127 || !cM(e, 99))
      return !1;
    const t = String.fromCharCode(e);
    return t === t.toLowerCase();
  }
  function _Fe(e, t) {
    const r = e.length - t.length;
    for (let i = 0; i <= r; i++)
      if (v9(t, (o, s) => vQ(e.charCodeAt(s + i)) === o))
        return i;
    return -1;
  }
  function vQ(e) {
    return e >= 65 && e <= 90 ? 97 + (e - 65) : e < 127 ? e : String.fromCharCode(e).toLowerCase().charCodeAt(0);
  }
  function bQ(e) {
    return e >= 48 && e <= 57;
  }
  function pFe(e) {
    return qx(e) || Gve(e) || bQ(e) || e === 95 || e === 36;
  }
  function mFe(e) {
    const t = [];
    let r = 0, i = 0;
    for (let o = 0; o < e.length; o++) {
      const s = e.charCodeAt(o);
      pFe(s) ? (i === 0 && (r = o), i++) : i > 0 && (t.push(EQ(e.substr(r, i))), i = 0);
    }
    return i > 0 && t.push(EQ(e.substr(r, i))), t;
  }
  function EQ(e) {
    const t = e.toLowerCase();
    return {
      text: e,
      textLowerCase: t,
      isLowerCase: e === t,
      characterSpans: Uve(e)
    };
  }
  function Uve(e) {
    return jve(e, !1);
  }
  function Vve(e) {
    return jve(e, !0);
  }
  function jve(e, t) {
    const r = [];
    let i = 0;
    for (let o = 1; o < e.length; o++) {
      const s = bQ(e.charCodeAt(o - 1)), l = bQ(e.charCodeAt(o)), f = gFe(e, t, o), d = t && hFe(e, o, i);
      (TQ(e.charCodeAt(o - 1)) || TQ(e.charCodeAt(o)) || s !== l || f || d) && (Hve(e, i, o) || r.push(Ll(i, o - i)), i = o);
    }
    return Hve(e, i, e.length) || r.push(Ll(i, e.length - i)), r;
  }
  function TQ(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 Hve(e, t, r) {
    return v9(e, (i) => TQ(i) && i !== 95, t, r);
  }
  function hFe(e, t, r) {
    return t !== r && t + 1 < e.length && qx(e.charCodeAt(t)) && Gve(e.charCodeAt(t + 1)) && v9(e, qx, r, t);
  }
  function gFe(e, t, r) {
    const i = qx(e.charCodeAt(r - 1));
    return qx(e.charCodeAt(r)) && (!t || !i);
  }
  function Wve(e, t, r) {
    for (let i = e; i < t; i++)
      if (!r(i))
        return !1;
    return !0;
  }
  function v9(e, t, r = 0, i = e.length) {
    return Wve(r, i, (o) => t(e.charCodeAt(o), o));
  }
  var b9, yFe = C({
    "src/services/patternMatcher.ts"() {
      Xr(), b9 = /* @__PURE__ */ ((e) => (e[e.exact = 0] = "exact", e[e.prefix = 1] = "prefix", e[e.substring = 2] = "substring", e[e.camelCase = 3] = "camelCase", e))(b9 || {});
    }
  });
  function zve(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, l, f, d = 0, y = !1;
    function h() {
      return l = f, f = vu.scan(), f === 18 ? d++ : f === 19 && d--, f;
    }
    function b() {
      const X = vu.getTokenValue(), Y = vu.getTokenPos();
      return { fileName: X, pos: Y, end: Y + X.length };
    }
    function A() {
      s || (s = []), s.push({ ref: b(), depth: d });
    }
    function L() {
      o.push(b()), I();
    }
    function I() {
      d === 0 && (y = !0);
    }
    function O() {
      let X = vu.getToken();
      return X === 136 ? (X = h(), X === 142 && (X = h(), X === 10 && A()), !0) : !1;
    }
    function k() {
      if (l === 24)
        return !1;
      let X = vu.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 && vu.lookAhead(() => {
            const P = vu.scan();
            return P !== 158 && (P === 41 || P === 18 || P === 79 || Td(P));
          }) && (X = h()), X === 79 || Td(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 || Td(X)) && (X = h(), X === 158 && (X = h(), X === 10 && L()))));
        }
        return !0;
      }
      return !1;
    }
    function B() {
      let X = vu.getToken();
      if (X === 93) {
        if (I(), X = h(), X === 154 && vu.lookAhead(() => {
          const P = vu.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 && vu.lookAhead(() => {
          const P = vu.scan();
          return P === 79 || Td(P);
        }) && (X = h()), (X === 79 || Td(X)) && (X = h(), X === 63 && V(!0))))
          return !0;
        return !0;
      }
      return !1;
    }
    function V(X, Y = !1) {
      let P = X ? h() : vu.getToken();
      return P === 147 ? (P = h(), P === 20 && (P = h(), (P === 10 || Y && P === 14) && L()), !0) : !1;
    }
    function H() {
      let X = vu.getToken();
      if (X === 79 && vu.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 (vu.setText(e), h(); vu.getToken() !== 1; ) {
        if (vu.getToken() === 15) {
          const X = [vu.getToken()];
          e:
            for (; Ie(X); ) {
              const Y = vu.scan();
              switch (Y) {
                case 1:
                  break e;
                case 100:
                  k();
                  break;
                case 15:
                  X.push(Y);
                  break;
                case 18:
                  Ie(X) && X.push(Y);
                  break;
                case 19:
                  Ie(X) && (ec(X) === 15 ? vu.reScanTemplateToken(!1) === 17 && X.pop() : X.pop());
                  break;
              }
            }
          h();
        }
        O() || k() || B() || r && (V(!1, !0) || H()) || h();
      }
      vu.setText(void 0);
    }
    if (t && te(), FJ(i, e), BJ(i, io), 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 vFe = C({
    "src/services/preProcess.ts"() {
      Xr();
    }
  });
  function qve(e) {
    const t = Zl(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 js(I, r, t);
    }
    function l(I, O) {
      const k = s(I), B = o.get(k);
      if (B)
        return B;
      let V;
      if (e.getDocumentPositionMapper)
        V = e.getDocumentPositionMapper(I, O);
      else if (e.readFile) {
        const H = b(I);
        V = H && Jve({ getSourceFileLike: b, getCanonicalFileName: t, log: (te) => e.log(te) }, I, Ome(H.text, eg(H)), (te) => !e.fileExists || e.fileExists(te) ? e.readFile(te) : void 0);
      }
      return o.set(k, V || M5), V || M5;
    }
    function f(I) {
      if (!ld(I.fileName) || !y(I.fileName))
        return;
      const k = l(I.fileName).getSourcePosition(I);
      return !k || k === I ? void 0 : f(k) || k;
    }
    function d(I) {
      if (ld(I.fileName))
        return;
      const O = y(I.fileName);
      if (!O)
        return;
      const k = e.getProgram();
      if (k.isSourceOfProjectReferenceRedirect(O.fileName))
        return;
      const B = k.getCompilerOptions(), V = Hs(B), H = V ? Md(V) + ".d.ts" : Sz(I.fileName, k.getCompilerOptions(), r, k.getCommonSourceDirectory(), t);
      if (H === void 0)
        return;
      const te = l(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), B = O.getSourceFileByPath(k);
      return B && B.resolvedPath === k ? B : 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 B = e.readFile(O), V = B ? bFe(B) : !1;
      return i.set(O, V), V || void 0;
    }
    function b(I) {
      return e.getSourceFileLike ? e.getSourceFileLike(I) : y(I) || h(I);
    }
    function A(I, O) {
      return b(I).getLineAndCharacterOfPosition(O);
    }
    function L() {
      i.clear(), o.clear();
    }
  }
  function Jve(e, t, r, i) {
    let o = Pme(r);
    if (o) {
      const f = Xve.exec(o);
      if (f) {
        if (f[1]) {
          const d = f[1];
          return Kve(e, Zue(ql, d), t);
        }
        o = void 0;
      }
    }
    const s = [];
    o && s.push(o), s.push(t + ".map");
    const l = o && Da(o, _i(t));
    for (const f of s) {
      const d = Da(f, _i(t)), y = i(d, l);
      if (Ua(y))
        return Kve(e, y, d);
      if (y !== void 0)
        return y || void 0;
    }
  }
  function Kve(e, t, r) {
    const i = qK(t);
    if (!(!i || !i.sources || !i.file || !i.mappings) && !(i.sourcesContent && i.sourcesContent.some(Ua)))
      return Ume(e, i, r);
  }
  function bFe(e, t) {
    return {
      text: e,
      lineMap: t,
      getLineAndCharacterOfPosition(r) {
        return wR(eg(this), r);
      }
    };
  }
  var Xve, EFe = C({
    "src/services/sourcemaps.ts"() {
      Xr(), Xr(), Xve = /^data:(?:application\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\/=]+)$)?/;
    }
  });
  function SQ(e, t, r) {
    t.getSemanticDiagnostics(e, r);
    const i = [], o = t.getTypeChecker();
    !(e.impliedNodeFormat === 1 || bl(e.fileName, [".cts", ".cjs"])) && e.commonJsModuleIndicator && (Bye(t) || D$(t.getCompilerOptions())) && TFe(e) && i.push(Rr(CFe(e.commonJsModuleIndicator), _.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module));
    const l = Xu(e);
    if (T9.clear(), f(e), ET(t.getCompilerOptions()))
      for (const d of e.imports) {
        const y = gN(d), h = SFe(y);
        if (!h)
          continue;
        const b = kA(e, d.text, vp(e, d)), A = b && t.getSourceFile(b.resolvedFileName);
        A && A.externalModuleIndicator && A.externalModuleIndicator !== !0 && Mc(A.externalModuleIndicator) && A.externalModuleIndicator.isExportEquals && i.push(Rr(h, _.Import_may_be_converted_to_a_default_import));
      }
    return bi(i, e.bindSuggestionDiagnostics), bi(i, t.getSuggestionDiagnostics(e, r)), i.sort((d, y) => d.start - y.start);
    function f(d) {
      if (l)
        IFe(d, o) && i.push(Rr(zi(d.parent) ? d.parent.name : d, _.This_constructor_function_may_be_converted_to_a_class_declaration));
      else {
        if (cl(d) && d.parent === e && d.declarationList.flags & 2 && d.declarationList.declarations.length === 1) {
          const y = d.declarationList.declarations[0].initializer;
          y && Ed(y, !0) && i.push(Rr(y, _.require_call_may_be_converted_to_an_import));
        }
        Gu.parameterShouldGetTypeFromJSDoc(d) && i.push(Rr(d.name || d, _.JSDoc_types_may_be_moved_to_TypeScript_types));
      }
      CQ(d) && xFe(d, o, i), d.forEachChild(f);
    }
  }
  function TFe(e) {
    return e.statements.some((t) => {
      switch (t.kind) {
        case 240:
          return t.declarationList.declarations.some((r) => !!r.initializer && Ed(Yve(r.initializer), !0));
        case 241: {
          const { expression: r } = t;
          if (!br(r))
            return Ed(r, !0);
          const i = Ac(r);
          return i === 1 || i === 2;
        }
        default:
          return !1;
      }
    });
  }
  function Yve(e) {
    return Mr(e) ? Yve(e.expression) : e;
  }
  function SFe(e) {
    switch (e.kind) {
      case 269:
        const { importClause: t, moduleSpecifier: r } = e;
        return t && !t.name && t.namedBindings && t.namedBindings.kind === 271 && Go(r) ? t.namedBindings.name : void 0;
      case 268:
        return e.name;
      default:
        return;
    }
  }
  function xFe(e, t, r) {
    AFe(e, t) && !T9.has(e0e(e)) && r.push(Rr(!e.name && zi(e.parent) && Ve(e.parent.name) ? e.parent.name : e, _.This_may_be_converted_to_an_async_function));
  }
  function AFe(e, t) {
    return !KA(e) && e.body && oo(e.body) && LFe(e.body, t) && xQ(e, t);
  }
  function xQ(e, t) {
    const r = t.getSignatureFromDeclaration(e), i = r ? t.getReturnTypeOfSignature(r) : void 0;
    return !!i && !!t.getPromisedTypeOfPromise(i);
  }
  function CFe(e) {
    return br(e) ? e.left : e;
  }
  function LFe(e, t) {
    return !!lT(e, (r) => E9(r, t));
  }
  function E9(e, t) {
    return gp(e) && !!e.expression && AQ(e.expression, t);
  }
  function AQ(e, t) {
    if (!$ve(e) || !Qve(e) || !e.arguments.every((i) => Zve(i, t)))
      return !1;
    let r = e.expression.expression;
    for (; $ve(r) || Mr(r); )
      if (eo(r)) {
        if (!Qve(r) || !r.arguments.every((i) => Zve(i, t)))
          return !1;
        r = r.expression.expression;
      } else
        r = r.expression;
    return !0;
  }
  function $ve(e) {
    return eo(e) && (V8(e, "then") || V8(e, "catch") || V8(e, "finally"));
  }
  function Qve(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 || Ve(i) && i.text === "undefined");
  }
  function Zve(e, t) {
    switch (e.kind) {
      case 259:
      case 215:
        if (Fl(e) & 1)
          return !1;
      case 216:
        T9.set(e0e(e), !0);
      case 104:
        return !0;
      case 79:
      case 208: {
        const i = t.getSymbolAtLocation(e);
        return i ? t.isUndefinedSymbol(i) || kt(af(i, t).declarations, (o) => qa(o) || Av(o) && !!o.initializer && qa(o.initializer)) : !1;
      }
      default:
        return !1;
    }
  }
  function e0e(e) {
    return `${e.pos.toString()}:${e.end.toString()}`;
  }
  function IFe(e, t) {
    var r, i, o, s;
    if (Ps(e)) {
      if (zi(e.parent) && ((r = e.symbol.members) != null && r.size))
        return !0;
      const l = t.getSymbolOfExpando(e, !1);
      return !!(l && ((i = l.exports) != null && i.size || (o = l.members) != null && o.size));
    }
    return ml(e) ? !!((s = e.symbol.members) != null && s.size) : !1;
  }
  function CQ(e) {
    switch (e.kind) {
      case 259:
      case 171:
      case 215:
      case 216:
        return !0;
      default:
        return !1;
    }
  }
  var T9, kFe = C({
    "src/services/suggestionDiagnostics.ts"() {
      Xr(), T9 = /* @__PURE__ */ new Map();
    }
  });
  function t0e(e, t) {
    const r = [], i = t.compilerOptions ? LQ(t.compilerOptions, r) : {}, o = k9();
    for (const A in o)
      Rs(o, A) && i[A] === void 0 && (i[A] = o[A]);
    for (const A of dK)
      i.verbatimModuleSyntax && n0e.has(A.name) || (i[A.name] = A.transpileOptionValue);
    i.suppressOutputPathCheck = !0, i.allowNonTsExtensions = !0;
    const s = K0(i), l = {
      getSourceFile: (A) => A === Wo(f) ? d : void 0,
      writeFile: (A, L) => {
        sl(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 = jO(f, e, {
      languageVersion: $o(i),
      impliedNodeFormat: Q5(js(f, "", l.getCanonicalFileName), void 0, l, i),
      setExternalModuleIndicator: zN(i)
    });
    t.moduleName && (d.moduleName = t.moduleName), t.renamedDependencies && (d.renamedDependencies = new Map(Object.entries(t.renamedDependencies)));
    let y, h;
    const b = Z5([f], i, l);
    return t.reportDiagnostics && (bi(r, b.getSyntacticDiagnostics(d)), bi(r, b.getOptionsDiagnostics())), b.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 wFe(e, t, r, i, o) {
    const s = t0e(e, { compilerOptions: t, fileName: r, reportDiagnostics: !!i, moduleName: o });
    return bi(i, s.diagnostics), s.outputText;
  }
  function LQ(e, t) {
    IQ = IQ || yn(pg, (r) => typeof r.type == "object" && !tf(r.type, (i) => typeof i != "number")), e = Nye(e);
    for (const r of IQ) {
      if (!Rs(e, r.name))
        continue;
      const i = e[r.name];
      Ua(i) ? e[r.name] = $7(r, i, t) : tf(r.type, (o) => o === i) || t.push(UJ(r));
    }
    return e;
  }
  var n0e, IQ, DFe = C({
    "src/services/transpile.ts"() {
      Xr(), n0e = /* @__PURE__ */ new Set([
        "isolatedModules",
        "preserveValueImports",
        "importsNotUsedAsValues"
      ]);
    }
  });
  function r0e(e, t, r, i, o, s) {
    const l = Ove(i);
    if (!l)
      return rt;
    const f = [];
    for (const d of e)
      r.throwIfCancellationRequested(), !(s && d.isDeclarationFile) && d.getNamedDeclarations().forEach((y, h) => {
        RFe(l, h, y, t, d.fileName, f);
      });
    return f.sort(MFe), (o === void 0 ? f : f.slice(0, o)).map(FFe);
  }
  function RFe(e, t, r, i, o, s) {
    const l = e.getMatchForLastSegmentOfPattern(t);
    if (l) {
      for (const f of r)
        if (NFe(f, i))
          if (e.patternContainsDots) {
            const d = e.getFullMatch(PFe(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: l.kind, isCaseSensitive: l.isCaseSensitive, declaration: f });
    }
  }
  function NFe(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 OFe(e, t) {
    const r = Aa(e);
    return !!r && (i0e(r, t) || r.kind === 164 && kQ(r.expression, t));
  }
  function kQ(e, t) {
    return i0e(e, t) || Mr(e) && (t.push(e.name.text), !0) && kQ(e.expression, t);
  }
  function i0e(e, t) {
    return F_(e) && (t.push(B_(e)), !0);
  }
  function PFe(e) {
    const t = [], r = Aa(e);
    if (r && r.kind === 164 && !kQ(r.expression, t))
      return rt;
    t.shift();
    let i = WT(e);
    for (; i; ) {
      if (!OFe(i, t))
        return rt;
      i = WT(i);
    }
    return t.reverse();
  }
  function MFe(e, t) {
    return Vs(e.matchKind, t.matchKind) || sR(e.name, t.name);
  }
  function FFe(e) {
    const t = e.declaration, r = WT(t), i = r && Aa(r);
    return {
      name: e.name,
      kind: q1(t),
      kindModifiers: cw(t),
      matchKind: b9[e.matchKind],
      isCaseSensitive: e.isCaseSensitive,
      fileName: e.fileName,
      textSpan: Zu(t),
      containerName: i ? i.text : "",
      containerKind: i ? q1(r) : ""
    };
  }
  var BFe = C({
    "src/services/navigateTo.ts"() {
      Xr();
    }
  }), a0e = {};
  le(a0e, {
    getNavigateToItems: () => r0e
  });
  var o0e = C({
    "src/services/_namespaces/ts.NavigateTo.ts"() {
      BFe();
    }
  });
  function s0e(e, t) {
    C9 = t, gw = e;
    try {
      return en(HFe(d0e(e)), WFe);
    } finally {
      l0e();
    }
  }
  function c0e(e, t) {
    C9 = t, gw = e;
    try {
      return b0e(d0e(e));
    } finally {
      l0e();
    }
  }
  function l0e() {
    gw = void 0, C9 = void 0, yw = [], gg = void 0, L9 = [];
  }
  function u6(e) {
    return XC(e.getText(gw));
  }
  function S9(e) {
    return e.node.kind;
  }
  function u0e(e, t) {
    e.children ? e.children.push(t) : e.children = [t];
  }
  function d0e(e) {
    D.assert(!yw.length);
    const t = { node: e, name: void 0, additionalNodes: void 0, parent: void 0, children: void 0, indent: 0 };
    gg = t;
    for (const r of e.statements)
      XT(r);
    return Wv(), D.assert(!gg && !yw.length), t;
  }
  function ib(e, t) {
    u0e(gg, wQ(e, t));
  }
  function wQ(e, t) {
    return {
      node: e,
      name: t || (mu(e) || yt(e) ? Aa(e) : void 0),
      additionalNodes: void 0,
      parent: gg,
      children: void 0,
      indent: gg.indent + 1
    };
  }
  function f0e(e) {
    Jx || (Jx = /* @__PURE__ */ new Map()), Jx.set(e, !0);
  }
  function _0e(e) {
    for (let t = 0; t < e; t++)
      Wv();
  }
  function p0e(e, t) {
    const r = [];
    for (; !F_(t); ) {
      const i = fN(t), o = cg(t);
      t = t.expression, !(o === "prototype" || Di(i)) && r.push(i);
    }
    r.push(t);
    for (let i = r.length - 1; i > 0; i--) {
      const o = r[i];
      ab(e, o);
    }
    return [r.length - 1, r[0]];
  }
  function ab(e, t) {
    const r = wQ(e, t);
    u0e(gg, r), yw.push(gg), BQ.push(Jx), Jx = void 0, gg = r;
  }
  function Wv() {
    gg.children && (x9(gg.children, gg), NQ(gg.children)), gg = yw.pop(), Jx = BQ.pop();
  }
  function zv(e, t, r) {
    ab(e, r), XT(t), Wv();
  }
  function m0e(e) {
    e.initializer && qFe(e.initializer) ? (ab(e), Ra(e.initializer, XT), Wv()) : zv(e, e.initializer);
  }
  function DQ(e) {
    return !Iv(e) || e.kind !== 223 && Mr(e.name.expression) && Ve(e.name.expression.expression) && Pr(e.name.expression.expression) === "Symbol";
  }
  function XT(e) {
    if (C9.throwIfCancellationRequested(), !(!e || zS(e)))
      switch (e.kind) {
        case 173:
          const t = e;
          zv(t, t.body);
          for (const l of t.parameters)
            Qd(l, t) && ib(l);
          break;
        case 171:
        case 174:
        case 175:
        case 170:
          DQ(e) && zv(e, e.body);
          break;
        case 169:
          DQ(e) && m0e(e);
          break;
        case 168:
          DQ(e) && ib(e);
          break;
        case 270:
          const r = e;
          r.name && ib(r.name);
          const { namedBindings: i } = r;
          if (i)
            if (i.kind === 271)
              ib(i);
            else
              for (const l of i.elements)
                ib(l);
          break;
        case 300:
          zv(e, e.name);
          break;
        case 301:
          const { expression: o } = e;
          Ve(o) ? ib(e, o) : ib(e);
          break;
        case 205:
        case 299:
        case 257: {
          const l = e;
          Ja(l.name) ? XT(l.name) : m0e(l);
          break;
        }
        case 259:
          const s = e.name;
          s && Ve(s) && f0e(s.text), zv(e, e.body);
          break;
        case 216:
        case 215:
          zv(e, e.body);
          break;
        case 263:
          ab(e);
          for (const l of e.members)
            zFe(l) || ib(l);
          Wv();
          break;
        case 260:
        case 228:
        case 261:
          ab(e);
          for (const l of e.members)
            XT(l);
          Wv();
          break;
        case 264:
          zv(e, T0e(e).body);
          break;
        case 274: {
          const l = e.expression, f = xs(l) || eo(l) ? l : Ws(l) || Ps(l) ? l.body : void 0;
          f ? (ab(e), XT(f), Wv()) : ib(e);
          break;
        }
        case 278:
        case 268:
        case 178:
        case 176:
        case 177:
        case 262:
          ib(e);
          break;
        case 210:
        case 223: {
          const l = Ac(e);
          switch (l) {
            case 1:
            case 2:
              zv(e, e.right);
              return;
            case 6:
            case 3: {
              const f = e, d = f.left, y = l === 3 ? d.expression : d;
              let h = 0, b;
              Ve(y.expression) ? (f0e(y.expression.text), b = y.expression) : [h, b] = p0e(f, y.expression), l === 6 ? xs(f.right) && f.right.properties.length > 0 && (ab(f, b), Ra(f.right, XT), Wv()) : Ps(f.right) || Ws(f.right) ? zv(e, f.right, b) : (ab(f, b), zv(e, f.right, d.name), Wv()), _0e(h);
              return;
            }
            case 7:
            case 9: {
              const f = e, d = l === 7 ? f.arguments[0] : f.arguments[0].expression, y = f.arguments[1], [h, b] = p0e(e, d);
              ab(e, b), ab(e, mt(N.createIdentifier(y.text), y)), XT(e.arguments[2]), Wv(), Wv(), _0e(h);
              return;
            }
            case 5: {
              const f = e, d = f.left, y = d.expression;
              if (Ve(y) && cg(d) !== "prototype" && Jx && Jx.has(y.text)) {
                Ps(f.right) || Ws(f.right) ? zv(e, f.right, y) : _T(d) && (ab(f, y), zv(f.left, f.right, fN(d)), Wv());
                return;
              }
              break;
            }
            case 4:
            case 0:
            case 8:
              break;
            default:
              D.assertNever(l);
          }
        }
        default:
          bf(e) && ze(e.jsDoc, (l) => {
            ze(l.tags, (f) => {
              f_(f) && ib(f);
            });
          }), Ra(e, XT);
      }
  }
  function x9(e, t) {
    const r = /* @__PURE__ */ new Map();
    ki(e, (i, o) => {
      const s = i.name || Aa(i.node), l = s && u6(s);
      if (!l)
        return !0;
      const f = r.get(l);
      if (!f)
        return r.set(l, i), !0;
      if (f instanceof Array) {
        for (const d of f)
          if (h0e(d, i, o, t))
            return !1;
        return f.push(i), !0;
      } else {
        const d = f;
        return h0e(d, i, o, t) ? !1 : (r.set(l, [d, i]), !0);
      }
    });
  }
  function GFe(e, t, r, i) {
    function o(f) {
      return Ps(f) || ml(f) || zi(f);
    }
    const s = br(t.node) || eo(t.node) ? Ac(t.node) : 0, l = br(e.node) || eo(e.node) ? Ac(e.node) : 0;
    if (YC[s] && YC[l] || o(e.node) && YC[s] || o(t.node) && YC[l] || wl(e.node) && RQ(e.node) && YC[s] || wl(t.node) && YC[l] || wl(e.node) && RQ(e.node) && o(t.node) || wl(t.node) && o(e.node) && RQ(e.node)) {
      let f = e.additionalNodes && ec(e.additionalNodes) || e.node;
      if (!wl(e.node) && !wl(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 = mt(N.createConstructorDeclaration(void 0, [], void 0), y), b = wQ(h);
          b.indent = e.indent + 1, b.children = e.node === y ? e.children : t.children, e.children = e.node === y ? ma([b], t.children || [t]) : ma(e.children || [{ ...e }], [b]);
        } else
          (e.children || t.children) && (e.children = ma(e.children || [{ ...e }], t.children || [t]), e.children && (x9(e.children, e), NQ(e.children)));
        f = e.node = mt(N.createClassDeclaration(void 0, e.name || N.createIdentifier("__class__"), void 0, void 0, []), e.node);
      } else
        e.children = ma(e.children, t.children), e.children && x9(e.children, e);
      const d = t.node;
      return i.children[r - 1].node.end === f.end ? mt(f, { pos: f.pos, end: d.end }) : (e.additionalNodes || (e.additionalNodes = []), e.additionalNodes.push(mt(N.createClassDeclaration(void 0, e.name || N.createIdentifier("__class__"), void 0, void 0, []), t.node))), !0;
    }
    return s !== 0;
  }
  function h0e(e, t, r, i) {
    return GFe(e, t, r, i) ? !0 : UFe(e.node, t.node, i) ? (VFe(e, t), !0) : !1;
  }
  function UFe(e, t, r) {
    if (e.kind !== t.kind || e.parent !== t.parent && !(g0e(e, r) && g0e(t, r)))
      return !1;
    switch (e.kind) {
      case 169:
      case 171:
      case 174:
      case 175:
        return za(e) === za(t);
      case 264:
        return y0e(e, t) && MQ(e) === MQ(t);
      default:
        return !0;
    }
  }
  function RQ(e) {
    return !!(e.flags & 8);
  }
  function g0e(e, t) {
    const r = Zp(e.parent) ? e.parent.parent : e.parent;
    return r === t.node || wi(t.additionalNodes, r);
  }
  function y0e(e, t) {
    return !e.body || !t.body ? e.body === t.body : e.body.kind === t.body.kind && (e.body.kind !== 264 || y0e(e.body, t.body));
  }
  function VFe(e, t) {
    e.additionalNodes = e.additionalNodes || [], e.additionalNodes.push(t.node), t.additionalNodes && e.additionalNodes.push(...t.additionalNodes), e.children = ma(e.children, t.children), e.children && (x9(e.children, e), NQ(e.children));
  }
  function NQ(e) {
    e.sort(jFe);
  }
  function jFe(e, t) {
    return sR(v0e(e.node), v0e(t.node)) || Vs(S9(e), S9(t));
  }
  function v0e(e) {
    if (e.kind === 264)
      return E0e(e);
    const t = Aa(e);
    if (t && gc(t)) {
      const r = S1(t);
      return r && ta(r);
    }
    switch (e.kind) {
      case 215:
      case 216:
      case 228:
        return x0e(e);
      default:
        return;
    }
  }
  function OQ(e, t) {
    if (e.kind === 264)
      return XC(E0e(e));
    if (t) {
      const r = Ve(t) ? t.text : cc(t) ? `[${u6(t.argumentExpression)}]` : u6(t);
      if (r.length > 0)
        return XC(r);
    }
    switch (e.kind) {
      case 308:
        const r = e;
        return Yc(r) ? `"${ax(du(Md(Wo(r.fileName))))}"` : "<global>";
      case 274:
        return Mc(e) && e.isExportEquals ? "export=" : "default";
      case 216:
      case 259:
      case 215:
      case 260:
      case 228:
        return kv(e) & 1024 ? "default" : x0e(e);
      case 173:
        return "constructor";
      case 177:
        return "new()";
      case 176:
        return "()";
      case 178:
        return "[]";
      default:
        return "<unknown>";
    }
  }
  function HFe(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 (S9(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(l) {
        if (!l.node.body)
          return !1;
        switch (S9(l.parent)) {
          case 265:
          case 308:
          case 171:
          case 173:
            return !0;
          default:
            return !1;
        }
      }
    }
  }
  function b0e(e) {
    return {
      text: OQ(e.node, e.name),
      kind: q1(e.node),
      kindModifiers: S0e(e.node),
      spans: PQ(e),
      nameSpan: e.name && FQ(e.name),
      childItems: en(e.children, b0e)
    };
  }
  function WFe(e) {
    return {
      text: OQ(e.node, e.name),
      kind: q1(e.node),
      kindModifiers: S0e(e.node),
      spans: PQ(e),
      childItems: en(e.children, t) || L9,
      indent: e.indent,
      bolded: !1,
      grayed: !1
    };
    function t(r) {
      return {
        text: OQ(r.node, r.name),
        kind: q1(r.node),
        kindModifiers: cw(r.node),
        spans: PQ(r),
        childItems: L9,
        indent: 0,
        bolded: !1,
        grayed: !1
      };
    }
  }
  function PQ(e) {
    const t = [FQ(e.node)];
    if (e.additionalNodes)
      for (const r of e.additionalNodes)
        t.push(FQ(r));
    return t;
  }
  function E0e(e) {
    return Du(e) ? El(e.name) : MQ(e);
  }
  function MQ(e) {
    const t = [B_(e.name)];
    for (; e.body && e.body.kind === 264; )
      e = e.body, t.push(B_(e.name));
    return t.join(".");
  }
  function T0e(e) {
    return e.body && Wc(e.body) ? T0e(e.body) : e;
  }
  function zFe(e) {
    return !e.name || e.name.kind === 164;
  }
  function FQ(e) {
    return e.kind === 308 ? jv(e) : Zu(e, gw);
  }
  function S0e(e) {
    return e.parent && e.parent.kind === 257 && (e = e.parent), cw(e);
  }
  function x0e(e) {
    const { parent: t } = e;
    if (e.name && XR(e.name) > 0)
      return XC(Ls(e.name));
    if (zi(t))
      return XC(Ls(t.name));
    if (br(t) && t.operatorToken.kind === 63)
      return u6(t.left).replace(C0e, "");
    if (Vl(t))
      return u6(t.name);
    if (kv(e) & 1024)
      return "default";
    if (li(e))
      return "<class>";
    if (eo(t)) {
      let r = A0e(t.expression);
      if (r !== void 0) {
        if (r = XC(r), r.length > A9)
          return `${r} callback`;
        const i = XC(fa(t.arguments, (o) => Es(o) ? o.getText(gw) : void 0).join(", "));
        return `${r}(${i}) callback`;
      }
    }
    return "<function>";
  }
  function A0e(e) {
    if (Ve(e))
      return e.text;
    if (Mr(e)) {
      const t = A0e(e.expression), r = e.name.text;
      return t === void 0 ? r : `${t}.${r}`;
    } else
      return;
  }
  function qFe(e) {
    switch (e.kind) {
      case 216:
      case 215:
      case 228:
        return !0;
      default:
        return !1;
    }
  }
  function XC(e) {
    return e = e.length > A9 ? e.substring(0, A9) + "..." : e, e.replace(/\\?(\r?\n|\r|\u2028|\u2029)/g, "");
  }
  var C0e, A9, C9, gw, yw, gg, BQ, Jx, L9, YC, JFe = C({
    "src/services/navigationBar.ts"() {
      Xr(), C0e = /\s+/g, A9 = 150, yw = [], BQ = [], L9 = [], YC = {
        [5]: !0,
        [3]: !0,
        [7]: !0,
        [9]: !0,
        [0]: !1,
        [1]: !1,
        [2]: !1,
        [8]: !1,
        [6]: !0,
        [4]: !1
      };
    }
  }), L0e = {};
  le(L0e, {
    getNavigationBarItems: () => s0e,
    getNavigationTree: () => c0e
  });
  var I0e = C({
    "src/services/_namespaces/ts.NavigationBar.ts"() {
      JFe();
    }
  });
  function k0e(e, t, r, i) {
    const o = GR(e) ? new R9(e, t, r) : e === 79 ? new O9(79, t, r) : e === 80 ? new P9(80, t, r) : new jQ(e, t, r);
    return o.parent = i, o.flags = i.flags & 50720768, o;
  }
  function KFe(e, t) {
    if (!GR(e.kind))
      return rt;
    const r = [];
    if (bW(e))
      return e.forEachChild((l) => {
        r.push(l);
      }), r;
    vu.setText((t || e.getSourceFile()).text);
    let i = e.pos;
    const o = (l) => {
      d6(r, i, l.pos, e), r.push(l), i = l.end;
    }, s = (l) => {
      d6(r, i, l.pos, e), r.push(XFe(l, e)), i = l.end;
    };
    return ze(e.jsDoc, o), i = e.pos, e.forEachChild(o, s), d6(r, i, e.end, e), vu.setText(void 0), r;
  }
  function d6(e, t, r, i) {
    for (vu.setTextPos(t); t < r; ) {
      const o = vu.scan(), s = vu.getTextPos();
      if (s <= r) {
        if (o === 79) {
          if (Gde(i))
            continue;
          D.fail(`Did not expect ${D.formatSyntaxKind(i.kind)} to have an Identifier in its trivia`);
        }
        e.push(k0e(o, t, s, i));
      }
      if (t = s, o === 1)
        break;
    }
  }
  function XFe(e, t) {
    const r = k0e(354, e.pos, e.end, t);
    r._children = [];
    let i = e.pos;
    for (const o of e)
      d6(r._children, i, o.pos, t), r._children.push(o), i = o.end;
    return d6(r._children, i, e.end, t), r;
  }
  function w0e(e) {
    return f1(e).some((t) => t.tagName.text === "inheritDoc" || t.tagName.text === "inheritdoc");
  }
  function I9(e, t) {
    if (!e)
      return rt;
    let r = sb.getJsDocTagsFromDeclarations(e, t);
    if (t && (r.length === 0 || e.some(w0e))) {
      const i = /* @__PURE__ */ new Set();
      for (const o of e) {
        const s = D0e(t, o, (l) => {
          var f;
          if (!i.has(l))
            return i.add(l), o.kind === 174 || o.kind === 175 ? l.getContextualJsDocTags(o, t) : ((f = l.declarations) == null ? void 0 : f.length) === 1 ? l.getJsDocTags() : void 0;
        });
        s && (r = [...s, ...r]);
      }
    }
    return r;
  }
  function f6(e, t) {
    if (!e)
      return rt;
    let r = sb.getJsDocCommentsFromDeclarations(e, t);
    if (t && (r.length === 0 || e.some(w0e))) {
      const i = /* @__PURE__ */ new Set();
      for (const o of e) {
        const s = D0e(t, o, (l) => {
          if (!i.has(l))
            return i.add(l), o.kind === 174 || o.kind === 175 ? l.getContextualDocumentationComment(o, t) : l.getDocumentationComment(t);
        });
        s && (r = r.length === 0 ? s.slice() : s.concat(JC(), r));
      }
    }
    return r;
  }
  function D0e(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 = pl(t);
    return sn(GI(o), (l) => {
      const f = e.getTypeAtLocation(l), d = s && f.symbol ? e.getTypeOfSymbol(f.symbol) : f, y = e.getPropertyOfType(d, t.symbol.name);
      return y ? r(y) : void 0;
    });
  }
  function YFe() {
    return {
      getNodeConstructor: () => R9,
      getTokenConstructor: () => jQ,
      getIdentifierConstructor: () => O9,
      getPrivateIdentifierConstructor: () => P9,
      getSourceFileConstructor: () => U0e,
      getSymbolConstructor: () => F0e,
      getTypeConstructor: () => B0e,
      getSignatureConstructor: () => G0e,
      getSourceMapSourceConstructor: () => V0e
    };
  }
  function _6(e) {
    let t = !0;
    for (const i in e)
      if (Rs(e, i) && !R0e(i)) {
        t = !1;
        break;
      }
    if (t)
      return e;
    const r = {};
    for (const i in e)
      if (Rs(e, i)) {
        const o = R0e(i) ? i : i.charAt(0).toLowerCase() + i.substr(1);
        r[o] = e[i];
      }
    return r;
  }
  function R0e(e) {
    return !e.length || e.charAt(0) === e.charAt(0).toLowerCase();
  }
  function N0e(e) {
    return e ? en(e, (t) => t.text).join("") : "";
  }
  function k9() {
    return {
      target: 1,
      jsx: 1
    };
  }
  function O0e() {
    return Gu.getSupportedErrorCodes();
  }
  function P0e(e, t, r) {
    e.version = r, e.scriptSnapshot = t;
  }
  function w9(e, t, r, i, o, s) {
    const l = jO(e, GF(t), r, o, s);
    return P0e(l, t, i), l;
  }
  function GQ(e, t, r, i, o) {
    if (i && r !== e.version) {
      let l;
      const f = i.span.start !== 0 ? e.text.substr(0, i.span.start) : "", d = eu(i.span) !== e.text.length ? e.text.substr(eu(i.span)) : "";
      if (i.newLength === 0)
        l = f && d ? f + d : f || d;
      else {
        const h = t.getText(i.span.start, i.span.start + i.newLength);
        l = f && d ? f + h + d : f ? f + h : h + d;
      }
      const y = MJ(e, l, i, o);
      return P0e(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 w9(e.fileName, t, s, r, !0, e.scriptKind);
  }
  function M0e(e, t = _Q(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 j0e(e);
    let l, f, d = 0;
    const y = e.getCancellationToken ? new W0e(e.getCancellationToken()) : H0e, h = e.getCurrentDirectory();
    fde((i = e.getLocalizedDiagnosticMessages) == null ? void 0 : i.bind(e));
    function b(it) {
      e.log && e.log(it);
    }
    const A = MN(e), L = Zl(A), I = qve({
      useCaseSensitiveFileNames: () => A,
      getCurrentDirectory: () => h,
      getProgram: B,
      fileExists: Fo(e, e.fileExists),
      readFile: Fo(e, e.readFile),
      getDocumentPositionMapper: Fo(e, e.getDocumentPositionMapper),
      getSourceFileLike: Fo(e, e.getSourceFileLike),
      log: b
    });
    function O(it) {
      const K = l.getSourceFile(it);
      if (!K) {
        const Pe = new Error(`Could not find source file: '${it}'.`);
        throw Pe.ProgramFiles = l.getSourceFiles().map((Z) => Z.fileName), Pe;
      }
      return K;
    }
    function k() {
      var it, K, Pe;
      if (D.assert(o !== 2), e.getProjectVersion) {
        const di = e.getProjectVersion();
        if (di) {
          if (f === di && !((it = e.hasChangedAutomaticTypeDirectiveNames) != null && it.call(e)))
            return;
          f = di;
        }
      }
      const Z = e.getTypeRootsVersion ? e.getTypeRootsVersion() : 0;
      d !== Z && (b("TypeRoots version has changed; provide new program"), l = void 0, d = Z);
      const Re = e.getScriptFileNames().slice(), q = e.getCompilationSettings() || k9(), Rt = e.hasInvalidatedResolutions || n1, ht = Fo(e, e.hasChangedAutomaticTypeDirectiveNames), dt = (K = e.getProjectReferences) == null ? void 0 : K.call(e);
      let fn, Qn = {
        getSourceFile: Jr,
        getSourceFileByPath: is,
        getCancellationToken: () => y,
        getCanonicalFileName: L,
        useCaseSensitiveFileNames: () => A,
        getNewLine: () => K0(q),
        getDefaultLibFileName: (di) => e.getDefaultLibFileName(di),
        writeFile: io,
        getCurrentDirectory: () => h,
        fileExists: (di) => e.fileExists(di),
        readFile: (di) => e.readFile && e.readFile(di),
        getSymlinkCache: Fo(e, e.getSymlinkCache),
        realpath: Fo(e, e.realpath),
        directoryExists: (di) => Kp(di, e),
        getDirectories: (di) => e.getDirectories ? e.getDirectories(di) : [],
        readDirectory: (di, ca, wn, ua, $c) => (D.checkDefined(e.readDirectory, "'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"), e.readDirectory(di, ca, wn, ua, $c)),
        onReleaseOldSourceFile: Ui,
        onReleaseParsedCommandLine: sa,
        hasInvalidatedResolutions: Rt,
        hasChangedAutomaticTypeDirectiveNames: ht,
        trace: Fo(e, e.trace),
        resolveModuleNames: Fo(e, e.resolveModuleNames),
        getModuleResolutionCache: Fo(e, e.getModuleResolutionCache),
        createHash: Fo(e, e.createHash),
        resolveTypeReferenceDirectives: Fo(e, e.resolveTypeReferenceDirectives),
        resolveModuleNameLiterals: Fo(e, e.resolveModuleNameLiterals),
        resolveTypeReferenceDirectiveReferences: Fo(e, e.resolveTypeReferenceDirectiveReferences),
        useSourceOfProjectReferenceRedirect: Fo(e, e.useSourceOfProjectReferenceRedirect),
        getParsedCommandLine: bo
      };
      const ai = Qn.getSourceFile, { getSourceFileWithCache: Si } = C8(Qn, (di) => js(di, h, L), (...di) => ai.call(Qn, ...di));
      Qn.getSourceFile = Si, (Pe = e.setCompilerHost) == null || Pe.call(e, Qn);
      const xi = {
        useCaseSensitiveFileNames: A,
        fileExists: (di) => Qn.fileExists(di),
        readFile: (di) => Qn.readFile(di),
        readDirectory: (...di) => Qn.readDirectory(...di),
        trace: Qn.trace,
        getCurrentDirectory: Qn.getCurrentDirectory,
        onUnRecoverableConfigFileDiagnostic: io
      }, Gi = t.getKeyForCompilationSettings(q);
      if (PX(l, Re, q, (di, ca) => e.getScriptVersion(ca), (di) => Qn.fileExists(di), Rt, ht, bo, dt))
        return;
      l = Z5({
        rootNames: Re,
        options: q,
        host: Qn,
        oldProgram: l,
        projectReferences: dt
      }), Qn = void 0, fn = void 0, I.clearCache(), l.getTypeChecker();
      return;
      function bo(di) {
        const ca = js(di, h, L), wn = fn == null ? void 0 : fn.get(ca);
        if (wn !== void 0)
          return wn || void 0;
        const ua = e.getParsedCommandLine ? e.getParsedCommandLine(di) : no(di);
        return (fn || (fn = /* @__PURE__ */ new Map())).set(ca, ua || !1), ua;
      }
      function no(di) {
        const ca = Jr(di, 100);
        if (ca)
          return ca.path = js(di, h, L), ca.resolvedPath = ca.path, ca.originalFileName = ca.fileName, KO(ca, xi, Da(_i(di), h), void 0, Da(di, h));
      }
      function sa(di, ca, wn) {
        var ua;
        e.getParsedCommandLine ? (ua = e.onReleaseParsedCommandLine) == null || ua.call(e, di, ca, wn) : ca && Ui(ca.sourceFile, wn);
      }
      function Ui(di, ca) {
        const wn = t.getKeyForCompilationSettings(ca);
        t.releaseDocumentWithKey(di.resolvedPath, wn, di.scriptKind, di.impliedNodeFormat);
      }
      function Jr(di, ca, wn, ua) {
        return is(di, js(di, h, L), ca, wn, ua);
      }
      function is(di, ca, wn, ua, $c) {
        D.assert(Qn, "getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.");
        const nc = e.getScriptSnapshot(di);
        if (!nc)
          return;
        const Fc = V$(di, e), qc = e.getScriptVersion(di);
        if (!$c) {
          const Bc = l && l.getSourceFileByPath(ca);
          if (Bc) {
            if (Fc === Bc.scriptKind)
              return t.updateDocumentWithKey(di, ca, e, Gi, nc, qc, Fc, wn);
            t.releaseDocumentWithKey(Bc.resolvedPath, t.getKeyForCompilationSettings(l.getCompilerOptions()), Bc.scriptKind, Bc.impliedNodeFormat);
          }
        }
        return t.acquireDocumentWithKey(di, ca, e, Gi, nc, qc, Fc, wn);
      }
    }
    function B() {
      if (o === 2) {
        D.assert(l === void 0);
        return;
      }
      return k(), l;
    }
    function V() {
      var it;
      return (it = e.getPackageJsonAutoImportProvider) == null ? void 0 : it.call(e);
    }
    function H(it, K) {
      const Pe = l.getTypeChecker(), Z = Re();
      if (!Z)
        return !1;
      for (const Rt of it)
        for (const ht of Rt.references) {
          const dt = q(ht);
          if (D.assertIsDefined(dt), K.has(ht) || lc.isDeclarationOfSymbol(dt, Z)) {
            K.add(ht), ht.isDefinition = !0;
            const fn = M$(ht, I, Fo(e, e.fileExists));
            fn && K.add(fn);
          } else
            ht.isDefinition = !1;
        }
      return !0;
      function Re() {
        for (const Rt of it)
          for (const ht of Rt.references) {
            if (K.has(ht)) {
              const fn = q(ht);
              return D.assertIsDefined(fn), Pe.getSymbolAtLocation(fn);
            }
            const dt = M$(ht, I, Fo(e, e.fileExists));
            if (dt && K.has(dt)) {
              const fn = q(dt);
              if (fn)
                return Pe.getSymbolAtLocation(fn);
            }
          }
      }
      function q(Rt) {
        const ht = l.getSourceFile(Rt.fileName);
        if (!ht)
          return;
        const dt = Lf(ht, Rt.textSpan.start);
        return lc.Core.getAdjustedNode(dt, { use: lc.FindReferencesUse.References });
      }
    }
    function te() {
      l = void 0;
    }
    function X() {
      if (l) {
        const it = t.getKeyForCompilationSettings(l.getCompilerOptions());
        ze(l.getSourceFiles(), (K) => t.releaseDocumentWithKey(K.resolvedPath, it, K.scriptKind, K.impliedNodeFormat)), l = void 0;
      }
      e = void 0;
    }
    function Y(it) {
      return k(), l.getSyntacticDiagnostics(O(it), y).slice();
    }
    function P(it) {
      k();
      const K = O(it), Pe = l.getSemanticDiagnostics(K, y);
      if (!j_(l.getCompilerOptions()))
        return Pe.slice();
      const Z = l.getDeclarationDiagnostics(K, y);
      return [...Pe, ...Z];
    }
    function de(it) {
      return k(), SQ(O(it), l, y);
    }
    function ne() {
      return k(), [...l.getOptionsDiagnostics(y), ...l.getGlobalDiagnostics(y)];
    }
    function ye(it, K, Pe = rm, Z) {
      const Re = {
        ...Pe,
        includeCompletionsForModuleExports: Pe.includeCompletionsForModuleExports || Pe.includeExternalModuleExports,
        includeCompletionsWithInsertText: Pe.includeCompletionsWithInsertText || Pe.includeInsertTextCompletions
      };
      return k(), t2.getCompletionsAtPosition(e, l, b, O(it), K, Re, Pe.triggerCharacter, Pe.triggerKind, y, Z && xl.getFormatContext(Z, e), Pe.includeSymbol);
    }
    function ie(it, K, Pe, Z, Re, q = rm, Rt) {
      return k(), t2.getCompletionEntryDetails(l, b, O(it), K, { name: Pe, source: Re, data: Rt }, e, Z && xl.getFormatContext(Z, e), q, y);
    }
    function W(it, K, Pe, Z, Re = rm) {
      return k(), t2.getCompletionEntrySymbol(l, b, O(it), K, { name: Pe, source: Z }, e, Re);
    }
    function ce(it, K) {
      k();
      const Pe = O(it), Z = Lf(Pe, K);
      if (Z === Pe)
        return;
      const Re = l.getTypeChecker(), q = pe(Z), Rt = e9e(q, Re);
      if (!Rt || Re.isUnknownSymbol(Rt)) {
        const ai = ve(Pe, q, K) ? Re.getTypeAtLocation(q) : void 0;
        return ai && {
          kind: "",
          kindModifiers: "",
          textSpan: Zu(q, Pe),
          displayParts: Re.runWithCancellationToken(y, (Si) => r6(Si, ai, WT(q))),
          documentation: ai.symbol ? ai.symbol.getDocumentationComment(Re) : void 0,
          tags: ai.symbol ? ai.symbol.getJsDocTags(Re) : void 0
        };
      }
      const { symbolKind: ht, displayParts: dt, documentation: fn, tags: Qn } = Re.runWithCancellationToken(y, (ai) => wy.getSymbolDisplayPartsDocumentationAndSymbolKind(ai, Rt, Pe, WT(q), q));
      return {
        kind: ht,
        kindModifiers: wy.getSymbolModifiers(Re, Rt),
        textSpan: Zu(q, Pe),
        displayParts: dt,
        documentation: fn,
        tags: Qn
      };
    }
    function pe(it) {
      return R1(it.parent) && it.pos === it.parent.pos ? it.parent.expression : Ak(it.parent) && it.pos === it.parent.pos || OA(it.parent) && it.parent.name === it ? it.parent : it;
    }
    function ve(it, K, Pe) {
      switch (K.kind) {
        case 79:
          return !l$(K) && !u$(K) && !rg(K.parent);
        case 208:
        case 163:
          return !Cy(it, Pe);
        case 108:
        case 194:
        case 106:
        case 199:
          return !0;
        case 233:
          return OA(K);
        default:
          return !1;
      }
    }
    function Te(it, K, Pe, Z) {
      return k(), kw.getDefinitionAtPosition(l, O(it), K, Pe, Z);
    }
    function ee(it, K) {
      return k(), kw.getDefinitionAndBoundSpan(l, O(it), K);
    }
    function $e(it, K) {
      return k(), kw.getTypeDefinitionAtPosition(l.getTypeChecker(), O(it), K);
    }
    function Ue(it, K) {
      return k(), lc.getImplementationsAtPosition(l, y, l.getSourceFiles(), O(it), K);
    }
    function Be(it, K) {
      return wo(We(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 We(it, K, Pe) {
      const Z = Wo(it);
      D.assert(Pe.some((Rt) => Wo(Rt) === Z)), k();
      const Re = fa(Pe, (Rt) => l.getSourceFile(Rt)), q = O(it);
      return h9.getDocumentHighlights(l, y, q, K, Re);
    }
    function Oe(it, K, Pe, Z, Re) {
      k();
      const q = O(it), Rt = DF(Lf(q, K));
      if (YG.nodeIsEligibleForRename(Rt))
        if (Ve(Rt) && (Ch(Rt.parent) || wx(Rt.parent)) && HI(Rt.escapedText)) {
          const { openingElement: ht, closingElement: dt } = Rt.parent.parent;
          return [ht, dt].map((fn) => {
            const Qn = Zu(fn.tagName, q);
            return {
              fileName: q.fileName,
              textSpan: Qn,
              ...lc.toContextSpan(Qn, q, fn.parent)
            };
          });
        } else
          return Xe(Rt, K, { findInStrings: Pe, findInComments: Z, providePrefixAndSuffixTextForRename: Re, use: lc.FindReferencesUse.Rename }, (ht, dt, fn) => lc.toRenameLocation(ht, dt, fn, Re || !1));
    }
    function Me(it, K) {
      return k(), Xe(Lf(O(it), K), K, { use: lc.FindReferencesUse.References }, lc.toReferenceEntry);
    }
    function Xe(it, K, Pe, Z) {
      k();
      const Re = Pe && Pe.use === lc.FindReferencesUse.Rename ? l.getSourceFiles().filter((q) => !l.isSourceFileDefaultLibrary(q)) : l.getSourceFiles();
      return lc.findReferenceOrRenameEntries(l, y, Re, it, K, Pe, Z);
    }
    function He(it, K) {
      return k(), lc.findReferencedSymbols(l, y, l.getSourceFiles(), O(it), K);
    }
    function Fe(it) {
      return k(), lc.Core.getReferencesForFileName(it, l, l.getSourceFiles()).map(lc.toReferenceEntry);
    }
    function st(it, K, Pe, Z = !1) {
      k();
      const Re = Pe ? [O(Pe)] : l.getSourceFiles();
      return r0e(Re, l.getTypeChecker(), y, it, K, Z);
    }
    function Ct(it, K, Pe) {
      k();
      const Z = O(it), Re = e.getCustomTransformers && e.getCustomTransformers();
      return Jhe(l, Z, !!K, y, Re, Pe);
    }
    function Et(it, K, { triggerReason: Pe } = rm) {
      k();
      const Z = O(it);
      return $6.getSignatureHelpItems(l, Z, K, Pe, y);
    }
    function Vt(it) {
      return s.getCurrentSourceFile(it);
    }
    function tt(it, K, Pe) {
      const Z = s.getCurrentSourceFile(it), Re = Lf(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 (jC(q) || mye(q))
          q = q.parent;
        else if (f$(q))
          if (q.parent.parent.kind === 264 && q.parent.parent.body === q.parent)
            q = q.parent.parent.name;
          else
            break;
        else
          break;
      return _l(q.getStart(), Re.getEnd());
    }
    function at(it, K) {
      const Pe = s.getCurrentSourceFile(it);
      return YQ.spanInSourceFileAtLocation(Pe, K);
    }
    function an(it) {
      return s0e(s.getCurrentSourceFile(it), y);
    }
    function Xt(it) {
      return c0e(s.getCurrentSourceFile(it), y);
    }
    function Pn(it, K, Pe) {
      return k(), (Pe || "original") === "2020" ? U9.v2020.getSemanticClassifications(l, y, O(it), K) : Sve(l.getTypeChecker(), y, O(it), l.getClassifiableNames(), K);
    }
    function Wn(it, K, Pe) {
      return k(), (Pe || "original") === "original" ? dQ(l.getTypeChecker(), y, O(it), l.getClassifiableNames(), K) : U9.v2020.getEncodedSemanticClassifications(l, y, O(it), K);
    }
    function In(it, K) {
      return Lve(y, s.getCurrentSourceFile(it), K);
    }
    function Yt(it, K) {
      return fQ(y, s.getCurrentSourceFile(it), K);
    }
    function _r(it) {
      const K = s.getCurrentSourceFile(it);
      return Xte.collectElements(K, y);
    }
    const Ai = new Map(Object.entries({
      [18]: 19,
      [20]: 21,
      [22]: 23,
      [31]: 29
    }));
    Ai.forEach((it, K) => Ai.set(it.toString(), Number(K)));
    function Ki(it, K) {
      const Pe = s.getCurrentSourceFile(it), Z = sw(Pe, K), Re = Z.getStart(Pe) === K ? Ai.get(Z.kind.toString()) : void 0, q = Re && gs(Z.parent, Re, Pe);
      return q ? [Zu(Z, Pe), Zu(q, Pe)].sort((Rt, ht) => Rt.start - ht.start) : rt;
    }
    function Xi(it, K, Pe) {
      let Z = rc();
      const Re = _6(Pe), q = s.getCurrentSourceFile(it);
      b("getIndentationAtPosition: getCurrentSourceFile: " + (rc() - Z)), Z = rc();
      const Rt = xl.SmartIndenter.getIndentation(K, q, Re);
      return b("getIndentationAtPosition: computeIndentation  : " + (rc() - Z)), Rt;
    }
    function Nr(it, K, Pe, Z) {
      const Re = s.getCurrentSourceFile(it);
      return xl.formatSelection(K, Pe, Re, xl.getFormatContext(_6(Z), e));
    }
    function At(it, K) {
      return xl.formatDocument(s.getCurrentSourceFile(it), xl.getFormatContext(_6(K), e));
    }
    function vn(it, K, Pe, Z) {
      const Re = s.getCurrentSourceFile(it), q = xl.getFormatContext(_6(Z), e);
      if (!Cy(Re, K))
        switch (Pe) {
          case "{":
            return xl.formatOnOpeningCurly(K, Re, q);
          case "}":
            return xl.formatOnClosingCurly(K, Re, q);
          case ";":
            return xl.formatOnSemicolon(K, Re, q);
          case `
`:
            return xl.formatOnEnter(K, Re, q);
        }
      return [];
    }
    function Ht(it, K, Pe, Z, Re, q = rm) {
      k();
      const Rt = O(it), ht = _l(K, Pe), dt = xl.getFormatContext(Re, e);
      return wo(fA(Z, M0, Vs), (fn) => (y.throwIfCancellationRequested(), Gu.getFixes({ errorCode: fn, sourceFile: Rt, span: ht, program: l, host: e, cancellationToken: y, formatContext: dt, preferences: q })));
    }
    function dn(it, K, Pe, Z = rm) {
      k(), D.assert(it.type === "file");
      const Re = O(it.fileName), q = xl.getFormatContext(Pe, e);
      return Gu.getAllFixes({ fixId: K, sourceFile: Re, program: l, host: e, cancellationToken: y, formatContext: q, preferences: Z });
    }
    function ir(it, K, Pe = rm) {
      var Z;
      k(), D.assert(it.type === "file");
      const Re = O(it.fileName), q = xl.getFormatContext(K, e), Rt = (Z = it.mode) != null ? Z : it.skipDestructiveCodeActions ? "SortAndCombine" : "All";
      return X_.organizeImports(Re, q, e, l, Pe, Rt);
    }
    function lr(it, K, Pe, Z = rm) {
      return Dve(B(), it, K, e, xl.getFormatContext(Pe, e), Z, I);
    }
    function Ni(it, K) {
      const Pe = typeof it == "string" ? K : it;
      return Ba(Pe) ? Promise.all(Pe.map((Z) => pi(Z))) : pi(Pe);
    }
    function pi(it) {
      const K = (Pe) => js(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 Nn(it, K, Pe, Z) {
      const Re = Z ? xl.getFormatContext(Z, e).options : void 0;
      return sb.getDocCommentTemplateAtPosition(rb(e, Re), s.getCurrentSourceFile(it), K, Pe);
    }
    function nn(it, K, Pe) {
      if (Pe === 60)
        return !1;
      const Z = s.getCurrentSourceFile(it);
      if (qT(Z, K))
        return !1;
      if (Cye(Z, K))
        return Pe === 123;
      if (b$(Z, K))
        return !1;
      switch (Pe) {
        case 39:
        case 34:
        case 96:
          return !Cy(Z, K);
      }
      return !0;
    }
    function Mn(it, K) {
      const Pe = s.getCurrentSourceFile(it), Z = Sl(K, Pe);
      if (!Z)
        return;
      const Re = Z.kind === 31 && Ch(Z.parent) ? Z.parent.parent : yx(Z) && Ty(Z.parent) ? Z.parent : void 0;
      if (Re && xe(Re))
        return { newText: `</${Re.openingElement.tagName.getText(Pe)}>` };
      const q = Z.kind === 31 && Rx(Z.parent) ? Z.parent.parent : yx(Z) && Dx(Z.parent) ? Z.parent : void 0;
      if (q && _t(q))
        return { newText: "</>" };
    }
    function Ar(it, K) {
      return {
        lineStarts: it.getLineStarts(),
        firstLine: it.getLineAndCharacterOfPosition(K.pos).line,
        lastLine: it.getLineAndCharacterOfPosition(K.end).line
      };
    }
    function Vr(it, K, Pe) {
      const Z = s.getCurrentSourceFile(it), Re = [], { lineStarts: q, firstLine: Rt, lastLine: ht } = Ar(Z, K);
      let dt = Pe || !1, fn = Number.MAX_VALUE;
      const Qn = /* @__PURE__ */ new Map(), ai = new RegExp(/\S/), Si = NF(Z, q[Rt]), xi = Si ? "{/*" : "//";
      for (let Gi = Rt; Gi <= ht; Gi++) {
        const _o = Z.text.substring(q[Gi], Z.getLineEndOfPosition(q[Gi])), bo = ai.exec(_o);
        bo && (fn = Math.min(fn, bo.index), Qn.set(Gi.toString(), bo.index), _o.substr(bo.index, xi.length) !== xi && (dt = Pe === void 0 || Pe));
      }
      for (let Gi = Rt; Gi <= ht; Gi++) {
        if (Rt !== ht && q[Gi] === K.end)
          continue;
        const _o = Qn.get(Gi.toString());
        _o !== void 0 && (Si ? Re.push.apply(Re, ke(it, { pos: q[Gi] + fn, end: Z.getLineEndOfPosition(q[Gi]) }, dt, Si)) : dt ? Re.push({
          newText: xi,
          span: {
            length: 0,
            start: q[Gi] + fn
          }
        }) : Z.text.substr(q[Gi] + _o, xi.length) === xi && Re.push({
          newText: "",
          span: {
            length: xi.length,
            start: q[Gi] + _o
          }
        }));
      }
      return Re;
    }
    function ke(it, K, Pe, Z) {
      var Re;
      const q = s.getCurrentSourceFile(it), Rt = [], { text: ht } = q;
      let dt = !1, fn = Pe || !1;
      const Qn = [];
      let { pos: ai } = K;
      const Si = Z !== void 0 ? Z : NF(q, ai), xi = Si ? "{/*" : "/*", Gi = Si ? "*/}" : "*/", _o = Si ? "\\{\\/\\*" : "\\/\\*", bo = Si ? "\\*\\/\\}" : "\\*\\/";
      for (; ai <= K.end; ) {
        const no = ht.substr(ai, xi.length) === xi ? xi.length : 0, sa = Cy(q, ai + no);
        if (sa)
          Si && (sa.pos--, sa.end++), Qn.push(sa.pos), sa.kind === 3 && Qn.push(sa.end), dt = !0, ai = sa.end + 1;
        else {
          const Ui = ht.substring(ai, K.end).search(`(${_o})|(${bo})`);
          fn = Pe !== void 0 ? Pe : fn || !Vye(ht, ai, Ui === -1 ? K.end : ai + Ui), ai = Ui === -1 ? K.end + 1 : ai + Ui + Gi.length;
        }
      }
      if (fn || !dt) {
        ((Re = Cy(q, K.pos)) == null ? void 0 : Re.kind) !== 2 && _v(Qn, K.pos, Vs), _v(Qn, K.end, Vs);
        const no = Qn[0];
        ht.substr(no, xi.length) !== xi && Rt.push({
          newText: xi,
          span: {
            length: 0,
            start: no
          }
        });
        for (let sa = 1; sa < Qn.length - 1; sa++)
          ht.substr(Qn[sa] - Gi.length, Gi.length) !== Gi && Rt.push({
            newText: Gi,
            span: {
              length: 0,
              start: Qn[sa]
            }
          }), ht.substr(Qn[sa], xi.length) !== xi && Rt.push({
            newText: xi,
            span: {
              length: 0,
              start: Qn[sa]
            }
          });
        Rt.length % 2 !== 0 && Rt.push({
          newText: Gi,
          span: {
            length: 0,
            start: Qn[Qn.length - 1]
          }
        });
      } else
        for (const no of Qn) {
          const sa = no - Gi.length > 0 ? no - Gi.length : 0, Ui = ht.substr(sa, Gi.length) === Gi ? Gi.length : 0;
          Rt.push({
            newText: "",
            span: {
              length: xi.length,
              start: no - Ui
            }
          });
        }
      return Rt;
    }
    function gt(it, K) {
      const Pe = s.getCurrentSourceFile(it), { firstLine: Z, lastLine: Re } = Ar(Pe, K);
      return Z === Re && K.pos !== K.end ? ke(it, K, !0) : Vr(it, K, !0);
    }
    function Nt(it, K) {
      const Pe = s.getCurrentSourceFile(it), Z = [], { pos: Re } = K;
      let { end: q } = K;
      Re === q && (q += NF(Pe, Re) ? 2 : 1);
      for (let Rt = Re; Rt <= q; Rt++) {
        const ht = Cy(Pe, Rt);
        if (ht) {
          switch (ht.kind) {
            case 2:
              Z.push.apply(Z, Vr(it, { end: ht.end, pos: ht.pos + 1 }, !1));
              break;
            case 3:
              Z.push.apply(Z, ke(it, { end: ht.end, pos: ht.pos + 1 }, !1));
          }
          Rt = ht.end + 1;
        }
      }
      return Z;
    }
    function xe({ openingElement: it, closingElement: K, parent: Pe }) {
      return !tb(it.tagName, K.tagName) || Ty(Pe) && tb(it.tagName, Pe.openingElement.tagName) && xe(Pe);
    }
    function _t({ closingFragment: it, parent: K }) {
      return !!(it.flags & 131072) || Dx(K) && _t(K);
    }
    function _e(it, K, Pe) {
      const Z = s.getCurrentSourceFile(it), Re = xl.getRangeOfEnclosingComment(Z, K);
      return Re && (!Pe || Re.kind === 3) ? jv(Re) : void 0;
    }
    function re(it, K) {
      k();
      const Pe = O(it);
      y.throwIfCancellationRequested();
      const Z = Pe.text, Re = [];
      if (K.length > 0 && !dt(Pe.fileName)) {
        const fn = Rt();
        let Qn;
        for (; Qn = fn.exec(Z); ) {
          y.throwIfCancellationRequested();
          const ai = 3;
          D.assert(Qn.length === K.length + ai);
          const Si = Qn[1], xi = Qn.index + Si.length;
          if (!Cy(Pe, xi))
            continue;
          let Gi;
          for (let bo = 0; bo < K.length; bo++)
            Qn[bo + ai] && (Gi = K[bo]);
          if (Gi === void 0)
            return D.fail();
          if (ht(Z.charCodeAt(xi + Gi.text.length)))
            continue;
          const _o = Qn[2];
          Re.push({ descriptor: Gi, message: _o, position: xi });
        }
      }
      return Re;
      function q(fn) {
        return fn.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
      }
      function Rt() {
        const fn = /(?:\/\/+\s*)/.source, Qn = /(?:\/\*+\s*)/.source, Si = "(" + /(?:^(?:\s|\*)*)/.source + "|" + fn + "|" + Qn + ")", xi = "(?:" + en(K, (sa) => "(" + q(sa.text) + ")").join("|") + ")", Gi = /(?:$|\*\/)/.source, _o = /(?:.*?)/.source, bo = "(" + xi + _o + ")", no = Si + bo + Gi;
        return new RegExp(no, "gim");
      }
      function ht(fn) {
        return fn >= 97 && fn <= 122 || fn >= 65 && fn <= 90 || fn >= 48 && fn <= 57;
      }
      function dt(fn) {
        return uu(fn, "/node_modules/");
      }
    }
    function he(it, K, Pe) {
      return k(), YG.getRenameInfo(l, O(it), K, Pe || {});
    }
    function j(it, K, Pe, Z, Re, q) {
      const [Rt, ht] = typeof K == "number" ? [K, void 0] : [K.pos, K.end];
      return {
        file: it,
        startPosition: Rt,
        endPosition: ht,
        program: B(),
        host: e,
        formatContext: xl.getFormatContext(Z, e),
        cancellationToken: y,
        preferences: Pe,
        triggerReason: Re,
        kind: q
      };
    }
    function je(it, K, Pe) {
      return {
        file: it,
        program: B(),
        host: e,
        span: K,
        preferences: Pe,
        cancellationToken: y
      };
    }
    function Qe(it, K) {
      return Cne.getSmartSelectionRange(K, s.getCurrentSourceFile(it));
    }
    function Ke(it, K, Pe = rm, Z, Re) {
      k();
      const q = O(it);
      return Bw.getApplicableRefactors(j(q, K, Pe, rm, Z, Re));
    }
    function Ut(it, K, Pe, Z, Re, q = rm) {
      k();
      const Rt = O(it);
      return Bw.getEditsForRefactor(j(Rt, Pe, q, K), Z, Re);
    }
    function ln(it, K) {
      return K === 0 ? { line: 0, character: 0 } : I.toLineColumnOffset(it, K);
    }
    function Sn(it, K) {
      k();
      const Pe = Xx.resolveCallHierarchyDeclaration(l, Lf(O(it), K));
      return Pe && dve(Pe, (Z) => Xx.createCallHierarchyItem(l, Z));
    }
    function Er(it, K) {
      k();
      const Pe = O(it), Z = eQ(Xx.resolveCallHierarchyDeclaration(l, K === 0 ? Pe : Lf(Pe, K)));
      return Z ? Xx.getIncomingCalls(l, Z, y) : [];
    }
    function ue(it, K) {
      k();
      const Pe = O(it), Z = eQ(Xx.resolveCallHierarchyDeclaration(l, K === 0 ? Pe : Lf(Pe, K)));
      return Z ? Xx.getOutgoingCalls(l, Z) : [];
    }
    function pt(it, K, Pe = rm) {
      k();
      const Z = O(it);
      return Bte.provideInlayHints(je(Z, K, Pe));
    }
    const Wt = {
      dispose: X,
      cleanupSemanticCache: te,
      getSyntacticDiagnostics: Y,
      getSemanticDiagnostics: P,
      getSuggestionDiagnostics: de,
      getCompilerOptionsDiagnostics: ne,
      getSyntacticClassifications: In,
      getSemanticClassifications: Pn,
      getEncodedSyntacticClassifications: Yt,
      getEncodedSemanticClassifications: Wn,
      getCompletionsAtPosition: ye,
      getCompletionEntryDetails: ie,
      getCompletionEntrySymbol: W,
      getSignatureHelpItems: Et,
      getQuickInfoAtPosition: ce,
      getDefinitionAtPosition: Te,
      getDefinitionAndBoundSpan: ee,
      getImplementationAtPosition: Ue,
      getTypeDefinitionAtPosition: $e,
      getReferencesAtPosition: Me,
      findReferences: He,
      getFileReferences: Fe,
      getOccurrencesAtPosition: Be,
      getDocumentHighlights: We,
      getNameOrDottedNameSpan: tt,
      getBreakpointStatementAtPosition: at,
      getNavigateToItems: st,
      getRenameInfo: he,
      getSmartSelectionRange: Qe,
      findRenameLocations: Oe,
      getNavigationBarItems: an,
      getNavigationTree: Xt,
      getOutliningSpans: _r,
      getTodoComments: re,
      getBraceMatchingAtPosition: Ki,
      getIndentationAtPosition: Xi,
      getFormattingEditsForRange: Nr,
      getFormattingEditsForDocument: At,
      getFormattingEditsAfterKeystroke: vn,
      getDocCommentTemplateAtPosition: Nn,
      isValidBraceCompletionAtPosition: nn,
      getJsxClosingTagAtPosition: Mn,
      getSpanOfEnclosingComment: _e,
      getCodeFixesAtPosition: Ht,
      getCombinedCodeFix: dn,
      applyCodeActionCommand: Ni,
      organizeImports: ir,
      getEditsForFileRename: lr,
      getEmitOutput: Ct,
      getNonBoundSourceFile: Vt,
      getProgram: B,
      getCurrentProgram: () => l,
      getAutoImportProvider: V,
      updateIsDefinitionOfReferencedSymbols: H,
      getApplicableRefactors: Ke,
      getEditsForRefactor: Ut,
      toLineColumnOffset: ln,
      getSourceMapper: () => I,
      clearSourceMapperCache: () => I.clearCache(),
      prepareCallHierarchy: Sn,
      provideCallHierarchyIncomingCalls: Er,
      provideCallHierarchyOutgoingCalls: ue,
      toggleLineComment: Vr,
      toggleMultilineComment: ke,
      commentSelection: gt,
      uncommentSelection: Nt,
      provideInlayHints: pt,
      getSupportedCodeFixes: O0e
    };
    switch (o) {
      case 0:
        break;
      case 1:
        WQ.forEach((it) => Wt[it] = () => {
          throw new Error(`LanguageService Operation: ${it} not allowed in LanguageServiceMode.PartialSemantic`);
        });
        break;
      case 2:
        z0e.forEach((it) => Wt[it] = () => {
          throw new Error(`LanguageService Operation: ${it} not allowed in LanguageServiceMode.Syntactic`);
        });
        break;
      default:
        D.assertNever(o);
    }
    return Wt;
  }
  function UQ(e) {
    return e.nameTable || $Fe(e), e.nameTable;
  }
  function $Fe(e) {
    const t = e.nameTable = /* @__PURE__ */ new Map();
    e.forEachChild(function r(i) {
      if (Ve(i) && !u$(i) && i.escapedText || zf(i) && QFe(i)) {
        const o = VI(i);
        t.set(o, t.get(o) === void 0 ? i.pos : -1);
      } else if (Di(i)) {
        const o = i.escapedText;
        t.set(o, t.get(o) === void 0 ? i.pos : -1);
      }
      if (Ra(i, r), bf(i))
        for (const o of i.jsDoc)
          Ra(o, r);
    });
  }
  function QFe(e) {
    return lg(e) || e.parent.kind === 280 || t9e(e) || AN(e);
  }
  function p6(e) {
    const t = ZFe(e);
    return t && (xs(t.parent) || O1(t.parent)) ? t : void 0;
  }
  function ZFe(e) {
    switch (e.kind) {
      case 10:
      case 14:
      case 8:
        if (e.parent.kind === 164)
          return EW(e.parent.parent) ? e.parent.parent : void 0;
      case 79:
        return EW(e.parent) && (e.parent.parent.kind === 207 || e.parent.parent.kind === 289) && e.parent.name === e ? e.parent : void 0;
    }
  }
  function e9e(e, t) {
    const r = p6(e);
    if (r) {
      const i = t.getContextualType(r.parent), o = i && D9(r, t, i, !1);
      if (o && o.length === 1)
        return ss(o);
    }
    return t.getSymbolAtLocation(e);
  }
  function D9(e, t, r, i) {
    const o = Z8(e.name);
    if (!o)
      return rt;
    if (!r.isUnion()) {
      const l = r.getProperty(o);
      return l ? [l] : rt;
    }
    const s = fa(r.types, (l) => (xs(e.parent) || O1(e.parent)) && t.isTypeInvalidDueToUnionDiscriminant(l, e.parent) ? void 0 : l.getProperty(o));
    if (i && (s.length === 0 || s.length === r.types.length)) {
      const l = r.getProperty(o);
      if (l)
        return [l];
    }
    return s.length === 0 ? fa(r.types, (l) => l.getProperty(o)) : s;
  }
  function t9e(e) {
    return e && e.parent && e.parent.kind === 209 && e.parent.argumentExpression === e;
  }
  function n9e(e) {
    if (ql)
      return Pi(_i(Wo(ql.getExecutingFilePath())), _M(e));
    throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. ");
  }
  var VQ, R9, N9, F0e, jQ, O9, P9, B0e, G0e, U0e, V0e, j0e, H0e, W0e, HQ, WQ, z0e, r9e = C({
    "src/services/services.ts"() {
      Xr(), Xr(), o0e(), I0e(), VQ = "0.8", R9 = 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(!Yp(this.pos) && !Yp(this.end), e || "Node must have a real position for this operation");
        }
        getSourceFile() {
          return er(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 = KFe(this, e));
        }
        getFirstToken(e) {
          this.assertHasRealPosition();
          const t = this.getChildren(e);
          if (!t.length)
            return;
          const r = cn(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 = ec(t);
          if (r)
            return r.kind < 163 ? r : r.getLastToken(e);
        }
        forEachChild(e, t) {
          return Ra(this, e, t);
        }
      }, N9 = 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 er(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() {
        }
      }, F0e = class {
        constructor(e, t) {
          this.id = 0, this.mergeId = 0, this.flags = e, this.escapedName = t;
        }
        getFlags() {
          return this.flags;
        }
        get name() {
          return Oc(this);
        }
        getEscapedName() {
          return this.escapedName;
        }
        getName() {
          return this.name;
        }
        getDeclarations() {
          return this.declarations;
        }
        getDocumentationComment(e) {
          if (!this.documentationComment)
            if (this.documentationComment = rt, !this.declarations && Dm(this) && this.links.target && Dm(this.links.target) && this.links.target.links.tupleLabelDeclaration) {
              const t = this.links.target.links.tupleLabelDeclaration;
              this.documentationComment = f6([t], e);
            } else
              this.documentationComment = f6(this.declarations, e);
          return this.documentationComment;
        }
        getContextualDocumentationComment(e, t) {
          if (e) {
            if (xv(e) && (this.contextualGetAccessorDocumentationComment || (this.contextualGetAccessorDocumentationComment = f6(yn(this.declarations, xv), t)), Ie(this.contextualGetAccessorDocumentationComment)))
              return this.contextualGetAccessorDocumentationComment;
            if (_y(e) && (this.contextualSetAccessorDocumentationComment || (this.contextualSetAccessorDocumentationComment = f6(yn(this.declarations, _y), t)), Ie(this.contextualSetAccessorDocumentationComment)))
              return this.contextualSetAccessorDocumentationComment;
          }
          return this.getDocumentationComment(t);
        }
        getJsDocTags(e) {
          return this.tags === void 0 && (this.tags = I9(this.declarations, e)), this.tags;
        }
        getContextualJsDocTags(e, t) {
          if (e) {
            if (xv(e) && (this.contextualGetAccessorTags || (this.contextualGetAccessorTags = I9(yn(this.declarations, xv), t)), Ie(this.contextualGetAccessorTags)))
              return this.contextualGetAccessorTags;
            if (_y(e) && (this.contextualSetAccessorTags || (this.contextualSetAccessorTags = I9(yn(this.declarations, _y), t)), Ie(this.contextualSetAccessorTags)))
              return this.contextualSetAccessorTags;
          }
          return this.getJsDocTags(t);
        }
      }, jQ = class extends N9 {
        constructor(e, t, r) {
          super(t, r), this.kind = e;
        }
      }, O9 = class extends N9 {
        constructor(e, t, r) {
          super(t, r), this.kind = 79;
        }
        get text() {
          return Pr(this);
        }
      }, O9.prototype.kind = 79, P9 = class extends N9 {
        constructor(e, t, r) {
          super(t, r), this.kind = 80;
        }
        get text() {
          return Pr(this);
        }
      }, P9.prototype.kind = 80, B0e = 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 !!(Zr(this) & 3);
        }
        isClass() {
          return !!(Zr(this) & 1);
        }
        isIndexType() {
          return !!(this.flags & 4194304);
        }
        get typeArguments() {
          if (Zr(this) & 4)
            return this.checker.getTypeArguments(this);
        }
      }, G0e = 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() && pk(t.type)) {
            const r = t.type.getConstraint();
            if (r)
              return this.checker.getIndexType(r);
          }
          return t;
        }
        getDocumentationComment() {
          return this.documentationComment || (this.documentationComment = f6(XE(this.declaration), this.checker));
        }
        getJsDocTags() {
          return this.jsDocTags || (this.jsDocTags = I9(XE(this.declaration), this.checker));
        }
      }, U0e = class extends R9 {
        constructor(e, t, r) {
          super(e, t, r), this.kind = 308;
        }
        update(e, t) {
          return MJ(this, e, t);
        }
        getLineAndCharacterOfPosition(e) {
          return ac(this, e);
        }
        getLineStarts() {
          return eg(this);
        }
        getPositionOfLineAndCharacter(e, t, r) {
          return VH(eg(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 = l_();
          return this.forEachChild(o), e;
          function t(s) {
            const l = i(s);
            l && e.add(l, s);
          }
          function r(s) {
            let l = e.get(s);
            return l || e.set(s, l = []), l;
          }
          function i(s) {
            const l = XH(s);
            return l && (Ts(l) && Mr(l.expression) ? l.expression.name.text : gc(l) ? Z8(l) : void 0);
          }
          function o(s) {
            switch (s.kind) {
              case 259:
              case 215:
              case 171:
              case 170:
                const l = s, f = i(l);
                if (f) {
                  const h = r(f), b = ec(h);
                  b && l.parent === b.parent && l.symbol === b.symbol ? l.body && !b.body && (h[h.length - 1] = l) : h.push(l);
                }
                Ra(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), Ra(s, o);
                break;
              case 166:
                if (!Kr(s, 16476))
                  break;
              case 257:
              case 205: {
                const h = s;
                if (Ja(h.name)) {
                  Ra(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 && (z_(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:
                Ac(s) !== 0 && t(s);
              default:
                Ra(s, o);
            }
          }
        }
      }, V0e = class {
        constructor(e, t, r) {
          this.fileName = e, this.text = t, this.skipTrivia = r;
        }
        getLineAndCharacterOfPosition(e) {
          return ac(this, e);
        }
      }, j0e = class {
        constructor(e) {
          this.host = e;
        }
        getCurrentSourceFile(e) {
          var t, r, i, o, s, l, f, d;
          const y = this.host.getScriptSnapshot(e);
          if (!y)
            throw new Error("Could not find file: '" + e + "'.");
          const h = V$(e, this.host), b = this.host.getScriptVersion(e);
          let A;
          if (this.currentFileName !== e) {
            const L = {
              languageVersion: 99,
              impliedNodeFormat: Q5(js(e, this.host.getCurrentDirectory(), ((i = (r = (t = this.host).getCompilerHost) == null ? void 0 : r.call(t)) == null ? void 0 : i.getCanonicalFileName) || q0(this.host)), (d = (f = (l = (s = (o = this.host).getCompilerHost) == null ? void 0 : s.call(o)) == null ? void 0 : l.getModuleResolutionCache) == null ? void 0 : f.call(l)) == null ? void 0 : d.getPackageJsonInfoCache(), this.host, this.host.getCompilationSettings()),
              setExternalModuleIndicator: zN(this.host.getCompilationSettings())
            };
            A = w9(e, y, L, b, !0, h);
          } else if (this.currentFileVersion !== b) {
            const L = y.getChangeRange(this.currentFileScriptSnapshot);
            A = GQ(this.currentSourceFile, y, b, L);
          }
          return A && (this.currentFileVersion = b, this.currentFileName = e, this.currentFileScriptSnapshot = y, this.currentSourceFile = A), this.currentSourceFile;
        }
      }, H0e = {
        isCancellationRequested: n1,
        throwIfCancellationRequested: io
      }, W0e = class {
        constructor(e) {
          this.cancellationToken = e;
        }
        isCancellationRequested() {
          return this.cancellationToken.isCancellationRequested();
        }
        throwIfCancellationRequested() {
          var e;
          if (this.isCancellationRequested())
            throw (e = yi) == null || e.instant(yi.Phase.Session, "cancellationThrown", { kind: "CancellationTokenObject" }), new oI();
        }
      }, HQ = class {
        constructor(e, t = 20) {
          this.hostCancellationToken = e, this.throttleWaitMilliseconds = t, this.lastCancellationCheckTime = 0;
        }
        isCancellationRequested() {
          const e = rc();
          return Math.abs(e - this.lastCancellationCheckTime) >= this.throttleWaitMilliseconds ? (this.lastCancellationCheckTime = e, this.hostCancellationToken.isCancellationRequested()) : !1;
        }
        throwIfCancellationRequested() {
          var e;
          if (this.isCancellationRequested())
            throw (e = yi) == null || e.instant(yi.Phase.Session, "cancellationThrown", { kind: "ThrottledCancellationToken" }), new oI();
        }
      }, WQ = [
        "getSemanticDiagnostics",
        "getSuggestionDiagnostics",
        "getCompilerOptionsDiagnostics",
        "getSemanticClassifications",
        "getEncodedSemanticClassifications",
        "getCodeFixesAtPosition",
        "getCombinedCodeFix",
        "applyCodeActionCommand",
        "organizeImports",
        "getEditsForFileRename",
        "getEmitOutput",
        "getApplicableRefactors",
        "getEditsForRefactor",
        "prepareCallHierarchy",
        "provideCallHierarchyIncomingCalls",
        "provideCallHierarchyOutgoingCalls",
        "provideInlayHints",
        "getSupportedCodeFixes"
      ], z0e = [
        ...WQ,
        "getCompletionsAtPosition",
        "getCompletionEntryDetails",
        "getCompletionEntrySymbol",
        "getSignatureHelpItems",
        "getQuickInfoAtPosition",
        "getDefinitionAtPosition",
        "getDefinitionAndBoundSpan",
        "getImplementationAtPosition",
        "getTypeDefinitionAtPosition",
        "getReferencesAtPosition",
        "findReferences",
        "getOccurrencesAtPosition",
        "getDocumentHighlights",
        "getNavigateToItems",
        "getRenameInfo",
        "findRenameLocations",
        "getApplicableRefactors"
      ], ude(YFe());
    }
  });
  function i9e(e, t, r) {
    const i = [];
    r = LQ(r, i);
    const o = Ba(e) ? e : [e], s = E8(void 0, void 0, N, r, o, t, !0);
    return s.diagnostics = ma(s.diagnostics, i), s;
  }
  var a9e = C({
    "src/services/transform.ts"() {
      Xr();
    }
  });
  function M9(e, t) {
    e && e.log("*INTERNAL ERROR* - Exception in typescript services: " + t.message);
  }
  function o9e(e, t, r, i) {
    let o;
    i && (e.log(t), o = rc());
    const s = r();
    if (i) {
      const l = rc();
      if (e.log(`${t} completed in ${l - o} msec`), Ua(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 zQ(e, t, r, i) {
    return q0e(e, t, !0, r, i);
  }
  function q0e(e, t, r, i, o) {
    try {
      const s = o9e(e, t, i, o);
      return r ? JSON.stringify({ result: s }) : s;
    } catch (s) {
      return s instanceof oI ? JSON.stringify({ canceled: !0 }) : (M9(e, s), s.description = t, JSON.stringify({ error: s }));
    }
  }
  function qQ(e, t) {
    return e.map((r) => s9e(r, t));
  }
  function s9e(e, t) {
    return {
      message: Uv(e.messageText, t),
      start: e.start,
      length: e.length,
      category: W4(e),
      code: e.code,
      reportsUnnecessary: e.reportsUnnecessary,
      reportsDeprecated: e.reportsDeprecated
    };
  }
  function JQ(e) {
    return { spans: e.spans.join(","), endOfLineState: e.endOfLineState };
  }
  var F9, J0e, KQ, XQ, B9, K0e, X0e, Y0e, $0e, c9e = C({
    "src/services/shims.ts"() {
      Xr(), F9 = function() {
        return this;
      }(), J0e = 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 PR(Ll(i.span.start, i.span.length), i.newLength);
        }
        dispose() {
          "dispose" in this.scriptSnapshotShim && this.scriptSnapshotShim.dispose();
        }
      }, KQ = 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 en(t, (o) => {
              const s = rR(i, o);
              return s ? { resolvedFileName: s, extension: eO(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 en(t, (o) => rR(i, Ua(o) ? o : D_(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 J0e(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 HQ(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 = ok(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);
        }
      }, XQ = 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 = ok(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));
        }
      }, B9 = class {
        constructor(e) {
          this.factory = e, e.registerShim(this);
        }
        dispose(e) {
          this.factory.unregisterShim(this);
        }
      }, K0e = class extends B9 {
        constructor(e, t, r) {
          super(e), this.host = t, this.languageService = r, this.logPerformance = !1, this.logger = this.host;
        }
        forwardJSONCall(e, t) {
          return zQ(this.logger, e, t, this.logPerformance);
        }
        dispose(e) {
          this.logger.log("dispose()"), this.languageService.dispose(), this.languageService = null, F9 && F9.CollectGarbage && (F9.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 = rb(this.host, void 0);
          return qQ(e, t);
        }
        getSyntacticClassifications(e, t, r) {
          return this.forwardJSONCall(`getSyntacticClassifications('${e}', ${t}, ${r})`, () => this.languageService.getSyntacticClassifications(e, Ll(t, r)));
        }
        getSemanticClassifications(e, t, r) {
          return this.forwardJSONCall(`getSemanticClassifications('${e}', ${t}, ${r})`, () => this.languageService.getSemanticClassifications(e, Ll(t, r)));
        }
        getEncodedSyntacticClassifications(e, t, r) {
          return this.forwardJSONCall(`getEncodedSyntacticClassifications('${e}', ${t}, ${r})`, () => JQ(this.languageService.getEncodedSyntacticClassifications(e, Ll(t, r))));
        }
        getEncodedSemanticClassifications(e, t, r) {
          return this.forwardJSONCall(`getEncodedSemanticClassifications('${e}', ${t}, ${r})`, () => JQ(this.languageService.getEncodedSemanticClassifications(e, Ll(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 = D_(Jl(e));
            return yn(i, (s) => D_(Jl(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, l) {
          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, l);
          });
        }
        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 q0e(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));
        }
      }, X0e = class extends B9 {
        constructor(e, t) {
          super(e), this.logger = t, this.logPerformance = !1, this.classifier = Tve();
        }
        getEncodedLexicalClassifications(e, t, r = !1) {
          return zQ(this.logger, "getEncodedLexicalClassifications", () => JQ(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;
        }
      }, Y0e = class extends B9 {
        constructor(e, t, r) {
          super(e), this.logger = t, this.host = r, this.logPerformance = !1;
        }
        forwardJSONCall(e, t) {
          return zQ(this.logger, e, t, this.logPerformance);
        }
        resolveModuleName(e, t, r) {
          return this.forwardJSONCall(`resolveModuleName('${e}')`, () => {
            const i = JSON.parse(r), o = jk(t, Jl(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 = mK(t, Jl(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 = zve(GF(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 _5(t, this.host);
          });
        }
        convertFileReferences(e) {
          if (!e)
            return;
          const t = [];
          for (const r of e)
            t.push({
              path: Jl(r.fileName),
              position: r.pos,
              length: r.end - r.pos
            });
          return t;
        }
        getTSConfigFileInfo(e, t) {
          return this.forwardJSONCall(`getTSConfigFileInfo('${e}')`, () => {
            const r = HO(e, GF(t)), i = Jl(e), o = KO(r, this.host, _i(i), {}, i);
            return {
              options: o.options,
              typeAcquisition: o.typeAcquisition,
              files: o.fileNames,
              raw: o.raw,
              errors: qQ([...r.parseDiagnostics, ...o.errors], `\r
`)
            };
          });
        }
        getDefaultCompilationSettings() {
          return this.forwardJSONCall("getDefaultCompilationSettings()", () => k9());
        }
        discoverTypings(e) {
          const t = Zl(!1);
          return this.forwardJSONCall("discoverTypings()", () => {
            const r = JSON.parse(e);
            return this.safeList === void 0 && (this.safeList = jT.loadSafeList(this.host, js(r.safeListPath, r.safeListPath, t))), jT.discoverTypings(this.host, (i) => this.logger.log(i), r.fileNames, js(r.projectRootPath, r.projectRootPath, t), this.safeList, r.packageNameToTypingLocation, r.typeAcquisition, r.unresolvedImports, r.typesRegistry, rm);
          });
        }
      }, $0e = class {
        constructor() {
          this._shims = [];
        }
        getServicesVersion() {
          return VQ;
        }
        createLanguageServiceShim(e) {
          try {
            this.documentRegistry === void 0 && (this.documentRegistry = _Q(e.useCaseSensitiveFileNames && e.useCaseSensitiveFileNames(), e.getCurrentDirectory()));
            const t = new KQ(e), r = M0e(t, this.documentRegistry, !1);
            return new K0e(this, e, r);
          } catch (t) {
            throw M9(e, t), t;
          }
        }
        createClassifierShim(e) {
          try {
            return new X0e(this, e);
          } catch (t) {
            throw M9(e, t), t;
          }
        }
        createCoreServicesShim(e) {
          try {
            const t = new XQ(e);
            return new Y0e(this, e, t);
          } catch (t) {
            throw M9(e, t), t;
          }
        }
        close() {
          co(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 l9e(e, t) {
    if (e.isDeclarationFile)
      return;
    let r = ia(e, t);
    const i = e.getLineAndCharacterOfPosition(t).line;
    if (e.getLineAndCharacterOfPosition(r.getStart(e)).line > i) {
      const b = Sl(r.pos, e);
      if (!b || e.getLineAndCharacterOfPosition(b.getEnd()).line !== i)
        return;
      r = b;
    }
    if (r.flags & 16777216)
      return;
    return h(r);
    function o(b, A) {
      const L = Px(b) ? $i(b.modifiers, Nu) : void 0, I = L ? zo(e.text, L.end) : b.getStart(e);
      return _l(I, (A || b).getEnd());
    }
    function s(b, A) {
      return o(b, zT(A, A.parent, e));
    }
    function l(b, A) {
      return b && i === e.getLineAndCharacterOfPosition(b.getStart(e)).line ? h(b) : h(A);
    }
    function f(b, A, L) {
      if (b) {
        const I = b.indexOf(A);
        if (I >= 0) {
          let O = I, k = I + 1;
          for (; O > 0 && L(b[O - 1]); )
            O--;
          for (; k < b.length && L(b[k]); )
            k++;
          return _l(zo(e.text, b[O].pos), b[k - 1].end);
        }
      }
      return o(A);
    }
    function d(b) {
      return h(Sl(b.pos, e));
    }
    function y(b) {
      return h(zT(b, b.parent, e));
    }
    function h(b) {
      if (b) {
        const { parent: ee } = b;
        switch (b.kind) {
          case 240:
            return L(b.declarationList.declarations[0]);
          case 257:
          case 169:
          case 168:
            return L(b);
          case 166:
            return O(b);
          case 259:
          case 171:
          case 170:
          case 174:
          case 175:
          case 173:
          case 215:
          case 216:
            return B(b);
          case 238:
            if (uT(b))
              return V(b);
          case 265:
            return H(b);
          case 295:
            return H(b.block);
          case 241:
            return o(b.expression);
          case 250:
            return o(b.getChildAt(0), b.expression);
          case 244:
            return s(b, b.expression);
          case 243:
            return h(b.statement);
          case 256:
            return o(b.getChildAt(0));
          case 242:
            return s(b, b.expression);
          case 253:
            return h(b.statement);
          case 249:
          case 248:
            return o(b.getChildAt(0), b.label);
          case 245:
            return X(b);
          case 246:
            return s(b, b.expression);
          case 247:
            return te(b);
          case 252:
            return s(b, b.expression);
          case 292:
          case 293:
            return h(b.statements[0]);
          case 255:
            return H(b.tryBlock);
          case 254:
            return o(b, b.expression);
          case 274:
            return o(b, b.expression);
          case 268:
            return o(b, b.moduleReference);
          case 269:
            return o(b, b.moduleSpecifier);
          case 275:
            return o(b, b.moduleSpecifier);
          case 264:
            if (mg(b) !== 1)
              return;
          case 260:
          case 263:
          case 302:
          case 205:
            return o(b);
          case 251:
            return h(b.statement);
          case 167:
            return f(ee.modifiers, b, Nu);
          case 203:
          case 204:
            return Y(b);
          case 261:
          case 262:
            return;
          case 26:
          case 1:
            return l(Sl(b.pos, e));
          case 27:
            return d(b);
          case 18:
            return de(b);
          case 19:
            return ne(b);
          case 23:
            return ye(b);
          case 20:
            return ie(b);
          case 21:
            return W(b);
          case 58:
            return ce(b);
          case 31:
          case 29:
            return pe(b);
          case 115:
            return ve(b);
          case 91:
          case 83:
          case 96:
            return y(b);
          case 162:
            return Te(b);
          default:
            if (Ly(b))
              return P(b);
            if ((b.kind === 79 || b.kind === 227 || b.kind === 299 || b.kind === 300) && Ly(ee))
              return o(b);
            if (b.kind === 223) {
              const { left: $e, operatorToken: Ue } = b;
              if (Ly($e))
                return P($e);
              if (Ue.kind === 63 && Ly(b.parent))
                return o(b);
              if (Ue.kind === 27)
                return h($e);
            }
            if (sg(b))
              switch (ee.kind) {
                case 243:
                  return d(b);
                case 167:
                  return h(b.parent);
                case 245:
                case 247:
                  return o(b);
                case 223:
                  if (b.parent.operatorToken.kind === 27)
                    return o(b);
                  break;
                case 216:
                  if (b.parent.body === b)
                    return o(b);
                  break;
              }
            switch (b.parent.kind) {
              case 299:
                if (b.parent.name === b && !Ly(b.parent.parent))
                  return h(b.parent.initializer);
                break;
              case 213:
                if (b.parent.type === b)
                  return y(b.parent.type);
                break;
              case 257:
              case 166: {
                const { initializer: $e, type: Ue } = b.parent;
                if ($e === b || Ue === b || my(b.kind))
                  return d(b);
                break;
              }
              case 223: {
                const { left: $e } = b.parent;
                if (Ly($e) && b !== $e)
                  return d(b);
                break;
              }
              default:
                if (qa(b.parent) && b.parent.type === b)
                  return d(b);
            }
            return h(b.parent);
        }
      }
      function A(ee) {
        return Mu(ee.parent) && ee.parent.declarations[0] === ee ? o(Sl(ee.pos, e, ee.parent), ee) : o(ee);
      }
      function L(ee) {
        if (ee.parent.parent.kind === 246)
          return h(ee.parent.parent);
        const $e = ee.parent;
        if (Ja(ee.name))
          return Y(ee.name);
        if (aT(ee) && ee.initializer || Kr(ee, 1) || $e.parent.kind === 247)
          return A(ee);
        if (Mu(ee.parent) && ee.parent.declarations[0] !== ee)
          return h(Sl(ee.pos, e, ee.parent));
      }
      function I(ee) {
        return !!ee.initializer || ee.dotDotDotToken !== void 0 || Kr(ee, 12);
      }
      function O(ee) {
        if (Ja(ee.name))
          return Y(ee.name);
        if (I(ee))
          return o(ee);
        {
          const $e = ee.parent, Ue = $e.parameters.indexOf(ee);
          return D.assert(Ue !== -1), Ue !== 0 ? O($e.parameters[Ue - 1]) : h($e.body);
        }
      }
      function k(ee) {
        return Kr(ee, 1) || ee.parent.kind === 260 && ee.kind !== 173;
      }
      function B(ee) {
        if (ee.body)
          return k(ee) ? o(ee) : h(ee.body);
      }
      function V(ee) {
        const $e = ee.statements.length ? ee.statements[0] : ee.getLastToken();
        return k(ee.parent) ? l(ee.parent, $e) : h($e);
      }
      function H(ee) {
        switch (ee.parent.kind) {
          case 264:
            if (mg(ee.parent) !== 1)
              return;
          case 244:
          case 242:
          case 246:
            return l(ee.parent, ee.statements[0]);
          case 245:
          case 247:
            return l(Sl(ee.pos, e, ee.parent), ee.statements[0]);
        }
        return h(ee.statements[0]);
      }
      function te(ee) {
        if (ee.initializer.kind === 258) {
          const $e = ee.initializer;
          if ($e.declarations.length > 0)
            return h($e.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 $e = ze(ee.elements, (Ue) => Ue.kind !== 229 ? Ue : void 0);
        return $e ? h($e) : ee.parent.kind === 205 ? o(ee.parent) : A(ee.parent);
      }
      function P(ee) {
        D.assert(ee.kind !== 204 && ee.kind !== 203);
        const $e = ee.kind === 206 ? ee.elements : ee.properties, Ue = ze($e, (Be) => Be.kind !== 229 ? Be : void 0);
        return Ue ? h(Ue) : o(ee.parent.kind === 223 ? ee.parent : ee);
      }
      function de(ee) {
        switch (ee.parent.kind) {
          case 263:
            const $e = ee.parent;
            return l(Sl(ee.pos, e, ee.parent), $e.members.length ? $e.members[0] : $e.getLastToken(e));
          case 260:
            const Ue = ee.parent;
            return l(Sl(ee.pos, e, ee.parent), Ue.members.length ? Ue.members[0] : Ue.getLastToken(e));
          case 266:
            return l(ee.parent.parent, ee.parent.clauses[0]);
        }
        return h(ee.parent);
      }
      function ne(ee) {
        switch (ee.parent.kind) {
          case 265:
            if (mg(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(ec(ee.parent.statements));
          case 266:
            const $e = ee.parent, Ue = ec($e.clauses);
            return Ue ? h(ec(Ue.statements)) : void 0;
          case 203:
            const Be = ee.parent;
            return h(ec(Be.elements) || Be);
          default:
            if (Ly(ee.parent)) {
              const We = ee.parent;
              return o(ec(We.properties) || We);
            }
            return h(ee.parent);
        }
      }
      function ye(ee) {
        switch (ee.parent.kind) {
          case 204:
            const $e = ee.parent;
            return o(ec($e.elements) || $e);
          default:
            if (Ly(ee.parent)) {
              const Ue = ee.parent;
              return o(ec(Ue.elements) || Ue);
            }
            return h(ee.parent);
        }
      }
      function ie(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 qa(ee.parent) || ee.parent.kind === 299 || ee.parent.kind === 166 ? d(ee) : h(ee.parent);
      }
      function pe(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 u9e = C({
    "src/services/breakpoints.ts"() {
      Xr();
    }
  }), YQ = {};
  le(YQ, {
    spanInSourceFileAtLocation: () => l9e
  });
  var d9e = C({
    "src/services/_namespaces/ts.BreakpointResolver.ts"() {
      u9e();
    }
  });
  function f9e(e) {
    return (Ps(e) || Pu(e)) && _u(e);
  }
  function vw(e) {
    return (Ps(e) || Ws(e) || Pu(e)) && zi(e.parent) && e === e.parent.initializer && Ve(e.parent.name) && !!(_p(e.parent) & 2);
  }
  function Q0e(e) {
    return Hi(e) || Wc(e) || ml(e) || Ps(e) || wl(e) || Pu(e) || Lc(e) || nl(e) || Th(e) || H_(e) || Yf(e);
  }
  function Kx(e) {
    return Hi(e) || Wc(e) && Ve(e.name) || ml(e) || wl(e) || Lc(e) || nl(e) || Th(e) || H_(e) || Yf(e) || f9e(e) || vw(e);
  }
  function Z0e(e) {
    return Hi(e) ? e : _u(e) ? e.name : vw(e) ? e.parent.name : D.checkDefined(e.modifiers && cn(e.modifiers, ebe));
  }
  function ebe(e) {
    return e.kind === 88;
  }
  function tbe(e, t) {
    const r = Z0e(t);
    return r && e.getSymbolAtLocation(r);
  }
  function _9e(e, t) {
    if (Hi(t))
      return { text: t.fileName, pos: 0, end: 0 };
    if ((ml(t) || wl(t)) && !_u(t)) {
      const o = t.modifiers && cn(t.modifiers, ebe);
      if (o)
        return { text: "default", pos: o.getStart(), end: o.getEnd() };
    }
    if (Lc(t)) {
      const o = t.getSourceFile(), s = zo(o.text, Xp(t).pos), l = s + 6, f = e.getTypeChecker(), d = f.getSymbolAtLocation(t.parent);
      return { text: `${d ? `${f.symbolToString(d, t.parent)} ` : ""}static {}`, pos: s, end: l };
    }
    const r = vw(t) ? t.parent.name : D.checkDefined(Aa(t), "Expected call hierarchy item to have a name");
    let i = Ve(r) ? Pr(r) : zf(r) ? r.text : Ts(r) && zf(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 = x8();
      i = II((s) => o.writeNode(4, t, t.getSourceFile(), s));
    }
    return { text: i, pos: r.getStart(), end: r.getEnd() };
  }
  function p9e(e) {
    var t, r;
    if (vw(e))
      return Zp(e.parent.parent.parent.parent) && Ve(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 = YH(e.parent)) == null ? void 0 : t.getText() : (r = Aa(e.parent)) == null ? void 0 : r.getText();
      case 259:
      case 260:
      case 264:
        if (Zp(e.parent) && Ve(e.parent.parent.name))
          return e.parent.parent.name.getText();
    }
  }
  function nbe(e, t) {
    if (t.body)
      return t;
    if (Hc(t))
      return yh(t.parent);
    if (ml(t) || nl(t)) {
      const r = tbe(e, t);
      return r && r.valueDeclaration && Xs(r.valueDeclaration) && r.valueDeclaration.body ? r.valueDeclaration : void 0;
    }
    return t;
  }
  function rbe(e, t) {
    const r = tbe(e, t);
    let i;
    if (r && r.declarations) {
      const o = eR(r.declarations), s = en(r.declarations, (d) => ({ file: d.getSourceFile().fileName, pos: d.pos }));
      o.sort((d, y) => ku(s[d].file, s[y].file) || s[d].pos - s[y].pos);
      const l = en(o, (d) => r.declarations[d]);
      let f;
      for (const d of l)
        Kx(d) && ((!f || f.parent !== d.parent || f.end !== d.pos) && (i = Bn(i, d)), f = d);
    }
    return i;
  }
  function G9(e, t) {
    var r, i, o;
    return Lc(t) ? t : Xs(t) ? (i = (r = nbe(e, t)) != null ? r : rbe(e, t)) != null ? i : t : (o = rbe(e, t)) != null ? o : t;
  }
  function ibe(e, t) {
    const r = e.getTypeChecker();
    let i = !1;
    for (; ; ) {
      if (Kx(t))
        return G9(r, t);
      if (Q0e(t)) {
        const o = rr(t, Kx);
        return o && G9(r, o);
      }
      if (lg(t)) {
        if (Kx(t.parent))
          return G9(r, t.parent);
        if (Q0e(t.parent)) {
          const o = rr(t.parent, Kx);
          return o && G9(r, o);
        }
        return zi(t.parent) && t.parent.initializer && vw(t.parent.initializer) ? t.parent.initializer : void 0;
      }
      if (Hc(t))
        return Kx(t.parent) ? t.parent : void 0;
      if (t.kind === 124 && Lc(t.parent)) {
        t = t.parent;
        continue;
      }
      if (zi(t) && t.initializer && vw(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 $Q(e, t) {
    const r = t.getSourceFile(), i = _9e(e, t), o = p9e(t), s = q1(t), l = cw(t), f = _l(zo(r.text, t.getFullStart(), !1, !0), t.getEnd()), d = _l(i.pos, i.end);
    return { file: r.fileName, kind: s, kindModifiers: l, name: i.text, containerName: o, span: f, selectionSpan: d };
  }
  function m9e(e) {
    return e !== void 0;
  }
  function h9e(e) {
    if (e.kind === lc.EntryKind.Node) {
      const { node: t } = e;
      if (s$(t, !0, !0) || dye(t, !0, !0) || fye(t, !0, !0) || _ye(t, !0, !0) || jC(t) || d$(t)) {
        const r = t.getSourceFile();
        return { declaration: rr(t, Kx) || r, range: I$(t, r) };
      }
    }
  }
  function abe(e) {
    return ds(e.declaration);
  }
  function g9e(e, t) {
    return { from: e, fromSpans: t };
  }
  function y9e(e, t) {
    return g9e($Q(e, t[0].declaration), en(t, (r) => jv(r.range)));
  }
  function v9e(e, t, r) {
    if (Hi(t) || Wc(t) || Lc(t))
      return [];
    const i = Z0e(t), o = yn(lc.findReferenceOrRenameEntries(e, r, e.getSourceFiles(), i, 0, { use: lc.FindReferencesUse.References }, h9e), m9e);
    return o ? tI(o, abe, (s) => y9e(e, s)) : [];
  }
  function b9e(e, t) {
    function r(o) {
      const s = AT(o) ? o.tag : Ku(o) ? o.tagName : sc(o) || Lc(o) ? o : o.expression, l = ibe(e, s);
      if (l) {
        const f = I$(s, o.getSourceFile());
        if (Ba(l))
          for (const d of l)
            t.push({ declaration: d, range: f });
        else
          t.push({ declaration: l, range: f });
      }
    }
    function i(o) {
      if (o && !(o.flags & 16777216)) {
        if (Kx(o)) {
          if (li(o))
            for (const s of o.members)
              s.name && Ts(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), Ra(o, i);
            break;
          case 235:
            i(o.expression);
            return;
        }
        mh(o) || Ra(o, i);
      }
    }
    return i;
  }
  function E9e(e, t) {
    ze(e.statements, t);
  }
  function T9e(e, t) {
    !Kr(e, 2) && e.body && Zp(e.body) && ze(e.body.statements, t);
  }
  function S9e(e, t, r) {
    const i = nbe(e, t);
    i && (ze(i.parameters, r), r(i.body));
  }
  function x9e(e, t) {
    t(e.body);
  }
  function A9e(e, t) {
    ze(e.modifiers, t);
    const r = T1(e);
    r && t(r.expression);
    for (const i of e.members)
      q_(i) && ze(i.modifiers, t), Za(i) ? t(i.initializer) : Hc(i) && i.body ? (ze(i.parameters, t), t(i.body)) : Lc(i) && t(i);
  }
  function C9e(e, t) {
    const r = [], i = b9e(e, r);
    switch (t.kind) {
      case 308:
        E9e(t, i);
        break;
      case 264:
        T9e(t, i);
        break;
      case 259:
      case 215:
      case 216:
      case 171:
      case 174:
      case 175:
        S9e(e.getTypeChecker(), t, i);
        break;
      case 260:
      case 228:
        A9e(t, i);
        break;
      case 172:
        x9e(t, i);
        break;
      default:
        D.assertNever(t);
    }
    return r;
  }
  function L9e(e, t) {
    return { to: e, fromSpans: t };
  }
  function I9e(e, t) {
    return L9e($Q(e, t[0].declaration), en(t, (r) => jv(r.range)));
  }
  function k9e(e, t) {
    return t.flags & 16777216 || Th(t) ? [] : tI(C9e(e, t), abe, (r) => I9e(e, r));
  }
  var w9e = C({
    "src/services/callHierarchy.ts"() {
      Xr();
    }
  }), Xx = {};
  le(Xx, {
    createCallHierarchyItem: () => $Q,
    getIncomingCalls: () => v9e,
    getOutgoingCalls: () => k9e,
    resolveCallHierarchyDeclaration: () => ibe
  });
  var D9e = C({
    "src/services/_namespaces/ts.CallHierarchy.ts"() {
      w9e();
    }
  });
  function R9e(e, t, r, i) {
    const o = obe(e, t, r, i);
    D.assert(o.spans.length % 3 === 0);
    const s = o.spans, l = [];
    for (let f = 0; f < s.length; f += 3)
      l.push({
        textSpan: Ll(s[f], s[f + 1]),
        classificationType: s[f + 2]
      });
    return l;
  }
  function obe(e, t, r, i) {
    return {
      spans: N9e(e, r, i, t),
      endOfLineState: 0
    };
  }
  function N9e(e, t, r, i) {
    const o = [];
    return e && t && O9e(e, t, r, (l, f, d) => {
      o.push(l.getStart(t), l.getWidth(t), (f + 1 << 8) + d);
    }, i), o;
  }
  function O9e(e, t, r, i, o) {
    const s = e.getTypeChecker();
    let l = !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 || !mM(r, d.pos, d.getFullWidth()) || d.getFullWidth() === 0)
        return;
      const y = l;
      if ((Ty(d) || kx(d)) && (l = !0), wk(d) && (l = !1), Ve(d) && !l && !B9e(d) && !_k(d.escapedText)) {
        let h = s.getSymbolAtLocation(d);
        if (h) {
          h.flags & 2097152 && (h = s.getAliasedSymbol(h));
          let b = P9e(h, HT(d));
          if (b !== void 0) {
            let A = 0;
            d.parent && (us(d.parent) || tZ.get(d.parent.kind) === b) && d.parent.name === d && (A = 1 << 0), b === 6 && cbe(d) && (b = 9), b = M9e(s, d, b);
            const L = h.valueDeclaration;
            if (L) {
              const I = uy(L), O = _p(L);
              I & 32 && (A |= 1 << 1), I & 512 && (A |= 1 << 2), b !== 0 && b !== 2 && (I & 64 || O & 2 || h.getFlags() & 8) && (A |= 1 << 3), (b === 7 || b === 10) && F9e(L, t) && (A |= 1 << 5), e.isSourceFileDefaultLibrary(L.getSourceFile()) && (A |= 1 << 4);
            } else
              h.declarations && h.declarations.some((I) => e.isSourceFileDefaultLibrary(I.getSourceFile())) && (A |= 1 << 4);
            i(d, b, A);
          }
        }
      }
      Ra(d, f), l = y;
    }
    f(t);
  }
  function P9e(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 && us(i) && (i = sbe(i)), i && tZ.get(i.kind);
  }
  function M9e(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) || G9e(t))
          return r === 9 ? 11 : 10;
      }
    }
    return r;
  }
  function F9e(e, t) {
    return us(e) && (e = sbe(e)), zi(e) ? (!Hi(e.parent.parent.parent) || EC(e.parent)) && e.getSourceFile() === t : ml(e) ? !Hi(e.parent) && e.getSourceFile() === t : !1;
  }
  function sbe(e) {
    for (; ; )
      if (us(e.parent.parent))
        e = e.parent.parent;
      else
        return e.parent.parent;
  }
  function B9e(e) {
    const t = e.parent;
    return t && (Vm(t) || xd(t) || Pv(t));
  }
  function G9e(e) {
    for (; cbe(e); )
      e = e.parent;
    return eo(e.parent) && e.parent.expression === e;
  }
  function cbe(e) {
    return Sd(e.parent) && e.parent.right === e || Mr(e.parent) && e.parent.name === e;
  }
  var QQ, ZQ, eZ, tZ, U9e = C({
    "src/services/classifier2020.ts"() {
      Xr(), QQ = /* @__PURE__ */ ((e) => (e[e.typeOffset = 8] = "typeOffset", e[e.modifierMask = 255] = "modifierMask", e))(QQ || {}), ZQ = /* @__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))(ZQ || {}), eZ = /* @__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))(eZ || {}), tZ = /* @__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]
      ]);
    }
  }), lbe = {};
  le(lbe, {
    TokenEncodingConsts: () => QQ,
    TokenModifier: () => eZ,
    TokenType: () => ZQ,
    getEncodedSemanticClassifications: () => obe,
    getSemanticClassifications: () => R9e
  });
  var V9e = C({
    "src/services/_namespaces/ts.classifier.v2020.ts"() {
      U9e();
    }
  }), U9 = {};
  le(U9, {
    v2020: () => lbe
  });
  var j9e = C({
    "src/services/_namespaces/ts.classifier.ts"() {
      V9e();
    }
  });
  function Tp(e, t, r) {
    return rZ(e, zx(r), t, void 0, void 0);
  }
  function to(e, t, r, i, o, s) {
    return rZ(e, zx(r), t, i, zx(o), s);
  }
  function nZ(e, t, r, i, o, s) {
    return rZ(e, zx(r), t, i, o && zx(o), s);
  }
  function rZ(e, t, r, i, o, s) {
    return { fixName: e, description: t, changes: r, fixId: i, fixAllDescription: o, commands: s ? [s] : void 0 };
  }
  function fo(e) {
    for (const t of e.errorCodes)
      V9.add(String(t), e);
    if (e.fixIds)
      for (const t of e.fixIds)
        D.assert(!j9.has(t)), j9.set(t, e);
  }
  function H9e() {
    return Do(V9.keys());
  }
  function W9e(e, t) {
    const { errorCodes: r } = e;
    let i = 0;
    for (const s of t)
      if (wi(r, s.code) && i++, i > 1)
        break;
    const o = i < 2;
    return ({ fixId: s, fixAllDescription: l, ...f }) => o ? f : { ...f, fixId: s, fixAllDescription: l };
  }
  function z9e(e) {
    const t = dbe(e), r = V9.get(String(e.errorCode));
    return wo(r, (i) => en(i.getCodeActions(e), W9e(i, t)));
  }
  function q9e(e) {
    return j9.get(ro(e.fixId, Ua)).getAllCodeActions(e);
  }
  function Yx(e, t) {
    return { changes: e, commands: t };
  }
  function ube(e, t) {
    return { fileName: e, textChanges: t };
  }
  function Ss(e, t, r) {
    const i = [], o = gr.ChangeTracker.with(e, (s) => $x(e, t, (l) => r(s, l, i)));
    return Yx(o, i.length === 0 ? void 0 : i);
  }
  function $x(e, t, r) {
    for (const i of dbe(e))
      wi(t, i.code) && r(i);
  }
  function dbe({ program: e, sourceFile: t, cancellationToken: r }) {
    return [
      ...e.getSemanticDiagnostics(t, r),
      ...e.getSyntacticDiagnostics(t, r),
      ...SQ(t, e, r)
    ];
  }
  var V9, j9, J9e = C({
    "src/services/codeFixProvider.ts"() {
      Xr(), V9 = l_(), j9 = /* @__PURE__ */ new Map();
    }
  });
  function fbe(e, t, r) {
    const i = xO(r) ? N.createAsExpression(r.expression, N.createKeywordTypeNode(157)) : N.createTypeAssertion(N.createKeywordTypeNode(157), r.expression);
    e.replaceNode(t, r.expression, i);
  }
  function _be(e, t) {
    if (!fr(e))
      return rr(ia(e, t), (r) => xO(r) || Ofe(r));
  }
  var H9, iZ, K9e = C({
    "src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts"() {
      Xr(), vo(), H9 = "addConvertToUnknownForNonOverlappingTypes", iZ = [_.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], fo({
        errorCodes: iZ,
        getCodeActions: function(t) {
          const r = _be(t.sourceFile, t.span.start);
          if (r === void 0)
            return;
          const i = gr.ChangeTracker.with(t, (o) => fbe(o, t.sourceFile, r));
          return [to(H9, i, _.Add_unknown_conversion_for_non_overlapping_types, H9, _.Add_unknown_to_all_conversions_of_non_overlapping_types)];
        },
        fixIds: [H9],
        getAllCodeActions: (e) => Ss(e, iZ, (t, r) => {
          const i = _be(r.file, r.start);
          i && fbe(t, r.file, i);
        })
      });
    }
  }), X9e = C({
    "src/services/codefixes/addEmptyExportDeclaration.ts"() {
      Xr(), vo(), fo({
        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 [Tp("addEmptyExportDeclaration", i, _.Add_export_to_make_this_file_into_a_module)];
        }
      });
    }
  });
  function pbe(e, t, r, i) {
    const o = r((s) => Y9e(s, e.sourceFile, t, i));
    return to(W9, o, _.Add_async_modifier_to_containing_function, W9, _.Add_all_missing_async_modifiers);
  }
  function Y9e(e, t, r, i) {
    if (i && i.has(ds(r)))
      return;
    i == null || i.add(ds(r));
    const o = N.updateModifiers(kc(r, !0), N.createNodeArray(N.createModifiersFromModifierFlags(kv(r) | 512)));
    e.replaceNode(t, r, o);
  }
  function mbe(e, t) {
    if (!t)
      return;
    const r = ia(e, t.start);
    return rr(r, (o) => o.getStart(e) < t.start || o.getEnd() > eu(t) ? "quit" : (Ws(o) || nl(o) || Ps(o) || ml(o)) && qC(t, Zu(o, e)));
  }
  function $9e(e, t) {
    return ({ start: r, length: i, relatedInformation: o, code: s }) => ay(r) && ay(i) && qC({ start: r, length: i }, e) && s === t && !!o && kt(o, (l) => l.code === _.Did_you_mean_to_mark_this_function_as_async.code);
  }
  var W9, aZ, Q9e = C({
    "src/services/codefixes/addMissingAsync.ts"() {
      Xr(), vo(), W9 = "addMissingAsync", aZ = [
        _.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
      ], fo({
        fixIds: [W9],
        errorCodes: aZ,
        getCodeActions: function(t) {
          const { sourceFile: r, errorCode: i, cancellationToken: o, program: s, span: l } = t, f = cn(s.getTypeChecker().getDiagnostics(r, o), $9e(l, i)), d = f && f.relatedInformation && cn(f.relatedInformation, (b) => b.code === _.Did_you_mean_to_mark_this_function_as_async.code), y = mbe(r, d);
          return y ? [pbe(t, y, (b) => gr.ChangeTracker.with(t, b))] : void 0;
        },
        getAllCodeActions: (e) => {
          const { sourceFile: t } = e, r = /* @__PURE__ */ new Set();
          return Ss(e, aZ, (i, o) => {
            const s = o.relatedInformation && cn(o.relatedInformation, (d) => d.code === _.Did_you_mean_to_mark_this_function_as_async.code), l = mbe(t, s);
            return l ? pbe(e, l, (d) => (d(i), []), r) : void 0;
          });
        }
      });
    }
  });
  function hbe(e, t, r, i, o) {
    const s = Z$(e, r);
    return s && Z9e(e, t, r, i, o) && vbe(s) ? s : void 0;
  }
  function gbe(e, t, r, i, o, s) {
    const { sourceFile: l, program: f, cancellationToken: d } = e, y = eBe(t, l, d, f, i);
    if (y) {
      const h = o((b) => {
        ze(y.initializers, ({ expression: A }) => oZ(b, r, l, i, A, s)), s && y.needsSecondPassForFixAll && oZ(b, r, l, i, t, s);
      });
      return Tp("addMissingAwaitToInitializer", h, y.initializers.length === 1 ? [_.Add_await_to_initializer_for_0, y.initializers[0].declarationSymbol.name] : _.Add_await_to_initializers);
    }
  }
  function ybe(e, t, r, i, o, s) {
    const l = o((f) => oZ(f, r, e.sourceFile, i, t, s));
    return to(z9, l, _.Add_await, z9, _.Fix_all_expressions_possibly_missing_await);
  }
  function Z9e(e, t, r, i, o) {
    const l = o.getTypeChecker().getDiagnostics(e, i);
    return kt(l, ({ start: f, length: d, relatedInformation: y, code: h }) => ay(f) && ay(d) && qC({ start: f, length: d }, r) && h === t && !!y && kt(y, (b) => b.code === _.Did_you_forget_to_use_await.code));
  }
  function eBe(e, t, r, i, o) {
    const s = tBe(e, o);
    if (!s)
      return;
    let l = s.isCompleteFix, f;
    for (const d of s.identifiers) {
      const y = o.getSymbolAtLocation(d);
      if (!y)
        continue;
      const h = ii(y.valueDeclaration, zi), b = h && ii(h.name, Ve), A = z0(h, 240);
      if (!h || !A || h.type || !h.initializer || A.getSourceFile() !== t || Kr(A, 1) || !b || !vbe(h.initializer)) {
        l = !1;
        continue;
      }
      const L = i.getSemanticDiagnostics(t, r);
      if (lc.Core.eachSymbolReferenceInFile(b, o, t, (O) => d !== O && !nBe(O, L, t, o))) {
        l = !1;
        continue;
      }
      (f || (f = [])).push({
        expression: h.initializer,
        declarationSymbol: y
      });
    }
    return f && {
      initializers: f,
      needsSecondPassForFixAll: !l
    };
  }
  function tBe(e, t) {
    if (Mr(e.parent) && Ve(e.parent.expression))
      return { identifiers: [e.parent.expression], isCompleteFix: !0 };
    if (Ve(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 (!Ve(o)) {
            i = !1;
            continue;
          }
          (r || (r = [])).push(o);
        }
      }
      return r && { identifiers: r, isCompleteFix: i };
    }
  }
  function nBe(e, t, r, i) {
    const o = Mr(e.parent) ? e.parent.name : br(e.parent) ? e.parent : e, s = cn(t, (l) => l.start === o.getStart(r) && l.start + l.length === o.getEnd());
    return s && wi(q9, s.code) || i.getTypeAtLocation(o).flags & 1;
  }
  function vbe(e) {
    return e.kind & 32768 || !!rr(e, (t) => t.parent && Ws(t.parent) && t.parent.body === t || oo(t) && (t.parent.kind === 259 || t.parent.kind === 215 || t.parent.kind === 216 || t.parent.kind === 171));
  }
  function oZ(e, t, r, i, o, s) {
    if (AO(o.parent) && !o.parent.awaitModifier) {
      const l = i.getTypeAtLocation(o), f = i.getAsyncIterableType();
      if (f && i.isTypeAssignableTo(l, 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 l of [o.left, o.right]) {
        if (s && Ve(l)) {
          const y = i.getSymbolAtLocation(l);
          if (y && s.has(yo(y)))
            continue;
        }
        const f = i.getTypeAtLocation(l), d = i.getPromisedTypeOfPromise(f) ? N.createAwaitExpression(l) : l;
        e.replaceNode(r, l, d);
      }
    else if (t === sZ && Mr(o.parent)) {
      if (s && Ve(o.parent.expression)) {
        const l = i.getSymbolAtLocation(o.parent.expression);
        if (l && s.has(yo(l)))
          return;
      }
      e.replaceNode(r, o.parent.expression, N.createParenthesizedExpression(N.createAwaitExpression(o.parent.expression))), bbe(e, o.parent.expression, r);
    } else if (wi(cZ, t) && ig(o.parent)) {
      if (s && Ve(o)) {
        const l = i.getSymbolAtLocation(o);
        if (l && s.has(yo(l)))
          return;
      }
      e.replaceNode(r, o, N.createParenthesizedExpression(N.createAwaitExpression(o))), bbe(e, o, r);
    } else {
      if (s && zi(o.parent) && Ve(o.parent.name)) {
        const l = i.getSymbolAtLocation(o.parent.name);
        if (l && !e1(s, yo(l)))
          return;
      }
      e.replaceNode(r, o, N.createAwaitExpression(o));
    }
  }
  function bbe(e, t, r) {
    const i = Sl(t.pos, r);
    i && QF(i.end, i.parent, r) && e.insertText(r, t.getStart(r), ";");
  }
  var z9, sZ, cZ, q9, rBe = C({
    "src/services/codefixes/addMissingAwait.ts"() {
      Xr(), vo(), z9 = "addMissingAwait", sZ = _.Property_0_does_not_exist_on_type_1.code, cZ = [
        _.This_expression_is_not_callable.code,
        _.This_expression_is_not_constructable.code
      ], q9 = [
        _.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,
        sZ,
        ...cZ
      ], fo({
        fixIds: [z9],
        errorCodes: q9,
        getCodeActions: function(t) {
          const { sourceFile: r, errorCode: i, span: o, cancellationToken: s, program: l } = t, f = hbe(r, i, o, s, l);
          if (!f)
            return;
          const d = t.program.getTypeChecker(), y = (h) => gr.ChangeTracker.with(t, h);
          return nR([
            gbe(t, f, i, d, y),
            ybe(t, f, i, d, y)
          ]);
        },
        getAllCodeActions: (e) => {
          const { sourceFile: t, program: r, cancellationToken: i } = e, o = e.program.getTypeChecker(), s = /* @__PURE__ */ new Set();
          return Ss(e, q9, (l, f) => {
            const d = hbe(t, f.code, f, i, r);
            if (!d)
              return;
            const y = (h) => (h(l), []);
            return gbe(e, d, f.code, o, y, s) || ybe(e, d, f.code, o, y, s);
          });
        }
      });
    }
  });
  function Ebe(e, t, r, i, o) {
    const s = ia(t, r), l = rr(s, (y) => CA(y.parent) ? y.parent.initializer === y : iBe(y) ? !1 : "quit");
    if (l)
      return J9(e, l, t, o);
    const f = s.parent;
    if (br(f) && f.operatorToken.kind === 63 && nu(f.parent))
      return J9(e, s, t, o);
    if (Ou(f)) {
      const y = i.getTypeChecker();
      return Rn(f.elements, (h) => aBe(h, y)) ? J9(e, f, t, o) : void 0;
    }
    const d = rr(s, (y) => nu(y.parent) ? !0 : oBe(y) ? !1 : "quit");
    if (d) {
      const y = i.getTypeChecker();
      return Tbe(d, y) ? J9(e, d, t, o) : void 0;
    }
  }
  function J9(e, t, r, i) {
    (!i || e1(i, t)) && e.insertModifierBefore(r, 85, t);
  }
  function iBe(e) {
    switch (e.kind) {
      case 79:
      case 206:
      case 207:
      case 299:
      case 300:
        return !0;
      default:
        return !1;
    }
  }
  function aBe(e, t) {
    const r = Ve(e) ? e : Yu(e, !0) && Ve(e.left) ? e.left : void 0;
    return !!r && !t.getSymbolAtLocation(r);
  }
  function oBe(e) {
    switch (e.kind) {
      case 79:
      case 223:
      case 27:
        return !0;
      default:
        return !1;
    }
  }
  function Tbe(e, t) {
    return br(e) ? e.operatorToken.kind === 27 ? Rn([e.left, e.right], (r) => Tbe(r, t)) : e.operatorToken.kind === 63 && Ve(e.left) && !t.getSymbolAtLocation(e.left) : !1;
  }
  var K9, lZ, sBe = C({
    "src/services/codefixes/addMissingConst.ts"() {
      Xr(), vo(), K9 = "addMissingConst", lZ = [
        _.Cannot_find_name_0.code,
        _.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code
      ], fo({
        errorCodes: lZ,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => Ebe(i, t.sourceFile, t.span.start, t.program));
          if (r.length > 0)
            return [to(K9, r, _.Add_const_to_unresolved_variable, K9, _.Add_const_to_all_unresolved_variables)];
        },
        fixIds: [K9],
        getAllCodeActions: (e) => {
          const t = /* @__PURE__ */ new Set();
          return Ss(e, lZ, (r, i) => Ebe(r, i.file, i.start, e.program, t));
        }
      });
    }
  });
  function Sbe(e, t, r, i) {
    const o = ia(t, r);
    if (!Ve(o))
      return;
    const s = o.parent;
    s.kind === 169 && (!i || e1(i, s)) && e.insertModifierBefore(t, 136, s);
  }
  var X9, uZ, cBe = C({
    "src/services/codefixes/addMissingDeclareProperty.ts"() {
      Xr(), vo(), X9 = "addMissingDeclareProperty", uZ = [
        _.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
      ], fo({
        errorCodes: uZ,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => Sbe(i, t.sourceFile, t.span.start));
          if (r.length > 0)
            return [to(X9, r, _.Prefix_with_declare, X9, _.Prefix_all_incorrect_property_declarations_with_declare)];
        },
        fixIds: [X9],
        getAllCodeActions: (e) => {
          const t = /* @__PURE__ */ new Set();
          return Ss(e, uZ, (r, i) => Sbe(r, i.file, i.start, t));
        }
      });
    }
  });
  function xbe(e, t, r) {
    const i = ia(t, r), o = rr(i, Nu);
    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 Y9, dZ, lBe = C({
    "src/services/codefixes/addMissingInvocationForDecorator.ts"() {
      Xr(), vo(), Y9 = "addMissingInvocationForDecorator", dZ = [_._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code], fo({
        errorCodes: dZ,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => xbe(i, t.sourceFile, t.span.start));
          return [to(Y9, r, _.Call_decorator_expression, Y9, _.Add_to_all_uncalled_decorators)];
        },
        fixIds: [Y9],
        getAllCodeActions: (e) => Ss(e, dZ, (t, r) => xbe(t, r.file, r.start))
      });
    }
  });
  function Abe(e, t, r) {
    const i = ia(t, r), o = i.parent;
    if (!Oa(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 l = N.createTypeReferenceNode(o.name, void 0), f = N.createParameterDeclaration(o.modifiers, o.dotDotDotToken, "arg" + s, o.questionToken, o.dotDotDotToken ? N.createArrayTypeNode(l) : l, o.initializer);
    e.replaceNode(t, o, f);
  }
  var $9, fZ, uBe = C({
    "src/services/codefixes/addNameToNamelessParameter.ts"() {
      Xr(), vo(), $9 = "addNameToNamelessParameter", fZ = [_.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code], fo({
        errorCodes: fZ,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => Abe(i, t.sourceFile, t.span.start));
          return [to($9, r, _.Add_parameter_name, $9, _.Add_names_to_all_parameters_without_names)];
        },
        fixIds: [$9],
        getAllCodeActions: (e) => Ss(e, fZ, (t, r) => Abe(t, r.file, r.start))
      });
    }
  });
  function dBe(e, t, r) {
    var i, o;
    const s = Cbe(Z$(e, t), r);
    if (!s)
      return rt;
    const { source: l, target: f } = s, d = fBe(l, f, r) ? r.getTypeAtLocation(f.expression) : r.getTypeAtLocation(f);
    return (o = (i = d.symbol) == null ? void 0 : i.declarations) != null && o.some((y) => er(y).fileName.match(/\.d\.ts$/)) ? rt : r.getExactOptionalProperties(d);
  }
  function fBe(e, t, r) {
    return Mr(t) && !!r.getExactOptionalProperties(r.getTypeAtLocation(t.expression)).length && r.getTypeAtLocation(e) === r.getUndefinedType();
  }
  function Cbe(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 (zi(e.parent) && e.parent.initializer)
        return { source: e.parent.initializer, target: e.parent.name };
      if (eo(e.parent)) {
        const i = t.getSymbolAtLocation(e.parent.expression);
        if (!(i != null && i.valueDeclaration) || !KS(i.valueDeclaration.kind) || !yt(e))
          return;
        const o = e.parent.arguments.indexOf(e);
        if (o === -1)
          return;
        const s = i.valueDeclaration.parameters[o].name;
        if (Ve(s))
          return { source: e, target: s };
      } else if (Vl(e.parent) && Ve(e.parent.name) || $f(e.parent)) {
        const i = Cbe(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: Vl(e.parent) ? e.parent.initializer : e.parent.name,
          target: s
        } : void 0;
      }
    } else
      return;
  }
  function _Be(e, t) {
    for (const r of t) {
      const i = r.valueDeclaration;
      if (i && (xf(i) || Za(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 _Z, Lbe, pBe = C({
    "src/services/codefixes/addOptionalPropertyUndefined.ts"() {
      Xr(), vo(), _Z = "addOptionalPropertyUndefined", Lbe = [
        _.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
      ], fo({
        errorCodes: Lbe,
        getCodeActions(e) {
          const t = e.program.getTypeChecker(), r = dBe(e.sourceFile, e.span, t);
          if (!r.length)
            return;
          const i = gr.ChangeTracker.with(e, (o) => _Be(o, r));
          return [Tp(_Z, i, _.Add_undefined_to_optional_property_type)];
        },
        fixIds: [_Z]
      });
    }
  });
  function Ibe(e, t) {
    const r = ia(e, t);
    return ii(Oa(r.parent) ? r.parent.parent : r.parent, kbe);
  }
  function kbe(e) {
    return mBe(e) && wbe(e);
  }
  function wbe(e) {
    return Xs(e) ? e.parameters.some(wbe) || !e.type && !!FR(e) : !e.type && !!bv(e);
  }
  function Dbe(e, t, r) {
    if (Xs(r) && (FR(r) || r.parameters.some((i) => !!bv(i)))) {
      if (!r.typeParameters) {
        const o = v3(r);
        o.length && e.insertTypeParameters(t, r, o);
      }
      const i = Ws(r) && !gs(r, 20, t);
      i && e.insertNodeBefore(t, ss(r.parameters), N.createToken(20));
      for (const o of r.parameters)
        if (!o.type) {
          const s = bv(o);
          s && e.tryInsertTypeAnnotation(t, o, ct(s, ob, Mi));
        }
      if (i && e.insertNodeAfter(t, Ho(r.parameters), N.createToken(21)), !r.type) {
        const o = FR(r);
        o && e.tryInsertTypeAnnotation(t, r, ct(o, ob, Mi));
      }
    } else {
      const i = D.checkDefined(bv(r), "A JSDocType for this declaration should exist");
      D.assert(!r.type, "The JSDocType decl should have a type"), e.tryInsertTypeAnnotation(t, r, ct(i, ob, Mi));
    }
  }
  function mBe(e) {
    return Xs(e) || e.kind === 257 || e.kind === 168 || e.kind === 169;
  }
  function ob(e) {
    switch (e.kind) {
      case 315:
      case 316:
        return N.createTypeReferenceNode("any", rt);
      case 319:
        return gBe(e);
      case 318:
        return ob(e.type);
      case 317:
        return yBe(e);
      case 321:
        return vBe(e);
      case 320:
        return bBe(e);
      case 180:
        return TBe(e);
      case 325:
        return hBe(e);
      default:
        const t = Gn(e, ob, hg);
        return sr(t, 1), t;
    }
  }
  function hBe(e) {
    const t = N.createTypeLiteralNode(en(e.jsDocPropertyTags, (r) => N.createPropertySignature(void 0, Ve(r.name) ? r.name : r.name.right, rO(r) ? N.createToken(57) : void 0, r.typeExpression && ct(r.typeExpression.type, ob, Mi) || N.createKeywordTypeNode(131))));
    return sr(t, 1), t;
  }
  function gBe(e) {
    return N.createUnionTypeNode([ct(e.type, ob, Mi), N.createTypeReferenceNode("undefined", rt)]);
  }
  function yBe(e) {
    return N.createUnionTypeNode([ct(e.type, ob, Mi), N.createTypeReferenceNode("null", rt)]);
  }
  function vBe(e) {
    return N.createArrayTypeNode(ct(e.type, ob, Mi));
  }
  function bBe(e) {
    var t;
    return N.createFunctionTypeNode(rt, e.parameters.map(EBe), (t = e.type) != null ? t : N.createKeywordTypeNode(131));
  }
  function EBe(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, ct(e.type, ob, Mi), e.initializer);
  }
  function TBe(e) {
    let t = e.typeName, r = e.typeArguments;
    if (Ve(e.typeName)) {
      if (i3(e))
        return SBe(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 = Xn(e.typeArguments, ob, Mi);
    }
    return N.createTypeReferenceNode(t, r);
  }
  function SBe(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 sr(r, 1), r;
  }
  var Q9, pZ, xBe = C({
    "src/services/codefixes/annotateWithTypeFromJSDoc.ts"() {
      Xr(), vo(), Q9 = "annotateWithTypeFromJSDoc", pZ = [_.JSDoc_types_may_be_moved_to_TypeScript_types.code], fo({
        errorCodes: pZ,
        getCodeActions(e) {
          const t = Ibe(e.sourceFile, e.span.start);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (i) => Dbe(i, e.sourceFile, t));
          return [to(Q9, r, _.Annotate_with_type_from_JSDoc, Q9, _.Annotate_everything_with_types_from_JSDoc)];
        },
        fixIds: [Q9],
        getAllCodeActions: (e) => Ss(e, pZ, (t, r) => {
          const i = Ibe(r.file, r.start);
          i && Dbe(t, r.file, i);
        })
      });
    }
  });
  function Rbe(e, t, r, i, o, s) {
    const l = i.getSymbolAtLocation(ia(t, r));
    if (!l || !l.valueDeclaration || !(l.flags & 19))
      return;
    const f = l.valueDeclaration;
    if (ml(f) || Ps(f))
      e.replaceNode(t, f, h(f));
    else if (zi(f)) {
      const b = y(f);
      if (!b)
        return;
      const A = f.parent.parent;
      Mu(f.parent) && f.parent.declarations.length > 1 ? (e.delete(t, f), e.insertNodeAfter(t, A, b)) : e.replaceNode(t, A, b);
    }
    function d(b) {
      const A = [];
      return b.exports && b.exports.forEach((O) => {
        if (O.name === "prototype" && O.declarations) {
          const k = O.declarations[0];
          if (O.declarations.length === 1 && Mr(k) && br(k.parent) && k.parent.operatorToken.kind === 63 && xs(k.parent.right)) {
            const B = k.parent.right;
            I(B.symbol, void 0, A);
          }
        } else
          I(O, [N.createToken(124)], A);
      }), b.members && b.members.forEach((O, k) => {
        var B, V, H, te;
        if (k === "constructor" && O.valueDeclaration) {
          const X = (te = (H = (V = (B = b.exports) == null ? void 0 : B.get("prototype")) == null ? void 0 : V.declarations) == null ? void 0 : H[0]) == null ? void 0 : te.parent;
          X && br(X) && xs(X.right) && kt(X.right.properties, eB) || e.delete(t, O.valueDeclaration.parent);
          return;
        }
        I(O, void 0, A);
      }), A;
      function L(O, k) {
        return sc(O) ? Mr(O) && eB(O) ? !0 : qa(k) : Rn(O.properties, (B) => !!(nl(B) || vM(B) || Vl(B) && Ps(B.initializer) && B.name || eB(B)));
      }
      function I(O, k, B) {
        if (!(O.flags & 8192) && !(O.flags & 4096))
          return;
        const V = O.valueDeclaration, H = V.parent, te = H.right;
        if (!L(V, te) || kt(B, (ne) => {
          const ye = Aa(ne);
          return !!(ye && Ve(ye) && Pr(ye) === Oc(O));
        }))
          return;
        const X = H.parent && H.parent.kind === 241 ? H.parent : H;
        if (e.delete(t, X), !te) {
          B.push(N.createPropertyDeclaration(k, O.name, void 0, void 0, void 0));
          return;
        }
        if (sc(V) && (Ps(te) || Ws(te))) {
          const ne = Ep(t, o), ye = ABe(V, s, ne);
          ye && Y(B, te, ye);
          return;
        } else if (xs(te)) {
          ze(te.properties, (ne) => {
            (nl(ne) || vM(ne)) && B.push(ne), Vl(ne) && Ps(ne.initializer) && Y(B, ne.initializer, ne.name), eB(ne);
          });
          return;
        } else {
          if (Xu(t) || !Mr(V))
            return;
          const ne = N.createPropertyDeclaration(k, V.name, void 0, void 0, te);
          KC(H.parent, ne, t), B.push(ne);
          return;
        }
        function Y(ne, ye, ie) {
          return Ps(ye) ? P(ne, ye, ie) : de(ne, ye, ie);
        }
        function P(ne, ye, ie) {
          const W = ma(k, Z9(ye, 132)), ce = N.createMethodDeclaration(W, void 0, ie, void 0, void 0, ye.parameters, void 0, ye.body);
          KC(H, ce, t), ne.push(ce);
        }
        function de(ne, ye, ie) {
          const W = ye.body;
          let ce;
          W.kind === 238 ? ce = W : ce = N.createBlock([N.createReturnStatement(W)]);
          const pe = ma(k, Z9(ye, 132)), ve = N.createMethodDeclaration(pe, void 0, ie, void 0, void 0, ye.parameters, void 0, ce);
          KC(H, ve, t), ne.push(ve);
        }
      }
    }
    function y(b) {
      const A = b.initializer;
      if (!A || !Ps(A) || !Ve(b.name))
        return;
      const L = d(b.symbol);
      A.body && L.unshift(N.createConstructorDeclaration(void 0, A.parameters, A.body));
      const I = Z9(b.parent.parent, 93);
      return N.createClassDeclaration(I, b.name, void 0, void 0, L);
    }
    function h(b) {
      const A = d(l);
      b.body && A.unshift(N.createConstructorDeclaration(void 0, b.parameters, b.body));
      const L = Z9(b, 93);
      return N.createClassDeclaration(L, b.name, void 0, void 0, A);
    }
  }
  function Z9(e, t) {
    return q_(e) ? yn(e.modifiers, (r) => r.kind === t) : void 0;
  }
  function eB(e) {
    return e.name ? !!(Ve(e.name) && e.name.text === "constructor") : !1;
  }
  function ABe(e, t, r) {
    if (Mr(e))
      return e.name;
    const i = e.argumentExpression;
    if (h_(i))
      return i;
    if (Es(i))
      return N_(i.text, $o(t)) ? N.createIdentifier(i.text) : vx(i) ? N.createStringLiteral(i.text, r === 0) : i;
  }
  var tB, mZ, CBe = C({
    "src/services/codefixes/convertFunctionToEs6Class.ts"() {
      Xr(), vo(), tB = "convertFunctionToEs6Class", mZ = [_.This_constructor_function_may_be_converted_to_a_class_declaration.code], fo({
        errorCodes: mZ,
        getCodeActions(e) {
          const t = gr.ChangeTracker.with(e, (r) => Rbe(r, e.sourceFile, e.span.start, e.program.getTypeChecker(), e.preferences, e.program.getCompilerOptions()));
          return [to(tB, t, _.Convert_function_to_an_ES2015_class, tB, _.Convert_all_constructor_functions_to_classes)];
        },
        fixIds: [tB],
        getAllCodeActions: (e) => Ss(e, mZ, (t, r) => Rbe(t, r.file, r.start, e.program.getTypeChecker(), e.preferences, e.program.getCompilerOptions()))
      });
    }
  });
  function Nbe(e, t, r, i) {
    const o = ia(t, r);
    let s;
    if (Ve(o) && zi(o.parent) && o.parent.initializer && Xs(o.parent.initializer) ? s = o.parent.initializer : s = ii(Tf(ia(t, r)), CQ), !s)
      return;
    const l = /* @__PURE__ */ new Map(), f = fr(s), d = IBe(s, i), y = kBe(s, i, l);
    if (!xQ(y, i))
      return;
    const h = y.body && oo(y.body) ? LBe(y.body, i) : rt, b = { checker: i, synthNamesMap: l, setOfExpressionsToReturn: d, isInJSFile: f };
    if (!h.length)
      return;
    const A = zo(t.text, Xp(s).pos);
    e.insertModifierAt(t, A, 132, { suffix: " " });
    for (const L of h)
      if (Ra(L, function I(O) {
        if (eo(O)) {
          const k = Qx(O, O, b, !1);
          if (YT())
            return !0;
          e.replaceNodeWithNodes(t, L, k);
        } else if (!qa(O) && (Ra(O, I), YT()))
          return !0;
      }), YT())
        return;
  }
  function LBe(e, t) {
    const r = [];
    return lT(e, (i) => {
      E9(i, t) && r.push(i);
    }), r;
  }
  function IBe(e, t) {
    if (!e.body)
      return /* @__PURE__ */ new Set();
    const r = /* @__PURE__ */ new Set();
    return Ra(e.body, function i(o) {
      bw(o, t, "then") ? (r.add(ds(o)), ze(o.arguments, i)) : bw(o, t, "catch") || bw(o, t, "finally") ? (r.add(ds(o)), Ra(o, i)) : Pbe(o, t) ? r.add(ds(o)) : Ra(o, i);
    }), r;
  }
  function bw(e, t, r) {
    if (!eo(e))
      return !1;
    const o = V8(e, r) && t.getTypeAtLocation(e);
    return !!(o && t.getPromisedTypeOfPromise(o));
  }
  function Obe(e, t) {
    return (Zr(e) & 4) !== 0 && e.target === t;
  }
  function nB(e, t, r) {
    if (e.expression.name.escapedText === "finally")
      return;
    const i = r.getTypeAtLocation(e.expression.expression);
    if (Obe(i, r.getPromiseType()) || Obe(i, r.getPromiseLikeType()))
      if (e.expression.name.escapedText === "then") {
        if (t === oy(e.arguments, 0))
          return oy(e.typeArguments, 0);
        if (t === oy(e.arguments, 1))
          return oy(e.typeArguments, 1);
      } else
        return oy(e.typeArguments, 0);
  }
  function Pbe(e, t) {
    return yt(e) ? !!t.getPromisedTypeOfPromise(t.getTypeAtLocation(e)) : !1;
  }
  function kBe(e, t, r) {
    const i = /* @__PURE__ */ new Map(), o = l_();
    return Ra(e, function s(l) {
      if (!Ve(l)) {
        Ra(l, s);
        return;
      }
      const f = t.getSymbolAtLocation(l);
      if (f) {
        const d = t.getTypeAtLocation(l), y = Vbe(d, t), h = yo(f).toString();
        if (y && !Oa(l.parent) && !Xs(l.parent) && !r.has(h)) {
          const b = zl(y.parameters), A = (b == null ? void 0 : b.valueDeclaration) && Oa(b.valueDeclaration) && ii(b.valueDeclaration.name, Ve) || N.createUniqueName("result", 16), L = Mbe(A, o);
          r.set(h, L), o.add(A.text, f);
        } else if (l.parent && (Oa(l.parent) || zi(l.parent) || us(l.parent))) {
          const b = l.text, A = o.get(b);
          if (A && A.some((L) => L !== f)) {
            const L = Mbe(l, o);
            i.set(h, L.identifier), r.set(h, L), o.add(b, f);
          } else {
            const L = kc(l);
            r.set(h, $C(L)), o.add(b, f);
          }
        }
      }
    }), i6(e, !0, (s) => {
      if (us(s) && Ve(s.name) && Um(s.parent)) {
        const l = t.getSymbolAtLocation(s.name), f = l && i.get(String(yo(l)));
        if (f && f.text !== (s.name || s.propertyName).getText())
          return N.createBindingElement(s.dotDotDotToken, s.propertyName || s.name, f, s.initializer);
      } else if (Ve(s)) {
        const l = t.getSymbolAtLocation(s), f = l && i.get(String(yo(l)));
        if (f)
          return N.createIdentifier(f.text);
      }
    });
  }
  function Mbe(e, t) {
    const r = (t.get(e.text) || rt).length, i = r === 0 ? e : N.createIdentifier(e.text + "_" + r);
    return $C(i);
  }
  function YT() {
    return !h6;
  }
  function qv() {
    return h6 = !1, rt;
  }
  function Qx(e, t, r, i, o) {
    if (bw(t, r.checker, "then"))
      return RBe(t, oy(t.arguments, 0), oy(t.arguments, 1), r, i, o);
    if (bw(t, r.checker, "catch"))
      return Gbe(t, oy(t.arguments, 0), r, i, o);
    if (bw(t, r.checker, "finally"))
      return DBe(t, oy(t.arguments, 0), r, i, o);
    if (Mr(t))
      return Qx(e, t.expression, r, i, o);
    const s = r.checker.getTypeAtLocation(t);
    return s && r.checker.getPromisedTypeOfPromise(s) ? (D.assertNode(Ec(t).parent, Mr), NBe(e, t, r, i, o)) : qv();
  }
  function rB({ checker: e }, t) {
    if (t.kind === 104)
      return !0;
    if (Ve(t) && !Tc(t) && Pr(t) === "undefined") {
      const r = e.getSymbolAtLocation(t);
      return !r || e.isUndefinedSymbol(r);
    }
    return !1;
  }
  function wBe(e) {
    const t = N.createUniqueName(e.identifier.text, 16);
    return $C(t);
  }
  function Fbe(e, t, r) {
    let i;
    return r && !Tw(e, t) && (Ew(r) ? (i = r, t.synthNamesMap.forEach((o, s) => {
      if (o.identifier.text === r.identifier.text) {
        const l = wBe(r);
        t.synthNamesMap.set(s, l);
      }
    })) : i = $C(N.createUniqueName("result", 16), r.types), vZ(i)), i;
  }
  function Bbe(e, t, r, i, o) {
    const s = [];
    let l;
    if (i && !Tw(e, t)) {
      l = kc(vZ(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(l, void 0, y)], b = N.createVariableStatement(void 0, N.createVariableDeclarationList(h, 1));
      s.push(b);
    }
    return s.push(r), o && l && MBe(o) && s.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([
      N.createVariableDeclaration(kc(zbe(o)), void 0, void 0, l)
    ], 2))), s;
  }
  function DBe(e, t, r, i, o) {
    if (!t || rB(r, t))
      return Qx(e, e.expression.expression, r, i, o);
    const s = Fbe(e, r, o), l = Qx(e, e.expression.expression, r, !0, s);
    if (YT())
      return qv();
    const f = gZ(t, i, void 0, void 0, e, r);
    if (YT())
      return qv();
    const d = N.createBlock(l), y = N.createBlock(f), h = N.createTryStatement(d, void 0, y);
    return Bbe(e, r, h, s, o);
  }
  function Gbe(e, t, r, i, o) {
    if (!t || rB(r, t))
      return Qx(e, e.expression.expression, r, i, o);
    const s = Hbe(t, r), l = Fbe(e, r, o), f = Qx(e, e.expression.expression, r, !0, l);
    if (YT())
      return qv();
    const d = gZ(t, i, l, s, e, r);
    if (YT())
      return qv();
    const y = N.createBlock(f), h = N.createCatchClause(s && kc(m6(s)), N.createBlock(d)), b = N.createTryStatement(y, h, void 0);
    return Bbe(e, r, b, l, o);
  }
  function RBe(e, t, r, i, o, s) {
    if (!t || rB(i, t))
      return Gbe(e, r, i, o, s);
    if (r && !rB(i, r))
      return qv();
    const l = Hbe(t, i), f = Qx(e.expression.expression, e.expression.expression, i, !0, l);
    if (YT())
      return qv();
    const d = gZ(t, o, s, l, e, i);
    return YT() ? qv() : ma(f, d);
  }
  function NBe(e, t, r, i, o) {
    if (Tw(e, r)) {
      let s = kc(t);
      return i && (s = N.createAwaitExpression(s)), [N.createReturnStatement(s)];
    }
    return iB(o, N.createAwaitExpression(t), void 0);
  }
  function iB(e, t, r) {
    return !e || Wbe(e) ? [N.createExpressionStatement(t)] : Ew(e) && e.hasBeenDeclared ? [N.createExpressionStatement(N.createAssignment(kc(yZ(e)), t))] : [
      N.createVariableStatement(void 0, N.createVariableDeclarationList([
        N.createVariableDeclaration(kc(m6(e)), void 0, r, t)
      ], 2))
    ];
  }
  function hZ(e, t) {
    if (t && e) {
      const r = N.createUniqueName("result", 16);
      return [
        ...iB($C(r), e, t),
        N.createReturnStatement(r)
      ];
    }
    return [N.createReturnStatement(e)];
  }
  function gZ(e, t, r, i, o, s) {
    var l;
    switch (e.kind) {
      case 104:
        break;
      case 208:
      case 79:
        if (!i)
          break;
        const f = N.createCallExpression(kc(e), void 0, Ew(i) ? [yZ(i)] : []);
        if (Tw(o, s))
          return hZ(f, nB(o, e, s.checker));
        const d = s.checker.getTypeAtLocation(e), y = s.checker.getSignaturesOfType(d, 0);
        if (!y.length)
          return qv();
        const h = y[0].getReturnType(), b = iB(r, N.createAwaitExpression(f), nB(o, e, s.checker));
        return r && r.types.push(s.checker.getAwaitedType(h) || h), b;
      case 215:
      case 216: {
        const A = e.body, L = (l = Vbe(s.checker.getTypeAtLocation(e), s.checker)) == null ? void 0 : l.getReturnType();
        if (oo(A)) {
          let I = [], O = !1;
          for (const k of A.statements)
            if (gp(k))
              if (O = !0, E9(k, s.checker))
                I = I.concat(jbe(s, k, t, r));
              else {
                const B = L && k.expression ? Ube(s.checker, L, k.expression) : k.expression;
                I.push(...hZ(B, nB(o, e, s.checker)));
              }
            else {
              if (t && lT(k, r1))
                return qv();
              I.push(k);
            }
          return Tw(o, s) ? I.map((k) => kc(k)) : OBe(I, r, s, O);
        } else {
          const I = AQ(A, s.checker) ? jbe(s, N.createReturnStatement(A), t, r) : rt;
          if (I.length > 0)
            return I;
          if (L) {
            const O = Ube(s.checker, L, A);
            if (Tw(o, s))
              return hZ(O, nB(o, e, s.checker));
            {
              const k = iB(r, O, void 0);
              return r && r.types.push(s.checker.getAwaitedType(L) || L), k;
            }
          } else
            return qv();
        }
      }
      default:
        return qv();
    }
    return rt;
  }
  function Ube(e, t, r) {
    const i = kc(r);
    return e.getPromisedTypeOfPromise(t) ? N.createAwaitExpression(i) : i;
  }
  function Vbe(e, t) {
    const r = t.getSignaturesOfType(e, 0);
    return ec(r);
  }
  function OBe(e, t, r, i) {
    const o = [];
    for (const s of e)
      if (gp(s)) {
        if (s.expression) {
          const l = Pbe(s.expression, r.checker) ? N.createAwaitExpression(s.expression) : s.expression;
          t === void 0 ? o.push(N.createExpressionStatement(l)) : Ew(t) && t.hasBeenDeclared ? o.push(N.createExpressionStatement(N.createAssignment(yZ(t), l))) : o.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(m6(t), void 0, void 0, l)], 2)));
        }
      } else
        o.push(kc(s));
    return !i && t !== void 0 && o.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(m6(t), void 0, void 0, N.createIdentifier("undefined"))], 2))), o;
  }
  function jbe(e, t, r, i) {
    let o = [];
    return Ra(t, function s(l) {
      if (eo(l)) {
        const f = Qx(l, l, e, r, i);
        if (o = o.concat(f), o.length > 0)
          return;
      } else
        qa(l) || Ra(l, s);
    }), o;
  }
  function Hbe(e, t) {
    const r = [];
    let i;
    if (Xs(e)) {
      if (e.parameters.length > 0) {
        const d = e.parameters[0].name;
        i = o(d);
      }
    } else
      Ve(e) ? i = s(e) : Mr(e) && Ve(e.name) && (i = s(e.name));
    if (!i || "identifier" in i && i.identifier.text === "undefined")
      return;
    return i;
    function o(d) {
      if (Ve(d))
        return s(d);
      const y = wo(d.elements, (h) => kl(h) ? [] : [o(h.name)]);
      return PBe(d, y);
    }
    function s(d) {
      const y = f(d), h = l(y);
      return h && t.synthNamesMap.get(yo(h).toString()) || $C(d, r);
    }
    function l(d) {
      var y, h;
      return (h = (y = ii(d, km)) == null ? void 0 : y.symbol) != null ? h : t.checker.getSymbolAtLocation(d);
    }
    function f(d) {
      return d.original ? d.original : d;
    }
  }
  function Wbe(e) {
    return e ? Ew(e) ? !e.identifier.text : Rn(e.elements, Wbe) : !0;
  }
  function $C(e, t = []) {
    return { kind: 0, identifier: e, types: t, hasBeenDeclared: !1, hasBeenReferenced: !1 };
  }
  function PBe(e, t = rt, r = []) {
    return { kind: 1, bindingPattern: e, elements: t, types: r };
  }
  function yZ(e) {
    return e.hasBeenReferenced = !0, e.identifier;
  }
  function m6(e) {
    return Ew(e) ? vZ(e) : zbe(e);
  }
  function zbe(e) {
    for (const t of e.elements)
      m6(t);
    return e.bindingPattern;
  }
  function vZ(e) {
    return e.hasBeenDeclared = !0, e.identifier;
  }
  function Ew(e) {
    return e.kind === 0;
  }
  function MBe(e) {
    return e.kind === 1;
  }
  function Tw(e, t) {
    return !!e.original && t.setOfExpressionsToReturn.has(ds(e.original));
  }
  var aB, bZ, h6, FBe = C({
    "src/services/codefixes/convertToAsyncFunction.ts"() {
      Xr(), vo(), aB = "convertToAsyncFunction", bZ = [_.This_may_be_converted_to_an_async_function.code], h6 = !0, fo({
        errorCodes: bZ,
        getCodeActions(e) {
          h6 = !0;
          const t = gr.ChangeTracker.with(e, (r) => Nbe(r, e.sourceFile, e.span.start, e.program.getTypeChecker()));
          return h6 ? [to(aB, t, _.Convert_to_async_function, aB, _.Convert_all_to_async_functions)] : [];
        },
        fixIds: [aB],
        getAllCodeActions: (e) => Ss(e, bZ, (t, r) => Nbe(t, r.file, r.start, e.program.getTypeChecker()))
      });
    }
  });
  function BBe(e, t, r, i) {
    for (const o of e.imports) {
      const s = kA(e, o.text, vp(e, o));
      if (!s || s.resolvedFileName !== t.fileName)
        continue;
      const l = gN(o);
      switch (l.kind) {
        case 268:
          r.replaceNode(e, l, Iy(l.name, void 0, o, i));
          break;
        case 210:
          Ed(l, !1) && r.replaceNode(e, l, N.createPropertyAccessExpression(kc(l), "default"));
          break;
      }
    }
  }
  function GBe(e, t, r, i, o) {
    const s = { original: QBe(e), additional: /* @__PURE__ */ new Set() }, l = UBe(e, t, s);
    VBe(e, l, r);
    let f = !1, d;
    for (const y of yn(e.statements, cl)) {
      const h = Jbe(e, y, r, t, s, i, o);
      h && KR(h, d ?? (d = /* @__PURE__ */ new Map()));
    }
    for (const y of yn(e.statements, (h) => !cl(h))) {
      const h = jBe(e, y, t, r, s, i, l, d, o);
      f = f || h;
    }
    return d == null || d.forEach((y, h) => {
      r.replaceNode(e, h, y);
    }), f;
  }
  function UBe(e, t, r) {
    const i = /* @__PURE__ */ new Map();
    return qbe(e, (o) => {
      const { text: s } = o.name;
      !i.has(s) && (f3(o.name) || t.resolveName(s, o, 111551, !0)) && i.set(s, oB(`_${s}`, r));
    }), i;
  }
  function VBe(e, t, r) {
    qbe(e, (i, o) => {
      if (o)
        return;
      const { text: s } = i.name;
      r.replaceNode(e, i, N.createIdentifier(t.get(s) || s));
    });
  }
  function qbe(e, t) {
    e.forEachChild(function r(i) {
      if (Mr(i) && B1(e, i.expression) && Ve(i.name)) {
        const { parent: o } = i;
        t(i, br(o) && o.left === i && o.operatorToken.kind === 63);
      }
      i.forEachChild(r);
    });
  }
  function jBe(e, t, r, i, o, s, l, f, d) {
    switch (t.kind) {
      case 240:
        return Jbe(e, t, i, r, o, s, d), !1;
      case 241: {
        const { expression: y } = t;
        switch (y.kind) {
          case 210:
            return Ed(y, !0) && i.replaceNode(e, t, Iy(void 0, void 0, y.arguments[0], d)), !1;
          case 223: {
            const { operatorToken: h } = y;
            return h.kind === 63 && WBe(e, r, y, i, l, f);
          }
        }
      }
      default:
        return !1;
    }
  }
  function Jbe(e, t, r, i, o, s, l) {
    const { declarationList: f } = t;
    let d = !1;
    const y = en(f.declarations, (h) => {
      const { name: b, initializer: A } = h;
      if (A) {
        if (B1(e, A))
          return d = !0, QC([]);
        if (Ed(A, !0))
          return d = !0, YBe(b, A.arguments[0], i, o, s, l);
        if (Mr(A) && Ed(A.expression, !0))
          return d = !0, HBe(b, A.name.text, A.expression.arguments[0], o, l);
      }
      return QC([N.createVariableStatement(void 0, N.createVariableDeclarationList([h], f.flags))]);
    });
    if (d) {
      r.replaceNodeWithNodes(e, t, wo(y, (b) => b.newImports));
      let h;
      return ze(y, (b) => {
        b.useSitesToUnqualify && KR(b.useSitesToUnqualify, h ?? (h = /* @__PURE__ */ new Map()));
      }), h;
    }
  }
  function HBe(e, t, r, i, o) {
    switch (e.kind) {
      case 203:
      case 204: {
        const s = oB(t, i);
        return QC([
          $be(s, t, r, o),
          sB(void 0, e, N.createIdentifier(s))
        ]);
      }
      case 79:
        return QC([$be(e.text, t, r, o)]);
      default:
        return D.assertNever(e, `Convert to ES module got invalid syntax form ${e.kind}`);
    }
  }
  function WBe(e, t, r, i, o, s) {
    const { left: l, right: f } = r;
    if (!Mr(l))
      return !1;
    if (B1(e, l))
      if (B1(e, f))
        i.delete(e, r.parent);
      else {
        const d = xs(f) ? zBe(f, s) : Ed(f, !0) ? JBe(f.arguments[0], t) : void 0;
        return d ? (i.replaceNodeWithNodes(e, r.parent, d[0]), d[1]) : (i.replaceRangeWithText(e, __(l.getStart(e), f.pos), "export default"), !0);
      }
    else
      B1(e, l.expression) && qBe(e, r, i, o);
    return !1;
  }
  function zBe(e, t) {
    const r = NS(e.properties, (i) => {
      switch (i.kind) {
        case 174:
        case 175:
        case 300:
        case 301:
          return;
        case 299:
          return Ve(i.name) ? XBe(i.name.text, i.initializer, t) : void 0;
        case 171:
          return Ve(i.name) ? Ybe(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 qBe(e, t, r, i) {
    const { text: o } = t.left.name, s = i.get(o);
    if (s !== void 0) {
      const l = [
        sB(void 0, s, t.right),
        SZ([N.createExportSpecifier(!1, s, o)])
      ];
      r.replaceNodeWithNodes(e, t.parent, l);
    } else
      KBe(t, e, r);
  }
  function JBe(e, t) {
    const r = e.text, i = t.getSymbolAtLocation(e), o = i ? i.exports : B4;
    return o.has("export=") ? [[EZ(r)], !0] : o.has("default") ? o.size > 1 ? [[Kbe(r), EZ(r)], !0] : [[EZ(r)], !0] : [[Kbe(r)], !1];
  }
  function Kbe(e) {
    return SZ(void 0, e);
  }
  function EZ(e) {
    return SZ([N.createExportSpecifier(!1, void 0, "default")], e);
  }
  function KBe({ left: e, right: t, parent: r }, i, o) {
    const s = e.name.text;
    if ((Ps(t) || Ws(t) || Pu(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 l = gs(r, 26, i);
      l && o.delete(i, l);
    } else
      o.replaceNodeRangeWithNodes(i, e.expression, gs(e, 24, i), [N.createToken(93), N.createToken(85)], { joiner: " ", suffix: " " });
  }
  function XBe(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 Ybe(e, i, t, r);
      case 228:
        return eGe(e, i, t, r);
      default:
        return o();
    }
    function o() {
      return sB(i, N.createIdentifier(e), TZ(t, r));
    }
  }
  function TZ(e, t) {
    if (!t || !kt(Do(t.keys()), (i) => sf(e, i)))
      return e;
    return Ba(e) ? H$(e, !0, r) : i6(e, !0, r);
    function r(i) {
      if (i.kind === 208) {
        const o = t.get(i);
        return t.delete(i), o;
      }
    }
  }
  function YBe(e, t, r, i, o, s) {
    switch (e.kind) {
      case 203: {
        const l = NS(e.elements, (f) => f.dotDotDotToken || f.initializer || f.propertyName && !Ve(f.propertyName) || !Ve(f.name) ? void 0 : Qbe(f.propertyName && f.propertyName.text, f.name.text));
        if (l)
          return QC([Iy(void 0, l, t, s)]);
      }
      case 204: {
        const l = oB(OZ(t.text, o), i);
        return QC([
          Iy(N.createIdentifier(l), void 0, t, s),
          sB(void 0, kc(e), N.createIdentifier(l))
        ]);
      }
      case 79:
        return $Be(e, t, r, i, s);
      default:
        return D.assertNever(e, `Convert to ES module got invalid name kind ${e.kind}`);
    }
  }
  function $Be(e, t, r, i, o) {
    const s = r.getSymbolAtLocation(e), l = /* @__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: b } = h;
      if (Mr(b)) {
        const { name: { text: A } } = b;
        if (A === "default") {
          f = !0;
          const L = h.getText();
          (d ?? (d = /* @__PURE__ */ new Map())).set(b, N.createIdentifier(L));
        } else {
          D.assert(b.expression === h, "Didn't expect expression === use");
          let L = l.get(A);
          L === void 0 && (L = oB(A, i), l.set(A, L)), (d ?? (d = /* @__PURE__ */ new Map())).set(b, N.createIdentifier(L));
        }
      } else
        f = !0;
    }
    const y = l.size === 0 ? void 0 : Do(Ql(l.entries(), ([h, b]) => N.createImportSpecifier(!1, h === b ? void 0 : N.createIdentifier(h), N.createIdentifier(b))));
    return y || (f = !0), QC([Iy(f ? kc(e) : void 0, y, t, o)], d);
  }
  function oB(e, t) {
    for (; t.original.has(e) || t.additional.has(e); )
      e = `_${e}`;
    return t.additional.add(e), e;
  }
  function QBe(e) {
    const t = l_();
    return Xbe(e, (r) => t.add(r.text, r)), t;
  }
  function Xbe(e, t) {
    Ve(e) && ZBe(e) && t(e), e.forEachChild((r) => Xbe(r, t));
  }
  function ZBe(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 Ybe(e, t, r, i) {
    return N.createFunctionDeclaration(ma(t, J1(r.modifiers)), kc(r.asteriskToken), e, J1(r.typeParameters), J1(r.parameters), kc(r.type), N.converters.convertToFunctionBlock(TZ(r.body, i)));
  }
  function eGe(e, t, r, i) {
    return N.createClassDeclaration(ma(t, J1(r.modifiers)), e, J1(r.typeParameters), J1(r.heritageClauses), TZ(r.members, i));
  }
  function $be(e, t, r, i) {
    return t === "default" ? Iy(N.createIdentifier(e), void 0, r, i) : Iy(void 0, [Qbe(t, e)], r, i);
  }
  function Qbe(e, t) {
    return N.createImportSpecifier(!1, e !== void 0 && e !== t ? N.createIdentifier(e) : void 0, N.createIdentifier(t));
  }
  function sB(e, t, r) {
    return N.createVariableStatement(e, N.createVariableDeclarationList([N.createVariableDeclaration(t, void 0, void 0, r)], 2));
  }
  function SZ(e, t) {
    return N.createExportDeclaration(void 0, !1, e && N.createNamedExports(e), t === void 0 ? void 0 : N.createStringLiteral(t));
  }
  function QC(e, t) {
    return {
      newImports: e,
      useSitesToUnqualify: t
    };
  }
  var tGe = C({
    "src/services/codefixes/convertToEsModule.ts"() {
      Xr(), vo(), fo({
        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 (GBe(t, r.getTypeChecker(), s, $o(r.getCompilerOptions()), Ep(t, i)))
              for (const f of r.getSourceFiles())
                BBe(f, t, s, Ep(f, i));
          });
          return [Tp("convertToEsModule", o, _.Convert_to_ES_module)];
        }
      });
    }
  });
  function Zbe(e, t) {
    const r = rr(ia(e, t), Sd);
    return D.assert(!!r, "Expected position to be owned by a qualified name."), Ve(r.left) ? r : void 0;
  }
  function e1e(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 cB, xZ, nGe = C({
    "src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts"() {
      Xr(), vo(), cB = "correctQualifiedNameToIndexedAccessType", xZ = [_.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], fo({
        errorCodes: xZ,
        getCodeActions(e) {
          const t = Zbe(e.sourceFile, e.span.start);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (o) => e1e(o, e.sourceFile, t)), i = `${t.left.text}["${t.right.text}"]`;
          return [to(cB, r, [_.Rewrite_as_the_indexed_access_type_0, i], cB, _.Rewrite_all_as_indexed_access_types)];
        },
        fixIds: [cB],
        getAllCodeActions: (e) => Ss(e, xZ, (t, r) => {
          const i = Zbe(r.file, r.start);
          i && e1e(t, r.file, i);
        })
      });
    }
  });
  function t1e(e, t) {
    return ii(ia(t, e.start).parent, cd);
  }
  function n1e(e, t, r) {
    if (!t)
      return;
    const i = t.parent, o = i.parent, s = rGe(t, r);
    if (s.length === i.elements.length)
      e.insertModifierBefore(r.sourceFile, 154, i);
    else {
      const l = N.updateExportDeclaration(o, o.modifiers, !1, N.updateNamedExports(i, yn(i.elements, (d) => !wi(s, d))), o.moduleSpecifier, void 0), f = N.createExportDeclaration(void 0, !0, N.createNamedExports(s), o.moduleSpecifier, void 0);
      e.replaceNode(r.sourceFile, o, l, {
        leadingTriviaOption: gr.LeadingTriviaOption.IncludeAll,
        trailingTriviaOption: gr.TrailingTriviaOption.Exclude
      }), e.insertNodeAfter(r.sourceFile, o, f);
    }
  }
  function rGe(e, t) {
    const r = e.parent;
    if (r.elements.length === 1)
      return r.elements;
    const i = uve(Zu(r), t.program.getSemanticDiagnostics(t.sourceFile, t.cancellationToken));
    return yn(r.elements, (o) => {
      var s;
      return o === e || ((s = lve(o, i)) == null ? void 0 : s.code) === lB[0];
    });
  }
  var lB, uB, iGe = C({
    "src/services/codefixes/convertToTypeOnlyExport.ts"() {
      Xr(), vo(), lB = [_.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type.code], uB = "convertToTypeOnlyExport", fo({
        errorCodes: lB,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => n1e(i, t1e(t.span, t.sourceFile), t));
          if (r.length)
            return [to(uB, r, _.Convert_to_type_only_export, uB, _.Convert_all_re_exported_types_to_type_only_exports)];
        },
        fixIds: [uB],
        getAllCodeActions: function(t) {
          const r = /* @__PURE__ */ new Map();
          return Ss(t, lB, (i, o) => {
            const s = t1e(o, t.sourceFile);
            s && hp(r, ds(s.parent.parent)) && n1e(i, s, t);
          });
        }
      });
    }
  });
  function r1e(e, t) {
    const { parent: r } = ia(e, t);
    return xd(r) || Ul(r) && r.importClause ? r : void 0;
  }
  function i1e(e, t, r) {
    if (xd(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(J1(r.modifiers, !0), N.createImportClause(!0, kc(i.name, !0), void 0), kc(r.moduleSpecifier, !0), kc(r.assertClause, !0)),
          N.createImportDeclaration(J1(r.modifiers, !0), N.createImportClause(!0, void 0, kc(i.namedBindings, !0)), kc(r.moduleSpecifier, !0), kc(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 AZ, dB, aGe = C({
    "src/services/codefixes/convertToTypeOnlyImport.ts"() {
      Xr(), vo(), AZ = [
        _.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
      ], dB = "convertToTypeOnlyImport", fo({
        errorCodes: AZ,
        getCodeActions: function(t) {
          const r = r1e(t.sourceFile, t.span.start);
          if (r) {
            const i = gr.ChangeTracker.with(t, (o) => i1e(o, t.sourceFile, r));
            return [to(dB, i, _.Convert_to_type_only_import, dB, _.Convert_all_imports_not_used_as_a_value_to_type_only_imports)];
          }
        },
        fixIds: [dB],
        getAllCodeActions: function(t) {
          return Ss(t, AZ, (r, i) => {
            const o = r1e(i.file, i.start);
            o && i1e(r, i.file, o);
          });
        }
      });
    }
  });
  function a1e(e, t) {
    const r = ia(e, t);
    if (Ve(r)) {
      const i = ro(r.parent.parent, xf), o = r.getText(e);
      return {
        container: ro(i.parent, of),
        typeNode: i.type,
        constraint: o,
        name: o === "K" ? "P" : "K"
      };
    }
  }
  function o1e(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 fB, CZ, oGe = C({
    "src/services/codefixes/convertLiteralTypeToMappedType.ts"() {
      Xr(), vo(), fB = "convertLiteralTypeToMappedType", CZ = [_._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0.code], fo({
        errorCodes: CZ,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = a1e(r, i.start);
          if (!o)
            return;
          const { name: s, constraint: l } = o, f = gr.ChangeTracker.with(t, (d) => o1e(d, r, o));
          return [to(fB, f, [_.Convert_0_to_1_in_0, l, s], fB, _.Convert_all_type_literals_to_mapped_type)];
        },
        fixIds: [fB],
        getAllCodeActions: (e) => Ss(e, CZ, (t, r) => {
          const i = a1e(r.file, r.start);
          i && o1e(t, r.file, i);
        })
      });
    }
  });
  function s1e(e, t) {
    return D.checkDefined(Tl(ia(e, t)), "There should be a containing class");
  }
  function c1e(e) {
    return !e.valueDeclaration || !(Ru(e.valueDeclaration) & 8);
  }
  function l1e(e, t, r, i, o, s) {
    const l = e.program.getTypeChecker(), f = sGe(i, l), d = l.getTypeAtLocation(t), h = l.getPropertiesOfType(d).filter(P4(c1e, (k) => !f.has(k.escapedName))), b = l.getTypeAtLocation(i), A = cn(i.members, (k) => Hc(k));
    b.getNumberIndexType() || I(d, 1), b.getStringIndexType() || I(d, 0);
    const L = $T(r, e.program, s, e.host);
    Ree(i, h, r, e, s, L, (k) => O(r, i, k)), L.writeFixes(o);
    function I(k, B) {
      const V = l.getIndexInfoOfType(k, B);
      V && O(r, i, l.indexInfoToIndexSignatureDeclaration(V, i, void 0, Zx(e)));
    }
    function O(k, B, V) {
      A ? o.insertNodeAfter(k, A, V) : o.insertMemberAtStart(k, B, V);
    }
  }
  function sGe(e, t) {
    const r = Jp(e);
    if (!r)
      return ao();
    const i = t.getTypeAtLocation(r), o = t.getPropertiesOfType(i);
    return ao(o.filter(c1e));
  }
  var LZ, _B, cGe = C({
    "src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts"() {
      Xr(), vo(), LZ = [
        _.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
      ], _B = "fixClassIncorrectlyImplementsInterface", fo({
        errorCodes: LZ,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = s1e(t, r.start);
          return fa(qA(i), (o) => {
            const s = gr.ChangeTracker.with(e, (l) => l1e(e, o, t, i, l, e.preferences));
            return s.length === 0 ? void 0 : to(_B, s, [_.Implement_interface_0, o.getText(t)], _B, _.Implement_all_unimplemented_interfaces);
          });
        },
        fixIds: [_B],
        getAllCodeActions(e) {
          const t = /* @__PURE__ */ new Map();
          return Ss(e, LZ, (r, i) => {
            const o = s1e(i.file, i.start);
            if (hp(t, ds(o)))
              for (const s of qA(o))
                l1e(e, s, i.file, o, r, e.preferences);
          });
        }
      });
    }
  });
  function $T(e, t, r, i, o) {
    return u1e(e, t, !1, r, i, o);
  }
  function u1e(e, t, r, i, o, s) {
    const l = t.getCompilerOptions(), f = [], d = [], y = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
    return { addImportFromDiagnostic: b, addImportFromExportedSymbol: A, writeFixes: I, hasFixes: O };
    function b(k, B) {
      const V = h1e(B, k.code, k.start, r);
      !V || !V.length || L(ss(V));
    }
    function A(k, B) {
      const V = D.checkDefined(k.parent), H = o9(k, $o(l)), te = t.getTypeChecker(), X = te.getMergedSymbol(af(k, te)), Y = _1e(e, X, H, V, !1, t, o, i, s), P = mB(e, t), de = d1e(e, D.checkDefined(Y), t, void 0, !!B, P, o, i);
      de && L({ fix: de, symbolName: H, errorIdentifierText: void 0 });
    }
    function L(k) {
      var B, 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: ne, addAsTypeOnly: ye } = H, ie = String(ds(de));
          let W = y.get(ie);
          if (W || y.set(ie, W = { importClauseOrBindingPattern: de, defaultImport: void 0, namedImports: /* @__PURE__ */ new Map() }), ne === 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((B = W.defaultImport) == null ? void 0 : B.addAsTypeOnly, ye)
            };
          break;
        }
        case 3: {
          const { moduleSpecifier: de, importKind: ne, useRequire: ye, addAsTypeOnly: ie } = H, W = Y(de, ne, ye, ie);
          switch (D.assert(W.useRequire === ye, "(Add new) Tried to add an `import` and a `require` for the same module"), ne) {
            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, ie) };
              break;
            case 0:
              const ce = (W.namedImports || (W.namedImports = /* @__PURE__ */ new Map())).get(te);
              W.namedImports.set(te, X(ce, ie));
              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: ne, name: te, addAsTypeOnly: ie };
              break;
          }
          break;
        }
        case 4:
          break;
        default:
          D.assertNever(H, `fix wasn't never - got kind ${H.kind}`);
      }
      function X(de, ne) {
        return Math.max(de ?? 0, ne);
      }
      function Y(de, ne, ye, ie) {
        const W = P(de, !0), ce = P(de, !1), pe = h.get(W), ve = h.get(ce), Te = {
          defaultImport: void 0,
          namedImports: void 0,
          namespaceLikeImport: void 0,
          useRequire: ye
        };
        return ne === 1 && ie === 2 ? pe || (h.set(W, Te), Te) : ie === 1 && (pe || ve) ? pe || ve : ve || (h.set(ce, Te), Te);
      }
      function P(de, ne) {
        return `${ne ? 1 : 0}|${de}`;
      }
    }
    function I(k) {
      const B = Ep(e, i);
      for (const H of f)
        RZ(k, e, H);
      for (const H of d)
        S1e(k, e, H, B);
      y.forEach(({ importClauseOrBindingPattern: H, defaultImport: te, namedImports: X }) => {
        T1e(k, e, H, te, Do(X.entries(), ([Y, P]) => ({ addAsTypeOnly: P, name: Y })), l, i);
      });
      let V;
      h.forEach(({ useRequire: H, defaultImport: te, namedImports: X, namespaceLikeImport: Y }, P) => {
        const de = P.slice(2), ye = (H ? C1e : A1e)(de, B, te, X && Do(X.entries(), ([ie, W]) => ({ addAsTypeOnly: W, name: ie })), Y, l);
        V = _A(V, ye);
      }), V && qF(k, e, V, !0, i);
    }
    function O() {
      return f.length > 0 || d.length > 0 || y.size > 0 || h.size > 0;
    }
  }
  function lGe(e, t, r, i) {
    const o = mw(e, i, r), s = p1e(t.getTypeChecker(), e, t.getCompilerOptions());
    return { getModuleSpecifierForBestExportInfo: l };
    function l(f, d, y, h) {
      const { fixes: b, computedWithoutCacheCount: A } = pB(f, d, y, !1, t, e, r, i, s, h), L = g1e(b, e, t, o, r);
      return L && { ...L, computedWithoutCacheCount: A };
    }
  }
  function uGe(e, t, r, i, o, s, l, f, d, y, h, b) {
    const A = f.getCompilerOptions();
    let L;
    r ? (L = c6(i, l, f, h, b).get(i.path, r), D.assertIsDefined(L, "Some exportInfo should match the specified exportMapKey")) : (L = OH(G_(t.name)) ? [fGe(e, o, t, f, l)] : _1e(i, e, o, t, s, f, l, h, b), D.assertIsDefined(L, "Some exportInfo should match the specified symbol / moduleSymbol"));
    const I = mB(i, f), O = px(ia(i, y)), k = D.checkDefined(d1e(i, L, f, y, O, I, l, h));
    return {
      moduleSpecifier: k.moduleSpecifier,
      codeAction: f1e(DZ({ host: l, formatContext: d, preferences: h }, i, o, k, !1, A, h))
    };
  }
  function dGe(e, t, r, i, o, s) {
    const l = r.getCompilerOptions(), f = dj(wZ(e, r.getTypeChecker(), t, l)), d = b1e(e, t, f, r), y = f !== t.text;
    return d && f1e(DZ({ host: i, formatContext: o, preferences: s }, e, f, d, y, l, s));
  }
  function d1e(e, t, r, i, o, s, l, f) {
    const d = mw(e, f, l);
    return g1e(pB(t, i, o, s, r, e, l, f).fixes, e, r, d, l);
  }
  function f1e({ description: e, changes: t, commands: r }) {
    return { description: e, changes: t, commands: r };
  }
  function _1e(e, t, r, i, o, s, l, f, d) {
    const y = m1e(s, l);
    return c6(e, l, s, f, d).search(e.path, o, (h) => h === r, (h) => {
      if (af(h[0].symbol, y(h[0].isFromPackageJson)) === t && h.some((b) => b.moduleSymbol === i || b.symbol.parent === i))
        return h;
    });
  }
  function fGe(e, t, r, i, o) {
    var s, l;
    const f = i.getCompilerOptions(), d = h(i.getTypeChecker(), !1);
    if (d)
      return d;
    const y = (l = (s = o.getPackageJsonAutoImportProvider) == null ? void 0 : s.call(o)) == null ? void 0 : l.getTypeChecker();
    return D.checkDefined(y && h(y, !0), "Could not find symbol in specified module for code actions");
    function h(b, A) {
      const L = p9(r, b, f);
      if (L && af(L.symbol, b) === e)
        return { symbol: L.symbol, moduleSymbol: r, moduleFileName: void 0, exportKind: L.exportKind, targetFlags: af(e, b).flags, isFromPackageJson: A };
      const I = b.tryGetMemberInModuleExportsAndProperties(t, r);
      if (I && af(I, b) === e)
        return { symbol: I, moduleSymbol: r, moduleFileName: void 0, exportKind: 0, targetFlags: af(e, b).flags, isFromPackageJson: A };
    }
  }
  function pB(e, t, r, i, o, s, l, f, d = p1e(o.getTypeChecker(), s, o.getCompilerOptions()), y) {
    const h = o.getTypeChecker(), b = wo(e, d.getImportsForExportInfo), A = t !== void 0 && _Ge(b, t), L = mGe(b, r, h, o.getCompilerOptions());
    if (L)
      return {
        computedWithoutCacheCount: 0,
        fixes: [...A ? [A] : rt, L]
      };
    const { fixes: I, computedWithoutCacheCount: O = 0 } = gGe(e, b, o, s, t, r, i, l, f, y);
    return {
      computedWithoutCacheCount: O,
      fixes: [...A ? [A] : rt, ...I]
    };
  }
  function _Ge(e, t) {
    return sn(e, ({ declaration: r, importKind: i }) => {
      var o;
      if (i !== 0)
        return;
      const s = pGe(r), l = s && ((o = hN(r)) == null ? void 0 : o.text);
      if (l)
        return { kind: 0, namespacePrefix: s, usagePosition: t, moduleSpecifier: l };
    });
  }
  function pGe(e) {
    var t, r, i;
    switch (e.kind) {
      case 257:
        return (t = ii(e.name, Ve)) == null ? void 0 : t.text;
      case 268:
        return e.name.text;
      case 269:
        return (i = ii((r = e.importClause) == null ? void 0 : r.namedBindings, Pv)) == null ? void 0 : i.name.text;
      default:
        return D.assertNever(e);
    }
  }
  function IZ(e, t, r, i, o, s) {
    return e ? t && s.importsNotUsedAsValues === 2 || I3(s) && (!(i & 111551) || o.getTypeOnlyAliasDeclaration(r)) ? 2 : 1 : 4;
  }
  function mGe(e, t, r, i) {
    return sn(e, ({ declaration: o, importKind: s, symbol: l, 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 || !Es(o.moduleSpecifier))
        return;
      const { name: y, namedBindings: h } = d;
      if (d.isTypeOnly && !(s === 0 && h))
        return;
      const b = IZ(t, !1, l, f, r, i);
      if (!(s === 1 && (y || b === 2 && h)) && !(s === 0 && (h == null ? void 0 : h.kind) === 271))
        return {
          kind: 2,
          importClauseOrBindingPattern: d,
          importKind: s,
          moduleSpecifier: o.moduleSpecifier.text,
          addAsTypeOnly: b
        };
    });
  }
  function p1e(e, t, r) {
    let i;
    for (const o of t.imports) {
      const s = gN(o);
      if (tz(s.parent)) {
        const l = e.resolveExternalModuleName(o);
        l && (i || (i = l_())).add(yo(l), s.parent);
      } else if (s.kind === 269 || s.kind === 268) {
        const l = e.getSymbolAtLocation(o);
        l && (i || (i = l_())).add(yo(l), s);
      }
    }
    return {
      getImportsForExportInfo: ({ moduleSymbol: o, exportKind: s, targetFlags: l, symbol: f }) => {
        if (!(l & 111551) && Xu(t))
          return rt;
        const d = i == null ? void 0 : i.get(yo(o));
        if (!d)
          return rt;
        const y = kZ(t, s, r);
        return d.map((h) => ({ declaration: h, importKind: y, symbol: f, targetFlags: l }));
      }
    };
  }
  function mB(e, t) {
    if (!Xu(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 tu(r) < 5;
    for (const i of t.getSourceFiles())
      if (!(i === e || !Xu(i) || t.isSourceFileFromExternalLibrary(i))) {
        if (i.commonJsModuleIndicator && !i.externalModuleIndicator)
          return !0;
        if (i.externalModuleIndicator && !i.commonJsModuleIndicator)
          return !1;
      }
    return !0;
  }
  function m1e(e, t) {
    return xm((r) => r ? t.getPackageJsonAutoImportProvider().getTypeChecker() : e.getTypeChecker());
  }
  function hGe(e, t, r, i, o, s, l, f, d) {
    const y = Xu(t), h = e.getCompilerOptions(), b = Hx(e, l), A = m1e(e, l), L = yc(h), I = UF(L), O = d ? (V) => ({ moduleSpecifiers: G1.tryGetModuleSpecifiersFromCache(V, t, b, f), computedWithoutCache: !1 }) : (V, H) => G1.getModuleSpecifiersWithCacheInfo(V, H, h, t, b, f);
    let k = 0;
    const B = wo(s, (V, H) => {
      const te = A(V.isFromPackageJson), { computedWithoutCache: X, moduleSpecifiers: Y } = O(V.moduleSymbol, te), P = !!(V.targetFlags & 111551), de = IZ(i, !0, V.symbol, V.targetFlags, te, h);
      return k += X ? 1 : 0, fa(Y, (ne) => {
        var ye;
        if (I && Bx(ne))
          return;
        if (!P && y && r !== void 0)
          return { kind: 1, moduleSpecifier: ne, usagePosition: r, exportInfo: V, isReExport: H > 0 };
        const ie = kZ(t, V.exportKind, h);
        let W;
        if (r !== void 0 && ie === 3 && V.exportKind === 0) {
          const ce = te.resolveExternalModuleSymbol(V.moduleSymbol);
          let pe;
          ce !== V.moduleSymbol && (pe = (ye = m9(ce, te, h)) == null ? void 0 : ye.name), pe || (pe = NZ(V.moduleSymbol, $o(h), !1)), W = { namespacePrefix: pe, usagePosition: r };
        }
        return {
          kind: 3,
          moduleSpecifier: ne,
          importKind: ie,
          useRequire: o,
          addAsTypeOnly: de,
          exportInfo: V,
          isReExport: H > 0,
          qualification: W
        };
      });
    });
    return { computedWithoutCacheCount: k, fixes: B };
  }
  function gGe(e, t, r, i, o, s, l, f, d, y) {
    const h = sn(t, (b) => yGe(b, s, l, r.getTypeChecker(), r.getCompilerOptions()));
    return h ? { fixes: [h] } : hGe(r, i, o, s, l, e, f, d, y);
  }
  function yGe({ declaration: e, importKind: t, symbol: r, targetFlags: i }, o, s, l, f) {
    var d;
    const y = (d = hN(e)) == null ? void 0 : d.text;
    if (y) {
      const h = s ? 4 : IZ(o, !0, r, i, l, f);
      return { kind: 3, moduleSpecifier: y, importKind: t, addAsTypeOnly: h, useRequire: s };
    }
  }
  function h1e(e, t, r, i) {
    const o = ia(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 = TGe(e, o);
    else if (Ve(o))
      if (t === _._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code) {
        const f = dj(wZ(e.sourceFile, e.program.getTypeChecker(), o, e.program.getCompilerOptions())), d = b1e(e.sourceFile, o, f, e.program);
        return d && [{ fix: d, symbolName: f, errorIdentifierText: o.text }];
      } else
        s = AGe(e, o, i);
    else
      return;
    const l = mw(e.sourceFile, e.preferences, e.host);
    return s && vGe(s, e.sourceFile, e.program, l, e.host);
  }
  function vGe(e, t, r, i, o) {
    const s = (l) => js(l, o.getCurrentDirectory(), q0(o));
    return eI(e, (l, f) => i1(!!l.isJsxNamespaceFix, !!f.isJsxNamespaceFix) || Vs(l.fix.kind, f.fix.kind) || y1e(l.fix, f.fix, t, r, i.allowsImportingSpecifier, s));
  }
  function g1e(e, t, r, i, o) {
    if (kt(e))
      return e[0].kind === 0 || e[0].kind === 2 ? e[0] : e.reduce((s, l) => y1e(l, s, t, r, i.allowsImportingSpecifier, (f) => js(f, o.getCurrentDirectory(), q0(o))) === -1 ? l : s);
  }
  function y1e(e, t, r, i, o, s) {
    return e.kind !== 0 && t.kind !== 0 ? i1(o(t.moduleSpecifier), o(e.moduleSpecifier)) || EGe(e.moduleSpecifier, t.moduleSpecifier, r, i) || i1(v1e(e, r, i.getCompilerOptions(), s), v1e(t, r, i.getCompilerOptions(), s)) || $N(e.moduleSpecifier, t.moduleSpecifier) : 0;
  }
  function v1e(e, t, r, i) {
    var o;
    if (e.isReExport && ((o = e.exportInfo) != null && o.moduleFileName) && yc(r) === 2 && bGe(e.exportInfo.moduleFileName)) {
      const s = i(_i(e.exportInfo.moduleFileName));
      return ba(t.path, s);
    }
    return !1;
  }
  function bGe(e) {
    return du(e, [".js", ".jsx", ".d.ts", ".ts", ".tsx"], !0) === "index";
  }
  function EGe(e, t, r, i) {
    return ba(e, "node:") && !ba(t, "node:") ? c9(r, i) ? -1 : 1 : ba(t, "node:") && !ba(e, "node:") ? c9(r, i) ? 1 : -1 : 0;
  }
  function TGe({ sourceFile: e, program: t, host: r, preferences: i }, o) {
    const s = t.getTypeChecker(), l = SGe(o, s);
    if (!l)
      return;
    const f = s.getAliasedSymbol(l), d = l.name, y = [{ symbol: l, moduleSymbol: f, moduleFileName: void 0, exportKind: 3, targetFlags: f.flags, isFromPackageJson: !1 }], h = mB(e, t);
    return pB(y, void 0, !1, h, t, e, r, i).fixes.map((A) => {
      var L;
      return { fix: A, symbolName: d, errorIdentifierText: (L = ii(o, Ve)) == null ? void 0 : L.text };
    });
  }
  function SGe(e, t) {
    const r = Ve(e) ? t.getSymbolAtLocation(e) : void 0;
    if (x3(r))
      return r;
    const { parent: i } = e;
    if (Ku(i) && i.tagName === e || Rx(i)) {
      const o = t.resolveName(t.getJsxNamespace(i), Ku(i) ? e : i, 111551, !1);
      if (x3(o))
        return o;
    }
  }
  function kZ(e, t, r, i) {
    if (r.verbatimModuleSyntax && (tu(r) === 1 || e.impliedNodeFormat === 1))
      return 3;
    switch (t) {
      case 0:
        return 0;
      case 1:
        return 1;
      case 2:
        return IGe(e, r, !!i);
      case 3:
        return xGe(e, r, !!i);
      default:
        return D.assertNever(t);
    }
  }
  function xGe(e, t, r) {
    if (ET(t))
      return 1;
    const i = tu(t);
    switch (i) {
      case 2:
      case 1:
      case 3:
        return fr(e) && (Yc(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 AGe({ sourceFile: e, program: t, cancellationToken: r, host: i, preferences: o }, s, l) {
    const f = t.getTypeChecker(), d = t.getCompilerOptions();
    return wo(wZ(e, f, s, d), (y) => {
      if (y === "default")
        return;
      const h = px(s), b = mB(e, t), A = LGe(y, PI(s), HT(s), r, e, t, l, i, o);
      return Do(O0(A.values(), (L) => pB(L, s.getStart(e), h, b, t, e, i, o).fixes), (L) => ({ fix: L, symbolName: y, errorIdentifierText: s.text, isJsxNamespaceFix: y !== s.text }));
    });
  }
  function b1e(e, t, r, i) {
    const o = i.getTypeChecker(), s = o.resolveName(r, t, 111551, !0);
    if (!s)
      return;
    const l = o.getTypeOnlyAliasDeclaration(s);
    if (!(!l || er(l) !== e))
      return { kind: 4, typeOnlyAliasDeclaration: l };
  }
  function wZ(e, t, r, i) {
    const o = r.parent;
    if ((Ku(o) || wx(o)) && o.tagName === r && rQ(i.jsx)) {
      const s = t.getJsxNamespace(e);
      if (CGe(s, r, t))
        return !HI(r.text) && !t.resolveName(r.text, r, 111551, !1) ? [r.text, s] : [s];
    }
    return [r.text];
  }
  function CGe(e, t, r) {
    if (HI(t.text))
      return !0;
    const i = r.resolveName(e, t, 111551, !0);
    return !i || kt(i.declarations, p1) && !(i.flags & 111551);
  }
  function LGe(e, t, r, i, o, s, l, f, d) {
    var y;
    const h = l_(), b = mw(o, d, f), A = (y = f.getModuleSpecifierCache) == null ? void 0 : y.call(f), L = xm((O) => Hx(O ? f.getPackageJsonAutoImportProvider() : s, f));
    function I(O, k, B, V, H, te) {
      const X = L(te);
      if (k && sQ(H, o, k, d, b, X, A) || !k && b.allowsImportingAmbientModule(O, X)) {
        const Y = H.getTypeChecker();
        h.add(Qye(B, Y).toString(), { symbol: B, moduleSymbol: O, moduleFileName: k == null ? void 0 : k.fileName, exportKind: V, targetFlags: af(B, Y).flags, isFromPackageJson: te });
      }
    }
    return cQ(s, f, d, l, (O, k, B, V) => {
      const H = B.getTypeChecker();
      i.throwIfCancellationRequested();
      const te = B.getCompilerOptions(), X = p9(O, H, te);
      X && (X.name === e || NZ(O, $o(te), t) === e) && I1e(X.resolvedSymbol, r) && I(O, k, X.symbol, X.exportKind, B, V);
      const Y = H.tryGetMemberInModuleExportsAndProperties(e, O);
      Y && I1e(Y, r) && I(O, k, Y, 0, B, V);
    }), h;
  }
  function IGe(e, t, r) {
    const i = ET(t), o = fr(e);
    if (!o && tu(t) >= 5)
      return i ? 1 : 2;
    if (o)
      return Yc(e) || r ? i ? 1 : 2 : 3;
    for (const s of e.statements)
      if (ru(s) && !xc(s.moduleReference))
        return 3;
    return i ? 1 : 3;
  }
  function DZ(e, t, r, i, o, s, l) {
    let f;
    const d = gr.ChangeTracker.with(e, (y) => {
      f = kGe(y, t, r, i, o, s, l);
    });
    return to(PZ, d, f, MZ, _.Add_all_missing_imports);
  }
  function kGe(e, t, r, i, o, s, l) {
    const f = Ep(t, l);
    switch (i.kind) {
      case 0:
        return RZ(e, t, i), [_.Change_0_to_1, r, `${i.namespacePrefix}.${r}`];
      case 1:
        return S1e(e, t, i, f), [_.Change_0_to_1, r, x1e(i.moduleSpecifier, f) + r];
      case 2: {
        const { importClauseOrBindingPattern: d, importKind: y, addAsTypeOnly: h, moduleSpecifier: b } = i;
        T1e(e, t, d, y === 1 ? { name: r, addAsTypeOnly: h } : void 0, y === 0 ? [{ name: r, addAsTypeOnly: h }] : rt, s, l);
        const A = G_(b);
        return o ? [_.Import_0_from_1, r, A] : [_.Update_import_from_0, A];
      }
      case 3: {
        const { importKind: d, moduleSpecifier: y, addAsTypeOnly: h, useRequire: b, qualification: A } = i, L = b ? C1e : A1e, 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 qF(e, t, L(y, f, I, O, k, s), !0, l), A && RZ(e, t, A), o ? [_.Import_0_from_1, r, y] : [_.Add_import_from_0, y];
      }
      case 4: {
        const { typeOnlyAliasDeclaration: d } = i, y = wGe(e, d, s, t, l);
        return y.kind === 273 ? [_.Remove_type_from_import_of_0_from_1, r, E1e(y.parent.parent)] : [_.Remove_type_from_import_declaration_from_0, E1e(y)];
      }
      default:
        return D.assertNever(i, `Unexpected fix kind ${i.kind}`);
    }
  }
  function E1e(e) {
    var t, r;
    return e.kind === 268 ? ((r = ii((t = ii(e.moduleReference, jm)) == null ? void 0 : t.expression, Es)) == null ? void 0 : r.text) || e.moduleReference.getText() : ro(e.parent.moduleSpecifier, Go).text;
  }
  function wGe(e, t, r, i, o) {
    const s = I3(r);
    switch (t.kind) {
      case 273:
        if (t.isTypeOnly) {
          const f = X_.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 = X_.getOrganizeImportsComparer(o, f === 2), h = X_.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), l(t.parent.parent), t.parent.parent;
      case 270:
        return l(t), t;
      case 271:
        return l(t.parent), t.parent;
      case 268:
        return e.deleteRange(i, t.getChildAt(1)), t;
      default:
        D.failBadSyntaxKind(t);
    }
    function l(f) {
      if (e.delete(i, O$(f, i)), s) {
        const d = ii(f.namedBindings, Ey);
        if (d && d.elements.length > 1) {
          X_.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 T1e(e, t, r, i, o, s, l) {
    var f;
    if (r.kind === 203) {
      i && b(r, i.name, "default");
      for (const A of o)
        b(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 = ii(r.namedBindings, Ey)) == null ? void 0 : f.elements), h = d && I3(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 l.organizeImportsIgnoreCase == "boolean")
        A = l.organizeImportsIgnoreCase;
      else if (y) {
        const k = X_.detectImportSpecifierSorting(y, l);
        k !== 3 && (A = k === 2);
      }
      A === void 0 && (A = X_.detectSorting(t, l) === 2);
      const L = X_.getOrganizeImportsComparer(l, A), I = iy(o.map((k) => N.createImportSpecifier((!r.isTypeOnly || d) && g6(k), void 0, N.createIdentifier(k.name))), (k, B) => X_.compareImportOrExportSpecifiers(k, B, L)), O = (y == null ? void 0 : y.length) && X_.detectImportSpecifierSorting(y, l);
      if (O && !(A && O === 1))
        for (const k of I) {
          const B = h && !k.isTypeOnly ? 0 : X_.getImportSpecifierInsertionIndex(y, k, L);
          e.insertImportSpecifierAtIndex(t, k, r.namedBindings, B);
        }
      else if (y != null && y.length)
        for (const k of I)
          e.insertNodeInListAfter(t, Ho(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, O$(r, t)), h && y))
      for (const A of y)
        e.insertModifierBefore(t, 154, A);
    function b(A, L, I) {
      const O = N.createBindingElement(void 0, I, L);
      A.elements.length ? e.insertNodeInListAfter(t, Ho(A.elements), O) : e.replaceNode(t, A, N.createObjectBindingPattern([O]));
    }
  }
  function RZ(e, t, { namespacePrefix: r, usagePosition: i }) {
    e.insertText(t, i, r + ".");
  }
  function S1e(e, t, { moduleSpecifier: r, usagePosition: i }, o) {
    e.insertText(t, i, x1e(r, o));
  }
  function x1e(e, t) {
    const r = Uye(t);
    return `import(${r}${e}${r}).`;
  }
  function g6({ addAsTypeOnly: e }) {
    return e === 2;
  }
  function A1e(e, t, r, i, o, s) {
    const l = VF(e, t);
    let f;
    if (r !== void 0 || i != null && i.length) {
      const d = (!r || g6(r)) && Rn(i, g6) || s.verbatimModuleSyntax && (r == null ? void 0 : r.addAsTypeOnly) !== 4 && !kt(i, (y) => y.addAsTypeOnly === 4);
      f = _A(f, Iy(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, g6(o), N.createIdentifier(o.name), N.createExternalModuleReference(l)) : N.createImportDeclaration(void 0, N.createImportClause(g6(o), void 0, N.createNamespaceImport(N.createIdentifier(o.name))), l, void 0);
      f = _A(f, d);
    }
    return D.checkDefined(f);
  }
  function C1e(e, t, r, i, o) {
    const s = VF(e, t);
    let l;
    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 = L1e(N.createObjectBindingPattern(f), s);
      l = _A(l, d);
    }
    if (o) {
      const f = L1e(o.name, s);
      l = _A(l, f);
    }
    return D.checkDefined(l);
  }
  function L1e(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 I1e({ declarations: e }, t) {
    return kt(e, (r) => !!(U8(r) & t));
  }
  function NZ(e, t, r) {
    return OZ(Md(G_(e.name)), t, r);
  }
  function OZ(e, t, r) {
    const i = du(pA(e, "/index"));
    let o = "", s = !0;
    const l = i.charCodeAt(0);
    fh(l, t) ? (o += String.fromCharCode(l), r && (o = o.toUpperCase())) : s = !1;
    for (let f = 1; f < i.length; f++) {
      const d = i.charCodeAt(f), y = B0(d, t);
      if (y) {
        let h = String.fromCharCode(d);
        s || (h = h.toUpperCase()), o += h;
      }
      s = y;
    }
    return ix(o) ? `_${o}` : o || "_";
  }
  var PZ, MZ, FZ, DGe = C({
    "src/services/codefixes/importFixes.ts"() {
      Xr(), vo(), PZ = "import", MZ = "fixMissingImport", FZ = [
        _.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
      ], fo({
        errorCodes: FZ,
        getCodeActions(e) {
          const { errorCode: t, preferences: r, sourceFile: i, span: o, program: s } = e, l = h1e(e, t, o.start, !0);
          if (l)
            return l.map(({ fix: f, symbolName: d, errorIdentifierText: y }) => DZ(e, i, d, f, d !== y, s.getCompilerOptions(), r));
        },
        fixIds: [MZ],
        getAllCodeActions: (e) => {
          const { sourceFile: t, program: r, preferences: i, host: o, cancellationToken: s } = e, l = u1e(t, r, !0, i, o, s);
          return $x(e, FZ, (f) => l.addImportFromDiagnostic(f, e)), Yx(gr.ChangeTracker.with(e, l.writeFixes));
        }
      });
    }
  });
  function k1e(e, t, r) {
    const i = cn(e.getSemanticDiagnostics(t), (l) => l.start === r.start && l.length === r.length);
    if (i === void 0 || i.relatedInformation === void 0)
      return;
    const o = cn(i.relatedInformation, (l) => l.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 = Gee(o.file, Ll(o.start, o.length));
    if (s !== void 0 && (Ve(s) && Pc(s.parent) && (s = s.parent), Pc(s))) {
      if (Ck(s.parent))
        return;
      const l = ia(t, r.start), f = e.getTypeChecker();
      return { constraint: NGe(f, l) || RGe(o.messageText), declaration: s, token: l };
    }
  }
  function w1e(e, t, r, i, o, s) {
    const { declaration: l, constraint: f } = s, d = t.getTypeChecker();
    if (Ua(f))
      e.insertText(o, l.name.end, ` extends ${f}`);
    else {
      const y = $o(t.getCompilerOptions()), h = Zx({ program: t, host: i }), b = $T(o, t, r, i), A = QB(d, b, f, void 0, y, void 0, h);
      A && (e.replaceNode(o, l, N.updateTypeParameterDeclaration(l, void 0, l.name, A, l.default)), b.writeFixes(e));
    }
  }
  function RGe(e) {
    const [t, r] = Uv(e, `
`, 0).match(/`extends (.*)`/) || [];
    return r;
  }
  function NGe(e, t) {
    return Mi(t.parent) ? e.getTypeArgumentConstraint(t.parent) : (yt(t) ? e.getContextualType(t) : void 0) || e.getTypeAtLocation(t);
  }
  var hB, BZ, OGe = C({
    "src/services/codefixes/fixAddMissingConstraint.ts"() {
      Xr(), vo(), hB = "addMissingConstraint", BZ = [
        _.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
      ], fo({
        errorCodes: BZ,
        getCodeActions(e) {
          const { sourceFile: t, span: r, program: i, preferences: o, host: s } = e, l = k1e(i, t, r);
          if (l === void 0)
            return;
          const f = gr.ChangeTracker.with(e, (d) => w1e(d, i, o, s, t, l));
          return [to(hB, f, _.Add_extends_constraint, hB, _.Add_extends_constraint_to_all_type_parameters)];
        },
        fixIds: [hB],
        getAllCodeActions: (e) => {
          const { program: t, preferences: r, host: i } = e, o = /* @__PURE__ */ new Map();
          return Yx(gr.ChangeTracker.with(e, (s) => {
            $x(e, BZ, (l) => {
              const f = k1e(t, l.file, Ll(l.start, l.length));
              if (f && hp(o, ds(f.declaration)))
                return w1e(s, t, r, i, l.file, f);
            });
          }));
        }
      });
    }
  });
  function D1e(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 PGe(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 MGe(e, t.sourceFile, i);
      default:
        D.fail("Unexpected error code: " + r);
    }
  }
  function PGe(e, t, r) {
    const i = N1e(t, r);
    if (Xu(t)) {
      e.addJSDocTags(t, i, [N.createJSDocOverrideTag(N.createIdentifier("override"))]);
      return;
    }
    const o = i.modifiers || rt, s = cn(o, bx), l = cn(o, kfe), f = cn(o, (b) => A$(b.kind)), d = $i(o, Nu), y = l ? l.end : s ? s.end : f ? f.end : d ? zo(t.text, d.end) : i.getStart(t), h = f || s || l ? { prefix: " " } : { suffix: " " };
    e.insertModifierAt(t, y, 161, h);
  }
  function MGe(e, t, r) {
    const i = N1e(t, r);
    if (Xu(t)) {
      e.filterJSDocTags(t, i, M4(P7));
      return;
    }
    const o = cn(i.modifiers, wfe);
    D.assertIsDefined(o), e.deleteModifier(t, o);
  }
  function R1e(e) {
    switch (e.kind) {
      case 173:
      case 169:
      case 171:
      case 174:
      case 175:
        return !0;
      case 166:
        return Qd(e, e.parent);
      default:
        return !1;
    }
  }
  function N1e(e, t) {
    const r = ia(e, t), i = rr(r, (o) => li(o) ? "quit" : R1e(o));
    return D.assert(i && R1e(i)), i;
  }
  var GZ, ZC, Sw, UZ, VZ, FGe = C({
    "src/services/codefixes/fixOverrideModifier.ts"() {
      Xr(), vo(), GZ = "fixOverrideModifier", ZC = "fixAddOverrideModifier", Sw = "fixRemoveOverrideModifier", UZ = [
        _.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
      ], VZ = {
        [_.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code]: {
          descriptions: _.Add_override_modifier,
          fixId: ZC,
          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: ZC,
          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: Sw,
          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: Sw,
          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: ZC,
          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: ZC,
          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: ZC,
          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: Sw,
          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: Sw,
          fixAllDescriptions: _.Remove_all_unnecessary_override_modifiers
        }
      }, fo({
        errorCodes: UZ,
        getCodeActions: function(t) {
          const { errorCode: r, span: i } = t, o = VZ[r];
          if (!o)
            return rt;
          const { descriptions: s, fixId: l, fixAllDescriptions: f } = o, d = gr.ChangeTracker.with(t, (y) => D1e(y, t, r, i.start));
          return [
            nZ(GZ, d, s, l, f)
          ];
        },
        fixIds: [GZ, ZC, Sw],
        getAllCodeActions: (e) => Ss(e, UZ, (t, r) => {
          const { code: i, start: o } = r, s = VZ[i];
          !s || s.fixId !== e.fixId || D1e(t, e, i, o);
        })
      });
    }
  });
  function O1e(e, t, r, i) {
    const o = Ep(t, i), s = N.createStringLiteral(r.name.text, o === 0);
    e.replaceNode(t, r, bM(r) ? N.createElementAccessChain(r.expression, r.questionDotToken, s) : N.createElementAccessExpression(r.expression, s));
  }
  function P1e(e, t) {
    return ro(ia(e, t).parent, Mr);
  }
  var gB, jZ, BGe = C({
    "src/services/codefixes/fixNoPropertyAccessFromIndexSignature.ts"() {
      Xr(), vo(), gB = "fixNoPropertyAccessFromIndexSignature", jZ = [
        _.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0.code
      ], fo({
        errorCodes: jZ,
        fixIds: [gB],
        getCodeActions(e) {
          const { sourceFile: t, span: r, preferences: i } = e, o = P1e(t, r.start), s = gr.ChangeTracker.with(e, (l) => O1e(l, e.sourceFile, o, i));
          return [to(gB, s, [_.Use_element_access_for_0, o.name.text], gB, _.Use_element_access_for_all_undeclared_properties)];
        },
        getAllCodeActions: (e) => Ss(e, jZ, (t, r) => O1e(t, r.file, P1e(r.file, r.start), e.preferences))
      });
    }
  });
  function M1e(e, t, r, i) {
    const o = ia(t, r);
    if (!HC(o))
      return;
    const s = bd(o, !1, !1);
    if (!(!ml(s) && !Ps(s)) && !Hi(bd(s, !1, !1))) {
      const l = D.checkDefined(gs(s, 98, t)), { name: f } = s, d = D.checkDefined(s.body);
      return Ps(s) ? f && lc.Core.isSymbolReferencedInFile(f, i, t, d) ? void 0 : (e.delete(t, l), f && e.delete(t, f), e.insertText(t, d.pos, " =>"), [_.Convert_function_expression_0_to_arrow_function, f ? f.text : _9]) : (e.replaceNode(t, l, N.createToken(85)), e.insertText(t, f.end, " = "), e.insertText(t, d.pos, " =>"), [_.Convert_function_declaration_0_to_arrow_function, f.text]);
    }
  }
  var yB, HZ, GGe = C({
    "src/services/codefixes/fixImplicitThis.ts"() {
      Xr(), vo(), yB = "fixImplicitThis", HZ = [_.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code], fo({
        errorCodes: HZ,
        getCodeActions: function(t) {
          const { sourceFile: r, program: i, span: o } = t;
          let s;
          const l = gr.ChangeTracker.with(t, (f) => {
            s = M1e(f, r, o.start, i.getTypeChecker());
          });
          return s ? [to(yB, l, s, yB, _.Fix_all_implicit_this_errors)] : rt;
        },
        fixIds: [yB],
        getAllCodeActions: (e) => Ss(e, HZ, (t, r) => {
          M1e(t, r.file, r.start, e.program.getTypeChecker());
        })
      });
    }
  });
  function F1e(e, t, r) {
    var i;
    const o = ia(e, t);
    if (Ve(o)) {
      const s = rr(o, Ul);
      if (s === void 0)
        return;
      const l = Go(s.moduleSpecifier) ? s.moduleSpecifier.text : void 0;
      if (l === void 0)
        return;
      const f = kA(e, l, void 0);
      if (f === void 0)
        return;
      const d = r.getSourceFile(f.resolvedFileName);
      if (d === void 0 || hw(r, d))
        return;
      const y = d.symbol, h = (i = ii(y.valueDeclaration, wm)) == null ? void 0 : i.locals;
      if (h === void 0)
        return;
      const b = h.get(o.escapedText);
      if (b === void 0)
        return;
      const A = VGe(b);
      return A === void 0 ? void 0 : { exportName: { node: o, isTypeOnly: oC(A) }, node: A, moduleSourceFile: d, moduleSpecifier: l };
    }
  }
  function UGe(e, t, { exportName: r, node: i, moduleSourceFile: o }) {
    const s = vB(o, r.isTypeOnly);
    s ? B1e(e, t, o, s, [r]) : nO(i) ? e.insertExportModifier(o, i) : G1e(e, t, o, [r]);
  }
  function WZ(e, t, r, i, o) {
    Ie(i) && (o ? B1e(e, t, r, o, i) : G1e(e, t, r, i));
  }
  function vB(e, t) {
    const r = (i) => Xl(i) && (t && i.isTypeOnly || !i.isTypeOnly);
    return $i(e.statements, r);
  }
  function B1e(e, t, r, i, o) {
    const s = i.exportClause && z_(i.exportClause) ? i.exportClause.elements : N.createNodeArray([]), l = !i.isTypeOnly && !!(U_(t.getCompilerOptions()) || cn(s, (f) => f.isTypeOnly));
    e.replaceNode(r, i, N.updateExportDeclaration(i, i.modifiers, i.isTypeOnly, N.createNamedExports(N.createNodeArray([...s, ...U1e(o, l)], s.hasTrailingComma)), i.moduleSpecifier, i.assertClause));
  }
  function G1e(e, t, r, i) {
    e.insertNodeAtEndOfScope(r, r, N.createExportDeclaration(void 0, !1, N.createNamedExports(U1e(i, U_(t.getCompilerOptions()))), void 0, void 0));
  }
  function U1e(e, t) {
    return N.createNodeArray(en(e, (r) => N.createExportSpecifier(t && r.isTypeOnly, void 0, r.node)));
  }
  function VGe(e) {
    if (e.valueDeclaration === void 0)
      return zl(e.declarations);
    const t = e.valueDeclaration, r = zi(t) ? ii(t.parent.parent, cl) : void 0;
    return r && Ie(r.declarationList.declarations) === 1 ? r : t;
  }
  var bB, zZ, jGe = C({
    "src/services/codefixes/fixImportNonExportedMember.ts"() {
      Xr(), vo(), bB = "fixImportNonExportedMember", zZ = [
        _.Module_0_declares_1_locally_but_it_is_not_exported.code
      ], fo({
        errorCodes: zZ,
        fixIds: [bB],
        getCodeActions(e) {
          const { sourceFile: t, span: r, program: i } = e, o = F1e(t, r.start, i);
          if (o === void 0)
            return;
          const s = gr.ChangeTracker.with(e, (l) => UGe(l, i, o));
          return [to(bB, s, [_.Export_0_from_module_1, o.exportName.node.text, o.moduleSpecifier], bB, _.Export_all_referenced_locals)];
        },
        getAllCodeActions(e) {
          const { program: t } = e;
          return Yx(gr.ChangeTracker.with(e, (r) => {
            const i = /* @__PURE__ */ new Map();
            $x(e, zZ, (o) => {
              const s = F1e(o.file, o.start, t);
              if (s === void 0)
                return;
              const { exportName: l, node: f, moduleSourceFile: d } = s;
              if (vB(d, l.isTypeOnly) === void 0 && nO(f))
                r.insertExportModifier(d, f);
              else {
                const y = i.get(d) || { typeOnlyExports: [], exports: [] };
                l.isTypeOnly ? y.typeOnlyExports.push(l) : y.exports.push(l), i.set(d, y);
              }
            }), i.forEach((o, s) => {
              const l = vB(s, !0);
              l && l.isTypeOnly ? (WZ(r, t, s, o.typeOnlyExports, l), WZ(r, t, s, o.exports, vB(s, !1))) : WZ(r, t, s, [...o.exports, ...o.typeOnlyExports], l);
            });
          }));
        }
      });
    }
  });
  function HGe(e, t) {
    const r = ia(e, t);
    return rr(r, (i) => i.kind === 199);
  }
  function WGe(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 l = N.updateNamedTupleMember(r, r.dotDotDotToken || (s ? N.createToken(25) : void 0), r.name, r.questionToken || (o ? N.createToken(57) : void 0), i);
    l !== r && e.replaceNode(t, r, l);
  }
  var EB, V1e, zGe = C({
    "src/services/codefixes/fixIncorrectNamedTupleSyntax.ts"() {
      Xr(), vo(), EB = "fixIncorrectNamedTupleSyntax", V1e = [
        _.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
      ], fo({
        errorCodes: V1e,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = HGe(r, i.start), s = gr.ChangeTracker.with(t, (l) => WGe(l, r, o));
          return [to(EB, s, _.Move_labeled_tuple_element_modifiers_to_labels, EB, _.Move_labeled_tuple_element_modifiers_to_labels)];
        },
        fixIds: [EB]
      });
    }
  });
  function j1e(e, t, r, i) {
    const o = ia(e, t), s = o.parent;
    if ((i === _.No_overload_matches_this_call.code || i === _.Type_0_is_not_assignable_to_type_1.code) && !em(s))
      return;
    const l = r.program.getTypeChecker();
    let f;
    if (Mr(s) && s.name === o) {
      D.assert(ng(o), "Expected an identifier for spelling (property access)");
      let d = l.getTypeAtLocation(s.expression);
      s.flags & 32 && (d = l.getNonNullableType(d)), f = l.getSuggestedSymbolForNonexistentProperty(o, d);
    } else if (br(s) && s.operatorToken.kind === 101 && s.left === o && Di(o)) {
      const d = l.getTypeAtLocation(s.right);
      f = l.getSuggestedSymbolForNonexistentProperty(o, d);
    } else if (Sd(s) && s.right === o) {
      const d = l.getSymbolAtLocation(s.left);
      d && d.flags & 1536 && (f = l.getSuggestedSymbolForNonexistentModule(s.right, d));
    } else if (xd(s) && s.name === o) {
      D.assertNode(o, Ve, "Expected an identifier for spelling (import)");
      const d = rr(o, Ul), y = JGe(e, r, d);
      y && y.symbol && (f = l.getSuggestedSymbolForNonexistentModule(o, y.symbol));
    } else if (em(s) && s.name === o) {
      D.assertNode(o, Ve, "Expected an identifier for JSX attribute");
      const d = rr(o, Ku), y = l.getContextualTypeForArgumentAtIndex(d, 0);
      f = l.getSuggestedSymbolForNonexistentJSXAttribute(o, y);
    } else if (Kr(s, 16384) && Ml(s) && s.name === o) {
      const d = rr(o, li), y = d ? Jp(d) : void 0, h = y ? l.getTypeAtLocation(y) : void 0;
      h && (f = l.getSuggestedSymbolForNonexistentClassMember(El(o), h));
    } else {
      const d = HT(o), y = El(o);
      D.assert(y !== void 0, "name should be defined"), f = l.getSuggestedSymbolForNonexistentSymbol(o, y, qGe(d));
    }
    return f === void 0 ? void 0 : { node: o, suggestedSymbol: f };
  }
  function H1e(e, t, r, i, o) {
    const s = Oc(i);
    if (!N_(s, o) && Mr(r.parent)) {
      const l = i.valueDeclaration;
      l && _u(l) && Di(l.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 qGe(e) {
    let t = 0;
    return e & 4 && (t |= 1920), e & 2 && (t |= 788968), e & 1 && (t |= 111551), t;
  }
  function JGe(e, t, r) {
    if (!r || !Es(r.moduleSpecifier))
      return;
    const i = kA(e, r.moduleSpecifier.text, vp(e, r.moduleSpecifier));
    if (i)
      return t.program.getSourceFile(i.resolvedFileName);
  }
  var qZ, JZ, KGe = C({
    "src/services/codefixes/fixSpelling.ts"() {
      Xr(), vo(), qZ = "fixSpelling", JZ = [
        _.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
      ], fo({
        errorCodes: JZ,
        getCodeActions(e) {
          const { sourceFile: t, errorCode: r } = e, i = j1e(t, e.span.start, e, r);
          if (!i)
            return;
          const { node: o, suggestedSymbol: s } = i, l = $o(e.host.getCompilationSettings()), f = gr.ChangeTracker.with(e, (d) => H1e(d, t, o, s, l));
          return [to("spelling", f, [_.Change_spelling_to_0, Oc(s)], qZ, _.Fix_all_detected_spelling_errors)];
        },
        fixIds: [qZ],
        getAllCodeActions: (e) => Ss(e, JZ, (t, r) => {
          const i = j1e(r.file, r.start, e, r.code), o = $o(e.host.getCompilationSettings());
          i && H1e(t, e.sourceFile, i.node, i.suggestedSymbol, o);
        })
      });
    }
  });
  function W1e(e, t, r) {
    const i = e.createSymbol(4, t.escapedText);
    i.links.type = e.getTypeAtLocation(r);
    const o = ao([i]);
    return e.createAnonymousType(void 0, o, [], [], []);
  }
  function KZ(e, t, r, i) {
    if (!t.body || !oo(t.body) || Ie(t.body.statements) !== 1)
      return;
    const o = ss(t.body.statements);
    if (nu(o) && XZ(e, t, e.getTypeAtLocation(o.expression), r, i))
      return {
        declaration: t,
        kind: 0,
        expression: o.expression,
        statement: o,
        commentSource: o.expression
      };
    if (N1(o) && nu(o.statement)) {
      const s = N.createObjectLiteralExpression([N.createPropertyAssignment(o.label, o.statement.expression)]), l = W1e(e, o.label, o.statement.expression);
      if (XZ(e, t, l, r, i))
        return Ws(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 (oo(o) && Ie(o.statements) === 1) {
      const s = ss(o.statements);
      if (N1(s) && nu(s.statement)) {
        const l = N.createObjectLiteralExpression([N.createPropertyAssignment(s.label, s.statement.expression)]), f = W1e(e, s.label, s.statement.expression);
        if (XZ(e, t, f, r, i))
          return {
            declaration: t,
            kind: 0,
            expression: l,
            statement: o,
            commentSource: s
          };
      }
    }
  }
  function XZ(e, t, r, i, o) {
    if (o) {
      const s = e.getSignatureFromDeclaration(t);
      if (s) {
        Kr(t, 512) && (r = e.createPromiseType(r));
        const l = e.createSignature(t, s.typeParameters, s.thisParameter, s.parameters, r, void 0, s.minArgumentCount, s.flags);
        r = e.createAnonymousType(void 0, ao(), [l], [], []);
      } else
        r = e.getAnyType();
    }
    return e.isTypeAssignableTo(r, i);
  }
  function z1e(e, t, r, i) {
    const o = ia(t, r);
    if (!o.parent)
      return;
    const s = rr(o.parent, Xs);
    switch (i) {
      case _.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code:
        return !s || !s.body || !s.type || !sf(s.type, o) ? void 0 : KZ(e, s, e.getTypeFromTypeNode(s.type), !1);
      case _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:
        if (!s || !eo(s.parent) || !s.body)
          return;
        const l = s.parent.arguments.indexOf(s), f = e.getContextualTypeForArgumentAtIndex(s.parent, l);
        return f ? KZ(e, s, f, !0) : void 0;
      case _.Type_0_is_not_assignable_to_type_1.code:
        if (!lg(o) || !PA(o.parent) && !em(o.parent))
          return;
        const d = XGe(o.parent);
        return !d || !Xs(d) || !d.body ? void 0 : KZ(e, d, e.getTypeAtLocation(o.parent), !0);
    }
  }
  function XGe(e) {
    switch (e.kind) {
      case 257:
      case 166:
      case 205:
      case 169:
      case 299:
        return e.initializer;
      case 288:
        return e.initializer && (wk(e.initializer) ? e.initializer.expression : void 0);
      case 300:
      case 168:
      case 302:
      case 351:
      case 344:
        return;
    }
  }
  function q1e(e, t, r, i) {
    Vd(r);
    const o = ZF(t);
    e.replaceNode(t, i, N.createReturnStatement(r), {
      leadingTriviaOption: gr.LeadingTriviaOption.Exclude,
      trailingTriviaOption: gr.TrailingTriviaOption.Exclude,
      suffix: o ? ";" : void 0
    });
  }
  function J1e(e, t, r, i, o, s) {
    const l = s || q$(i) ? N.createParenthesizedExpression(i) : i;
    Vd(o), JT(o, l), e.replaceNode(t, r.body, l);
  }
  function K1e(e, t, r, i) {
    e.replaceNode(t, r.body, N.createParenthesizedExpression(i));
  }
  function YGe(e, t, r) {
    const i = gr.ChangeTracker.with(e, (o) => q1e(o, e.sourceFile, t, r));
    return to(TB, i, _.Add_a_return_statement, SB, _.Add_all_missing_return_statement);
  }
  function $Ge(e, t, r, i) {
    const o = gr.ChangeTracker.with(e, (s) => J1e(s, e.sourceFile, t, r, i, !1));
    return to(TB, o, _.Remove_braces_from_arrow_function_body, xB, _.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues);
  }
  function QGe(e, t, r) {
    const i = gr.ChangeTracker.with(e, (o) => K1e(o, e.sourceFile, t, r));
    return to(TB, i, _.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal, AB, _.Wrap_all_object_literal_with_parentheses);
  }
  var TB, SB, xB, AB, YZ, ZGe = C({
    "src/services/codefixes/returnValueCorrect.ts"() {
      Xr(), vo(), TB = "returnValueCorrect", SB = "fixAddReturnStatement", xB = "fixRemoveBracesFromArrowFunctionBody", AB = "fixWrapTheBlockWithParen", YZ = [
        _.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
      ], fo({
        errorCodes: YZ,
        fixIds: [SB, xB, AB],
        getCodeActions: function(t) {
          const { program: r, sourceFile: i, span: { start: o }, errorCode: s } = t, l = z1e(r.getTypeChecker(), i, o, s);
          if (l)
            return l.kind === 0 ? Bn([YGe(t, l.expression, l.statement)], Ws(l.declaration) ? $Ge(t, l.declaration, l.expression, l.commentSource) : void 0) : [QGe(t, l.declaration, l.expression)];
        },
        getAllCodeActions: (e) => Ss(e, YZ, (t, r) => {
          const i = z1e(e.program.getTypeChecker(), r.file, r.start, r.code);
          if (i)
            switch (e.fixId) {
              case SB:
                q1e(t, r.file, i.expression, i.statement);
                break;
              case xB:
                if (!Ws(i.declaration))
                  return;
                J1e(t, r.file, i.declaration, i.expression, i.commentSource, !1);
                break;
              case AB:
                if (!Ws(i.declaration))
                  return;
                K1e(t, r.file, i.declaration, i.expression);
                break;
              default:
                D.fail(JSON.stringify(e.fixId));
            }
        })
      });
    }
  });
  function X1e(e, t, r, i, o) {
    var s;
    const l = ia(e, t), f = l.parent;
    if (r === _.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code) {
      if (!(l.kind === 18 && xs(f) && eo(f.parent)))
        return;
      const L = Qi(f.parent.arguments, (B) => B === 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 && Oa(O) && Ve(O.name)))
        return;
      const k = Do(i.getUnmatchedProperties(i.getTypeAtLocation(f), i.getParameterType(I, L), !1, !1));
      return Ie(k) ? { kind: 3, token: O.name, properties: k, parentDeclaration: f } : void 0;
    }
    if (!ng(l))
      return;
    if (Ve(l) && Av(f) && f.initializer && xs(f.initializer)) {
      const L = Do(i.getUnmatchedProperties(i.getTypeAtLocation(f.initializer), i.getTypeAtLocation(l), !1, !1));
      return Ie(L) ? { kind: 3, token: l, properties: L, parentDeclaration: f.initializer } : void 0;
    }
    if (Ve(l) && Ku(l.parent)) {
      const L = $o(o.getCompilerOptions()), I = oUe(i, L, l.parent);
      return Ie(I) ? { kind: 4, token: l, attributes: I, parentDeclaration: l.parent } : void 0;
    }
    if (Ve(l)) {
      const L = (s = i.getContextualType(l)) == null ? void 0 : s.getNonNullableType();
      if (L && Zr(L) & 16) {
        const I = zl(i.getSignaturesOfType(L, 0));
        return I === void 0 ? void 0 : { kind: 5, token: l, signature: I, sourceFile: e, parentDeclaration: oEe(l) };
      }
      if (eo(f) && f.expression === l)
        return { kind: 2, token: l, call: f, sourceFile: e, modifierFlags: 0, parentDeclaration: oEe(l) };
    }
    if (!Mr(f))
      return;
    const d = w$(i.getTypeAtLocation(f.expression)), y = d.symbol;
    if (!y || !y.declarations)
      return;
    if (Ve(l) && eo(f.parent)) {
      const L = cn(y.declarations, Wc), I = L == null ? void 0 : L.getSourceFile();
      if (L && I && !hw(o, I))
        return { kind: 2, token: l, call: f.parent, sourceFile: e, modifierFlags: 1, parentDeclaration: L };
      const O = cn(y.declarations, Hi);
      if (e.commonJsModuleIndicator)
        return;
      if (O && !hw(o, O))
        return { kind: 2, token: l, call: f.parent, sourceFile: O, modifierFlags: 1, parentDeclaration: O };
    }
    const h = cn(y.declarations, li);
    if (!h && Di(l))
      return;
    const b = h || cn(y.declarations, (L) => Qu(L) || of(L));
    if (b && !hw(o, b.getSourceFile())) {
      const L = !of(b) && (d.target || d) !== i.getDeclaredTypeOfSymbol(y);
      if (L && (Di(l) || Qu(b)))
        return;
      const I = b.getSourceFile(), O = of(b) ? 0 : (L ? 32 : 0) | (nQ(l.text) ? 8 : 0), k = Xu(I), B = ii(f.parent, eo);
      return { kind: 0, token: l, call: B, modifierFlags: O, parentDeclaration: b, declSourceFile: I, isJSFile: k };
    }
    const A = cn(y.declarations, Z0);
    if (A && !(d.flags & 1056) && !Di(l) && !hw(o, A.getSourceFile()))
      return { kind: 1, token: l, parentDeclaration: A };
  }
  function eUe(e, t) {
    return t.isJSFile ? XE(tUe(e, t)) : nUe(e, t);
  }
  function tUe(e, { parentDeclaration: t, declSourceFile: r, modifierFlags: i, token: o }) {
    if (Qu(t) || of(t))
      return;
    const s = gr.ChangeTracker.with(e, (f) => Y1e(f, r, t, o, !!(i & 32)));
    if (s.length === 0)
      return;
    const l = i & 32 ? _.Initialize_static_property_0 : Di(o) ? _.Declare_a_private_field_named_0 : _.Initialize_property_0_in_the_constructor;
    return to(ky, s, [l, o.text], ky, _.Add_all_missing_members);
  }
  function Y1e(e, t, r, i, o) {
    const s = i.text;
    if (o) {
      if (r.kind === 228)
        return;
      const l = r.name.getText(), f = $1e(N.createIdentifier(l), s);
      e.insertNodeAfter(t, r, f);
    } else if (Di(i)) {
      const l = N.createPropertyDeclaration(void 0, s, void 0, void 0, void 0), f = eEe(r);
      f ? e.insertNodeAfter(t, f, l) : e.insertMemberAtStart(t, r, l);
    } else {
      const l = yh(r);
      if (!l)
        return;
      const f = $1e(N.createThis(), s);
      e.insertNodeAtConstructorEnd(t, l, f);
    }
  }
  function $1e(e, t) {
    return N.createExpressionStatement(N.createAssignment(N.createPropertyAccessExpression(e, t), QT()));
  }
  function nUe(e, { parentDeclaration: t, declSourceFile: r, modifierFlags: i, token: o }) {
    const s = o.text, l = i & 32, f = Q1e(e.program.getTypeChecker(), t, o), d = (h) => gr.ChangeTracker.with(e, (b) => Z1e(b, r, t, s, f, h)), y = [to(ky, d(i & 32), [l ? _.Declare_static_property_0 : _.Declare_property_0, s], ky, _.Add_all_missing_members)];
    return l || Di(o) || (i & 8 && y.unshift(Tp(ky, d(8), [_.Declare_private_property_0, s])), y.push(rUe(e, r, t, o.text, f))), y;
  }
  function Q1e(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, l = e.getWidenedType(e.getBaseTypeOfLiteralType(e.getTypeAtLocation(s)));
      i = e.typeToTypeNode(l, 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 Z1e(e, t, r, i, o, s) {
    const l = s ? N.createNodeArray(N.createModifiersFromModifierFlags(s)) : void 0, f = li(r) ? N.createPropertyDeclaration(l, i, void 0, o, void 0) : N.createPropertySignature(void 0, i, void 0, o), d = eEe(r);
    d ? e.insertNodeAfter(t, d, f) : e.insertMemberAtStart(t, r, f);
  }
  function eEe(e) {
    let t;
    for (const r of e.members) {
      if (!Za(r))
        break;
      t = r;
    }
    return t;
  }
  function rUe(e, t, r, i, o) {
    const s = N.createKeywordTypeNode(152), l = N.createParameterDeclaration(void 0, void 0, "x", void 0, s, void 0), f = N.createIndexSignature(void 0, [l], o), d = gr.ChangeTracker.with(e, (y) => y.insertMemberAtStart(t, r, f));
    return Tp(ky, d, [_.Add_index_signature_for_property_0, i]);
  }
  function iUe(e, t) {
    const { parentDeclaration: r, declSourceFile: i, modifierFlags: o, token: s, call: l } = t;
    if (l === void 0 || Di(s))
      return;
    const f = s.text, d = (h) => gr.ChangeTracker.with(e, (b) => tEe(e, b, l, s, h, r, i)), y = [to(ky, d(o & 32), [o & 32 ? _.Declare_static_method_0 : _.Declare_method_0, f], ky, _.Add_all_missing_members)];
    return o & 8 && y.unshift(Tp(ky, d(8), [_.Declare_private_method_0, f])), y;
  }
  function tEe(e, t, r, i, o, s, l) {
    const f = $T(l, e.program, e.preferences, e.host), d = li(s) ? 171 : 170, y = Nee(d, e, f, r, i, o, s), h = sUe(s, r);
    h ? t.insertNodeAfter(l, h, y) : t.insertMemberAtStart(l, s, y), f.writeFixes(t);
  }
  function nEe(e, t, { token: r, parentDeclaration: i }) {
    const o = kt(i.members, (l) => {
      const f = t.getTypeAtLocation(l);
      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, ma(i.members, XE(s))), {
      leadingTriviaOption: gr.LeadingTriviaOption.IncludeAll,
      trailingTriviaOption: gr.TrailingTriviaOption.Exclude
    });
  }
  function rEe(e, t, r) {
    const i = Ep(t.sourceFile, t.preferences), o = $T(t.sourceFile, t.program, t.preferences, t.host), s = r.kind === 2 ? Nee(259, t, o, r.call, Pr(r.token), r.modifierFlags, r.parentDeclaration) : $B(259, t, i, r.signature, x6(_.Function_not_implemented.message, i), r.token, void 0, void 0, void 0, o);
    s === void 0 && D.fail("fixMissingFunctionDeclaration codefix got unexpected error."), gp(r.parentDeclaration) ? e.insertNodeBefore(r.sourceFile, r.parentDeclaration, s, !0) : e.insertNodeAtEndOfScope(r.sourceFile, r.parentDeclaration, s), o.writeFixes(e);
  }
  function iEe(e, t, r) {
    const i = $T(t.sourceFile, t.program, t.preferences, t.host), o = Ep(t.sourceFile, t.preferences), s = t.program.getTypeChecker(), l = r.parentDeclaration.attributes, f = kt(l.properties, IT), d = en(r.attributes, (b) => {
      const A = CB(t, s, i, o, s.getTypeOfSymbol(b), r.parentDeclaration), L = N.createIdentifier(b.name), I = N.createJsxAttribute(L, N.createJsxExpression(void 0, A));
      return Bo(L, I), I;
    }), y = N.createJsxAttributes(f ? [...d, ...l.properties] : [...l.properties, ...d]), h = { prefix: l.pos === l.end ? " " : void 0 };
    e.replaceNode(t.sourceFile, l, y, h), i.writeFixes(e);
  }
  function aEe(e, t, r) {
    const i = $T(t.sourceFile, t.program, t.preferences, t.host), o = Ep(t.sourceFile, t.preferences), s = $o(t.program.getCompilerOptions()), l = t.program.getTypeChecker(), f = en(r.properties, (y) => {
      const h = CB(t, l, i, o, l.getTypeOfSymbol(y), r.parentDeclaration);
      return N.createPropertyAssignment(cUe(y, s, o, l), 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 CB(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 l = o.symbol.exports ? I4(o.symbol.exports.values()) : o.symbol, f = t.symbolToExpression(o.symbol.parent ? o.symbol.parent : o.symbol, 111551, void 0, void 0);
      return l === void 0 || f === void 0 ? N.createNumericLiteral(0) : N.createPropertyAccessExpression(f, t.symbolToString(l));
    }
    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 l = sn(o.types, (f) => CB(e, t, r, i, f, s));
      return l ?? QT();
    }
    if (t.isArrayLikeType(o))
      return N.createArrayLiteralExpression();
    if (aUe(o)) {
      const l = en(t.getPropertiesOfType(o), (f) => {
        const d = CB(e, t, r, i, t.getTypeOfSymbol(f), s);
        return N.createPropertyAssignment(f.name, d);
      });
      return N.createObjectLiteralExpression(l, !0);
    }
    if (Zr(o) & 16) {
      if (cn(o.symbol.declarations || rt, Am(Sh, Th, nl)) === void 0)
        return QT();
      const f = t.getSignaturesOfType(o, 0);
      if (f === void 0)
        return QT();
      const d = $B(215, e, i, f[0], x6(_.Function_not_implemented.message, i), void 0, void 0, void 0, s, r);
      return d ?? QT();
    }
    if (Zr(o) & 1) {
      const l = dg(o.symbol);
      if (l === void 0 || C1(l))
        return QT();
      const f = yh(l);
      return f && Ie(f.parameters) ? QT() : N.createNewExpression(N.createIdentifier(o.symbol.name), void 0, void 0);
    }
    return QT();
  }
  function QT() {
    return N.createIdentifier("undefined");
  }
  function aUe(e) {
    return e.flags & 524288 && (Zr(e) & 128 || e.symbol && ii(Tm(e.symbol.declarations), of));
  }
  function oUe(e, t, r) {
    const i = e.getContextualType(r.attributes);
    if (i === void 0)
      return rt;
    const o = i.getProperties();
    if (!Ie(o))
      return rt;
    const s = /* @__PURE__ */ new Set();
    for (const l of r.attributes.properties)
      if (em(l) && s.add(l.name.escapedText), IT(l)) {
        const f = e.getTypeAtLocation(l.expression);
        for (const d of f.getProperties())
          s.add(d.escapedName);
      }
    return yn(o, (l) => N_(l.name, t, 1) && !(l.flags & 16777216 || Cc(l) & 48 || s.has(l.escapedName)));
  }
  function sUe(e, t) {
    if (of(e))
      return;
    const r = rr(t, (i) => nl(i) || Hc(i));
    return r && r.parent === e ? r : void 0;
  }
  function cUe(e, t, r, i) {
    if (Dm(e)) {
      const o = i.symbolToNode(e, 111551, void 0, 1073741824);
      if (o && Ts(o))
        return o;
    }
    return G3(e.name, t, r === 0);
  }
  function oEe(e) {
    if (rr(e, wk)) {
      const t = rr(e.parent, gp);
      if (t)
        return t;
    }
    return er(e);
  }
  var ky, y6, v6, b6, $Z, lUe = C({
    "src/services/codefixes/fixAddMissingMember.ts"() {
      Xr(), vo(), ky = "fixMissingMember", y6 = "fixMissingProperties", v6 = "fixMissingAttributes", b6 = "fixMissingFunctionDeclaration", $Z = [
        _.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
      ], fo({
        errorCodes: $Z,
        getCodeActions(e) {
          const t = e.program.getTypeChecker(), r = X1e(e.sourceFile, e.span.start, e.errorCode, t, e.program);
          if (r) {
            if (r.kind === 3) {
              const i = gr.ChangeTracker.with(e, (o) => aEe(o, e, r));
              return [to(y6, i, _.Add_missing_properties, y6, _.Add_all_missing_properties)];
            }
            if (r.kind === 4) {
              const i = gr.ChangeTracker.with(e, (o) => iEe(o, e, r));
              return [to(v6, i, _.Add_missing_attributes, v6, _.Add_all_missing_attributes)];
            }
            if (r.kind === 2 || r.kind === 5) {
              const i = gr.ChangeTracker.with(e, (o) => rEe(o, e, r));
              return [to(b6, i, [_.Add_missing_function_declaration_0, r.token.text], b6, _.Add_all_missing_function_declarations)];
            }
            if (r.kind === 1) {
              const i = gr.ChangeTracker.with(e, (o) => nEe(o, e.program.getTypeChecker(), r));
              return [to(ky, i, [_.Add_missing_enum_member_0, r.token.text], ky, _.Add_all_missing_members)];
            }
            return ma(iUe(e, r), eUe(e, r));
          }
        },
        fixIds: [ky, b6, y6, v6],
        getAllCodeActions: (e) => {
          const { program: t, fixId: r } = e, i = t.getTypeChecker(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
          return Yx(gr.ChangeTracker.with(e, (l) => {
            $x(e, $Z, (f) => {
              const d = X1e(f.file, f.start, f.code, i, e.program);
              if (!(!d || !hp(o, ds(d.parentDeclaration) + "#" + d.token.text))) {
                if (r === b6 && (d.kind === 2 || d.kind === 5))
                  rEe(l, e, d);
                else if (r === y6 && d.kind === 3)
                  aEe(l, e, d);
                else if (r === v6 && d.kind === 4)
                  iEe(l, e, d);
                else if (d.kind === 1 && nEe(l, i, d), d.kind === 0) {
                  const { parentDeclaration: y, token: h } = d, b = ZD(s, y, () => []);
                  b.some((A) => A.token.text === h.text) || b.push(d);
                }
              }
            }), s.forEach((f, d) => {
              const y = of(d) ? void 0 : Vee(d, i);
              for (const h of f) {
                if (y != null && y.some((B) => {
                  const V = s.get(B);
                  return !!V && V.some(({ token: H }) => H.text === h.token.text);
                }))
                  continue;
                const { parentDeclaration: b, declSourceFile: A, modifierFlags: L, token: I, call: O, isJSFile: k } = h;
                if (O && !Di(I))
                  tEe(e, l, O, I, L & 32, b, A);
                else if (k && !Qu(b) && !of(b))
                  Y1e(l, A, b, I, !!(L & 32));
                else {
                  const B = Q1e(i, b, I);
                  Z1e(l, A, b, I.text, B, L & 32);
                }
              }
            });
          }));
        }
      });
    }
  });
  function sEe(e, t, r) {
    const i = ro(uUe(t, r), eo), o = N.createNewExpression(i.expression, i.typeArguments, i.arguments);
    e.replaceNode(t, i, o);
  }
  function uUe(e, t) {
    let r = ia(e, t.start);
    const i = eu(t);
    for (; r.end < i; )
      r = r.parent;
    return r;
  }
  var LB, QZ, dUe = C({
    "src/services/codefixes/fixAddMissingNewOperator.ts"() {
      Xr(), vo(), LB = "addMissingNewOperator", QZ = [_.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new.code], fo({
        errorCodes: QZ,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = gr.ChangeTracker.with(e, (o) => sEe(o, t, r));
          return [to(LB, i, _.Add_missing_new_operator_to_call, LB, _.Add_missing_new_operator_to_all_calls)];
        },
        fixIds: [LB],
        getAllCodeActions: (e) => Ss(e, QZ, (t, r) => sEe(t, e.sourceFile, r))
      });
    }
  });
  function cEe(e, t) {
    return { type: "install package", file: e, packageName: t };
  }
  function lEe(e, t) {
    const r = ii(ia(e, t), Go);
    if (!r)
      return;
    const i = r.text, { packageName: o } = AK(i);
    return Pl(o) ? void 0 : o;
  }
  function uEe(e, t, r) {
    var i;
    return r === ZZ ? jT.nodeCoreModules.has(e) ? "@types/node" : void 0 : (i = t.isKnownTypesPackageName) != null && i.call(t, e) ? E5(e) : void 0;
  }
  var dEe, IB, ZZ, eee, fUe = C({
    "src/services/codefixes/fixCannotFindModule.ts"() {
      Xr(), vo(), dEe = "fixCannotFindModule", IB = "installTypesPackage", ZZ = _.Cannot_find_module_0_or_its_corresponding_type_declarations.code, eee = [
        ZZ,
        _.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code
      ], fo({
        errorCodes: eee,
        getCodeActions: function(t) {
          const { host: r, sourceFile: i, span: { start: o } } = t, s = lEe(i, o);
          if (s === void 0)
            return;
          const l = uEe(s, r, t.errorCode);
          return l === void 0 ? [] : [to(dEe, [], [_.Install_0, l], IB, _.Install_all_missing_types_packages, cEe(i.fileName, l))];
        },
        fixIds: [IB],
        getAllCodeActions: (e) => Ss(e, eee, (t, r, i) => {
          const o = lEe(r.file, r.start);
          if (o !== void 0)
            switch (e.fixId) {
              case IB: {
                const s = uEe(o, e.host, r.code);
                s && i.push(cEe(r.file.fileName, s));
                break;
              }
              default:
                D.fail(`Bad fixId: ${e.fixId}`);
            }
        })
      });
    }
  });
  function fEe(e, t) {
    const r = ia(e, t);
    return ro(r.parent, li);
  }
  function _Ee(e, t, r, i, o) {
    const s = Jp(e), l = r.program.getTypeChecker(), f = l.getTypeAtLocation(s), d = l.getPropertiesOfType(f).filter(_Ue), y = $T(t, r.program, o, r.host);
    Ree(e, d, t, r, o, y, (h) => i.insertMemberAtStart(t, e, h)), y.writeFixes(i);
  }
  function _Ue(e) {
    const t = kv(ss(e.getDeclarations()));
    return !(t & 8) && !!(t & 256);
  }
  var tee, kB, pUe = C({
    "src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts"() {
      Xr(), vo(), tee = [
        _.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
      ], kB = "fixClassDoesntImplementInheritedAbstractMember", fo({
        errorCodes: tee,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = gr.ChangeTracker.with(t, (s) => _Ee(fEe(r, i.start), r, t, s, t.preferences));
          return o.length === 0 ? void 0 : [to(kB, o, _.Implement_inherited_abstract_class, kB, _.Implement_all_inherited_abstract_classes)];
        },
        fixIds: [kB],
        getAllCodeActions: function(t) {
          const r = /* @__PURE__ */ new Map();
          return Ss(t, tee, (i, o) => {
            const s = fEe(o.file, o.start);
            hp(r, ds(s)) && _Ee(s, t.sourceFile, t, i, t.preferences);
          });
        }
      });
    }
  });
  function pEe(e, t, r, i) {
    e.insertNodeAtConstructorStart(t, r, i), e.delete(t, i);
  }
  function mEe(e, t) {
    const r = ia(e, t);
    if (r.kind !== 108)
      return;
    const i = Tf(r), o = hEe(i.body);
    return o && !o.expression.arguments.some((s) => Mr(s) && s.expression === r) ? { constructor: i, superCall: o } : void 0;
  }
  function hEe(e) {
    return nu(e) && NA(e.expression) ? e : qa(e) ? void 0 : Ra(e, hEe);
  }
  var wB, nee, mUe = C({
    "src/services/codefixes/fixClassSuperMustPrecedeThisAccess.ts"() {
      Xr(), vo(), wB = "classSuperMustPrecedeThisAccess", nee = [_.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class.code], fo({
        errorCodes: nee,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = mEe(t, r.start);
          if (!i)
            return;
          const { constructor: o, superCall: s } = i, l = gr.ChangeTracker.with(e, (f) => pEe(f, t, o, s));
          return [to(wB, l, _.Make_super_call_the_first_statement_in_the_constructor, wB, _.Make_all_super_calls_the_first_statement_in_their_constructor)];
        },
        fixIds: [wB],
        getAllCodeActions(e) {
          const { sourceFile: t } = e, r = /* @__PURE__ */ new Map();
          return Ss(e, nee, (i, o) => {
            const s = mEe(o.file, o.start);
            if (!s)
              return;
            const { constructor: l, superCall: f } = s;
            hp(r, ds(l.parent)) && pEe(i, t, l, f);
          });
        }
      });
    }
  });
  function gEe(e, t) {
    const r = ia(e, t);
    return D.assert(Hc(r.parent), "token should be at the constructor declaration"), r.parent;
  }
  function yEe(e, t, r) {
    const i = N.createExpressionStatement(N.createCallExpression(N.createSuper(), void 0, rt));
    e.insertNodeAtConstructorStart(t, r, i);
  }
  var DB, ree, hUe = C({
    "src/services/codefixes/fixConstructorForDerivedNeedSuperCall.ts"() {
      Xr(), vo(), DB = "constructorForDerivedNeedSuperCall", ree = [_.Constructors_for_derived_classes_must_contain_a_super_call.code], fo({
        errorCodes: ree,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = gEe(t, r.start), o = gr.ChangeTracker.with(e, (s) => yEe(s, t, i));
          return [to(DB, o, _.Add_missing_super_call, DB, _.Add_all_missing_super_calls)];
        },
        fixIds: [DB],
        getAllCodeActions: (e) => Ss(e, ree, (t, r) => yEe(t, e.sourceFile, gEe(r.file, r.start)))
      });
    }
  });
  function vEe(e, t) {
    Fee(e, t, "jsx", N.createStringLiteral("react"));
  }
  var iee, aee, gUe = C({
    "src/services/codefixes/fixEnableJsxFlag.ts"() {
      Xr(), vo(), iee = "fixEnableJsxFlag", aee = [_.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code], fo({
        errorCodes: aee,
        getCodeActions: function(t) {
          const { configFile: r } = t.program.getCompilerOptions();
          if (r === void 0)
            return;
          const i = gr.ChangeTracker.with(t, (o) => vEe(o, r));
          return [
            Tp(iee, i, _.Enable_the_jsx_flag_in_your_configuration_file)
          ];
        },
        fixIds: [iee],
        getAllCodeActions: (e) => Ss(e, aee, (t) => {
          const { configFile: r } = e.program.getCompilerOptions();
          r !== void 0 && vEe(t, r);
        })
      });
    }
  });
  function bEe(e, t, r) {
    const i = cn(e.getSemanticDiagnostics(t), (l) => l.start === r.start && l.length === r.length);
    if (i === void 0 || i.relatedInformation === void 0)
      return;
    const o = cn(i.relatedInformation, (l) => l.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 = Gee(o.file, Ll(o.start, o.length));
    if (s !== void 0 && yt(s) && br(s.parent))
      return { suggestion: yUe(o.messageText), expression: s.parent, arg: s };
  }
  function EEe(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 yUe(e) {
    const [t, r] = Uv(e, `
`, 0).match(/\'(.*)\'/) || [];
    return r;
  }
  var RB, oee, vUe = C({
    "src/services/codefixes/fixNaNEquality.ts"() {
      Xr(), vo(), RB = "fixNaNEquality", oee = [
        _.This_condition_will_always_return_0.code
      ], fo({
        errorCodes: oee,
        getCodeActions(e) {
          const { sourceFile: t, span: r, program: i } = e, o = bEe(i, t, r);
          if (o === void 0)
            return;
          const { suggestion: s, expression: l, arg: f } = o, d = gr.ChangeTracker.with(e, (y) => EEe(y, t, f, l));
          return [to(RB, d, [_.Use_0, s], RB, _.Use_Number_isNaN_in_all_conditions)];
        },
        fixIds: [RB],
        getAllCodeActions: (e) => Ss(e, oee, (t, r) => {
          const i = bEe(e.program, r.file, Ll(r.start, r.length));
          i && EEe(t, r.file, i.arg, i.expression);
        })
      });
    }
  }), bUe = C({
    "src/services/codefixes/fixModuleAndTargetOptions.ts"() {
      Xr(), vo(), fo({
        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 = tu(r);
          if (s >= 5 && s < 99) {
            const y = gr.ChangeTracker.with(t, (h) => {
              Fee(h, i, "module", N.createStringLiteral("esnext"));
            });
            o.push(Tp("fixModuleOption", y, [_.Set_the_module_option_in_your_configuration_file_to_0, "esnext"]));
          }
          const f = $o(r);
          if (f < 4 || f > 99) {
            const y = gr.ChangeTracker.with(t, (h) => {
              if (!NI(i))
                return;
              const A = [["target", N.createStringLiteral("es2017")]];
              s === 1 && A.push(["module", N.createStringLiteral("commonjs")]), Mee(h, i, A);
            });
            o.push(Tp("fixTargetOption", y, [_.Set_the_target_option_in_your_configuration_file_to_0, "es2017"]));
          }
          return o.length ? o : void 0;
        }
      });
    }
  });
  function TEe(e, t, r) {
    e.replaceNode(t, r, N.createPropertyAssignment(r.name, r.objectAssignmentInitializer));
  }
  function SEe(e, t) {
    return ro(ia(e, t).parent, $f);
  }
  var NB, see, EUe = C({
    "src/services/codefixes/fixPropertyAssignment.ts"() {
      Xr(), vo(), NB = "fixPropertyAssignment", see = [
        _.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
      ], fo({
        errorCodes: see,
        fixIds: [NB],
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = SEe(t, r.start), o = gr.ChangeTracker.with(e, (s) => TEe(s, e.sourceFile, i));
          return [to(NB, o, [_.Change_0_to_1, "=", ":"], NB, [_.Switch_each_misused_0_to_1, "=", ":"])];
        },
        getAllCodeActions: (e) => Ss(e, see, (t, r) => TEe(t, r.file, SEe(r.file, r.start)))
      });
    }
  });
  function xEe(e, t) {
    const r = ia(e, t), i = Tl(r).heritageClauses, o = i[0].getFirstToken();
    return o.kind === 94 ? { extendsToken: o, heritageClauses: i } : void 0;
  }
  function AEe(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 l = t.text;
      let f = o.end;
      for (; f < l.length && Im(l.charCodeAt(f)); )
        f++;
      e.deleteRange(t, { pos: o.getStart(), end: f });
    }
  }
  var OB, cee, TUe = C({
    "src/services/codefixes/fixExtendsInterfaceBecomesImplements.ts"() {
      Xr(), vo(), OB = "extendsInterfaceBecomesImplements", cee = [_.Cannot_extend_an_interface_0_Did_you_mean_implements.code], fo({
        errorCodes: cee,
        getCodeActions(e) {
          const { sourceFile: t } = e, r = xEe(t, e.span.start);
          if (!r)
            return;
          const { extendsToken: i, heritageClauses: o } = r, s = gr.ChangeTracker.with(e, (l) => AEe(l, t, i, o));
          return [to(OB, s, _.Change_extends_to_implements, OB, _.Change_all_extended_interfaces_to_implements)];
        },
        fixIds: [OB],
        getAllCodeActions: (e) => Ss(e, cee, (t, r) => {
          const i = xEe(r.file, r.start);
          i && AEe(t, r.file, i.extendsToken, i.heritageClauses);
        })
      });
    }
  });
  function CEe(e, t, r) {
    const i = ia(e, t);
    if (Ve(i) || Di(i))
      return { node: i, className: r === lee ? Tl(i).name.text : void 0 };
  }
  function LEe(e, t, { node: r, className: i }) {
    Vd(r), e.replaceNode(t, r, N.createPropertyAccessExpression(i ? N.createIdentifier(i) : N.createThis(), r));
  }
  var PB, lee, uee, SUe = C({
    "src/services/codefixes/fixForgottenThisPropertyAccess.ts"() {
      Xr(), vo(), PB = "forgottenThisPropertyAccess", lee = _.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code, uee = [
        _.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,
        lee
      ], fo({
        errorCodes: uee,
        getCodeActions(e) {
          const { sourceFile: t } = e, r = CEe(t, e.span.start, e.errorCode);
          if (!r)
            return;
          const i = gr.ChangeTracker.with(e, (o) => LEe(o, t, r));
          return [to(PB, i, [_.Add_0_to_unresolved_variable, r.className || "this"], PB, _.Add_qualifier_to_all_unresolved_variables_matching_a_member_name)];
        },
        fixIds: [PB],
        getAllCodeActions: (e) => Ss(e, uee, (t, r) => {
          const i = CEe(r.file, r.start, r.code);
          i && LEe(t, e.sourceFile, i);
        })
      });
    }
  });
  function xUe(e) {
    return Rs(_ee, e);
  }
  function dee(e, t, r, i, o) {
    const s = r.getText()[i];
    if (!xUe(s))
      return;
    const l = o ? _ee[s] : `{${_w(r, t, s)}}`;
    e.replaceRangeWithText(r, { pos: i, end: i + 1 }, l);
  }
  var MB, E6, fee, _ee, AUe = C({
    "src/services/codefixes/fixInvalidJsxCharacters.ts"() {
      Xr(), vo(), MB = "fixInvalidJsxCharacters_expression", E6 = "fixInvalidJsxCharacters_htmlEntity", fee = [
        _.Unexpected_token_Did_you_mean_or_gt.code,
        _.Unexpected_token_Did_you_mean_or_rbrace.code
      ], fo({
        errorCodes: fee,
        fixIds: [MB, E6],
        getCodeActions(e) {
          const { sourceFile: t, preferences: r, span: i } = e, o = gr.ChangeTracker.with(e, (l) => dee(l, r, t, i.start, !1)), s = gr.ChangeTracker.with(e, (l) => dee(l, r, t, i.start, !0));
          return [
            to(MB, o, _.Wrap_invalid_character_in_an_expression_container, MB, _.Wrap_all_invalid_characters_in_an_expression_container),
            to(E6, s, _.Convert_invalid_character_to_its_html_entity_code, E6, _.Convert_all_invalid_characters_to_HTML_entity_code)
          ];
        },
        getAllCodeActions(e) {
          return Ss(e, fee, (t, r) => dee(t, e.preferences, r.file, r.start, e.fixId === E6));
        }
      }), _ee = {
        ">": "&gt;",
        "}": "&rbrace;"
      };
    }
  });
  function CUe(e, { name: t, jsDocHost: r, jsDocParameterTag: i }) {
    const o = gr.ChangeTracker.with(e, (s) => s.filterJSDocTags(e.sourceFile, r, (l) => l !== i));
    return to(T6, o, [_.Delete_unused_param_tag_0, t.getText(e.sourceFile)], T6, _.Delete_all_unused_param_tags);
  }
  function LUe(e, { name: t, jsDocHost: r, signature: i, jsDocParameterTag: o }) {
    if (!Ie(i.parameters))
      return;
    const s = e.sourceFile, l = f1(i), f = /* @__PURE__ */ new Set();
    for (const b of l)
      tm(b) && Ve(b.name) && f.add(b.name.escapedText);
    const d = sn(i.parameters, (b) => Ve(b.name) && !f.has(b.name.escapedText) ? b.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, (b) => b.replaceJSDocComment(s, r, en(l, (A) => A === o ? y : A)));
    return Tp(pee, h, [_.Rename_param_tag_name_0_to_1, t.getText(s), d]);
  }
  function IEe(e, t) {
    const r = ia(e, t);
    if (r.parent && tm(r.parent) && Ve(r.parent.name)) {
      const i = r.parent, o = rx(i), s = W0(i);
      if (o && s)
        return { jsDocHost: o, signature: s, name: r.parent.name, jsDocParameterTag: i };
    }
  }
  var T6, pee, mee, IUe = C({
    "src/services/codefixes/fixUnmatchedParameter.ts"() {
      Xr(), vo(), T6 = "deleteUnmatchedParameter", pee = "renameUnmatchedParameter", mee = [
        _.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code
      ], fo({
        fixIds: [T6, pee],
        errorCodes: mee,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = [], s = IEe(r, i.start);
          if (s)
            return Bn(o, CUe(t, s)), Bn(o, LUe(t, s)), o;
        },
        getAllCodeActions: function(t) {
          const r = /* @__PURE__ */ new Map();
          return Yx(gr.ChangeTracker.with(t, (i) => {
            $x(t, mee, ({ file: o, start: s }) => {
              const l = IEe(o, s);
              l && r.set(l.signature, Bn(r.get(l.signature), l.jsDocParameterTag));
            }), r.forEach((o, s) => {
              if (t.fixId === T6) {
                const l = new Set(o);
                i.filterJSDocTags(s.getSourceFile(), s, (f) => !l.has(f));
              }
            });
          }));
        }
      });
    }
  });
  function kUe(e, t, r) {
    const i = ii(ia(e, r), Ve);
    if (!i || i.parent.kind !== 180)
      return;
    const s = t.getTypeChecker().getSymbolAtLocation(i);
    return cn((s == null ? void 0 : s.declarations) || rt, Am(Vm, xd, ru));
  }
  function wUe(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();
    l3(o, (f) => {
      if (af(f.symbol, s).flags & 111551)
        return !0;
    }) || e.insertModifierBefore(t, 154, o);
  }
  function DUe(e, t, r, i) {
    Bw.doChangeNamedToNamespaceOrDefault(t, i, e, r.parent);
  }
  var FB, kEe, RUe = C({
    "src/services/codefixes/fixUnreferenceableDecoratorMetadata.ts"() {
      Xr(), vo(), FB = "fixUnreferenceableDecoratorMetadata", kEe = [_.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled.code], fo({
        errorCodes: kEe,
        getCodeActions: (e) => {
          const t = kUe(e.sourceFile, e.program, e.span.start);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (s) => t.kind === 273 && DUe(s, e.sourceFile, t, e.program)), i = gr.ChangeTracker.with(e, (s) => wUe(s, e.sourceFile, t, e.program));
          let o;
          return r.length && (o = Bn(o, Tp(FB, r, _.Convert_named_imports_to_namespace_import))), i.length && (o = Bn(o, Tp(FB, i, _.Convert_to_type_only_import))), o;
        },
        fixIds: [FB]
      });
    }
  });
  function wEe(e, t, r) {
    e.replaceNode(t, r.parent, N.createKeywordTypeNode(157));
  }
  function xw(e, t) {
    return to(Aw, e, t, UB, _.Delete_all_unused_declarations);
  }
  function DEe(e, t, r) {
    e.delete(t, D.checkDefined(ro(r.parent, jW).typeParameters, "The type parameter to delete should exist"));
  }
  function hee(e) {
    return e.kind === 100 || e.kind === 79 && (e.parent.kind === 273 || e.parent.kind === 270);
  }
  function REe(e) {
    return e.kind === 100 ? ii(e.parent, Ul) : void 0;
  }
  function NEe(e, t) {
    return Mu(t.parent) && ss(t.parent.getChildren(e)) === t;
  }
  function OEe(e, t, r) {
    e.delete(t, r.parent.kind === 240 ? r.parent : r);
  }
  function NUe(e, t, r) {
    ze(r.elements, (i) => e.delete(t, i));
  }
  function PEe(e, t, r, i) {
    t !== _.Property_0_is_declared_but_its_value_is_never_read.code && (i.kind === 138 && (i = ro(i.parent, hC).typeParameter.name), Ve(i) && OUe(i) && (e.replaceNode(r, i, N.createIdentifier(`_${i.text}`)), Oa(i.parent) && gI(i.parent).forEach((o) => {
      Ve(o.name) && e.replaceNode(r, o.name, N.createIdentifier(`_${o.name.text}`));
    })));
  }
  function OUe(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 BB(e, t, r, i, o, s, l, f) {
    PUe(t, r, e, i, o, s, l, f), Ve(t) && lc.Core.eachSymbolReferenceInFile(t, i, e, (d) => {
      Mr(d.parent) && d.parent.name === d && (d = d.parent), !f && GUe(d) && r.delete(e, d.parent.parent);
    });
  }
  function PUe(e, t, r, i, o, s, l, f) {
    const { parent: d } = e;
    if (Oa(d))
      MUe(t, r, d, i, o, s, l, f);
    else if (!(f && Ve(e) && lc.Core.isSymbolReferencedInFile(e, i, r))) {
      const y = Vm(d) ? e : Ts(d) ? d.parent : d;
      D.assert(y !== r, "should not delete whole source file"), t.delete(r, y);
    }
  }
  function MUe(e, t, r, i, o, s, l, f = !1) {
    if (FUe(i, t, r, o, s, l, f))
      if (r.modifiers && r.modifiers.length > 0 && (!Ve(r.name) || lc.Core.isSymbolReferencedInFile(r.name, i, t)))
        for (const d of r.modifiers)
          lo(d) && e.deleteModifier(t, d);
      else
        !r.initializer && MEe(r, i, o) && e.delete(t, r);
  }
  function MEe(e, t, r) {
    const i = e.parent.parameters.indexOf(e);
    return !lc.Core.someSignatureUsage(e.parent, r, t, (o, s) => !s || s.arguments.length > i);
  }
  function FUe(e, t, r, i, o, s, l) {
    const { parent: f } = r;
    switch (f.kind) {
      case 171:
      case 173:
        const d = f.parameters.indexOf(r), y = nl(f) ? f.name : f, h = lc.Core.getReferencedSymbolsForNode(f.pos, y, o, i, s);
        if (h) {
          for (const b of h)
            for (const A of b.references)
              if (A.kind === lc.EntryKind.Node) {
                const L = Ek(A.node) && eo(A.node.parent) && A.node.parent.arguments.length > d, I = Mr(A.node.parent) && Ek(A.node.parent.expression) && eo(A.node.parent.parent) && A.node.parent.parent.arguments.length > d, O = (nl(A.node.parent) || Th(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 && BUe(e, t, f.name) ? FEe(f, r, l) : !0;
      case 215:
      case 216:
        return FEe(f, r, l);
      case 175:
        return !1;
      case 174:
        return !0;
      default:
        return D.failBadSyntaxKind(f);
    }
  }
  function BUe(e, t, r) {
    return !!lc.Core.eachSymbolReferenceInFile(r, e, t, (i) => Ve(i) && eo(i.parent) && i.parent.arguments.indexOf(i) >= 0);
  }
  function FEe(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) => Ve(s.name) && !s.symbol.isReferenced) : o === i.length - 1;
  }
  function GUe(e) {
    return (br(e.parent) && e.parent.left === e || (oJ(e.parent) || Ov(e.parent)) && e.parent.operand === e) && nu(e.parent.parent);
  }
  var Aw, GB, UB, S6, VB, gee, UUe = C({
    "src/services/codefixes/fixUnusedIdentifier.ts"() {
      Xr(), vo(), Aw = "unusedIdentifier", GB = "unusedIdentifier_prefix", UB = "unusedIdentifier_delete", S6 = "unusedIdentifier_deleteImports", VB = "unusedIdentifier_infer", gee = [
        _._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
      ], fo({
        errorCodes: gee,
        getCodeActions(e) {
          const { errorCode: t, sourceFile: r, program: i, cancellationToken: o } = e, s = i.getTypeChecker(), l = i.getSourceFiles(), f = ia(r, e.span.start);
          if (yp(f))
            return [xw(gr.ChangeTracker.with(e, (b) => b.delete(r, f)), _.Remove_template_tag)];
          if (f.kind === 29) {
            const b = gr.ChangeTracker.with(e, (A) => DEe(A, r, f));
            return [xw(b, _.Remove_type_parameters)];
          }
          const d = REe(f);
          if (d) {
            const b = gr.ChangeTracker.with(e, (A) => A.delete(r, d));
            return [to(Aw, b, [_.Remove_import_from_0, ode(d)], S6, _.Delete_all_unused_imports)];
          } else if (hee(f)) {
            const b = gr.ChangeTracker.with(e, (A) => BB(r, f, A, s, l, i, o, !1));
            if (b.length)
              return [to(Aw, b, [_.Remove_unused_declaration_for_Colon_0, f.getText(r)], S6, _.Delete_all_unused_imports)];
          }
          if (Um(f.parent) || gC(f.parent)) {
            if (Oa(f.parent.parent)) {
              const b = f.parent.elements, A = [
                b.length > 1 ? _.Remove_unused_declarations_for_Colon_0 : _.Remove_unused_declaration_for_Colon_0,
                en(b, (L) => L.getText(r)).join(", ")
              ];
              return [
                xw(gr.ChangeTracker.with(e, (L) => NUe(L, r, f.parent)), A)
              ];
            }
            return [
              xw(gr.ChangeTracker.with(e, (b) => b.delete(r, f.parent.parent)), _.Remove_unused_destructuring_declaration)
            ];
          }
          if (NEe(r, f))
            return [
              xw(gr.ChangeTracker.with(e, (b) => OEe(b, r, f.parent)), _.Remove_variable_statement)
            ];
          const y = [];
          if (f.kind === 138) {
            const b = gr.ChangeTracker.with(e, (L) => wEe(L, r, f)), A = ro(f.parent, hC).typeParameter.name.text;
            y.push(to(Aw, b, [_.Replace_infer_0_with_unknown, A], VB, _.Replace_all_unused_infer_with_unknown));
          } else {
            const b = gr.ChangeTracker.with(e, (A) => BB(r, f, A, s, l, i, o, !1));
            if (b.length) {
              const A = Ts(f.parent) ? f.parent : f;
              y.push(xw(b, [_.Remove_unused_declaration_for_Colon_0, A.getText(r)]));
            }
          }
          const h = gr.ChangeTracker.with(e, (b) => PEe(b, t, r, f));
          return h.length && y.push(to(Aw, h, [_.Prefix_0_with_an_underscore, f.getText(r)], GB, _.Prefix_all_unused_declarations_with_where_possible)), y;
        },
        fixIds: [GB, UB, S6, VB],
        getAllCodeActions: (e) => {
          const { sourceFile: t, program: r, cancellationToken: i } = e, o = r.getTypeChecker(), s = r.getSourceFiles();
          return Ss(e, gee, (l, f) => {
            const d = ia(t, f.start);
            switch (e.fixId) {
              case GB:
                PEe(l, f.code, t, d);
                break;
              case S6: {
                const y = REe(d);
                y ? l.delete(t, y) : hee(d) && BB(t, d, l, o, s, r, i, !0);
                break;
              }
              case UB: {
                if (d.kind === 138 || hee(d))
                  break;
                if (yp(d))
                  l.delete(t, d);
                else if (d.kind === 29)
                  DEe(l, t, d);
                else if (Um(d.parent)) {
                  if (d.parent.parent.initializer)
                    break;
                  (!Oa(d.parent.parent) || MEe(d.parent.parent, o, s)) && l.delete(t, d.parent.parent);
                } else {
                  if (gC(d.parent.parent) && d.parent.parent.parent.initializer)
                    break;
                  NEe(t, d) ? OEe(l, t, d.parent) : BB(t, d, l, o, s, r, i, !0);
                }
                break;
              }
              case VB:
                d.kind === 138 && wEe(l, t, d);
                break;
              default:
                D.fail(JSON.stringify(e.fixId));
            }
          });
        }
      });
    }
  });
  function BEe(e, t, r, i, o) {
    const s = ia(t, r), l = rr(s, Ca);
    if (l.getStart(t) !== s.getStart(t)) {
      const d = JSON.stringify({
        statementKind: D.formatSyntaxKind(l.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 = (oo(l.parent) ? l.parent : l).parent;
    if (!oo(l.parent) || l === ss(l.parent.statements))
      switch (f.kind) {
        case 242:
          if (f.elseStatement) {
            if (oo(l.parent))
              break;
            e.replaceNode(t, l, N.createBlock(rt));
            return;
          }
        case 244:
        case 245:
          e.delete(t, f);
          return;
      }
    if (oo(l.parent)) {
      const d = r + i, y = D.checkDefined(VUe(sq(l.parent.statements, l), (h) => h.pos < d), "Some statement should be last");
      e.deleteNodeRange(t, l, y);
    } else
      e.delete(t, l);
  }
  function VUe(e, t) {
    let r;
    for (const i of e) {
      if (!t(i))
        break;
      r = i;
    }
    return r;
  }
  var jB, yee, jUe = C({
    "src/services/codefixes/fixUnreachableCode.ts"() {
      Xr(), vo(), jB = "fixUnreachableCode", yee = [_.Unreachable_code_detected.code], fo({
        errorCodes: yee,
        getCodeActions(e) {
          if (e.program.getSyntacticDiagnostics(e.sourceFile, e.cancellationToken).length)
            return;
          const r = gr.ChangeTracker.with(e, (i) => BEe(i, e.sourceFile, e.span.start, e.span.length, e.errorCode));
          return [to(jB, r, _.Remove_unreachable_code, jB, _.Remove_all_unreachable_code)];
        },
        fixIds: [jB],
        getAllCodeActions: (e) => Ss(e, yee, (t, r) => BEe(t, r.file, r.start, r.length, r.code))
      });
    }
  });
  function GEe(e, t, r) {
    const i = ia(t, r), o = ro(i.parent, N1), s = i.getStart(t), l = o.statement.getStart(t), f = p_(s, l, t) ? l : zo(t.text, gs(o, 58, t).end, !0);
    e.deleteRange(t, { pos: s, end: f });
  }
  var HB, vee, HUe = C({
    "src/services/codefixes/fixUnusedLabel.ts"() {
      Xr(), vo(), HB = "fixUnusedLabel", vee = [_.Unused_label.code], fo({
        errorCodes: vee,
        getCodeActions(e) {
          const t = gr.ChangeTracker.with(e, (r) => GEe(r, e.sourceFile, e.span.start));
          return [to(HB, t, _.Remove_unused_label, HB, _.Remove_all_unused_labels)];
        },
        fixIds: [HB],
        getAllCodeActions: (e) => Ss(e, vee, (t, r) => GEe(t, r.file, r.start))
      });
    }
  });
  function UEe(e, t, r, i, o) {
    e.replaceNode(t, r, o.typeToTypeNode(i, r, void 0));
  }
  function VEe(e, t, r) {
    const i = rr(ia(e, t), WUe), o = i && i.type;
    return o && { typeNode: o, type: zUe(r, o) };
  }
  function WUe(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 zUe(e, t) {
    if (TC(t)) {
      const r = e.getTypeFromTypeNode(t.type);
      return r === e.getNeverType() || r === e.getVoidType() ? r : e.getUnionType(Bn([r, e.getUndefinedType()], t.postfix ? void 0 : e.getNullType()));
    }
    return e.getTypeFromTypeNode(t);
  }
  var bee, WB, Eee, qUe = C({
    "src/services/codefixes/fixJSDocTypes.ts"() {
      Xr(), vo(), bee = "fixJSDocTypes_plain", WB = "fixJSDocTypes_nullable", Eee = [
        _.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
      ], fo({
        errorCodes: Eee,
        getCodeActions(e) {
          const { sourceFile: t } = e, r = e.program.getTypeChecker(), i = VEe(t, e.span.start, r);
          if (!i)
            return;
          const { typeNode: o, type: s } = i, l = o.getText(t), f = [d(s, bee, _.Change_all_jsdoc_style_types_to_TypeScript)];
          return o.kind === 317 && f.push(d(s, WB, _.Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types)), f;
          function d(y, h, b) {
            const A = gr.ChangeTracker.with(e, (L) => UEe(L, t, o, y, r));
            return to("jdocTypes", A, [_.Change_0_to_1, l, r.typeToString(y)], h, b);
          }
        },
        fixIds: [bee, WB],
        getAllCodeActions(e) {
          const { fixId: t, program: r, sourceFile: i } = e, o = r.getTypeChecker();
          return Ss(e, Eee, (s, l) => {
            const f = VEe(l.file, l.start, o);
            if (!f)
              return;
            const { typeNode: d, type: y } = f, h = d.kind === 317 && t === WB ? o.getNullableType(y, 32768) : y;
            UEe(s, i, d, h, o);
          });
        }
      });
    }
  });
  function jEe(e, t, r) {
    e.replaceNodeWithText(t, r, `${r.text}()`);
  }
  function HEe(e, t) {
    const r = ia(e, t);
    if (Mr(r.parent)) {
      let i = r.parent;
      for (; Mr(i.parent); )
        i = i.parent;
      return i.name;
    }
    if (Ve(r))
      return r;
  }
  var zB, Tee, JUe = C({
    "src/services/codefixes/fixMissingCallParentheses.ts"() {
      Xr(), vo(), zB = "fixMissingCallParentheses", Tee = [
        _.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead.code
      ], fo({
        errorCodes: Tee,
        fixIds: [zB],
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = HEe(t, r.start);
          if (!i)
            return;
          const o = gr.ChangeTracker.with(e, (s) => jEe(s, e.sourceFile, i));
          return [to(zB, o, _.Add_missing_call_parentheses, zB, _.Add_all_missing_call_parentheses)];
        },
        getAllCodeActions: (e) => Ss(e, Tee, (t, r) => {
          const i = HEe(r.file, r.start);
          i && jEe(t, r.file, i);
        })
      });
    }
  });
  function KUe(e) {
    if (e.type)
      return e.type;
    if (zi(e.parent) && e.parent.type && Sh(e.parent.type))
      return e.parent.type.type;
  }
  function WEe(e, t) {
    const r = ia(e, t), i = Tf(r);
    if (!i)
      return;
    let o;
    switch (i.kind) {
      case 171:
        o = i.name;
        break;
      case 259:
      case 215:
        o = gs(i, 98, e);
        break;
      case 216:
        const s = i.typeParameters ? 29 : 20;
        o = gs(i, s, e) || ss(i.parameters);
        break;
      default:
        return;
    }
    return o && {
      insertBefore: o,
      returnType: KUe(i)
    };
  }
  function zEe(e, t, { insertBefore: r, returnType: i }) {
    if (i) {
      const o = iN(i);
      (!o || o.kind !== 79 || o.text !== "Promise") && e.replaceNode(t, i, N.createTypeReferenceNode("Promise", N.createNodeArray([i])));
    }
    e.insertModifierBefore(t, 132, r);
  }
  var qB, See, XUe = C({
    "src/services/codefixes/fixAwaitInSyncFunction.ts"() {
      Xr(), vo(), qB = "fixAwaitInSyncFunction", See = [
        _.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
      ], fo({
        errorCodes: See,
        getCodeActions(e) {
          const { sourceFile: t, span: r } = e, i = WEe(t, r.start);
          if (!i)
            return;
          const o = gr.ChangeTracker.with(e, (s) => zEe(s, t, i));
          return [to(qB, o, _.Add_async_modifier_to_containing_function, qB, _.Add_all_missing_async_modifiers)];
        },
        fixIds: [qB],
        getAllCodeActions: function(t) {
          const r = /* @__PURE__ */ new Map();
          return Ss(t, See, (i, o) => {
            const s = WEe(o.file, o.start);
            !s || !hp(r, ds(s.insertBefore)) || zEe(i, t.sourceFile, s);
          });
        }
      });
    }
  });
  function qEe(e, t, r, i, o) {
    let s, l;
    if (i === _._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code)
      s = t, l = 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 = ia(e, t).parent;
      D.assert(U0(d), "error span of fixPropertyOverrideAccessor should only be on an accessor");
      const y = d.parent;
      D.assert(li(y), "erroneous accessors should only be inside classes");
      const h = Tm(Vee(y, f));
      if (!h)
        return [];
      const b = ta(DA(d.name)), A = f.getPropertyOfType(f.getTypeAtLocation(h), b);
      if (!A || !A.valueDeclaration)
        return [];
      s = A.valueDeclaration.pos, l = A.valueDeclaration.end, e = er(A.valueDeclaration);
    } else
      D.fail("fixPropertyOverrideAccessor codefix got unexpected error code " + i);
    return sTe(e, o.program, s, l, o, _.Generate_get_and_set_accessors.message);
  }
  var xee, JB, YUe = C({
    "src/services/codefixes/fixPropertyOverrideAccessor.ts"() {
      Xr(), vo(), xee = [
        _._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
      ], JB = "fixPropertyOverrideAccessor", fo({
        errorCodes: xee,
        getCodeActions(e) {
          const t = qEe(e.sourceFile, e.span.start, e.span.length, e.errorCode, e);
          if (t)
            return [to(JB, t, _.Generate_get_and_set_accessors, JB, _.Generate_get_and_set_accessors_for_all_overriding_properties)];
        },
        fixIds: [JB],
        getAllCodeActions: (e) => Ss(e, xee, (t, r) => {
          const i = qEe(r.file, r.start, r.length, r.code, e);
          if (i)
            for (const o of i)
              t.pushRaw(e.sourceFile, o);
        })
      });
    }
  });
  function $Ue(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 Yf(Tf(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 QUe(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 JEe(e, t, r, i, o, s, l, f, d) {
    if (!SI(r.kind) && r.kind !== 79 && r.kind !== 25 && r.kind !== 108)
      return;
    const { parent: y } = r, h = $T(t, o, d, f);
    switch (i = QUe(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 (zi(y) && l(y) || Za(y) || xf(y))
          return KEe(e, h, t, y, o, f, s), h.writeFixes(e), y;
        if (Mr(y)) {
          const L = Cw(y.name, o, s), I = pw(L, y, o, f);
          if (I) {
            const O = N.createJSDocTypeTag(void 0, N.createJSDocTypeExpression(I), void 0);
            e.addJSDocTags(t, ro(y.parent.parent, nu), [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 && zi(L.valueDeclaration) && l(L.valueDeclaration) ? (KEe(e, h, er(L.valueDeclaration), L.valueDeclaration, o, f, s), h.writeFixes(e), L.valueDeclaration) : void 0;
      }
    }
    const b = Tf(r);
    if (b === void 0)
      return;
    let A;
    switch (i) {
      case _.Parameter_0_implicitly_has_an_1_type.code:
        if (Yf(b)) {
          XEe(e, h, t, b, o, f, s), A = b;
          break;
        }
      case _.Rest_parameter_0_implicitly_has_an_any_type.code:
        if (l(b)) {
          const L = ro(y, Oa);
          ZUe(e, h, t, L, b, 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:
        H_(b) && Ve(b.name) && (KB(e, h, t, b, Cw(b.name, o, s), o, f), A = b);
        break;
      case _.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code:
        Yf(b) && (XEe(e, h, t, b, o, f, s), A = b);
        break;
      case _.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:
        gr.isThisTypeAnnotatable(b) && l(b) && (eVe(e, t, b, o, f, s), A = b);
        break;
      default:
        return D.fail(String(i));
    }
    return h.writeFixes(e), A;
  }
  function KEe(e, t, r, i, o, s, l) {
    Ve(i.name) && KB(e, t, r, i, Cw(i.name, o, l), o, s);
  }
  function ZUe(e, t, r, i, o, s, l, f) {
    if (!Ve(i.name))
      return;
    const d = rVe(o, r, s, f);
    if (D.assert(o.parameters.length === d.length, "Parameter count and inference count should match"), fr(o))
      YEe(e, r, d, s, l);
    else {
      const y = Ws(o) && !gs(o, 20, r);
      y && e.insertNodeBefore(r, ss(o.parameters), N.createToken(20));
      for (const { declaration: h, type: b } of d)
        h && !h.type && !h.initializer && KB(e, t, r, h, b, s, l);
      y && e.insertNodeAfter(r, Ho(o.parameters), N.createToken(21));
    }
  }
  function eVe(e, t, r, i, o, s) {
    const l = $Ee(r, t, i, s);
    if (!l || !l.length)
      return;
    const f = Cee(i, l, s).thisParameter(), d = pw(f, r, i, o);
    d && (fr(r) ? tVe(e, t, r, d) : e.tryInsertThisTypeAnnotation(t, r, d));
  }
  function tVe(e, t, r, i) {
    e.addJSDocTags(t, r, [
      N.createJSDocThisTag(void 0, N.createJSDocTypeExpression(i))
    ]);
  }
  function XEe(e, t, r, i, o, s, l) {
    const f = zl(i.parameters);
    if (f && Ve(i.name) && Ve(f.name)) {
      let d = Cw(i.name, o, l);
      d === o.getTypeChecker().getAnyType() && (d = Cw(f.name, o, l)), fr(i) ? YEe(e, r, [{ declaration: f, type: d }], o, s) : KB(e, t, r, f, d, o, s);
    }
  }
  function KB(e, t, r, i, o, s, l) {
    const f = pw(o, i, s, l);
    if (f)
      if (fr(r) && i.kind !== 168) {
        const d = zi(i) ? ii(i.parent.parent, cl) : i;
        if (!d)
          return;
        const y = N.createJSDocTypeExpression(f), h = H_(i) ? N.createJSDocReturnTag(void 0, y, void 0) : N.createJSDocTypeTag(void 0, y, void 0);
        e.addJSDocTags(r, d, [h]);
      } else
        nVe(f, i, r, e, t, $o(s.getCompilerOptions())) || e.tryInsertTypeAnnotation(r, i, f);
  }
  function nVe(e, t, r, i, o, s) {
    const l = ZT(e, s);
    return l && i.tryInsertTypeAnnotation(r, t, l.typeNode) ? (ze(l.symbols, (f) => o.addImportFromExportedSymbol(f, !0)), !0) : !1;
  }
  function YEe(e, t, r, i, o) {
    const s = r.length && r[0].declaration.parent;
    if (!s)
      return;
    const l = fa(r, (f) => {
      const d = f.declaration;
      if (d.initializer || bv(d) || !Ve(d.name))
        return;
      const y = f.type && pw(f.type, d, i, o);
      if (y) {
        const h = N.cloneNode(d.name);
        return sr(h, 7168), { name: N.cloneNode(d.name), param: d, isOptional: !!f.isOptional, typeNode: y };
      }
    });
    if (l.length)
      if (Ws(s) || Ps(s)) {
        const f = Ws(s) && !gs(s, 20, t);
        f && e.insertNodeBefore(t, ss(s.parameters), N.createToken(20)), ze(l, ({ typeNode: d, param: y }) => {
          const h = N.createJSDocTypeTag(void 0, N.createJSDocTypeExpression(d)), b = N.createJSDocComment(void 0, [h]);
          e.insertNodeAt(t, y.getStart(t), b, { suffix: " " });
        }), f && e.insertNodeAfter(t, Ho(s.parameters), N.createToken(21));
      } else {
        const f = en(l, ({ name: d, typeNode: y, isOptional: h }) => N.createJSDocParameterTag(void 0, d, !!h, N.createJSDocTypeExpression(y), !1, void 0));
        e.addJSDocTags(t, s, f);
      }
  }
  function Aee(e, t, r) {
    return fa(lc.getReferenceEntriesForNode(-1, e, t, t.getSourceFiles(), r), (i) => i.kind !== lc.EntryKind.Span ? ii(i.node, Ve) : void 0);
  }
  function Cw(e, t, r) {
    const i = Aee(e, t, r);
    return Cee(t, i, r).single();
  }
  function rVe(e, t, r, i) {
    const o = $Ee(e, t, r, i);
    return o && Cee(r, o, i).parameters(e) || e.parameters.map((s) => ({
      declaration: s,
      type: Ve(s.name) ? Cw(s.name, r, i) : r.getTypeChecker().getAnyType()
    }));
  }
  function $Ee(e, t, r, i) {
    let o;
    switch (e.kind) {
      case 173:
        o = gs(e, 135, t);
        break;
      case 216:
      case 215:
        const s = e.parent;
        o = (zi(s) || Za(s)) && Ve(s.name) ? s.name : e.name;
        break;
      case 259:
      case 171:
      case 170:
        o = e.name;
        break;
    }
    if (o)
      return Aee(o, r, i);
  }
  function Cee(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 l() {
      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 He of Oe)
        He.properties && He.properties.forEach((Fe, st) => {
          Me.has(st) || Me.set(st, []), Me.get(st).push(Fe);
        });
      const Xe = /* @__PURE__ */ new Map();
      return Me.forEach((He, Fe) => {
        Xe.set(Fe, f(He));
      }), {
        isNumber: Oe.some((He) => He.isNumber),
        isString: Oe.some((He) => He.isString),
        isNumberOrString: Oe.some((He) => He.isNumberOrString),
        candidateTypes: wo(Oe, (He) => He.candidateTypes),
        properties: Xe,
        calls: wo(Oe, (He) => He.calls),
        constructs: wo(Oe, (He) => He.constructs),
        numberIndex: ze(Oe, (He) => He.numberIndex),
        stringIndex: ze(Oe, (He) => He.stringIndex),
        candidateThisTypes: wo(Oe, (He) => He.candidateThisTypes),
        inferredTypes: void 0
      };
    }
    function d() {
      return ne(b(t));
    }
    function y(Oe) {
      if (t.length === 0 || !Oe.parameters)
        return;
      const Me = l();
      for (const He of t)
        r.throwIfCancellationRequested(), A(He, Me);
      const Xe = [...Me.constructs || [], ...Me.calls || []];
      return Oe.parameters.map((He, Fe) => {
        const st = [], Ct = ph(He);
        let Et = !1;
        for (const tt of Xe)
          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 (Ve(He.name)) {
          const tt = b(Aee(He.name, e, r));
          st.push(...Ct ? fa(tt, i.getElementTypeOfArrayType) : tt);
        }
        const Vt = ne(st);
        return {
          type: Ct ? i.createArrayType(Vt) : Vt,
          isOptional: Et && !Ct,
          declaration: He
        };
      });
    }
    function h() {
      const Oe = l();
      for (const Me of t)
        r.throwIfCancellationRequested(), A(Me, Oe);
      return ne(Oe.candidateThisTypes || rt);
    }
    function b(Oe) {
      const Me = l();
      for (const Xe of Oe)
        r.throwIfCancellationRequested(), A(Xe, Me);
      return ie(Me);
    }
    function A(Oe, Me) {
      for (; YI(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:
          B(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: Xe, initializer: He } = Oe.parent;
          if (Oe === Xe) {
            He && Be(Me, i.getTypeAtLocation(He));
            break;
          }
        }
        default:
          return L(Oe, Me);
      }
    }
    function L(Oe, Me) {
      sg(Oe) && Be(Me, i.getContextualType(Oe));
    }
    function I(Oe, Me) {
      Be(Me, eo(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, Xe) {
      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 He = i.getTypeAtLocation(Me.left === Oe ? Me.right : Me.left);
          He.flags & 1056 ? Be(Xe, He) : Xe.isNumber = !0;
          break;
        case 64:
        case 39:
          const Fe = i.getTypeAtLocation(Me.left === Oe ? Me.right : Me.left);
          Fe.flags & 1056 ? Be(Xe, Fe) : Fe.flags & 296 ? Xe.isNumber = !0 : Fe.flags & 402653316 ? Xe.isString = !0 : Fe.flags & 1 || (Xe.isNumberOrString = !0);
          break;
        case 63:
        case 34:
        case 36:
        case 37:
        case 35:
          Be(Xe, i.getTypeAtLocation(Me.left === Oe ? Me.right : Me.left));
          break;
        case 101:
          Oe === Me.left && (Xe.isString = !0);
          break;
        case 56:
        case 60:
          Oe === Me.left && (Oe.parent.parent.kind === 257 || Yu(Oe.parent.parent, !0)) && Be(Xe, i.getTypeAtLocation(Me.right));
          break;
      }
    }
    function B(Oe, Me) {
      Be(Me, i.getTypeAtLocation(Oe.parent.parent.expression));
    }
    function V(Oe, Me) {
      const Xe = {
        argumentTypes: [],
        return_: l()
      };
      if (Oe.arguments)
        for (const He of Oe.arguments)
          Xe.argumentTypes.push(i.getTypeAtLocation(He));
      A(Oe, Xe.return_), Oe.kind === 210 ? (Me.calls || (Me.calls = [])).push(Xe) : (Me.constructs || (Me.constructs = [])).push(Xe);
    }
    function H(Oe, Me) {
      const Xe = oc(Oe.name.text);
      Me.properties || (Me.properties = /* @__PURE__ */ new Map());
      const He = Me.properties.get(Xe) || l();
      A(Oe, He), Me.properties.set(Xe, He);
    }
    function te(Oe, Me, Xe) {
      if (Me === Oe.argumentExpression) {
        Xe.isNumberOrString = !0;
        return;
      } else {
        const He = i.getTypeAtLocation(Oe.argumentExpression), Fe = l();
        A(Oe, Fe), He.flags & 296 ? Xe.numberIndex = Fe : Xe.stringIndex = Fe;
      }
    }
    function X(Oe, Me) {
      const Xe = zi(Oe.parent.parent) ? Oe.parent.parent : Oe.parent;
      We(Me, i.getTypeAtLocation(Xe));
    }
    function Y(Oe, Me) {
      We(Me, i.getTypeAtLocation(Oe.parent));
    }
    function P(Oe, Me) {
      const Xe = [];
      for (const He of Oe)
        for (const { high: Fe, low: st } of Me)
          Fe(He) && (D.assert(!st(He), "Priority can't have both low and high"), Xe.push(st));
      return Oe.filter((He) => Xe.every((Fe) => !Fe(He)));
    }
    function de(Oe) {
      return ne(ie(Oe));
    }
    function ne(Oe) {
      if (!Oe.length)
        return i.getAnyType();
      const Me = i.getUnionType([i.getStringType(), i.getNumberType()]);
      let He = 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) && !(Zr(st) & 16),
          low: (st) => !!(Zr(st) & 16)
        }
      ]);
      const Fe = He.filter((st) => Zr(st) & 16);
      return Fe.length && (He = He.filter((st) => !(Zr(st) & 16)), He.push(ye(Fe))), i.getWidenedType(i.getUnionType(He.map(i.getBaseTypeOfLiteralType), 2));
    }
    function ye(Oe) {
      if (Oe.length === 1)
        return Oe[0];
      const Me = [], Xe = [], He = [], Fe = [];
      let st = !1, Ct = !1;
      const Et = l_();
      for (const at of Oe) {
        for (const Pn of i.getPropertiesOfType(at))
          Et.add(Pn.name, Pn.valueDeclaration ? i.getTypeOfSymbolAtLocation(Pn, Pn.valueDeclaration) : i.getAnyType());
        Me.push(...i.getSignaturesOfType(at, 0)), Xe.push(...i.getSignaturesOfType(at, 1));
        const an = i.getIndexInfoOfType(at, 0);
        an && (He.push(an.type), st = st || an.isReadonly);
        const Xt = i.getIndexInfoOfType(at, 1);
        Xt && (Fe.push(Xt.type), Ct = Ct || Xt.isReadonly);
      }
      const Vt = sse(Et, (at, an) => {
        const Xt = an.length < Oe.length ? 16777216 : 0, Pn = i.createSymbol(4 | Xt, at);
        return Pn.links.type = i.getUnionType(an), [at, Pn];
      }), tt = [];
      return He.length && tt.push(i.createIndexInfo(i.getStringType(), i.getUnionType(He), st)), Fe.length && tt.push(i.createIndexInfo(i.getNumberType(), i.getUnionType(Fe), Ct)), i.createAnonymousType(Oe[0].symbol, Vt, Me, Xe, tt);
    }
    function ie(Oe) {
      var Me, Xe, He;
      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 || (Xe = Oe.constructs) != null && Xe.length || Oe.stringIndex) && Fe.push(W(Oe));
      const st = (Oe.candidateTypes || []).map((Et) => i.getBaseTypeOfLiteralType(Et)), Ct = (He = Oe.calls) != null && He.length ? W(Oe) : void 0;
      return Ct && st ? Fe.push(i.getUnionType([Ct, ...st], 2)) : (Ct && Fe.push(Ct), Ie(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 Xe = Oe.calls ? [Ue(Oe.calls)] : [], He = Oe.constructs ? [Ue(Oe.constructs)] : [], Fe = Oe.stringIndex ? [i.createIndexInfo(i.getStringType(), de(Oe.stringIndex), !1)] : [];
      return i.createAnonymousType(void 0, Me, Xe, He, Fe);
    }
    function ce(Oe) {
      if (!Oe.properties || !Oe.properties.size)
        return [];
      const Me = s.filter((Xe) => pe(Xe, Oe));
      return 0 < Me.length && Me.length < 3 ? Me.map((Xe) => ve(Xe, Oe)) : [];
    }
    function pe(Oe, Me) {
      return Me.properties ? !tf(Me.properties, (Xe, He) => {
        const Fe = i.getTypeOfPropertyOfType(Oe, He);
        return Fe ? Xe.calls ? !i.getSignaturesOfType(Fe, 0).length || !i.isTypeAssignableTo(Fe, $e(Xe.calls)) : !i.isTypeAssignableTo(Fe, de(Xe)) : !0;
      }) : !1;
    }
    function ve(Oe, Me) {
      if (!(Zr(Oe) & 4) || !Me.properties)
        return Oe;
      const Xe = Oe.target, He = Tm(Xe.typeParameters);
      if (!He)
        return Oe;
      const Fe = [];
      return Me.properties.forEach((st, Ct) => {
        const Et = i.getTypeOfPropertyOfType(Xe, Ct);
        D.assert(!!Et, "generic should have all the properties of its reference."), Fe.push(...Te(Et, de(st), He));
      }), o[Oe.symbol.escapedName](ne(Fe));
    }
    function Te(Oe, Me, Xe) {
      if (Oe === Xe)
        return [Me];
      if (Oe.flags & 3145728)
        return wo(Oe.types, (st) => Te(st, Me, Xe));
      if (Zr(Oe) & 4 && Zr(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], Xe));
        return Et;
      }
      const He = i.getSignaturesOfType(Oe, 0), Fe = i.getSignaturesOfType(Me, 0);
      return He.length === 1 && Fe.length === 1 ? ee(He[0], Fe[0], Xe) : [];
    }
    function ee(Oe, Me, Xe) {
      var He;
      const Fe = [];
      for (let Et = 0; Et < Oe.parameters.length; Et++) {
        const Vt = Oe.parameters[Et], tt = Me.parameters[Et], at = Oe.declaration && ph(Oe.declaration.parameters[Et]);
        if (!tt)
          break;
        let an = Vt.valueDeclaration ? i.getTypeOfSymbolAtLocation(Vt, Vt.valueDeclaration) : i.getAnyType();
        const Xt = at && i.getElementTypeOfArrayType(an);
        Xt && (an = Xt);
        const Pn = ((He = ii(tt, Dm)) == null ? void 0 : He.links.type) || (tt.valueDeclaration ? i.getTypeOfSymbolAtLocation(tt, tt.valueDeclaration) : i.getAnyType());
        Fe.push(...Te(an, Pn, Xe));
      }
      const st = i.getReturnTypeOfSignature(Oe), Ct = i.getReturnTypeOfSignature(Me);
      return Fe.push(...Te(st, Ct, Xe)), Fe;
    }
    function $e(Oe) {
      return i.createAnonymousType(void 0, ao(), [Ue(Oe)], rt, rt);
    }
    function Ue(Oe) {
      const Me = [], Xe = Math.max(...Oe.map((Fe) => Fe.argumentTypes.length));
      for (let Fe = 0; Fe < Xe; Fe++) {
        const st = i.createSymbol(1, oc(`arg${Fe}`));
        st.links.type = ne(Oe.map((Ct) => Ct.argumentTypes[Fe] || i.getUndefinedType())), Oe.some((Ct) => Ct.argumentTypes[Fe] === void 0) && (st.flags |= 16777216), Me.push(st);
      }
      const He = de(f(Oe.map((Fe) => Fe.return_)));
      return i.createSignature(void 0, void 0, void 0, Me, He, void 0, Xe, 0);
    }
    function Be(Oe, Me) {
      Me && !(Me.flags & 1) && !(Me.flags & 131072) && (Oe.candidateTypes || (Oe.candidateTypes = [])).push(Me);
    }
    function We(Oe, Me) {
      Me && !(Me.flags & 1) && !(Me.flags & 131072) && (Oe.candidateThisTypes || (Oe.candidateThisTypes = [])).push(Me);
    }
  }
  var XB, Lee, iVe = C({
    "src/services/codefixes/inferFromUsage.ts"() {
      Xr(), vo(), XB = "inferFromUsage", Lee = [
        _.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
      ], fo({
        errorCodes: Lee,
        getCodeActions(e) {
          const { sourceFile: t, program: r, span: { start: i }, errorCode: o, cancellationToken: s, host: l, preferences: f } = e, d = ia(t, i);
          let y;
          const h = gr.ChangeTracker.with(e, (A) => {
            y = JEe(A, t, d, o, r, s, r1, l, f);
          }), b = y && Aa(y);
          return !b || h.length === 0 ? void 0 : [to(XB, h, [$Ue(o, d), El(b)], XB, _.Infer_all_types_from_usage)];
        },
        fixIds: [XB],
        getAllCodeActions(e) {
          const { sourceFile: t, program: r, cancellationToken: i, host: o, preferences: s } = e, l = WC();
          return Ss(e, Lee, (f, d) => {
            JEe(f, t, ia(d.file, d.start), d.code, r, i, l, o, s);
          });
        }
      });
    }
  });
  function QEe(e, t, r) {
    if (fr(e))
      return;
    const i = ia(e, r), o = rr(i, Xs), s = o == null ? void 0 : o.type;
    if (!s)
      return;
    const l = t.getTypeFromTypeNode(s), f = t.getAwaitedType(l) || t.getVoidType(), d = t.typeToTypeNode(f, s, void 0);
    if (d)
      return { returnTypeNode: s, returnType: l, promisedTypeNode: d, promisedType: f };
  }
  function ZEe(e, t, r, i) {
    e.replaceNode(t, r, N.createTypeReferenceNode("Promise", [i]));
  }
  var YB, Iee, aVe = C({
    "src/services/codefixes/fixReturnTypeInAsyncFunction.ts"() {
      Xr(), vo(), YB = "fixReturnTypeInAsyncFunction", Iee = [
        _.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0.code
      ], fo({
        errorCodes: Iee,
        fixIds: [YB],
        getCodeActions: function(t) {
          const { sourceFile: r, program: i, span: o } = t, s = i.getTypeChecker(), l = QEe(r, i.getTypeChecker(), o.start);
          if (!l)
            return;
          const { returnTypeNode: f, returnType: d, promisedTypeNode: y, promisedType: h } = l, b = gr.ChangeTracker.with(t, (A) => ZEe(A, r, f, y));
          return [to(YB, b, [
            _.Replace_0_with_Promise_1,
            s.typeToString(d),
            s.typeToString(h)
          ], YB, _.Fix_all_incorrect_return_type_of_an_async_functions)];
        },
        getAllCodeActions: (e) => Ss(e, Iee, (t, r) => {
          const i = QEe(r.file, e.program.getTypeChecker(), r.start);
          i && ZEe(t, r.file, i.returnTypeNode, i.promisedTypeNode);
        })
      });
    }
  });
  function eTe(e, t, r, i) {
    const { line: o } = ac(t, r);
    (!i || e1(i, o)) && e.insertCommentBeforeLine(t, o, r, " @ts-ignore");
  }
  var kee, wee, Dee, oVe = C({
    "src/services/codefixes/disableJsDiagnostics.ts"() {
      Xr(), vo(), kee = "disableJsDiagnostics", wee = "disableJsDiagnostics", Dee = fa(Object.keys(_), (e) => {
        const t = _[e];
        return t.category === 1 ? t.code : void 0;
      }), fo({
        errorCodes: Dee,
        getCodeActions: function(t) {
          const { sourceFile: r, program: i, span: o, host: s, formatContext: l } = t;
          if (!fr(r) || !tO(r, i.getCompilerOptions()))
            return;
          const f = r.checkJsDirective ? "" : rb(s, l.options), d = [
            Tp(kee, [ube(r.fileName, [
              Y8(r.checkJsDirective ? _l(r.checkJsDirective.pos, r.checkJsDirective.end) : Ll(0, 0), `// @ts-nocheck${f}`)
            ])], _.Disable_checking_for_this_file)
          ];
          return gr.isValidLocationToAddComment(r, o.start) && d.unshift(to(kee, gr.ChangeTracker.with(t, (y) => eTe(y, r, o.start)), _.Ignore_this_error_message, wee, _.Add_ts_ignore_to_all_error_messages)), d;
        },
        fixIds: [wee],
        getAllCodeActions: (e) => {
          const t = /* @__PURE__ */ new Set();
          return Ss(e, Dee, (r, i) => {
            gr.isValidLocationToAddComment(i.file, i.start) && eTe(r, i.file, i.start, t);
          });
        }
      });
    }
  });
  function Ree(e, t, r, i, o, s, l) {
    const f = e.symbol.members;
    for (const d of t)
      f.has(d.escapedName) || tTe(d, e, r, i, o, s, l, void 0);
  }
  function Zx(e) {
    return {
      trackSymbol: () => !1,
      moduleResolverHost: R$(e.program, e.host)
    };
  }
  function tTe(e, t, r, i, o, s, l, f, d = 3, y = !1) {
    var h;
    const b = e.getDeclarations(), A = b == null ? void 0 : b[0], L = i.program.getTypeChecker(), I = $o(i.program.getCompilerOptions()), O = (h = A == null ? void 0 : A.kind) != null ? h : 168, k = kc(Aa(A), !1), B = A ? Ru(A) : 0;
    let V = B & 4 ? 4 : B & 16 ? 16 : 0;
    A && ef(A) && (V |= 128);
    const H = ne(), te = L.getWidenedType(L.getTypeOfSymbolAtLocation(e, t)), X = !!(e.flags & 16777216), Y = !!(t.flags & 16777216) || y, P = Ep(r, o);
    switch (O) {
      case 168:
      case 169:
        const pe = P === 0 ? 268435456 : void 0;
        let ve = L.typeToTypeNode(te, t, pe, Zx(i));
        if (s) {
          const ee = ZT(ve, I);
          ee && (ve = ee.typeNode, e2(s, ee.symbols));
        }
        l(N.createPropertyDeclaration(H, A ? ie(k) : e.getName(), X && d & 2 ? N.createToken(57) : void 0, ve, void 0));
        break;
      case 174:
      case 175: {
        D.assertIsDefined(b);
        let ee = L.typeToTypeNode(te, t, void 0, Zx(i));
        const $e = vT(b, A), Ue = $e.secondAccessor ? [$e.firstAccessor, $e.secondAccessor] : [$e.firstAccessor];
        if (s) {
          const Be = ZT(ee, I);
          Be && (ee = Be.typeNode, e2(s, Be.symbols));
        }
        for (const Be of Ue)
          if (H_(Be))
            l(N.createGetAccessorDeclaration(H, ie(k), rt, ce(ee), W(f, P, Y)));
          else {
            D.assertNode(Be, Yf, "The counterpart to a getter should be a setter");
            const We = qI(Be), Oe = We && Ve(We.name) ? Pr(We.name) : void 0;
            l(N.createSetAccessorDeclaration(H, ie(k), Oee(1, [Oe], [ce(ee)], 1, !1), W(f, P, Y)));
          }
        break;
      }
      case 170:
      case 171:
        D.assertIsDefined(b);
        const Te = te.isUnion() ? wo(te.types, (ee) => ee.getCallSignatures()) : te.getCallSignatures();
        if (!kt(Te))
          break;
        if (b.length === 1) {
          D.assert(Te.length === 1, "One declaration implies one signature");
          const ee = Te[0];
          de(P, ee, H, ie(k), W(f, P, Y));
          break;
        }
        for (const ee of Te)
          de(P, ee, H, ie(k));
        if (!Y)
          if (b.length > Te.length) {
            const ee = L.getSignatureFromDeclaration(b[b.length - 1]);
            de(P, ee, H, ie(k), W(f, P));
          } else
            D.assert(b.length === Te.length, "Declarations and signatures should match count"), l(lVe(L, i, t, Te, ie(k), X && !!(d & 1), H, P, f));
        break;
    }
    function de(pe, ve, Te, ee, $e) {
      const Ue = $B(171, i, pe, ve, $e, ee, Te, X && !!(d & 1), t, s);
      Ue && l(Ue);
    }
    function ne() {
      let pe;
      return V && (pe = _A(pe, N.createModifiersFromModifierFlags(V))), ye() && (pe = Bn(pe, N.createToken(161))), pe && N.createNodeArray(pe);
    }
    function ye() {
      return !!(i.program.getCompilerOptions().noImplicitOverride && A && C1(A));
    }
    function ie(pe) {
      return Ve(pe) && pe.escapedText === "constructor" ? N.createComputedPropertyName(N.createStringLiteral(Pr(pe), P === 0)) : kc(pe, !1);
    }
    function W(pe, ve, Te) {
      return Te ? void 0 : kc(pe, !1) || Pee(ve);
    }
    function ce(pe) {
      return kc(pe, !1);
    }
  }
  function $B(e, t, r, i, o, s, l, f, d, y) {
    const h = t.program, b = h.getTypeChecker(), A = $o(h.getCompilerOptions()), L = fr(d), I = 524545 | (r === 0 ? 268435456 : 0), O = b.signatureToSignatureDeclaration(i, e, d, I, Zx(t));
    if (!O)
      return;
    let k = L ? void 0 : O.typeParameters, B = O.parameters, V = L ? void 0 : O.type;
    if (y) {
      if (k) {
        const Y = Zs(k, (P) => {
          let de = P.constraint, ne = P.default;
          if (de) {
            const ye = ZT(de, A);
            ye && (de = ye.typeNode, e2(y, ye.symbols));
          }
          if (ne) {
            const ye = ZT(ne, A);
            ye && (ne = ye.typeNode, e2(y, ye.symbols));
          }
          return N.updateTypeParameterDeclaration(P, P.modifiers, P.name, de, ne);
        });
        k !== Y && (k = mt(N.createNodeArray(Y, k.hasTrailingComma), k));
      }
      const X = Zs(B, (Y) => {
        let P = L ? void 0 : Y.type;
        if (P) {
          const de = ZT(P, A);
          de && (P = de.typeNode, e2(y, de.symbols));
        }
        return N.updateParameterDeclaration(Y, Y.modifiers, Y.dotDotDotToken, Y.name, L ? void 0 : Y.questionToken, P, Y.initializer);
      });
      if (B !== X && (B = mt(N.createNodeArray(X, B.hasTrailingComma), B)), V) {
        const Y = ZT(V, A);
        Y && (V = Y.typeNode, e2(y, Y.symbols));
      }
    }
    const H = f ? N.createToken(57) : void 0, te = O.asteriskToken;
    if (Ps(O))
      return N.updateFunctionExpression(O, l, O.asteriskToken, ii(s, Ve), k, B, V, o ?? O.body);
    if (Ws(O))
      return N.updateArrowFunction(O, l, k, B, V, O.equalsGreaterThanToken, o ?? O.body);
    if (nl(O))
      return N.updateMethodDeclaration(O, l, te, s ?? N.createIdentifier(""), H, k, B, V, o);
    if (ml(O))
      return N.updateFunctionDeclaration(O, l, O.asteriskToken, ii(s, Ve), k, B, V, o ?? O.body);
  }
  function Nee(e, t, r, i, o, s, l) {
    const f = Ep(t.sourceFile, t.preferences), d = $o(t.program.getCompilerOptions()), y = Zx(t), h = t.program.getTypeChecker(), b = fr(l), { typeArguments: A, arguments: L, parent: I } = i, O = b ? void 0 : h.getContextualType(i), k = en(L, (ne) => Ve(ne) ? ne.text : Mr(ne) && Ve(ne.name) ? ne.name.text : void 0), B = b ? [] : en(L, (ne) => h.getTypeAtLocation(ne)), { argumentTypeNodes: V, argumentTypeParameters: H } = iTe(h, r, B, l, d, void 0, y), te = s ? N.createNodeArray(N.createModifiersFromModifierFlags(s)) : void 0, X = w7(I) ? N.createToken(41) : void 0, Y = b ? void 0 : sVe(h, H, A), P = Oee(L.length, k, V, void 0, b), de = b || O === void 0 ? void 0 : h.typeToTypeNode(O, l, void 0, y);
    switch (e) {
      case 171:
        return N.createMethodDeclaration(te, X, o, void 0, Y, P, de, Pee(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, x6(_.Function_not_implemented.message, f));
      default:
        D.fail("Unexpected kind");
    }
  }
  function sVe(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);
      })), l = i.size + s.length;
      for (let f = 0; i.size < l; f += 1)
        i.add(nTe(f));
    }
    return Do(i.values(), (s) => {
      var l;
      return N.createTypeParameterDeclaration(void 0, s, (l = o.get(s)) == null ? void 0 : l.constraint);
    });
  }
  function nTe(e) {
    return 84 + e <= 90 ? String.fromCharCode(84 + e) : `T${e}`;
  }
  function QB(e, t, r, i, o, s, l) {
    let f = e.typeToTypeNode(r, i, s, l);
    if (f && _g(f)) {
      const d = ZT(f, o);
      d && (e2(t, d.symbols), f = d.typeNode);
    }
    return kc(f);
  }
  function rTe(e) {
    return e.isUnionOrIntersection() ? e.types.some(rTe) : e.flags & 262144;
  }
  function iTe(e, t, r, i, o, s, l) {
    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(rTe)) {
        const O = nTe(y);
        f.push(N.createTypeReferenceNode(O)), d.set(O, void 0);
        continue;
      }
      const b = e.getBaseTypeOfLiteralType(h), A = QB(e, t, b, i, o, s, l);
      if (!A)
        continue;
      f.push(A);
      const L = aTe(h), I = h.isTypeParameter() && h.constraint && !cVe(h.constraint) ? QB(e, t, h.constraint, i, o, s, l) : void 0;
      L && d.set(L, { argumentType: h, constraint: I });
    }
    return { argumentTypeNodes: f, argumentTypeParameters: Do(d.entries()) };
  }
  function cVe(e) {
    return e.flags & 524288 && e.objectFlags === 16;
  }
  function aTe(e) {
    var t;
    if (e.flags & 3145728)
      for (const r of e.types) {
        const i = aTe(r);
        if (i)
          return i;
      }
    return e.flags & 262144 ? (t = e.getSymbol()) == null ? void 0 : t.getName() : void 0;
  }
  function Oee(e, t, r, i, o) {
    const s = [], l = /* @__PURE__ */ new Map();
    for (let f = 0; f < e; f++) {
      const d = (t == null ? void 0 : t[f]) || `arg${f}`, y = l.get(d);
      l.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 lVe(e, t, r, i, o, s, l, f, d) {
    let y = i[0], h = i[0].minArgumentCount, b = !1;
    for (const O of i)
      h = Math.min(O.minArgumentCount, h), gu(O) && (b = !0), O.parameters.length >= y.parameters.length && (!gu(O) || gu(y)) && (y = O);
    const A = y.parameters.length - (gu(y) ? 1 : 0), L = y.parameters.map((O) => O.name), I = Oee(A, L, void 0, h, !1);
    if (b) {
      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 dVe(l, o, s, void 0, I, uVe(i, e, t, r), f, d);
  }
  function uVe(e, t, r, i) {
    if (Ie(e)) {
      const o = t.getUnionType(en(e, t.getReturnTypeOfSignature));
      return t.typeToTypeNode(o, i, 1, Zx(r));
    }
  }
  function dVe(e, t, r, i, o, s, l, f) {
    return N.createMethodDeclaration(e, void 0, t, r ? N.createToken(57) : void 0, i, o, s, f || Pee(l));
  }
  function Pee(e) {
    return x6(_.Method_not_implemented.message, e);
  }
  function x6(e, t) {
    return N.createBlock([N.createThrowStatement(N.createNewExpression(N.createIdentifier("Error"), void 0, [N.createStringLiteral(e, t === 0)]))], !0);
  }
  function Mee(e, t, r) {
    const i = NI(t);
    if (!i)
      return;
    const o = Bee(i, "compilerOptions");
    if (o === void 0) {
      e.insertNodeAtObjectStart(t, i, ZB("compilerOptions", N.createObjectLiteralExpression(r.map(([l, f]) => ZB(l, f)), !0)));
      return;
    }
    const s = o.initializer;
    if (xs(s))
      for (const [l, f] of r) {
        const d = Bee(s, l);
        d === void 0 ? e.insertNodeAtObjectStart(t, s, ZB(l, f)) : e.replaceNode(t, d.initializer, f);
      }
  }
  function Fee(e, t, r, i) {
    Mee(e, t, [[r, i]]);
  }
  function ZB(e, t) {
    return N.createPropertyAssignment(N.createStringLiteral(e), t);
  }
  function Bee(e, t) {
    return cn(e.properties, (r) => Vl(r) && !!r.name && Go(r.name) && r.name.text === t);
  }
  function ZT(e, t) {
    let r;
    const i = ct(e, o, Mi);
    if (r && i)
      return { typeNode: i, symbols: r };
    function o(s) {
      if (V0(s) && s.qualifier) {
        const l = Sf(s.qualifier), f = o9(l.symbol, t), d = f !== l.text ? oTe(s.qualifier, N.createIdentifier(f)) : s.qualifier;
        r = Bn(r, l.symbol);
        const y = Xn(s.typeArguments, o, Mi);
        return N.createTypeReferenceNode(d, y);
      }
      return Gn(s, o, hg);
    }
  }
  function oTe(e, t) {
    return e.kind === 79 ? t : N.createQualifiedName(oTe(e.left, t), e.right);
  }
  function e2(e, t) {
    t.forEach((r) => e.addImportFromExportedSymbol(r, !0));
  }
  function Gee(e, t) {
    const r = eu(t);
    let i = ia(e, t.start);
    for (; i.end < r; )
      i = i.parent;
    return i;
  }
  var Uee, fVe = C({
    "src/services/codefixes/helpers.ts"() {
      Xr(), Uee = /* @__PURE__ */ ((e) => (e[e.Method = 1] = "Method", e[e.Property = 2] = "Property", e[e.All = 3] = "All", e))(Uee || {});
    }
  });
  function sTe(e, t, r, i, o, s) {
    const l = uTe(e, t, r, i);
    if (!l || Bw.isRefactorErrorInfo(l))
      return;
    const f = gr.ChangeTracker.fromContext(o), { isStatic: d, isReadonly: y, fieldName: h, accessorName: b, originalName: A, type: L, container: I, declaration: O } = l;
    Vd(h), Vd(b), Vd(O), Vd(I);
    let k, B;
    if (li(I)) {
      const H = Ru(O);
      if (Xu(e)) {
        const te = N.createModifiersFromModifierFlags(H);
        k = te, B = te;
      } else
        k = N.createModifiersFromModifierFlags(mVe(H)), B = N.createModifiersFromModifierFlags(hVe(H));
      Px(O) && (B = ma(vv(O), B));
    }
    EVe(f, e, O, L, h, B);
    const V = gVe(h, b, L, k, d, I);
    if (Vd(V), dTe(f, e, V, O, I), y) {
      const H = yh(I);
      H && TVe(f, e, H, h.text, A);
    } else {
      const H = yVe(h, b, L, k, d, I);
      Vd(H), dTe(f, e, H, O, I);
    }
    return f.getChanges();
  }
  function _Ve(e) {
    return Ve(e) || Go(e);
  }
  function pVe(e) {
    return Qd(e, e.parent) || Za(e) || Vl(e);
  }
  function cTe(e, t) {
    return Ve(t) ? N.createIdentifier(e) : N.createStringLiteral(e);
  }
  function lTe(e, t, r) {
    const i = t ? r.name : N.createThis();
    return Ve(e) ? N.createPropertyAccessExpression(i, e) : N.createElementAccessExpression(i, N.createStringLiteralFromNode(e));
  }
  function mVe(e) {
    return e &= -65, e &= -9, e & 16 || (e |= 4), e;
  }
  function hVe(e) {
    return e &= -5, e &= -17, e |= 8, e;
  }
  function uTe(e, t, r, i, o = !0) {
    const s = ia(e, r), l = r === i && o, f = rr(s.parent, pVe), d = 124;
    if (!f || !(m$(f.name, e, r, i) || l))
      return {
        error: Ro(_.Could_not_find_property_for_which_to_generate_accessor)
      };
    if (!_Ve(f.name))
      return {
        error: Ro(_.Name_is_not_valid)
      };
    if ((Ru(f) & 126975 | d) !== d)
      return {
        error: Ro(_.Can_only_convert_property_with_modifier)
      };
    const y = f.name.text, h = nQ(y), b = cTe(h ? y : KT(`_${y}`, e), f.name), A = cTe(h ? KT(y.substring(1), e) : y, f.name);
    return {
      isStatic: pl(f),
      isReadonly: JI(f),
      type: SVe(f, t),
      container: f.kind === 166 ? f.parent.parent : f.parent,
      originalName: f.name.text,
      declaration: f,
      fieldName: b,
      accessorName: A,
      renameAccessor: h
    };
  }
  function gVe(e, t, r, i, o, s) {
    return N.createGetAccessorDeclaration(i, t, [], r, N.createBlock([
      N.createReturnStatement(lTe(e, o, s))
    ], !0));
  }
  function yVe(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(lTe(e, o, s), N.createIdentifier("value")))
    ], !0));
  }
  function vVe(e, t, r, i, o, s) {
    const l = N.updatePropertyDeclaration(r, s, o, r.questionToken || r.exclamationToken, i, r.initializer);
    e.replaceNode(t, r, l);
  }
  function bVe(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 EVe(e, t, r, i, o, s) {
    Za(r) ? vVe(e, t, r, i, o, s) : Vl(r) ? bVe(e, t, r, o) : e.replaceNode(t, r, N.updateParameterDeclaration(r, s, r.dotDotDotToken, ro(o, Ve), r.questionToken, r.type, r.initializer));
  }
  function dTe(e, t, r, i, o) {
    Qd(i, i.parent) ? e.insertMemberAtStart(t, o, r) : Vl(i) ? e.insertNodeAfterComma(t, i, r) : e.insertNodeAfter(t, i, r);
  }
  function TVe(e, t, r, i, o) {
    r.body && r.body.forEachChild(function s(l) {
      cc(l) && l.expression.kind === 108 && Go(l.argumentExpression) && l.argumentExpression.text === o && tk(l) && e.replaceNode(t, l.argumentExpression, N.createStringLiteral(i)), Mr(l) && l.expression.kind === 108 && l.name.text === o && tk(l) && e.replaceNode(t, l.name, N.createIdentifier(i)), !qa(l) && !li(l) && l.forEachChild(s);
    });
  }
  function SVe(e, t) {
    const r = Nue(e);
    if (Za(e) && r && e.questionToken) {
      const i = t.getTypeChecker(), o = i.getTypeFromTypeNode(r);
      if (!i.isTypeAssignableTo(i.getUndefinedType(), o)) {
        const s = Tx(r) ? r.types : [r];
        return N.createUnionTypeNode([...s, N.createKeywordTypeNode(155)]);
      }
    }
    return r;
  }
  function Vee(e, t) {
    const r = [];
    for (; e; ) {
      const i = T1(e), o = i && t.getSymbolAtLocation(i.expression);
      if (!o)
        break;
      const s = o.flags & 2097152 ? t.getAliasedSymbol(o) : o, l = s.declarations && cn(s.declarations, li);
      if (!l)
        break;
      r.push(l), e = l;
    }
    return r;
  }
  var xVe = C({
    "src/services/codefixes/generateAccessors.ts"() {
      Xr();
    }
  });
  function AVe(e, t) {
    const r = er(t), i = VA(t), o = e.program.getCompilerOptions(), s = [];
    return s.push(fTe(e, r, t, Iy(i.name, void 0, t.moduleSpecifier, Ep(r, e.preferences)))), tu(o) === 1 && s.push(fTe(e, r, t, N.createImportEqualsDeclaration(void 0, !1, i.name, N.createExternalModuleReference(t.moduleSpecifier)))), s;
  }
  function fTe(e, t, r, i) {
    const o = gr.ChangeTracker.with(e, (s) => s.replaceNode(t, r, i));
    return Tp(jee, o, [_.Replace_import_with_0, o[0].textChanges[0].newText]);
  }
  function CVe(e) {
    const t = e.sourceFile, r = _.This_expression_is_not_callable.code === e.errorCode ? 210 : 211, i = rr(ia(t, e.span.start), (s) => s.kind === r);
    if (!i)
      return [];
    const o = i.expression;
    return _Te(e, o);
  }
  function LVe(e) {
    const t = e.sourceFile, r = rr(ia(t, e.span.start), (i) => i.getStart() === e.span.start && i.getEnd() === e.span.start + e.span.length);
    return r ? _Te(e, r) : [];
  }
  function _Te(e, t) {
    const r = e.program.getTypeChecker().getTypeAtLocation(t);
    if (!(r.symbol && Dm(r.symbol) && r.symbol.links.originatingImport))
      return [];
    const i = [], o = r.symbol.links.originatingImport;
    if (rf(o) || bi(i, AVe(e, o)), yt(t) && !(_u(t.parent) && t.parent.name === t)) {
      const s = e.sourceFile, l = gr.ChangeTracker.with(e, (f) => f.replaceNode(s, t, N.createPropertyAccessExpression(t, "default"), {}));
      i.push(Tp(jee, l, _.Use_synthetic_default_member));
    }
    return i;
  }
  var jee, IVe = C({
    "src/services/codefixes/fixInvalidImportSyntax.ts"() {
      Xr(), vo(), jee = "invalidImportSyntax", fo({
        errorCodes: [
          _.This_expression_is_not_callable.code,
          _.This_expression_is_not_constructable.code
        ],
        getCodeActions: CVe
      }), fo({
        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: LVe
      });
    }
  });
  function pTe(e, t) {
    const r = ia(e, t);
    if (Ve(r) && Za(r.parent)) {
      const i = Kl(r.parent);
      if (i)
        return { type: i, prop: r.parent, isJs: fr(r.parent) };
    }
  }
  function kVe(e, t) {
    if (t.isJs)
      return;
    const r = gr.ChangeTracker.with(e, (i) => mTe(i, e.sourceFile, t.prop));
    return to(eG, r, [_.Add_definite_assignment_assertion_to_property_0, t.prop.getText()], tG, _.Add_definite_assignment_assertions_to_all_uninitialized_properties);
  }
  function mTe(e, t, r) {
    Vd(r);
    const i = N.updatePropertyDeclaration(r, r.modifiers, r.name, N.createToken(53), r.type, r.initializer);
    e.replaceNode(t, r, i);
  }
  function wVe(e, t) {
    const r = gr.ChangeTracker.with(e, (i) => hTe(i, e.sourceFile, t));
    return to(eG, r, [_.Add_undefined_type_to_property_0, t.prop.name.getText()], nG, _.Add_undefined_type_to_all_uninitialized_properties);
  }
  function hTe(e, t, r) {
    const i = N.createKeywordTypeNode(155), o = Tx(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 DVe(e, t) {
    if (t.isJs)
      return;
    const r = e.program.getTypeChecker(), i = yTe(r, t.prop);
    if (!i)
      return;
    const o = gr.ChangeTracker.with(e, (s) => gTe(s, e.sourceFile, t.prop, i));
    return to(eG, o, [_.Add_initializer_to_property_0, t.prop.name.getText()], rG, _.Add_initializers_to_all_uninitialized_properties);
  }
  function gTe(e, t, r, i) {
    Vd(r);
    const o = N.updatePropertyDeclaration(r, r.modifiers, r.name, r.questionToken, r.type, i);
    e.replaceNode(t, r, o);
  }
  function yTe(e, t) {
    return vTe(e, e.getTypeFromTypeNode(t.type));
  }
  function vTe(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 sn(t.types, (r) => vTe(e, r));
    if (t.isClass()) {
      const r = dg(t.symbol);
      if (!r || Kr(r, 256))
        return;
      const i = yh(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 eG, tG, nG, rG, Hee, RVe = C({
    "src/services/codefixes/fixStrictClassInitialization.ts"() {
      Xr(), vo(), eG = "strictClassInitialization", tG = "addMissingPropertyDefiniteAssignmentAssertions", nG = "addMissingPropertyUndefinedType", rG = "addMissingPropertyInitializer", Hee = [_.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code], fo({
        errorCodes: Hee,
        getCodeActions: function(t) {
          const r = pTe(t.sourceFile, t.span.start);
          if (!r)
            return;
          const i = [];
          return Bn(i, wVe(t, r)), Bn(i, kVe(t, r)), Bn(i, DVe(t, r)), i;
        },
        fixIds: [tG, nG, rG],
        getAllCodeActions: (e) => Ss(e, Hee, (t, r) => {
          const i = pTe(r.file, r.start);
          if (i)
            switch (e.fixId) {
              case tG:
                mTe(t, r.file, i.prop);
                break;
              case nG:
                hTe(t, r.file, i);
                break;
              case rG:
                const o = e.program.getTypeChecker(), s = yTe(o, i.prop);
                if (!s)
                  return;
                gTe(t, r.file, i.prop, s);
                break;
              default:
                D.fail(JSON.stringify(e.fixId));
            }
        })
      });
    }
  });
  function bTe(e, t, r) {
    const { allowSyntheticDefaults: i, defaultImportName: o, namedImports: s, statement: l, required: f } = r;
    e.replaceNode(t, l, o && !i ? N.createImportEqualsDeclaration(void 0, !1, o, N.createExternalModuleReference(f)) : N.createImportDeclaration(void 0, N.createImportClause(!1, o, s), f, void 0));
  }
  function ETe(e, t, r) {
    const { parent: i } = ia(e, r);
    if (!Ed(i, !0))
      throw D.failBadSyntaxKind(i);
    const o = ro(i.parent, zi), s = ii(o.name, Ve), l = Um(o.name) ? NVe(o.name) : void 0;
    if (s || l)
      return {
        allowSyntheticDefaults: ET(t.getCompilerOptions()),
        defaultImportName: s,
        namedImports: l,
        statement: ro(o.parent.parent, cl),
        required: ss(i.arguments)
      };
  }
  function NVe(e) {
    const t = [];
    for (const r of e.elements) {
      if (!Ve(r.name) || r.initializer)
        return;
      t.push(N.createImportSpecifier(!1, ii(r.propertyName, Ve), r.name));
    }
    if (t.length)
      return N.createNamedImports(t);
  }
  var iG, Wee, OVe = C({
    "src/services/codefixes/requireInTs.ts"() {
      Xr(), vo(), iG = "requireInTs", Wee = [_.require_call_may_be_converted_to_an_import.code], fo({
        errorCodes: Wee,
        getCodeActions(e) {
          const t = ETe(e.sourceFile, e.program, e.span.start);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (i) => bTe(i, e.sourceFile, t));
          return [to(iG, r, _.Convert_require_to_import, iG, _.Convert_all_require_to_import)];
        },
        fixIds: [iG],
        getAllCodeActions: (e) => Ss(e, Wee, (t, r) => {
          const i = ETe(r.file, e.program, r.start);
          i && bTe(t, e.sourceFile, i);
        })
      });
    }
  });
  function TTe(e, t) {
    const r = ia(e, t);
    if (!Ve(r))
      return;
    const { parent: i } = r;
    if (ru(i) && jm(i.moduleReference))
      return { importNode: i, name: r, moduleSpecifier: i.moduleReference.expression };
    if (Pv(i)) {
      const o = i.parent.parent;
      return { importNode: o, name: r, moduleSpecifier: o.moduleSpecifier };
    }
  }
  function STe(e, t, r, i) {
    e.replaceNode(t, r.importNode, Iy(r.name, void 0, r.moduleSpecifier, Ep(t, i)));
  }
  var aG, zee, PVe = C({
    "src/services/codefixes/useDefaultImport.ts"() {
      Xr(), vo(), aG = "useDefaultImport", zee = [_.Import_may_be_converted_to_a_default_import.code], fo({
        errorCodes: zee,
        getCodeActions(e) {
          const { sourceFile: t, span: { start: r } } = e, i = TTe(t, r);
          if (!i)
            return;
          const o = gr.ChangeTracker.with(e, (s) => STe(s, t, i, e.preferences));
          return [to(aG, o, _.Convert_to_default_import, aG, _.Convert_all_to_default_imports)];
        },
        fixIds: [aG],
        getAllCodeActions: (e) => Ss(e, zee, (t, r) => {
          const i = TTe(r.file, r.start);
          i && STe(t, r.file, i, e.preferences);
        })
      });
    }
  });
  function xTe(e, t, r) {
    const i = ii(ia(t, r.start), h_);
    if (!i)
      return;
    const o = i.getText(t) + "n";
    e.replaceNode(t, i, N.createBigIntLiteral(o));
  }
  var oG, qee, MVe = C({
    "src/services/codefixes/useBigintLiteral.ts"() {
      Xr(), vo(), oG = "useBigintLiteral", qee = [
        _.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers.code
      ], fo({
        errorCodes: qee,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => xTe(i, t.sourceFile, t.span));
          if (r.length > 0)
            return [to(oG, r, _.Convert_to_a_bigint_numeric_literal, oG, _.Convert_all_to_bigint_numeric_literals)];
        },
        fixIds: [oG],
        getAllCodeActions: (e) => Ss(e, qee, (t, r) => xTe(t, r.file, r))
      });
    }
  });
  function ATe(e, t) {
    const r = ia(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 CTe(e, t, r) {
    const i = N.updateImportTypeNode(r, r.argument, r.assertions, r.qualifier, r.typeArguments, !0);
    e.replaceNode(t, r, i);
  }
  var LTe, sG, Jee, FVe = C({
    "src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts"() {
      Xr(), vo(), LTe = "fixAddModuleReferTypeMissingTypeof", sG = LTe, Jee = [_.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code], fo({
        errorCodes: Jee,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = ATe(r, i.start), s = gr.ChangeTracker.with(t, (l) => CTe(l, r, o));
          return [to(sG, s, _.Add_missing_typeof, sG, _.Add_missing_typeof)];
        },
        fixIds: [sG],
        getAllCodeActions: (e) => Ss(e, Jee, (t, r) => CTe(t, e.sourceFile, ATe(r.file, r.start)))
      });
    }
  });
  function ITe(e, t) {
    let o = ia(e, t).parent.parent;
    if (!(!br(o) && (o = o.parent, !br(o))) && xc(o.operatorToken))
      return o;
  }
  function kTe(e, t, r) {
    const i = BVe(r);
    i && e.replaceNode(t, r, N.createJsxFragment(N.createJsxOpeningFragment(), i, N.createJsxJsxClosingFragment()));
  }
  function BVe(e) {
    const t = [];
    let r = e;
    for (; ; )
      if (br(r) && xc(r.operatorToken) && r.operatorToken.kind === 27) {
        if (t.push(r.left), JR(r.right))
          return t.push(r.right), t;
        if (br(r.right)) {
          r = r.right;
          continue;
        } else
          return;
      } else
        return;
  }
  var cG, Kee, GVe = C({
    "src/services/codefixes/wrapJsxInFragment.ts"() {
      Xr(), vo(), cG = "wrapJsxInFragment", Kee = [_.JSX_expressions_must_have_one_parent_element.code], fo({
        errorCodes: Kee,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = ITe(r, i.start);
          if (!o)
            return;
          const s = gr.ChangeTracker.with(t, (l) => kTe(l, r, o));
          return [to(cG, s, _.Wrap_in_JSX_fragment, cG, _.Wrap_all_unparented_JSX_in_JSX_fragment)];
        },
        fixIds: [cG],
        getAllCodeActions: (e) => Ss(e, Kee, (t, r) => {
          const i = ITe(e.sourceFile, r.start);
          i && kTe(t, e.sourceFile, i);
        })
      });
    }
  });
  function wTe(e, t) {
    const r = ia(e, t), i = ii(r.parent.parent, Ex);
    if (!i)
      return;
    const o = Qu(i.parent) ? i.parent : ii(i.parent.parent, Qp);
    if (o)
      return { indexSignature: i, container: o };
  }
  function UVe(e, t) {
    return N.createTypeAliasDeclaration(e.modifiers, e.name, e.typeParameters, t);
  }
  function DTe(e, t, { indexSignature: r, container: i }) {
    const s = (Qu(i) ? i.members : i.type.members).filter((h) => !Ex(h)), l = ss(r.parameters), f = N.createTypeParameterDeclaration(void 0, ro(l.name, Ve), l.type), d = N.createMappedTypeNode(JI(r) ? N.createModifier(146) : void 0, f, void 0, r.questionToken, r.type, void 0), y = N.createIntersectionTypeNode([
      ...GI(i),
      d,
      ...s.length ? [N.createTypeLiteralNode(s)] : rt
    ]);
    e.replaceNode(t, i, UVe(i, y));
  }
  var lG, Xee, VVe = C({
    "src/services/codefixes/convertToMappedObjectType.ts"() {
      Xr(), vo(), lG = "fixConvertToMappedObjectType", Xee = [_.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code], fo({
        errorCodes: Xee,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i } = t, o = wTe(r, i.start);
          if (!o)
            return;
          const s = gr.ChangeTracker.with(t, (f) => DTe(f, r, o)), l = Pr(o.container.name);
          return [to(lG, s, [_.Convert_0_to_mapped_object_type, l], lG, [_.Convert_0_to_mapped_object_type, l])];
        },
        fixIds: [lG],
        getAllCodeActions: (e) => Ss(e, Xee, (t, r) => {
          const i = wTe(r.file, r.start);
          i && DTe(t, r.file, i);
        })
      });
    }
  }), Yee, RTe, jVe = C({
    "src/services/codefixes/removeAccidentalCallParentheses.ts"() {
      Xr(), vo(), Yee = "removeAccidentalCallParentheses", RTe = [
        _.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code
      ], fo({
        errorCodes: RTe,
        getCodeActions(e) {
          const t = rr(ia(e.sourceFile, e.span.start), eo);
          if (!t)
            return;
          const r = gr.ChangeTracker.with(e, (i) => {
            i.deleteRange(e.sourceFile, { pos: t.expression.end, end: t.end });
          });
          return [Tp(Yee, r, _.Remove_parentheses)];
        },
        fixIds: [Yee]
      });
    }
  });
  function NTe(e, t, r) {
    const i = ii(ia(t, r.start), (f) => f.kind === 133), o = i && ii(i.parent, vC);
    if (!o)
      return;
    let s = o;
    if (Fd(o.parent)) {
      const f = rk(o.expression, !1);
      if (Ve(f)) {
        const d = Sl(o.parent.pos, t);
        d && d.kind !== 103 && (s = o.parent);
      }
    }
    e.replaceNode(t, s, o.expression);
  }
  var uG, $ee, HVe = C({
    "src/services/codefixes/removeUnnecessaryAwait.ts"() {
      Xr(), vo(), uG = "removeUnnecessaryAwait", $ee = [
        _.await_has_no_effect_on_the_type_of_this_expression.code
      ], fo({
        errorCodes: $ee,
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => NTe(i, t.sourceFile, t.span));
          if (r.length > 0)
            return [to(uG, r, _.Remove_unnecessary_await, uG, _.Remove_all_unnecessary_uses_of_await)];
        },
        fixIds: [uG],
        getAllCodeActions: (e) => Ss(e, $ee, (t, r) => NTe(t, r.file, r))
      });
    }
  });
  function OTe(e, t) {
    return rr(ia(e, t.start), Ul);
  }
  function PTe(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 Qee, dG, WVe = C({
    "src/services/codefixes/splitTypeOnlyImport.ts"() {
      Xr(), vo(), Qee = [_.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code], dG = "splitTypeOnlyImport", fo({
        errorCodes: Qee,
        fixIds: [dG],
        getCodeActions: function(t) {
          const r = gr.ChangeTracker.with(t, (i) => PTe(i, OTe(t.sourceFile, t.span), t));
          if (r.length)
            return [to(dG, r, _.Split_into_two_separate_import_declarations, dG, _.Split_all_invalid_type_only_imports)];
        },
        getAllCodeActions: (e) => Ss(e, Qee, (t, r) => {
          PTe(t, OTe(e.sourceFile, r), e);
        })
      });
    }
  });
  function MTe(e, t, r) {
    var i;
    const s = r.getTypeChecker().getSymbolAtLocation(ia(e, t));
    if (s === void 0)
      return;
    const l = ii((i = s == null ? void 0 : s.valueDeclaration) == null ? void 0 : i.parent, Mu);
    if (l === void 0)
      return;
    const f = gs(l, 85, e);
    if (f !== void 0)
      return { symbol: s, token: f };
  }
  function FTe(e, t, r) {
    e.replaceNode(t, r, N.createToken(119));
  }
  var fG, Zee, zVe = C({
    "src/services/codefixes/convertConstToLet.ts"() {
      Xr(), vo(), fG = "fixConvertConstToLet", Zee = [_.Cannot_assign_to_0_because_it_is_a_constant.code], fo({
        errorCodes: Zee,
        getCodeActions: function(t) {
          const { sourceFile: r, span: i, program: o } = t, s = MTe(r, i.start, o);
          if (s === void 0)
            return;
          const l = gr.ChangeTracker.with(t, (f) => FTe(f, r, s.token));
          return [nZ(fG, l, _.Convert_const_to_let, fG, _.Convert_all_const_to_let)];
        },
        getAllCodeActions: (e) => {
          const { program: t } = e, r = /* @__PURE__ */ new Map();
          return Yx(gr.ChangeTracker.with(e, (i) => {
            $x(e, Zee, (o) => {
              const s = MTe(o.file, o.start, t);
              if (s && hp(r, yo(s.symbol)))
                return FTe(i, o.file, s.token);
            });
          }));
        },
        fixIds: [fG]
      });
    }
  });
  function BTe(e, t, r) {
    const i = ia(e, t);
    return i.kind === 26 && i.parent && (xs(i.parent) || Ou(i.parent)) ? { node: i } : void 0;
  }
  function GTe(e, t, { node: r }) {
    const i = N.createToken(27);
    e.replaceNode(t, r, i);
  }
  var _G, UTe, ete, qVe = C({
    "src/services/codefixes/fixExpectedComma.ts"() {
      Xr(), vo(), _G = "fixExpectedComma", UTe = _._0_expected.code, ete = [UTe], fo({
        errorCodes: ete,
        getCodeActions(e) {
          const { sourceFile: t } = e, r = BTe(t, e.span.start, e.errorCode);
          if (!r)
            return;
          const i = gr.ChangeTracker.with(e, (o) => GTe(o, t, r));
          return [to(_G, i, [_.Change_0_to_1, ";", ","], _G, [_.Change_0_to_1, ";", ","])];
        },
        fixIds: [_G],
        getAllCodeActions: (e) => Ss(e, ete, (t, r) => {
          const i = BTe(r.file, r.start, r.code);
          i && GTe(t, e.sourceFile, i);
        })
      });
    }
  });
  function VTe(e, t, r, i, o) {
    const s = ia(t, r.start);
    if (!Ve(s) || !eo(s.parent) || s.parent.expression !== s || s.parent.arguments.length !== 0)
      return;
    const l = i.getTypeChecker(), f = l.getSymbolAtLocation(s), d = f == null ? void 0 : f.valueDeclaration;
    if (!d || !Oa(d) || !R1(d.parent.parent) || o != null && o.has(d))
      return;
    o == null || o.add(d);
    const y = JVe(d.parent.parent);
    if (kt(y)) {
      const h = y[0], b = !Tx(h) && !Sx(h) && Sx(N.createUnionTypeNode([h, N.createKeywordTypeNode(114)]).types[0]);
      b && e.insertText(t, h.pos, "("), e.insertText(t, h.end, b ? ") | void" : " | void");
    } else {
      const h = l.getResolvedSignature(s.parent), b = h == null ? void 0 : h.parameters[0], A = b && l.getTypeOfSymbolAtLocation(b, d.parent.parent);
      fr(d) ? (!A || A.flags & 3) && (e.insertText(t, d.parent.parent.end, ")"), e.insertText(t, zo(t.text, d.parent.parent.pos), "/** @type {Promise<void>} */(")) : (!A || A.flags & 2) && e.insertText(t, d.parent.parent.expression.end, "<void>");
    }
  }
  function JVe(e) {
    var t;
    if (fr(e)) {
      if (Fd(e.parent)) {
        const r = (t = d1(e.parent)) == null ? void 0 : t.typeExpression.type;
        if (r && W_(r) && Ve(r.typeName) && Pr(r.typeName) === "Promise")
          return r.typeArguments;
      }
    } else
      return e.typeArguments;
  }
  var jTe, tte, nte, KVe = C({
    "src/services/codefixes/fixAddVoidToPromise.ts"() {
      Xr(), vo(), jTe = "addVoidToPromise", tte = "addVoidToPromise", nte = [
        _.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
      ], fo({
        errorCodes: nte,
        fixIds: [tte],
        getCodeActions(e) {
          const t = gr.ChangeTracker.with(e, (r) => VTe(r, e.sourceFile, e.span, e.program));
          if (t.length > 0)
            return [to(jTe, t, _.Add_void_to_Promise_resolved_without_a_value, tte, _.Add_void_to_all_Promises_resolved_without_a_value)];
        },
        getAllCodeActions(e) {
          return Ss(e, nte, (t, r) => VTe(t, r.file, r, e.program, /* @__PURE__ */ new Set()));
        }
      });
    }
  }), Gu = {};
  le(Gu, {
    PreserveOptionalFlags: () => Uee,
    addNewNodeForMemberSymbol: () => tTe,
    codeFixAll: () => Ss,
    createCodeFixAction: () => to,
    createCodeFixActionMaybeFixAll: () => nZ,
    createCodeFixActionWithoutFixAll: () => Tp,
    createCombinedCodeActions: () => Yx,
    createFileTextChanges: () => ube,
    createImportAdder: () => $T,
    createImportSpecifierResolver: () => lGe,
    createJsonPropertyAssignment: () => ZB,
    createMissingMemberNodes: () => Ree,
    createSignatureDeclarationFromCallExpression: () => Nee,
    createSignatureDeclarationFromSignature: () => $B,
    createStubbedBody: () => x6,
    eachDiagnostic: () => $x,
    findAncestorMatchingSpan: () => Gee,
    findJsonProperty: () => Bee,
    generateAccessorFromProperty: () => sTe,
    getAccessorConvertiblePropertyAtPosition: () => uTe,
    getAllFixes: () => q9e,
    getAllSupers: () => Vee,
    getArgumentTypesAndTypeParameters: () => iTe,
    getFixes: () => z9e,
    getImportCompletionAction: () => uGe,
    getImportKind: () => kZ,
    getNoopSymbolTrackerWithResolver: () => Zx,
    getPromoteTypeOnlyCompletionAction: () => dGe,
    getSupportedErrorCodes: () => H9e,
    importFixName: () => PZ,
    importSymbols: () => e2,
    moduleSpecifierToValidIdentifier: () => OZ,
    moduleSymbolToValidIdentifier: () => NZ,
    parameterShouldGetTypeFromJSDoc: () => kbe,
    registerCodeFix: () => fo,
    setJsonCompilerOptionValue: () => Fee,
    setJsonCompilerOptionValues: () => Mee,
    tryGetAutoImportableReferenceFromTypeNode: () => ZT,
    typeToAutoImportableTypeNode: () => QB
  });
  var vo = C({
    "src/services/_namespaces/ts.codefix.ts"() {
      J9e(), K9e(), X9e(), Q9e(), rBe(), sBe(), cBe(), lBe(), uBe(), pBe(), xBe(), CBe(), FBe(), tGe(), nGe(), iGe(), aGe(), oGe(), cGe(), DGe(), OGe(), FGe(), BGe(), GGe(), jGe(), zGe(), KGe(), ZGe(), lUe(), dUe(), fUe(), pUe(), mUe(), hUe(), gUe(), vUe(), bUe(), EUe(), TUe(), SUe(), AUe(), IUe(), RUe(), UUe(), jUe(), HUe(), qUe(), JUe(), XUe(), YUe(), iVe(), aVe(), oVe(), fVe(), xVe(), IVe(), RVe(), OVe(), PVe(), MVe(), FVe(), GVe(), VVe(), jVe(), HVe(), WVe(), zVe(), qVe(), KVe();
    }
  });
  function XVe(e) {
    return !!(e.kind & 1);
  }
  function YVe(e) {
    return !!(e.kind & 2);
  }
  function A6(e) {
    return !!(e && e.kind & 4);
  }
  function eL(e) {
    return !!(e && e.kind === 32);
  }
  function $Ve(e) {
    return A6(e) || eL(e) || rte(e);
  }
  function QVe(e) {
    return (A6(e) || eL(e)) && !!e.isFromPackageJson;
  }
  function ZVe(e) {
    return !!(e.kind & 8);
  }
  function eje(e) {
    return !!(e.kind & 16);
  }
  function HTe(e) {
    return !!(e && e.kind & 64);
  }
  function WTe(e) {
    return !!(e && e.kind & 128);
  }
  function tje(e) {
    return !!(e && e.kind & 256);
  }
  function rte(e) {
    return !!(e && e.kind & 512);
  }
  function zTe(e, t, r, i, o, s, l, f, d) {
    var y, h, b;
    const A = rc(), L = l || fx(yc(i.getCompilerOptions()));
    let I = !1, O = 0, k = 0, B = 0, V = 0;
    const H = d({
      tryResolve: X,
      skippedAny: () => I,
      resolvedAny: () => k > 0,
      resolvedBeyondLimit: () => k > TG
    }), te = V ? ` (${(B / V * 100).toFixed(1)}% hit rate)` : "";
    return (y = t.log) == null || y.call(t, `${e}: resolved ${k} module specifiers, plus ${O} ambient and ${B} from cache${te}`), (h = t.log) == null || h.call(t, `${e}: response is ${I ? "incomplete" : "complete"}`), (b = t.log) == null || b.call(t, `${e}: ${rc() - A}`), H;
    function X(Y, P) {
      if (P) {
        const ie = r.getModuleSpecifierForBestExportInfo(Y, o, f);
        return ie && O++, ie || "failed";
      }
      const de = L || s.allowIncompleteCompletions && k < TG, ne = !de && s.allowIncompleteCompletions && V < pte, ye = de || ne ? r.getModuleSpecifierForBestExportInfo(Y, o, f, ne) : void 0;
      return (!de && !ne || ne && !ye) && (I = !0), k += (ye == null ? void 0 : ye.computedWithoutCacheCount) || 0, B += Y.length - ((ye == null ? void 0 : ye.computedWithoutCacheCount) || 0), ne && V++, ye || (L ? "failed" : "skipped");
    }
  }
  function nje(e, t, r, i, o, s, l, f, d, y, h = !1) {
    var b;
    const { previousToken: A } = hG(o, i);
    if (l && !qT(i, o, A) && !Mje(i, l, A, o))
      return;
    if (l === " ")
      return s.includeCompletionsForImportStatements && s.includeCompletionsWithInsertText ? { isGlobalCompletion: !0, isMemberCompletion: !1, isNewIdentifierLocation: !0, isIncomplete: !0, entries: [] } : void 0;
    const L = t.getCompilerOptions(), I = s.allowIncompleteCompletions ? (b = e.getIncompleteCompletionsCache) == null ? void 0 : b.call(e) : void 0;
    if (I && f === 3 && A && Ve(A)) {
      const B = rje(I, i, A, t, e, s, d, o);
      if (B)
        return B;
    } else
      I == null || I.clear();
    const O = SG.getStringLiteralCompletions(i, o, A, L, e, t, r, s, h);
    if (O)
      return O;
    if (A && EI(A.parent) && (A.kind === 81 || A.kind === 86 || A.kind === 79))
      return Eje(A.parent);
    const k = tSe(t, r, i, L, o, s, void 0, e, y, d);
    if (k)
      switch (k.kind) {
        case 0:
          const B = sje(i, e, t, L, r, k, s, y, o, h);
          return B != null && B.isIncomplete && (I == null || I.set(B)), B;
        case 1:
          return ite(sb.getJSDocTagNameCompletions());
        case 2:
          return ite(sb.getJSDocTagCompletions());
        case 3:
          return ite(sb.getJSDocParameterNameCompletions(k.tag));
        case 4:
          return aje(k.keywordCompletions, k.isNewIdentifierLocation);
        default:
          return D.assertNever(k);
      }
  }
  function C6(e, t) {
    var r, i;
    let o = sR(e.sortText, t.sortText);
    return o === 0 && (o = sR(e.name, t.name)), o === 0 && ((r = e.data) != null && r.moduleSpecifier) && ((i = t.data) != null && i.moduleSpecifier) && (o = $N(e.data.moduleSpecifier, t.data.moduleSpecifier)), o === 0 ? -1 : o;
  }
  function qTe(e) {
    return !!(e != null && e.moduleSpecifier);
  }
  function rje(e, t, r, i, o, s, l, f) {
    const d = e.get();
    if (!d)
      return;
    const y = Lf(t, f), h = r.text.toLowerCase(), b = c6(t, o, i, s, l), A = zTe("continuePreviousIncompleteResponse", o, Gu.createImportSpecifierResolver(t, i, o, s), i, r.getStart(), s, !1, px(r), (L) => {
      const I = fa(d.entries, (O) => {
        var k;
        if (!O.hasAction || !O.source || !O.data || qTe(O.data))
          return O;
        if (!pSe(O.name, h))
          return;
        const { origin: B } = D.checkDefined(nSe(O.name, O.data, i, o)), V = b.get(t.path, O.data.exportMapKey), H = V && L.tryResolve(V, !Pl(G_(B.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 = {
          ...B,
          kind: 32,
          moduleSpecifier: H.moduleSpecifier
        };
        return O.data = QTe(te), O.source = ste(te), O.sourceDisplay = [If(te.moduleSpecifier)], O;
      });
      return L.skippedAny() || (d.isIncomplete = void 0), I;
    });
    return d.entries = A, d.flags = (d.flags || 0) | 4, d.optionalReplacementSpan = KTe(y), d;
  }
  function ite(e) {
    return { isGlobalCompletion: !1, isMemberCompletion: !1, isNewIdentifierLocation: !1, entries: e };
  }
  function ije(e) {
    return {
      name: ho(e),
      kind: "keyword",
      kindModifiers: "",
      sortText: iu.GlobalsOrKeywords
    };
  }
  function aje(e, t) {
    return {
      isGlobalCompletion: !1,
      isMemberCompletion: !1,
      isNewIdentifierLocation: t,
      entries: e.slice()
    };
  }
  function JTe(e, t, r) {
    return {
      kind: 4,
      keywordCompletions: rSe(e, t),
      isNewIdentifierLocation: r
    };
  }
  function oje(e) {
    switch (e) {
      case 154:
        return 8;
      default:
        D.fail("Unknown mapping from SyntaxKind to KeywordCompletionFilters");
    }
  }
  function KTe(e) {
    return (e == null ? void 0 : e.kind) === 79 ? Zu(e) : void 0;
  }
  function sje(e, t, r, i, o, s, l, f, d, y) {
    const {
      symbols: h,
      contextToken: b,
      completionKind: A,
      isInSnippetScope: L,
      isNewIdentifierLocation: I,
      location: O,
      propertyAccessToConvert: k,
      keywordFilters: B,
      symbolToOriginInfoMap: V,
      recommendedCompletion: H,
      isJsxInitializer: te,
      isTypeOnlyLocation: X,
      isJsxIdentifierExpected: Y,
      isRightOfOpenTag: P,
      isRightOfDotOrQuestionDot: de,
      importStatementCompletion: ne,
      insideJsDocTagTypeExpression: ye,
      symbolToSortTextMap: ie,
      hasUnresolvedAutoImports: W
    } = s;
    let ce = s.literals;
    const pe = r.getTypeChecker();
    if (WN(e.scriptKind) === 1) {
      const Be = lje(O, e);
      if (Be)
        return Be;
    }
    const ve = rr(b, Dk);
    if (ve && (Rfe(b) || mT(b, ve.expression))) {
      const Be = u9(pe, ve.parent.clauses);
      ce = ce.filter((We) => !Be.hasValue(We)), h.forEach((We, Oe) => {
        if (We.valueDeclaration && P1(We.valueDeclaration)) {
          const Me = pe.getConstantValue(We.valueDeclaration);
          Me !== void 0 && Be.hasValue(Me) && (V[Oe] = { kind: 256 });
        }
      });
    }
    const Te = cj(), ee = XTe(e, i);
    if (ee && !I && (!h || h.length === 0) && B === 0)
      return;
    const $e = cte(h, Te, void 0, b, O, d, e, t, r, $o(i), o, A, l, i, f, X, k, Y, te, ne, H, V, ie, Y, P, y);
    if (B !== 0)
      for (const Be of rSe(B, !ye && Xu(e)))
        (X && lw(ZE(Be.name)) || !$e.has(Be.name)) && ($e.add(Be.name), _v(Te, Be, C6, !0));
    for (const Be of Dje(b, d))
      $e.has(Be.name) || ($e.add(Be.name), _v(Te, Be, C6, !0));
    for (const Be of ce) {
      const We = dje(e, l, Be);
      $e.add(We.name), _v(Te, We, C6, !0);
    }
    ee || uje(e, O.pos, $e, $o(i), Te);
    let Ue;
    if (l.includeCompletionsWithInsertText && b && !P && !de && (Ue = rr(b, IO))) {
      const Be = YTe(Ue, e, l, i, t, r, f);
      Be && Te.push(Be.entry);
    }
    return {
      flags: s.flags,
      isGlobalCompletion: L,
      isIncomplete: l.allowIncompleteCompletions && W ? !0 : void 0,
      isMemberCompletion: cje(A),
      isNewIdentifierLocation: I,
      optionalReplacementSpan: KTe(O),
      entries: Te
    };
  }
  function XTe(e, t) {
    return !Xu(e) || !!tO(e, t);
  }
  function YTe(e, t, r, i, o, s, l) {
    const f = e.clauses, d = s.getTypeChecker(), y = d.getTypeAtLocation(e.parent.expression);
    if (y && y.isUnion() && Rn(y.types, (h) => h.isLiteral())) {
      const h = u9(d, f), b = $o(i), A = Ep(t, r), L = Gu.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 = Gu.typeToAutoImportableTypeNode(d, L, X, e, b);
          if (!P)
            return;
          const de = pG(P, b, 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 = en(I, (X) => N.createCaseClause(X, [])), k = rb(o, l == null ? void 0 : l.options), B = ote({
        removeComments: !0,
        module: i.module,
        target: i.target,
        newLine: s6(k)
      }), V = l ? (X) => B.printAndFormatNode(4, X, t, l) : (X) => B.printNode(4, X, t), H = en(O, (X, Y) => r.includeCompletionsWithSnippetText ? `${V(X)}$${Y + 1}` : `${V(X)}`).join(k);
      return {
        entry: {
          name: `${B.printNode(4, O[0], t)} ...`,
          kind: "",
          sortText: iu.GlobalsOrKeywords,
          insertText: H,
          hasAction: L.hasFixes() || void 0,
          source: "SwitchCases/",
          isSnippet: r.includeCompletionsWithSnippetText ? !0 : void 0
        },
        importAdder: L
      };
    }
  }
  function pG(e, t, r) {
    switch (e.kind) {
      case 180:
        const i = e.typeName;
        return mG(i, t, r);
      case 196:
        const o = pG(e.objectType, t, r), s = pG(e.indexType, t, r);
        return o && s && N.createElementAccessExpression(o, s);
      case 198:
        const l = e.literal;
        switch (l.kind) {
          case 10:
            return N.createStringLiteral(l.text, r === 0);
          case 8:
            return N.createNumericLiteral(l.text, l.numericLiteralFlags);
        }
        return;
      case 193:
        const f = pG(e.type, t, r);
        return f && (Ve(f) ? f : N.createParenthesizedExpression(f));
      case 183:
        return mG(e.exprName, t, r);
      case 202:
        D.fail("We should not get an import type after calling 'codefix.typeToAutoImportableTypeNode'.");
    }
  }
  function mG(e, t, r) {
    if (Ve(e))
      return e;
    const i = ta(e.right.escapedText);
    return mq(i, t) ? N.createPropertyAccessExpression(mG(e.left, t, r), i) : N.createElementAccessExpression(mG(e.left, t, r), N.createStringLiteral(i, r === 0));
  }
  function cje(e) {
    switch (e) {
      case 0:
      case 3:
      case 2:
        return !0;
      default:
        return !1;
    }
  }
  function lje(e, t) {
    const r = rr(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 = !!gs(r, 31, t), l = r.parent.openingElement.tagName.getText(t) + (i ? "" : ">"), f = Zu(r.tagName), d = {
        name: l,
        kind: "class",
        kindModifiers: void 0,
        sortText: iu.LocationPriority
      };
      return { isGlobalCompletion: !1, isMemberCompletion: !0, isNewIdentifierLocation: !1, optionalReplacementSpan: f, entries: [d] };
    }
  }
  function uje(e, t, r, i, o) {
    UQ(e).forEach((s, l) => {
      if (s === t)
        return;
      const f = ta(l);
      !r.has(f) && N_(f, i) && (r.add(f), _v(o, {
        name: f,
        kind: "warning",
        kindModifiers: "",
        sortText: iu.JavascriptIdentifiers,
        isFromUncheckedFile: !0
      }, C6));
    });
  }
  function ate(e, t, r) {
    return typeof r == "object" ? k1(r) + "n" : Ua(r) ? _w(e, t, r) : JSON.stringify(r);
  }
  function dje(e, t, r) {
    return { name: ate(e, t, r), kind: "string", kindModifiers: "", sortText: iu.LocationPriority };
  }
  function fje(e, t, r, i, o, s, l, f, d, y, h, b, A, L, I, O, k, B, V, H, te, X, Y, P) {
    let de, ne = C$(r), ye, ie, W = ste(b), ce, pe, ve;
    const Te = d.getTypeChecker(), ee = b && eje(b), $e = b && YVe(b) || h;
    if (b && XVe(b))
      de = h ? `this${ee ? "?." : ""}[${ZTe(l, V, y)}]` : `this${ee ? "?." : "."}${y}`;
    else if (($e || ee) && L) {
      de = $e ? h ? `[${ZTe(l, V, y)}]` : `[${y}]` : y, (ee || L.questionDotToken) && (de = `?.${de}`);
      const Ue = gs(L, 24, l) || gs(L, 28, l);
      if (!Ue)
        return;
      const Be = ba(y, L.name.text) ? L.name.end : Ue.end;
      ne = _l(Ue.getStart(l), Be);
    }
    if (I && (de === void 0 && (de = y), de = `{${de}}`, typeof I != "boolean" && (ne = Zu(I, l))), b && ZVe(b) && L) {
      de === void 0 && (de = y);
      const Ue = Sl(L.pos, l);
      let Be = "";
      Ue && QF(Ue.end, Ue.parent, l) && (Be = ";"), Be += `(await ${L.expression.getText()})`, de = h ? `${Be}${de}` : `${Be}${ee ? "?." : "."}${de}`;
      const Oe = ii(L.parent, vC) ? L.parent : L.expression;
      ne = _l(Oe.getStart(l), L.end);
    }
    if (eL(b) && (ce = [If(b.moduleSpecifier)], O && ({ insertText: de, replacementSpan: ne } = vje(y, O, b, k, l, B, V), ie = V.includeCompletionsWithSnippetText ? !0 : void 0)), (b == null ? void 0 : b.kind) === 64 && (pe = !0), V.includeCompletionsWithClassMemberSnippets && V.includeCompletionsWithInsertText && H === 3 && _je(e, o, l)) {
      let Ue;
      ({ insertText: de, isSnippet: ie, importAdder: Ue, replacementSpan: ne } = $Te(f, d, B, V, y, e, o, s, i, te)), t = iu.ClassMemberSnippets, Ue != null && Ue.hasFixes() && (pe = !0, W = "ClassMemberSnippet/");
    }
    if (b && WTe(b) && ({ insertText: de, isSnippet: ie, labelDetails: ve } = b, V.useLabelDetailsInCompletionEntries || (y = y + ve.detail, ve = void 0), W = "ObjectLiteralMethodSnippet/", t = iu.SortBelow(t)), X && !Y && V.includeCompletionsWithSnippetText && V.jsxAttributeCompletionStyle && V.jsxAttributeCompletionStyle !== "none" && !(em(o.parent) && o.parent.initializer)) {
      let Ue = V.jsxAttributeCompletionStyle === "braces";
      const Be = Te.getTypeOfSymbolAtLocation(e, o);
      V.jsxAttributeCompletionStyle === "auto" && !(Be.flags & 528) && !(Be.flags & 1048576 && cn(Be.types, (We) => !!(We.flags & 528))) && (Be.flags & 402653316 || Be.flags & 1048576 && Rn(Be.types, (We) => !!(We.flags & 402686084 || Dye(We))) ? (de = `${ST(y)}=${_w(l, V, "$1")}`, ie = !0) : Ue = !0), Ue && (de = `${ST(y)}={$1}`, ie = !0);
    }
    if (!(de !== void 0 && !V.includeCompletionsWithInsertText))
      return (A6(b) || eL(b)) && (ye = QTe(b), pe = !O), {
        name: y,
        kind: wy.getSymbolKind(Te, e, o),
        kindModifiers: wy.getSymbolModifiers(Te, e),
        sortText: t,
        source: W,
        hasAction: pe ? !0 : void 0,
        isRecommended: bje(e, A, Te) || void 0,
        insertText: de,
        replacementSpan: ne,
        sourceDisplay: ce,
        labelDetails: ve,
        isSnippet: ie,
        isPackageJsonImport: QVe(b) || void 0,
        isImportStatementCompletion: !!O || void 0,
        data: ye,
        ...P ? { symbol: e } : void 0
      };
  }
  function _je(e, t, r) {
    if (fr(t))
      return !1;
    const i = 106500;
    return !!(e.flags & i) && (li(t) || t.parent && t.parent.parent && Ml(t.parent) && t === t.parent.name && t.parent.getLastToken(r) === t.parent.name && li(t.parent.parent) || t.parent && AC(t) && li(t.parent));
  }
  function $Te(e, t, r, i, o, s, l, f, d, y) {
    const h = rr(l, li);
    if (!h)
      return { insertText: o };
    let b, A, L = o;
    const I = t.getTypeChecker(), O = l.getSourceFile(), k = ote({
      removeComments: !0,
      module: r.module,
      target: r.target,
      omitTrailingSemicolon: !1,
      newLine: s6(rb(e, y == null ? void 0 : y.options))
    }), B = Gu.createImportAdder(O, t, i, e);
    let V;
    if (i.includeCompletionsWithSnippetText) {
      b = !0;
      const de = N.createEmptyStatement();
      V = N.createBlock([de], !0), Jq(de, { kind: 0, order: 0 });
    } else
      V = N.createBlock([], !0);
    let H = 0;
    const { modifiers: te, span: X } = pje(d, O, f), Y = !!(te & 256), P = [];
    return Gu.addNewNodeForMemberSymbol(s, h, O, { program: t, host: e }, i, B, (de) => {
      let ne = 0;
      Y && (ne |= 256), Ml(de) && I.getMemberOverrideModifierStatus(h, de, s) === 1 && (ne |= 16384), P.length || (H = de.modifierFlagsCache | ne | te), de = N.updateModifiers(de, H), P.push(de);
    }, V, Gu.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: b, importAdder: B, replacementSpan: A };
  }
  function pje(e, t, r) {
    if (!e || ac(t, r).line > ac(t, e.getEnd()).line)
      return { modifiers: 0 };
    let i = 0, o, s;
    return (s = mje(e)) && (i |= lx(s), o = Zu(e)), Za(e.parent) && (i |= Mm(e.parent.modifiers) & 126975, o = Zu(e.parent)), { modifiers: i, span: o };
  }
  function mje(e) {
    if (lo(e))
      return e.kind;
    if (Ve(e)) {
      const t = G0(e);
      if (t && dy(t))
        return t;
    }
  }
  function hje(e, t, r, i, o, s, l, f) {
    const d = l.includeCompletionsWithSnippetText || void 0;
    let y = t;
    const h = r.getSourceFile(), b = gje(e, r, h, i, o, l);
    if (!b)
      return;
    const A = ote({
      removeComments: !0,
      module: s.module,
      target: s.target,
      omitTrailingSemicolon: !1,
      newLine: s6(rb(o, f == null ? void 0 : f.options))
    });
    f ? y = A.printAndFormatSnippetList(80, N.createNodeArray([b], !0), h, f) : y = A.printSnippetList(80, N.createNodeArray([b], !0), h);
    const L = H1({
      removeComments: !0,
      module: s.module,
      target: s.target,
      omitTrailingSemicolon: !0
    }), I = N.createMethodSignature(void 0, "", b.questionToken, b.typeParameters, b.parameters, b.type), O = { detail: L.printNode(4, I, h) };
    return { isSnippet: d, insertText: y, labelDetails: O };
  }
  function gje(e, t, r, i, o, s) {
    const l = e.getDeclarations();
    if (!(l && l.length))
      return;
    const f = i.getTypeChecker(), d = l[0], y = kc(Aa(d), !1), h = f.getWidenedType(f.getTypeOfSymbolAtLocation(e, t)), A = 33554432 | (Ep(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 = yn(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, Gu.getNoopSymbolTrackerWithResolver({ program: i, host: o }));
        if (!O || !Sh(O))
          return;
        let k;
        if (s.includeCompletionsWithSnippetText) {
          const V = N.createEmptyStatement();
          k = N.createBlock([V], !0), Jq(V, { kind: 0, order: 0 });
        } else
          k = N.createBlock([], !0);
        const B = 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, B, void 0, k);
      }
      default:
        return;
    }
  }
  function ote(e) {
    let t;
    const r = gr.createWriter(K0(e)), i = H1(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: l,
      printAndFormatSnippetList: d,
      printNode: y,
      printAndFormatNode: b
    };
    function s(A, L) {
      const I = ST(A);
      if (I !== A) {
        const O = r.getTextPos();
        L();
        const k = r.getTextPos();
        t = Bn(t || (t = []), { newText: I, span: { start: O, length: k - O } });
      } else
        L();
    }
    function l(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 ac(this, te);
        }
      }, B = l9(O, I), V = wo(L, (te) => {
        const X = gr.assignPositionsToNode(te);
        return xl.formatNodeGivenIndentation(X, k, I.languageVariant, 0, 0, { ...O, options: B });
      }), H = t ? iy(ma(V, t), (te, X) => w4(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 b(A, L, I, O) {
      const k = {
        text: h(A, L, I),
        getLineAndCharacterOfPosition(X) {
          return ac(this, X);
        }
      }, B = l9(O, I), V = gr.assignPositionsToNode(L), H = xl.formatNodeGivenIndentation(V, k, I.languageVariant, 0, 0, { ...O, options: B }), te = t ? iy(ma(H, t), (X, Y) => w4(X.span, Y.span)) : H;
      return gr.applyChanges(k.text, te);
    }
  }
  function QTe(e) {
    const t = e.fileName ? void 0 : G_(e.moduleSymbol.name), r = e.isFromPackageJson ? !0 : void 0;
    return eL(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 : G_(e.moduleSymbol.name),
      isPackageJsonImport: e.isFromPackageJson ? !0 : void 0
    };
  }
  function yje(e, t, r) {
    const i = e.exportName === "default", o = !!e.isPackageJsonImport;
    return qTe(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 vje(e, t, r, i, o, s, l) {
    const f = t.replacementSpan, d = _w(o, l, ST(r.moduleSpecifier)), y = r.isDefaultExport ? 1 : r.exportName === "export=" ? 2 : 0, h = l.includeCompletionsWithSnippetText ? "$1" : "", b = Gu.getImportKind(o, y, s, !0), A = t.couldBeTypeOnlyImportSpecifier, L = t.isTopLevelTypeOnly ? ` ${ho(154)} ` : " ", I = A ? `${ho(154)} ` : "", O = i ? ";" : "";
    switch (b) {
      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 ZTe(e, t, r) {
    return /^\d+$/.test(r) ? r : _w(e, t, r);
  }
  function bje(e, t, r) {
    return e === t || !!(e.flags & 1048576) && r.getExportSymbolOfSymbol(e) === t;
  }
  function ste(e) {
    if (A6(e))
      return G_(e.moduleSymbol.name);
    if (eL(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 cte(e, t, r, i, o, s, l, f, d, y, h, b, A, L, I, O, k, B, V, H, te, X, Y, P, de, ne = !1) {
    var ye;
    const ie = rc(), W = Vje(o), ce = ZF(l), pe = d.getTypeChecker(), ve = /* @__PURE__ */ new Map();
    for (let ee = 0; ee < e.length; ee++) {
      const $e = e[ee], Ue = X == null ? void 0 : X[ee], Be = gG($e, y, Ue, b, !!B);
      if (!Be || ve.get(Be.name) && (!Ue || !WTe(Ue)) || b === 1 && Y && !Te($e, Y))
        continue;
      const { name: We, needsConvertPropertyAccess: Oe } = Be, Me = (ye = Y == null ? void 0 : Y[yo($e)]) != null ? ye : iu.LocationPriority, Xe = Hje($e, pe) ? iu.Deprecated(Me) : Me, He = fje($e, Xe, r, i, o, s, l, f, d, We, Oe, Ue, te, k, V, H, ce, L, A, b, I, P, de, ne);
      if (!He)
        continue;
      const Fe = (!Ue || HTe(Ue)) && !($e.parent === void 0 && !kt($e.declarations, (st) => st.getSourceFile() === o.getSourceFile()));
      ve.set(We, Fe), _v(t, He, C6, !0);
    }
    return h("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (rc() - ie)), {
      has: (ee) => ve.has(ee),
      add: (ee) => ve.set(ee, !0)
    };
    function Te(ee, $e) {
      let Ue = ee.flags;
      if (!Hi(o)) {
        if (Mc(o.parent))
          return !0;
        if (W && ee.valueDeclaration === W)
          return !1;
        const Be = af(ee, pe);
        if (l.externalModuleIndicator && !L.allowUmdGlobalAccess && $e[yo(ee)] === iu.GlobalsOrKeywords && ($e[yo(Be)] === iu.AutoImportSuggestions || $e[yo(Be)] === iu.LocationPriority))
          return !1;
        if (Ue |= ek(Be), TF(o))
          return !!(Ue & 1920);
        if (O)
          return _te(ee, pe);
      }
      return !!(Ue & 111551);
    }
  }
  function Eje(e) {
    const t = Tje(e);
    if (t.length)
      return { isGlobalCompletion: !1, isMemberCompletion: !1, isNewIdentifierLocation: !1, entries: t };
  }
  function Tje(e) {
    const t = [], r = /* @__PURE__ */ new Map();
    let i = e;
    for (; i && !qa(i); ) {
      if (N1(i)) {
        const o = i.label.text;
        r.has(o) || (r.set(o, !0), t.push({
          name: o,
          kindModifiers: "",
          kind: "label",
          sortText: iu.LocationPriority
        }));
      }
      i = i.parent;
    }
    return t;
  }
  function eSe(e, t, r, i, o, s, l) {
    if (o.source === "SwitchCases/")
      return { type: "cases" };
    if (o.data) {
      const H = nSe(o.name, o.data, e, s);
      if (H) {
        const { contextToken: te, previousToken: X } = hG(i, r);
        return {
          type: "symbol",
          symbol: H.symbol,
          location: Lf(r, i),
          previousToken: X,
          contextToken: te,
          isJsxInitializer: !1,
          isTypeOnlyLocation: !1,
          origin: H.origin
        };
      }
    }
    const f = e.getCompilerOptions(), d = tSe(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: b, completionKind: A, symbolToOriginInfoMap: L, contextToken: I, previousToken: O, isJsxInitializer: k, isTypeOnlyLocation: B } = d, V = cn(h, (H) => ate(r, l, H) === o.name);
    return V !== void 0 ? { type: "literal", literal: V } : sn(y, (H, te) => {
      const X = L[te], Y = gG(H, $o(f), X, A, d.isJsxIdentifierExpected);
      return Y && Y.name === o.name && (o.source === "ClassMemberSnippet/" && H.flags & 106500 || o.source === "ObjectLiteralMethodSnippet/" && H.flags & 8196 || ste(X) === o.source) ? { type: "symbol", symbol: H, location: b, origin: X, contextToken: I, previousToken: O, isJsxInitializer: k, isTypeOnlyLocation: B } : void 0;
    }) || { type: "none" };
  }
  function Sje(e, t, r, i, o, s, l, f, d) {
    const y = e.getTypeChecker(), h = e.getCompilerOptions(), { name: b, source: A, data: L } = o, { previousToken: I, contextToken: O } = hG(i, r);
    if (qT(r, i, I))
      return SG.getStringLiteralCompletionDetails(b, r, i, I, y, h, s, d, f);
    const k = eSe(e, t, r, i, o, s, f);
    switch (k.type) {
      case "request": {
        const { request: B } = k;
        switch (B.kind) {
          case 1:
            return sb.getJSDocTagNameCompletionDetails(b);
          case 2:
            return sb.getJSDocTagCompletionDetails(b);
          case 3:
            return sb.getJSDocParameterNameCompletionDetails(b);
          case 4:
            return kt(B.keywordCompletions, (V) => V.name === b) ? lte(b, "keyword", 5) : void 0;
          default:
            return D.assertNever(B);
        }
      }
      case "symbol": {
        const { symbol: B, location: V, contextToken: H, origin: te, previousToken: X } = k, { codeActions: Y, sourceDisplay: P } = xje(b, V, H, te, B, e, s, h, r, i, X, l, f, L, A, d), de = rte(te) ? te.symbolName : B.name;
        return ute(B, de, y, r, V, d, Y, P);
      }
      case "literal": {
        const { literal: B } = k;
        return lte(ate(r, f, B), "string", typeof B == "string" ? 8 : 7);
      }
      case "cases": {
        const { entry: B, importAdder: V } = YTe(O.parent, r, f, e.getCompilerOptions(), s, e, void 0);
        if (V.hasFixes()) {
          const H = gr.ChangeTracker.with({ host: s, formatContext: l, preferences: f }, V.writeFixes);
          return {
            name: B.name,
            kind: "",
            kindModifiers: "",
            displayParts: [],
            sourceDisplay: void 0,
            codeActions: [{
              changes: H,
              description: zx([_.Includes_imports_of_types_referenced_by_0, b])
            }]
          };
        }
        return {
          name: B.name,
          kind: "",
          kindModifiers: "",
          displayParts: [],
          sourceDisplay: void 0
        };
      }
      case "none":
        return yte().some((B) => B.name === b) ? lte(b, "keyword", 5) : void 0;
      default:
        D.assertNever(k);
    }
  }
  function lte(e, t, r) {
    return L6(e, "", t, [Ad(e, r)]);
  }
  function ute(e, t, r, i, o, s, l, f) {
    const { displayParts: d, documentation: y, symbolKind: h, tags: b } = r.runWithCancellationToken(s, (A) => wy.getSymbolDisplayPartsDocumentationAndSymbolKind(A, e, i, o, o, 7));
    return L6(t, wy.getSymbolModifiers(r, e), h, d, y, b, l, f);
  }
  function L6(e, t, r, i, o, s, l, f) {
    return { name: e, kindModifiers: t, kind: r, displayParts: i, documentation: o, tags: s, codeActions: l, source: f, sourceDisplay: f };
  }
  function xje(e, t, r, i, o, s, l, f, d, y, h, b, A, L, I, O) {
    if (L != null && L.moduleSpecifier && h && uSe(r || h).replacementSpan)
      return { codeActions: void 0, sourceDisplay: [If(L.moduleSpecifier)] };
    if (I === "ClassMemberSnippet/") {
      const { importAdder: Y } = $Te(l, s, f, A, e, o, t, y, r, b);
      if (Y)
        return {
          sourceDisplay: void 0,
          codeActions: [{
            changes: gr.ChangeTracker.with({ host: l, formatContext: b, preferences: A }, Y.writeFixes),
            description: zx([_.Includes_imports_of_types_referenced_by_0, e])
          }]
        };
    }
    if (HTe(i)) {
      const Y = Gu.getPromoteTypeOnlyCompletionAction(d, i.declaration.name, s, l, b, A);
      return D.assertIsDefined(Y, "Expected to have a code action for promoting type-only alias"), { codeActions: [Y], sourceDisplay: void 0 };
    }
    if (!i || !(A6(i) || eL(i)))
      return { codeActions: void 0, sourceDisplay: void 0 };
    const k = i.isFromPackageJson ? l.getPackageJsonAutoImportProvider().getTypeChecker() : s.getTypeChecker(), { moduleSymbol: B } = i, V = k.getMergedSymbol(af(o.exportSymbol || o, k)), H = (r == null ? void 0 : r.kind) === 29 && Ku(r.parent), { moduleSpecifier: te, codeAction: X } = Gu.getImportCompletionAction(V, B, L == null ? void 0 : L.exportMapKey, d, e, H, l, s, b, h && Ve(h) ? h.getStart(d) : y, A, O);
    return D.assert(!(L != null && L.moduleSpecifier) || te === L.moduleSpecifier), { sourceDisplay: [If(te)], codeActions: [X] };
  }
  function Aje(e, t, r, i, o, s, l) {
    const f = eSe(e, t, r, i, o, s, l);
    return f.type === "symbol" ? f.symbol : void 0;
  }
  function Cje(e, t, r) {
    return sn(t && (t.isUnion() ? t.types : [t]), (i) => {
      const o = i && i.symbol;
      return o && o.flags & 424 && !ade(o) ? dte(o, e, r) : void 0;
    });
  }
  function Lje(e, t, r, i) {
    const { parent: o } = e;
    switch (e.kind) {
      case 79:
        return XF(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 = ii(o, Dk);
        return s ? K$(s, i) : void 0;
      case 18:
        return wk(o) && !Ty(o.parent) && !Dx(o.parent) ? i.getContextualTypeForJsxAttribute(o.parent) : void 0;
      default:
        const l = $6.getArgumentInfoForCompletions(e, t, r);
        return l ? i.getContextualTypeForArgumentAtIndex(l.invocation, l.argumentIndex + (e.kind === 27 ? 1 : 0)) : YF(e.kind) && br(o) && YF(o.operatorToken.kind) ? i.getTypeAtLocation(o.left) : i.getContextualType(e);
    }
  }
  function dte(e, t, r) {
    const i = r.getAccessibleSymbolChain(e, t, 67108863, !1);
    return i ? ss(i) : e.parent && (Ije(e.parent) ? e : dte(e.parent, t, r));
  }
  function Ije(e) {
    var t;
    return !!((t = e.declarations) != null && t.some((r) => r.kind === 308));
  }
  function tSe(e, t, r, i, o, s, l, f, d, y) {
    const h = e.getTypeChecker(), b = XTe(r, i);
    let A = rc(), L = ia(r, o);
    t("getCompletionData: Get current token: " + (rc() - A)), A = rc();
    const I = Cy(r, o, L);
    t("getCompletionData: Is inside comment: " + (rc() - A));
    let O = !1, k = !1;
    if (I) {
      if (kye(r, o)) {
        if (r.text.charCodeAt(o - 1) === 64)
          return { kind: 1 };
        {
          const Re = v_(o, r);
          if (!/[^\*|\s(/)]/.test(r.text.substring(Re, o)))
            return { kind: 2 };
        }
      }
      const Z = Rje(L, o);
      if (Z) {
        if (Z.tagName.pos <= o && o <= Z.tagName.end)
          return { kind: 1 };
        const Re = an(Z);
        if (Re && (L = ia(r, o), (!L || !lg(L) && (L.parent.kind !== 351 || L.parent.name !== L)) && (O = Pe(Re))), !O && tm(Z) && (xc(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 = rc();
    const B = !O && Xu(r), V = hG(o, r), H = V.previousToken;
    let te = V.contextToken;
    t("getCompletionData: Get previous token: " + (rc() - A));
    let X = L, Y, P = !1, de = !1, ne = !1, ye = !1, ie = !1, W = !1, ce, pe = Lf(r, o), ve = 0, Te = !1, ee = 0;
    if (te) {
      const Z = uSe(te);
      if (Z.keywordCompletion) {
        if (Z.isKeywordOnlyCompletion)
          return {
            kind: 4,
            keywordCompletions: [ije(Z.keywordCompletion)],
            isNewIdentifierLocation: Z.isNewIdentifierLocation
          };
        ve = oje(Z.keywordCompletion);
      }
      if (Z.replacementSpan && s.includeCompletionsForImportStatements && s.includeCompletionsWithInsertText && (ee |= 2, ce = Z, Te = Z.isNewIdentifierLocation), !Z.replacementSpan && nn(te))
        return t("Returning an empty list because completion was requested in an invalid position."), ve ? JTe(ve, B, 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 = nk(Y);
            if (xc(q) || (eo(X) || qa(X)) && X.end === te.pos && X.getChildCount(r) && Ho(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 === pe)
          switch (L.kind) {
            case 31:
              (L.parent.kind === 281 || L.parent.kind === 283) && (pe = L);
              break;
            case 43:
              L.parent.kind === 282 && (pe = L);
              break;
          }
        switch (Re.kind) {
          case 284:
            te.kind === 43 && (ye = !0, pe = te);
            break;
          case 223:
            if (!lSe(Re))
              break;
          case 282:
          case 281:
          case 283:
            W = !0, te.kind === 29 && (ne = !0, pe = 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:
                ie = !0;
                break;
              case 79:
                W = !0, Re !== H.parent && !Re.initializer && gs(Re, 63, r) && (ie = H);
            }
            break;
        }
      }
    }
    const $e = rc();
    let Ue = 5, Be = !1, We = !1, Oe = [], Me;
    const Xe = [], He = [], Fe = /* @__PURE__ */ new Map(), st = vn(), Ct = xm((Z) => Hx(Z ? f.getPackageJsonAutoImportProvider() : e, f));
    if (P || de)
      Xt();
    else if (ne)
      Oe = h.getJsxIntrinsicTagNamesAt(pe), D.assertEachIsDefined(Oe, "getJsxIntrinsicTagNames() should all be defined"), Yt(), Ue = 1, ve = 0;
    else if (ye) {
      const Z = te.parent.parent.openingElement.tagName, Re = h.getSymbolAtLocation(Z);
      Re && (Oe = [Re]), Ue = 1, ve = 0;
    } else if (!Yt())
      return ve ? JTe(ve, B, Te) : void 0;
    t("getCompletionData: Semantic work: " + (rc() - $e));
    const Et = H && Lje(H, o, r, h), Vt = fa(Et && (Et.isUnion() ? Et.types : [Et]), (Z) => Z.isLiteral() && !(Z.flags & 1024) ? Z.value : void 0), tt = H && Et && Cje(H, Et, h);
    return {
      kind: 0,
      symbols: Oe,
      completionKind: Ue,
      isInSnippetScope: k,
      propertyAccessToConvert: Y,
      isNewIdentifierLocation: Te,
      location: pe,
      keywordFilters: ve,
      literals: Vt,
      symbolToOriginInfoMap: Xe,
      recommendedCompletion: tt,
      previousToken: H,
      contextToken: te,
      isJsxInitializer: ie,
      insideJsDocTagTypeExpression: O,
      symbolToSortTextMap: He,
      isTypeOnlyLocation: st,
      isJsxIdentifierExpected: W,
      isRightOfOpenTag: ne,
      isRightOfDotOrQuestionDot: P || de,
      importStatementCompletion: ce,
      hasUnresolvedAutoImports: We,
      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 an(Z) {
      if (at(Z)) {
        const Re = yp(Z) ? Z.constraint : Z.typeExpression;
        return Re && Re.kind === 312 ? Re : void 0;
      }
      if (xC(Z) || bJ(Z))
        return Z.class;
    }
    function Xt() {
      Ue = 2;
      const Z = V0(X), Re = O || Z && !X.isTypeOf || mh(X.parent) || K8(te, r, h), q = TF(X);
      if (Zd(X) || Z || Mr(X)) {
        const Rt = Wc(X.parent);
        Rt && (Te = !0);
        let ht = h.getSymbolAtLocation(X);
        if (ht && (ht = af(ht, h), ht.flags & 1920)) {
          const dt = h.getExportsOfModule(ht);
          D.assertEachIsDefined(dt, "getExportsOfModule() should all be defined");
          const fn = (Si) => h.isValidPropertyAccess(Z ? X : X.parent, Si.name), Qn = (Si) => _te(Si, h), ai = Rt ? (Si) => {
            var xi;
            return !!(Si.flags & 1920) && !((xi = Si.declarations) != null && xi.every((Gi) => Gi.parent === X.parent));
          } : q ? (Si) => Qn(Si) || fn(Si) : Re ? Qn : fn;
          for (const Si of dt)
            ai(Si) && Oe.push(Si);
          if (!Re && ht.declarations && ht.declarations.some((Si) => Si.kind !== 308 && Si.kind !== 264 && Si.kind !== 263)) {
            let Si = h.getTypeOfSymbolAtLocation(ht, X).getNonOptionalType(), xi = !1;
            if (Si.isNullableType()) {
              const Gi = P && !de && s.includeAutomaticOptionalChainCompletions !== !1;
              (Gi || de) && (Si = Si.getNonNullableType(), Gi && (xi = !0));
            }
            Pn(Si, !!(X.flags & 32768), xi);
          }
          return;
        }
      }
      if (!Re) {
        h.tryGetThisTypeAt(X, !1);
        let Rt = h.getTypeAtLocation(X).getNonOptionalType(), ht = !1;
        if (Rt.isNullableType()) {
          const dt = P && !de && s.includeAutomaticOptionalChainCompletions !== !1;
          (dt || de) && (Rt = Rt.getNonNullableType(), dt && (ht = !0));
        }
        Pn(Rt, !!(X.flags & 32768), ht);
      }
    }
    function Pn(Z, Re, q) {
      Te = !!Z.getStringIndexType(), de && kt(Z.getCallSignatures()) && (Te = !0);
      const Rt = X.kind === 202 ? X : X.parent;
      if (b)
        for (const ht of Z.getApparentProperties())
          h.isValidPropertyAccessForCompletions(Rt, Z, ht) && Wn(ht, !1, q);
      else
        Oe.push(...yn(bG(Z, h), (ht) => h.isValidPropertyAccessForCompletions(Rt, Z, ht)));
      if (Re && s.includeCompletionsWithInsertText) {
        const ht = h.getPromisedTypeOfPromise(Z);
        if (ht)
          for (const dt of ht.getApparentProperties())
            h.isValidPropertyAccessForCompletions(Rt, ht, dt) && Wn(dt, !0, q);
      }
    }
    function Wn(Z, Re, q) {
      var Rt;
      const ht = sn(Z.declarations, (ai) => ii(Aa(ai), Ts));
      if (ht) {
        const ai = In(ht.expression), Si = ai && h.getSymbolAtLocation(ai), xi = Si && dte(Si, te, h);
        if (xi && hp(Fe, yo(xi))) {
          const Gi = Oe.length;
          Oe.push(xi);
          const _o = xi.parent;
          if (!_o || !$8(_o) || h.tryGetMemberInModuleExportsAndProperties(xi.name, _o) !== xi)
            Xe[Gi] = { kind: Qn(2) };
          else {
            const bo = Pl(G_(_o.name)) ? (Rt = NM(_o)) == null ? void 0 : Rt.fileName : void 0, { moduleSpecifier: no } = (Me || (Me = Gu.createImportSpecifierResolver(r, e, f, s))).getModuleSpecifierForBestExportInfo([{
              exportKind: 0,
              moduleFileName: bo,
              isFromPackageJson: !1,
              moduleSymbol: _o,
              symbol: xi,
              targetFlags: af(xi, h).flags
            }], o, px(pe)) || {};
            if (no) {
              const sa = {
                kind: Qn(6),
                moduleSymbol: _o,
                isDefaultExport: !1,
                symbolName: xi.name,
                exportName: xi.name,
                fileName: bo,
                moduleSpecifier: no
              };
              Xe[Gi] = sa;
            }
          }
        } else
          s.includeCompletionsWithInsertText && (fn(Z), dt(Z), Oe.push(Z));
      } else
        fn(Z), dt(Z), Oe.push(Z);
      function dt(ai) {
        Bje(ai) && (He[yo(ai)] = iu.LocalDeclarationPriority);
      }
      function fn(ai) {
        s.includeCompletionsWithInsertText && (Re && hp(Fe, yo(ai)) ? Xe[Oe.length] = { kind: Qn(8) } : q && (Xe[Oe.length] = { kind: 16 }));
      }
      function Qn(ai) {
        return q ? ai | 16 : ai;
      }
    }
    function In(Z) {
      return Ve(Z) ? Z : Mr(Z) ? In(Z.expression) : void 0;
    }
    function Yt() {
      return (ke() || gt() || Ki() || Nt() || xe() || _r() || _t() || Ai() || (Xi(), 1)) === 1;
    }
    function _r() {
      return re(te) ? (Ue = 5, Te = !0, ve = 4, 1) : 0;
    }
    function Ai() {
      const Z = j(te), Re = Z && h.getContextualType(Z.attributes);
      if (!Re)
        return 0;
      const q = Z && h.getContextualType(Z.attributes, 4);
      return Oe = ma(Oe, K(vG(Re, q, Z.attributes, h), Z.attributes.properties)), ue(), Ue = 3, Te = !1, 1;
    }
    function Ki() {
      return ce ? (Te = !0, ir(), 1) : 0;
    }
    function Xi() {
      ve = he(te) ? 5 : 1, Ue = 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 = Nn(te, Z, r) || r;
      k = At(Re);
      const q = (st ? 0 : 111551) | 788968 | 1920 | 2097152, Rt = H && !px(H);
      Oe = ma(Oe, h.getSymbolsInScope(Re, q)), D.assertEachIsDefined(Oe, "getSymbolsInScope() should all be defined");
      for (let ht = 0; ht < Oe.length; ht++) {
        const dt = Oe[ht];
        if (!h.isArgumentsSymbol(dt) && !kt(dt.declarations, (fn) => fn.getSourceFile() === r) && (He[yo(dt)] = iu.GlobalsOrKeywords), Rt && !(dt.flags & 111551)) {
          const fn = dt.declarations && cn(dt.declarations, cW);
          if (fn) {
            const Qn = { kind: 64, declaration: fn };
            Xe[ht] = Qn;
          }
        }
      }
      if (s.includeCompletionsWithInsertText && Re.kind !== 308) {
        const ht = h.tryGetThisTypeAt(Re, !1, li(Re.parent) ? Re : void 0);
        if (ht && !Fje(ht, r, h))
          for (const dt of bG(ht, h))
            Xe[Oe.length] = { kind: 1 }, Oe.push(dt), He[yo(dt)] = iu.SuggestedClassMembers;
      }
      ir(), st && (ve = te && iT(te.parent) ? 6 : 7);
    }
    function Nr() {
      return ce ? !0 : Be || !s.includeCompletionsForModuleExports ? !1 : r.externalModuleIndicator || r.commonJsModuleIndicator || D$(e.getCompilerOptions()) ? !0 : Fye(e);
    }
    function At(Z) {
      switch (Z.kind) {
        case 308:
        case 225:
        case 291:
        case 238:
          return !0;
        default:
          return Ca(Z);
      }
    }
    function vn() {
      return O || !!ce && p1(pe.parent) || !Ht(te) && (K8(te, r, h) || mh(pe) || dn(te));
    }
    function Ht(Z) {
      return Z && (Z.kind === 112 && (Z.parent.kind === 183 || yC(Z.parent)) || Z.kind === 129 && Z.parent.kind === 179);
    }
    function dn(Z) {
      if (Z) {
        const Re = Z.parent.kind;
        switch (Z.kind) {
          case 58:
            return Re === 169 || Re === 168 || Re === 166 || Re === 257 || KS(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 ir() {
      var Z, Re;
      if (!Nr() || (D.assert(!(l != null && l.data), "Should not run 'collectAutoImports' when faster path is available via `data`"), l && !l.source))
        return;
      ee |= 1;
      const Rt = H === te && ce ? "" : H && Ve(H) ? H.text.toLowerCase() : "", ht = (Z = f.getModuleSpecifierCache) == null ? void 0 : Z.call(f), dt = c6(r, f, e, s, y), fn = (Re = f.getPackageJsonAutoImportProvider) == null ? void 0 : Re.call(f), Qn = l ? void 0 : mw(r, s, f);
      zTe("collectAutoImports", f, Me || (Me = Gu.createImportSpecifierResolver(r, e, f, s)), e, o, s, !!ce, px(pe), (Si) => {
        dt.search(r.path, ne, (xi, Gi) => {
          if (!N_(xi, $o(f.getCompilationSettings())) || !l && ix(xi) || !st && !ce && !(Gi & 111551) || st && !(Gi & 790504))
            return !1;
          const _o = xi.charCodeAt(0);
          return ne && (_o < 65 || _o > 90) ? !1 : l ? !0 : pSe(xi, Rt);
        }, (xi, Gi, _o, bo) => {
          if (l && !kt(xi, (di) => l.source === G_(di.moduleSymbol.name)) || (xi = yn(xi, ai), !xi.length))
            return;
          const no = Si.tryResolve(xi, _o) || {};
          if (no === "failed")
            return;
          let sa = xi[0], Ui;
          no !== "skipped" && ({ exportInfo: sa = xi[0], moduleSpecifier: Ui } = no);
          const Jr = sa.exportKind === 1, is = Jr && QA(sa.symbol) || sa.symbol;
          lr(is, {
            kind: Ui ? 32 : 4,
            moduleSpecifier: Ui,
            symbolName: Gi,
            exportMapKey: bo,
            exportName: sa.exportKind === 2 ? "export=" : sa.symbol.name,
            fileName: sa.moduleFileName,
            isDefaultExport: Jr,
            moduleSymbol: sa.moduleSymbol,
            isFromPackageJson: sa.isFromPackageJson
          });
        }), We = Si.skippedAny(), ee |= Si.resolvedAny() ? 8 : 0, ee |= Si.resolvedBeyondLimit() ? 16 : 0;
      });
      function ai(Si) {
        const xi = ii(Si.moduleSymbol.valueDeclaration, Hi);
        if (!xi) {
          const Gi = G_(Si.moduleSymbol.name);
          return jT.nodeCoreModules.has(Gi) && ba(Gi, "node:") !== c9(r, e) ? !1 : Qn ? Qn.allowsImportingAmbientModule(Si.moduleSymbol, Ct(Si.isFromPackageJson)) : !0;
        }
        return sQ(Si.isFromPackageJson ? fn : e, r, xi, s, Qn, Ct(Si.isFromPackageJson), ht);
      }
    }
    function lr(Z, Re) {
      const q = yo(Z);
      He[q] !== iu.GlobalsOrKeywords && (Xe[Oe.length] = Re, He[q] = ce ? iu.LocationPriority : iu.AutoImportSuggestions, Oe.push(Z));
    }
    function Ni(Z, Re) {
      fr(pe) || Z.forEach((q) => {
        if (!pi(q))
          return;
        const Rt = gG(q, $o(i), void 0, 0, !1);
        if (!Rt)
          return;
        const { name: ht } = Rt, dt = hje(q, ht, Re, e, f, i, s, d);
        if (!dt)
          return;
        const fn = { kind: 128, ...dt };
        ee |= 32, Xe[Oe.length] = fn, Oe.push(q);
      });
    }
    function pi(Z) {
      return !!(Z.flags & 8196);
    }
    function Nn(Z, Re, q) {
      let Rt = Z;
      for (; Rt && !h$(Rt, Re, q); )
        Rt = Rt.parent;
      return Rt;
    }
    function nn(Z) {
      const Re = rc(), q = Vr(Z) || je(Z) || Ut(Z) || Mn(Z) || S7(Z);
      return t("getCompletionsAtPosition: isCompletionListBlocker: " + (rc() - Re)), q;
    }
    function Mn(Z) {
      if (Z.kind === 11)
        return !0;
      if (Z.kind === 31 && Z.parent) {
        if (pe === Z.parent && (pe.kind === 283 || pe.kind === 282))
          return !1;
        if (Z.parent.kind === 283)
          return pe.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 = yG(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 (I6(Re))
          return !0;
      }
      return !1;
    }
    function Vr(Z) {
      return (Qq(Z) || lW(Z)) && (W8(Z, o) || o === Z.end && (!!Z.isUnterminated || Qq(Z)));
    }
    function ke() {
      const Z = Pje(te);
      if (!Z)
        return 0;
      const q = (SO(Z.parent) ? Z.parent : void 0) || Z, Rt = cSe(q, h);
      if (!Rt)
        return 0;
      const ht = h.getTypeFromTypeNode(q), dt = bG(Rt, h), fn = bG(ht, h), Qn = /* @__PURE__ */ new Set();
      return fn.forEach((ai) => Qn.add(ai.escapedName)), Oe = ma(Oe, yn(dt, (ai) => !Qn.has(ai.escapedName))), Ue = 0, Te = !0, 1;
    }
    function gt() {
      const Z = Oe.length, Re = kje(te);
      if (!Re)
        return 0;
      Ue = 0;
      let q, Rt;
      if (Re.kind === 207) {
        const ht = Gje(Re, h);
        if (ht === void 0)
          return Re.flags & 33554432 ? 2 : (Be = !0, 0);
        const dt = h.getContextualType(Re, 4), fn = (dt || ht).getStringIndexType(), Qn = (dt || ht).getNumberIndexType();
        if (Te = !!fn || !!Qn, q = vG(ht, dt, Re, h), Rt = Re.properties, q.length === 0 && !Qn)
          return Be = !0, 0;
      } else {
        D.assert(Re.kind === 203), Te = !1;
        const ht = Om(Re.parent);
        if (!PA(ht))
          return D.fail("Root declaration is not variable-like.");
        let dt = Av(ht) || !!Kl(ht) || ht.parent.parent.kind === 247;
        if (!dt && ht.kind === 166 && (yt(ht.parent) ? dt = !!h.getContextualType(ht.parent) : (ht.parent.kind === 171 || ht.parent.kind === 175) && (dt = yt(ht.parent.parent) && !!h.getContextualType(ht.parent.parent))), dt) {
          const fn = h.getTypeAtLocation(Re);
          if (!fn)
            return 2;
          q = h.getPropertiesOfType(fn).filter((Qn) => h.isPropertyAccessible(Re, !1, !1, fn, Qn)), Rt = Re.elements;
        }
      }
      if (q && q.length > 0) {
        const ht = Sn(q, D.checkDefined(Rt));
        Oe = ma(Oe, ht), ue(), Re.kind === 207 && s.includeCompletionsWithObjectLiteralMethodSnippets && s.includeCompletionsWithInsertText && (Wt(Z), Ni(ht, Re));
      }
      return 1;
    }
    function Nt() {
      if (!te)
        return 0;
      const Z = te.kind === 18 || te.kind === 27 ? ii(te.parent, qz) : BF(te) ? ii(te.parent.parent, qz) : void 0;
      if (!Z)
        return 0;
      BF(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;
      Ue = 3, Te = !1;
      const Rt = h.getExportsAndPropertiesOfModule(q), ht = new Set(Z.elements.filter((fn) => !Pe(fn)).map((fn) => (fn.propertyName || fn.name).escapedText)), dt = Rt.filter((fn) => fn.escapedName !== "default" && !ht.has(fn.escapedName));
      return Oe = ma(Oe, dt), dt.length || (ve = 0), 1;
    }
    function xe() {
      var Z;
      const Re = te && (te.kind === 18 || te.kind === 27) ? ii(te.parent, z_) : void 0;
      if (!Re)
        return 0;
      const q = rr(Re, Am(Hi, Wc));
      return Ue = 5, Te = !1, (Z = q.locals) == null || Z.forEach((Rt, ht) => {
        var dt, fn;
        Oe.push(Rt), (fn = (dt = q.symbol) == null ? void 0 : dt.exports) != null && fn.has(ht) && (He[yo(Rt)] = iu.OptionalMember);
      }), 1;
    }
    function _t() {
      const Z = Oje(r, te, pe, o);
      if (!Z)
        return 0;
      if (Ue = 3, Te = !0, ve = te.kind === 41 ? 0 : li(Z) ? 2 : 3, !li(Z))
        return 1;
      const Re = te.kind === 26 ? te.parent.parent : te.parent;
      let q = Ml(Re) ? Ru(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 (Lc(Re) && (q |= 32), !(q & 8)) {
        const Rt = li(Z) && q & 16384 ? XE(Jp(Z)) : GI(Z), ht = wo(Rt, (dt) => {
          const fn = h.getTypeAtLocation(dt);
          return q & 32 ? (fn == null ? void 0 : fn.symbol) && h.getPropertiesOfType(h.getTypeOfSymbolAtLocation(fn.symbol, Z)) : fn && h.getPropertiesOfType(fn);
        });
        Oe = ma(Oe, it(ht, Z.members, q)), ze(Oe, (dt, fn) => {
          const Qn = dt == null ? void 0 : dt.valueDeclaration;
          if (Qn && Ml(Qn) && Qn.name && Ts(Qn.name)) {
            const ai = {
              kind: 512,
              symbolName: h.symbolToString(dt)
            };
            Xe[fn] = ai;
          }
        });
      }
      return 1;
    }
    function _e(Z) {
      return !!Z.parent && Oa(Z.parent) && Hc(Z.parent.parent) && (SI(Z.kind) || lg(Z));
    }
    function re(Z) {
      if (Z) {
        const Re = Z.parent;
        switch (Z.kind) {
          case 20:
          case 27:
            return Hc(Z.parent) ? Z.parent : void 0;
          default:
            if (_e(Z))
              return Re.parent;
        }
      }
    }
    function he(Z) {
      if (Z) {
        let Re;
        const q = rr(Z.parent, (Rt) => li(Rt) ? "quit" : Xs(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 = Sl(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 je(Z) {
      const Re = Z.parent, q = Re.kind;
      switch (Z.kind) {
        case 27:
          return q === 257 || ln(Z) || q === 240 || q === 263 || Ke(q) || q === 261 || q === 204 || q === 262 || li(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 || Ke(q);
        case 18:
          return q === 263;
        case 29:
          return q === 260 || q === 228 || q === 261 || q === 262 || KS(q);
        case 124:
          return q === 169 && !li(Re.parent);
        case 25:
          return q === 166 || !!Re.parent && Re.parent.kind === 204;
        case 123:
        case 121:
        case 122:
          return q === 166 && !Hc(Re.parent);
        case 128:
          return q === 273 || q === 278 || q === 271;
        case 137:
        case 151:
          return !EG(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 qa(Z.parent) && !nl(Z.parent);
      }
      if (I6(yG(Z)) && EG(Z) || _e(Z) && (!Ve(Z) || SI(yG(Z)) || Pe(Z)))
        return !1;
      switch (yG(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 Za(Z.parent);
      }
      if (rr(Z.parent, li) && Z === H && Qe(Z, o))
        return !1;
      const ht = z0(Z.parent, 169);
      if (ht && Z !== H && li(H.parent.parent) && o <= H.end) {
        if (Qe(Z, H.end))
          return !1;
        if (Z.kind !== 63 && (v8(ht) || wM(ht)))
          return !0;
      }
      return lg(Z) && !$f(Z.parent) && !em(Z.parent) && !(li(Z.parent) && (Z !== H || o > H.end));
    }
    function Qe(Z, Re) {
      return Z.kind !== 63 && (Z.kind === 26 || !p_(Z.end, Re, r));
    }
    function Ke(Z) {
      return KS(Z) && Z !== 173;
    }
    function Ut(Z) {
      if (Z.kind === 8) {
        const Re = Z.getFullText();
        return Re.charAt(Re.length - 1) === ".";
      }
      return !1;
    }
    function ln(Z) {
      return Z.parent.kind === 258 && !K8(Z, r, h);
    }
    function Sn(Z, Re) {
      if (Re.length === 0)
        return Z;
      const q = /* @__PURE__ */ new Set(), Rt = /* @__PURE__ */ new Set();
      for (const dt of Re) {
        if (dt.kind !== 299 && dt.kind !== 300 && dt.kind !== 205 && dt.kind !== 171 && dt.kind !== 174 && dt.kind !== 175 && dt.kind !== 301 || Pe(dt))
          continue;
        let fn;
        if (Nx(dt))
          Er(dt, q);
        else if (us(dt) && dt.propertyName)
          dt.propertyName.kind === 79 && (fn = dt.propertyName.escapedText);
        else {
          const Qn = Aa(dt);
          fn = Qn && F_(Qn) ? VI(Qn) : void 0;
        }
        fn !== void 0 && Rt.add(fn);
      }
      const ht = Z.filter((dt) => !Rt.has(dt.escapedName));
      return pt(q, ht), ht;
    }
    function Er(Z, Re) {
      const q = Z.expression, Rt = h.getSymbolAtLocation(q), ht = Rt && h.getTypeOfSymbolAtLocation(Rt, q), dt = ht && ht.properties;
      dt && dt.forEach((fn) => {
        Re.add(fn.name);
      });
    }
    function ue() {
      Oe.forEach((Z) => {
        var Re;
        if (Z.flags & 16777216) {
          const q = yo(Z);
          He[q] = (Re = He[q]) != null ? Re : iu.OptionalMember;
        }
      });
    }
    function pt(Z, Re) {
      if (Z.size !== 0)
        for (const q of Re)
          Z.has(q.name) && (He[yo(q)] = iu.MemberDeclaredBySpreadAssignment);
    }
    function Wt(Z) {
      var Re;
      for (let q = Z; q < Oe.length; q++) {
        const Rt = Oe[q], ht = yo(Rt), dt = Xe == null ? void 0 : Xe[q], fn = $o(i), Qn = gG(Rt, fn, dt, 0, !1);
        if (Qn) {
          const ai = (Re = He[ht]) != null ? Re : iu.LocationPriority, { name: Si } = Qn;
          He[ht] = iu.ObjectLiteralProperty(ai, Si);
        }
      }
    }
    function it(Z, Re, q) {
      const Rt = /* @__PURE__ */ new Set();
      for (const ht of Re) {
        if (ht.kind !== 169 && ht.kind !== 171 && ht.kind !== 174 && ht.kind !== 175 || Pe(ht) || Pd(ht, 8) || za(ht) !== !!(q & 32))
          continue;
        const dt = S1(ht.name);
        dt && Rt.add(dt);
      }
      return Z.filter((ht) => !Rt.has(ht.escapedName) && !!ht.declarations && !(Kf(ht) & 8) && !(ht.valueDeclaration && Ju(ht.valueDeclaration)));
    }
    function K(Z, Re) {
      const q = /* @__PURE__ */ new Set(), Rt = /* @__PURE__ */ new Set();
      for (const dt of Re)
        Pe(dt) || (dt.kind === 288 ? q.add(dt.name.escapedText) : IT(dt) && Er(dt, Rt));
      const ht = Z.filter((dt) => !q.has(dt.escapedName));
      return pt(Rt, ht), ht;
    }
    function Pe(Z) {
      return Z.getStart(r) <= o && o <= Z.getEnd();
    }
  }
  function kje(e) {
    if (e) {
      const { parent: t } = e;
      switch (e.kind) {
        case 18:
        case 27:
          if (xs(t) || Um(t))
            return t;
          break;
        case 41:
          return nl(t) ? ii(t.parent, xs) : void 0;
        case 79:
          return e.text === "async" && $f(e.parent) ? e.parent.parent : void 0;
      }
    }
  }
  function hG(e, t) {
    const r = Sl(e, t);
    return r && e <= r.end && (ng(r) || Td(r.kind)) ? { contextToken: Sl(r.getFullStart(), t, void 0), previousToken: r } : { contextToken: r, previousToken: r };
  }
  function nSe(e, t, r, i) {
    const o = t.isPackageJsonImport ? i.getPackageJsonAutoImportProvider() : r, s = o.getTypeChecker(), l = t.ambientModuleName ? s.tryFindAmbientModule(t.ambientModuleName) : t.fileName ? s.getMergedSymbol(D.checkDefined(o.getSourceFile(t.fileName)).symbol) : void 0;
    if (!l)
      return;
    let f = t.exportName === "export=" ? s.resolveExternalModuleSymbol(l) : s.tryGetMemberInModuleExportsAndProperties(t.exportName, l);
    return f ? (f = t.exportName === "default" && QA(f) || f, { symbol: f, origin: yje(t, e, l) }) : void 0;
  }
  function gG(e, t, r, i, o) {
    if (tje(r))
      return;
    const s = $Ve(r) ? r.symbolName : e.name;
    if (s === void 0 || e.flags & 1536 && sN(s.charCodeAt(0)) || kN(e))
      return;
    const l = { name: s, needsConvertPropertyAccess: !1 };
    if (N_(s, t, o ? 1 : 0) || e.valueDeclaration && Ju(e.valueDeclaration))
      return l;
    switch (i) {
      case 3:
        return rte(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 l;
      default:
        D.assertNever(i);
    }
  }
  function rSe(e, t) {
    if (!t)
      return iSe(e);
    const r = e + 8 + 1;
    return k6[r] || (k6[r] = iSe(e).filter((i) => !wje(ZE(i.name))));
  }
  function iSe(e) {
    return k6[e] || (k6[e] = yte().filter((t) => {
      const r = ZE(t.name);
      switch (e) {
        case 0:
          return !1;
        case 1:
          return oSe(r) || r === 136 || r === 142 || r === 154 || r === 143 || r === 126 || lw(r) && r !== 155;
        case 5:
          return oSe(r);
        case 2:
          return I6(r);
        case 3:
          return aSe(r);
        case 4:
          return SI(r);
        case 6:
          return lw(r) || r === 85;
        case 7:
          return lw(r);
        case 8:
          return r === 154;
        default:
          return D.assertNever(e);
      }
    }));
  }
  function wje(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 aSe(e) {
    return e === 146;
  }
  function I6(e) {
    switch (e) {
      case 126:
      case 127:
      case 135:
      case 137:
      case 151:
      case 132:
      case 136:
      case 161:
        return !0;
      default:
        return uW(e);
    }
  }
  function oSe(e) {
    return e === 132 || e === 133 || e === 128 || e === 150 || e === 154 || !d3(e) && !I6(e);
  }
  function yG(e) {
    var t;
    return Ve(e) ? (t = G0(e)) != null ? t : 0 : e.kind;
  }
  function Dje(e, t) {
    const r = [];
    if (e) {
      const i = e.getSourceFile(), o = e.parent, s = i.getLineAndCharacterOfPosition(e.end).line, l = i.getLineAndCharacterOfPosition(t).line;
      (Ul(o) || Xl(o) && o.moduleSpecifier) && e === o.moduleSpecifier && s === l && r.push({
        name: ho(130),
        kind: "keyword",
        kindModifiers: "",
        sortText: iu.GlobalsOrKeywords
      });
    }
    return r;
  }
  function Rje(e, t) {
    return rr(e, (r) => CI(r) && H8(r, t) ? !0 : Hm(r) ? "quit" : !1);
  }
  function vG(e, t, r, i) {
    const o = t && t !== e, s = o && !(t.flags & 3) ? i.getUnionType([e, t]) : e, l = Nje(s, r, i);
    return s.isClass() && sSe(l) ? [] : o ? yn(l, f) : l;
    function f(d) {
      return Ie(d.declarations) ? kt(d.declarations, (y) => y.parent !== r) : !0;
    }
  }
  function Nje(e, t, r) {
    return e.isUnion() ? r.getAllPossiblePropertiesOfTypes(yn(e.types, (i) => !(i.flags & 134348796 || r.isArrayLikeType(i) || r.isTypeInvalidDueToUnionDiscriminant(i, t) || r.typeHasCallOrConstructSignatures(i) || i.isClass() && sSe(i.getApparentProperties())))) : e.getApparentProperties();
  }
  function sSe(e) {
    return kt(e, (t) => !!(Kf(t) & 24));
  }
  function bG(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 Oje(e, t, r, i) {
    var o;
    switch (r.kind) {
      case 354:
        return ii(r.parent, ux);
      case 1:
        const s = ii(ec(ro(r.parent, Hi).statements), ux);
        if (s && !gs(s, 19, e))
          return s;
        break;
      case 79: {
        if (G0(r) || Za(r.parent) && r.parent.initializer === r)
          return;
        if (EG(r))
          return rr(r, ux);
      }
    }
    if (t) {
      if (r.kind === 135 || Ve(t) && Za(t.parent) && li(r))
        return rr(t, li);
      switch (t.kind) {
        case 63:
          return;
        case 26:
        case 19:
          return EG(r) && r.parent.name === r ? r.parent.parent : ii(r, ux);
        case 18:
        case 27:
          return ii(t.parent, ux);
        default:
          if (ux(r)) {
            if (ac(e, t.getEnd()).line !== ac(e, i).line)
              return r;
            const s = li(t.parent.parent) ? I6 : aSe;
            return s(t.kind) || t.kind === 41 || Ve(t) && s((o = G0(t)) != null ? o : 0) ? t.parent.parent : void 0;
          }
          return;
      }
    }
  }
  function Pje(e) {
    if (!e)
      return;
    const t = e.parent;
    switch (e.kind) {
      case 18:
        if (of(t))
          return t;
        break;
      case 26:
      case 27:
      case 79:
        if (t.kind === 168 && of(t.parent))
          return t.parent;
        break;
    }
  }
  function cSe(e, t) {
    if (!e)
      return;
    if (Mi(e) && DM(e.parent))
      return t.getTypeArgumentConstraint(e);
    const r = cSe(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 EG(e) {
    return e.parent && AM(e.parent) && ux(e.parent.parent);
  }
  function Mje(e, t, r, i) {
    switch (t) {
      case ".":
      case "@":
        return !0;
      case '"':
      case "'":
      case "`":
        return !!r && nve(r) && i === r.getStart(e) + 1;
      case "#":
        return !!r && Di(r) && !!Tl(r);
      case "<":
        return !!r && r.kind === 29 && (!br(r.parent) || lSe(r.parent));
      case "/":
        return !!r && (Es(r) ? !!yN(r) : r.kind === 43 && wx(r.parent));
      case " ":
        return !!r && Tk(r) && r.parent.kind === 308;
      default:
        return D.assertNever(t);
    }
  }
  function lSe({ left: e }) {
    return xc(e);
  }
  function Fje(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 Bje(e) {
    return !!(e.valueDeclaration && Ru(e.valueDeclaration) & 32 && li(e.valueDeclaration.parent));
  }
  function Gje(e, t) {
    const r = t.getContextualType(e);
    if (r)
      return r;
    const i = Lv(e.parent);
    if (br(i) && i.operatorToken.kind === 63 && e === i.left)
      return t.getTypeAtLocation(i);
    if (yt(i))
      return t.getContextualType(i);
  }
  function uSe(e) {
    var t, r, i;
    let o, s = !1;
    const l = f();
    return {
      isKeywordOnlyCompletion: s,
      keywordCompletion: o,
      isNewIdentifierLocation: !!(l || o === 154),
      isTopLevelTypeOnly: !!((r = (t = ii(l, Ul)) == null ? void 0 : t.importClause) != null && r.isTypeOnly) || !!((i = ii(l, ru)) != null && i.isTypeOnly),
      couldBeTypeOnlyImportSpecifier: !!l && fSe(l, e),
      replacementSpan: Uje(l)
    };
    function f() {
      const d = e.parent;
      if (ru(d))
        return o = e.kind === 154 ? void 0 : 154, fte(d.moduleReference) ? d : void 0;
      if (fSe(d, e) && _Se(d.parent))
        return d;
      if (Ey(d) || Pv(d)) {
        if (!d.parent.isTypeOnly && (e.kind === 18 || e.kind === 100 || e.kind === 27) && (o = 154), _Se(d))
          if (e.kind === 19 || e.kind === 79)
            s = !0, o = 158;
          else
            return d.parent.parent;
        return;
      }
      if (Tk(e) && Hi(d))
        return o = 154, e;
      if (Tk(e) && Ul(d))
        return o = 154, fte(d.moduleSpecifier) ? d : void 0;
    }
  }
  function Uje(e) {
    var t, r, i;
    if (!e)
      return;
    const o = (t = rr(e, Am(Ul, ru))) != null ? t : e, s = o.getSourceFile();
    if (bT(o, s))
      return Zu(o, s);
    D.assert(o.kind !== 100 && o.kind !== 273);
    const l = o.kind === 269 ? (i = dSe((r = o.importClause) == null ? void 0 : r.namedBindings)) != null ? i : o.moduleSpecifier : o.moduleReference, f = {
      pos: o.getFirstToken().getStart(),
      end: l.pos
    };
    if (bT(f, s))
      return jv(f);
  }
  function dSe(e) {
    var t;
    return cn((t = ii(e, Ey)) == null ? void 0 : t.elements, (r) => {
      var i;
      return !r.propertyName && ix(r.name.text) && ((i = Sl(r.name.pos, e.getSourceFile(), e)) == null ? void 0 : i.kind) !== 27;
    });
  }
  function fSe(e, t) {
    return xd(e) && (e.isTypeOnly || t === e.name && BF(t));
  }
  function _Se(e) {
    if (!fte(e.parent.parent.moduleSpecifier) || e.parent.name)
      return !1;
    if (Ey(e)) {
      const t = dSe(e);
      return (t ? e.elements.indexOf(t) : e.elements.length) < 2;
    }
    return !0;
  }
  function fte(e) {
    var t;
    return xc(e) ? !0 : !((t = ii(jm(e) ? e.expression : e, Es)) != null && t.text);
  }
  function Vje(e) {
    return rr(e, (r) => uT(r) || jje(r) || Ja(r) ? "quit" : zi(r));
  }
  function jje(e) {
    return e.parent && Ws(e.parent) && e.parent.body === e;
  }
  function _te(e, t, r = /* @__PURE__ */ new Map()) {
    return i(e) || i(af(e.exportSymbol || e, t));
    function i(o) {
      return !!(o.flags & 788968) || t.isUnknownSymbol(o) || !!(o.flags & 1536) && hp(r, yo(o)) && t.getExportsOfModule(o).some((s) => _te(s, t, r));
    }
  }
  function Hje(e, t) {
    const r = af(e, t).declarations;
    return !!Ie(r) && Rn(r, s9);
  }
  function pSe(e, t) {
    if (t.length === 0)
      return !0;
    let r = !1, i, o = 0;
    const s = e.length;
    for (let l = 0; l < s; l++) {
      const f = e.charCodeAt(l), d = t.charCodeAt(o);
      if ((f === d || f === Wje(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 Wje(e) {
    return 97 <= e && e <= 122 ? e - 32 : e;
  }
  var TG, pte, iu, mte, hte, gte, k6, yte, zje = C({
    "src/services/completions.ts"() {
      Xr(), xte(), TG = 100, pte = 1e3, iu = {
        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";
        }
      }, mte = /* @__PURE__ */ ((e) => (e.ThisProperty = "ThisProperty/", e.ClassMemberSnippet = "ClassMemberSnippet/", e.TypeOnlyAlias = "TypeOnlyAlias/", e.ObjectLiteralMethodSnippet = "ObjectLiteralMethodSnippet/", e.SwitchCases = "SwitchCases/", e))(mte || {}), hte = /* @__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))(hte || {}), gte = /* @__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))(gte || {}), k6 = [], yte = yd(() => {
        const e = [];
        for (let t = 81; t <= 162; t++)
          e.push({
            name: ho(t),
            kind: "keyword",
            kindModifiers: "",
            sortText: iu.GlobalsOrKeywords
          });
        return e;
      });
    }
  });
  function vte() {
    const e = /* @__PURE__ */ new Map();
    function t(r) {
      const i = e.get(r.name);
      (!i || Ste[i.kind] < Ste[r.kind]) && e.set(r.name, r);
    }
    return {
      add: t,
      has: e.has.bind(e),
      values: e.values.bind(e)
    };
  }
  function qje(e, t, r, i, o, s, l, f, d) {
    if (Oye(e, t)) {
      const y = cHe(e, t, i, o);
      return y && mSe(y);
    }
    if (qT(e, t, r)) {
      if (!r || !Es(r))
        return;
      const y = gSe(e, r, t, s.getTypeChecker(), i, o, f);
      return Jje(y, r, e, o, s, l, i, f, t, d);
    }
  }
  function Jje(e, t, r, i, o, s, l, f, d, y) {
    if (e === void 0)
      return;
    const h = L$(t);
    switch (e.kind) {
      case 0:
        return mSe(e.paths);
      case 1: {
        const b = cj();
        return cte(e.symbols, b, t, t, r, d, r, i, o, 99, s, 4, f, l, 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: b };
      }
      case 2: {
        const b = e.types.map((A) => ({
          name: A.value,
          kindModifiers: "",
          kind: "string",
          sortText: iu.LocationPriority,
          replacementSpan: C$(t)
        }));
        return { isGlobalCompletion: !1, isMemberCompletion: !1, isNewIdentifierLocation: e.isNewIdentifier, optionalReplacementSpan: h, entries: b };
      }
      default:
        return D.assertNever(e);
    }
  }
  function Kje(e, t, r, i, o, s, l, f, d) {
    if (!i || !Es(i))
      return;
    const y = gSe(t, i, r, o, s, l, d);
    return y && Xje(e, i, y, t, o, f);
  }
  function Xje(e, t, r, i, o, s) {
    switch (r.kind) {
      case 0: {
        const l = cn(r.paths, (f) => f.name === e);
        return l && L6(e, hSe(l.extension), l.kind, [If(e)]);
      }
      case 1: {
        const l = cn(r.symbols, (f) => f.name === e);
        return l && ute(l, l.name, o, i, t, s);
      }
      case 2:
        return cn(r.types, (l) => l.value === e) ? L6(e, "", "string", [If(e)]) : void 0;
      default:
        return D.assertNever(r);
    }
  }
  function mSe(e) {
    return { isGlobalCompletion: !1, isMemberCompletion: !1, isNewIdentifierLocation: !0, entries: e.map(({ name: o, kind: s, span: l, extension: f }) => ({ name: o, kind: s, kindModifiers: hSe(f), sortText: iu.LocationPriority, replacementSpan: l })) };
  }
  function hSe(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 gSe(e, t, r, i, o, s, l) {
    const f = ySe(t.parent);
    switch (f.kind) {
      case 198: {
        const A = ySe(f.parent);
        switch (A.kind) {
          case 230:
          case 180: {
            const O = rr(f, (k) => k.parent === A);
            return O ? { kind: 2, types: w6(i.getTypeArgumentConstraint(O)), isNewIdentifier: !1 } : void 0;
          }
          case 196:
            const { indexType: L, objectType: I } = A;
            return H8(L, r) ? vSe(i.getTypeFromTypeNode(I)) : void 0;
          case 202:
            return { kind: 0, paths: ESe(e, t, o, s, i, l) };
          case 189: {
            if (!W_(A.parent))
              return;
            const O = Yje(A, f);
            return { kind: 2, types: w6(i.getTypeArgumentConstraint(A)).filter((B) => !wi(O, B.value)), isNewIdentifier: !1 };
          }
          default:
            return;
        }
      }
      case 299:
        return xs(f.parent) && f.name === t ? Qje(i, f.parent) : d() || d(0);
      case 209: {
        const { expression: A, argumentExpression: L } = f;
        return t === Gs(L) ? vSe(i.getTypeAtLocation(A)) : void 0;
      }
      case 210:
      case 211:
      case 288:
        if (!fHe(t) && !rf(f)) {
          const A = $6.getArgumentInfoForCompletions(f.kind === 288 ? f.parent : t, r, e);
          return A && $je(A.invocation, t, A, i) || d();
        }
      case 269:
      case 275:
      case 280:
        return { kind: 0, paths: ESe(e, t, o, s, i, l) };
      case 292:
        const y = u9(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 = w6(XF(t, i, y));
      if (h.length)
        return { kind: 2, types: h, isNewIdentifier: !1 };
    }
  }
  function ySe(e) {
    switch (e.kind) {
      case 193:
        return SN(e);
      case 214:
        return Lv(e);
      default:
        return e;
    }
  }
  function Yje(e, t) {
    return fa(e.types, (r) => r !== t && Q0(r) && Go(r.literal) ? r.literal.text : void 0);
  }
  function $je(e, t, r, i) {
    let o = !1;
    const s = /* @__PURE__ */ new Map(), l = [], f = Ku(e) ? D.checkDefined(rr(t.parent, em)) : t;
    i.getResolvedSignatureForStringLiteralCompletions(e, f, l);
    const d = wo(l, (y) => {
      if (!gu(y) && r.argumentCount > y.parameters.length)
        return;
      let h = y.getTypeParameterAtPosition(r.argumentIndex);
      if (Ku(e)) {
        const b = i.getTypeOfPropertyOfType(h, f.name.text);
        b && (h = b);
      }
      return o = o || !!(h.flags & 4), w6(h, s);
    });
    return Ie(d) ? { kind: 2, types: d, isNewIdentifier: o } : void 0;
  }
  function vSe(e) {
    return e && {
      kind: 1,
      symbols: yn(e.getApparentProperties(), (t) => !(t.valueDeclaration && Ju(t.valueDeclaration))),
      hasIndexSignature: J$(e)
    };
  }
  function Qje(e, t) {
    const r = e.getContextualType(t);
    if (!r)
      return;
    const i = e.getContextualType(t, 4);
    return {
      kind: 1,
      symbols: vG(r, i, t, e),
      hasIndexSignature: J$(r)
    };
  }
  function w6(e, t = /* @__PURE__ */ new Map()) {
    return e ? (e = w$(e), e.isUnion() ? wo(e.types, (r) => w6(r, t)) : e.isStringLiteral() && !(e.flags & 1024) && hp(t, e.value) ? [e] : rt) : rt;
  }
  function tL(e, t, r) {
    return { name: e, kind: t, extension: r };
  }
  function bte(e) {
    return tL(e, "directory", void 0);
  }
  function bSe(e, t, r) {
    const i = uHe(e, t), o = e.length === 0 ? void 0 : Ll(t, e.length);
    return r.map(({ name: s, kind: l, extension: f }) => Math.max(s.indexOf(Ns), s.indexOf(CR)) !== -1 ? { name: s, kind: l, extension: f, span: o } : { name: s, kind: l, extension: f, span: i });
  }
  function ESe(e, t, r, i, o, s) {
    return bSe(t.text, t.getStart(e) + 1, Zje(e, t, r, i, o, s));
  }
  function Zje(e, t, r, i, o, s) {
    const l = Jl(t.text), f = Es(t) ? vp(e, t) : void 0, d = e.path, y = _i(d), h = Ete(r, 1, e, o, s, f);
    return dHe(l) || !r.baseUrl && (Cm(l) || cce(l)) ? eHe(l, y, r, i, d, h) : iHe(l, y, f, r, i, h, o);
  }
  function Ete(e, t, r, i, o, s) {
    return {
      extensionsToSearch: id(tHe(e, i)),
      referenceKind: t,
      importingSourceFile: r,
      endingPreference: o == null ? void 0 : o.importModuleSpecifierEnding,
      resolutionMode: s
    };
  }
  function eHe(e, t, r, i, o, s) {
    return r.rootDirs ? rHe(r.rootDirs, e, t, s, r, i, o) : Do(Lw(e, t, s, i, !1, o).values());
  }
  function tHe(e, t) {
    const r = t ? fa(t.getAmbientModules(), (s) => {
      const l = s.name.slice(1, -1);
      if (!(!l.startsWith("*.") || l.includes("/")))
        return l.slice(1);
    }) : [], i = [...sk(e), r], o = yc(e);
    return UF(o) ? XN(e, i) : i;
  }
  function nHe(e, t, r, i) {
    e = e.map((s) => Wo(Cm(s) ? s : Pi(t, s)));
    const o = sn(e, (s) => gv(s, r, t, i) ? r.substr(s.length) : void 0);
    return fA([...e.map((s) => Pi(s, o)), r], FS, ku);
  }
  function rHe(e, t, r, i, o, s, l) {
    const f = o.project || s.getCurrentDirectory(), d = !(s.useCaseSensitiveFileNames && s.useCaseSensitiveFileNames()), y = nHe(e, f, r, d);
    return wo(y, (h) => Do(Lw(t, h, i, s, !0, l).values()));
  }
  function Lw(e, t, r, i, o, s, l = vte()) {
    var f;
    e === void 0 && (e = ""), e = Jl(e), mv(e) || (e = _i(e)), e === "" && (e = "." + Ns), e = wu(e);
    const d = hv(t, e), y = mv(d) ? d : _i(d);
    if (!o) {
      const L = ave(y, i);
      if (L) {
        const O = $I(L, i).typesVersions;
        if (typeof O == "object") {
          const k = (f = f5(O)) == null ? void 0 : f.paths;
          if (k) {
            const B = _i(L), V = d.slice(wu(B).length);
            if (SSe(l, V, B, r, i, k))
              return l;
          }
        }
      }
    }
    const h = !(i.useCaseSensitiveFileNames && i.useCaseSensitiveFileNames());
    if (!n9(i, y))
      return l;
    const b = Y$(i, y, r.extensionsToSearch, void 0, ["./*"]);
    if (b)
      for (let L of b) {
        if (L = Wo(L), s && QE(L, s, t, h) === 0)
          continue;
        const { name: I, extension: O } = TSe(du(L), i.getCompilationSettings(), r);
        l.add(tL(I, "script", O));
      }
    const A = e9(i, y);
    if (A)
      for (const L of A) {
        const I = du(Wo(L));
        I !== "@types" && l.add(bte(I));
      }
    return l;
  }
  function TSe(e, t, r) {
    const i = G1.tryGetRealFileNameForNonJsDeclarationFileName(e);
    if (i)
      return { name: i, extension: bh(i) };
    if (r.referenceKind === 0)
      return { name: e, extension: bh(e) };
    const o = aq(r.endingPreference, r.resolutionMode, t, r.importingSourceFile);
    if (o === 3) {
      if (bl(e, q3))
        return { name: e, extension: bh(e) };
      const l = G1.tryGetJSExtensionForFile(e, t);
      return l ? { name: I1(e, l), extension: l } : { name: e, extension: bh(e) };
    }
    if ((o === 0 || o === 1) && bl(e, [".js", ".jsx", ".ts", ".tsx", ".d.ts"]))
      return { name: Md(e), extension: bh(e) };
    const s = G1.tryGetJSExtensionForFile(e, t);
    return s ? { name: I1(e, s), extension: s } : { name: e, extension: bh(e) };
  }
  function SSe(e, t, r, i, o, s) {
    const l = (d) => s[d], f = (d, y) => {
      const h = nC(d), b = nC(y), A = typeof h == "object" ? h.prefix.length : d.length, L = typeof b == "object" ? b.prefix.length : y.length;
      return Vs(L, A);
    };
    return xSe(e, t, r, i, o, $h(s), l, f);
  }
  function xSe(e, t, r, i, o, s, l, f) {
    let d = [], y;
    for (const h of s) {
      if (h === ".")
        continue;
      const b = h.replace(/^\.\//, ""), A = l(h);
      if (A) {
        const L = nC(b);
        if (!L)
          continue;
        const I = typeof L == "object" && O4(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: aHe(b, A, t, r, i, o).map(({ name: k, kind: B, extension: V }) => tL(k, B, V))
        });
      }
    }
    return d.forEach((h) => h.results.forEach((b) => e.add(b))), y !== void 0;
  }
  function iHe(e, t, r, i, o, s, l) {
    const { baseUrl: f, paths: d } = i, y = vte(), h = yc(i);
    if (f) {
      const A = i.project || o.getCurrentDirectory(), L = Wo(Pi(A, f));
      Lw(e, L, s, o, !1, void 0, y), d && SSe(y, e, L, s, o, d);
    }
    const b = CSe(e);
    for (const A of sHe(e, b, l))
      y.add(tL(A, "external module name", void 0));
    if (kSe(o, i, t, b, s, y), UF(h)) {
      let A = !1;
      if (b === void 0)
        for (const L of lHe(o, t)) {
          const I = tL(L, "external module name", void 0);
          y.has(I.name) || (A = !0, y.add(I));
        }
      if (!A) {
        let L = (I) => {
          const O = Pi(I, "node_modules");
          n9(o, O) && Lw(e, O, s, o, !1, void 0, y);
        };
        if (b && Yz(i)) {
          const I = L;
          L = (O) => {
            const k = ad(e);
            k.shift();
            let B = k.shift();
            if (!B)
              return I(O);
            if (ba(B, "@")) {
              const te = k.shift();
              if (!te)
                return I(O);
              B = Pi(B, te);
            }
            const V = Pi(O, "node_modules", B), H = Pi(V, "package.json");
            if (t9(o, H)) {
              const X = $I(H, o).exports;
              if (X) {
                if (typeof X != "object" || X === null)
                  return;
                const Y = $h(X), P = k.join("/") + (k.length && mv(e) ? "/" : ""), de = r === 99 ? ["node", "import", "types"] : ["node", "require", "types"];
                xSe(y, P, V, s, o, Y, (ne) => XE(ASe(X[ne], de)), LK);
                return;
              }
            }
            return I(O);
          };
        }
        Zh(t, L);
      }
    }
    return Do(y.values());
  }
  function ASe(e, t) {
    if (typeof e == "string")
      return e;
    if (e && typeof e == "object" && !Ba(e)) {
      for (const r in e)
        if (r === "default" || t.indexOf(r) > -1 || u8(t, r)) {
          const i = e[r];
          return ASe(i, t);
        }
    }
  }
  function CSe(e) {
    return Tte(e) ? mv(e) ? e : _i(e) : void 0;
  }
  function aHe(e, t, r, i, o, s) {
    if (!tl(e, "*"))
      return uu(e, "*") ? rt : d(e, "script");
    const l = e.slice(0, e.length - 1), f = vj(r, l);
    if (f === void 0)
      return e[e.length - 2] === "/" ? d(l, "directory") : wo(t, (h) => {
        var b;
        return (b = LSe("", i, h, o, s)) == null ? void 0 : b.map(({ name: A, ...L }) => ({ name: l + A, ...L }));
      });
    return wo(t, (y) => LSe(f, i, y, o, s));
    function d(y, h) {
      return ba(y, r) ? [{ name: $E(y), kind: h, extension: void 0 }] : rt;
    }
  }
  function LSe(e, t, r, i, o) {
    if (!o.readDirectory)
      return;
    const s = nC(r);
    if (s === void 0 || Ua(s))
      return;
    const l = hv(s.prefix), f = mv(s.prefix) ? l : _i(l), d = mv(s.prefix) ? "" : du(l), y = Tte(e), h = y ? mv(e) ? e : _i(e) : void 0, b = y ? Pi(f, d + h) : f, A = Wo(s.suffix), L = Wo(Pi(t, b)), I = y ? L : wu(L) + d, O = A ? "**/*" + A : "./*", k = fa(Y$(o, L, i.extensionsToSearch, void 0, [O]), (H) => {
      const te = V(H);
      if (te) {
        if (Tte(te))
          return bte(ad(ISe(te))[1]);
        const { name: X, extension: Y } = TSe(te, o.getCompilationSettings(), i);
        return tL(X, "script", Y);
      }
    }), B = A ? rt : fa(e9(o, L), (H) => H === "node_modules" ? void 0 : bte(H));
    return [...k, ...B];
    function V(H) {
      const te = oHe(Wo(H), I, A);
      return te === void 0 ? void 0 : ISe(te);
    }
  }
  function oHe(e, t, r) {
    return ba(e, t) && tl(e, r) ? e.slice(t.length, e.length - r.length) : void 0;
  }
  function ISe(e) {
    return e[0] === Ns ? e.slice(1) : e;
  }
  function sHe(e, t, r) {
    const o = r.getAmbientModules().map((s) => G_(s.name)).filter((s) => ba(s, e) && s.indexOf("*") < 0);
    if (t !== void 0) {
      const s = wu(t);
      return o.map((l) => rI(l, s));
    }
    return o;
  }
  function cHe(e, t, r, i) {
    const o = ia(e, t), s = dh(e.text, o.pos), l = s && cn(s, (I) => t >= I.pos && t <= I.end);
    if (!l)
      return;
    const f = e.text.slice(l.pos, t), d = wSe.exec(f);
    if (!d)
      return;
    const [, y, h, b] = d, A = _i(e.path), L = h === "path" ? Lw(b, A, Ete(r, 0, e), i, !0, e.path) : h === "types" ? kSe(i, r, A, CSe(b), Ete(r, 1, e)) : D.fail();
    return bSe(b, l.pos + y.length, Do(L.values()));
  }
  function kSe(e, t, r, i, o, s = vte()) {
    const l = /* @__PURE__ */ new Map(), f = r9(() => s8(t, e)) || rt;
    for (const y of f)
      d(y);
    for (const y of $$(r, e)) {
      const h = Pi(_i(y), "node_modules/@types");
      d(h);
    }
    return s;
    function d(y) {
      if (n9(e, y))
        for (const h of e9(e, y)) {
          const b = T5(h);
          if (!(t.types && !wi(t.types, b)))
            if (i === void 0)
              l.has(b) || (s.add(tL(b, "external module name", void 0)), l.set(b, !0));
            else {
              const A = Pi(y, h), L = Zz(i, b, q0(e));
              L !== void 0 && Lw(L, A, o, e, !1, void 0, s);
            }
        }
    }
  }
  function lHe(e, t) {
    if (!e.readFile || !e.fileExists)
      return rt;
    const r = [];
    for (const i of $$(t, e)) {
      const o = $I(i, e);
      for (const s of DSe) {
        const l = o[s];
        if (l)
          for (const f in l)
            Rs(l, f) && !ba(f, "@types/") && r.push(f);
      }
    }
    return r;
  }
  function uHe(e, t) {
    const r = Math.max(e.lastIndexOf(Ns), e.lastIndexOf(CR)), i = r !== -1 ? r + 1 : 0, o = e.length - i;
    return o === 0 || N_(e.substr(i, o), 99) ? void 0 : Ll(t + i, o);
  }
  function dHe(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 Tte(e) {
    return uu(e, Ns);
  }
  function fHe(e) {
    return eo(e.parent) && zl(e.parent.arguments) === e && Ve(e.parent.expression) && e.parent.expression.escapedText === "require";
  }
  var Ste, wSe, DSe, _He = C({
    "src/services/stringCompletions.ts"() {
      Xr(), xte(), Ste = {
        directory: 0,
        script: 1,
        ["external module name"]: 2
      }, wSe = /^(\/\/\/\s*<reference\s+(path|types)\s*=\s*(?:'|"))([^\3"]*)$/, DSe = ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"];
    }
  }), SG = {};
  le(SG, {
    getStringLiteralCompletionDetails: () => Kje,
    getStringLiteralCompletions: () => qje
  });
  var pHe = C({
    "src/services/_namespaces/ts.Completions.StringCompletions.ts"() {
      _He();
    }
  }), t2 = {};
  le(t2, {
    CompletionKind: () => gte,
    CompletionSource: () => mte,
    SortText: () => iu,
    StringCompletions: () => SG,
    SymbolOriginInfoKind: () => hte,
    createCompletionDetails: () => L6,
    createCompletionDetailsForSymbol: () => ute,
    getCompletionEntriesFromSymbols: () => cte,
    getCompletionEntryDetails: () => Sje,
    getCompletionEntrySymbol: () => Aje,
    getCompletionsAtPosition: () => nje,
    getPropertiesForObjectExpression: () => vG,
    moduleSpecifierResolutionCacheAttemptLimit: () => pte,
    moduleSpecifierResolutionLimit: () => TG
  });
  var xte = C({
    "src/services/_namespaces/ts.Completions.ts"() {
      zje(), pHe();
    }
  });
  function Ate(e, t, r, i) {
    const o = yHe(e, r, i);
    return (s, l, f) => {
      const { directImports: d, indirectUsers: y } = mHe(e, t, o, l, r, i);
      return { indirectUsers: y, ...hHe(d, s, l.exportKind, r, f) };
    };
  }
  function mHe(e, t, r, { exportingModuleSymbol: i, exportKind: o }, s, l) {
    const f = WC(), d = WC(), y = [], h = !!i.globalExports, b = 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)
          g1(H) && t.has(H.getSourceFile().fileName) && B(H);
      return b.map(er);
    }
    function L(H) {
      const te = V(H);
      if (te) {
        for (const X of te)
          if (f(X))
            switch (l && l.throwIfCancellationRequested(), X.kind) {
              case 210:
                if (rf(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, Kr(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 && tx(X) && B(D6(X));
                break;
              case 275:
                X.exportClause ? X.exportClause.kind === 277 ? B(D6(X), !0) : y.push(X) : L(SHe(X, s));
                break;
              case 202:
                !h && X.isTypeOf && !X.qualifier && O(X) && B(X.getSourceFile(), !0), y.push(X);
                break;
              default:
                D.failBadSyntaxKind(X, "Unexpected import kind.");
            }
      }
    }
    function I(H) {
      const te = rr(H, xG) || H.getSourceFile();
      B(te, !!O(H, !0));
    }
    function O(H, te = !1) {
      return rr(H, (X) => te && xG(X) ? "quit" : q_(X) && kt(X.modifiers, C7));
    }
    function k(H, te, X, Y) {
      if (o === 2)
        Y || y.push(H);
      else if (!h) {
        const P = D6(H);
        D.assert(P.kind === 308 || P.kind === 264), X || gHe(P, te, s) ? B(P, !0) : B(P);
      }
    }
    function B(H, te = !1) {
      if (D.assert(!h), !d(H) || (b.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)
          _g(de) || B(D6(de), !0);
    }
    function V(H) {
      return r.get(yo(H).toString());
    }
  }
  function hHe(e, t, r, i, o) {
    const s = [], l = [];
    function f(A, L) {
      s.push([A, L]);
    }
    if (e)
      for (const A of e)
        d(A);
    return { importSearches: s, singleReferences: l };
    function d(A) {
      if (A.kind === 268) {
        Lte(A) && y(A.name);
        return;
      }
      if (A.kind === 79) {
        y(A);
        return;
      }
      if (A.kind === 202) {
        if (A.qualifier) {
          const O = Sf(A.qualifier);
          O.escapedText === Oc(t) && l.push(O);
        } else
          r === 2 && l.push(A.argument.literal);
        return;
      }
      if (A.moduleSpecifier.kind !== 10)
        return;
      if (A.kind === 275) {
        A.exportClause && z_(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 === HF(t))) {
        const O = i.getSymbolAtLocation(L);
        f(L, O);
      }
    }
    function y(A) {
      r === 2 && (!o || b(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 (b((O || I).escapedText))
            if (O)
              l.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 b(A) {
      return A === t.escapedName || r !== 0 && A === "default";
    }
  }
  function gHe(e, t, r) {
    const i = r.getSymbolAtLocation(t);
    return !!NSe(e, (o) => {
      if (!Xl(o))
        return;
      const { exportClause: s, moduleSpecifier: l } = o;
      return !l && s && z_(s) && s.elements.some((f) => r.getExportSpecifierLocalTargetSymbol(f) === i);
    });
  }
  function RSe(e, t, r) {
    var i;
    const o = [], s = e.getTypeChecker();
    for (const l of t) {
      const f = r.valueDeclaration;
      if ((f == null ? void 0 : f.kind) === 308) {
        for (const d of l.referencedFiles)
          e.getSourceFileFromReference(l, d) === f && o.push({ kind: "reference", referencingFile: l, ref: d });
        for (const d of l.typeReferenceDirectives) {
          const y = (i = e.getResolvedTypeReferenceDirectives().get(d.fileName, d.resolutionMode || l.impliedNodeFormat)) == null ? void 0 : i.resolvedTypeReferenceDirective;
          y !== void 0 && y.resolvedFileName === f.fileName && o.push({ kind: "reference", referencingFile: l, ref: d });
        }
      }
      OSe(l, (d, y) => {
        s.getSymbolAtLocation(y) === r && o.push({ kind: "import", literal: y });
      });
    }
    return o;
  }
  function yHe(e, t, r) {
    const i = /* @__PURE__ */ new Map();
    for (const o of e)
      r && r.throwIfCancellationRequested(), OSe(o, (s, l) => {
        const f = t.getSymbolAtLocation(l);
        if (f) {
          const d = yo(f).toString();
          let y = i.get(d);
          y || i.set(d, y = []), y.push(s);
        }
      });
    return i;
  }
  function NSe(e, t) {
    return ze(e.kind === 308 ? e.statements : e.body.statements, (r) => t(r) || xG(r) && ze(r.body && r.body.statements, t));
  }
  function OSe(e, t) {
    if (e.externalModuleIndicator || e.imports !== void 0)
      for (const r of e.imports)
        t(gN(r), r);
    else
      NSe(e, (r) => {
        switch (r.kind) {
          case 275:
          case 269: {
            const i = r;
            i.moduleSpecifier && Go(i.moduleSpecifier) && t(i, i.moduleSpecifier);
            break;
          }
          case 268: {
            const i = r;
            Lte(i) && t(i, i.moduleReference.expression);
            break;
          }
        }
      });
  }
  function PSe(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 : l(t.exportSymbol, f(y));
      {
        const L = bHe(y, e);
        if (L && Kr(L, 1))
          return ru(L) && L.moduleReference === e ? i ? void 0 : { kind: 0, symbol: r.getSymbolAtLocation(L.name) } : l(t, f(L));
        if (Ah(y))
          return l(t, 0);
        if (Mc(y))
          return b(y);
        if (Mc(h))
          return b(h);
        if (br(y))
          return A(y, !0);
        if (br(h))
          return A(h, !0);
        if (vJ(y) || _J(y))
          return l(t, 0);
      }
      function b(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 (Ac(L)) {
          case 1:
            O = 0;
            break;
          case 2:
            O = 2;
            break;
          default:
            return;
        }
        const k = I ? r.getSymbolAtLocation(sde(ro(L.left, sc))) : t;
        return k && l(k, O);
      }
    }
    function s() {
      if (!EHe(e))
        return;
      let y = r.getImmediateAliasedSymbol(t);
      if (!y || (y = THe(y, r), y.escapedName === "export=" && (y = vHe(y, r), y === void 0)))
        return;
      const h = HF(y);
      if (h === void 0 || h === "default" || h === t.escapedName)
        return { kind: 0, symbol: y };
    }
    function l(d, y) {
      const h = Cte(d, y, r);
      return h && { kind: 1, symbol: d, exportInfo: h };
    }
    function f(d) {
      return Kr(d, 1024) ? 1 : 0;
    }
  }
  function vHe(e, t) {
    var r, i;
    if (e.flags & 2097152)
      return t.getImmediateAliasedSymbol(e);
    const o = D.checkDefined(e.valueDeclaration);
    if (Mc(o))
      return (r = ii(o.expression, km)) == null ? void 0 : r.symbol;
    if (br(o))
      return (i = ii(o.right, km)) == null ? void 0 : i.symbol;
    if (Hi(o))
      return o.symbol;
  }
  function bHe(e, t) {
    const r = zi(e) ? e : us(e) ? bA(e) : void 0;
    return r ? e.name !== t || EC(r.parent) ? void 0 : cl(r.parent.parent) ? r.parent.parent : void 0 : e;
  }
  function EHe(e) {
    const { parent: t } = e;
    switch (t.kind) {
      case 268:
        return t.name === e && Lte(t);
      case 273:
        return !t.propertyName;
      case 270:
      case 271:
        return D.assert(t.name === e), !0;
      case 205:
        return fr(e) && E1(t.parent.parent);
      default:
        return !1;
    }
  }
  function Cte(e, t, r) {
    const i = e.parent;
    if (!i)
      return;
    const o = r.getMergedSymbol(i);
    return $8(o) ? { exportingModuleSymbol: o, exportKind: t } : void 0;
  }
  function THe(e, t) {
    if (e.declarations)
      for (const r of e.declarations) {
        if (cd(r) && !r.propertyName && !r.parent.parent.moduleSpecifier)
          return t.getExportSpecifierLocalTargetSymbol(r) || e;
        if (Mr(r) && hh(r.expression) && !Di(r.name))
          return t.getSymbolAtLocation(r);
        if ($f(r) && br(r.parent.parent) && Ac(r.parent.parent) === 2)
          return t.getExportSpecifierLocalTargetSymbol(r.name);
      }
    return e;
  }
  function SHe(e, t) {
    return t.getMergedSymbol(D6(e).symbol);
  }
  function D6(e) {
    if (e.kind === 210)
      return e.getSourceFile();
    const { parent: t } = e;
    return t.kind === 308 ? t : (D.assert(t.kind === 265), ro(t.parent, xG));
  }
  function xG(e) {
    return e.kind === 264 && e.name.kind === 10;
  }
  function Lte(e) {
    return e.moduleReference.kind === 280 && e.moduleReference.expression.kind === 10;
  }
  var Ite, kte, xHe = C({
    "src/services/importTracker.ts"() {
      Xr(), Ite = /* @__PURE__ */ ((e) => (e[e.Named = 0] = "Named", e[e.Default = 1] = "Default", e[e.ExportEquals = 2] = "ExportEquals", e))(Ite || {}), kte = /* @__PURE__ */ ((e) => (e[e.Import = 0] = "Import", e[e.Export = 1] = "Export", e))(kte || {});
    }
  });
  function Lh(e, t = 1) {
    return {
      kind: t,
      node: e.name || e,
      context: AHe(e)
    };
  }
  function MSe(e) {
    return e && e.kind === void 0;
  }
  function AHe(e) {
    if (mu(e))
      return K1(e);
    if (e.parent) {
      if (!mu(e.parent) && !Mc(e.parent)) {
        if (fr(e)) {
          const r = br(e.parent) ? e.parent : sc(e.parent) && br(e.parent.parent) && e.parent.parent.left === e.parent ? e.parent.parent : void 0;
          if (r && Ac(r) !== 0)
            return K1(r);
        }
        if (Ch(e.parent) || wx(e.parent))
          return e.parent.parent;
        if (kx(e.parent) || N1(e.parent) || EI(e.parent))
          return e.parent;
        if (Es(e)) {
          const r = yN(e);
          if (r) {
            const i = rr(r, (o) => mu(o) || Ca(o) || CI(o));
            return mu(i) ? K1(i) : i;
          }
        }
        const t = rr(e, Ts);
        return t ? K1(t.parent) : void 0;
      }
      if (e.parent.name === e || Hc(e.parent) || Mc(e.parent) || (qS(e.parent) || us(e.parent)) && e.parent.propertyName === e || e.kind === 88 && Kr(e.parent, 1025))
        return K1(e.parent);
    }
  }
  function K1(e) {
    if (e)
      switch (e.kind) {
        case 257:
          return !Mu(e.parent) || e.parent.declarations.length !== 1 ? e : cl(e.parent.parent) ? e.parent.parent : CA(e.parent.parent) ? K1(e.parent.parent) : e.parent;
        case 205:
          return K1(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 nu(e.parent) ? e.parent : e;
        case 247:
        case 246:
          return {
            start: e.initializer,
            end: e.expression
          };
        case 299:
        case 300:
          return Ly(e.parent) ? K1(rr(e.parent, (t) => br(t) || CA(t))) : e;
        default:
          return e;
      }
  }
  function wte(e, t, r) {
    if (!r)
      return;
    const i = MSe(r) ? N6(r.start, t, r.end) : N6(r, t);
    return i.start !== e.start || i.length !== e.length ? { contextSpan: i } : void 0;
  }
  function CHe(e, t, r, i, o) {
    const s = Lf(i, o), l = { use: 1 }, f = eS.getReferencedSymbolsForNode(o, s, e, r, t, l), d = e.getTypeChecker(), y = eS.getAdjustedNode(s, l), h = LHe(y) ? d.getSymbolAtLocation(y) : void 0;
    return !f || !f.length ? void 0 : fa(f, ({ definition: b, references: A }) => b && {
      definition: d.runWithCancellationToken(t, (L) => wHe(b, L, s)),
      references: A.map((L) => RHe(L, h))
    });
  }
  function LHe(e) {
    return e.kind === 88 || !!xN(e) || AN(e) || e.kind === 135 && Hc(e.parent);
  }
  function IHe(e, t, r, i, o) {
    const s = Lf(i, o);
    let l;
    const f = FSe(e, t, r, s, o);
    if (s.parent.kind === 208 || s.parent.kind === 205 || s.parent.kind === 209 || s.kind === 106)
      l = f && [...f];
    else if (f) {
      const y = mj(f), h = /* @__PURE__ */ new Map();
      for (; !y.isEmpty(); ) {
        const b = y.dequeue();
        if (!hp(h, ds(b.node)))
          continue;
        l = Bn(l, b);
        const A = FSe(e, t, r, b.node, b.node.pos);
        A && y.enqueue(...A);
      }
    }
    const d = e.getTypeChecker();
    return en(l, (y) => OHe(y, d));
  }
  function FSe(e, t, r, i, o) {
    if (i.kind === 308)
      return;
    const s = e.getTypeChecker();
    if (i.parent.kind === 300) {
      const l = [];
      return eS.getReferenceEntriesForShorthandPropertyAssignment(i, s, (f) => l.push(Lh(f))), l;
    } else if (i.kind === 106 || sd(i.parent)) {
      const l = s.getSymbolAtLocation(i);
      return l.valueDeclaration && [Lh(l.valueDeclaration)];
    } else
      return BSe(o, i, e, r, t, { implementations: !0, use: 1 });
  }
  function kHe(e, t, r, i, o, s, l) {
    return en(GSe(eS.getReferencedSymbolsForNode(o, i, e, r, t, s)), (f) => l(f, i, e.getTypeChecker()));
  }
  function BSe(e, t, r, i, o, s = {}, l = new Set(i.map((f) => f.fileName))) {
    return GSe(eS.getReferencedSymbolsForNode(e, t, r, i, o, s, l));
  }
  function GSe(e) {
    return e && wo(e, (t) => t.references);
  }
  function wHe(e, t, r) {
    const i = (() => {
      switch (e.type) {
        case 0: {
          const { symbol: h } = e, { displayParts: b, kind: A } = USe(h, t, r), L = b.map((k) => k.text).join(""), I = h.declarations && zl(h.declarations), O = I ? Aa(I) || I : r;
          return {
            ...R6(O),
            name: L,
            kind: A,
            displayParts: b,
            context: K1(I)
          };
        }
        case 1: {
          const { node: h } = e;
          return { ...R6(h), name: h.text, kind: "label", displayParts: [Ad(h.text, 17)] };
        }
        case 2: {
          const { node: h } = e, b = ho(h.kind);
          return { ...R6(h), name: b, kind: "keyword", displayParts: [{ text: b, kind: "keyword" }] };
        }
        case 3: {
          const { node: h } = e, b = t.getSymbolAtLocation(h), A = b && wy.getSymbolDisplayPartsDocumentationAndSymbolKind(t, b, h.getSourceFile(), WT(h), h).displayParts || [If("this")];
          return { ...R6(h), name: "this", kind: "var", displayParts: A };
        }
        case 4: {
          const { node: h } = e;
          return {
            ...R6(h),
            name: h.text,
            kind: "var",
            displayParts: [Ad(El(h), 8)]
          };
        }
        case 5:
          return {
            textSpan: jv(e.reference),
            sourceFile: e.file,
            name: e.reference.fileName,
            kind: "string",
            displayParts: [Ad(`"${e.reference.fileName}"`, 8)]
          };
        default:
          return D.assertNever(e);
      }
    })(), { sourceFile: o, textSpan: s, name: l, kind: f, displayParts: d, context: y } = i;
    return {
      containerKind: "",
      containerName: "",
      fileName: o.fileName,
      kind: f,
      name: l,
      textSpan: s,
      displayParts: d,
      ...wte(s, o, y)
    };
  }
  function R6(e) {
    const t = e.getSourceFile();
    return {
      sourceFile: t,
      textSpan: N6(Ts(e) ? e.expression : e, t)
    };
  }
  function USe(e, t, r) {
    const i = eS.getIntersectingMeaningFromDeclarations(r, e), o = e.declarations && zl(e.declarations) || r, { displayParts: s, symbolKind: l } = wy.getSymbolDisplayPartsDocumentationAndSymbolKind(t, e, o.getSourceFile(), o, o, i);
    return { displayParts: s, kind: l };
  }
  function DHe(e, t, r, i) {
    return { ...AG(e), ...i && NHe(e, t, r) };
  }
  function RHe(e, t) {
    const r = VSe(e);
    return t ? {
      ...r,
      isDefinition: e.kind !== 0 && HSe(e.node, t)
    } : r;
  }
  function VSe(e) {
    const t = AG(e);
    if (e.kind === 0)
      return { ...t, isWriteAccess: !1 };
    const { kind: r, node: i } = e;
    return {
      ...t,
      isWriteAccess: jSe(i),
      isInString: r === 2 ? !0 : void 0
    };
  }
  function AG(e) {
    if (e.kind === 0)
      return { textSpan: e.textSpan, fileName: e.fileName };
    {
      const t = e.node.getSourceFile(), r = N6(e.node, t);
      return {
        textSpan: r,
        fileName: t.fileName,
        ...wte(r, t, e.context)
      };
    }
  }
  function NHe(e, t, r) {
    if (e.kind !== 0 && Ve(t)) {
      const { node: i, kind: o } = e, s = i.parent, l = t.text, f = $f(s);
      if (f || e6(s) && s.name === i && s.dotDotDotToken === void 0) {
        const d = { prefixText: l + ": " }, y = { suffixText: ": " + l };
        if (o === 3)
          return d;
        if (o === 4)
          return y;
        if (f) {
          const h = s.parent;
          return xs(h) && br(h.parent) && hh(h.parent.left) ? d : y;
        } else
          return d;
      } else if (xd(s) && !s.propertyName) {
        const d = cd(t.parent) ? r.getExportSpecifierLocalTargetSymbol(t.parent) : r.getSymbolAtLocation(t);
        return wi(d.declarations, s) ? { prefixText: l + " as " } : rm;
      } else if (cd(s) && !s.propertyName)
        return t === e.node || r.getSymbolAtLocation(t) === r.getSymbolAtLocation(e.node) ? { prefixText: l + " as " } : { suffixText: " as " + l };
    }
    return rm;
  }
  function OHe(e, t) {
    const r = AG(e);
    if (e.kind !== 0) {
      const { node: i } = e;
      return {
        ...r,
        ...PHe(i, t)
      };
    } else
      return { ...r, kind: "", displayParts: [] };
  }
  function PHe(e, t) {
    const r = t.getSymbolAtLocation(mu(e) && e.name ? e.name : e);
    return r ? USe(r, t, e) : e.kind === 207 ? {
      kind: "interface",
      displayParts: [yu(20), If("object literal"), yu(21)]
    } : e.kind === 228 ? {
      kind: "local class",
      displayParts: [yu(20), If("anonymous local class"), yu(21)]
    } : { kind: q1(e), displayParts: [] };
  }
  function MHe(e) {
    const t = AG(e);
    if (e.kind === 0)
      return {
        fileName: t.fileName,
        span: {
          textSpan: t.textSpan,
          kind: "reference"
        }
      };
    const r = jSe(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 N6(e, t, r) {
    let i = e.getStart(t), o = (r || e).getEnd();
    return Es(e) && o - i > 2 && (D.assert(r === void 0), i += 1, o -= 1), _l(i, o);
  }
  function Dte(e) {
    return e.kind === 0 ? e.textSpan : N6(e.node, e.node.getSourceFile());
  }
  function jSe(e) {
    const t = xN(e);
    return !!t && FHe(t) || e.kind === 88 || tk(e);
  }
  function HSe(e, t) {
    var r;
    if (!t)
      return !1;
    const i = xN(e) || (e.kind === 88 ? e.parent : AN(e) || e.kind === 135 && Hc(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 FHe(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 !Ly(e.parent);
      case 259:
      case 215:
      case 173:
      case 171:
      case 174:
      case 175:
        return !!e.body;
      case 257:
      case 169:
        return !!e.initializer || EC(e.parent);
      case 170:
      case 168:
      case 351:
      case 344:
        return !1;
      default:
        return D.failBadSyntaxKind(e);
    }
  }
  var Rte, Nte, Ote, eS, BHe = C({
    "src/services/findAllReferences.ts"() {
      Xr(), WSe(), Rte = /* @__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))(Rte || {}), Nte = /* @__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))(Nte || {}), Ote = /* @__PURE__ */ ((e) => (e[e.Other = 0] = "Other", e[e.References = 1] = "References", e[e.Rename = 2] = "Rename", e))(Ote || {}), ((e) => {
        function t(ke, gt, Nt, xe, _t, _e = {}, re = new Set(xe.map((he) => he.fileName))) {
          var he, j, je;
          if (gt = r(gt, _e), Hi(gt)) {
            const ue = kw.getReferenceAtPosition(gt, ke, Nt);
            if (!(ue != null && ue.file))
              return;
            const pt = Nt.getTypeChecker().getMergedSymbol(ue.file.symbol);
            if (pt)
              return y(Nt, pt, !1, xe, re);
            const Wt = Nt.getFileIncludeReasons();
            return Wt ? [{
              definition: { type: 5, reference: ue.reference, file: gt },
              references: o(ue.file, Wt, Nt) || rt
            }] : void 0;
          }
          if (!_e.implementations) {
            const ue = b(gt, xe, _t);
            if (ue)
              return ue;
          }
          const Qe = Nt.getTypeChecker(), Ke = Qe.getSymbolAtLocation(Hc(gt) && gt.parent.name || gt);
          if (!Ke) {
            if (!_e.implementations && Es(gt)) {
              if (WF(gt)) {
                const ue = Nt.getFileIncludeReasons(), pt = (je = (j = (he = gt.getSourceFile().resolvedModules) == null ? void 0 : he.get(gt.text, vp(gt.getSourceFile(), gt))) == null ? void 0 : j.resolvedModule) == null ? void 0 : je.resolvedFileName, Wt = pt ? Nt.getSourceFile(pt) : void 0;
                if (Wt)
                  return [{ definition: { type: 4, node: gt }, references: o(Wt, ue, Nt) || rt }];
              }
              return At(gt, xe, Qe, _t);
            }
            return;
          }
          if (Ke.escapedName === "export=")
            return y(Nt, Ke.parent, !1, xe, re);
          const Ut = l(Ke, Nt, xe, _t, _e, re);
          if (Ut && !(Ke.flags & 33554432))
            return Ut;
          const ln = s(gt, Ke, Qe), Sn = ln && l(ln, Nt, xe, _t, _e, re), Er = A(Ke, gt, xe, re, Qe, _t, _e);
          return f(Nt, Ut, Er, Sn);
        }
        e.getReferencedSymbolsForNode = t;
        function r(ke, gt) {
          return gt.use === 1 ? ke = g$(ke) : gt.use === 2 && (ke = DF(ke)), ke;
        }
        e.getAdjustedNode = r;
        function i(ke, gt, Nt, xe = new Set(Nt.map((_t) => _t.fileName))) {
          var _t, _e;
          const re = (_t = gt.getSourceFile(ke)) == null ? void 0 : _t.symbol;
          if (re)
            return ((_e = y(gt, re, !1, Nt, xe)[0]) == null ? void 0 : _e.references) || rt;
          const he = gt.getFileIncludeReasons(), j = gt.getSourceFile(ke);
          return j && he && o(j, he, gt) || rt;
        }
        e.getReferencesForFileName = i;
        function o(ke, gt, Nt) {
          let xe;
          const _t = gt.get(ke.path) || rt;
          for (const _e of _t)
            if (nb(_e)) {
              const re = Nt.getSourceFileByPath(_e.file), he = tw(Nt.getSourceFileByPath, _e);
              FC(he) && (xe = Bn(xe, {
                kind: 0,
                fileName: re.fileName,
                textSpan: jv(he)
              }));
            }
          return xe;
        }
        function s(ke, gt, Nt) {
          if (ke.parent && kO(ke.parent)) {
            const xe = Nt.getAliasedSymbol(gt), _t = Nt.getMergedSymbol(xe);
            if (xe !== _t)
              return _t;
          }
        }
        function l(ke, gt, Nt, xe, _t, _e) {
          const re = ke.flags & 1536 && ke.declarations && cn(ke.declarations, Hi);
          if (!re)
            return;
          const he = ke.exports.get("export="), j = y(gt, ke, !!he, Nt, _e);
          if (!he || !_e.has(re.fileName))
            return j;
          const je = gt.getTypeChecker();
          return ke = af(he, je), f(gt, j, A(ke, void 0, Nt, _e, je, xe, _t));
        }
        function f(ke, ...gt) {
          let Nt;
          for (const xe of gt)
            if (!(!xe || !xe.length)) {
              if (!Nt) {
                Nt = xe;
                continue;
              }
              for (const _t of xe) {
                if (!_t.definition || _t.definition.type !== 0) {
                  Nt.push(_t);
                  continue;
                }
                const _e = _t.definition.symbol, re = Qi(Nt, (j) => !!j.definition && j.definition.type === 0 && j.definition.symbol === _e);
                if (re === -1) {
                  Nt.push(_t);
                  continue;
                }
                const he = Nt[re];
                Nt[re] = {
                  definition: he.definition,
                  references: he.references.concat(_t.references).sort((j, je) => {
                    const Qe = d(ke, j), Ke = d(ke, je);
                    if (Qe !== Ke)
                      return Vs(Qe, Ke);
                    const Ut = Dte(j), ln = Dte(je);
                    return Ut.start !== ln.start ? Vs(Ut.start, ln.start) : Vs(Ut.length, ln.length);
                  })
                };
              }
            }
          return Nt;
        }
        function d(ke, gt) {
          const Nt = gt.kind === 0 ? ke.getSourceFile(gt.fileName) : gt.node.getSourceFile();
          return ke.getSourceFiles().indexOf(Nt);
        }
        function y(ke, gt, Nt, xe, _t) {
          D.assert(!!gt.valueDeclaration);
          const _e = fa(RSe(ke, xe, gt), (he) => {
            if (he.kind === "import") {
              const j = he.literal.parent;
              if (Q0(j)) {
                const je = ro(j.parent, _g);
                if (Nt && !je.qualifier)
                  return;
              }
              return Lh(he.literal);
            } else
              return {
                kind: 0,
                fileName: he.referencingFile.fileName,
                textSpan: jv(he.ref)
              };
          });
          if (gt.declarations)
            for (const he of gt.declarations)
              switch (he.kind) {
                case 308:
                  break;
                case 264:
                  _t.has(he.getSourceFile().fileName) && _e.push(Lh(he.name));
                  break;
                default:
                  D.assert(!!(gt.flags & 33554432), "Expected a module symbol to be declared by a SourceFile or ModuleDeclaration.");
              }
          const re = gt.exports.get("export=");
          if (re != null && re.declarations)
            for (const he of re.declarations) {
              const j = he.getSourceFile();
              if (_t.has(j.fileName)) {
                const je = br(he) && Mr(he.left) ? he.left.expression : Mc(he) ? D.checkDefined(gs(he, 93, j)) : Aa(he) || he;
                _e.push(Lh(je));
              }
            }
          return _e.length ? [{ definition: { type: 0, symbol: gt }, references: _e }] : rt;
        }
        function h(ke) {
          return ke.kind === 146 && xx(ke.parent) && ke.parent.operator === 146;
        }
        function b(ke, gt, Nt) {
          if (lw(ke.kind))
            return ke.kind === 114 && Cx(ke.parent) || ke.kind === 146 && !h(ke) ? void 0 : Ue(gt, ke.kind, Nt, ke.kind === 146 ? h : void 0);
          if (OA(ke.parent) && ke.parent.name === ke)
            return $e(gt, Nt);
          if (bx(ke) && Lc(ke.parent))
            return [{ definition: { type: 2, node: ke }, references: [Lh(ke)] }];
          if (j8(ke)) {
            const xe = AF(ke.parent, ke.text);
            return xe && Te(xe.parent, xe);
          } else if (c$(ke))
            return Te(ke.parent, ke);
          if (HC(ke))
            return Nr(ke, gt, Nt);
          if (ke.kind === 106)
            return Ki(ke);
        }
        function A(ke, gt, Nt, xe, _t, _e, re) {
          const he = gt && O(ke, gt, _t, !Vr(re)) || ke, j = gt ? Ni(gt, he) : 7, je = [], Qe = new V(Nt, xe, gt ? I(gt) : 0, _t, _e, j, re, je), Ke = !Vr(re) || !he.declarations ? void 0 : cn(he.declarations, cd);
          if (Ke)
            Xe(Ke.name, he, Ke, Qe.createSearch(gt, ke, void 0), Qe, !0, !0);
          else if (gt && gt.kind === 88 && he.escapedName === "default" && he.parent)
            Et(gt, he, Qe), H(gt, he, { exportingModuleSymbol: he.parent, exportKind: 1 }, Qe);
          else {
            const Ut = Qe.createSearch(gt, he, void 0, { allSearchSymbols: gt ? vn(he, gt, _t, re.use === 2, !!re.providePrefixAndSuffixTextForRename, !!re.implementations) : [he] });
            L(he, Qe, Ut);
          }
          return je;
        }
        function L(ke, gt, Nt) {
          const xe = ne(ke);
          if (xe)
            We(xe, xe.getSourceFile(), Nt, gt, !(Hi(xe) && !wi(gt.sourceFiles, xe)));
          else
            for (const _t of gt.sourceFiles)
              gt.cancellationToken.throwIfCancellationRequested(), P(_t, Nt, gt);
        }
        function I(ke) {
          switch (ke.kind) {
            case 173:
            case 135:
              return 1;
            case 79:
              if (li(ke.parent))
                return D.assert(ke.parent.name === ke), 2;
            default:
              return 0;
          }
        }
        function O(ke, gt, Nt, xe) {
          const { parent: _t } = gt;
          return cd(_t) && xe ? He(gt, ke, _t, Nt) : sn(ke.declarations, (_e) => {
            if (!_e.parent) {
              if (ke.flags & 33554432)
                return;
              D.fail(`Unexpected symbol at ${D.formatSyntaxKind(gt.kind)}: ${D.formatSymbol(ke)}`);
            }
            return of(_e.parent) && Tx(_e.parent.parent) ? Nt.getPropertyOfType(Nt.getTypeFromTypeNode(_e.parent.parent), ke.name) : void 0;
          });
        }
        let k;
        ((ke) => {
          ke[ke.None = 0] = "None", ke[ke.Constructor = 1] = "Constructor", ke[ke.Class = 2] = "Class";
        })(k || (k = {}));
        function B(ke) {
          if (!(ke.flags & 33555968))
            return;
          const gt = ke.declarations && cn(ke.declarations, (Nt) => !Hi(Nt) && !Wc(Nt));
          return gt && gt.symbol;
        }
        class V {
          constructor(gt, Nt, xe, _t, _e, re, he, j) {
            this.sourceFiles = gt, this.sourceFilesSet = Nt, this.specialSearchKind = xe, this.checker = _t, this.cancellationToken = _e, this.searchMeaning = re, this.options = he, this.result = j, this.inheritsFromCache = /* @__PURE__ */ new Map(), this.markSeenContainingTypeReference = WC(), this.markSeenReExportRHS = WC(), this.symbolIdToReferences = [], this.sourceFileToSeenSymbols = [];
          }
          includesSourceFile(gt) {
            return this.sourceFilesSet.has(gt.fileName);
          }
          getImportSearches(gt, Nt) {
            return this.importTracker || (this.importTracker = Ate(this.sourceFiles, this.sourceFilesSet, this.checker, this.cancellationToken)), this.importTracker(gt, Nt, this.options.use === 2);
          }
          createSearch(gt, Nt, xe, _t = {}) {
            const {
              text: _e = G_(Oc(QA(Nt) || B(Nt) || Nt)),
              allSearchSymbols: re = [Nt]
            } = _t, he = oc(_e), j = this.options.implementations && gt ? Ar(gt, Nt, this.checker) : void 0;
            return { symbol: Nt, comingFrom: xe, text: _e, escapedText: he, parents: j, allSearchSymbols: re, includes: (je) => wi(re, je) };
          }
          referenceAdder(gt) {
            const Nt = yo(gt);
            let xe = this.symbolIdToReferences[Nt];
            return xe || (xe = this.symbolIdToReferences[Nt] = [], this.result.push({ definition: { type: 0, symbol: gt }, references: xe })), (_t, _e) => xe.push(Lh(_t, _e));
          }
          addStringOrCommentReference(gt, Nt) {
            this.result.push({
              definition: void 0,
              references: [{ kind: 0, fileName: gt, textSpan: Nt }]
            });
          }
          markSearchedSymbols(gt, Nt) {
            const xe = ds(gt), _t = this.sourceFileToSeenSymbols[xe] || (this.sourceFileToSeenSymbols[xe] = /* @__PURE__ */ new Set());
            let _e = !1;
            for (const re of Nt)
              _e = e1(_t, yo(re)) || _e;
            return _e;
          }
        }
        function H(ke, gt, Nt, xe) {
          const { importSearches: _t, singleReferences: _e, indirectUsers: re } = xe.getImportSearches(gt, Nt);
          if (_e.length) {
            const he = xe.referenceAdder(gt);
            for (const j of _e)
              X(j, xe) && he(j);
          }
          for (const [he, j] of _t)
            Be(he.getSourceFile(), xe.createSearch(he, j, 1), xe);
          if (re.length) {
            let he;
            switch (Nt.exportKind) {
              case 0:
                he = xe.createSearch(ke, gt, 1);
                break;
              case 1:
                he = xe.options.use === 2 ? void 0 : xe.createSearch(ke, gt, 1, { text: "default" });
                break;
            }
            if (he)
              for (const j of re)
                P(j, he, xe);
          }
        }
        function te(ke, gt, Nt, xe, _t, _e, re, he) {
          const j = Ate(ke, new Set(ke.map((Ut) => Ut.fileName)), gt, Nt), { importSearches: je, indirectUsers: Qe, singleReferences: Ke } = j(xe, { exportKind: re ? 1 : 0, exportingModuleSymbol: _t }, !1);
          for (const [Ut] of je)
            he(Ut);
          for (const Ut of Ke)
            Ve(Ut) && _g(Ut.parent) && he(Ut);
          for (const Ut of Qe)
            for (const ln of pe(Ut, re ? "default" : _e)) {
              const Sn = gt.getSymbolAtLocation(ln), Er = kt(Sn == null ? void 0 : Sn.declarations, (ue) => !!ii(ue, Mc));
              Ve(ln) && !qS(ln.parent) && (Sn === xe || Er) && he(ln);
            }
        }
        e.eachExportReference = te;
        function X(ke, gt) {
          return Oe(ke, gt) ? gt.options.use !== 2 ? !0 : Ve(ke) ? !(qS(ke.parent) && ke.escapedText === "default") : !1 : !1;
        }
        function Y(ke, gt) {
          if (ke.declarations)
            for (const Nt of ke.declarations) {
              const xe = Nt.getSourceFile();
              Be(xe, gt.createSearch(Nt, ke, 0), gt, gt.includesSourceFile(xe));
            }
        }
        function P(ke, gt, Nt) {
          UQ(ke).get(gt.escapedText) !== void 0 && Be(ke, gt, Nt);
        }
        function de(ke, gt) {
          return Ly(ke.parent.parent) ? gt.getPropertySymbolOfDestructuringAssignment(ke) : void 0;
        }
        function ne(ke) {
          const { declarations: gt, flags: Nt, parent: xe, valueDeclaration: _t } = ke;
          if (_t && (_t.kind === 215 || _t.kind === 228))
            return _t;
          if (!gt)
            return;
          if (Nt & 8196) {
            const he = cn(gt, (j) => Pd(j, 8) || Ju(j));
            return he ? z0(he, 260) : void 0;
          }
          if (gt.some(e6))
            return;
          const _e = xe && !(ke.flags & 262144);
          if (_e && !($8(xe) && !xe.globalExports))
            return;
          let re;
          for (const he of gt) {
            const j = WT(he);
            if (re && re !== j || !j || j.kind === 308 && !nf(j))
              return;
            if (re = j, Ps(re)) {
              let je;
              for (; je = cz(re); )
                re = je;
            }
          }
          return _e ? re.getSourceFile() : re;
        }
        function ye(ke, gt, Nt, xe = Nt) {
          return ie(ke, gt, Nt, () => !0, xe) || !1;
        }
        e.isSymbolReferencedInFile = ye;
        function ie(ke, gt, Nt, xe, _t = Nt) {
          const _e = Qd(ke.parent, ke.parent.parent) ? ss(gt.getSymbolsOfParameterPropertyDeclaration(ke.parent, ke.text)) : gt.getSymbolAtLocation(ke);
          if (_e)
            for (const re of pe(Nt, _e.name, _t)) {
              if (!Ve(re) || re === ke || re.escapedText !== ke.escapedText)
                continue;
              const he = gt.getSymbolAtLocation(re);
              if (he === _e || gt.getShorthandAssignmentValueSymbol(re.parent) === _e || cd(re.parent) && He(re, he, re.parent, gt) === _e) {
                const j = xe(re);
                if (j)
                  return j;
              }
            }
        }
        e.eachSymbolReferenceInFile = ie;
        function W(ke, gt) {
          return yn(pe(gt, ke), (_t) => !!xN(_t)).reduce((_t, _e) => {
            const re = xe(_e);
            return !kt(_t.declarationNames) || re === _t.depth ? (_t.declarationNames.push(_e), _t.depth = re) : re < _t.depth && (_t.declarationNames = [_e], _t.depth = re), _t;
          }, { depth: 1 / 0, declarationNames: [] }).declarationNames;
          function xe(_t) {
            let _e = 0;
            for (; _t; )
              _t = WT(_t), _e++;
            return _e;
          }
        }
        e.getTopMostDeclarationNamesInFile = W;
        function ce(ke, gt, Nt, xe) {
          if (!ke.name || !Ve(ke.name))
            return !1;
          const _t = D.checkDefined(Nt.getSymbolAtLocation(ke.name));
          for (const _e of gt)
            for (const re of pe(_e, _t.name)) {
              if (!Ve(re) || re === ke.name || re.escapedText !== ke.name.escapedText)
                continue;
              const he = xF(re), j = eo(he.parent) && he.parent.expression === he ? he.parent : void 0, je = Nt.getSymbolAtLocation(re);
              if (je && Nt.getRootSymbols(je).some((Qe) => Qe === _t) && xe(re, j))
                return !0;
            }
          return !1;
        }
        e.someSignatureUsage = ce;
        function pe(ke, gt, Nt = ke) {
          return ve(ke, gt, Nt).map((xe) => Lf(ke, xe));
        }
        function ve(ke, gt, Nt = ke) {
          const xe = [];
          if (!gt || !gt.length)
            return xe;
          const _t = ke.text, _e = _t.length, re = gt.length;
          let he = _t.indexOf(gt, Nt.pos);
          for (; he >= 0 && !(he > Nt.end); ) {
            const j = he + re;
            (he === 0 || !B0(_t.charCodeAt(he - 1), 99)) && (j === _e || !B0(_t.charCodeAt(j), 99)) && xe.push(he), he = _t.indexOf(gt, he + re + 1);
          }
          return xe;
        }
        function Te(ke, gt) {
          const Nt = ke.getSourceFile(), xe = gt.text, _t = fa(pe(Nt, xe, ke), (_e) => _e === gt || j8(_e) && AF(_e, xe) === gt ? Lh(_e) : void 0);
          return [{ definition: { type: 1, node: gt }, references: _t }];
        }
        function ee(ke, gt) {
          switch (ke.kind) {
            case 80:
              if (eb(ke.parent))
                return !0;
            case 79:
              return ke.text.length === gt.length;
            case 14:
            case 10: {
              const Nt = ke;
              return (CF(Nt) || f$(ke) || hye(ke) || eo(ke.parent) && ZS(ke.parent) && ke.parent.arguments[1] === ke) && Nt.text.length === gt.length;
            }
            case 8:
              return CF(ke) && ke.text.length === gt.length;
            case 88:
              return gt.length === 7;
            default:
              return !1;
          }
        }
        function $e(ke, gt) {
          const Nt = wo(ke, (xe) => (gt.throwIfCancellationRequested(), fa(pe(xe, "meta", xe), (_t) => {
            const _e = _t.parent;
            if (OA(_e))
              return Lh(_e);
          })));
          return Nt.length ? [{ definition: { type: 2, node: Nt[0].node }, references: Nt }] : void 0;
        }
        function Ue(ke, gt, Nt, xe) {
          const _t = wo(ke, (_e) => (Nt.throwIfCancellationRequested(), fa(pe(_e, ho(gt), _e), (re) => {
            if (re.kind === gt && (!xe || xe(re)))
              return Lh(re);
          })));
          return _t.length ? [{ definition: { type: 2, node: _t[0].node }, references: _t }] : void 0;
        }
        function Be(ke, gt, Nt, xe = !0) {
          return Nt.cancellationToken.throwIfCancellationRequested(), We(ke, ke, gt, Nt, xe);
        }
        function We(ke, gt, Nt, xe, _t) {
          if (xe.markSearchedSymbols(gt, Nt.allSearchSymbols))
            for (const _e of ve(gt, Nt.text, ke))
              Me(gt, _e, Nt, xe, _t);
        }
        function Oe(ke, gt) {
          return !!(HT(ke) & gt.searchMeaning);
        }
        function Me(ke, gt, Nt, xe, _t) {
          const _e = Lf(ke, gt);
          if (!ee(_e, Nt.text)) {
            !xe.options.implementations && (xe.options.findInStrings && qT(ke, gt) || xe.options.findInComments && Pye(ke, gt)) && xe.addStringOrCommentReference(ke.fileName, Ll(gt, Nt.text.length));
            return;
          }
          if (!Oe(_e, xe))
            return;
          let re = xe.checker.getSymbolAtLocation(_e);
          if (!re)
            return;
          const he = _e.parent;
          if (xd(he) && he.propertyName === _e)
            return;
          if (cd(he)) {
            D.assert(_e.kind === 79), Xe(_e, re, he, Nt, xe, _t);
            return;
          }
          const j = lr(Nt, re, _e, xe);
          if (!j) {
            Ct(re, Nt, xe);
            return;
          }
          switch (xe.specialSearchKind) {
            case 0:
              _t && Et(_e, j, xe);
              break;
            case 1:
              Vt(_e, ke, Nt, xe);
              break;
            case 2:
              tt(_e, Nt, xe);
              break;
            default:
              D.assertNever(xe.specialSearchKind);
          }
          fr(_e) && us(_e.parent) && E1(_e.parent.parent.parent) && (re = _e.parent.symbol, !re) || st(_e, re, Nt, xe);
        }
        function Xe(ke, gt, Nt, xe, _t, _e, re) {
          D.assert(!re || !!_t.options.providePrefixAndSuffixTextForRename, "If alwaysGetReferences is true, then prefix/suffix text must be enabled");
          const { parent: he, propertyName: j, name: je } = Nt, Qe = he.parent, Ke = He(ke, gt, Nt, _t.checker);
          if (!re && !xe.includes(Ke))
            return;
          if (j ? ke === j ? (Qe.moduleSpecifier || Ut(), _e && _t.options.use !== 2 && _t.markSeenReExportRHS(je) && Et(je, D.checkDefined(Nt.symbol), _t)) : _t.markSeenReExportRHS(ke) && Ut() : _t.options.use === 2 && je.escapedText === "default" || Ut(), !Vr(_t.options) || re) {
            const Sn = ke.escapedText === "default" || Nt.name.escapedText === "default" ? 1 : 0, Er = D.checkDefined(Nt.symbol), ue = Cte(Er, Sn, _t.checker);
            ue && H(ke, Er, ue, _t);
          }
          if (xe.comingFrom !== 1 && Qe.moduleSpecifier && !j && !Vr(_t.options)) {
            const ln = _t.checker.getExportSpecifierLocalTargetSymbol(Nt);
            ln && Y(ln, _t);
          }
          function Ut() {
            _e && Et(ke, Ke, _t);
          }
        }
        function He(ke, gt, Nt, xe) {
          return Fe(ke, Nt) && xe.getExportSpecifierLocalTargetSymbol(Nt) || gt;
        }
        function Fe(ke, gt) {
          const { parent: Nt, propertyName: xe, name: _t } = gt;
          return D.assert(xe === ke || _t === ke), xe ? xe === ke : !Nt.parent.moduleSpecifier;
        }
        function st(ke, gt, Nt, xe) {
          const _t = PSe(ke, gt, xe.checker, Nt.comingFrom === 1);
          if (!_t)
            return;
          const { symbol: _e } = _t;
          _t.kind === 0 ? Vr(xe.options) || Y(_e, xe) : H(ke, _e, _t.exportInfo, xe);
        }
        function Ct({ flags: ke, valueDeclaration: gt }, Nt, xe) {
          const _t = xe.checker.getShorthandAssignmentValueSymbol(gt), _e = gt && Aa(gt);
          !(ke & 33554432) && _e && Nt.includes(_t) && Et(_e, _t, xe);
        }
        function Et(ke, gt, Nt) {
          const { kind: xe, symbol: _t } = "kind" in gt ? gt : { kind: void 0, symbol: gt };
          if (Nt.options.use === 2 && ke.kind === 88)
            return;
          const _e = Nt.referenceAdder(_t);
          Nt.options.implementations ? In(ke, _e, Nt) : _e(ke, xe);
        }
        function Vt(ke, gt, Nt, xe) {
          iw(ke) && Et(ke, Nt.symbol, xe);
          const _t = () => xe.referenceAdder(Nt.symbol);
          if (li(ke.parent))
            D.assert(ke.kind === 88 || ke.parent.name === ke), at(Nt.symbol, gt, _t());
          else {
            const _e = Mn(ke);
            _e && (Xt(_e, _t()), Wn(_e, xe));
          }
        }
        function tt(ke, gt, Nt) {
          Et(ke, gt.symbol, Nt);
          const xe = ke.parent;
          if (Nt.options.use === 2 || !li(xe))
            return;
          D.assert(xe.name === ke);
          const _t = Nt.referenceAdder(gt.symbol);
          for (const _e of xe.members)
            xA(_e) && za(_e) && _e.body && _e.body.forEachChild(function re(he) {
              he.kind === 108 ? _t(he) : !qa(he) && !li(he) && he.forEachChild(re);
            });
        }
        function at(ke, gt, Nt) {
          const xe = an(ke);
          if (xe && xe.declarations)
            for (const _t of xe.declarations) {
              const _e = gs(_t, 135, gt);
              D.assert(_t.kind === 173 && !!_e), Nt(_e);
            }
          ke.exports && ke.exports.forEach((_t) => {
            const _e = _t.valueDeclaration;
            if (_e && _e.kind === 171) {
              const re = _e.body;
              re && nn(re, 108, (he) => {
                iw(he) && Nt(he);
              });
            }
          });
        }
        function an(ke) {
          return ke.members && ke.members.get("__constructor");
        }
        function Xt(ke, gt) {
          const Nt = an(ke.symbol);
          if (Nt && Nt.declarations)
            for (const xe of Nt.declarations) {
              D.assert(xe.kind === 173);
              const _t = xe.body;
              _t && nn(_t, 106, (_e) => {
                o$(_e) && gt(_e);
              });
            }
        }
        function Pn(ke) {
          return !!an(ke.symbol);
        }
        function Wn(ke, gt) {
          if (Pn(ke))
            return;
          const Nt = ke.symbol, xe = gt.createSearch(void 0, Nt, void 0);
          L(Nt, gt, xe);
        }
        function In(ke, gt, Nt) {
          if (lg(ke) && pi(ke.parent)) {
            gt(ke);
            return;
          }
          if (ke.kind !== 79)
            return;
          ke.parent.kind === 300 && Nn(ke, Nt.checker, gt);
          const xe = Yt(ke);
          if (xe) {
            gt(xe);
            return;
          }
          const _t = rr(ke, (he) => !Sd(he.parent) && !Mi(he.parent) && !rT(he.parent)), _e = _t.parent;
          if (wM(_e) && _e.type === _t && Nt.markSeenContainingTypeReference(_e))
            if (Av(_e))
              re(_e.initializer);
            else if (qa(_e) && _e.body) {
              const he = _e.body;
              he.kind === 238 ? lT(he, (j) => {
                j.expression && re(j.expression);
              }) : re(he);
            } else
              iT(_e) && re(_e.expression);
          function re(he) {
            _r(he) && gt(he);
          }
        }
        function Yt(ke) {
          return Ve(ke) || Mr(ke) ? Yt(ke.parent) : by(ke) ? ii(ke.parent.parent, li) : void 0;
        }
        function _r(ke) {
          switch (ke.kind) {
            case 214:
              return _r(ke.expression);
            case 216:
            case 215:
            case 207:
            case 228:
            case 206:
              return !0;
            default:
              return !1;
          }
        }
        function Ai(ke, gt, Nt, xe) {
          if (ke === gt)
            return !0;
          const _t = yo(ke) + "," + yo(gt), _e = Nt.get(_t);
          if (_e !== void 0)
            return _e;
          Nt.set(_t, !1);
          const re = !!ke.declarations && ke.declarations.some((he) => GI(he).some((j) => {
            const je = xe.getTypeAtLocation(j);
            return !!je && !!je.symbol && Ai(je.symbol, gt, Nt, xe);
          }));
          return Nt.set(_t, re), re;
        }
        function Ki(ke) {
          let gt = nN(ke, !1);
          if (!gt)
            return;
          let Nt = 32;
          switch (gt.kind) {
            case 169:
            case 168:
            case 171:
            case 170:
            case 173:
            case 174:
            case 175:
              Nt &= kv(gt), gt = gt.parent;
              break;
            default:
              return;
          }
          const xe = gt.getSourceFile(), _t = fa(pe(xe, "super", gt), (_e) => {
            if (_e.kind !== 106)
              return;
            const re = nN(_e, !1);
            return re && za(re) === !!Nt && re.parent.symbol === gt.symbol ? Lh(_e) : void 0;
          });
          return [{ definition: { type: 0, symbol: gt.symbol }, references: _t }];
        }
        function Xi(ke) {
          return ke.kind === 79 && ke.parent.kind === 166 && ke.parent.name === ke;
        }
        function Nr(ke, gt, Nt) {
          let xe = bd(ke, !1, !1), _t = 32;
          switch (xe.kind) {
            case 171:
            case 170:
              if (M_(xe)) {
                _t &= kv(xe), xe = xe.parent;
                break;
              }
            case 169:
            case 168:
            case 173:
            case 174:
            case 175:
              _t &= kv(xe), xe = xe.parent;
              break;
            case 308:
              if (Yc(xe) || Xi(ke))
                return;
            case 259:
            case 215:
              break;
            default:
              return;
          }
          const _e = wo(xe.kind === 308 ? gt : [xe.getSourceFile()], (he) => (Nt.throwIfCancellationRequested(), pe(he, "this", Hi(xe) ? he : xe).filter((j) => {
            if (!HC(j))
              return !1;
            const je = bd(j, !1, !1);
            if (!km(je))
              return !1;
            switch (xe.kind) {
              case 215:
              case 259:
                return xe.symbol === je.symbol;
              case 171:
              case 170:
                return M_(xe) && xe.symbol === je.symbol;
              case 228:
              case 260:
              case 207:
                return je.parent && km(je.parent) && xe.symbol === je.parent.symbol && za(je) === !!_t;
              case 308:
                return je.kind === 308 && !Yc(je) && !Xi(j);
            }
          }))).map((he) => Lh(he));
          return [{
            definition: { type: 3, node: sn(_e, (he) => Oa(he.node.parent) ? he.node : void 0) || ke },
            references: _e
          }];
        }
        function At(ke, gt, Nt, xe) {
          const _t = wF(ke, Nt), _e = wo(gt, (re) => (xe.throwIfCancellationRequested(), fa(pe(re, ke.text), (he) => {
            if (Es(he) && he.text === ke.text)
              if (_t) {
                const j = wF(he, Nt);
                if (_t !== Nt.getStringType() && _t === j)
                  return Lh(he, 2);
              } else
                return vx(he) && !bT(he, re) ? void 0 : Lh(he, 2);
          })));
          return [{
            definition: { type: 4, node: ke },
            references: _e
          }];
        }
        function vn(ke, gt, Nt, xe, _t, _e) {
          const re = [];
          return Ht(ke, gt, Nt, xe, !(xe && _t), (he, j, je) => {
            je && ir(ke) !== ir(je) && (je = void 0), re.push(je || j || he);
          }, () => !_e), re;
        }
        function Ht(ke, gt, Nt, xe, _t, _e, re) {
          const he = p6(gt);
          if (he) {
            const Sn = Nt.getShorthandAssignmentValueSymbol(gt.parent);
            if (Sn && xe)
              return _e(Sn, void 0, void 0, 3);
            const Er = Nt.getContextualType(he.parent), ue = Er && sn(D9(he, Nt, Er, !0), (K) => Ut(K, 4));
            if (ue)
              return ue;
            const pt = de(gt, Nt), Wt = pt && _e(pt, void 0, void 0, 4);
            if (Wt)
              return Wt;
            const it = Sn && _e(Sn, void 0, void 0, 3);
            if (it)
              return it;
          }
          const j = s(gt, ke, Nt);
          if (j) {
            const Sn = _e(j, void 0, void 0, 1);
            if (Sn)
              return Sn;
          }
          const je = Ut(ke);
          if (je)
            return je;
          if (ke.valueDeclaration && Qd(ke.valueDeclaration, ke.valueDeclaration.parent)) {
            const Sn = Nt.getSymbolsOfParameterPropertyDeclaration(ro(ke.valueDeclaration, Oa), ke.name);
            return D.assert(Sn.length === 2 && !!(Sn[0].flags & 1) && !!(Sn[1].flags & 4)), Ut(ke.flags & 1 ? Sn[1] : Sn[0]);
          }
          const Qe = Sc(ke, 278);
          if (!xe || Qe && !Qe.propertyName) {
            const Sn = Qe && Nt.getExportSpecifierLocalTargetSymbol(Qe);
            if (Sn) {
              const Er = _e(Sn, void 0, void 0, 1);
              if (Er)
                return Er;
            }
          }
          if (!xe) {
            let Sn;
            return _t ? Sn = e6(gt.parent) ? zF(Nt, gt.parent) : void 0 : Sn = ln(ke, Nt), Sn && Ut(Sn, 4);
          }
          if (D.assert(xe), _t) {
            const Sn = ln(ke, Nt);
            return Sn && Ut(Sn, 4);
          }
          function Ut(Sn, Er) {
            return sn(Nt.getRootSymbols(Sn), (ue) => _e(Sn, ue, void 0, Er) || (ue.parent && ue.parent.flags & 96 && re(ue) ? dn(ue.parent, ue.name, Nt, (pt) => _e(Sn, ue, pt, Er)) : void 0));
          }
          function ln(Sn, Er) {
            const ue = Sc(Sn, 205);
            if (ue && e6(ue))
              return zF(Er, ue);
          }
        }
        function dn(ke, gt, Nt, xe) {
          const _t = /* @__PURE__ */ new Map();
          return _e(ke);
          function _e(re) {
            if (!(!(re.flags & 96) || !hp(_t, yo(re))))
              return sn(re.declarations, (he) => sn(GI(he), (j) => {
                const je = Nt.getTypeAtLocation(j), Qe = je && je.symbol && Nt.getPropertyOfType(je, gt);
                return je && Qe && (sn(Nt.getRootSymbols(Qe), xe) || _e(je.symbol));
              }));
          }
        }
        function ir(ke) {
          return ke.valueDeclaration ? !!(Ru(ke.valueDeclaration) & 32) : !1;
        }
        function lr(ke, gt, Nt, xe) {
          const { checker: _t } = xe;
          return Ht(gt, Nt, _t, !1, xe.options.use !== 2 || !!xe.options.providePrefixAndSuffixTextForRename, (_e, re, he, j) => (he && ir(gt) !== ir(he) && (he = void 0), ke.includes(he || re || _e) ? { symbol: re && !(Cc(_e) & 6) ? re : _e, kind: j } : void 0), (_e) => !(ke.parents && !ke.parents.some((re) => Ai(_e.parent, re, xe.inheritsFromCache, _t))));
        }
        function Ni(ke, gt) {
          let Nt = HT(ke);
          const { declarations: xe } = gt;
          if (xe) {
            let _t;
            do {
              _t = Nt;
              for (const _e of xe) {
                const re = U8(_e);
                re & Nt && (Nt |= re);
              }
            } while (Nt !== _t);
          }
          return Nt;
        }
        e.getIntersectingMeaningFromDeclarations = Ni;
        function pi(ke) {
          return ke.flags & 16777216 ? !(Qu(ke) || Qp(ke)) : PA(ke) ? Av(ke) : Xs(ke) ? !!ke.body : li(ke) || zR(ke);
        }
        function Nn(ke, gt, Nt) {
          const xe = gt.getSymbolAtLocation(ke), _t = gt.getShorthandAssignmentValueSymbol(xe.valueDeclaration);
          if (_t)
            for (const _e of _t.getDeclarations())
              U8(_e) & 1 && Nt(_e);
        }
        e.getReferenceEntriesForShorthandPropertyAssignment = Nn;
        function nn(ke, gt, Nt) {
          Ra(ke, (xe) => {
            xe.kind === gt && Nt(xe), nn(xe, gt, Nt);
          });
        }
        function Mn(ke) {
          return Pz(xF(ke).parent);
        }
        function Ar(ke, gt, Nt) {
          const xe = jC(ke) ? ke.parent : void 0, _t = xe && Nt.getTypeAtLocation(xe.expression), _e = fa(_t && (_t.isUnionOrIntersection() ? _t.types : _t.symbol === gt.parent ? void 0 : [_t]), (re) => re.symbol && re.symbol.flags & 96 ? re.symbol : void 0);
          return _e.length === 0 ? void 0 : _e;
        }
        function Vr(ke) {
          return ke.use === 2 && ke.providePrefixAndSuffixTextForRename;
        }
      })(eS || (eS = {}));
    }
  }), lc = {};
  le(lc, {
    Core: () => eS,
    DefinitionKind: () => Rte,
    EntryKind: () => Nte,
    ExportKind: () => Ite,
    FindReferencesUse: () => Ote,
    ImportExport: () => kte,
    createImportTracker: () => Ate,
    findModuleReferences: () => RSe,
    findReferenceOrRenameEntries: () => kHe,
    findReferencedSymbols: () => CHe,
    getContextNode: () => K1,
    getExportInfo: () => Cte,
    getImplementationsAtPosition: () => IHe,
    getImportOrExportSymbol: () => PSe,
    getReferenceEntriesForNode: () => BSe,
    getTextSpanOfEntry: () => Dte,
    isContextWithStartAndEndNode: () => MSe,
    isDeclarationOfSymbol: () => HSe,
    nodeEntry: () => Lh,
    toContextSpan: () => wte,
    toHighlightSpan: () => MHe,
    toReferenceEntry: () => VSe,
    toRenameLocation: () => DHe
  });
  var WSe = C({
    "src/services/_namespaces/ts.FindAllReferences.ts"() {
      xHe(), BHe();
    }
  });
  function zSe(e, t, r, i, o) {
    var s, l;
    const f = JSe(t, r, e), d = f && [JHe(f.reference.fileName, f.fileName, f.unverified)] || rt;
    if (f != null && f.file)
      return d;
    const y = Lf(t, r);
    if (y === t)
      return;
    const { parent: h } = y, b = e.getTypeChecker();
    if (y.kind === 161 || Ve(y) && P7(h) && h.tagName === y)
      return UHe(b, y) || rt;
    if (j8(y)) {
      const k = AF(y.parent, y.text);
      return k ? [Mte(b, k, "label", y.text, void 0)] : void 0;
    }
    if (y.kind === 105) {
      const k = rr(y.parent, (B) => Lc(B) ? "quit" : Xs(B));
      return k ? [O6(b, k)] : void 0;
    }
    if (y.kind === 133) {
      const k = rr(y, (V) => Xs(V));
      return k && kt(k.modifiers, (V) => V.kind === 132) ? [O6(b, k)] : void 0;
    }
    if (y.kind === 125) {
      const k = rr(y, (V) => Xs(V));
      return k && k.asteriskToken ? [O6(b, k)] : void 0;
    }
    if (bx(y) && Lc(y.parent)) {
      const k = y.parent.parent, { symbol: B, failedAliasResolution: V } = CG(k, b, o), H = yn(k.members, Lc), te = B ? b.symbolToString(B, k) : "", X = y.getSourceFile();
      return en(H, (Y) => {
        let { pos: P } = Xp(Y);
        return P = zo(X.text, P), Mte(b, Y, "constructor", "static {}", te, !1, V, { start: P, length: 6 });
      });
    }
    let { symbol: A, failedAliasResolution: L } = CG(y, b, o), I = y;
    if (i && L) {
      const k = ze([y, ...(A == null ? void 0 : A.declarations) || rt], (V) => rr(V, Vle)), B = k && hN(k);
      B && ({ symbol: A, failedAliasResolution: L } = CG(B, b, o), I = B);
    }
    if (!A && WF(I)) {
      const k = (l = (s = t.resolvedModules) == null ? void 0 : s.get(I.text, vp(t, I))) == null ? void 0 : l.resolvedModule;
      if (k)
        return [{
          name: I.text,
          fileName: k.resolvedFileName,
          containerName: void 0,
          containerKind: void 0,
          kind: "script",
          textSpan: Ll(0, 0),
          failedAliasResolution: L,
          isAmbient: ld(k.resolvedFileName),
          unverified: I !== y
        }];
    }
    if (!A)
      return ma(d, WHe(y, b));
    if (i && Rn(A.declarations, (k) => k.getSourceFile().fileName === t.fileName))
      return;
    const O = XHe(b, y);
    if (O && !(Ku(y.parent) && YHe(O))) {
      const k = O6(b, O, L);
      if (b.getRootSymbols(A).some((B) => GHe(B, O)))
        return [k];
      {
        const B = nL(b, A, y, L, O) || rt;
        return y.kind === 106 ? [k, ...B] : [...B, k];
      }
    }
    if (y.parent.kind === 300) {
      const k = b.getShorthandAssignmentValueSymbol(A.valueDeclaration), B = k != null && k.declarations ? k.declarations.map((V) => Iw(V, b, k, y, !1, L)) : rt;
      return ma(B, qSe(b, y) || rt);
    }
    if (gc(y) && us(h) && Um(h.parent) && y === (h.propertyName || h.name)) {
      const k = Z8(y), B = b.getTypeAtLocation(h.parent);
      return k === void 0 ? rt : wo(B.isUnion() ? B.types : [B], (V) => {
        const H = V.getProperty(k);
        return H && nL(b, H, y);
      });
    }
    return ma(d, qSe(b, y) || nL(b, A, y, L));
  }
  function GHe(e, t) {
    var r;
    return e === t.symbol || e === t.symbol.parent || Yu(t.parent) || !XS(t.parent) && e === ((r = ii(t.parent, km)) == null ? void 0 : r.symbol);
  }
  function qSe(e, t) {
    const r = p6(t);
    if (r) {
      const i = r && e.getContextualType(r.parent);
      if (i)
        return wo(D9(r, e, i, !1), (o) => nL(e, o, t));
    }
  }
  function UHe(e, t) {
    const r = rr(t, Ml);
    if (!(r && r.name))
      return;
    const i = rr(r, li);
    if (!i)
      return;
    const o = Jp(i);
    if (!o)
      return;
    const s = Gs(o.expression), l = Pu(s) ? s.symbol : e.getSymbolAtLocation(s);
    if (!l)
      return;
    const f = ta(DA(r.name)), d = pl(r) ? e.getPropertyOfType(e.getTypeOfSymbol(l), f) : e.getPropertyOfType(e.getDeclaredTypeOfSymbol(l), f);
    if (d)
      return nL(e, d, t);
  }
  function JSe(e, t, r) {
    var i, o, s, l;
    const f = rL(e.referencedFiles, t);
    if (f) {
      const h = r.getSourceFileFromReference(e, f);
      return h && { reference: f, fileName: h.fileName, file: h, unverified: !1 };
    }
    const d = rL(e.typeReferenceDirectives, t);
    if (d) {
      const h = (i = r.getResolvedTypeReferenceDirectives().get(d.fileName, d.resolutionMode || e.impliedNodeFormat)) == null ? void 0 : i.resolvedTypeReferenceDirective, b = h && r.getSourceFile(h.resolvedFileName);
      return b && { reference: d, fileName: b.fileName, file: b, unverified: !1 };
    }
    const y = rL(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 = sw(e, t);
      if (WF(h) && Pl(h.text) && e.resolvedModules.has(h.text, vp(e, h))) {
        const b = (l = (s = e.resolvedModules.get(h.text, vp(e, h))) == null ? void 0 : s.resolvedModule) == null ? void 0 : l.resolvedFileName, A = b || hv(_i(e.fileName), h.text);
        return {
          file: r.getSourceFile(A),
          fileName: A,
          reference: {
            pos: h.getStart(),
            end: h.getEnd(),
            fileName: h.text
          },
          unverified: !b
        };
      }
    }
  }
  function VHe(e, t, r) {
    const i = Lf(t, r);
    if (i === t)
      return;
    if (OA(i.parent) && i.parent.name === i)
      return Pte(e.getTypeAtLocation(i.parent), e, i.parent, !1);
    const { symbol: o, failedAliasResolution: s } = CG(i, e, !1);
    if (!o)
      return;
    const l = e.getTypeOfSymbolAtLocation(o, i), f = jHe(o, l, e), d = f && Pte(f, e, i, s), y = d && d.length !== 0 ? d : Pte(l, e, i, s);
    return y.length ? y : !(o.flags & 111551) && o.flags & 788968 ? nL(e, af(o, e), i, s) : void 0;
  }
  function Pte(e, t, r, i) {
    return wo(e.isUnion() && !(e.flags & 32) ? e.types : [e], (o) => o.symbol && nL(t, o.symbol, r, i));
  }
  function jHe(e, t, r) {
    if (t.symbol === e || e.valueDeclaration && t.symbol && zi(e.valueDeclaration) && e.valueDeclaration.initializer === t.symbol.valueDeclaration) {
      const i = t.getCallSignatures();
      if (i.length === 1)
        return r.getReturnTypeOfSignature(ss(i));
    }
  }
  function HHe(e, t, r) {
    const i = zSe(e, t, r);
    if (!i || i.length === 0)
      return;
    const o = rL(t.referencedFiles, r) || rL(t.typeReferenceDirectives, r) || rL(t.libReferenceDirectives, r);
    if (o)
      return { definitions: i, textSpan: jv(o) };
    const s = Lf(t, r), l = Ll(s.getStart(), s.getWidth());
    return { definitions: i, textSpan: l };
  }
  function WHe(e, t) {
    return fa(t.getIndexInfosAtLocation(e), (r) => r.declaration && O6(t, r.declaration));
  }
  function CG(e, t, r) {
    const i = t.getSymbolAtLocation(e);
    let o = !1;
    if (i != null && i.declarations && i.flags & 2097152 && !r && zHe(e, i.declarations[0])) {
      const s = t.getAliasedSymbol(i);
      if (s.declarations)
        return { symbol: s };
      o = !0;
    }
    return { symbol: i, failedAliasResolution: o };
  }
  function zHe(e, t) {
    return e.kind !== 79 ? !1 : e.parent === t ? !0 : t.kind !== 271;
  }
  function qHe(e) {
    if (!FI(e))
      return !1;
    const t = rr(e, (r) => Yu(r) ? !0 : FI(r) ? !1 : "quit");
    return !!t && Ac(t) === 5;
  }
  function nL(e, t, r, i, o) {
    const s = yn(t.declarations, (b) => b !== o), l = yn(s, (b) => !qHe(b)), f = kt(l) ? l : s;
    return d() || y() || en(f, (b) => Iw(b, e, t, r, !1, i));
    function d() {
      if (t.flags & 32 && !(t.flags & 19) && (iw(r) || r.kind === 135)) {
        const b = cn(s, li) || D.fail("Expected declaration to have at least one class-like declaration");
        return h(b.members, !0);
      }
    }
    function y() {
      return s$(r) || _$(r) ? h(s, !1) : void 0;
    }
    function h(b, A) {
      if (!b)
        return;
      const L = b.filter(A ? Hc : qa), I = L.filter((O) => !!O.body);
      return L.length ? I.length !== 0 ? I.map((O) => Iw(O, e, t, r)) : [Iw(Ho(L), e, t, r, !1, i)] : void 0;
    }
  }
  function Iw(e, t, r, i, o, s) {
    const l = t.symbolToString(r), f = wy.getSymbolKind(t, r, i), d = r.parent ? t.symbolToString(r.parent, i) : "";
    return Mte(t, e, f, l, d, o, s);
  }
  function Mte(e, t, r, i, o, s, l, f) {
    const d = t.getSourceFile();
    if (!f) {
      const y = Aa(t) || t;
      f = Zu(y, d);
    }
    return {
      fileName: d.fileName,
      textSpan: f,
      kind: r,
      name: i,
      containerKind: void 0,
      containerName: o,
      ...lc.toContextSpan(f, d, lc.getContextNode(t)),
      isLocal: !Fte(e, t),
      isAmbient: !!(t.flags & 16777216),
      unverified: s,
      failedAliasResolution: l
    };
  }
  function Fte(e, t) {
    if (e.isDeclarationVisible(t))
      return !0;
    if (!t.parent)
      return !1;
    if (Av(t.parent) && t.parent.initializer === t)
      return Fte(e, t.parent);
    switch (t.kind) {
      case 169:
      case 174:
      case 175:
      case 171:
        if (Pd(t, 8))
          return !1;
      case 173:
      case 299:
      case 300:
      case 207:
      case 228:
      case 216:
      case 215:
        return Fte(e, t.parent);
      default:
        return !1;
    }
  }
  function O6(e, t, r) {
    return Iw(t, e, t.symbol, t, !1, r);
  }
  function rL(e, t) {
    return cn(e, (r) => pM(r, t));
  }
  function JHe(e, t, r) {
    return {
      fileName: t,
      textSpan: _l(0, 0),
      kind: "script",
      name: e,
      containerName: void 0,
      containerKind: void 0,
      unverified: r
    };
  }
  function KHe(e) {
    const t = rr(e, (i) => !jC(i)), r = t == null ? void 0 : t.parent;
    return r && XS(r) && ZM(r) === t ? r : void 0;
  }
  function XHe(e, t) {
    const r = KHe(t), i = r && e.getResolvedSignature(r);
    return ii(i && i.declaration, (o) => qa(o) && !Sh(o));
  }
  function YHe(e) {
    switch (e.kind) {
      case 173:
      case 182:
      case 177:
        return !0;
      default:
        return !1;
    }
  }
  var $He = C({
    "src/services/goToDefinition.ts"() {
      Xr();
    }
  }), kw = {};
  le(kw, {
    createDefinitionInfo: () => Iw,
    findReferenceInPosition: () => rL,
    getDefinitionAndBoundSpan: () => HHe,
    getDefinitionAtPosition: () => zSe,
    getReferenceAtPosition: () => JSe,
    getTypeDefinitionAtPosition: () => VHe
  });
  var QHe = C({
    "src/services/_namespaces/ts.GoToDefinition.ts"() {
      $He();
    }
  });
  function ZHe(e) {
    return e.includeInlayParameterNameHints === "literals" || e.includeInlayParameterNameHints === "all";
  }
  function eWe(e) {
    return e.includeInlayParameterNameHints === "literals";
  }
  function tWe(e) {
    const { file: t, program: r, span: i, cancellationToken: o, preferences: s } = e, l = t.text, f = r.getCompilerOptions(), d = r.getTypeChecker(), y = [];
    return h(t), y;
    function h(pe) {
      if (!(!pe || pe.getFullWidth() === 0)) {
        switch (pe.kind) {
          case 264:
          case 260:
          case 261:
          case 259:
          case 228:
          case 215:
          case 171:
          case 216:
            o.throwIfCancellationRequested();
        }
        if (mM(i, pe.pos, pe.getFullWidth()) && !(Mi(pe) && !by(pe)))
          return s.includeInlayVariableTypeHints && zi(pe) || s.includeInlayPropertyDeclarationTypeHints && Za(pe) ? B(pe) : s.includeInlayEnumMemberValueHints && P1(pe) ? O(pe) : ZHe(s) && (eo(pe) || R1(pe)) ? V(pe) : (s.includeInlayFunctionParameterTypeHints && Xs(pe) && B3(pe) && de(pe), s.includeInlayFunctionLikeReturnTypeHints && b(pe) && Y(pe)), Ra(pe, h);
      }
    }
    function b(pe) {
      return Ws(pe) || Ps(pe) || ml(pe) || nl(pe) || H_(pe);
    }
    function A(pe, ve, Te) {
      y.push({
        text: `${Te ? "..." : ""}${ye(pe, LG)}:`,
        position: ve,
        kind: "Parameter",
        whitespaceAfter: !0
      });
    }
    function L(pe, ve) {
      y.push({
        text: `: ${ye(pe, LG)}`,
        position: ve,
        kind: "Type",
        whitespaceBefore: !0
      });
    }
    function I(pe, ve) {
      y.push({
        text: `= ${ye(pe, LG)}`,
        position: ve,
        kind: "Enum",
        whitespaceBefore: !0
      });
    }
    function O(pe) {
      if (pe.initializer)
        return;
      const ve = d.getConstantValue(pe);
      ve !== void 0 && I(ve.toString(), pe.end);
    }
    function k(pe) {
      return pe.symbol && pe.symbol.flags & 1536;
    }
    function B(pe) {
      if (!pe.initializer || Ja(pe.name) || zi(pe) && !ce(pe) || Kl(pe))
        return;
      const Te = d.getTypeAtLocation(pe);
      if (k(Te))
        return;
      const ee = ie(Te);
      if (ee) {
        if (s.includeInlayVariableTypeHintsWhenTypeMatchesName === !1 && MS(pe.name.getText(), ee))
          return;
        L(ee, pe.name.end);
      }
    }
    function V(pe) {
      const ve = pe.arguments;
      if (!ve || !ve.length)
        return;
      const Te = [], ee = d.getResolvedSignatureForSignatureHelp(pe, Te);
      if (!(!ee || !Te.length))
        for (let $e = 0; $e < ve.length; ++$e) {
          const Ue = ve[$e], Be = Gs(Ue);
          if (eWe(s) && !X(Be))
            continue;
          const We = d.getParameterIdentifierNameAtPosition(ee, $e);
          if (We) {
            const [Oe, Me] = We;
            if (!(s.includeInlayParameterNameHintsWhenArgumentMatchesName || !H(Be, Oe)) && !Me)
              continue;
            const He = ta(Oe);
            if (te(Be, He))
              continue;
            A(He, Ue.getStart(), Me);
          }
        }
    }
    function H(pe, ve) {
      return Ve(pe) ? pe.text === ve : Mr(pe) ? pe.name.text === ve : !1;
    }
    function te(pe, ve) {
      if (!N_(ve, f.target, WN(t.scriptKind)))
        return !1;
      const Te = dh(l, pe.pos);
      if (!(Te != null && Te.length))
        return !1;
      const ee = KSe(ve);
      return kt(Te, ($e) => ee.test(l.substring($e.pos, $e.end)));
    }
    function X(pe) {
      switch (pe.kind) {
        case 221: {
          const ve = pe.operand;
          return nT(ve) || Ve(ve) && _k(ve.escapedText);
        }
        case 110:
        case 95:
        case 104:
        case 14:
        case 225:
          return !0;
        case 79: {
          const ve = pe.escapedText;
          return W(ve) || _k(ve);
        }
      }
      return nT(pe);
    }
    function Y(pe) {
      if (Ws(pe) && !gs(pe, 20, t) || mp(pe) || !pe.body)
        return;
      const Te = d.getSignatureFromDeclaration(pe);
      if (!Te)
        return;
      const ee = d.getReturnTypeOfSignature(Te);
      if (k(ee))
        return;
      const $e = ie(ee);
      $e && L($e, P(pe));
    }
    function P(pe) {
      const ve = gs(pe, 21, t);
      return ve ? ve.end : pe.parameters.end;
    }
    function de(pe) {
      const ve = d.getSignatureFromDeclaration(pe);
      if (ve)
        for (let Te = 0; Te < pe.parameters.length && Te < ve.parameters.length; ++Te) {
          const ee = pe.parameters[Te];
          if (!ce(ee) || Kl(ee))
            continue;
          const Ue = ne(ve.parameters[Te]);
          Ue && L(Ue, ee.questionToken ? ee.questionToken.end : ee.name.end);
        }
    }
    function ne(pe) {
      const ve = pe.valueDeclaration;
      if (!ve || !Oa(ve))
        return;
      const Te = d.getTypeOfSymbolAtLocation(pe, ve);
      if (!k(Te))
        return ie(Te);
    }
    function ye(pe, ve) {
      return pe.length > ve ? pe.substr(0, ve - 3) + "..." : pe;
    }
    function ie(pe) {
      const Te = W1();
      return II((ee) => {
        const $e = d.typeToTypeNode(pe, void 0, 71286784);
        D.assertIsDefined($e, "should always get typenode"), Te.writeNode(4, $e, t, ee);
      });
    }
    function W(pe) {
      return pe === "undefined";
    }
    function ce(pe) {
      if ((hT(pe) || zi(pe) && og(pe)) && pe.initializer) {
        const ve = Gs(pe.initializer);
        return !(X(ve) || R1(ve) || xs(ve) || iT(ve));
      }
      return !0;
    }
  }
  var LG, KSe, nWe = C({
    "src/services/inlayHints.ts"() {
      Xr(), LG = 30, KSe = (e) => new RegExp(`^\\s?/\\*\\*?\\s?${e}\\s?\\*\\/\\s?$`);
    }
  }), Bte = {};
  le(Bte, {
    provideInlayHints: () => tWe
  });
  var rWe = C({
    "src/services/_namespaces/ts.InlayHints.ts"() {
      nWe();
    }
  });
  function iWe(e, t) {
    const r = [];
    return P$(e, (i) => {
      for (const o of oWe(i)) {
        const s = Hm(o) && o.tags && cn(o.tags, (f) => f.kind === 330 && (f.tagName.escapedText === "inheritDoc" || f.tagName.escapedText === "inheritdoc"));
        if (o.comment === void 0 && !s || Hm(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 l = o.comment ? n2(o.comment, t) : [];
        s && s.comment && (l = l.concat(n2(s.comment, t))), wi(r, l, aWe) || r.push(l);
      }
    }), id(Wa(r, [JC()]));
  }
  function aWe(e, t) {
    return Qs(e, t, (r, i) => r.kind === i.kind && r.text === i.text);
  }
  function oWe(e) {
    switch (e.kind) {
      case 344:
      case 351:
        return [e];
      case 341:
      case 349:
        return [e, e.parent];
      default:
        return sz(e);
    }
  }
  function sWe(e, t) {
    const r = [];
    return P$(e, (i) => {
      const o = f1(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: cWe(s, t) });
    }), r;
  }
  function n2(e, t) {
    return typeof e == "string" ? [If(e)] : wo(e, (r) => r.kind === 324 ? [If(r.text)] : Xye(r, t));
  }
  function cWe(e, t) {
    const { comment: r, kind: i } = e, o = lWe(i);
    switch (i) {
      case 352:
        const f = e.typeExpression;
        return f ? s(f) : r === void 0 ? void 0 : n2(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(If(d.constraint.getText())), Ie(d.typeParameters)) {
          Ie(y) && y.push(vc());
          const b = d.typeParameters[d.typeParameters.length - 1];
          ze(d.typeParameters, (A) => {
            y.push(o(A.getText())), b !== A && y.push(yu(27), vc());
          });
        }
        return r && y.push(vc(), ...n2(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 : n2(r, t);
      default:
        return r === void 0 ? void 0 : n2(r, t);
    }
    function s(f) {
      return l(f.getText());
    }
    function l(f) {
      return r ? f.match(/^https?$/) ? [If(f), ...n2(r, t)] : [o(f), vc(), ...n2(r, t)] : [If(f)];
    }
  }
  function lWe(e) {
    switch (e) {
      case 344:
        return Wye;
      case 351:
        return zye;
      case 348:
        return Jye;
      case 349:
      case 341:
        return qye;
      default:
        return If;
    }
  }
  function uWe() {
    return YSe || (YSe = en(Ute, (e) => ({
      name: e,
      kind: "keyword",
      kindModifiers: "",
      sortText: t2.SortText.LocationPriority
    })));
  }
  function dWe() {
    return $Se || ($Se = en(Ute, (e) => ({
      name: `@${e}`,
      kind: "keyword",
      kindModifiers: "",
      sortText: t2.SortText.LocationPriority
    })));
  }
  function XSe(e) {
    return {
      name: e,
      kind: "",
      kindModifiers: "",
      displayParts: [If(e)],
      documentation: rt,
      tags: void 0,
      codeActions: void 0
    };
  }
  function fWe(e) {
    if (!Ve(e.name))
      return rt;
    const t = e.name.text, r = e.parent, i = r.parent;
    return qa(i) ? fa(i.parameters, (o) => {
      if (!Ve(o.name))
        return;
      const s = o.name.text;
      if (!(r.tags.some((l) => l !== e && tm(l) && Ve(l.name) && l.name.escapedText === s) || t !== void 0 && !ba(s, t)))
        return { name: s, kind: "parameter", kindModifiers: "", sortText: t2.SortText.LocationPriority };
    }) : [];
  }
  function _We(e) {
    return {
      name: e,
      kind: "parameter",
      kindModifiers: "",
      displayParts: [If(e)],
      documentation: rt,
      tags: void 0,
      codeActions: void 0
    };
  }
  function pWe(e, t, r, i) {
    const o = ia(t, r), s = rr(o, Hm);
    if (s && (s.comment !== void 0 || Ie(s.tags)))
      return;
    const l = o.getStart(t);
    if (!s && l < r)
      return;
    const f = yWe(o, i);
    if (!f)
      return;
    const { commentOwner: d, parameters: y, hasReturn: h } = f, b = bf(d) && d.jsDoc ? d.jsDoc : void 0, A = ec(b);
    if (d.getStart(t) < r || A && s && A !== s)
      return;
    const L = mWe(t, r), I = _x(t.fileName), O = (y ? hWe(y || [], I, L, e) : "") + (h ? gWe(L, e) : ""), k = "/**", B = " */", V = (b || []).some((H) => !!H.tags);
    if (O && !V) {
      const H = k + e + L + " * ", te = l === r ? e + L : "";
      return { newText: H + e + O + L + B + te, caretOffset: H.length };
    }
    return { newText: k + B, caretOffset: 3 };
  }
  function mWe(e, t) {
    const { text: r } = e, i = v_(t, e);
    let o = i;
    for (; o <= t && Im(r.charCodeAt(o)); o++)
      ;
    return r.slice(i, o);
  }
  function hWe(e, t, r, i) {
    return e.map(({ name: o, dotDotDotToken: s }, l) => {
      const f = o.kind === 79 ? o.text : "param" + l;
      return `${r} * @param ${t ? s ? "{...any} " : "{any} " : ""}${f}${i}`;
    }).join("");
  }
  function gWe(e, t) {
    return `${e} * @returns${t}`;
  }
  function yWe(e, t) {
    return Ale(e, (r) => Gte(r, t));
  }
  function Gte(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: P6(r, t) };
      case 299:
        return Gte(e.initializer, t);
      case 260:
      case 261:
      case 263:
      case 302:
      case 262:
        return { commentOwner: e };
      case 168: {
        const o = e;
        return o.type && Sh(o.type) ? { commentOwner: e, parameters: o.type.parameters, hasReturn: P6(o.type, t) } : { commentOwner: e };
      }
      case 240: {
        const s = e.declarationList.declarations, l = s.length === 1 && s[0].initializer ? vWe(s[0].initializer) : void 0;
        return l ? { commentOwner: e, parameters: l.parameters, hasReturn: P6(l, t) } : { commentOwner: e };
      }
      case 308:
        return "quit";
      case 264:
        return e.parent.kind === 264 ? void 0 : { commentOwner: e };
      case 241:
        return Gte(e.expression, t);
      case 223: {
        const o = e;
        return Ac(o) === 0 ? "quit" : qa(o.right) ? { commentOwner: e, parameters: o.right.parameters, hasReturn: P6(o.right, t) } : { commentOwner: e };
      }
      case 169:
        const i = e.initializer;
        if (i && (Ps(i) || Ws(i)))
          return { commentOwner: e, parameters: i.parameters, hasReturn: P6(i, t) };
    }
  }
  function P6(e, t) {
    return !!(t != null && t.generateReturnInDocTemplate) && (Sh(e) || Ws(e) && yt(e.body) || Xs(e) && e.body && oo(e.body) && !!lT(e.body, (r) => r));
  }
  function vWe(e) {
    for (; e.kind === 214; )
      e = e.expression;
    switch (e.kind) {
      case 215:
      case 216:
        return e;
      case 228:
        return cn(e.members, Hc);
    }
  }
  var Ute, YSe, $Se, QSe, bWe = C({
    "src/services/jsDoc.ts"() {
      Xr(), Ute = [
        "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"
      ], QSe = XSe;
    }
  }), sb = {};
  le(sb, {
    getDocCommentTemplateAtPosition: () => pWe,
    getJSDocParameterNameCompletionDetails: () => _We,
    getJSDocParameterNameCompletions: () => fWe,
    getJSDocTagCompletionDetails: () => XSe,
    getJSDocTagCompletions: () => dWe,
    getJSDocTagNameCompletionDetails: () => QSe,
    getJSDocTagNameCompletions: () => uWe,
    getJsDocCommentsFromDeclarations: () => iWe,
    getJsDocTagsFromDeclarations: () => sWe
  });
  var EWe = C({
    "src/services/_namespaces/ts.JsDoc.ts"() {
      bWe();
    }
  });
  function TWe(e, t, r, i, o, s) {
    const l = gr.ChangeTracker.fromContext({ host: r, formatContext: t, preferences: o }), f = s === "SortAndCombine" || s === "All", d = f, y = s === "RemoveUnused" || s === "All", h = Vte(e, e.statements.filter(Ul)), b = GWe(o, f ? () => txe(h, o) === 2 : void 0), A = (I) => (y && (I = xWe(I, e, i)), d && (I = ZSe(I, b, e)), f && (I = iy(I, (O, k) => qte(O, k, b))), I);
    if (h.forEach((I) => L(I, A)), s !== "RemoveUnused") {
      const I = e.statements.filter(Xl);
      L(I, (O) => jte(O, b));
    }
    for (const I of e.statements.filter(Du)) {
      if (!I.body)
        continue;
      if (Vte(e, I.body.statements.filter(Ul)).forEach((k) => L(k, A)), s !== "RemoveUnused") {
        const k = I.body.statements.filter(Xl);
        L(k, (B) => jte(B, b));
      }
    }
    return l.getChanges();
    function L(I, O) {
      if (Ie(I) === 0)
        return;
      KF(I[0]);
      const k = d ? tI(I, (H) => M6(H.moduleSpecifier)) : [I], B = f ? iy(k, (H, te) => Wte(H[0].moduleSpecifier, te[0].moduleSpecifier, b)) : k, V = wo(B, (H) => M6(H[0].moduleSpecifier) ? O(H) : H);
      if (V.length === 0)
        l.deleteNodes(e, I, {
          leadingTriviaOption: gr.LeadingTriviaOption.Exclude,
          trailingTriviaOption: gr.TrailingTriviaOption.Include
        }, !0);
      else {
        const H = {
          leadingTriviaOption: gr.LeadingTriviaOption.Exclude,
          trailingTriviaOption: gr.TrailingTriviaOption.Include,
          suffix: rb(r, t.options)
        };
        l.replaceNodeWithNodes(e, I[0], V, H);
        const te = l.nodeHasTrailingComment(e, I[0], H);
        l.deleteNodes(e, I.slice(1), {
          trailingTriviaOption: gr.TrailingTriviaOption.Include
        }, te);
      }
    }
  }
  function Vte(e, t) {
    const r = cy(e.languageVersion, !1, e.languageVariant), i = [];
    let o = 0;
    for (const s of t)
      i[o] && SWe(e, s, r) && o++, i[o] || (i[o] = []), i[o].push(s);
    return i;
  }
  function SWe(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 xWe(e, t, r) {
    const i = r.getTypeChecker(), o = r.getCompilerOptions(), s = i.getJsxNamespace(t), l = i.getJsxFragmentFactory(t), f = !!(t.transformFlags & 2), d = [];
    for (const h of e) {
      const { importClause: b, moduleSpecifier: A } = h;
      if (!b) {
        d.push(h);
        continue;
      }
      let { name: L, namedBindings: I } = b;
      if (L && !y(L) && (L = void 0), I)
        if (Pv(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(ww(h, L, I)) : AWe(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 || l && h.text === l) && rQ(o.jsx) || lc.Core.isSymbolReferencedInFile(h, i, t);
    }
  }
  function AWe(e, t) {
    const r = Go(t) && t.text;
    return Ua(r) && kt(e.moduleAugmentations, (i) => Go(i) && i.text === r);
  }
  function M6(e) {
    return e !== void 0 && Es(e) ? e.text : void 0;
  }
  function CWe(e, t, r) {
    const i = IG(t);
    return ZSe(e, i, r);
  }
  function ZSe(e, t, r) {
    if (e.length === 0)
      return e;
    const { importWithoutClause: i, typeOnlyImports: o, regularImports: s } = LWe(e), l = [];
    i && l.push(i);
    for (const f of [s, o]) {
      const d = f === o, { defaultImports: y, namespaceImports: h, namedImports: b } = f;
      if (!d && y.length === 1 && h.length === 1 && b.length === 0) {
        const te = y[0];
        l.push(ww(te, te.importClause.name, h[0].importClause.namedBindings));
        continue;
      }
      const A = iy(h, (te, X) => t(te.importClause.namedBindings.name.text, X.importClause.namedBindings.name.text));
      for (const te of A)
        l.push(ww(te, void 0, te.importClause.namedBindings));
      const L = zl(y), I = zl(b), O = L ?? I;
      if (!O)
        continue;
      let k;
      const B = [];
      if (y.length === 1)
        k = y[0].importClause.name;
      else
        for (const te of y)
          B.push(N.createImportSpecifier(!1, N.createIdentifier("default"), te.importClause.name));
      B.push(...PWe(b));
      const V = N.createNodeArray(exe(B, 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) && sr(H, 2), d && k && H ? (l.push(ww(O, k, void 0)), l.push(ww(I ?? O, void 0, H))) : l.push(ww(O, k, H));
    }
    return l;
  }
  function LWe(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: l, namedBindings: f } = o.importClause;
      l && s.defaultImports.push(o), f && (Pv(f) ? s.namespaceImports.push(o) : s.namedImports.push(o));
    }
    return {
      importWithoutClause: t,
      typeOnlyImports: r,
      regularImports: i
    };
  }
  function IWe(e, t) {
    const r = IG(t);
    return jte(e, r);
  }
  function jte(e, t) {
    if (e.length === 0)
      return e;
    const { exportWithoutClause: r, namedExports: i, typeOnlyExports: o } = l(e), s = [];
    r && s.push(r);
    for (const f of [i, o]) {
      if (f.length === 0)
        continue;
      const d = [];
      d.push(...wo(f, (b) => b.exportClause && z_(b.exportClause) ? b.exportClause.elements : rt));
      const y = exe(d, t), h = f[0];
      s.push(N.updateExportDeclaration(h, h.modifiers, h.isTypeOnly, h.exportClause && (z_(h.exportClause) ? N.updateNamedExports(h.exportClause, y) : N.updateNamespaceExport(h.exportClause, h.exportClause.name)), h.moduleSpecifier, h.assertClause));
    }
    return s;
    function l(f) {
      let d;
      const y = [], h = [];
      for (const b of f)
        b.exportClause === void 0 ? d = d || b : b.isTypeOnly ? h.push(b) : y.push(b);
      return {
        exportWithoutClause: d,
        namedExports: y,
        typeOnlyExports: h
      };
    }
  }
  function ww(e, t, r) {
    return N.updateImportDeclaration(e, e.modifiers, N.updateImportClause(e.importClause, e.importClause.isTypeOnly, t, r), e.moduleSpecifier, e.assertClause);
  }
  function exe(e, t) {
    return iy(e, (r, i) => Hte(r, i, t));
  }
  function Hte(e, t, r) {
    return i1(e.isTypeOnly, t.isTypeOnly) || r(e.name.text, t.name.text);
  }
  function kWe(e, t, r) {
    const i = IG(!!r);
    return Wte(e, t, i);
  }
  function Wte(e, t, r) {
    const i = e === void 0 ? void 0 : M6(e), o = t === void 0 ? void 0 : M6(t);
    return i1(i === void 0, o === void 0) || i1(Pl(i), Pl(o)) || r(i, o);
  }
  function zte(e) {
    var t;
    switch (e.kind) {
      case 268:
        return (t = ii(e.moduleReference, jm)) == null ? void 0 : t.expression;
      case 269:
        return e.moduleSpecifier;
      case 240:
        return e.declarationList.declarations[0].initializer.arguments[0];
    }
  }
  function wWe(e, t) {
    return txe(Vte(e, e.statements.filter(Ul)), t);
  }
  function txe(e, t) {
    const r = r2(t, !1), i = r2(t, !0);
    let o = 3, s = !1;
    for (const l of e) {
      if (l.length > 1) {
        const d = L4(l, (y) => {
          var h, b;
          return (b = (h = ii(y.moduleSpecifier, Go)) == null ? void 0 : h.text) != null ? b : "";
        }, r, i);
        if (d && (o &= d, s = !0), !o)
          return o;
      }
      const f = cn(l, (d) => {
        var y, h;
        return ((h = ii((y = d.importClause) == null ? void 0 : y.namedBindings, Ey)) == null ? void 0 : h.elements.length) > 1;
      });
      if (f) {
        const d = Jte(f.importClause.namedBindings.elements, t);
        if (d && (o &= d, s = !0), !o)
          return o;
      }
      if (o !== 3)
        return o;
    }
    return s ? 0 : o;
  }
  function DWe(e, t) {
    const r = r2(t, !1), i = r2(t, !0);
    return L4(e, (o) => M6(zte(o)) || "", r, i);
  }
  function RWe(e, t, r) {
    const i = pv(e, t, pc, (o, s) => qte(o, s, r));
    return i < 0 ? ~i : i;
  }
  function NWe(e, t, r) {
    const i = pv(e, t, pc, (o, s) => Hte(o, s, r));
    return i < 0 ? ~i : i;
  }
  function qte(e, t, r) {
    return Wte(zte(e), zte(t), r) || OWe(e, t);
  }
  function OWe(e, t) {
    return Vs(nxe(e), nxe(t));
  }
  function nxe(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 PWe(e) {
    return wo(e, (t) => en(MWe(t), (r) => r.name && r.propertyName && r.name.escapedText === r.propertyName.escapedText ? N.updateImportSpecifier(r, r.isTypeOnly, void 0, r.name) : r));
  }
  function MWe(e) {
    var t;
    return (t = e.importClause) != null && t.namedBindings && Ey(e.importClause.namedBindings) ? e.importClause.namedBindings.elements : void 0;
  }
  function IG(e) {
    return e ? bse : ku;
  }
  function FWe(e, t) {
    var r, i, o;
    const s = BWe(t), l = (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: l || "false",
      sensitivity: y,
      numeric: f
    }).compare;
  }
  function BWe(e) {
    let t = e.organizeImportsLocale;
    t === "auto" && (t = Ese()), t === void 0 && (t = "en");
    const r = Intl.Collator.supportedLocalesOf(t);
    return r.length ? r[0] : "en";
  }
  function r2(e, t) {
    var r;
    return ((r = e.organizeImportsCollation) != null ? r : "ordinal") === "unicode" ? FWe(t, e) : IG(t);
  }
  function GWe(e, t) {
    var r;
    const i = typeof e.organizeImportsIgnoreCase == "boolean" ? e.organizeImportsIgnoreCase : (r = t == null ? void 0 : t()) != null ? r : !1;
    return r2(e, i);
  }
  var rxe, Jte, UWe = C({
    "src/services/organizeImports.ts"() {
      Xr(), rxe = 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);
        }
      }, Jte = yse((e, t) => {
        if (!cse(e, (o, s) => i1(o.isTypeOnly, s.isTypeOnly)))
          return 0;
        const r = r2(t, !1), i = r2(t, !0);
        return L4(e, (o) => o.name.text, r, i);
      }, new rxe());
    }
  }), X_ = {};
  le(X_, {
    coalesceExports: () => IWe,
    coalesceImports: () => CWe,
    compareImportOrExportSpecifiers: () => Hte,
    compareImportsOrRequireStatements: () => qte,
    compareModuleSpecifiers: () => kWe,
    detectImportDeclarationSorting: () => DWe,
    detectImportSpecifierSorting: () => Jte,
    detectSorting: () => wWe,
    getImportDeclarationInsertionIndex: () => RWe,
    getImportSpecifierInsertionIndex: () => NWe,
    getOrganizeImportsComparer: () => r2,
    organizeImports: () => TWe
  });
  var VWe = C({
    "src/services/_namespaces/ts.OrganizeImports.ts"() {
      UWe();
    }
  });
  function jWe(e, t) {
    const r = [];
    return HWe(e, t, r), WWe(e, r), r.sort((i, o) => i.textSpan.start - o.textSpan.start);
  }
  function HWe(e, t, r) {
    let i = 40, o = 0;
    const s = [...e.statements, e.endOfFileToken], l = s.length;
    for (; o < l; ) {
      for (; o < l && !cT(s[o]); )
        f(s[o]), o++;
      if (o === l)
        break;
      const d = o;
      for (; o < l && cT(s[o]); )
        f(s[o]), o++;
      const y = o - 1;
      y !== d && r.push(F6(gs(s[d], 100, e).getStart(e), s[y].getEnd(), "imports"));
    }
    function f(d) {
      var y;
      if (i === 0)
        return;
      t.throwIfCancellationRequested(), (mu(d) || cl(d) || gp(d) || ig(d) || d.kind === 1) && axe(d, e, t, r), qa(d) && br(d.parent) && Mr(d.parent.left) && axe(d.parent.left, e, t, r), (oo(d) || Zp(d)) && Kte(d.statements.end, e, t, r), (li(d) || Qu(d)) && Kte(d.members.end, e, t, r);
      const h = zWe(d, e);
      h && r.push(h), i--, eo(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 WWe(e, t) {
    const r = [], i = e.getLineStarts();
    for (const o of i) {
      const s = e.getLineEndOfPosition(o), l = e.text.substring(o, s), f = ixe(l);
      if (!(!f || Cy(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 = _l(e.text.indexOf("//", o), s);
          r.push(tS(d, "region", d, !1, f[2] || "#region"));
        }
    }
  }
  function ixe(e) {
    return e = iI(e), ba(e, "//") ? (e = o1(e.slice(2)), oxe.exec(e)) : null;
  }
  function Kte(e, t, r, i) {
    const o = dh(t.text, e);
    if (!o)
      return;
    let s = -1, l = -1, f = 0;
    const d = t.getFullText();
    for (const { kind: h, pos: b, end: A } of o)
      switch (r.throwIfCancellationRequested(), h) {
        case 2:
          const L = d.slice(b, A);
          if (ixe(L)) {
            y(), f = 0;
            break;
          }
          f === 0 && (s = b), l = A, f++;
          break;
        case 3:
          y(), i.push(F6(b, A, "comment")), f = 0;
          break;
        default:
          D.assertNever(h);
      }
    y();
    function y() {
      f > 1 && i.push(F6(s, l, "comment"));
    }
  }
  function axe(e, t, r, i) {
    yx(e) || Kte(e.pos, t, r, i);
  }
  function F6(e, t, r) {
    return tS(_l(e, t), r);
  }
  function zWe(e, t) {
    switch (e.kind) {
      case 238:
        if (qa(e.parent))
          return qWe(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 = gs(L, 96, t);
              if (I)
                return h(I);
            }
          default:
            return tS(Zu(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, !pC(e.parent), 22);
      case 292:
      case 293:
        return b(e.statements);
      case 207:
        return y(e);
      case 206:
        return y(e, 22);
      case 281:
        return s(e);
      case 285:
        return l(e);
      case 282:
      case 283:
        return f(e.attributes);
      case 225:
      case 14:
        return d(e);
      case 204:
        return h(e, !1, !us(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 = gs(L, 18, t), O = gs(L, 19, t);
      if (!(!I || !O || p_(I.pos, O.pos, t)))
        return kG(I, O, L, t, !1, !1);
    }
    function i(L) {
      if (!L.arguments.length)
        return;
      const I = gs(L, 20, t), O = gs(L, 21, t);
      if (!(!I || !O || p_(I.pos, O.pos, t)))
        return kG(I, O, L, t, !1, !0);
    }
    function o(L) {
      if (oo(L.body) || Fd(L.body) || p_(L.body.getFullStart(), L.body.getEnd(), t))
        return;
      const I = _l(L.body.getFullStart(), L.body.getEnd());
      return tS(I, "code", Zu(L));
    }
    function s(L) {
      const I = _l(L.openingElement.getStart(t), L.closingElement.getEnd()), O = L.openingElement.tagName.getText(t), k = "<" + O + ">...</" + O + ">";
      return tS(I, "code", I, !1, k);
    }
    function l(L) {
      const I = _l(L.openingFragment.getStart(t), L.closingFragment.getEnd());
      return tS(I, "code", I, !1, "<>...</>");
    }
    function f(L) {
      if (L.properties.length !== 0)
        return F6(L.getStart(t), L.getEnd(), "code");
    }
    function d(L) {
      if (!(L.kind === 14 && L.text.length === 0))
        return F6(L.getStart(t), L.getEnd(), "code");
    }
    function y(L, I = 18) {
      return h(L, !1, !Ou(L.parent) && !eo(L.parent), I);
    }
    function h(L, I = !1, O = !0, k = 18, B = k === 18 ? 19 : 23) {
      const V = gs(e, k, t), H = gs(e, B, t);
      return V && H && kG(V, H, L, t, I, O);
    }
    function b(L) {
      return L.length ? tS(jv(L), "code") : void 0;
    }
    function A(L) {
      if (p_(L.getStart(), L.getEnd(), t))
        return;
      const I = _l(L.getStart(), L.getEnd());
      return tS(I, "code", Zu(L));
    }
  }
  function qWe(e, t, r) {
    const i = JWe(e, t, r), o = gs(t, 19, r);
    return i && o && kG(i, o, e, r, e.kind !== 216);
  }
  function kG(e, t, r, i, o = !1, s = !0) {
    const l = _l(s ? e.getFullStart() : e.getStart(i), t.getEnd());
    return tS(l, "code", Zu(r, i), o);
  }
  function tS(e, t, r = e, i = !1, o = "...") {
    return { textSpan: e, kind: t, hintSpan: r, bannerText: o, autoCollapse: i };
  }
  function JWe(e, t, r) {
    if (nde(e.parameters, r)) {
      const i = gs(e, 20, r);
      if (i)
        return i;
    }
    return gs(t, 18, r);
  }
  var oxe, KWe = C({
    "src/services/outliningElementsCollector.ts"() {
      Xr(), oxe = /^#(end)?region(?:\s+(.*))?(?:\r)?$/;
    }
  }), Xte = {};
  le(Xte, {
    collectElements: () => jWe
  });
  var XWe = C({
    "src/services/_namespaces/ts.OutliningElementsCollector.ts"() {
      KWe();
    }
  });
  function yg(e, t) {
    wG.set(e, t);
  }
  function YWe(e) {
    return Do(O0(wG.values(), (t) => {
      var r;
      return e.cancellationToken && e.cancellationToken.isCancellationRequested() || !((r = t.kinds) != null && r.some((i) => Jv(i, e.kind))) ? void 0 : t.getAvailableActions(e);
    }));
  }
  function $We(e, t, r) {
    const i = wG.get(t);
    return i && i.getEditsForAction(e, r);
  }
  var wG, QWe = C({
    "src/services/refactorProvider.ts"() {
      Xr(), kh(), wG = /* @__PURE__ */ new Map();
    }
  });
  function sxe(e, t = !0) {
    const { file: r, program: i } = e, o = Wx(e), s = ia(r, o.start), l = s.parent && kv(s.parent) & 1 && t ? s.parent : t6(s, r, o);
    if (!l || !Hi(l.parent) && !(Zp(l.parent) && Du(l.parent.parent)))
      return { error: Ro(_.Could_not_find_export_statement) };
    const f = i.getTypeChecker(), d = ize(l.parent, f), y = kv(l) || (Mc(l) && !l.isExportEquals ? 1025 : 0), h = !!(y & 1024);
    if (!(y & 1) || !h && d.exports.has("default"))
      return { error: Ro(_.This_file_already_has_a_default_export) };
    const b = (A) => Ve(A) && f.getSymbolAtLocation(A) ? void 0 : { error: Ro(_.Can_only_convert_named_export) };
    switch (l.kind) {
      case 259:
      case 260:
      case 261:
      case 263:
      case 262:
      case 264: {
        const A = l;
        return A.name ? b(A.name) || { exportNode: A, exportName: A.name, wasDefault: h, exportingModuleSymbol: d } : void 0;
      }
      case 240: {
        const A = l;
        if (!(A.declarationList.flags & 2) || A.declarationList.declarations.length !== 1)
          return;
        const L = ss(A.declarationList.declarations);
        return L.initializer ? (D.assert(!h, "Can't have a default flag here"), b(L.name) || { exportNode: A, exportName: L.name, wasDefault: h, exportingModuleSymbol: d }) : void 0;
      }
      case 274: {
        const A = l;
        return A.isExportEquals ? void 0 : b(A.expression) || { exportNode: A, exportName: A.expression, wasDefault: h, exportingModuleSymbol: d };
      }
      default:
        return;
    }
  }
  function ZWe(e, t, r, i, o) {
    eze(e, r, i, t.getTypeChecker()), tze(t, r, i, o);
  }
  function eze(e, { wasDefault: t, exportNode: r, exportName: i }, o, s) {
    if (t)
      if (Mc(r) && !r.isExportEquals) {
        const l = r.expression, f = cxe(l.text, l.text);
        o.replaceNode(e, r, N.createExportDeclaration(void 0, !1, N.createNamedExports([f])));
      } else
        o.delete(e, D.checkDefined(zC(r, 88), "Should find a default keyword in modifier list"));
    else {
      const l = D.checkDefined(zC(r, 93), "Should find an export keyword in modifier list");
      switch (r.kind) {
        case 259:
        case 260:
        case 261:
          o.insertNodeAfter(e, l, N.createToken(88));
          break;
        case 240:
          const f = ss(r.declarationList.declarations);
          if (!lc.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, l), o.insertNodeAfter(e, r, N.createExportDefault(N.createIdentifier(i.text)));
          break;
        default:
          D.fail(`Unexpected exportNode kind ${r.kind}`);
      }
    }
  }
  function tze(e, { wasDefault: t, exportName: r, exportingModuleSymbol: i }, o, s) {
    const l = e.getTypeChecker(), f = D.checkDefined(l.getSymbolAtLocation(r), "Export name should resolve to a symbol");
    lc.Core.eachExportReference(e.getSourceFiles(), l, s, f, i, r.text, t, (d) => {
      if (r === d)
        return;
      const y = d.getSourceFile();
      t ? nze(y, d, o, r.text) : rze(y, d, o);
    });
  }
  function nze(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 l = o;
        r.replaceNode(e, l, Yte(i, l.name.text));
        break;
      }
      case 270: {
        const l = o;
        D.assert(l.name === t, "Import clause name should match provided ref");
        const f = Yte(i, t.text), { namedBindings: d } = l;
        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 = Go(l.parent.moduleSpecifier) ? N$(l.parent.moduleSpecifier, e) : 1, h = Iy(void 0, [Yte(i, t.text)], l.parent.moduleSpecifier, y);
          r.insertNodeAfter(e, l.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 rze(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, cxe("default", i.name.text));
        break;
      }
      default:
        D.assertNever(i, `Unexpected parent kind ${i.kind}`);
    }
  }
  function Yte(e, t) {
    return N.createImportSpecifier(!1, e === t ? void 0 : N.createIdentifier(e), N.createIdentifier(t));
  }
  function cxe(e, t) {
    return N.createExportSpecifier(!1, e === t ? void 0 : N.createIdentifier(e), N.createIdentifier(t));
  }
  function ize(e, t) {
    if (Hi(e))
      return e.symbol;
    const r = e.parent.symbol;
    return r.valueDeclaration && g1(r.valueDeclaration) ? t.getMergedSymbol(r) : r;
  }
  var DG, B6, G6, aze = C({
    "src/services/refactors/convertExport.ts"() {
      Xr(), kh(), DG = "Convert export", B6 = {
        name: "Convert default export to named export",
        description: _.Convert_default_export_to_named_export.message,
        kind: "refactor.rewrite.export.named"
      }, G6 = {
        name: "Convert named export to default export",
        description: _.Convert_named_export_to_default_export.message,
        kind: "refactor.rewrite.export.default"
      }, yg(DG, {
        kinds: [
          B6.kind,
          G6.kind
        ],
        getAvailableActions: function(t) {
          const r = sxe(t, t.triggerReason === "invoked");
          if (!r)
            return rt;
          if (!Ih(r)) {
            const i = r.wasDefault ? B6 : G6;
            return [{ name: DG, description: i.description, actions: [i] }];
          }
          return t.preferences.provideRefactorNotApplicableReason ? [
            { name: DG, description: _.Convert_default_export_to_named_export.message, actions: [
              { ...B6, notApplicableReason: r.error },
              { ...G6, notApplicableReason: r.error }
            ] }
          ] : rt;
        },
        getEditsForAction: function(t, r) {
          D.assert(r === B6.name || r === G6.name, "Unexpected action name");
          const i = sxe(t);
          return D.assert(i && !Ih(i), "Expected applicable refactor info"), { edits: gr.ChangeTracker.with(t, (s) => ZWe(t.file, t.program, i, s, t.cancellationToken)), renameFilename: void 0, renameLocation: void 0 };
        }
      });
    }
  });
  function lxe(e, t = !0) {
    const { file: r } = e, i = Wx(e), o = ia(r, i.start), s = t ? rr(o, Ul) : t6(o, r, i);
    if (!s || !Ul(s))
      return { error: "Selection is not an import declaration." };
    const l = i.start + i.length, f = zT(s, s.parent, r);
    if (f && l > f.getStart())
      return;
    const { importClause: d } = s;
    return d ? d.namedBindings ? d.namedBindings.kind === 271 ? { convertTo: 0, import: d.namedBindings } : uxe(e.program, d) ? { convertTo: 1, import: d.namedBindings } : { convertTo: 2, import: d.namedBindings } : { error: Ro(_.Could_not_find_namespace_import_or_named_imports) } : { error: Ro(_.Could_not_find_import_clause) };
  }
  function uxe(e, t) {
    return ET(e.getCompilerOptions()) && lze(t.parent.moduleSpecifier, e.getTypeChecker());
  }
  function oze(e, t, r, i) {
    const o = t.getTypeChecker();
    i.convertTo === 0 ? sze(e, o, r, i.import, ET(t.getCompilerOptions())) : fxe(e, t, r, i.import, i.convertTo === 1);
  }
  function sze(e, t, r, i, o) {
    let s = !1;
    const l = [], f = /* @__PURE__ */ new Map();
    lc.Core.eachSymbolReferenceInFile(i.name, t, e, (b) => {
      if (!lle(b.parent))
        s = !0;
      else {
        const A = dxe(b.parent).text;
        t.resolveName(A, b, 67108863, !0) && f.set(A, !0), D.assert(cze(b.parent) === b, "Parent expression should match id"), l.push(b.parent);
      }
    });
    const d = /* @__PURE__ */ new Map();
    for (const b of l) {
      const A = dxe(b).text;
      let L = d.get(A);
      L === void 0 && d.set(A, L = f.has(A) ? KT(A, e) : A), r.replaceNode(e, b, N.createIdentifier(L));
    }
    const y = [];
    d.forEach((b, A) => {
      y.push(N.createImportSpecifier(!1, b === A ? void 0 : N.createIdentifier(A), N.createIdentifier(b)));
    });
    const h = i.parent.parent;
    s && !o ? r.insertNodeAfter(e, h, $te(h, void 0, y)) : r.replaceNode(e, h, $te(h, s ? N.createIdentifier(i.name.text) : void 0, y));
  }
  function dxe(e) {
    return Mr(e) ? e.name : e.right;
  }
  function cze(e) {
    return Mr(e) ? e.expression : e.left;
  }
  function fxe(e, t, r, i, o = uxe(t, i.parent)) {
    const s = t.getTypeChecker(), l = i.parent.parent, { moduleSpecifier: f } = l, d = /* @__PURE__ */ new Set();
    i.elements.forEach((I) => {
      const O = s.getSymbolAtLocation(I.name);
      O && d.add(O);
    });
    const y = f && Go(f) ? Gu.moduleSpecifierToValidIdentifier(f.text, 99) : "module";
    function h(I) {
      return !!lc.Core.eachSymbolReferenceInFile(I.name, s, e, (O) => {
        const k = s.resolveName(y, O, 67108863, !0);
        return k ? d.has(k) ? cd(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;
      lc.Core.eachSymbolReferenceInFile(I.name, s, e, (k) => {
        const B = N.createPropertyAccessExpression(N.createIdentifier(A), O);
        $f(k.parent) ? r.replaceNode(e, k.parent, N.createPropertyAssignment(k.text, B)) : cd(k.parent) ? L.add(I) : r.replaceNode(e, k, B);
      });
    }
    if (r.replaceNode(e, i, o ? N.createIdentifier(A) : N.createNamespaceImport(N.createIdentifier(A))), L.size) {
      const I = Do(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, $te(l, void 0, I));
    }
  }
  function lze(e, t) {
    const r = t.resolveExternalModuleName(e);
    if (!r)
      return !1;
    const i = t.resolveExternalModuleSymbol(r);
    return r !== i;
  }
  function $te(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 RG, U6, uze = C({
    "src/services/refactors/convertImport.ts"() {
      Xr(), kh(), RG = "Convert import", U6 = {
        [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"
        }
      }, yg(RG, {
        kinds: PS(U6).map((e) => e.kind),
        getAvailableActions: function(t) {
          const r = lxe(t, t.triggerReason === "invoked");
          if (!r)
            return rt;
          if (!Ih(r)) {
            const i = U6[r.convertTo];
            return [{ name: RG, description: i.description, actions: [i] }];
          }
          return t.preferences.provideRefactorNotApplicableReason ? PS(U6).map((i) => ({
            name: RG,
            description: i.description,
            actions: [{ ...i, notApplicableReason: r.error }]
          })) : rt;
        },
        getEditsForAction: function(t, r) {
          D.assert(kt(PS(U6), (s) => s.name === r), "Unexpected action name");
          const i = lxe(t);
          return D.assert(i && !Ih(i), "Expected applicable refactor info"), { edits: gr.ChangeTracker.with(t, (s) => oze(t.file, t.program, s, i)), renameFilename: void 0, renameLocation: void 0 };
        }
      });
    }
  });
  function _xe(e, t = !0) {
    const { file: r, startPosition: i } = e, o = Xu(r), s = ia(r, i), l = MF(Wx(e)), f = l.pos === l.end && t, d = rr(s, (L) => L.parent && Mi(L) && !cb(l, L.parent, r) && (f || m$(s, r, l.pos, l.end)));
    if (!d || !Mi(d))
      return { error: Ro(_.Selection_is_not_a_valid_type_node) };
    const y = e.program.getTypeChecker(), h = mze(d, o);
    if (h === void 0)
      return { error: Ro(_.No_type_could_be_extracted_from_this_type_node) };
    const b = dze(y, d, h, r);
    if (!b)
      return { error: Ro(_.No_type_could_be_extracted_from_this_type_node) };
    const A = Qte(y, d);
    return { isJS: o, selection: d, enclosingNode: h, typeParameters: b, typeElements: A };
  }
  function Qte(e, t) {
    if (t)
      if (SO(t)) {
        const r = [], i = /* @__PURE__ */ new Map();
        for (const o of t.types) {
          const s = Qte(e, o);
          if (!s || !s.every((l) => l.name && hp(i, Z8(l.name))))
            return;
          bi(r, s);
        }
        return r;
      } else {
        if (Sx(t))
          return Qte(e, t.type);
        if (of(t))
          return t.members;
      }
  }
  function cb(e, t, r) {
    return z8(e, zo(r.text, t.pos), t.end);
  }
  function dze(e, t, r, i) {
    const o = [];
    return s(t) ? void 0 : o;
    function s(l) {
      if (W_(l)) {
        if (Ve(l.typeName)) {
          const f = l.typeName, d = e.resolveName(f.text, f, 262144, !0);
          for (const y of (d == null ? void 0 : d.declarations) || rt)
            if (Pc(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)) {
                c_(o, y);
                break;
              }
            }
        }
      } else if (hC(l)) {
        const f = rr(l, (d) => mC(d) && cb(d.extendsType, l, i));
        if (!f || !cb(t, f, i))
          return !0;
      } else if (L7(l) || I7(l)) {
        const f = rr(l.parent, qa);
        if (f && f.type && cb(f.type, l, i) && !cb(t, f, i))
          return !0;
      } else if (xk(l)) {
        if (Ve(l.exprName)) {
          const f = e.resolveName(l.exprName.text, l.exprName, 111551, !1);
          if (f != null && f.valueDeclaration && cb(r, f.valueDeclaration, i) && !cb(t, f.valueDeclaration, i))
            return !0;
        } else if (yT(l.exprName.left) && !cb(t, l.parent, i))
          return !0;
      }
      return i && pC(l) && ac(i, l.pos).line === ac(i, l.end).line && sr(l, 1), Ra(l, s);
    }
  }
  function fze(e, t, r, i) {
    const { enclosingNode: o, selection: s, typeParameters: l } = i, f = N.createTypeAliasDeclaration(void 0, r, l.map((d) => N.updateTypeParameterDeclaration(d, d.modifiers, d.name, d.constraint, void 0)), s);
    e.insertNodeBefore(t, o, Kq(f), !0), e.replaceNode(t, s, N.createTypeReferenceNode(r, l.map((d) => N.createTypeReferenceNode(d.name, void 0))), { leadingTriviaOption: gr.LeadingTriviaOption.Exclude, trailingTriviaOption: gr.TrailingTriviaOption.ExcludeWhitespace });
  }
  function _ze(e, t, r, i) {
    var o;
    const { enclosingNode: s, selection: l, typeParameters: f, typeElements: d } = i, y = N.createInterfaceDeclaration(void 0, r, f, void 0, d);
    mt(y, (o = d[0]) == null ? void 0 : o.parent), e.insertNodeBefore(t, s, Kq(y), !0), e.replaceNode(t, l, N.createTypeReferenceNode(r, f.map((h) => N.createTypeReferenceNode(h.name, void 0))), { leadingTriviaOption: gr.LeadingTriviaOption.Exclude, trailingTriviaOption: gr.TrailingTriviaOption.ExcludeWhitespace });
  }
  function pze(e, t, r, i, o) {
    var s;
    const { enclosingNode: l, selection: f, typeParameters: d } = o;
    sr(f, 7168);
    const y = N.createJSDocTypedefTag(N.createIdentifier("typedef"), N.createJSDocTypeExpression(f), N.createIdentifier(i)), h = [];
    ze(d, (A) => {
      const L = EA(A), I = N.createTypeParameterDeclaration(void 0, A.name), O = N.createJSDocTemplateTag(N.createIdentifier("template"), L && ro(L, wT), [I]);
      h.push(O);
    });
    const b = N.createJSDocComment(void 0, N.createNodeArray(ma(h, [y])));
    if (Hm(l)) {
      const A = l.getStart(r), L = rb(t.host, (s = t.formatContext) == null ? void 0 : s.options);
      e.insertNodeAt(r, l.getStart(r), b, {
        suffix: L + L + r.text.slice(j$(r.text, A - 1), A)
      });
    } else
      e.insertNodeBefore(r, l, b, !0);
    e.replaceNode(r, f, N.createTypeReferenceNode(i, d.map((A) => N.createTypeReferenceNode(A.name, void 0))));
  }
  function mze(e, t) {
    return rr(e, Ca) || (t ? rr(e, Hm) : void 0);
  }
  var NG, V6, j6, H6, hze = C({
    "src/services/refactors/extractType.ts"() {
      Xr(), kh(), NG = "Extract type", V6 = {
        name: "Extract to type alias",
        description: Ro(_.Extract_to_type_alias),
        kind: "refactor.extract.type"
      }, j6 = {
        name: "Extract to interface",
        description: Ro(_.Extract_to_interface),
        kind: "refactor.extract.interface"
      }, H6 = {
        name: "Extract to typedef",
        description: Ro(_.Extract_to_typedef),
        kind: "refactor.extract.typedef"
      }, yg(NG, {
        kinds: [
          V6.kind,
          j6.kind,
          H6.kind
        ],
        getAvailableActions: function(t) {
          const r = _xe(t, t.triggerReason === "invoked");
          return r ? Ih(r) ? t.preferences.provideRefactorNotApplicableReason ? [{
            name: NG,
            description: Ro(_.Extract_type),
            actions: [
              { ...H6, notApplicableReason: r.error },
              { ...V6, notApplicableReason: r.error },
              { ...j6, notApplicableReason: r.error }
            ]
          }] : rt : [{
            name: NG,
            description: Ro(_.Extract_type),
            actions: r.isJS ? [H6] : Bn([V6], r.typeElements && j6)
          }] : rt;
        },
        getEditsForAction: function(t, r) {
          const { file: i } = t, o = _xe(t);
          D.assert(o && !Ih(o), "Expected to find a range to extract");
          const s = KT("NewType", i), l = gr.ChangeTracker.with(t, (y) => {
            switch (r) {
              case V6.name:
                return D.assert(!o.isJS, "Invalid actionName/JS combo"), fze(y, i, s, o);
              case H6.name:
                return D.assert(o.isJS, "Invalid actionName/JS combo"), pze(y, t, i, s, o);
              case j6.name:
                return D.assert(!o.isJS && !!o.typeElements, "Invalid actionName/JS combo"), _ze(y, i, s, o);
              default:
                D.fail("Unexpected action name");
            }
          }), f = i.fileName, d = a6(l, f, s, !1);
          return { edits: l, renameFilename: f, renameLocation: d };
        }
      });
    }
  });
  function Ih(e) {
    return e.error !== void 0;
  }
  function Jv(e, t) {
    return t ? e.substr(0, t.length) === t : !0;
  }
  var gze = C({
    "src/services/refactors/helpers.ts"() {
    }
  });
  function yze(e) {
    const { file: t } = e, r = MF(Wx(e)), { statements: i } = t, o = Qi(i, (f) => f.end > r.pos);
    if (o === -1)
      return;
    const s = i[o];
    if (_u(s) && s.name && sf(s.name, r))
      return { toMove: [i[o]], afterLast: i[o + 1] };
    if (r.pos > s.getStart(t))
      return;
    const l = Qi(i, (f) => f.end > r.end, o);
    if (!(l !== -1 && (l === 0 || i[l].getStart(t) < r.end)))
      return {
        toMove: i.slice(o, l === -1 ? i.length : l),
        afterLast: l === -1 ? void 0 : i[l]
      };
  }
  function vze(e, t, r, i, o, s) {
    const l = t.getTypeChecker(), f = Mze(e, r.all, l), d = _i(e.fileName), y = eO(e.fileName), h = Pi(d, Oze(Pze(f.oldFileImportsFromNewFile, f.movedSymbols), y, d, o)) + y;
    i.createNewFile(e, h, Sze(e, f, i, r, t, o, h, s)), Tze(t, i, e.fileName, h, q0(o));
  }
  function pxe(e) {
    const t = yze(e);
    if (t === void 0)
      return;
    const r = [], i = [], { toMove: o, afterLast: s } = t;
    return sj(o, bze, (l, f) => {
      for (let d = l; d < f; d++)
        r.push(o[d]);
      i.push({ first: o[l], afterLast: s });
    }), r.length === 0 ? void 0 : { all: r, ranges: i };
  }
  function bze(e) {
    return !Eze(e) && !pp(e);
  }
  function Eze(e) {
    switch (e.kind) {
      case 269:
        return !0;
      case 268:
        return !Kr(e, 1);
      case 240:
        return e.declarationList.declarations.every((t) => !!t.initializer && Ed(t.initializer, !0));
      default:
        return !1;
    }
  }
  function Tze(e, t, r, i, o) {
    const s = e.getCompilerOptions().configFile;
    if (!s)
      return;
    const l = Wo(Pi(r, "..", i)), f = AR(s.fileName, l, o), d = s.statements[0] && ii(s.statements[0].expression, xs), y = d && cn(d.properties, (h) => Vl(h) && Go(h.name) && h.name.text === "files");
    y && Ou(y.initializer) && t.insertNodeInListAfter(s, Ho(y.initializer.elements), N.createStringLiteral(f), y.initializer.elements);
  }
  function Sze(e, t, r, i, o, s, l, f) {
    const d = o.getTypeChecker(), y = F4(e.statements, pp);
    if (e.externalModuleIndicator === void 0 && e.commonJsModuleIndicator === void 0 && t.oldImportsNeededByNewFile.size() === 0)
      return mxe(e, i.ranges, r), [...y, ...i.all];
    const h = !!e.externalModuleIndicator, b = Ep(e, f), A = kze(e, t.oldFileImportsFromNewFile, l, o, s, h, b);
    A && qF(r, e, A, !0, f), xze(e, i.all, r, t.unusedImportsFromOldFile, d), mxe(e, i.ranges, r), Aze(r, o, s, e, t.movedSymbols, l);
    const L = Nze(e, t.oldImportsNeededByNewFile, t.newFileImportsFromOldFile, r, d, o, s, h, b), I = wze(e, i.all, t.oldFileImportsFromNewFile, h);
    return L.length && I.length ? [
      ...y,
      ...L,
      4,
      ...I
    ] : [
      ...y,
      ...L,
      ...I
    ];
  }
  function mxe(e, t, r) {
    for (const { first: i, afterLast: o } of t)
      r.deleteNodeRangeExcludingEnd(e, i, o);
  }
  function xze(e, t, r, i, o) {
    for (const s of e.statements)
      wi(t, s) || Zte(s, (l) => vxe(e, l, r, (f) => i.has(o.getSymbolAtLocation(f))));
  }
  function Aze(e, t, r, i, o, s) {
    const l = t.getTypeChecker();
    for (const f of t.getSourceFiles())
      if (f !== i)
        for (const d of f.statements)
          Zte(d, (y) => {
            if (l.getSymbolAtLocation(hxe(y)) !== i.symbol)
              return;
            const h = (O) => {
              const k = us(O.parent) ? zF(l, O.parent) : af(l.getSymbolAtLocation(O), l);
              return !!k && o.has(k);
            };
            vxe(f, y, e, h);
            const b = hv(_i(i.path), s), A = A5(t.getCompilerOptions(), f, f.path, b, Hx(t, r)), L = Txe(y, N.createStringLiteral(A), h);
            L && e.insertNodeAfter(f, d, L);
            const I = Cze(y);
            I && Lze(e, f, l, o, A, I, y);
          });
  }
  function Cze(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 ii(e.name, Ve);
      default:
        return D.assertNever(e, `Unexpected node kind ${e.kind}`);
    }
  }
  function Lze(e, t, r, i, o, s, l) {
    const f = Gu.moduleSpecifierToValidIdentifier(o, 99);
    let d = !1;
    const y = [];
    if (lc.Core.eachSymbolReferenceInFile(s, r, t, (h) => {
      Mr(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 b of y)
        e.replaceNode(t, b, N.createIdentifier(h));
      e.insertNodeAfter(t, l, Ize(l, f, o));
    }
  }
  function Ize(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, ene(o));
      default:
        return D.assertNever(e, `Unexpected node kind ${e.kind}`);
    }
  }
  function hxe(e) {
    return e.kind === 269 ? e.moduleSpecifier : e.kind === 268 ? e.moduleReference.expression : e.initializer.arguments[0];
  }
  function Zte(e, t) {
    if (Ul(e))
      Go(e.moduleSpecifier) && t(e);
    else if (ru(e))
      jm(e.moduleReference) && Es(e.moduleReference.expression) && t(e);
    else if (cl(e))
      for (const r of e.declarationList.declarations)
        r.initializer && Ed(r.initializer, !0) && t(r);
  }
  function kze(e, t, r, i, o, s, l) {
    let f;
    const d = [];
    return t.forEach((y) => {
      y.escapedName === "default" ? f = N.createIdentifier(jF(y)) : d.push(y.name);
    }), gxe(e, f, d, r, i, o, s, l);
  }
  function gxe(e, t, r, i, o, s, l, f) {
    const d = hv(_i(e.path), i), y = A5(o.getCompilerOptions(), e, e.path, d, Hx(o, s));
    if (l) {
      const h = r.map((b) => N.createImportSpecifier(!1, void 0, N.createIdentifier(b)));
      return Gye(t, h, y, f);
    } else {
      D.assert(!t, "No default import should exist");
      const h = r.map((b) => N.createBindingElement(void 0, void 0, b));
      return h.length ? yxe(N.createObjectBindingPattern(h), void 0, ene(N.createStringLiteral(y))) : void 0;
    }
  }
  function yxe(e, t, r, i = 2) {
    return N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(e, void 0, t, r)], i));
  }
  function ene(e) {
    return N.createCallExpression(N.createIdentifier("require"), void 0, [e]);
  }
  function wze(e, t, r, i) {
    return wo(t, (o) => {
      if (Uze(o) && !kxe(e, o, i) && Cxe(o, (s) => {
        var l;
        return r.has(D.checkDefined((l = ii(s, km)) == null ? void 0 : l.symbol));
      })) {
        const s = Hze(o, i);
        if (s)
          return s;
      }
      return o;
    });
  }
  function vxe(e, t, r, i) {
    switch (t.kind) {
      case 269:
        Dze(e, t, r, i);
        break;
      case 268:
        i(t.name) && r.delete(e, t);
        break;
      case 257:
        Rze(e, t, r, i);
        break;
      default:
        D.assertNever(t, `Unexpected import decl kind ${t.kind}`);
    }
  }
  function Dze(e, t, r, i) {
    if (!t.importClause)
      return;
    const { name: o, namedBindings: s } = t.importClause, l = !o || i(o), f = !s || (s.kind === 271 ? i(s.name) : s.elements.length !== 0 && s.elements.every((d) => i(d.name)));
    if (l && f)
      r.delete(e, t);
    else if (o && l && 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 Rze(e, t, r, i) {
    const { name: o } = t;
    switch (o.kind) {
      case 79:
        i(o) && (t.initializer && Ed(t.initializer, !0) ? r.delete(e, Mu(t.parent) && Ie(t.parent.declarations) === 1 ? t.parent.parent : t) : r.delete(e, o));
        break;
      case 204:
        break;
      case 203:
        if (o.elements.every((s) => Ve(s.name) && i(s.name)))
          r.delete(e, Mu(t.parent) && t.parent.declarations.length === 1 ? t.parent.parent : t);
        else
          for (const s of o.elements)
            Ve(s.name) && i(s.name) && r.delete(e, s.name);
        break;
    }
  }
  function Nze(e, t, r, i, o, s, l, f, d) {
    const y = [];
    for (const L of e.statements)
      Zte(L, (I) => {
        Bn(y, Txe(I, hxe(I), (O) => t.has(o.getSymbolAtLocation(O))));
      });
    let h;
    const b = [], A = WC();
    return r.forEach((L) => {
      if (L.declarations)
        for (const I of L.declarations) {
          if (!xxe(I))
            continue;
          const O = Vze(I);
          if (!O)
            continue;
          const k = Ixe(I);
          A(k) && jze(e, k, O, i, f), Kr(I, 1024) ? h = O : b.push(O.text);
        }
    }), Bn(y, gxe(e, h, b, du(e.fileName), s, l, f, d)), y;
  }
  function Oze(e, t, r, i) {
    let o = e;
    for (let s = 1; ; s++) {
      const l = Pi(r, o + t);
      if (!i.fileExists(l))
        return o;
      o = `${e}.${s}`;
    }
  }
  function Pze(e, t) {
    return e.forEachEntry(jF) || t.forEachEntry(jF) || "newFile";
  }
  function Mze(e, t, r) {
    const i = new Rw(), o = new Rw(), s = new Rw(), l = cn(t, (b) => !!(b.transformFlags & 2)), f = h(l);
    f && o.add(f);
    for (const b of t)
      Cxe(b, (A) => {
        i.add(D.checkDefined(nu(A) ? r.getSymbolAtLocation(A.expression.left) : A.symbol, "Need a symbol here"));
      });
    for (const b of t)
      Sxe(b, r, (A) => {
        if (A.declarations)
          for (const L of A.declarations)
            bxe(L) ? o.add(A) : xxe(L) && Gze(L) === e && !i.has(A) && s.add(A);
      });
    const d = o.clone(), y = new Rw();
    for (const b of e.statements)
      wi(t, b) || (f && b.transformFlags & 2 && d.delete(f), Sxe(b, r, (A) => {
        i.has(A) && y.add(A), d.delete(A);
      }));
    return { movedSymbols: i, newFileImportsFromOldFile: s, oldFileImportsFromNewFile: y, oldImportsNeededByNewFile: o, unusedImportsFromOldFile: d };
    function h(b) {
      if (b === void 0)
        return;
      const A = r.getJsxNamespace(b), L = r.resolveName(A, b, 1920, !0);
      return L && kt(L.declarations, bxe) ? L : void 0;
    }
  }
  function bxe(e) {
    switch (e.kind) {
      case 268:
      case 273:
      case 270:
      case 271:
        return !0;
      case 257:
        return Exe(e);
      case 205:
        return zi(e.parent.parent) && Exe(e.parent.parent);
      default:
        return !1;
    }
  }
  function Exe(e) {
    return Hi(e.parent.parent.parent) && !!e.initializer && Ed(e.initializer, !0);
  }
  function Txe(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 && Fze(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 = Bze(e.name, r);
        return i ? yxe(i, e.type, ene(t), e.parent.flags) : void 0;
      }
      default:
        return D.assertNever(e, `Unexpected import kind ${e.kind}`);
    }
  }
  function Fze(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 Bze(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 || !Ve(i.name) || t(i.name));
        return r.length ? N.createObjectBindingPattern(r) : void 0;
      }
    }
  }
  function Sxe(e, t, r) {
    e.forEachChild(function i(o) {
      if (Ve(o) && !lg(o)) {
        const s = t.getSymbolAtLocation(o);
        s && r(s);
      } else
        o.forEachChild(i);
    });
  }
  function xxe(e) {
    return Axe(e) && Hi(e.parent) || zi(e) && Hi(e.parent.parent.parent);
  }
  function Gze(e) {
    return zi(e) ? e.parent.parent.parent : e.parent;
  }
  function Uze(e) {
    return D.assert(Hi(e.parent), "Node parent should be a SourceFile"), Axe(e) || cl(e);
  }
  function Axe(e) {
    switch (e.kind) {
      case 259:
      case 260:
      case 264:
      case 263:
      case 262:
      case 261:
      case 268:
        return !0;
      default:
        return !1;
    }
  }
  function Cxe(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 sn(e.declarationList.declarations, (r) => Lxe(r.name, t));
      case 241: {
        const { expression: r } = e;
        return br(r) && Ac(r) === 1 ? t(e) : void 0;
      }
    }
  }
  function Lxe(e, t) {
    switch (e.kind) {
      case 79:
        return t(ro(e.parent, (r) => zi(r) || us(r)));
      case 204:
      case 203:
        return sn(e.elements, (r) => kl(r) ? void 0 : Lxe(r.name, t));
      default:
        return D.assertNever(e, `Unexpected name kind ${e.kind}`);
    }
  }
  function Vze(e) {
    return nu(e) ? ii(e.expression.left.name, Ve) : ii(e.name, Ve);
  }
  function Ixe(e) {
    switch (e.kind) {
      case 257:
        return e.parent.parent;
      case 205:
        return Ixe(ro(e.parent.parent, (t) => zi(t) || us(t)));
      default:
        return e;
    }
  }
  function jze(e, t, r, i, o) {
    if (!kxe(e, t, o, r))
      if (o)
        nu(t) || i.insertExportModifier(e, t);
      else {
        const s = tne(t);
        s.length !== 0 && i.insertNodesAfter(e, t, s.map(wxe));
      }
  }
  function kxe(e, t, r, i) {
    var o;
    return r ? !nu(t) && Kr(t, 1) || !!(i && ((o = e.symbol.exports) != null && o.has(i.escapedText))) : !!e.symbol && !!e.symbol.exports && tne(t).some((s) => e.symbol.exports.has(oc(s)));
  }
  function Hze(e, t) {
    return t ? [Wze(e)] : zze(e);
  }
  function Wze(e) {
    const t = q_(e) ? ma([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 = Px(e) ? vv(e) : void 0;
        return N.updateClassDeclaration(e, ma(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 zze(e) {
    return [e, ...tne(e).map(wxe)];
  }
  function tne(e) {
    switch (e.kind) {
      case 259:
      case 260:
        return [e.name.text];
      case 240:
        return fa(e.declarationList.declarations, (t) => Ve(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 Dw, OG, PG, Rw, qze = C({
    "src/services/refactors/moveToNewFile.ts"() {
      Ame(), Xr(), kh(), Dw = "Move to a new file", OG = Ro(_.Move_to_a_new_file), PG = {
        name: Dw,
        description: OG,
        kind: "refactor.move.newFile"
      }, yg(Dw, {
        kinds: [PG.kind],
        getAvailableActions: function(t) {
          const r = pxe(t);
          return t.preferences.allowTextChangesInNewFiles && r ? [{ name: Dw, description: OG, actions: [PG] }] : t.preferences.provideRefactorNotApplicableReason ? [{
            name: Dw,
            description: OG,
            actions: [{ ...PG, notApplicableReason: Ro(_.Selection_is_not_a_valid_statement_or_statements) }]
          }] : rt;
        },
        getEditsForAction: function(t, r) {
          D.assert(r === Dw, "Wrong refactor invoked");
          const i = D.checkDefined(pxe(t));
          return { edits: gr.ChangeTracker.with(t, (s) => vze(t.file, t.program, i, s, t.host, t.preferences)), renameFilename: void 0, renameLocation: void 0 };
        }
      }), Rw = class {
        constructor() {
          this.map = /* @__PURE__ */ new Map();
        }
        add(e) {
          this.map.set(String(yo(e)), e);
        }
        has(e) {
          return this.map.has(String(yo(e)));
        }
        delete(e) {
          this.map.delete(String(yo(e)));
        }
        forEach(e) {
          this.map.forEach(e);
        }
        forEachEntry(e) {
          return tf(this.map, e);
        }
        clone() {
          const e = new Rw();
          return KR(this.map, e.map), e;
        }
        size() {
          return this.map.size;
        }
      };
    }
  });
  function Jze(e) {
    const { file: t, startPosition: r, program: i } = e;
    return Rxe(t, r, i) ? [{
      name: MG,
      description: nne,
      actions: [rne]
    }] : rt;
  }
  function Kze(e) {
    const { file: t, startPosition: r, program: i } = e, o = Rxe(t, r, i);
    if (!o)
      return;
    const s = i.getTypeChecker(), l = o[o.length - 1];
    let f = l;
    switch (l.kind) {
      case 170: {
        f = N.updateMethodSignature(l, l.modifiers, l.name, l.questionToken, l.typeParameters, y(o), l.type);
        break;
      }
      case 171: {
        f = N.updateMethodDeclaration(l, l.modifiers, l.asteriskToken, l.name, l.questionToken, l.typeParameters, y(o), l.type, l.body);
        break;
      }
      case 176: {
        f = N.updateCallSignature(l, l.typeParameters, y(o), l.type);
        break;
      }
      case 173: {
        f = N.updateConstructorDeclaration(l, l.modifiers, y(o), l.body);
        break;
      }
      case 177: {
        f = N.updateConstructSignature(l, l.typeParameters, y(o), l.type);
        break;
      }
      case 259: {
        f = N.updateFunctionDeclaration(l, l.modifiers, l.asteriskToken, l.name, l.typeParameters, y(o), l.type, l.body);
        break;
      }
      default:
        return D.failBadSyntaxKind(l, "Unhandled signature kind in overload list conversion refactoring");
    }
    if (f === l)
      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 Xs(L) && L.body && (A = A.slice(0, A.length - 1)), N.createNodeArray([
        N.createParameterDeclaration(void 0, N.createToken(25), "args", void 0, N.createUnionTypeNode(en(A, h)))
      ]);
    }
    function h(A) {
      const L = en(A.parameters, b);
      return sr(N.createTupleTypeNode(L), kt(L, (I) => !!Ie(lC(I))) ? 0 : 1);
    }
    function b(A) {
      D.assert(Ve(A.name));
      const L = mt(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 = N0e(I);
        O.length && D1(L, [{
          text: `*
${O.split(`
`).map((k) => ` * ${k}`).join(`
`)}
 `,
          kind: 3,
          pos: -1,
          end: -1,
          hasTrailingNewLine: !0,
          hasLeadingNewline: !0
        }]);
      }
      return L;
    }
  }
  function Dxe(e) {
    switch (e.kind) {
      case 170:
      case 171:
      case 176:
      case 173:
      case 177:
      case 259:
        return !0;
    }
    return !1;
  }
  function Rxe(e, t, r) {
    const i = ia(e, t), o = rr(i, Dxe);
    if (!o || Xs(o) && o.body && H8(o.body, t))
      return;
    const s = r.getTypeChecker(), l = o.symbol;
    if (!l)
      return;
    const f = l.declarations;
    if (Ie(f) <= 1 || !Rn(f, (A) => er(A) === e) || !Dxe(f[0]))
      return;
    const d = f[0].kind;
    if (!Rn(f, (A) => A.kind === d))
      return;
    const y = f;
    if (kt(y, (A) => !!A.typeParameters || kt(A.parameters, (L) => !!L.modifiers || !Ve(L.name))))
      return;
    const h = fa(y, (A) => s.getSignatureFromDeclaration(A));
    if (Ie(h) !== Ie(f))
      return;
    const b = s.getReturnTypeOfSignature(h[0]);
    if (Rn(h, (A) => s.getReturnTypeOfSignature(A) === b))
      return y;
  }
  var MG, nne, rne, Xze = C({
    "src/services/refactors/convertOverloadListToSingleSignature.ts"() {
      Xr(), kh(), MG = "Convert overload list to single signature", nne = _.Convert_overload_list_to_single_signature.message, rne = {
        name: MG,
        description: nne,
        kind: "refactor.rewrite.function.overloadList"
      }, yg(MG, {
        kinds: [rne.kind],
        getEditsForAction: Kze,
        getAvailableActions: Jze
      });
    }
  });
  function Yze(e) {
    const { file: t, startPosition: r, triggerReason: i } = e, o = Nxe(t, r, i === "invoked");
    return o ? Ih(o) ? e.preferences.provideRefactorNotApplicableReason ? [{
      name: FG,
      description: ine,
      actions: [
        { ...W6, notApplicableReason: o.error },
        { ...Nw, notApplicableReason: o.error }
      ]
    }] : rt : [{
      name: FG,
      description: ine,
      actions: [
        o.addBraces ? W6 : Nw
      ]
    }] : rt;
  }
  function $ze(e, t) {
    const { file: r, startPosition: i } = e, o = Nxe(r, i);
    D.assert(o && !Ih(o), "Expected applicable refactor info");
    const { expression: s, returnStatement: l, func: f } = o;
    let d;
    if (t === W6.name) {
      const h = N.createReturnStatement(s);
      d = N.createBlock([h], !0), KC(s, h, r, 3, !0);
    } else if (t === Nw.name && l) {
      const h = s || N.createVoidZero();
      d = q$(h) ? N.createParenthesizedExpression(h) : h, o6(l, d, r, 3, !1), KC(l, d, r, 3, !1), fw(l, 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 Nxe(e, t, r = !0, i) {
    const o = ia(e, t), s = Tf(o);
    if (!s)
      return {
        error: Ro(_.Could_not_find_a_containing_arrow_function)
      };
    if (!Ws(s))
      return {
        error: Ro(_.Containing_function_is_not_an_arrow_function)
      };
    if (!(!sf(s, o) || sf(s.body, o) && !r)) {
      if (Jv(W6.kind, i) && yt(s.body))
        return { func: s, addBraces: !0, expression: s.body };
      if (Jv(Nw.kind, i) && oo(s.body) && s.body.statements.length === 1) {
        const l = ss(s.body.statements);
        if (gp(l))
          return { func: s, addBraces: !1, expression: l.expression, returnStatement: l };
      }
    }
  }
  var FG, ine, W6, Nw, Qze = C({
    "src/services/refactors/addOrRemoveBracesToArrowFunction.ts"() {
      Xr(), kh(), FG = "Add or remove braces in an arrow function", ine = _.Add_or_remove_braces_in_an_arrow_function.message, W6 = {
        name: "Add braces to arrow function",
        description: _.Add_braces_to_arrow_function.message,
        kind: "refactor.rewrite.arrow.braces.add"
      }, Nw = {
        name: "Remove braces from arrow function",
        description: _.Remove_braces_from_arrow_function.message,
        kind: "refactor.rewrite.arrow.braces.remove"
      }, yg(FG, {
        kinds: [Nw.kind],
        getEditsForAction: $ze,
        getAvailableActions: Yze
      });
    }
  }), Zze = {}, eqe = C({
    "src/services/_namespaces/ts.refactor.addOrRemoveBracesToArrowFunction.ts"() {
      Xze(), Qze();
    }
  });
  function tqe(e) {
    const { file: t, startPosition: r, program: i, kind: o } = e, s = Pxe(t, r, i);
    if (!s)
      return rt;
    const { selectedVariableDeclaration: l, func: f } = s, d = [], y = [];
    if (Jv(Pw.kind, o)) {
      const h = l || Ws(f) && zi(f.parent) ? void 0 : Ro(_.Could_not_convert_to_named_function);
      h ? y.push({ ...Pw, notApplicableReason: h }) : d.push(Pw);
    }
    if (Jv(Ow.kind, o)) {
      const h = !l && Ws(f) ? void 0 : Ro(_.Could_not_convert_to_anonymous_function);
      h ? y.push({ ...Ow, notApplicableReason: h }) : d.push(Ow);
    }
    if (Jv(Mw.kind, o)) {
      const h = Ps(f) ? void 0 : Ro(_.Could_not_convert_to_arrow_function);
      h ? y.push({ ...Mw, notApplicableReason: h }) : d.push(Mw);
    }
    return [{
      name: ane,
      description: Bxe,
      actions: d.length === 0 && e.preferences.provideRefactorNotApplicableReason ? y : d
    }];
  }
  function nqe(e, t) {
    const { file: r, startPosition: i, program: o } = e, s = Pxe(r, i, o);
    if (!s)
      return;
    const { func: l } = s, f = [];
    switch (t) {
      case Ow.name:
        f.push(...oqe(e, l));
        break;
      case Pw.name:
        const d = aqe(l);
        if (!d)
          return;
        f.push(...sqe(e, l, d));
        break;
      case Mw.name:
        if (!Ps(l))
          return;
        f.push(...cqe(e, l));
        break;
      default:
        return D.fail("invalid action");
    }
    return { renameFilename: void 0, renameLocation: void 0, edits: f };
  }
  function Oxe(e) {
    let t = !1;
    return e.forEachChild(function r(i) {
      if (HC(i)) {
        t = !0;
        return;
      }
      !li(i) && !ml(i) && !Ps(i) && Ra(i, r);
    }), t;
  }
  function Pxe(e, t, r) {
    const i = ia(e, t), o = r.getTypeChecker(), s = iqe(e, o, i.parent);
    if (s && !Oxe(s.body) && !o.containsArgumentsReference(s))
      return { selectedVariableDeclaration: !0, func: s };
    const l = Tf(i);
    if (l && (Ps(l) || Ws(l)) && !sf(l.body, i) && !Oxe(l.body) && !o.containsArgumentsReference(l))
      return Ps(l) && Fxe(e, o, l) ? void 0 : { selectedVariableDeclaration: !1, func: l };
  }
  function rqe(e) {
    return zi(e) || Mu(e) && e.declarations.length === 1;
  }
  function iqe(e, t, r) {
    if (!rqe(r))
      return;
    const o = (zi(r) ? r : ss(r.declarations)).initializer;
    if (o && (Ws(o) || Ps(o) && !Fxe(e, t, o)))
      return o;
  }
  function Mxe(e) {
    if (yt(e)) {
      const t = N.createReturnStatement(e), r = e.getSourceFile();
      return mt(t, e), Vd(t), o6(e, t, r, void 0, !0), N.createBlock([t], !0);
    } else
      return e;
  }
  function aqe(e) {
    const t = e.parent;
    if (!zi(t) || !qM(t))
      return;
    const r = t.parent, i = r.parent;
    if (!(!Mu(r) || !cl(i) || !Ve(t.name)))
      return { variableDeclaration: t, variableDeclarationList: r, statement: i, name: t.name };
  }
  function oqe(e, t) {
    const { file: r } = e, i = Mxe(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 sqe(e, t, r) {
    const { file: i } = e, o = Mxe(t.body), { variableDeclaration: s, variableDeclarationList: l, statement: f, name: d } = r;
    KF(f);
    const y = uy(s) & 1 | Ru(t), h = N.createModifiersFromModifierFlags(y), b = N.createFunctionDeclaration(Ie(h) ? h : void 0, t.asteriskToken, d, t.typeParameters, t.parameters, t.type, o);
    return l.declarations.length === 1 ? gr.ChangeTracker.with(e, (A) => A.replaceNode(i, f, b)) : gr.ChangeTracker.with(e, (A) => {
      A.delete(i, s), A.insertNodeAfter(i, f, b);
    });
  }
  function cqe(e, t) {
    const { file: r } = e, o = t.body.statements[0];
    let s;
    lqe(t.body, o) ? (s = o.expression, Vd(s), JT(o, s)) : s = t.body;
    const l = N.createArrowFunction(t.modifiers, t.typeParameters, t.parameters, t.type, N.createToken(38), s);
    return gr.ChangeTracker.with(e, (f) => f.replaceNode(r, t, l));
  }
  function lqe(e, t) {
    return e.statements.length === 1 && gp(t) && !!t.expression;
  }
  function Fxe(e, t, r) {
    return !!r.name && lc.Core.isSymbolReferencedInFile(r.name, t, e);
  }
  var ane, Bxe, Ow, Pw, Mw, uqe = C({
    "src/services/refactors/convertArrowFunctionOrFunctionExpression.ts"() {
      Xr(), kh(), ane = "Convert arrow function or function expression", Bxe = Ro(_.Convert_arrow_function_or_function_expression), Ow = {
        name: "Convert to anonymous function",
        description: Ro(_.Convert_to_anonymous_function),
        kind: "refactor.rewrite.function.anonymous"
      }, Pw = {
        name: "Convert to named function",
        description: Ro(_.Convert_to_named_function),
        kind: "refactor.rewrite.function.named"
      }, Mw = {
        name: "Convert to arrow function",
        description: Ro(_.Convert_to_arrow_function),
        kind: "refactor.rewrite.function.arrow"
      }, yg(ane, {
        kinds: [
          Ow.kind,
          Pw.kind,
          Mw.kind
        ],
        getEditsForAction: nqe,
        getAvailableActions: tqe
      });
    }
  }), dqe = {}, fqe = C({
    "src/services/_namespaces/ts.refactor.convertArrowFunctionOrFunctionExpression.ts"() {
      uqe();
    }
  });
  function _qe(e) {
    const { file: t, startPosition: r } = e;
    return Xu(t) || !Vxe(t, r, e.program.getTypeChecker()) ? rt : [{
      name: q6,
      description: lne,
      actions: [une]
    }];
  }
  function pqe(e, t) {
    D.assert(t === q6, "Unexpected action name");
    const { file: r, startPosition: i, program: o, cancellationToken: s, host: l } = e, f = Vxe(r, i, o.getTypeChecker());
    if (!f || !s)
      return;
    const d = hqe(f, o, s);
    return d.valid ? { renameFilename: void 0, renameLocation: void 0, edits: gr.ChangeTracker.with(e, (h) => mqe(r, o, l, h, f, d)) } : { edits: [] };
  }
  function mqe(e, t, r, i, o, s) {
    const l = s.signature, f = en(zxe(o, t, r), (h) => kc(h));
    if (l) {
      const h = en(zxe(l, t, r), (b) => kc(b));
      y(l, h);
    }
    y(o, f);
    const d = tR(s.functionCalls, (h, b) => Vs(h.pos, b.pos));
    for (const h of d)
      if (h.arguments && h.arguments.length) {
        const b = kc(Cqe(o, h.arguments), !0);
        i.replaceNodeRange(er(h), ss(h.arguments), Ho(h.arguments), b, { leadingTriviaOption: gr.LeadingTriviaOption.IncludeAll, trailingTriviaOption: gr.TrailingTriviaOption.Include });
      }
    function y(h, b) {
      i.replaceNodeRangeWithNodes(e, ss(h.parameters), Ho(h.parameters), b, {
        joiner: ", ",
        indentation: 0,
        leadingTriviaOption: gr.LeadingTriviaOption.IncludeAll,
        trailingTriviaOption: gr.TrailingTriviaOption.Include
      });
    }
  }
  function hqe(e, t, r) {
    const i = Iqe(e), o = Hc(e) ? Lqe(e) : [], s = fA([...i, ...o], M0), l = t.getTypeChecker(), f = wo(s, (b) => lc.getReferenceEntriesForNode(-1, b, t, t.getSourceFiles(), r)), d = y(f);
    return Rn(d.declarations, (b) => wi(s, b)) || (d.valid = !1), d;
    function y(b) {
      const A = { accessExpressions: [], typeUsages: [] }, L = { functionCalls: [], declarations: [], classReferences: A, valid: !0 }, I = en(i, h), O = en(o, h), k = Hc(e), B = en(i, (V) => one(V, l));
      for (const V of b) {
        if (V.kind === lc.EntryKind.Span) {
          L.valid = !1;
          continue;
        }
        if (wi(B, h(V.node))) {
          if (bqe(V.node.parent)) {
            L.signature = V.node.parent;
            continue;
          }
          const te = Uxe(V);
          if (te) {
            L.functionCalls.push(te);
            continue;
          }
        }
        const H = one(V.node, l);
        if (H && wi(B, H)) {
          const te = sne(V);
          if (te) {
            L.declarations.push(te);
            continue;
          }
        }
        if (wi(I, h(V.node)) || iw(V.node)) {
          if (Gxe(V))
            continue;
          const X = sne(V);
          if (X) {
            L.declarations.push(X);
            continue;
          }
          const Y = Uxe(V);
          if (Y) {
            L.functionCalls.push(Y);
            continue;
          }
        }
        if (k && wi(O, h(V.node))) {
          if (Gxe(V))
            continue;
          const X = sne(V);
          if (X) {
            L.declarations.push(X);
            continue;
          }
          const Y = gqe(V);
          if (Y) {
            A.accessExpressions.push(Y);
            continue;
          }
          if (wl(e.parent)) {
            const P = yqe(V);
            if (P) {
              A.typeUsages.push(P);
              continue;
            }
          }
        }
        L.valid = !1;
      }
      return L;
    }
    function h(b) {
      const A = l.getSymbolAtLocation(b);
      return A && $ye(A, l);
    }
  }
  function one(e, t) {
    const r = p6(e);
    if (r) {
      const i = t.getContextualTypeForObjectLiteralElement(r), o = i == null ? void 0 : i.getSymbol();
      if (o && !(Cc(o) & 6))
        return o;
    }
  }
  function Gxe(e) {
    const t = e.node;
    if (xd(t.parent) || Vm(t.parent) || ru(t.parent) || Pv(t.parent) || cd(t.parent) || Mc(t.parent))
      return t;
  }
  function sne(e) {
    if (mu(e.node.parent))
      return e.node;
  }
  function Uxe(e) {
    if (e.node.parent) {
      const t = e.node, r = t.parent;
      switch (r.kind) {
        case 210:
        case 211:
          const i = ii(r, ig);
          if (i && i.expression === t)
            return i;
          break;
        case 208:
          const o = ii(r, Mr);
          if (o && o.parent && o.name === t) {
            const l = ii(o.parent, ig);
            if (l && l.expression === o)
              return l;
          }
          break;
        case 209:
          const s = ii(r, cc);
          if (s && s.parent && s.argumentExpression === t) {
            const l = ii(s.parent, ig);
            if (l && l.expression === s)
              return l;
          }
          break;
      }
    }
  }
  function gqe(e) {
    if (e.node.parent) {
      const t = e.node, r = t.parent;
      switch (r.kind) {
        case 208:
          const i = ii(r, Mr);
          if (i && i.expression === t)
            return i;
          break;
        case 209:
          const o = ii(r, cc);
          if (o && o.expression === t)
            return o;
          break;
      }
    }
  }
  function yqe(e) {
    const t = e.node;
    if (HT(t) === 2 || GN(t.parent))
      return t;
  }
  function Vxe(e, t, r) {
    const i = sw(e, t), o = tue(i);
    if (!vqe(i) && o && Eqe(o, r) && sf(o, i) && !(o.body && sf(o.body, i)))
      return o;
  }
  function vqe(e) {
    const t = rr(e, LA);
    if (t) {
      const r = rr(t, (i) => !LA(i));
      return !!r && Xs(r);
    }
    return !1;
  }
  function bqe(e) {
    return Th(e) && (Qu(e.parent) || of(e.parent));
  }
  function Eqe(e, t) {
    var r;
    if (!Tqe(e.parameters, t))
      return !1;
    switch (e.kind) {
      case 259:
        return jxe(e) && z6(e, t);
      case 171:
        if (xs(e.parent)) {
          const i = one(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 wl(e.parent) ? jxe(e.parent) && z6(e, t) : Hxe(e.parent.parent) && z6(e, t);
      case 215:
      case 216:
        return Hxe(e.parent);
    }
    return !1;
  }
  function z6(e, t) {
    return !!e.body && !t.isImplementationOfOverload(e);
  }
  function jxe(e) {
    return e.name ? !0 : !!zC(e, 88);
  }
  function Tqe(e, t) {
    return xqe(e) >= qxe && Rn(e, (r) => Sqe(r, t));
  }
  function Sqe(e, t) {
    if (ph(e)) {
      const r = t.getTypeAtLocation(e);
      if (!t.isArrayType(r) && !t.isTupleType(r))
        return !1;
    }
    return !e.modifiers && Ve(e.name);
  }
  function Hxe(e) {
    return zi(e) && og(e) && Ve(e.name) && !e.type;
  }
  function cne(e) {
    return e.length > 0 && HC(e[0].name);
  }
  function xqe(e) {
    return cne(e) ? e.length - 1 : e.length;
  }
  function Wxe(e) {
    return cne(e) && (e = N.createNodeArray(e.slice(1), e.hasTrailingComma)), e;
  }
  function Aqe(e, t) {
    return Ve(t) && B_(t) === e ? N.createShorthandPropertyAssignment(e) : N.createPropertyAssignment(e, t);
  }
  function Cqe(e, t) {
    const r = Wxe(e.parameters), i = ph(Ho(r)), o = i ? t.slice(0, r.length - 1) : t, s = en(o, (f, d) => {
      const y = BG(r[d]), h = Aqe(y, f);
      return Vd(h.name), Vl(h) && Vd(h.initializer), JT(f, h), h;
    });
    if (i && t.length >= r.length) {
      const f = t.slice(r.length - 1), d = N.createPropertyAssignment(BG(Ho(r)), N.createArrayLiteralExpression(f));
      s.push(d);
    }
    return N.createObjectLiteralExpression(s, !1);
  }
  function zxe(e, t, r) {
    const i = t.getTypeChecker(), o = Wxe(e.parameters), s = en(o, h), l = N.createObjectBindingPattern(s), f = b(o);
    let d;
    Rn(o, I) && (d = N.createObjectLiteralExpression());
    const y = N.createParameterDeclaration(void 0, void 0, l, void 0, f, d);
    if (cne(e.parameters)) {
      const O = e.parameters[0], k = N.createParameterDeclaration(void 0, void 0, O.name, void 0, O.type);
      return Vd(k.name), JT(O.name, k.name), O.type && (Vd(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, BG(O), ph(O) && I(O) ? N.createArrayLiteralExpression() : O.initializer);
      return Vd(k), O.initializer && k.initializer && JT(O.initializer, k.initializer), k;
    }
    function b(O) {
      const k = en(O, A);
      return $p(N.createTypeLiteralNode(k), 1);
    }
    function A(O) {
      let k = O.type;
      !k && (O.initializer || ph(O)) && (k = L(O));
      const B = N.createPropertySignature(void 0, BG(O), I(O) ? N.createToken(57) : O.questionToken, k);
      return Vd(B), JT(O.name, B.name), O.type && B.type && JT(O.type, B.type), B;
    }
    function L(O) {
      const k = i.getTypeAtLocation(O);
      return pw(k, O, t, r);
    }
    function I(O) {
      if (ph(O)) {
        const k = i.getTypeAtLocation(O);
        return !i.isTupleType(k);
      }
      return i.isOptionalParameter(O);
    }
  }
  function BG(e) {
    return B_(e.name);
  }
  function Lqe(e) {
    switch (e.parent.kind) {
      case 260:
        const t = e.parent;
        return t.name ? [t.name] : [D.checkDefined(zC(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 Iqe(e) {
    switch (e.kind) {
      case 259:
        return e.name ? [e.name] : [D.checkDefined(zC(e, 88), "Nameless function declaration should be a default export")];
      case 171:
        return [e.name];
      case 173:
        const r = D.checkDefined(gs(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 q6, qxe, lne, une, kqe = C({
    "src/services/refactors/convertParamsToDestructuredObject.ts"() {
      Xr(), kh(), q6 = "Convert parameters to destructured object", qxe = 1, lne = Ro(_.Convert_parameters_to_destructured_object), une = {
        name: q6,
        description: lne,
        kind: "refactor.rewrite.parameters.toDestructured"
      }, yg(q6, {
        kinds: [une.kind],
        getEditsForAction: pqe,
        getAvailableActions: _qe
      });
    }
  }), wqe = {}, Dqe = C({
    "src/services/_namespaces/ts.refactor.convertParamsToDestructuredObject.ts"() {
      kqe();
    }
  });
  function Rqe(e) {
    const { file: t, startPosition: r } = e, i = Jxe(t, r), o = dne(i), s = { name: GG, description: UG, actions: [] };
    return br(o) && fne(o).isValidConcatenation ? (s.actions.push(VG), [s]) : e.preferences.provideRefactorNotApplicableReason ? (s.actions.push({
      ...VG,
      notApplicableReason: Ro(_.Can_only_convert_string_concatenation)
    }), [s]) : rt;
  }
  function Jxe(e, t) {
    const r = ia(e, t), i = dne(r);
    return !fne(i).isValidConcatenation && Fd(i.parent) && br(i.parent.parent) ? i.parent.parent : r;
  }
  function Nqe(e, t) {
    const { file: r, startPosition: i } = e, o = Jxe(r, i);
    switch (t) {
      case UG:
        return { edits: Oqe(e, o) };
      default:
        return D.fail("invalid action");
    }
  }
  function Oqe(e, t) {
    const r = dne(t), i = e.file, o = Fqe(fne(r), i), s = F0(i.text, r.end);
    if (s) {
      const l = s[s.length - 1], f = { pos: s[0].pos, end: l.end };
      return gr.ChangeTracker.with(e, (d) => {
        d.deleteRange(i, f), d.replaceNode(i, r, o);
      });
    } else
      return gr.ChangeTracker.with(e, (l) => l.replaceNode(i, r, o));
  }
  function Pqe(e) {
    return e.operatorToken.kind !== 63;
  }
  function dne(e) {
    return rr(e.parent, (r) => {
      switch (r.kind) {
        case 208:
        case 209:
          return !1;
        case 225:
        case 223:
          return !(br(r.parent) && Pqe(r.parent));
        default:
          return "quit";
      }
    }) || e;
  }
  function fne(e) {
    const t = (l) => {
      if (!br(l))
        return {
          nodes: [l],
          operators: [],
          validOperators: !0,
          hasString: Go(l) || vx(l)
        };
      const { nodes: f, operators: d, hasString: y, validOperators: h } = t(l.left);
      if (!(y || Go(l.right) || k7(l.right)))
        return { nodes: [l], operators: [], hasString: !1, validOperators: !0 };
      const b = l.operatorToken.kind === 39, A = h && b;
      return f.push(l.right), d.push(l.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 Mqe(e) {
    return e.replace(/\\.|[$`]/g, (t) => t[0] === "\\" ? t : "\\" + t);
  }
  function Kxe(e) {
    const t = fC(e) || Tfe(e) ? -2 : -1;
    return El(e).slice(1, t);
  }
  function Xxe(e, t) {
    const r = [];
    let i = "", o = "";
    for (; e < t.length; ) {
      const s = t[e];
      if (Es(s))
        i += s.text, o += Mqe(El(s).slice(1, -1)), r.push(e), e++;
      else if (k7(s)) {
        i += s.head.text, o += Kxe(s.head);
        break;
      } else
        break;
    }
    return [e, i, o, r];
  }
  function Fqe({ nodes: e, operators: t }, r) {
    const i = $xe(t, r), o = Qxe(e, r, i), [s, l, f, d] = Xxe(0, e);
    if (s === e.length) {
      const b = N.createNoSubstitutionTemplateLiteral(l, f);
      return o(d, b), b;
    }
    const y = [], h = N.createTemplateHead(l, f);
    o(d, h);
    for (let b = s; b < e.length; b++) {
      const A = Bqe(e[b]);
      i(b, A);
      const [L, I, O, k] = Xxe(b + 1, e);
      b = L - 1;
      const B = b === e.length - 1;
      if (k7(A)) {
        const V = en(A.templateSpans, (H, te) => {
          Yxe(H);
          const X = te === A.templateSpans.length - 1, Y = H.literal.text + (X ? I : ""), P = Kxe(H.literal) + (X ? O : "");
          return N.createTemplateSpan(H.expression, B && X ? N.createTemplateTail(Y, P) : N.createTemplateMiddle(Y, P));
        });
        y.push(...V);
      } else {
        const V = B ? N.createTemplateTail(I, O) : N.createTemplateMiddle(I, O);
        o(k, V), y.push(N.createTemplateSpan(A, V));
      }
    }
    return N.createTemplateExpression(h, y);
  }
  function Yxe(e) {
    const t = e.getSourceFile();
    fw(e, e.expression, t, 3, !1), o6(e.expression, e.expression, t, 3, !1);
  }
  function Bqe(e) {
    return Fd(e) && (Yxe(e), e = e.expression), e;
  }
  var GG, UG, VG, $xe, Qxe, Gqe = C({
    "src/services/refactors/convertStringOrTemplateLiteral.ts"() {
      Xr(), kh(), GG = "Convert to template string", UG = Ro(_.Convert_to_template_string), VG = {
        name: GG,
        description: UG,
        kind: "refactor.rewrite.string"
      }, yg(GG, {
        kinds: [VG.kind],
        getEditsForAction: Nqe,
        getAvailableActions: Rqe
      }), $xe = (e, t) => (r, i) => {
        r < e.length && fw(e[r], i, t, 3, !1);
      }, Qxe = (e, t, r) => (i, o) => {
        for (; i.length > 0; ) {
          const s = i.shift();
          fw(e[s], o, t, 3, !1), r(s, o);
        }
      };
    }
  }), Uqe = {}, Vqe = C({
    "src/services/_namespaces/ts.refactor.convertStringOrTemplateLiteral.ts"() {
      Gqe();
    }
  });
  function jqe(e) {
    const t = Zxe(e, e.triggerReason === "invoked");
    return t ? Ih(t) ? e.preferences.provideRefactorNotApplicableReason ? [{
      name: J6,
      description: WG,
      actions: [{ ...zG, notApplicableReason: t.error }]
    }] : rt : [{
      name: J6,
      description: WG,
      actions: [zG]
    }] : rt;
  }
  function Hqe(e, t) {
    const r = Zxe(e);
    return D.assert(r && !Ih(r), "Expected applicable refactor info"), { edits: gr.ChangeTracker.with(e, (o) => $qe(e.file, e.program.getTypeChecker(), o, r)), renameFilename: void 0, renameLocation: void 0 };
  }
  function jG(e) {
    return br(e) || bC(e);
  }
  function Wqe(e) {
    return nu(e) || gp(e) || cl(e);
  }
  function HG(e) {
    return jG(e) || Wqe(e);
  }
  function Zxe(e, t = !0) {
    const { file: r, program: i } = e, o = Wx(e), s = o.length === 0;
    if (s && !t)
      return;
    const l = ia(r, o.start), f = RF(r, o.start + o.length), d = _l(l.pos, f && f.end >= l.pos ? f.getEnd() : l.getEnd()), y = s ? Xqe(l) : Kqe(l, d), h = y && HG(y) ? Yqe(y) : void 0;
    if (!h)
      return { error: Ro(_.Could_not_find_convertible_access_expression) };
    const b = i.getTypeChecker();
    return bC(h) ? zqe(h, b) : qqe(h);
  }
  function zqe(e, t) {
    const r = e.condition, i = pne(e.whenTrue);
    if (!i || t.isNullableType(t.getTypeAtLocation(i)))
      return { error: Ro(_.Could_not_find_convertible_access_expression) };
    if ((Mr(r) || Ve(r)) && _ne(r, i.expression))
      return { finalExpression: i, occurrences: [r], expression: e };
    if (br(r)) {
      const o = e2e(i.expression, r);
      return o ? { finalExpression: i, occurrences: o, expression: e } : { error: Ro(_.Could_not_find_matching_access_expressions) };
    }
  }
  function qqe(e) {
    if (e.operatorToken.kind !== 55)
      return { error: Ro(_.Can_only_convert_logical_AND_access_chains) };
    const t = pne(e.right);
    if (!t)
      return { error: Ro(_.Could_not_find_convertible_access_expression) };
    const r = e2e(t.expression, e.left);
    return r ? { finalExpression: t, occurrences: r, expression: e } : { error: Ro(_.Could_not_find_matching_access_expressions) };
  }
  function e2e(e, t) {
    const r = [];
    for (; br(t) && t.operatorToken.kind === 55; ) {
      const o = _ne(Gs(e), Gs(t.right));
      if (!o)
        break;
      r.push(o), e = o, t = t.left;
    }
    const i = _ne(e, t);
    return i && r.push(i), r.length > 0 ? r : void 0;
  }
  function _ne(e, t) {
    if (!(!Ve(t) && !Mr(t) && !cc(t)))
      return Jqe(e, t) ? t : void 0;
  }
  function Jqe(e, t) {
    for (; (eo(e) || Mr(e) || cc(e)) && Fw(e) !== Fw(t); )
      e = e.expression;
    for (; Mr(e) && Mr(t) || cc(e) && cc(t); ) {
      if (Fw(e) !== Fw(t))
        return !1;
      e = e.expression, t = t.expression;
    }
    return Ve(e) && Ve(t) && e.getText() === t.getText();
  }
  function Fw(e) {
    if (Ve(e) || zf(e))
      return e.getText();
    if (Mr(e))
      return Fw(e.name);
    if (cc(e))
      return Fw(e.argumentExpression);
  }
  function Kqe(e, t) {
    for (; e.parent; ) {
      if (HG(e) && t.length !== 0 && e.end >= t.start + t.length)
        return e;
      e = e.parent;
    }
  }
  function Xqe(e) {
    for (; e.parent; ) {
      if (HG(e) && !HG(e.parent))
        return e;
      e = e.parent;
    }
  }
  function Yqe(e) {
    if (jG(e))
      return e;
    if (cl(e)) {
      const t = HA(e), r = t == null ? void 0 : t.initializer;
      return r && jG(r) ? r : void 0;
    }
    return e.expression && jG(e.expression) ? e.expression : void 0;
  }
  function pne(e) {
    if (e = Gs(e), br(e))
      return pne(e.left);
    if ((Mr(e) || cc(e) || eo(e)) && !pu(e))
      return e;
  }
  function t2e(e, t, r) {
    if (Mr(t) || cc(t) || eo(t)) {
      const i = t2e(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(), eo(t))
        return s ? N.createCallChain(i, N.createToken(28), t.typeArguments, t.arguments) : N.createCallChain(i, t.questionDotToken, t.typeArguments, t.arguments);
      if (Mr(t))
        return s ? N.createPropertyAccessChain(i, N.createToken(28), t.name) : N.createPropertyAccessChain(i, t.questionDotToken, t.name);
      if (cc(t))
        return s ? N.createElementAccessChain(i, N.createToken(28), t.argumentExpression) : N.createElementAccessChain(i, t.questionDotToken, t.argumentExpression);
    }
    return t;
  }
  function $qe(e, t, r, i, o) {
    const { finalExpression: s, occurrences: l, expression: f } = i, d = l[l.length - 1], y = t2e(t, s, l);
    y && (Mr(y) || cc(y) || eo(y)) && (br(f) ? r.replaceNodeRange(e, d, s, y) : bC(f) && r.replaceNode(e, f, N.createBinaryExpression(y, N.createToken(60), f.whenFalse)));
  }
  var J6, WG, zG, Qqe = C({
    "src/services/refactors/convertToOptionalChainExpression.ts"() {
      Xr(), kh(), J6 = "Convert to optional chain expression", WG = Ro(_.Convert_to_optional_chain_expression), zG = {
        name: J6,
        description: WG,
        kind: "refactor.rewrite.expression.optionalChain"
      }, yg(J6, {
        kinds: [zG.kind],
        getEditsForAction: Hqe,
        getAvailableActions: jqe
      });
    }
  }), Zqe = {}, eJe = C({
    "src/services/_namespaces/ts.refactor.convertToOptionalChainExpression.ts"() {
      Qqe();
    }
  });
  function n2e(e) {
    const t = e.kind, r = mne(e.file, Wx(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 Jv(o2.kind, t) && I.push({
        name: i2,
        description: o2.description,
        actions: [{ ...o2, notApplicableReason: L(r.errors) }]
      }), Jv(a2.kind, t) && I.push({
        name: i2,
        description: a2.description,
        actions: [{ ...a2, notApplicableReason: L(r.errors) }]
      }), I;
    }
    const o = oJe(i, e);
    if (o === void 0)
      return rt;
    const s = [], l = /* @__PURE__ */ new Map();
    let f;
    const d = [], y = /* @__PURE__ */ new Map();
    let h, b = 0;
    for (const { functionExtraction: I, constantExtraction: O } of o) {
      if (Jv(o2.kind, t)) {
        const k = I.description;
        I.errors.length === 0 ? l.has(k) || (l.set(k, !0), s.push({
          description: k,
          name: `function_scope_${b}`,
          kind: o2.kind
        })) : f || (f = {
          description: k,
          name: `function_scope_${b}`,
          notApplicableReason: L(I.errors),
          kind: o2.kind
        });
      }
      if (Jv(a2.kind, t)) {
        const k = O.description;
        O.errors.length === 0 ? y.has(k) || (y.set(k, !0), d.push({
          description: k,
          name: `constant_scope_${b}`,
          kind: a2.kind
        })) : h || (h = {
          description: k,
          name: `constant_scope_${b}`,
          notApplicableReason: L(O.errors),
          kind: a2.kind
        });
      }
      b++;
    }
    const A = [];
    return s.length ? A.push({
      name: i2,
      description: Ro(_.Extract_function),
      actions: s
    }) : e.preferences.provideRefactorNotApplicableReason && f && A.push({
      name: i2,
      description: Ro(_.Extract_function),
      actions: [f]
    }), d.length ? A.push({
      name: i2,
      description: Ro(_.Extract_constant),
      actions: d
    }) : e.preferences.provideRefactorNotApplicableReason && h && A.push({
      name: i2,
      description: Ro(_.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 r2e(e, t) {
    const i = mne(e.file, Wx(e)).targetRange, o = /^function_scope_(\d+)$/.exec(t);
    if (o) {
      const l = +o[1];
      return D.assert(isFinite(l), "Expected to parse a finite number from the function scope index"), iJe(i, e, l);
    }
    const s = /^constant_scope_(\d+)$/.exec(t);
    if (s) {
      const l = +s[1];
      return D.assert(isFinite(l), "Expected to parse a finite number from the constant scope index"), aJe(i, e, l);
    }
    D.fail("Unrecognized action name");
  }
  function mne(e, t, r = !0) {
    const { length: i } = t;
    if (i === 0 && !r)
      return { errors: [Il(e, t.start, i, jl.cannotExtractEmpty)] };
    const o = i === 0 && r, s = xye(e, t.start), l = RF(e, eu(t)), f = s && l && r ? tJe(s, l, e) : t, d = o ? CJe(s) : t6(s, e, f), y = o ? d : t6(l, e, f);
    let h = 0, b;
    if (!d || !y)
      return { errors: [Il(e, t.start, i, jl.cannotExtractRange)] };
    if (d.flags & 8388608)
      return { errors: [Il(e, t.start, i, jl.cannotExtractJSDoc)] };
    if (d.parent !== y.parent)
      return { errors: [Il(e, t.start, i, jl.cannotExtractRange)] };
    if (d !== y) {
      if (!a2e(d.parent))
        return { errors: [Il(e, t.start, i, jl.cannotExtractRange)] };
      const V = [];
      for (const H of d.parent.statements) {
        if (H === d || V.length) {
          const te = B(H);
          if (te)
            return { errors: te };
          V.push(H);
        }
        if (H === y)
          break;
      }
      return V.length ? { targetRange: { range: V, facts: h, thisNode: b } } : { errors: [Il(e, t.start, i, jl.cannotExtractRange)] };
    }
    if (gp(d) && !d.expression)
      return { errors: [Il(e, t.start, i, jl.cannotExtractRange)] };
    const A = I(d), L = O(A) || B(A);
    if (L)
      return { errors: L };
    return { targetRange: { range: nJe(A), facts: h, thisNode: b } };
    function I(V) {
      if (gp(V)) {
        if (V.expression)
          return V.expression;
      } else if (cl(V) || Mu(V)) {
        const H = cl(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 (zi(V) && V.initializer)
        return V.initializer;
      return V;
    }
    function O(V) {
      if (Ve(nu(V) ? V.expression : V))
        return [Rr(V, jl.cannotExtractIdentifier)];
    }
    function k(V, H) {
      let te = V;
      for (; te !== H; ) {
        if (te.kind === 169) {
          za(te) && (h |= 32);
          break;
        } else if (te.kind === 166) {
          Tf(te).kind === 173 && (h |= 32);
          break;
        } else
          te.kind === 171 && za(te) && (h |= 32);
        te = te.parent;
      }
    }
    function B(V) {
      let H;
      if (((ne) => {
        ne[ne.None = 0] = "None", ne[ne.Break = 1] = "Break", ne[ne.Continue = 2] = "Continue", ne[ne.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(!Yp(V.pos), "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)"), !Ca(V) && !(sg(V) && i2e(V)) && !bne(V))
        return [Rr(V, jl.statementOrExpressionExpected)];
      if (V.flags & 16777216)
        return [Rr(V, jl.cannotExtractAmbientBlock)];
      const te = Tl(V);
      te && k(V, te);
      let X, Y = 4, P;
      if (de(V), h & 8) {
        const ne = bd(V, !1, !1);
        (ne.kind === 259 || ne.kind === 171 && ne.parent.kind === 207 || ne.kind === 215) && (h |= 16);
      }
      return X;
      function de(ne) {
        if (X)
          return !0;
        if (mu(ne)) {
          const ie = ne.kind === 257 ? ne.parent.parent : ne;
          if (Kr(ie, 1))
            return (X || (X = [])).push(Rr(ne, jl.cannotExtractExportedEntity)), !0;
        }
        switch (ne.kind) {
          case 269:
            return (X || (X = [])).push(Rr(ne, jl.cannotExtractImport)), !0;
          case 274:
            return (X || (X = [])).push(Rr(ne, jl.cannotExtractExportedEntity)), !0;
          case 106:
            if (ne.parent.kind === 210) {
              const ie = Tl(ne);
              if (ie === void 0 || ie.pos < t.start || ie.end >= t.start + t.length)
                return (X || (X = [])).push(Rr(ne, jl.cannotExtractSuper)), !0;
            } else
              h |= 8, b = ne;
            break;
          case 216:
            Ra(ne, function ie(W) {
              if (HC(W))
                h |= 8, b = ne;
              else {
                if (li(W) || qa(W) && !Ws(W))
                  return !1;
                Ra(W, ie);
              }
            });
          case 260:
          case 259:
            Hi(ne.parent) && ne.parent.externalModuleIndicator === void 0 && (X || (X = [])).push(Rr(ne, jl.functionWillNotBeVisibleInTheNewScope));
          case 228:
          case 215:
          case 171:
          case 173:
          case 174:
          case 175:
            return !1;
        }
        const ye = Y;
        switch (ne.kind) {
          case 242:
            Y &= -5;
            break;
          case 255:
            Y = 0;
            break;
          case 238:
            ne.parent && ne.parent.kind === 255 && ne.parent.finallyBlock === ne && (Y = 4);
            break;
          case 293:
          case 292:
            Y |= 1;
            break;
          default:
            Sv(ne, !1) && (Y |= 3);
            break;
        }
        switch (ne.kind) {
          case 194:
          case 108:
            h |= 8, b = ne;
            break;
          case 253: {
            const ie = ne.label;
            (P || (P = [])).push(ie.escapedText), Ra(ne, de), P.pop();
            break;
          }
          case 249:
          case 248: {
            const ie = ne.label;
            ie ? wi(P, ie.escapedText) || (X || (X = [])).push(Rr(ne, jl.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)) : Y & (ne.kind === 249 ? 1 : 2) || (X || (X = [])).push(Rr(ne, jl.cannotExtractRangeContainingConditionalBreakOrContinueStatements));
            break;
          }
          case 220:
            h |= 4;
            break;
          case 226:
            h |= 2;
            break;
          case 250:
            Y & 4 ? h |= 1 : (X || (X = [])).push(Rr(ne, jl.cannotExtractRangeContainingConditionalReturnStatement));
            break;
          default:
            Ra(ne, de);
            break;
        }
        Y = ye;
      }
    }
  }
  function tJe(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 nJe(e) {
    if (Ca(e))
      return [e];
    if (sg(e))
      return nu(e.parent) ? [e.parent] : e;
    if (bne(e))
      return e;
  }
  function hne(e) {
    return Ws(e) ? mW(e.body) : Xs(e) || Hi(e) || Zp(e) || li(e);
  }
  function rJe(e) {
    let t = vg(e.range) ? ss(e.range) : e.range;
    if (e.facts & 8 && !(e.facts & 16)) {
      const i = Tl(t);
      if (i) {
        const o = rr(t, Xs);
        return o ? [o, i] : [i];
      }
    }
    const r = [];
    for (; ; )
      if (t = t.parent, t.kind === 166 && (t = rr(t, (i) => Xs(i)).parent), hne(t) && (r.push(t), t.kind === 308))
        return r;
  }
  function iJe(e, t, r) {
    const { scopes: i, readsAndWrites: { target: o, usagesPerScope: s, functionErrorsPerScope: l, exposedVariableDeclarations: f } } = gne(e, t);
    return D.assert(!l[r].length, "The extraction went missing? How?"), t.cancellationToken.throwIfCancellationRequested(), fJe(o, i[r], s[r], f, e, t);
  }
  function aJe(e, t, r) {
    const { scopes: i, readsAndWrites: { target: o, usagesPerScope: s, constantErrorsPerScope: l, exposedVariableDeclarations: f } } = gne(e, t);
    D.assert(!l[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 = yt(o) ? o : o.statements[0].expression;
    return _Je(d, i[r], s[r], e.facts, t);
  }
  function oJe(e, t) {
    const { scopes: r, readsAndWrites: { functionErrorsPerScope: i, constantErrorsPerScope: o } } = gne(e, t);
    return r.map((l, f) => {
      const d = sJe(l), y = cJe(l), h = Xs(l) ? lJe(l) : li(l) ? uJe(l) : dJe(l);
      let b, A;
      return h === 1 ? (b = vh(Ro(_.Extract_to_0_in_1_scope), [d, "global"]), A = vh(Ro(_.Extract_to_0_in_1_scope), [y, "global"])) : h === 0 ? (b = vh(Ro(_.Extract_to_0_in_1_scope), [d, "module"]), A = vh(Ro(_.Extract_to_0_in_1_scope), [y, "module"])) : (b = vh(Ro(_.Extract_to_0_in_1), [d, h]), A = vh(Ro(_.Extract_to_0_in_1), [y, h])), f === 0 && !li(l) && (A = vh(Ro(_.Extract_to_0_in_enclosing_scope), [y])), {
        functionExtraction: {
          description: b,
          errors: i[f]
        },
        constantExtraction: {
          description: A,
          errors: o[f]
        }
      };
    });
  }
  function gne(e, t) {
    const { file: r } = t, i = rJe(e), o = xJe(e, r), s = AJe(e, i, o, r, t.program.getTypeChecker(), t.cancellationToken);
    return { scopes: i, readsAndWrites: s };
  }
  function sJe(e) {
    return Xs(e) ? "inner function" : li(e) ? "method" : "function";
  }
  function cJe(e) {
    return li(e) ? "readonly field" : "constant";
  }
  function lJe(e) {
    switch (e.kind) {
      case 173:
        return "constructor";
      case 215:
      case 259:
        return e.name ? `function '${e.name.text}'` : _9;
      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 uJe(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 dJe(e) {
    return e.kind === 265 ? `namespace '${e.parent.name.getText()}'` : e.externalModuleIndicator ? 0 : 1;
  }
  function fJe(e, t, { usages: r, typeParameterUsages: i, substitutions: o }, s, l, f) {
    const d = f.program.getTypeChecker(), y = $o(f.program.getCompilerOptions()), h = Gu.createImportAdder(f.file, f.program, f.preferences, f.host), b = t.getSourceFile(), A = KT(li(t) ? "newMethod" : "newFunction", b), L = fr(t), I = N.createIdentifier(A);
    let O;
    const k = [], B = [];
    let V;
    r.forEach((Oe, Me) => {
      let Xe;
      if (!L) {
        let Fe = d.getTypeOfSymbolAtLocation(Oe.symbol, Oe.node);
        Fe = d.getBaseTypeOfLiteralType(Fe), Xe = Gu.typeToAutoImportableTypeNode(d, h, Fe, t, y, 1);
      }
      const He = N.createParameterDeclaration(void 0, void 0, Me, void 0, Xe);
      k.push(He), Oe.usage === 2 && (V || (V = [])).push(Oe), B.push(N.createIdentifier(Me));
    });
    const te = Do(i.values(), (Oe) => ({ type: Oe, declaration: mJe(Oe) })).sort(hJe), 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 (yt(e) && !L) {
      const Oe = d.getContextualType(e);
      O = d.typeToTypeNode(Oe, t, 1);
    }
    const { body: P, returnValueProperty: de } = yJe(e, s, V, o, !!(l.facts & 1));
    Vd(P);
    let ne;
    const ye = !!(l.facts & 16);
    if (li(t)) {
      const Oe = L ? [] : [N.createModifier(121)];
      l.facts & 32 && Oe.push(N.createModifier(124)), l.facts & 4 && Oe.push(N.createModifier(132)), ne = N.createMethodDeclaration(Oe.length ? Oe : void 0, l.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(l.thisNode), t, 1), void 0)), ne = N.createFunctionDeclaration(l.facts & 4 ? [N.createToken(132)] : void 0, l.facts & 2 ? N.createToken(41) : void 0, I, X, k, O, P);
    const ie = gr.ChangeTracker.fromContext(f), W = (vg(l.range) ? Ho(l.range) : l.range).end, ce = EJe(W, t);
    ce ? ie.insertNodeBefore(f.file, ce, ne, !0) : ie.insertNodeAtEndOfScope(f.file, t, ne), h.writeFixes(ie);
    const pe = [], ve = gJe(t, l, A);
    ye && B.unshift(N.createIdentifier("this"));
    let Te = N.createCallExpression(ye ? N.createPropertyAccessExpression(ve, "call") : ve, Y, B);
    if (l.facts & 2 && (Te = N.createYieldExpression(N.createToken(41), Te)), l.facts & 4 && (Te = N.createAwaitExpression(Te)), vne(e) && (Te = N.createJsxExpression(void 0, Te)), s.length && !V)
      if (D.assert(!de, "Expected no returnValueProperty"), D.assert(!(l.facts & 1), "Expected RangeFacts.HasReturn flag to be unset"), s.length === 1) {
        const Oe = s[0];
        pe.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(kc(Oe.name), void 0, kc(Oe.type), Te)], Oe.parent.flags)));
      } else {
        const Oe = [], Me = [];
        let Xe = s[0].parent.flags, He = !1;
        for (const st of s) {
          Oe.push(N.createBindingElement(void 0, void 0, kc(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)), He = He || st.type !== void 0, Xe = Xe & st.parent.flags;
        }
        const Fe = He ? N.createTypeLiteralNode(Me) : void 0;
        Fe && sr(Fe, 1), pe.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(N.createObjectBindingPattern(Oe), void 0, Fe, Te)], Xe)));
      }
    else if (s.length || V) {
      if (s.length)
        for (const Me of s) {
          let Xe = Me.parent.flags;
          Xe & 2 && (Xe = Xe & -3 | 1), pe.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(Me.symbol.name, void 0, We(Me.type))], Xe)));
        }
      de && pe.push(N.createVariableStatement(void 0, N.createVariableDeclarationList([N.createVariableDeclaration(de, void 0, We(O))], 1)));
      const Oe = yne(s, V);
      de && Oe.unshift(N.createShorthandPropertyAssignment(de)), Oe.length === 1 ? (D.assert(!de, "Shouldn't have returnValueProperty here"), pe.push(N.createExpressionStatement(N.createAssignment(Oe[0].name, Te))), l.facts & 1 && pe.push(N.createReturnStatement())) : (pe.push(N.createExpressionStatement(N.createAssignment(N.createObjectLiteralExpression(Oe), Te))), de && pe.push(N.createReturnStatement(N.createIdentifier(de))));
    } else
      l.facts & 1 ? pe.push(N.createReturnStatement(Te)) : vg(l.range) ? pe.push(N.createExpressionStatement(Te)) : pe.push(Te);
    vg(l.range) ? ie.replaceNodeRangeWithNodes(f.file, ss(l.range), Ho(l.range), pe) : ie.replaceNodeWithNodes(f.file, l.range, pe);
    const ee = ie.getChanges(), Ue = (vg(l.range) ? ss(l.range) : l.range).getSourceFile().fileName, Be = a6(ee, Ue, A, !1);
    return { renameFilename: Ue, renameLocation: Be, edits: ee };
    function We(Oe) {
      if (Oe === void 0)
        return;
      const Me = kc(Oe);
      let Xe = Me;
      for (; Sx(Xe); )
        Xe = Xe.type;
      return Tx(Xe) && cn(Xe.types, (He) => He.kind === 155) ? Me : N.createUnionTypeNode([Me, N.createKeywordTypeNode(155)]);
    }
  }
  function _Je(e, t, { substitutions: r }, i, o) {
    const s = o.program.getTypeChecker(), l = t.getSourceFile(), f = Mr(e) && !li(t) && !s.resolveName(e.name.text, e, 111551, !1) && !Di(e.name) && !G0(e.name) ? e.name.text : KT(li(t) ? "newProperty" : "newLocal", l), d = fr(t);
    let y = d || !s.isContextSensitive(e) ? void 0 : s.typeToTypeNode(s.getContextualType(e), t, 1), h = vJe(Gs(e), r);
    ({ variableType: y, initializer: h } = O(y, h)), Vd(h);
    const b = gr.ChangeTracker.fromContext(o);
    if (li(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 B = N.createPropertyDeclaration(k, f, void 0, y, h);
      let V = N.createPropertyAccessExpression(i & 32 ? N.createIdentifier(t.name.getText()) : N.createThis(), N.createIdentifier(f));
      vne(e) && (V = N.createJsxExpression(void 0, V));
      const H = e.pos, te = TJe(H, t);
      b.insertNodeBefore(o.file, te, B, !0), b.replaceNode(o.file, e, V);
    } else {
      const k = N.createVariableDeclaration(f, void 0, y, h), B = pJe(e, t);
      if (B) {
        b.insertNodeBefore(o.file, B, k);
        const V = N.createIdentifier(f);
        b.replaceNode(o.file, e, V);
      } else if (e.parent.kind === 241 && t === rr(e, hne)) {
        const V = N.createVariableStatement(void 0, N.createVariableDeclarationList([k], 2));
        b.replaceNode(o.file, e.parent, V);
      } else {
        const V = N.createVariableStatement(void 0, N.createVariableDeclarationList([k], 2)), H = SJe(e, t);
        if (H.pos === 0 ? b.insertNodeAtTopOfFile(o.file, V, !1) : b.insertNodeBefore(o.file, H, V, !1), e.parent.kind === 241)
          b.delete(o.file, e.parent);
        else {
          let te = N.createIdentifier(f);
          vne(e) && (te = N.createJsxExpression(void 0, te)), b.replaceNode(o.file, e, te);
        }
      }
    }
    const A = b.getChanges(), L = e.getSourceFile().fileName, I = a6(A, L, f, !0);
    return { renameFilename: L, renameLocation: I, edits: A };
    function O(k, B) {
      if (k === void 0)
        return { variableType: k, initializer: B };
      if (!Ps(B) && !Ws(B) || B.typeParameters)
        return { variableType: k, initializer: B };
      const V = s.getTypeAtLocation(e), H = Tm(s.getSignaturesOfType(V, 0));
      if (!H)
        return { variableType: k, initializer: B };
      if (H.getTypeParameters())
        return { variableType: k, initializer: B };
      const te = [];
      let X = !1;
      for (const Y of B.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: B };
      if (k = void 0, Ws(B))
        B = N.updateArrowFunction(B, q_(e) ? eT(e) : void 0, B.typeParameters, te, B.type || s.typeToTypeNode(H.getReturnType(), t, 1), B.equalsGreaterThanToken, B.body);
      else {
        if (H && H.thisParameter) {
          const Y = zl(te);
          if (!Y || Ve(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)));
          }
        }
        B = N.updateFunctionExpression(B, q_(e) ? eT(e) : void 0, B.asteriskToken, B.name, B.typeParameters, te, B.type || s.typeToTypeNode(H.getReturnType(), t, 1), B.body);
      }
      return { variableType: k, initializer: B };
    }
  }
  function pJe(e, t) {
    let r;
    for (; e !== void 0 && e !== t; ) {
      if (zi(e) && e.initializer === r && Mu(e.parent) && e.parent.declarations.length > 1)
        return e;
      r = e, e = e.parent;
    }
  }
  function mJe(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 hJe({ type: e, declaration: t }, { type: r, declaration: i }) {
    return Sse(t, i, "pos", Vs) || ku(e.symbol ? e.symbol.getName() : "", r.symbol ? r.symbol.getName() : "") || Vs(e.id, r.id);
  }
  function gJe(e, t, r) {
    const i = N.createIdentifier(r);
    if (li(e)) {
      const o = t.facts & 32 ? N.createIdentifier(e.name.text) : N.createThis();
      return N.createPropertyAccessExpression(o, i);
    } else
      return i;
  }
  function yJe(e, t, r, i, o) {
    const s = r !== void 0 || t.length > 0;
    if (oo(e) && !s && i.size === 0)
      return { body: N.createBlock(e.statements, !0), returnValueProperty: void 0 };
    let l, f = !1;
    const d = N.createNodeArray(oo(e) ? e.statements.slice(0) : [Ca(e) ? e : N.createReturnStatement(Gs(e))]);
    if (s || i.size) {
      const h = Xn(d, y, Ca).slice();
      if (s && !o && Ca(e)) {
        const b = yne(t, r);
        b.length === 1 ? h.push(N.createReturnStatement(b[0].name)) : h.push(N.createReturnStatement(N.createObjectLiteralExpression(b)));
      }
      return { body: N.createBlock(h, !0), returnValueProperty: l };
    } else
      return { body: N.createBlock(d, !0), returnValueProperty: void 0 };
    function y(h) {
      if (!f && gp(h) && s) {
        const b = yne(t, r);
        return h.expression && (l || (l = "__return"), b.unshift(N.createPropertyAssignment(l, ct(h.expression, y, yt)))), b.length === 1 ? N.createReturnStatement(b[0].name) : N.createReturnStatement(N.createObjectLiteralExpression(b));
      } else {
        const b = f;
        f = f || Xs(h) || li(h);
        const A = i.get(ds(h).toString()), L = A ? kc(A) : Gn(h, y, hg);
        return f = b, L;
      }
    }
  }
  function vJe(e, t) {
    return t.size ? r(e) : e;
    function r(i) {
      const o = t.get(ds(i).toString());
      return o ? kc(o) : Gn(i, r, hg);
    }
  }
  function bJe(e) {
    if (Xs(e)) {
      const t = e.body;
      if (oo(t))
        return t.statements;
    } else {
      if (Zp(e) || Hi(e))
        return e.statements;
      if (li(e))
        return e.members;
    }
    return rt;
  }
  function EJe(e, t) {
    return cn(bJe(t), (r) => r.pos >= e && Xs(r) && !Hc(r));
  }
  function TJe(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 && !Za(s)) {
        if (i !== void 0)
          return s;
        o = !1;
      }
      i = s;
    }
    return i === void 0 ? D.fail() : i;
  }
  function SJe(e, t) {
    D.assert(!li(t));
    let r;
    for (let i = e; i !== t; i = i.parent)
      hne(i) && (r = i);
    for (let i = (r || e).parent; ; i = i.parent) {
      if (a2e(i)) {
        let o;
        for (const s of i.statements) {
          if (s.pos > e.pos)
            break;
          o = s;
        }
        return !o && Dk(i) ? (D.assert(CO(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 yne(e, t) {
    const r = en(e, (o) => N.createShorthandPropertyAssignment(o.symbol.name)), i = en(t, (o) => N.createShorthandPropertyAssignment(o.symbol.name));
    return r === void 0 ? i : i === void 0 ? r : r.concat(i);
  }
  function vg(e) {
    return Ba(e);
  }
  function xJe(e, t) {
    return vg(e.range) ? { pos: ss(e.range).getStart(t), end: Ho(e.range).getEnd() } : e.range;
  }
  function AJe(e, t, r, i, o, s) {
    const l = /* @__PURE__ */ new Map(), f = [], d = [], y = [], h = [], b = [], A = /* @__PURE__ */ new Map(), L = [];
    let I;
    const O = vg(e.range) ? e.range.length === 1 && nu(e.range[0]) ? e.range[0].expression : void 0 : e.range;
    let k;
    if (O === void 0) {
      const ce = e.range, pe = ss(ce).getStart(), ve = Ho(ce).end;
      k = Il(i, pe, ve - pe, jl.expressionExpected);
    } else
      o.getTypeAtLocation(O).flags & 147456 && (k = Rr(O, jl.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 pe = [];
      k && pe.push(k), li(ce) && fr(ce) && pe.push(Rr(ce, jl.cannotExtractToJSClass)), Ws(ce) && !oo(ce.body) && pe.push(Rr(ce, jl.cannotExtractToExpressionArrowFunction)), h.push(pe);
    }
    const B = /* @__PURE__ */ new Map(), V = vg(e.range) ? N.createBlock(e.range) : e.range, H = vg(e.range) ? ss(e.range) : e.range, te = X(H);
    if (P(V), te && !vg(e.range) && !em(e.range)) {
      const ce = o.getContextualType(e.range);
      Y(ce);
    }
    if (l.size > 0) {
      const ce = /* @__PURE__ */ new Map();
      let pe = 0;
      for (let ve = H; ve !== void 0 && pe < t.length; ve = ve.parent)
        if (ve === t[pe] && (ce.forEach((Te, ee) => {
          f[pe].typeParameterUsages.set(ee, Te);
        }), pe++), VW(ve))
          for (const Te of Ev(ve)) {
            const ee = o.getTypeAtLocation(Te);
            l.has(ee.id.toString()) && ce.set(ee.id.toString(), ee);
          }
      D.assert(pe === t.length, "Should have iterated all scopes");
    }
    if (b.length) {
      const ce = UW(t[0], t[0].parent) ? t[0] : Nm(t[0]);
      Ra(ce, ye);
    }
    for (let ce = 0; ce < t.length; ce++) {
      const pe = f[ce];
      if (ce > 0 && (pe.usages.size > 0 || pe.typeParameterUsages.size > 0)) {
        const ee = vg(e.range) ? e.range[0] : e.range;
        h[ce].push(Rr(ee, jl.cannotAccessVariablesFromNestedScopes));
      }
      e.facts & 16 && li(t[ce]) && y[ce].push(Rr(e.thisNode, jl.cannotExtractFunctionsContainingThisToMethod));
      let ve = !1, Te;
      if (f[ce].usages.forEach((ee) => {
        ee.usage === 2 && (ve = !0, ee.symbol.flags & 106500 && ee.symbol.valueDeclaration && Pd(ee.symbol.valueDeclaration, 64) && (Te = ee.symbol.valueDeclaration));
      }), D.assert(vg(e.range) || L.length === 0, "No variable declarations expected if something was extracted"), ve && !vg(e.range)) {
        const ee = Rr(e.range, jl.cannotWriteInExpression);
        y[ce].push(ee), h[ce].push(ee);
      } else if (Te && ce > 0) {
        const ee = Rr(Te, jl.cannotExtractReadonlyPropertyInitializerOutsideConstructor);
        y[ce].push(ee), h[ce].push(ee);
      } else if (I) {
        const ee = Rr(I, jl.cannotExtractExportedEntity);
        y[ce].push(ee), h[ce].push(ee);
      }
    }
    return { target: V, usagesPerScope: f, functionErrorsPerScope: y, constantErrorsPerScope: h, exposedVariableDeclarations: L };
    function X(ce) {
      return !!rr(ce, (pe) => VW(pe) && Ev(pe).length !== 0);
    }
    function Y(ce) {
      const pe = o.getSymbolWalker(() => (s.throwIfCancellationRequested(), !0)), { visitedTypes: ve } = pe.walkType(ce);
      for (const Te of ve)
        Te.isTypeParameter() && l.set(Te.id.toString(), Te);
    }
    function P(ce, pe = 1) {
      if (te) {
        const ve = o.getTypeAtLocation(ce);
        Y(ve);
      }
      if (mu(ce) && ce.symbol && b.push(ce), Yu(ce))
        P(ce.left, 2), P(ce.right);
      else if (fle(ce))
        P(ce.operand, 2);
      else if (Mr(ce) || cc(ce))
        Ra(ce, P);
      else if (Ve(ce)) {
        if (!ce.parent || Sd(ce.parent) && ce !== ce.parent.left || Mr(ce.parent) && ce !== ce.parent.expression)
          return;
        de(ce, pe, mh(ce));
      } else
        Ra(ce, P);
    }
    function de(ce, pe, ve) {
      const Te = ne(ce, pe, ve);
      if (Te)
        for (let ee = 0; ee < t.length; ee++) {
          const $e = d[ee].get(Te);
          $e && f[ee].substitutions.set(ds(ce).toString(), $e);
        }
    }
    function ne(ce, pe, ve) {
      const Te = ie(ce);
      if (!Te)
        return;
      const ee = yo(Te).toString(), $e = B.get(ee);
      if ($e && $e >= pe)
        return ee;
      if (B.set(ee, pe), $e) {
        for (const We of f)
          We.usages.get(ce.text) && We.usages.set(ce.text, { usage: pe, symbol: Te, node: ce });
        return ee;
      }
      const Ue = Te.getDeclarations(), Be = Ue && cn(Ue, (We) => We.getSourceFile() === i);
      if (Be && !z8(r, Be.getStart(), Be.end)) {
        if (e.facts & 2 && pe === 2) {
          const We = Rr(ce, jl.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators);
          for (const Oe of y)
            Oe.push(We);
          for (const Oe of h)
            Oe.push(We);
        }
        for (let We = 0; We < t.length; We++) {
          const Oe = t[We];
          if (o.resolveName(Te.name, Oe, Te.flags, !1) !== Te && !d[We].has(ee)) {
            const Xe = W(Te.exportSymbol || Te, Oe, ve);
            if (Xe)
              d[We].set(ee, Xe);
            else if (ve) {
              if (!(Te.flags & 262144)) {
                const He = Rr(ce, jl.typeWillNotBeVisibleInTheNewScope);
                y[We].push(He), h[We].push(He);
              }
            } else
              f[We].usages.set(ce.text, { usage: pe, symbol: Te, node: ce });
          }
        }
        return ee;
      }
    }
    function ye(ce) {
      if (ce === e.range || vg(e.range) && e.range.indexOf(ce) >= 0)
        return;
      const pe = Ve(ce) ? ie(ce) : o.getSymbolAtLocation(ce);
      if (pe) {
        const ve = cn(b, (Te) => Te.symbol === pe);
        if (ve)
          if (zi(ve)) {
            const Te = ve.symbol.id.toString();
            A.has(Te) || (L.push(ve), A.set(Te, !0));
          } else
            I = I || ve;
      }
      Ra(ce, ye);
    }
    function ie(ce) {
      return ce.parent && $f(ce.parent) && ce.parent.name === ce ? o.getShorthandAssignmentValueSymbol(ce.parent) : o.getSymbolAtLocation(ce);
    }
    function W(ce, pe, ve) {
      if (!ce)
        return;
      const Te = ce.getDeclarations();
      if (Te && Te.some(($e) => $e.parent === pe))
        return N.createIdentifier(ce.name);
      const ee = W(ce.parent, pe, ve);
      if (ee !== void 0)
        return ve ? N.createQualifiedName(ee, N.createIdentifier(ce.name)) : N.createPropertyAccessExpression(ee, ce.name);
    }
  }
  function CJe(e) {
    return rr(e, (t) => t.parent && i2e(t) && !br(t.parent));
  }
  function i2e(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 a2e(e) {
    switch (e.kind) {
      case 238:
      case 308:
      case 265:
      case 292:
        return !0;
      default:
        return !1;
    }
  }
  function vne(e) {
    return bne(e) || (Ty(e) || kx(e) || Dx(e)) && (Ty(e.parent) || Dx(e.parent));
  }
  function bne(e) {
    return Go(e) && e.parent && em(e.parent);
  }
  var i2, a2, o2, jl, Ene, LJe = C({
    "src/services/refactors/extractSymbol.ts"() {
      Xr(), kh(), i2 = "Extract Symbol", a2 = {
        name: "Extract Constant",
        description: Ro(_.Extract_constant),
        kind: "refactor.extract.constant"
      }, o2 = {
        name: "Extract Function",
        description: Ro(_.Extract_function),
        kind: "refactor.extract.function"
      }, yg(i2, {
        kinds: [
          a2.kind,
          o2.kind
        ],
        getEditsForAction: r2e,
        getAvailableActions: n2e
      }), ((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");
      })(jl || (jl = {})), Ene = /* @__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))(Ene || {});
    }
  }), o2e = {};
  le(o2e, {
    Messages: () => jl,
    RangeFacts: () => Ene,
    getRangeToExtract: () => mne,
    getRefactorActionsToExtractSymbol: () => n2e,
    getRefactorEditsToExtractSymbol: () => r2e
  });
  var IJe = C({
    "src/services/_namespaces/ts.refactor.extractSymbol.ts"() {
      LJe();
    }
  }), K6, qG, JG, kJe = C({
    "src/services/refactors/generateGetAccessorAndSetAccessor.ts"() {
      Xr(), kh(), K6 = "Generate 'get' and 'set' accessors", qG = _.Generate_get_and_set_accessors.message, JG = {
        name: K6,
        description: qG,
        kind: "refactor.rewrite.property.generateAccessors"
      }, yg(K6, {
        kinds: [JG.kind],
        getEditsForAction: function(t, r) {
          if (!t.endPosition)
            return;
          const i = Gu.getAccessorConvertiblePropertyAtPosition(t.file, t.program, t.startPosition, t.endPosition);
          D.assert(i && !Ih(i), "Expected applicable refactor info");
          const o = Gu.generateAccessorFromProperty(t.file, t.program, t.startPosition, t.endPosition, t, r);
          if (!o)
            return;
          const s = t.file.fileName, l = i.renameAccessor ? i.accessorName : i.fieldName, d = (Ve(l) ? 0 : -1) + a6(o, s, l.text, Oa(i.declaration));
          return { renameFilename: s, renameLocation: d, edits: o };
        },
        getAvailableActions(e) {
          if (!e.endPosition)
            return rt;
          const t = Gu.getAccessorConvertiblePropertyAtPosition(e.file, e.program, e.startPosition, e.endPosition, e.triggerReason === "invoked");
          return t ? Ih(t) ? e.preferences.provideRefactorNotApplicableReason ? [{
            name: K6,
            description: qG,
            actions: [{ ...JG, notApplicableReason: t.error }]
          }] : rt : [{
            name: K6,
            description: qG,
            actions: [JG]
          }] : rt;
        }
      });
    }
  }), wJe = {}, DJe = C({
    "src/services/_namespaces/ts.refactor.generateGetAccessorAndSetAccessor.ts"() {
      kJe();
    }
  });
  function RJe(e) {
    const t = s2e(e);
    if (t && !Ih(t))
      return { renameFilename: void 0, renameLocation: void 0, edits: gr.ChangeTracker.with(e, (i) => OJe(e.file, i, t.declaration, t.returnTypeNode)) };
  }
  function NJe(e) {
    const t = s2e(e);
    return t ? Ih(t) ? e.preferences.provideRefactorNotApplicableReason ? [{
      name: X6,
      description: KG,
      actions: [{ ...Y6, notApplicableReason: t.error }]
    }] : rt : [{
      name: X6,
      description: KG,
      actions: [Y6]
    }] : rt;
  }
  function OJe(e, t, r, i) {
    const o = gs(r, 21, e), s = Ws(r) && o === void 0, l = s ? ss(r.parameters) : o;
    l && (s && (t.insertNodeBefore(e, l, N.createToken(20)), t.insertNodeAfter(e, l, N.createToken(21))), t.insertNodeAt(e, l.end, i, { prefix: ": " }));
  }
  function s2e(e) {
    if (fr(e.file) || !Jv(Y6.kind, e.kind))
      return;
    const t = ia(e.file, e.startPosition), r = rr(t, (l) => oo(l) || l.parent && Ws(l.parent) && (l.kind === 38 || l.parent.body === l) ? "quit" : PJe(l));
    if (!r || !r.body || r.type)
      return { error: Ro(_.Return_type_must_be_inferred_from_a_function) };
    const i = e.program.getTypeChecker(), o = MJe(i, r);
    if (!o)
      return { error: Ro(_.Could_not_determine_function_return_type) };
    const s = i.typeToTypeNode(o, r, 1);
    if (s)
      return { declaration: r, returnTypeNode: s };
  }
  function PJe(e) {
    switch (e.kind) {
      case 259:
      case 215:
      case 216:
      case 171:
        return !0;
      default:
        return !1;
    }
  }
  function MJe(e, t) {
    if (e.isImplementationOfOverload(t)) {
      const i = e.getTypeAtLocation(t).getCallSignatures();
      if (i.length > 1)
        return e.getUnionType(fa(i, (o) => o.getReturnType()));
    }
    const r = e.getSignatureFromDeclaration(t);
    if (r)
      return e.getReturnTypeOfSignature(r);
  }
  var X6, KG, Y6, FJe = C({
    "src/services/refactors/inferFunctionReturnType.ts"() {
      Xr(), kh(), X6 = "Infer function return type", KG = _.Infer_function_return_type.message, Y6 = {
        name: X6,
        description: KG,
        kind: "refactor.rewrite.function.returnType"
      }, yg(X6, {
        kinds: [Y6.kind],
        getEditsForAction: RJe,
        getAvailableActions: NJe
      });
    }
  }), BJe = {}, GJe = C({
    "src/services/_namespaces/ts.refactor.inferFunctionReturnType.ts"() {
      FJe();
    }
  }), Bw = {};
  le(Bw, {
    addOrRemoveBracesToArrowFunction: () => Zze,
    convertArrowFunctionOrFunctionExpression: () => dqe,
    convertParamsToDestructuredObject: () => wqe,
    convertStringOrTemplateLiteral: () => Uqe,
    convertToOptionalChainExpression: () => Zqe,
    doChangeNamedToNamespaceOrDefault: () => fxe,
    extractSymbol: () => o2e,
    generateGetAccessorAndSetAccessor: () => wJe,
    getApplicableRefactors: () => YWe,
    getEditsForRefactor: () => $We,
    inferFunctionReturnType: () => BJe,
    isRefactorErrorInfo: () => Ih,
    refactorKindBeginsWith: () => Jv,
    registerRefactor: () => yg
  });
  var kh = C({
    "src/services/_namespaces/ts.refactor.ts"() {
      QWe(), aze(), uze(), hze(), gze(), qze(), eqe(), fqe(), Dqe(), Vqe(), eJe(), IJe(), DJe(), GJe();
    }
  });
  function UJe(e, t, r, i) {
    const o = DF(Lf(t, r));
    if (l2e(o)) {
      const s = VJe(o, e.getTypeChecker(), t, e, i);
      if (s)
        return s;
    }
    return XG(_.You_cannot_rename_this_element);
  }
  function VJe(e, t, r, i, o) {
    const s = t.getSymbolAtLocation(e);
    if (!s) {
      if (Es(e)) {
        const A = wF(e, t);
        if (A && (A.flags & 128 || A.flags & 1048576 && Rn(A.types, (L) => !!(L.flags & 128))))
          return Tne(e.text, e.text, "string", "", e, r);
      } else if (l$(e)) {
        const A = El(e);
        return Tne(A, A, "label", "", e, r);
      }
      return;
    }
    const { declarations: l } = s;
    if (!l || l.length === 0)
      return;
    if (l.some((A) => jJe(i, A)))
      return XG(_.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library);
    if (Ve(e) && e.escapedText === "default" && s.parent && s.parent.flags & 1536)
      return;
    if (Es(e) && yN(e))
      return o.allowRenameOfImportPath ? WJe(e, r, s) : void 0;
    const f = HJe(r, s, t, o);
    if (f)
      return XG(f);
    const d = wy.getSymbolKind(t, s, e), y = Yye(e) || zf(e) && e.parent.kind === 164 ? G_(B_(e)) : void 0, h = y || t.symbolToString(s), b = y || t.getFullyQualifiedName(s);
    return Tne(h, b, d, wy.getSymbolModifiers(t, s), e, r);
  }
  function jJe(e, t) {
    const r = t.getSourceFile();
    return e.isSourceFileDefaultLibrary(r) && sl(r.fileName, ".d.ts");
  }
  function HJe(e, t, r, i) {
    if (!i.providePrefixAndSuffixTextForRename && t.flags & 2097152) {
      const l = t.declarations && cn(t.declarations, (f) => xd(f));
      l && !l.propertyName && (t = r.getAliasedSymbol(t));
    }
    const { declarations: o } = t;
    if (!o)
      return;
    const s = c2e(e.path);
    if (s === void 0)
      return kt(o, (l) => cve(l.getSourceFile().path)) ? _.You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder : void 0;
    for (const l of o) {
      const f = c2e(l.getSourceFile().path);
      if (f) {
        const d = Math.min(s.length, f.length);
        for (let y = 0; y <= d; y++)
          if (ku(s[y], f[y]) !== 0)
            return _.You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder;
      }
    }
  }
  function c2e(e) {
    const t = ad(e), r = t.lastIndexOf("node_modules");
    if (r !== -1)
      return t.slice(0, r + 2);
  }
  function WJe(e, t, r) {
    if (!Pl(e.text))
      return XG(_.You_cannot_rename_a_module_via_a_global_import);
    const i = r.declarations && cn(r.declarations, Hi);
    if (!i)
      return;
    const o = tl(e.text, "/index") || tl(e.text, "/index.js") ? void 0 : xse(Md(i.fileName), "/index"), s = o === void 0 ? i.fileName : o, l = o === void 0 ? "module" : "directory", f = e.text.lastIndexOf("/") + 1, d = Ll(e.getStart(t) + 1 + f, e.text.length - f);
    return {
      canRename: !0,
      fileToRename: s,
      kind: l,
      displayName: s,
      fullDisplayName: s,
      kindModifiers: "",
      triggerSpan: d
    };
  }
  function Tne(e, t, r, i, o, s) {
    return {
      canRename: !0,
      fileToRename: void 0,
      kind: r,
      displayName: e,
      fullDisplayName: t,
      kindModifiers: i,
      triggerSpan: zJe(o, s)
    };
  }
  function XG(e) {
    return { canRename: !1, localizedErrorMessage: Ro(e) };
  }
  function zJe(e, t) {
    let r = e.getStart(t), i = e.getWidth(t);
    return Es(e) && (r += 1, i -= 2), Ll(r, i);
  }
  function l2e(e) {
    switch (e.kind) {
      case 79:
      case 80:
      case 10:
      case 14:
      case 108:
        return !0;
      case 8:
        return CF(e);
      default:
        return !1;
    }
  }
  var qJe = C({
    "src/services/rename.ts"() {
      Xr();
    }
  }), YG = {};
  le(YG, {
    getRenameInfo: () => UJe,
    nodeIsEligibleForRename: () => l2e
  });
  var JJe = C({
    "src/services/_namespaces/ts.Rename.ts"() {
      qJe();
    }
  });
  function KJe(e, t, r, i, o) {
    const s = e.getTypeChecker(), l = RF(t, r);
    if (!l)
      return;
    const f = !!i && i.kind === "characterTyped";
    if (f && (qT(t, r, l) || Cy(t, r)))
      return;
    const d = !!i && i.kind === "invoked", y = lKe(l, r, t, s, d);
    if (!y)
      return;
    o.throwIfCancellationRequested();
    const h = XJe(y, s, t, l, f);
    return o.throwIfCancellationRequested(), h ? s.runWithCancellationToken(o, (b) => h.kind === 0 ? h2e(h.candidates, h.resolvedSignature, y, t, b) : dKe(h.symbol, y, t, b)) : Xu(t) ? $Je(y, e, o) : void 0;
  }
  function XJe({ invocation: e, argumentCount: t }, r, i, o, s) {
    switch (e.kind) {
      case 0: {
        if (s && !YJe(o, e.node, i))
          return;
        const l = [], f = r.getResolvedSignatureForSignatureHelp(e.node, l, t);
        return l.length === 0 ? void 0 : { kind: 0, candidates: l, resolvedSignature: f };
      }
      case 1: {
        const { called: l } = e;
        if (s && !u2e(o, i, Ve(l) ? l.parent : l))
          return;
        const f = E$(l, t, r);
        if (f.length !== 0)
          return { kind: 0, candidates: f, resolvedSignature: ss(f) };
        const d = r.getSymbolAtLocation(l);
        return d && { kind: 1, symbol: d };
      }
      case 2:
        return { kind: 0, candidates: [e.signature], resolvedSignature: e.signature };
      default:
        return D.assertNever(e);
    }
  }
  function YJe(e, t, r) {
    if (!ig(t))
      return !1;
    const i = t.getChildren(r);
    switch (e.kind) {
      case 20:
        return wi(i, e);
      case 27: {
        const o = kF(e);
        return !!o && wi(i, o);
      }
      case 29:
        return u2e(e, r, t.expression);
      default:
        return !1;
    }
  }
  function $Je(e, t, r) {
    if (e.invocation.kind === 2)
      return;
    const i = p2e(e.invocation), o = Mr(i) ? i.name.text : void 0, s = t.getTypeChecker();
    return o === void 0 ? void 0 : sn(t.getSourceFiles(), (l) => sn(l.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) => h2e(y, y[0], e, l, h, !0));
    }));
  }
  function u2e(e, t, r) {
    const i = e.getFullStart();
    let o = e.parent;
    for (; o; ) {
      const s = Sl(i, t, o, !0);
      if (s)
        return sf(r, s);
      o = o.parent;
    }
    return D.fail("Could not find preceding token");
  }
  function QJe(e, t, r) {
    const i = f2e(e, t, r);
    return !i || i.isTypeParameterList || i.invocation.kind !== 0 ? void 0 : { invocation: i.invocation.node, argumentCount: i.argumentCount, argumentIndex: i.argumentIndex };
  }
  function d2e(e, t, r) {
    const i = ZJe(e, r);
    if (!i)
      return;
    const { list: o, argumentIndex: s } = i, l = aKe(o, qT(r, t, e));
    s !== 0 && D.assertLessThan(s, l);
    const f = sKe(o, r);
    return { list: o, argumentIndex: s, argumentCount: l, argumentsSpan: f };
  }
  function ZJe(e, t) {
    if (e.kind === 29 || e.kind === 20)
      return { list: uKe(e.parent, e, t), argumentIndex: 0 };
    {
      const r = kF(e);
      return r && { list: r, argumentIndex: iKe(r, e) };
    }
  }
  function f2e(e, t, r) {
    const { parent: i } = e;
    if (ig(i)) {
      const o = i, s = d2e(e, t, r);
      if (!s)
        return;
      const { list: l, argumentIndex: f, argumentCount: d, argumentsSpan: y } = s;
      return { isTypeParameterList: !!i.typeArguments && i.typeArguments.pos === l.pos, invocation: { kind: 0, node: o }, argumentsSpan: y, argumentIndex: f, argumentCount: d };
    } else {
      if (vx(e) && AT(i))
        return X8(e, t, r) ? xne(i, 0, r) : void 0;
      if (fC(e) && i.parent.kind === 212) {
        const o = i, s = o.parent;
        D.assert(o.kind === 225);
        const l = X8(e, t, r) ? 0 : 1;
        return xne(s, l, r);
      } else if (kk(i) && AT(i.parent.parent)) {
        const o = i, s = i.parent.parent;
        if (Zq(e) && !X8(e, t, r))
          return;
        const l = o.parent.templateSpans.indexOf(o), f = oKe(l, e, t, r);
        return xne(s, f, r);
      } else if (Ku(i)) {
        const o = i.attributes.pos, s = zo(r.text, i.attributes.end, !1);
        return {
          isTypeParameterList: !1,
          invocation: { kind: 0, node: i },
          argumentsSpan: Ll(o, s - o),
          argumentIndex: 0,
          argumentCount: 1
        };
      } else {
        const o = T$(e, r);
        if (o) {
          const { called: s, nTypeArguments: l } = o, f = { kind: 1, called: s }, d = _l(s.getStart(r), e.end);
          return { isTypeParameterList: !0, invocation: f, argumentsSpan: d, argumentIndex: l, argumentCount: l + 1 };
        }
        return;
      }
    }
  }
  function eKe(e, t, r, i) {
    return tKe(e, t, r, i) || f2e(e, t, r);
  }
  function _2e(e) {
    return br(e.parent) ? _2e(e.parent) : e;
  }
  function Sne(e) {
    return br(e.left) ? Sne(e.left) + 1 : 2;
  }
  function tKe(e, t, r, i) {
    const o = nKe(e, r, t, i);
    if (!o)
      return;
    const { contextualType: s, argumentIndex: l, argumentCount: f, argumentsSpan: d } = o, y = s.getNonNullableType(), h = y.symbol;
    if (h === void 0)
      return;
    const b = ec(y.getCallSignatures());
    return b === void 0 ? void 0 : { isTypeParameterList: !1, invocation: { kind: 2, signature: b, node: e, symbol: rKe(h) }, argumentsSpan: d, argumentIndex: l, argumentCount: f };
  }
  function nKe(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 = d2e(e, r, t);
        if (!s)
          return;
        const { argumentIndex: l, argumentCount: f, argumentsSpan: d } = s, y = nl(o) ? i.getContextualTypeForObjectLiteralElement(o) : i.getContextualType(o);
        return y && { contextualType: y, argumentIndex: l, argumentCount: f, argumentsSpan: d };
      case 223: {
        const h = _2e(o), b = i.getContextualType(h), A = e.kind === 20 ? 0 : Sne(o) - 1, L = Sne(h);
        return b && { contextualType: b, argumentIndex: A, argumentCount: L, argumentsSpan: Zu(o) };
      }
      default:
        return;
    }
  }
  function rKe(e) {
    return e.name === "__type" && sn(e.declarations, (t) => {
      var r;
      return Sh(t) ? (r = ii(t.parent, km)) == null ? void 0 : r.symbol : void 0;
    }) || e;
  }
  function iKe(e, t) {
    let r = 0;
    for (const i of e.getChildren()) {
      if (i === t)
        break;
      i.kind !== 27 && r++;
    }
    return r;
  }
  function aKe(e, t) {
    const r = e.getChildren();
    let i = Zi(r, (o) => o.kind !== 27);
    return !t && r.length > 0 && Ho(r).kind === 27 && i++, i;
  }
  function oKe(e, t, r, i) {
    return D.assert(r >= t.getStart(), "Assumed 'position' could not occur before node."), ele(t) ? X8(t, r, i) ? 0 : e + 2 : e + 1;
  }
  function xne(e, t, r) {
    const i = vx(e.template) ? 1 : e.template.templateSpans.length + 1;
    return t !== 0 && D.assertLessThan(t, i), {
      isTypeParameterList: !1,
      invocation: { kind: 0, node: e },
      argumentsSpan: cKe(e, r),
      argumentIndex: t,
      argumentCount: i
    };
  }
  function sKe(e, t) {
    const r = e.getFullStart(), i = zo(t.text, e.getEnd(), !1);
    return Ll(r, i - r);
  }
  function cKe(e, t) {
    const r = e.template, i = r.getStart();
    let o = r.getEnd();
    return r.kind === 225 && Ho(r.templateSpans).literal.getFullWidth() === 0 && (o = zo(t.text, o, !1)), Ll(i, o - i);
  }
  function lKe(e, t, r, i, o) {
    for (let s = e; !Hi(s) && (o || !oo(s)); s = s.parent) {
      D.assert(sf(s.parent, s), "Not a subspan", () => `Child: ${D.formatSyntaxKind(s.kind)}, parent: ${D.formatSyntaxKind(s.parent.kind)}`);
      const l = eKe(s, t, r, i);
      if (l)
        return l;
    }
  }
  function uKe(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 p2e(e) {
    return e.kind === 0 ? ZM(e.node) : e.called;
  }
  function m2e(e) {
    return e.kind === 0 ? e.node : e.kind === 1 ? e.called : e.node;
  }
  function h2e(e, t, { isTypeParameterList: r, argumentCount: i, argumentsSpan: o, invocation: s, argumentIndex: l }, f, d, y) {
    var h;
    const b = m2e(s), A = s.kind === 2 ? s.symbol : d.getSymbolAtLocation(p2e(s)) || y && ((h = t.declaration) == null ? void 0 : h.symbol), L = A ? dw(d, A, y ? f : void 0, void 0) : rt, I = en(e, (H) => _Ke(H, L, r, d, b, f));
    l !== 0 && D.assertLessThan(l, 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 B = { items: Zb(I, pc), applicableSpan: o, selectedItemIndex: O, argumentIndex: l, argumentCount: i }, V = B.items[O];
    if (V.isVariadic) {
      const H = Qi(V.parameters, (te) => !!te.isRest);
      -1 < H && H < V.parameters.length - 1 ? B.argumentIndex = V.parameters.length : B.argumentIndex = Math.min(B.argumentIndex, V.parameters.length - 1);
    }
    return B;
  }
  function dKe(e, { argumentCount: t, argumentsSpan: r, invocation: i, argumentIndex: o }, s, l) {
    const f = l.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e);
    return f ? { items: [fKe(e, f, l, m2e(i), s)], applicableSpan: r, selectedItemIndex: 0, argumentIndex: o, argumentCount: t } : void 0;
  }
  function fKe(e, t, r, i, o) {
    const s = dw(r, e), l = W1(), f = t.map((b) => g2e(b, r, i, o, l)), d = e.getDocumentationComment(r), y = e.getJsDocTags(r);
    return { isVariadic: !1, prefixDisplayParts: [...s, yu(29)], suffixDisplayParts: [yu(31)], separatorDisplayParts: Ane, parameters: f, documentation: d, tags: y };
  }
  function _Ke(e, t, r, i, o, s) {
    const l = (r ? mKe : hKe)(e, i, o, s);
    return en(l, ({ isVariadic: f, parameters: d, prefix: y, suffix: h }) => {
      const b = [...t, ...y], A = [...h, ...pKe(e, o, i)], L = e.getDocumentationComment(i), I = e.getJsDocTags();
      return { isVariadic: f, prefixDisplayParts: b, suffixDisplayParts: A, separatorDisplayParts: Ane, parameters: d, documentation: L, tags: I };
    });
  }
  function pKe(e, t, r) {
    return Hv((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 mKe(e, t, r, i) {
    const o = (e.target || e).typeParameters, s = W1(), l = (o || rt).map((d) => g2e(d, t, r, i, s)), f = e.thisParameter ? [t.symbolToParameterDeclaration(e.thisParameter, r, Gw)] : [];
    return t.getExpandedParameters(e).map((d) => {
      const y = N.createNodeArray([...f, ...en(d, (b) => t.symbolToParameterDeclaration(b, r, Gw))]), h = Hv((b) => {
        s.writeList(2576, y, i, b);
      });
      return { isVariadic: !1, parameters: l, prefix: [yu(29)], suffix: [yu(31), ...h] };
    });
  }
  function hKe(e, t, r, i) {
    const o = W1(), s = Hv((d) => {
      if (e.typeParameters && e.typeParameters.length) {
        const y = N.createNodeArray(e.typeParameters.map((h) => t.typeParameterToDeclaration(h, r, Gw)));
        o.writeList(53776, y, i, d);
      }
    }), l = t.getExpandedParameters(e), f = t.hasEffectiveRestParameter(e) ? l.length === 1 ? (d) => !0 : (d) => {
      var y;
      return !!(d.length && ((y = ii(d[d.length - 1], Dm)) == null ? void 0 : y.links.checkFlags) & 32768);
    } : (d) => !1;
    return l.map((d) => ({
      isVariadic: f(d),
      parameters: d.map((y) => gKe(y, t, r, i, o)),
      prefix: [...s, yu(20)],
      suffix: [yu(21)]
    }));
  }
  function gKe(e, t, r, i, o) {
    const s = Hv((d) => {
      const y = t.symbolToParameterDeclaration(e, r, Gw);
      o.writeNode(4, y, i, d);
    }), l = t.isOptionalParameter(e.valueDeclaration), f = Dm(e) && !!(e.links.checkFlags & 32768);
    return { name: e.name, documentation: e.getDocumentationComment(t), displayParts: s, isOptional: l, isRest: f };
  }
  function g2e(e, t, r, i, o) {
    const s = Hv((l) => {
      const f = t.typeParameterToDeclaration(e, r, Gw);
      o.writeNode(4, f, i, l);
    });
    return { name: e.symbol.name, documentation: e.symbol.getDocumentationComment(t), displayParts: s, isOptional: !1, isRest: !1 };
  }
  var Gw, Ane, yKe = C({
    "src/services/signatureHelp.ts"() {
      Xr(), Gw = 70246400, Ane = [yu(27), vc()];
    }
  }), $6 = {};
  le($6, {
    getArgumentInfoForCompletions: () => QJe,
    getSignatureHelpItems: () => KJe
  });
  var vKe = C({
    "src/services/_namespaces/ts.SignatureHelp.ts"() {
      yKe();
    }
  });
  function bKe(e, t) {
    var r, i;
    let o = {
      textSpan: _l(t.getFullStart(), t.getEnd())
    }, s = t;
    e:
      for (; ; ) {
        const d = TKe(s);
        if (!d.length)
          break;
        for (let y = 0; y < d.length; y++) {
          const h = d[y - 1], b = d[y], A = d[y + 1];
          if (sT(b, t, !0) > e)
            break e;
          const L = Tm(F0(t.text, b.end));
          if (L && L.kind === 2 && f(L.pos, L.end), EKe(t, e, b)) {
            if (mW(b) && Xs(s) && !p_(b.getStart(t), b.getEnd(), t) && l(b.getStart(t), b.getEnd()), oo(b) || kk(b) || fC(b) || Zq(b) || h && fC(h) || Mu(b) && cl(s) || AC(b) && Mu(s) || zi(b) && AC(s) && d.length === 1 || wT(b) || M1(b) || Nk(b)) {
              s = b;
              break;
            }
            if (kk(s) && A && xM(A)) {
              const B = b.getFullStart() - 2, V = A.getStart() + 1;
              l(B, V);
            }
            const I = AC(b) && SKe(h) && xKe(A) && !p_(h.getStart(), A.getStart(), t);
            let O = I ? h.getEnd() : b.getStart();
            const k = I ? A.getStart() : AKe(t, b);
            if (bf(b) && ((r = b.jsDoc) != null && r.length) && l(ss(b.jsDoc).getStart(), k), AC(b)) {
              const B = b.getChildren()[0];
              B && bf(B) && ((i = B.jsDoc) != null && i.length) && B.getStart() !== b.pos && (O = Math.min(O, ss(B.jsDoc).getStart()));
            }
            l(O, k), (Go(b) || AA(b)) && l(O + 1, k - 1), s = b;
            break;
          }
          if (y === d.length - 1)
            break e;
        }
      }
    return o;
    function l(d, y) {
      if (d !== y) {
        const h = _l(d, y);
        (!o || !qC(h, o.textSpan) && Dce(h, e)) && (o = { textSpan: h, ...o && { parent: o } });
      }
    }
    function f(d, y) {
      l(d, y);
      let h = d;
      for (; t.text.charCodeAt(h) === 47; )
        h++;
      l(h, y);
    }
  }
  function EKe(e, t, r) {
    return D.assert(r.pos <= t), t < r.end ? !0 : r.getEnd() === t ? Lf(e, t).pos < r.end : !1;
  }
  function TKe(e) {
    var t;
    if (Hi(e))
      return Uw(e.getChildAt(0).getChildren(), y2e);
    if (Ck(e)) {
      const [r, ...i] = e.getChildren(), o = D.checkDefined(i.pop());
      D.assertEqual(r.kind, 18), D.assertEqual(o.kind, 19);
      const s = Uw(i, (f) => f === e.readonlyToken || f.kind === 146 || f === e.questionToken || f.kind === 57), l = Uw(s, ({ kind: f }) => f === 22 || f === 165 || f === 23);
      return [
        r,
        Vw($G(l, ({ kind: f }) => f === 58)),
        o
      ];
    }
    if (xf(e)) {
      const r = Uw(e.getChildren(), (l) => l === e.name || wi(e.modifiers, l)), i = ((t = r[0]) == null ? void 0 : t.kind) === 323 ? r[0] : void 0, o = i ? r.slice(1) : r, s = $G(o, ({ kind: l }) => l === 58);
      return i ? [i, Vw(s)] : s;
    }
    if (Oa(e)) {
      const r = Uw(e.getChildren(), (o) => o === e.dotDotDotToken || o === e.name), i = Uw(r, (o) => o === r[0] || o === e.questionToken);
      return $G(i, ({ kind: o }) => o === 63);
    }
    return us(e) ? $G(e.getChildren(), ({ kind: r }) => r === 63) : e.getChildren();
  }
  function Uw(e, t) {
    const r = [];
    let i;
    for (const o of e)
      t(o) ? (i = i || [], i.push(o)) : (i && (r.push(Vw(i)), i = void 0), r.push(o));
    return i && r.push(Vw(i)), r;
  }
  function $G(e, t, r = !0) {
    if (e.length < 2)
      return e;
    const i = Qi(e, t);
    if (i === -1)
      return e;
    const o = e.slice(0, i), s = e[i], l = Ho(e), f = r && l.kind === 26, d = e.slice(i + 1, f ? e.length - 1 : void 0), y = nR([
      o.length ? Vw(o) : void 0,
      s,
      d.length ? Vw(d) : void 0
    ]);
    return f ? y.concat(l) : y;
  }
  function Vw(e) {
    return D.assertGreaterThanOrEqual(e.length, 1), Bm(Wm.createSyntaxList(e), e[0].pos, Ho(e).end);
  }
  function SKe(e) {
    const t = e && e.kind;
    return t === 18 || t === 22 || t === 20 || t === 283;
  }
  function xKe(e) {
    const t = e && e.kind;
    return t === 19 || t === 23 || t === 21 || t === 284;
  }
  function AKe(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 y2e, CKe = C({
    "src/services/smartSelection.ts"() {
      Xr(), y2e = Am(Ul, ru);
    }
  }), Cne = {};
  le(Cne, {
    getSmartSelectionRange: () => bKe
  });
  var LKe = C({
    "src/services/_namespaces/ts.SmartSelectionRange.ts"() {
      CKe();
    }
  });
  function v2e(e, t, r) {
    const i = b2e(e, t, r);
    if (i !== "")
      return i;
    const o = ek(t);
    return o & 32 ? Sc(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 b2e(e, t, r) {
    const i = e.getRootSymbols(t);
    if (i.length === 1 && ss(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 && yt(r) || sx(r))
      return "parameter";
    const o = ek(t);
    if (o & 3)
      return F$(t) ? "parameter" : t.valueDeclaration && og(t.valueDeclaration) ? "const" : ze(t.declarations, RI) ? "let" : S2e(t) ? "local var" : "var";
    if (o & 16)
      return S2e(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), (l) => {
          if (l.getFlags() & 98311)
            return "property";
        });
        return s || (e.getTypeOfSymbolAtLocation(t, r).getCallSignatures().length ? "method" : "property");
      }
      return "property";
    }
    return "";
  }
  function E2e(e) {
    if (e.declarations && e.declarations.length) {
      const [t, ...r] = e.declarations, i = Ie(r) && s9(t) && kt(r, (s) => !s9(s)) ? 8192 : 0, o = cw(t, i);
      if (o)
        return o.split(",");
    }
    return [];
  }
  function IKe(e, t) {
    if (!t)
      return "";
    const r = new Set(E2e(t));
    if (t.flags & 2097152) {
      const i = e.getAliasedSymbol(t);
      i !== t && ze(E2e(i), (o) => {
        r.add(o);
      });
    }
    return t.flags & 16777216 && r.add("optional"), r.size > 0 ? Do(r.values()).join(",") : "";
  }
  function T2e(e, t, r, i, o, s = HT(o), l) {
    var f;
    const d = [];
    let y = [], h = [];
    const b = ek(t);
    let A = s & 1 ? b2e(e, t, o) : "", L = !1;
    const I = o.kind === 108 && t3(o) || sx(o);
    let O, k, B, V = !1;
    if (o.kind === 108 && !I)
      return { displayParts: [Ud(108)], documentation: [], symbolKind: "primitive type", tags: void 0 };
    if (A !== "" || b & 32 || b & 2097152) {
      if (A === "getter" || A === "setter") {
        const pe = cn(t.declarations, (ve) => ve.name === o);
        if (pe)
          switch (pe.kind) {
            case 174:
              A = "getter";
              break;
            case 175:
              A = "setter";
              break;
            case 169:
              A = "accessor";
              break;
            default:
              D.assertNever(pe);
          }
        else
          A = "property";
      }
      let W;
      if (O = I ? e.getTypeAtLocation(o) : e.getTypeOfSymbolAtLocation(t, o), o.parent && o.parent.kind === 208) {
        const pe = o.parent.name;
        (pe === o || pe && pe.getFullWidth() === 0) && (o = o.parent);
      }
      let ce;
      if (ig(o) ? ce = o : (o$(o) || iw(o) || o.parent && (Ku(o.parent) || AT(o.parent)) && qa(t.valueDeclaration)) && (ce = o.parent), ce) {
        W = e.getResolvedSignature(ce);
        const pe = ce.kind === 211 || eo(ce) && ce.expression.kind === 106, ve = pe ? O.getConstructSignatures() : O.getCallSignatures();
        if (W && !wi(ve, W.target) && !wi(ve, W) && (W = ve.length ? ve[0] : void 0), W) {
          switch (pe && b & 32 ? (A = "constructor", de(O.symbol, A)) : b & 2097152 ? (A = "alias", ne(A), d.push(vc()), pe && (W.flags & 4 && (d.push(Ud(126)), d.push(vc())), d.push(Ud(103)), d.push(vc())), P(t)) : de(t, A), A) {
            case "JSX attribute":
            case "property":
            case "var":
            case "const":
            case "let":
            case "parameter":
            case "local var":
              d.push(yu(58)), d.push(vc()), !(Zr(O) & 16) && O.symbol && (bi(d, dw(e, O.symbol, i, void 0, 5)), d.push(JC())), pe && (W.flags & 4 && (d.push(Ud(126)), d.push(vc())), d.push(Ud(103)), d.push(vc())), ye(W, ve, 262144);
              break;
            default:
              ye(W, ve);
          }
          L = !0, V = ve.length > 1;
        }
      } else if (_$(o) && !(b & 98304) || o.kind === 135 && o.parent.kind === 173) {
        const pe = o.parent;
        if (t.declarations && cn(t.declarations, (Te) => Te === (o.kind === 135 ? pe.parent : pe))) {
          const Te = pe.kind === 173 ? O.getNonNullableType().getConstructSignatures() : O.getNonNullableType().getCallSignatures();
          e.isImplementationOfOverload(pe) ? W = Te[0] : W = e.getSignatureFromDeclaration(pe), pe.kind === 173 ? (A = "constructor", de(O.symbol, A)) : de(pe.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 (b & 32 && !L && !I && (X(), Sc(t, 228) ? ne("local class") : d.push(Ud(84)), d.push(vc()), P(t), ie(t, r)), b & 64 && s & 2 && (te(), d.push(Ud(118)), d.push(vc()), P(t), ie(t, r)), b & 524288 && s & 2 && (te(), d.push(Ud(154)), d.push(vc()), P(t), ie(t, r), d.push(vc()), d.push(uw(63)), d.push(vc()), bi(d, r6(e, rg(o.parent) ? e.getTypeAtLocation(o.parent) : e.getDeclaredTypeOfSymbol(t), i, 8388608))), b & 384 && (te(), kt(t.declarations, (W) => Z0(W) && v1(W)) && (d.push(Ud(85)), d.push(vc())), d.push(Ud(92)), d.push(vc()), P(t)), b & 1536 && !I) {
      te();
      const W = Sc(t, 264), ce = W && W.name && W.name.kind === 79;
      d.push(Ud(ce ? 143 : 142)), d.push(vc()), P(t);
    }
    if (b & 262144 && s & 2)
      if (te(), d.push(yu(20)), d.push(If("type parameter")), d.push(yu(21)), d.push(vc()), P(t), t.parent)
        Y(), P(t.parent, i), ie(t.parent, i);
      else {
        const W = Sc(t, 165);
        if (W === void 0)
          return D.fail();
        const ce = W.parent;
        if (ce)
          if (qa(ce)) {
            Y();
            const pe = e.getSignatureFromDeclaration(ce);
            ce.kind === 177 ? (d.push(Ud(103)), d.push(vc())) : ce.kind !== 176 && ce.name && P(ce.symbol), bi(d, U$(e, pe, r, 32));
          } else
            Qp(ce) && (Y(), d.push(Ud(154)), d.push(vc()), P(ce.symbol), ie(ce.symbol, r));
      }
    if (b & 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(vc()), d.push(uw(63)), d.push(vc()), d.push(Ad(Fle(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], pe = Aa(ce);
          if (pe) {
            const ve = BM(ce) && Kr(ce, 2), Te = t.name !== "default" && !ve, ee = T2e(e, W, er(ce), ce, pe, s, Te ? t : W);
            d.push(...ee.displayParts), d.push(JC()), k = ee.documentation, B = ee.tags;
          } else
            k = W.getContextualDocumentationComment(ce, e), B = W.getJsDocTags(e);
        }
      }
      if (t.declarations)
        switch (t.declarations[0].kind) {
          case 267:
            d.push(Ud(93)), d.push(vc()), d.push(Ud(143));
            break;
          case 274:
            d.push(Ud(93)), d.push(vc()), d.push(Ud(t.declarations[0].isExportEquals ? 63 : 88));
            break;
          case 278:
            d.push(Ud(93));
            break;
          default:
            d.push(Ud(100));
        }
      d.push(vc()), P(t), ze(t.declarations, (W) => {
        if (W.kind === 268) {
          const ce = W;
          if (j0(ce))
            d.push(vc()), d.push(uw(63)), d.push(vc()), d.push(Ud(147)), d.push(yu(20)), d.push(Ad(El(MI(ce)), 8)), d.push(yu(21));
          else {
            const pe = e.getSymbolAtLocation(ce.moduleReference);
            pe && (d.push(vc()), d.push(uw(63)), d.push(vc()), P(pe, i));
          }
          return !0;
        }
      });
    }
    if (!L)
      if (A !== "") {
        if (O) {
          if (I ? (te(), d.push(Ud(108))) : de(t, A), A === "property" || A === "accessor" || A === "getter" || A === "setter" || A === "JSX attribute" || b & 3 || A === "local var" || A === "index" || I) {
            if (d.push(yu(58)), d.push(vc()), O.symbol && O.symbol.flags & 262144 && A !== "index") {
              const W = Hv((ce) => {
                const pe = e.typeParameterToDeclaration(O, i, Lne);
                H().writeNode(4, pe, er(ga(i)), ce);
              });
              bi(d, W);
            } else
              bi(d, r6(e, O, i));
            if (Dm(t) && t.links.target && Dm(t.links.target) && t.links.target.links.tupleLabelDeclaration) {
              const W = t.links.target.links.tupleLabelDeclaration;
              D.assertNode(W.name, Ve), d.push(vc()), d.push(yu(20)), d.push(If(Pr(W.name))), d.push(yu(21));
            }
          } else if (b & 16 || b & 8192 || b & 16384 || b & 131072 || b & 98304 || A === "method") {
            const W = O.getNonNullableType().getCallSignatures();
            W.length && (ye(W[0], W), V = W.length > 1);
          }
        }
      } else
        A = v2e(e, t, o);
    if (y.length === 0 && !V && (y = t.getContextualDocumentationComment(i, e)), y.length === 0 && b & 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 && Ve(o) && t.valueDeclaration && us(t.valueDeclaration)) {
      const W = t.valueDeclaration, ce = W.parent;
      if (Ve(W.name) && Um(ce)) {
        const pe = B_(W.name), ve = e.getTypeAtLocation(ce);
        y = sn(ve.isUnion() ? ve.types : [ve], (Te) => {
          const ee = Te.getProperty(pe);
          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 && B && (h = B), { displayParts: d, documentation: y, symbolKind: A, tags: h.length === 0 ? void 0 : h };
    function H() {
      return W1();
    }
    function te() {
      d.length && d.push(JC()), X();
    }
    function X() {
      l && (ne("alias"), d.push(vc()));
    }
    function Y() {
      d.push(vc()), d.push(Ud(101)), d.push(vc());
    }
    function P(W, ce) {
      let pe;
      l && W === t && (W = l), A === "index" && (pe = e.getIndexInfosOfIndexSymbol(W));
      let ve = [];
      W.flags & 131072 && pe ? (W.parent && (ve = dw(e, W.parent)), ve.push(yu(22)), pe.forEach((Te, ee) => {
        ve.push(...r6(e, Te.keyType)), ee !== pe.length - 1 && (ve.push(vc()), ve.push(yu(51)), ve.push(vc()));
      }), ve.push(yu(23))) : ve = dw(e, W, ce || r, void 0, 7), bi(d, ve), t.flags & 16777216 && d.push(yu(57));
    }
    function de(W, ce) {
      te(), ce && (ne(ce), W && !kt(W.declarations, (pe) => Ws(pe) || (Ps(pe) || Pu(pe)) && !pe.name) && (d.push(vc()), P(W)));
    }
    function ne(W) {
      switch (W) {
        case "var":
        case "function":
        case "let":
        case "const":
        case "constructor":
          d.push(B$(W));
          return;
        default:
          d.push(yu(20)), d.push(B$(W)), d.push(yu(21));
          return;
      }
    }
    function ye(W, ce, pe = 0) {
      bi(d, U$(e, W, i, pe | 32)), ce.length > 1 && (d.push(vc()), d.push(yu(20)), d.push(uw(39)), d.push(Ad((ce.length - 1).toString(), 7)), d.push(vc()), d.push(If(ce.length === 2 ? "overload" : "overloads")), d.push(yu(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 ie(W, ce) {
      const pe = Hv((ve) => {
        const Te = e.symbolToTypeParameterDeclarations(W, ce, Lne);
        H().writeList(53776, Te, er(ga(ce)), ve);
      });
      bi(d, pe);
    }
  }
  function S2e(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 Lne, kKe = C({
    "src/services/symbolDisplay.ts"() {
      Xr(), Lne = 70246400;
    }
  }), wy = {};
  le(wy, {
    getSymbolDisplayPartsDocumentationAndSymbolKind: () => T2e,
    getSymbolKind: () => v2e,
    getSymbolModifiers: () => IKe
  });
  var wKe = C({
    "src/services/_namespaces/ts.SymbolDisplay.ts"() {
      kKe();
    }
  });
  function x2e(e) {
    const t = e.__pos;
    return D.assert(typeof t == "number"), t;
  }
  function Ine(e, t) {
    D.assert(typeof t == "number"), e.__pos = t;
  }
  function A2e(e) {
    const t = e.__end;
    return D.assert(typeof t == "number"), t;
  }
  function kne(e, t) {
    D.assert(typeof t == "number"), e.__end = t;
  }
  function C2e(e, t) {
    return zo(e, t, !1, !0);
  }
  function DKe(e, t) {
    let r = t;
    for (; r < e.length; ) {
      const i = e.charCodeAt(r);
      if (Im(i)) {
        r++;
        continue;
      }
      return i === 47;
    }
    return !1;
  }
  function jw(e, t, r, i) {
    return { pos: nS(e, t, i), end: s2(e, r, i) };
  }
  function nS(e, t, r, i = !1) {
    var o, s;
    const { leadingTriviaOption: l } = r;
    if (l === 0)
      return t.getStart(e);
    if (l === 3) {
      const L = t.getStart(e), I = v_(L, e);
      return H8(t, I) ? I : L;
    }
    if (l === 2) {
      const L = JW(t, e.text);
      if (L != null && L.length)
        return v_(L[0].pos, e);
    }
    const f = t.getFullStart(), d = t.getStart(e);
    if (f === d)
      return d;
    const y = v_(f, e);
    if (v_(d, e) === y)
      return l === 1 ? f : d;
    if (i) {
      const L = ((o = dh(e.text, f)) == null ? void 0 : o[0]) || ((s = F0(e.text, f)) == null ? void 0 : s[0]);
      if (L)
        return zo(e.text, L.end, !0, !0);
    }
    const b = f > 0 ? 1 : 0;
    let A = Cv(zI(e, y) + b, e);
    return A = C2e(e.text, A), Cv(zI(e, A), e);
  }
  function wne(e, t, r) {
    const { end: i } = t, { trailingTriviaOption: o } = r;
    if (o === 2) {
      const s = F0(e.text, i);
      if (s) {
        const l = zI(e, t.end);
        for (const f of s) {
          if (f.kind === 2 || zI(e, f.pos) > l)
            break;
          if (zI(e, f.end) > l)
            return zo(e.text, f.end, !0, !0);
        }
      }
    }
  }
  function s2(e, t, r) {
    var i;
    const { end: o } = t, { trailingTriviaOption: s } = r;
    if (s === 0)
      return o;
    if (s === 1) {
      const d = ma(F0(e.text, o), dh(e.text, o)), y = (i = d == null ? void 0 : d[d.length - 1]) == null ? void 0 : i.end;
      return y || o;
    }
    const l = wne(e, t, r);
    if (l)
      return l;
    const f = zo(e.text, o, !0);
    return f !== o && (s === 2 || fu(e.text.charCodeAt(f - 1))) ? f : o;
  }
  function QG(e, t) {
    return !!t && !!e.parent && (t.kind === 27 || t.kind === 26 && e.parent.kind === 207);
  }
  function RKe(e) {
    return Ps(e) || ml(e);
  }
  function NKe(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 OKe(e, t) {
    if (e.kind === t.kind)
      switch (e.kind) {
        case 344: {
          const r = e, i = t;
          return Ve(r.name) && Ve(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 Dne(e, t) {
    return zo(e.text, nS(e, t, { leadingTriviaOption: 1 }), !1, !0);
  }
  function PKe(e, t, r, i) {
    const o = Dne(e, i);
    if (r === void 0 || p_(s2(e, t, {}), o, e))
      return o;
    const s = Sl(i.getStart(e), e);
    if (QG(t, s)) {
      const l = Sl(t.getStart(e), e);
      if (QG(r, l)) {
        const f = zo(e.text, s.getEnd(), !0, !0);
        if (p_(l.getStart(e), s.getStart(e), e))
          return fu(e.text.charCodeAt(f - 1)) ? f - 1 : f;
        if (fu(e.text.charCodeAt(f)))
          return f;
      }
    }
    return o;
  }
  function MKe(e, t) {
    const r = gs(e, 18, t), i = gs(e, 19, t);
    return [r == null ? void 0 : r.end, i == null ? void 0 : i.end];
  }
  function ZG(e) {
    return xs(e) ? e.properties : e.members;
  }
  function FKe(e, t, r, i) {
    return Q6.newFileChangesWorker(void 0, t, e, r, i);
  }
  function Rne(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(eu(i))}`;
    }
    return e;
  }
  function BKe(e) {
    return zo(e, 0) === e.length;
  }
  function eU(e) {
    const t = Gn(e, eU, k2e, GKe, eU), r = Ys(t) ? t : Object.create(t);
    return Bm(r, x2e(e), A2e(e)), r;
  }
  function GKe(e, t, r, i, o) {
    const s = Xn(e, t, r, i, o);
    if (!s)
      return s;
    D.assert(e);
    const l = s === e ? N.createNodeArray(s.slice(0)) : s;
    return Bm(l, x2e(e), A2e(e)), l;
  }
  function L2e(e) {
    let t = 0;
    const r = PN(e), i = (ee) => {
      ee && Ine(ee, t);
    }, o = (ee) => {
      ee && kne(ee, t);
    }, s = (ee) => {
      ee && Ine(ee, t);
    }, l = (ee) => {
      ee && kne(ee, t);
    }, f = (ee) => {
      ee && Ine(ee, t);
    }, d = (ee) => {
      ee && kne(ee, t);
    };
    function y(ee, $e) {
      if ($e || !BKe(ee)) {
        t = r.getTextPos();
        let Ue = 0;
        for (; tg(ee.charCodeAt(ee.length - Ue - 1)); )
          Ue++;
        t -= Ue;
      }
    }
    function h(ee) {
      r.write(ee), y(ee, !1);
    }
    function b(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 B(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, $e) {
      r.writeSymbol(ee, $e), y(ee, !1);
    }
    function X(ee) {
      r.writeLine(ee);
    }
    function Y() {
      r.increaseIndent();
    }
    function P() {
      r.decreaseIndent();
    }
    function de() {
      return r.getText();
    }
    function ne(ee) {
      r.rawWrite(ee), y(ee, !1);
    }
    function ye(ee) {
      r.writeLiteral(ee), y(ee, !0);
    }
    function ie() {
      return r.getTextPos();
    }
    function W() {
      return r.getLine();
    }
    function ce() {
      return r.getColumn();
    }
    function pe() {
      return r.getIndent();
    }
    function ve() {
      return r.isAtStartOfLine();
    }
    function Te() {
      r.clear(), t = 0;
    }
    return {
      onBeforeEmitNode: i,
      onAfterEmitNode: o,
      onBeforeEmitNodeArray: s,
      onAfterEmitNodeArray: l,
      onBeforeEmitToken: f,
      onAfterEmitToken: d,
      write: h,
      writeComment: b,
      writeKeyword: A,
      writeOperator: L,
      writePunctuation: I,
      writeTrailingSemicolon: O,
      writeParameter: k,
      writeProperty: B,
      writeSpace: V,
      writeStringLiteral: H,
      writeSymbol: te,
      writeLine: X,
      increaseIndent: Y,
      decreaseIndent: P,
      getText: de,
      rawWrite: ne,
      writeLiteral: ye,
      getTextPos: ie,
      getLine: W,
      getColumn: ce,
      getIndent: pe,
      isAtStartOfLine: ve,
      hasTrailingComment: () => r.hasTrailingComment(),
      hasTrailingWhitespace: () => r.hasTrailingWhitespace(),
      clear: Te
    };
  }
  function UKe(e) {
    let t;
    for (const y of e.statements)
      if (pp(y))
        t = y;
      else
        break;
    let r = 0;
    const i = e.text;
    if (t)
      return r = t.end, d(), r;
    const o = dM(i);
    o !== void 0 && (r = o.length, d());
    const s = dh(i, r);
    if (!s)
      return r;
    let l, f;
    for (const y of s) {
      if (y.kind === 3) {
        if (MM(i, y.pos)) {
          l = { range: y, pinnedOrTripleSlash: !0 };
          continue;
        }
      } else if (wW(i, y.pos, y.end)) {
        l = { range: y, pinnedOrTripleSlash: !0 };
        continue;
      }
      if (l) {
        if (l.pinnedOrTripleSlash)
          break;
        const h = e.getLineAndCharacterOfPosition(y.pos).line, b = e.getLineAndCharacterOfPosition(l.range.end).line;
        if (h >= b + 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;
      }
      l = { range: y, pinnedOrTripleSlash: !1 };
    }
    return l && (r = l.range.end, d()), r;
    function d() {
      if (r < i.length) {
        const y = i.charCodeAt(r);
        fu(y) && (r++, r < i.length && y === 13 && i.charCodeAt(r) === 10 && r++);
      }
    }
  }
  function I2e(e, t) {
    return !Cy(e, t) && !qT(e, t) && !b$(e, t) && !Lye(e, t);
  }
  function VKe(e, t) {
    return (xf(e) || Za(e)) && AM(t) && t.name.kind === 164 || qR(e) && qR(t);
  }
  function wh(e, t, r, i = { leadingTriviaOption: 1 }) {
    const o = nS(t, r, i), s = s2(t, r, i);
    e.deleteRange(t, { pos: o, end: s });
  }
  function Hw(e, t, r, i) {
    const o = D.checkDefined(xl.SmartIndenter.getContainingList(i, r)), s = wA(o, i);
    if (D.assert(s !== -1), o.length === 1) {
      wh(e, r, i);
      return;
    }
    D.assert(!t.has(i), "Deleting a node twice"), t.add(i), e.deleteRange(r, {
      pos: Dne(r, i),
      end: s === o.length - 1 ? s2(r, i, {}) : PKe(r, i, o[s - 1], o[s + 1])
    });
  }
  var Nne, One, iL, tU, Q6, k2e, Pne, jKe = C({
    "src/services/textChanges.ts"() {
      Xr(), Nne = /* @__PURE__ */ ((e) => (e[e.Exclude = 0] = "Exclude", e[e.IncludeAll = 1] = "IncludeAll", e[e.JSDoc = 2] = "JSDoc", e[e.StartLine = 3] = "StartLine", e))(Nne || {}), One = /* @__PURE__ */ ((e) => (e[e.Exclude = 0] = "Exclude", e[e.ExcludeWhitespace = 1] = "ExcludeWhitespace", e[e.Include = 2] = "Include", e))(One || {}), iL = {
        leadingTriviaOption: 0,
        trailingTriviaOption: 0
      }, tU = 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 tU(rb(e.host, e.formatContext.options), e.formatContext);
        }
        static with(e, t) {
          const r = tU.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: MF(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), l = s2(e, o, r);
            this.deleteRange(e, { pos: s, end: l }), i = !!wne(e, o, r);
          }
        }
        deleteModifier(e, t) {
          this.deleteRange(e, { pos: t.getStart(e), end: zo(e.text, t.end, !0) });
        }
        deleteNodeRange(e, t, r, i = { leadingTriviaOption: 1 }) {
          const o = nS(e, t, i), s = s2(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 = iL) {
          this.replaceRange(e, jw(e, t, t, i), r, i);
        }
        replaceNodeRange(e, t, r, i, o = iL) {
          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 = iL) {
          this.replaceRangeWithNodes(e, jw(e, t, t, i), r, i);
        }
        replaceNodeWithText(e, t, r) {
          this.replaceRangeWithText(e, jw(e, t, t, iL), r);
        }
        replaceNodeRangeWithNodes(e, t, r, i, o = iL) {
          this.replaceRangeWithNodes(e, jw(e, t, r, o), i, o);
        }
        nodeHasTrailingComment(e, t, r = iL) {
          return !!wne(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, __(t), r, i);
        }
        insertNodesAt(e, t, r, i = {}) {
          this.replaceRangeWithNodes(e, __(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 = UKe(e), o = {
            prefix: i === 0 ? void 0 : this.newLineCharacter,
            suffix: (fu(e.text.charCodeAt(i)) ? "" : this.newLineCharacter) + (r ? this.newLineCharacter : "")
          };
          Ba(t) ? this.insertNodesAt(e, i, t, o) : this.insertNodeAt(e, i, t, o);
        }
        insertFirstParameter(e, t, r) {
          const i = zl(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 = Cv(t, e), s = Zye(e.text, o), l = I2e(e, s), f = sw(e, l ? s : r), d = e.text.slice(o, s), y = `${l ? "" : 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 l of t.jsDoc)
              this.deleteRange(e, {
                pos: v_(l.getStart(e), e),
                end: s2(e, l, {})
              });
          const o = j$(e.text, i - 1), s = e.text.slice(o, i);
          this.insertNodeAt(e, i, r, { suffix: this.newLineCharacter + s });
        }
        createJSDocText(e, t) {
          const r = wo(t.jsDoc, (o) => Ua(o.comment) ? N.createJSDocText(o.comment) : o.comment), i = Tm(t.jsDoc);
          return i && p_(i.pos, i.end, e) && Ie(r) === 0 ? void 0 : N.createNodeArray(Wa(r, N.createJSDocText(`
`)));
        }
        replaceJSDocComment(e, t, r) {
          this.insertJsdocCommentBefore(e, NKe(t), N.createJSDocComment(this.createJSDocText(e, t), N.createNodeArray(r)));
        }
        addJSDocTags(e, t, r) {
          const i = Zb(t.jsDoc, (s) => s.tags), o = r.filter((s) => !i.some((l, f) => {
            const d = OKe(l, s);
            return d && (i[f] = d), !!d;
          }));
          this.replaceJSDocComment(e, t, [...i, ...o]);
        }
        filterJSDocTags(e, t, r) {
          this.replaceJSDocComment(e, t, yn(Zb(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, __(t), r);
        }
        tryInsertTypeAnnotation(e, t, r) {
          var i;
          let o;
          if (qa(t)) {
            if (o = gs(t, 21, e), !o) {
              if (!Ws(t))
                return !1;
              o = ss(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 = gs(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 = (gs(t, 20, e) || ss(t.parameters)).getStart(e);
          this.insertNodesAt(e, i, r, { prefix: "<", suffix: ">", joiner: ", " });
        }
        getOptionsForInsertNodeBefore(e, t, r) {
          return Ca(e) || Ml(e) ? { suffix: r ? this.newLineCharacter + this.newLineCharacter : this.newLineCharacter } : zi(e) ? { suffix: ", " } : Oa(e) ? Oa(t) ? { suffix: ", " } : {} : Go(e) && Ul(e.parent) || Ey(e) ? { suffix: ", " } : xd(e) ? { suffix: "," + (r ? this.newLineCharacter : " ") } : D.failBadSyntaxKind(e);
        }
        insertNodeAtConstructorStart(e, t, r) {
          const i = zl(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 = cn(t.body.statements, (o) => nu(o) && NA(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 = ec(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: fu(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, ZG(t).pos, r, this.getInsertNodeAtStartInsertOptions(e, t, o));
        }
        guessIndentationFromExistingMembers(e, t) {
          let r, i = t;
          for (const o of ZG(t)) {
            if (S3(i, o, e))
              return;
            const s = o.getStart(e), l = xl.SmartIndenter.findFirstNonWhitespaceColumn(v_(s, e), s, e, this.formatContext.options);
            if (r === void 0)
              r = l;
            else if (l !== r)
              return;
            i = o;
          }
          return r;
        }
        computeIndentationForNewMember(e, t) {
          var r;
          const i = t.getStart(e);
          return xl.SmartIndenter.findFirstNonWhitespaceColumn(v_(i, e), i, e, this.formatContext.options) + ((r = this.formatContext.options.indentSize) != null ? r : 4);
        }
        getInsertNodeAtStartInsertOptions(e, t, r) {
          const o = ZG(t).length === 0, s = hp(this.classesWithNodesInsertedAtStart, ds(t), { node: t, sourceFile: e }), l = xs(t) && (!d_(e) || !o), f = xs(t) && d_(e) && o && !s;
          return {
            indentation: r,
            prefix: (f ? "," : "") + this.newLineCharacter,
            suffix: l ? "," : Qu(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, ss(r));
          this.insertNodesAt(e, i, r, this.getInsertNodeAfterOptions(e, t));
        }
        insertNodeAfterWorker(e, t, r) {
          return VKe(t, r) && e.text.charCodeAt(t.end - 1) !== 59 && this.replaceRange(e, __(t.end), N.createToken(26)), s2(e, t, {});
        }
        getInsertNodeAfterOptions(e, t) {
          const r = this.getInsertNodeAfterOptionsWorker(t);
          return {
            ...r,
            prefix: t.end === e.end && Ca(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(Ca(e) || AM(e)), { suffix: this.newLineCharacter };
          }
        }
        insertName(e, t, r) {
          if (D.assert(!t.name), t.kind === 216) {
            const i = gs(t, 38, e), o = gs(t, 20, e);
            o ? (this.insertNodesAt(e, o.getStart(e), [N.createToken(98), N.createIdentifier(r)], { joiner: " " }), wh(this, e, i)) : (this.insertText(e, ss(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 = gs(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, !p_(r.elements[0].getStart(), r.parent.parent.getStart(), e));
        }
        insertNodeInListAfter(e, t, r, i = xl.SmartIndenter.getContainingList(t, e)) {
          if (!i) {
            D.fail("node is not a list element");
            return;
          }
          const o = wA(i, t);
          if (o < 0)
            return;
          const s = t.getEnd();
          if (o !== i.length - 1) {
            const l = ia(e, t.end);
            if (l && QG(t, l)) {
              const f = i[o + 1], d = C2e(e.text, f.getFullStart()), y = `${ho(l.kind)}${e.text.substring(l.end, d)}`;
              this.insertNodesAt(e, d, [r], { suffix: y });
            }
          } else {
            const l = t.getStart(e), f = v_(l, e);
            let d, y = !1;
            if (i.length === 1)
              d = 27;
            else {
              const h = Sl(t.pos, e);
              d = QG(t, h) ? h.kind : 27, y = v_(i[o - 1].getStart(e), e) !== f;
            }
            if (DKe(e.text, t.end) && (y = !0), y) {
              this.replaceRange(e, __(s), N.createToken(d));
              const h = xl.SmartIndenter.findFirstNonWhitespaceColumn(f, l, e, this.formatContext.options);
              let b = zo(e.text, s, !0, !1);
              for (; b !== s && fu(e.text.charCodeAt(b - 1)); )
                b--;
              this.replaceRange(e, __(b), r, { indentation: h, prefix: this.newLineCharacter });
            } else
              this.replaceRange(e, __(s), r, { prefix: `${ho(d)} ` });
          }
        }
        parenthesizeExpression(e, t) {
          this.replaceRange(e, cq(t), N.createParenthesizedExpression(t));
        }
        finishClassesWithNodesInsertedAtStart() {
          this.classesWithNodesInsertedAtStart.forEach(({ node: e, sourceFile: t }) => {
            const [r, i] = MKe(e, t);
            if (r !== void 0 && i !== void 0) {
              const o = ZG(e).length === 0, s = p_(r, i, t);
              o && s && r !== i - 1 && this.deleteRange(t, __(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 && gye(i.node, r)) || (Ba(r) ? this.deleteRange(t, lq(t, r)) : Pne.deleteDeclaration(this, e, t, r));
          e.forEach((t) => {
            const r = t.getSourceFile(), i = xl.SmartIndenter.getContainingList(t, r);
            if (t !== Ho(i))
              return;
            const o = ts(i, (s) => !e.has(s), i.length - 2);
            o !== -1 && this.deleteRange(r, { pos: i[o].end, end: Dne(r, i[o + 1]) });
          });
        }
        getChanges(e) {
          this.finishDeleteDeclarations(), this.finishClassesWithNodesInsertedAtStart();
          const t = Q6.getTextChangesFromChanges(this.changes, this.newLineCharacter, this.formatContext, e);
          for (const { oldFile: r, fileName: i, statements: o } of this.newFiles)
            t.push(Q6.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 fa(tI(f, (b) => b.sourceFile.path), (b) => {
            const A = b[0].sourceFile, L = iy(b, (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 = fa(L, (O) => {
              const k = jv(O.range), B = o(O, A, d, y, h);
              if (!(k.length === B.length && mve(A.text, B, k.start)))
                return Y8(k, B);
            });
            return I.length > 0 ? { fileName: A.fileName, textChanges: I } : void 0;
          });
        }
        e.getTextChangesFromChanges = t;
        function r(f, d, y, h, b) {
          const A = i(f, iq(d), y, h, b);
          return { fileName: d, textChanges: [Y8(Ll(0, 0), A)], isNewFile: !0 };
        }
        e.newFileChanges = r;
        function i(f, d, y, h, b) {
          const A = y.map((O) => O === 4 ? "" : l(O, f, h).text).join(h), L = jO("any file name", A, 99, !0, d), I = xl.formatDocument(L, b);
          return Rne(A, I) + h;
        }
        e.newFileChangesWorker = i;
        function o(f, d, y, h, b) {
          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, b), k = f.kind === 2 ? f.nodes.map((V) => pA(O(V), y)).join(((A = f.options) == null ? void 0 : A.joiner) || y) : O(f.node), B = L.indentation !== void 0 || v_(I, d) === I ? k : k.replace(/^\s+/, "");
          return (L.prefix || "") + B + (!L.suffix || tl(B, L.suffix) ? "" : L.suffix);
        }
        function s(f, d, y, { indentation: h, prefix: b, delta: A }, L, I, O) {
          const { node: k, text: B } = l(f, d, L);
          O && O(k, B);
          const V = l9(I, d), H = h !== void 0 ? h : xl.SmartIndenter.getIndentation(y, d, V, b === L || v_(y, d) === y);
          A === void 0 && (A = xl.SmartIndenter.shouldIndentChildNode(V, f) && V.indentSize || 0);
          const te = {
            text: B,
            getLineAndCharacterOfPosition(Y) {
              return ac(this, Y);
            }
          }, X = xl.formatNodeGivenIndentation(k, te, d.languageVariant, H, A, { ...I, options: V });
          return Rne(B, X);
        }
        function l(f, d, y) {
          const h = L2e(y), b = s6(y);
          return H1({
            newLine: b,
            neverAsciiEscape: !0,
            preserveSourceNewlines: !0,
            terminateUnterminatedLiterals: !0
          }, h).writeNode(4, f, d, h), { text: h.getText(), node: eU(f) };
        }
        e.getNonformattedText = l;
      })(Q6 || (Q6 = {})), k2e = {
        ...hg,
        factory: cO(hg.factory.flags | 1, hg.factory.baseFactory)
      }, ((e) => {
        function t(s, l, f, d) {
          switch (d.kind) {
            case 166: {
              const L = d.parent;
              Ws(L) && L.parameters.length === 1 && !gs(L, 20, f) ? s.replaceNodeWithText(f, d, "()") : Hw(s, l, f, d);
              break;
            }
            case 269:
            case 268:
              const y = f.imports.length && d === ss(f.imports).parent || d === cn(f.statements, cT);
              wh(s, f, d, {
                leadingTriviaOption: y ? 0 : bf(d) ? 2 : 3
              });
              break;
            case 205:
              const h = d.parent;
              h.kind === 204 && d !== Ho(h.elements) ? wh(s, f, d) : Hw(s, l, f, d);
              break;
            case 257:
              o(s, l, f, d);
              break;
            case 165:
              Hw(s, l, f, d);
              break;
            case 273:
              const A = d.parent;
              A.elements.length === 1 ? i(s, f, A) : Hw(s, l, f, d);
              break;
            case 271:
              i(s, f, d);
              break;
            case 26:
              wh(s, f, d, { trailingTriviaOption: 0 });
              break;
            case 98:
              wh(s, f, d, { leadingTriviaOption: 0 });
              break;
            case 260:
            case 259:
              wh(s, f, d, { leadingTriviaOption: bf(d) ? 2 : 3 });
              break;
            default:
              d.parent ? Vm(d.parent) && d.parent.name === d ? r(s, f, d.parent) : eo(d.parent) && wi(d.parent.arguments, d) ? Hw(s, l, f, d) : wh(s, f, d) : wh(s, f, d);
          }
        }
        e.deleteDeclaration = t;
        function r(s, l, f) {
          if (!f.namedBindings)
            wh(s, l, f.parent);
          else {
            const d = f.name.getStart(l), y = ia(l, f.name.end);
            if (y && y.kind === 27) {
              const h = zo(l.text, y.end, !1, !0);
              s.deleteRange(l, { pos: d, end: h });
            } else
              wh(s, l, f.name);
          }
        }
        function i(s, l, f) {
          if (f.parent.name) {
            const d = D.checkDefined(ia(l, f.pos - 1));
            s.deleteRange(l, { pos: d.getStart(l), end: f.end });
          } else {
            const d = z0(f, 269);
            wh(s, l, d);
          }
        }
        function o(s, l, f, d) {
          const { parent: y } = d;
          if (y.kind === 295) {
            s.deleteNodeRange(f, gs(y, 20, f), gs(y, 21, f));
            return;
          }
          if (y.declarations.length !== 1) {
            Hw(s, l, f, d);
            return;
          }
          const h = y.parent;
          switch (h.kind) {
            case 247:
            case 246:
              s.replaceNode(f, d, N.createObjectLiteralExpression());
              break;
            case 245:
              wh(s, f, y);
              break;
            case 240:
              wh(s, f, h, { leadingTriviaOption: bf(h) ? 2 : 3 });
              break;
            default:
              D.assertNever(h);
          }
        }
      })(Pne || (Pne = {}));
    }
  }), gr = {};
  le(gr, {
    ChangeTracker: () => tU,
    LeadingTriviaOption: () => Nne,
    TrailingTriviaOption: () => One,
    applyChanges: () => Rne,
    assignPositionsToNode: () => eU,
    createWriter: () => L2e,
    deleteNode: () => wh,
    getNewFileText: () => FKe,
    isThisTypeAnnotatable: () => RKe,
    isValidLocationToAddComment: () => I2e
  });
  var HKe = C({
    "src/services/_namespaces/ts.textChanges.ts"() {
      jKe();
    }
  }), Mne, Fne, WKe = C({
    "src/services/formatting/formattingContext.ts"() {
      Xr(), Mne = /* @__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))(Mne || {}), Fne = 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 = gs(e, 18, this.sourceFile), r = gs(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 Bne(e, t, r, i, o) {
    const s = t === 1 ? D2e : w2e;
    s.setText(e), s.setTextPos(r);
    let l = !0, f, d, y, h, b;
    const A = o({
      advance: L,
      readTokenInfo: X,
      readEOFTokenRange: P,
      isOnToken: de,
      isOnEOF: ne,
      getCurrentLeadingTrivia: () => f,
      lastTrailingTriviaWasNewLine: () => l,
      skipToEndOf: ie,
      skipToStartOf: W,
      getStartPos: () => {
        var ce;
        return (ce = b == null ? void 0 : b.token.pos) != null ? ce : s.getTokenPos();
      }
    });
    return b = void 0, s.setText(void 0), A;
    function L() {
      b = void 0, s.getStartPos() !== r ? l = !!d && Ho(d).kind === 4 : s.scan(), f = void 0, d = void 0;
      let pe = s.getStartPos();
      for (; pe < i; ) {
        const ve = s.getToken();
        if (!JA(ve))
          break;
        s.scan();
        const Te = {
          pos: pe,
          end: s.getStartPos(),
          kind: ve
        };
        pe = s.getStartPos(), f = Bn(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 Td(ce.kind) || ce.kind === 79;
        }
      return !1;
    }
    function k(ce) {
      return yx(ce) || Ty(ce) && (b == null ? void 0 : b.token.kind) === 11;
    }
    function B(ce) {
      return ce.kind === 13;
    }
    function V(ce) {
      return ce.kind === 16 || ce.kind === 17;
    }
    function H(ce) {
      return ce.parent && em(ce.parent) && ce.parent.initializer === ce;
    }
    function te(ce) {
      return ce === 43 || ce === 68;
    }
    function X(ce) {
      D.assert(de());
      const pe = I(ce) ? 1 : B(ce) ? 2 : V(ce) ? 3 : O(ce) ? 4 : k(ce) ? 5 : H(ce) ? 6 : 0;
      if (b && pe === h)
        return ye(b, ce);
      s.getStartPos() !== y && (D.assert(b !== void 0), s.setTextPos(y), s.scan());
      let ve = Y(ce, pe);
      const Te = aU(s.getStartPos(), s.getTextPos(), ve);
      for (d && (d = void 0); s.getStartPos() < i && (ve = s.scan(), !!JA(ve)); ) {
        const ee = aU(s.getStartPos(), s.getTextPos(), ve);
        if (d || (d = []), d.push(ee), ve === 4) {
          s.scan();
          break;
        }
      }
      return b = { leadingTrivia: f, trailingTrivia: d, token: Te }, ye(b, ce);
    }
    function Y(ce, pe) {
      const ve = s.getToken();
      switch (h = 0, pe) {
        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(pe);
      }
      return ve;
    }
    function P() {
      return D.assert(ne()), aU(s.getStartPos(), s.getTextPos(), 1);
    }
    function de() {
      const ce = b ? b.token.kind : s.getToken();
      return ce !== 1 && !JA(ce);
    }
    function ne() {
      return (b ? b.token.kind : s.getToken()) === 1;
    }
    function ye(ce, pe) {
      return zS(pe) && ce.token.kind !== pe.kind && (ce.token.kind = pe.kind), ce;
    }
    function ie(ce) {
      s.setTextPos(ce.end), y = s.getStartPos(), h = void 0, b = void 0, l = !1, f = void 0, d = void 0;
    }
    function W(ce) {
      s.setTextPos(ce.pos), y = s.getStartPos(), h = void 0, b = void 0, l = !1, f = void 0, d = void 0;
    }
  }
  var w2e, D2e, zKe = C({
    "src/services/formatting/formattingScanner.ts"() {
      Xr(), qw(), w2e = cy(99, !1, 0), D2e = cy(99, !1, 1);
    }
  }), Z6, Gne, Une, qKe = C({
    "src/services/formatting/rule.ts"() {
      Xr(), Z6 = rt, Gne = /* @__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))(Gne || {}), Une = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.CanDeleteNewLines = 1] = "CanDeleteNewLines", e))(Une || {});
    }
  });
  function R2e() {
    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 = aL([...e, 3]), o = aL([...e, 1]), s = O2e(81, 162), l = O2e(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], b = [79, 21, 23, 103], A = [79, 20, 108, 103], L = [79, 21, 23, 103], I = [2, 3], O = [79, ...d9], k = i, B = aL([79, 3, 84, 93, 100]), V = aL([21, 3, 90, 111, 96, 91]), H = [
      Hr("IgnoreBeforeComment", r, I, Z6, 1),
      Hr("IgnoreAfterLineComment", 2, r, Z6, 1),
      Hr("NotSpaceBeforeColon", r, 58, [Ri, eP, F2e], 16),
      Hr("SpaceAfterColon", 58, r, [Ri, eP], 4),
      Hr("NoSpaceBeforeQuestionMark", r, 57, [Ri, eP, F2e], 16),
      Hr("SpaceAfterQuestionMarkInConditionalOperator", 57, r, [Ri, KKe], 4),
      Hr("NoSpaceAfterQuestionMark", 57, r, [Ri], 16),
      Hr("NoSpaceBeforeDot", r, [24, 28], [Ri, vXe], 16),
      Hr("NoSpaceAfterDot", [24, 28], r, [Ri], 16),
      Hr("NoSpaceBetweenImportParenInImportType", 100, 20, [Ri, aXe], 16),
      Hr("NoSpaceAfterUnaryPrefixOperator", d, y, [Ri, eP], 16),
      Hr("NoSpaceAfterUnaryPreincrementOperator", 45, h, [Ri], 16),
      Hr("NoSpaceAfterUnaryPredecrementOperator", 46, A, [Ri], 16),
      Hr("NoSpaceBeforeUnaryPostincrementOperator", b, 45, [Ri, Q2e], 16),
      Hr("NoSpaceBeforeUnaryPostdecrementOperator", L, 46, [Ri, Q2e], 16),
      Hr("SpaceAfterPostincrementWhenFollowedByAdd", 45, 39, [Ri, Dy], 4),
      Hr("SpaceAfterAddWhenFollowedByUnaryPlus", 39, 39, [Ri, Dy], 4),
      Hr("SpaceAfterAddWhenFollowedByPreincrement", 39, 45, [Ri, Dy], 4),
      Hr("SpaceAfterPostdecrementWhenFollowedBySubtract", 46, 40, [Ri, Dy], 4),
      Hr("SpaceAfterSubtractWhenFollowedByUnaryMinus", 40, 40, [Ri, Dy], 4),
      Hr("SpaceAfterSubtractWhenFollowedByPredecrement", 40, 46, [Ri, Dy], 4),
      Hr("NoSpaceAfterCloseBrace", 19, [27, 26], [Ri], 16),
      Hr("NewLineBeforeCloseBraceInBlockContext", i, 19, [G2e], 8),
      Hr("SpaceAfterCloseBrace", 19, t(21), [Ri, $Ke], 4),
      Hr("SpaceBetweenCloseBraceAndElse", 19, 91, [Ri], 4),
      Hr("SpaceBetweenCloseBraceAndWhile", 19, 115, [Ri], 4),
      Hr("NoSpaceBetweenEmptyBraceBrackets", 18, 19, [Ri, z2e], 16),
      Hr("SpaceAfterConditionalClosingParen", 21, 22, [tP], 4),
      Hr("NoSpaceBetweenFunctionKeywordAndStar", 98, 41, [j2e], 16),
      Hr("SpaceAfterStarInGeneratorDeclaration", 41, 79, [j2e], 4),
      Hr("SpaceAfterFunctionInFuncDecl", 98, r, [X1], 4),
      Hr("NewLineAfterOpenBraceInBlockContext", 18, r, [G2e], 8),
      Hr("SpaceAfterGetSetInMember", [137, 151], 79, [X1], 4),
      Hr("NoSpaceBetweenYieldKeywordAndStar", 125, 41, [Ri, $2e], 16),
      Hr("SpaceBetweenYieldOrYieldStarAndOperand", [125, 41], r, [Ri, $2e], 4),
      Hr("NoSpaceBetweenReturnAndSemicolon", 105, 26, [Ri], 16),
      Hr("SpaceAfterCertainKeywords", [113, 109, 103, 89, 105, 112, 133], r, [Ri], 4),
      Hr("SpaceAfterLetConstInVariableDeclaration", [119, 85], r, [Ri, lXe], 4),
      Hr("NoSpaceBeforeOpenParenInFuncCall", r, 20, [Ri, eXe, tXe], 16),
      Hr("SpaceBeforeBinaryKeywordOperator", r, f, [Ri, Dy], 4),
      Hr("SpaceAfterBinaryKeywordOperator", f, r, [Ri, Dy], 4),
      Hr("SpaceAfterVoidOperator", 114, r, [Ri, pXe], 4),
      Hr("SpaceBetweenAsyncAndOpenParen", 132, 20, [iXe, Ri], 4),
      Hr("SpaceBetweenAsyncAndFunctionKeyword", 132, [98, 79], [Ri], 4),
      Hr("NoSpaceBetweenTagAndTemplateString", [79, 21], [14, 15], [Ri], 16),
      Hr("SpaceBeforeJsxAttribute", r, 79, [oXe, Ri], 4),
      Hr("SpaceBeforeSlashInJsxOpeningElement", r, 43, [K2e, Ri], 4),
      Hr("NoSpaceBeforeGreaterThanTokenInJsxOpeningElement", 43, 31, [K2e, Ri], 16),
      Hr("NoSpaceBeforeEqualInJsxAttribute", r, 63, [J2e, Ri], 16),
      Hr("NoSpaceAfterEqualInJsxAttribute", 63, r, [J2e, Ri], 16),
      Hr("NoSpaceAfterModuleImport", [142, 147], 20, [Ri], 16),
      Hr("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, [Ri], 4),
      Hr("SpaceBeforeCertainTypeScriptKeywords", r, [94, 117, 158], [Ri], 4),
      Hr("SpaceAfterModuleName", 10, 18, [uXe], 4),
      Hr("SpaceBeforeArrow", r, 38, [Ri], 4),
      Hr("SpaceAfterArrow", 38, r, [Ri], 4),
      Hr("NoSpaceAfterEllipsis", 25, 79, [Ri], 16),
      Hr("NoSpaceAfterOptionalParameters", 57, [21, 27], [Ri, eP], 16),
      Hr("NoSpaceBetweenEmptyInterfaceBraceBrackets", 18, 19, [Ri, dXe], 16),
      Hr("NoSpaceBeforeOpenAngularBracket", O, 29, [Ri, nP], 16),
      Hr("NoSpaceBetweenCloseParenAndAngularBracket", 21, 29, [Ri, nP], 16),
      Hr("NoSpaceAfterOpenAngularBracket", 29, r, [Ri, nP], 16),
      Hr("NoSpaceBeforeCloseAngularBracket", r, 31, [Ri, nP], 16),
      Hr("NoSpaceAfterCloseAngularBracket", 31, [20, 22, 31, 27], [
        Ri,
        nP,
        YKe,
        _Xe
      ], 16),
      Hr("SpaceBeforeAt", [21, 79], 59, [Ri], 4),
      Hr("NoSpaceAfterAt", 59, r, [Ri], 16),
      Hr("SpaceAfterDecorator", r, [
        126,
        79,
        93,
        88,
        84,
        124,
        123,
        121,
        122,
        137,
        151,
        22,
        41
      ], [cXe], 4),
      Hr("NoSpaceBeforeNonNullAssertionOperator", r, 53, [Ri, mXe], 16),
      Hr("NoSpaceAfterNewKeywordOnConstructorSignature", 103, 20, [Ri, fXe], 16),
      Hr("SpaceLessThanAndNonJSXTypeAnnotation", 29, 29, [Ri], 4)
    ], te = [
      Hr("SpaceAfterConstructor", 135, 20, [cf("insertSpaceAfterConstructor"), Ri], 4),
      Hr("NoSpaceAfterConstructor", 135, 20, [Sp("insertSpaceAfterConstructor"), Ri], 16),
      Hr("SpaceAfterComma", 27, r, [cf("insertSpaceAfterCommaDelimiter"), Ri, Jne, nXe, rXe], 4),
      Hr("NoSpaceAfterComma", 27, r, [Sp("insertSpaceAfterCommaDelimiter"), Ri, Jne], 16),
      Hr("SpaceAfterAnonymousFunctionKeyword", [98, 41], 20, [cf("insertSpaceAfterFunctionKeywordForAnonymousFunctions"), X1], 4),
      Hr("NoSpaceAfterAnonymousFunctionKeyword", [98, 41], 20, [Sp("insertSpaceAfterFunctionKeywordForAnonymousFunctions"), X1], 16),
      Hr("SpaceAfterKeywordInControl", s, 20, [cf("insertSpaceAfterKeywordsInControlFlowStatements"), tP], 4),
      Hr("NoSpaceAfterKeywordInControl", s, 20, [Sp("insertSpaceAfterKeywordsInControlFlowStatements"), tP], 16),
      Hr("SpaceAfterOpenParen", 20, r, [cf("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Ri], 4),
      Hr("SpaceBeforeCloseParen", r, 21, [cf("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Ri], 4),
      Hr("SpaceBetweenOpenParens", 20, 20, [cf("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Ri], 4),
      Hr("NoSpaceBetweenParens", 20, 21, [Ri], 16),
      Hr("NoSpaceAfterOpenParen", 20, r, [Sp("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Ri], 16),
      Hr("NoSpaceBeforeCloseParen", r, 21, [Sp("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Ri], 16),
      Hr("SpaceAfterOpenBracket", 22, r, [cf("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), Ri], 4),
      Hr("SpaceBeforeCloseBracket", r, 23, [cf("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), Ri], 4),
      Hr("NoSpaceBetweenBrackets", 22, 23, [Ri], 16),
      Hr("NoSpaceAfterOpenBracket", 22, r, [Sp("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), Ri], 16),
      Hr("NoSpaceBeforeCloseBracket", r, 23, [Sp("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"), Ri], 16),
      Hr("SpaceAfterOpenBrace", 18, r, [M2e("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), B2e], 4),
      Hr("SpaceBeforeCloseBrace", r, 19, [M2e("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), B2e], 4),
      Hr("NoSpaceBetweenEmptyBraceBrackets", 18, 19, [Ri, z2e], 16),
      Hr("NoSpaceAfterOpenBrace", 18, r, [Vne("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), Ri], 16),
      Hr("NoSpaceBeforeCloseBrace", r, 19, [Vne("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"), Ri], 16),
      Hr("SpaceBetweenEmptyBraceBrackets", 18, 19, [cf("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces")], 4),
      Hr("NoSpaceBetweenEmptyBraceBrackets", 18, 19, [Vne("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces"), Ri], 16),
      Hr("SpaceAfterTemplateHeadAndMiddle", [15, 16], r, [cf("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), q2e], 4, 1),
      Hr("SpaceBeforeTemplateMiddleAndTail", r, [16, 17], [cf("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), Ri], 4),
      Hr("NoSpaceAfterTemplateHeadAndMiddle", [15, 16], r, [Sp("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), q2e], 16, 1),
      Hr("NoSpaceBeforeTemplateMiddleAndTail", r, [16, 17], [Sp("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"), Ri], 16),
      Hr("SpaceAfterOpenBraceInJsxExpression", 18, r, [cf("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), Ri, rU], 4),
      Hr("SpaceBeforeCloseBraceInJsxExpression", r, 19, [cf("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), Ri, rU], 4),
      Hr("NoSpaceAfterOpenBraceInJsxExpression", 18, r, [Sp("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), Ri, rU], 16),
      Hr("NoSpaceBeforeCloseBraceInJsxExpression", r, 19, [Sp("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"), Ri, rU], 16),
      Hr("SpaceAfterSemicolonInFor", 26, r, [cf("insertSpaceAfterSemicolonInForStatements"), Ri, Hne], 4),
      Hr("NoSpaceAfterSemicolonInFor", 26, r, [Sp("insertSpaceAfterSemicolonInForStatements"), Ri, Hne], 16),
      Hr("SpaceBeforeBinaryOperator", r, l, [cf("insertSpaceBeforeAndAfterBinaryOperators"), Ri, Dy], 4),
      Hr("SpaceAfterBinaryOperator", l, r, [cf("insertSpaceBeforeAndAfterBinaryOperators"), Ri, Dy], 4),
      Hr("NoSpaceBeforeBinaryOperator", r, l, [Sp("insertSpaceBeforeAndAfterBinaryOperators"), Ri, Dy], 16),
      Hr("NoSpaceAfterBinaryOperator", l, r, [Sp("insertSpaceBeforeAndAfterBinaryOperators"), Ri, Dy], 16),
      Hr("SpaceBeforeOpenParenInFuncDecl", r, 20, [cf("insertSpaceBeforeFunctionParenthesis"), Ri, X1], 4),
      Hr("NoSpaceBeforeOpenParenInFuncDecl", r, 20, [Sp("insertSpaceBeforeFunctionParenthesis"), Ri, X1], 16),
      Hr("NewLineBeforeOpenBraceInControl", V, 18, [cf("placeOpenBraceOnNewLineForControlBlocks"), tP, qne], 8, 1),
      Hr("NewLineBeforeOpenBraceInFunction", k, 18, [cf("placeOpenBraceOnNewLineForFunctions"), X1, qne], 8, 1),
      Hr("NewLineBeforeOpenBraceInTypeScriptDeclWithBlock", B, 18, [cf("placeOpenBraceOnNewLineForFunctions"), H2e, qne], 8, 1),
      Hr("SpaceAfterTypeAssertion", 31, r, [cf("insertSpaceAfterTypeAssertion"), Ri, Xne], 4),
      Hr("NoSpaceAfterTypeAssertion", 31, r, [Sp("insertSpaceAfterTypeAssertion"), Ri, Xne], 16),
      Hr("SpaceBeforeTypeAnnotation", r, [57, 58], [cf("insertSpaceBeforeTypeAnnotation"), Ri, Wne], 4),
      Hr("NoSpaceBeforeTypeAnnotation", r, [57, 58], [Sp("insertSpaceBeforeTypeAnnotation"), Ri, Wne], 16),
      Hr("NoOptionalSemicolon", 26, o, [P2e("semicolons", "remove"), gXe], 32),
      Hr("OptionalSemicolon", r, o, [P2e("semicolons", "insert"), yXe], 64)
    ], X = [
      Hr("NoSpaceBeforeSemicolon", r, 26, [Ri], 16),
      Hr("SpaceBeforeOpenBraceInControl", V, 18, [jne("placeOpenBraceOnNewLineForControlBlocks"), tP, Kne, zne], 4, 1),
      Hr("SpaceBeforeOpenBraceInFunction", k, 18, [jne("placeOpenBraceOnNewLineForFunctions"), X1, nU, Kne, zne], 4, 1),
      Hr("SpaceBeforeOpenBraceInTypeScriptDeclWithBlock", B, 18, [jne("placeOpenBraceOnNewLineForFunctions"), H2e, Kne, zne], 4, 1),
      Hr("NoSpaceBeforeComma", r, 27, [Ri], 16),
      Hr("NoSpaceBeforeOpenBracket", t(132, 82), 22, [Ri], 16),
      Hr("NoSpaceAfterCloseBracket", 23, r, [Ri, sXe], 16),
      Hr("SpaceAfterSemicolon", 26, r, [Ri], 4),
      Hr("SpaceBetweenForAndAwaitKeyword", 97, 133, [Ri], 4),
      Hr("SpaceBetweenStatements", [21, 90, 91, 82], r, [Ri, Jne, JKe], 4),
      Hr("SpaceAfterTryCatchFinally", [111, 83, 96], 18, [Ri], 4)
    ];
    return [
      ...H,
      ...te,
      ...X
    ];
  }
  function Hr(e, t, r, i, o, s = 0) {
    return { leftTokenRange: N2e(t), rightTokenRange: N2e(r), rule: { debugName: e, context: i, action: o, flags: s } };
  }
  function aL(e) {
    return { tokens: e, isSpecific: !0 };
  }
  function N2e(e) {
    return typeof e == "number" ? aL([e]) : Ba(e) ? aL(e) : e;
  }
  function O2e(e, t, r = []) {
    const i = [];
    for (let o = e; o <= t; o++)
      wi(r, o) || i.push(o);
    return aL(i);
  }
  function P2e(e, t) {
    return (r) => r.options && r.options[e] === t;
  }
  function cf(e) {
    return (t) => t.options && Rs(t.options, e) && !!t.options[e];
  }
  function Vne(e) {
    return (t) => t.options && Rs(t.options, e) && !t.options[e];
  }
  function Sp(e) {
    return (t) => !t.options || !Rs(t.options, e) || !t.options[e];
  }
  function jne(e) {
    return (t) => !t.options || !Rs(t.options, e) || !t.options[e] || t.TokensAreOnSameLine();
  }
  function M2e(e) {
    return (t) => !t.options || !Rs(t.options, e) || !!t.options[e];
  }
  function Hne(e) {
    return e.contextNode.kind === 245;
  }
  function JKe(e) {
    return !Hne(e);
  }
  function Dy(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 eP(e) {
    return !Dy(e);
  }
  function F2e(e) {
    return !Wne(e);
  }
  function Wne(e) {
    const t = e.contextNode.kind;
    return t === 169 || t === 168 || t === 166 || t === 257 || KS(t);
  }
  function KKe(e) {
    return e.contextNode.kind === 224 || e.contextNode.kind === 191;
  }
  function zne(e) {
    return e.TokensAreOnSameLine() || nU(e);
  }
  function B2e(e) {
    return e.contextNode.kind === 203 || e.contextNode.kind === 197 || XKe(e);
  }
  function qne(e) {
    return nU(e) && !(e.NextNodeAllOnSameLine() || e.NextNodeBlockIsOnOneLine());
  }
  function G2e(e) {
    return U2e(e) && !(e.ContextNodeAllOnSameLine() || e.ContextNodeBlockIsOnOneLine());
  }
  function XKe(e) {
    return U2e(e) && (e.ContextNodeAllOnSameLine() || e.ContextNodeBlockIsOnOneLine());
  }
  function U2e(e) {
    return V2e(e.contextNode);
  }
  function nU(e) {
    return V2e(e.nextTokenParent);
  }
  function V2e(e) {
    if (W2e(e))
      return !0;
    switch (e.kind) {
      case 238:
      case 266:
      case 207:
      case 265:
        return !0;
    }
    return !1;
  }
  function X1(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 YKe(e) {
    return !X1(e);
  }
  function j2e(e) {
    return e.contextNode.kind === 259 || e.contextNode.kind === 215;
  }
  function H2e(e) {
    return W2e(e.contextNode);
  }
  function W2e(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 $Ke(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 tP(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 z2e(e) {
    return e.contextNode.kind === 207;
  }
  function QKe(e) {
    return e.contextNode.kind === 210;
  }
  function ZKe(e) {
    return e.contextNode.kind === 211;
  }
  function eXe(e) {
    return QKe(e) || ZKe(e);
  }
  function tXe(e) {
    return e.currentTokenSpan.kind !== 27;
  }
  function nXe(e) {
    return e.nextTokenSpan.kind !== 23;
  }
  function rXe(e) {
    return e.nextTokenSpan.kind !== 21;
  }
  function iXe(e) {
    return e.contextNode.kind === 216;
  }
  function aXe(e) {
    return e.contextNode.kind === 202;
  }
  function Ri(e) {
    return e.TokensAreOnSameLine() && e.contextNode.kind !== 11;
  }
  function q2e(e) {
    return e.contextNode.kind !== 11;
  }
  function Jne(e) {
    return e.contextNode.kind !== 281 && e.contextNode.kind !== 285;
  }
  function rU(e) {
    return e.contextNode.kind === 291 || e.contextNode.kind === 290;
  }
  function oXe(e) {
    return e.nextTokenParent.kind === 288;
  }
  function J2e(e) {
    return e.contextNode.kind === 288;
  }
  function K2e(e) {
    return e.contextNode.kind === 282;
  }
  function sXe(e) {
    return !X1(e) && !nU(e);
  }
  function cXe(e) {
    return e.TokensAreOnSameLine() && Jf(e.contextNode) && X2e(e.currentTokenParent) && !X2e(e.nextTokenParent);
  }
  function X2e(e) {
    for (; e && yt(e); )
      e = e.parent;
    return e && e.kind === 167;
  }
  function lXe(e) {
    return e.currentTokenParent.kind === 258 && e.currentTokenParent.getStart(e.sourceFile) === e.currentTokenSpan.pos;
  }
  function Kne(e) {
    return e.formattingRequestKind !== 2;
  }
  function uXe(e) {
    return e.contextNode.kind === 264;
  }
  function dXe(e) {
    return e.contextNode.kind === 184;
  }
  function fXe(e) {
    return e.contextNode.kind === 177;
  }
  function Y2e(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 nP(e) {
    return Y2e(e.currentTokenSpan, e.currentTokenParent) || Y2e(e.nextTokenSpan, e.nextTokenParent);
  }
  function Xne(e) {
    return e.contextNode.kind === 213;
  }
  function _Xe(e) {
    return !Xne(e);
  }
  function pXe(e) {
    return e.currentTokenSpan.kind === 114 && e.currentTokenParent.kind === 219;
  }
  function $2e(e) {
    return e.contextNode.kind === 226 && e.contextNode.expression !== void 0;
  }
  function mXe(e) {
    return e.contextNode.kind === 232;
  }
  function Q2e(e) {
    return !hXe(e);
  }
  function hXe(e) {
    switch (e.contextNode.kind) {
      case 242:
      case 245:
      case 246:
      case 247:
      case 243:
      case 244:
        return !0;
      default:
        return !1;
    }
  }
  function gXe(e) {
    let t = e.nextTokenSpan.kind, r = e.nextTokenSpan.pos;
    if (JA(t)) {
      const s = e.nextTokenParent === e.currentTokenParent ? zT(e.currentTokenParent, rr(e.currentTokenParent, (l) => !l.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 ? !xf(e.currentTokenParent) || !!e.currentTokenParent.type || t !== 20 : Za(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 yXe(e) {
    return QF(e.currentTokenSpan.end, e.currentTokenParent, e.sourceFile);
  }
  function vXe(e) {
    return !Mr(e.contextNode) || !h_(e.contextNode.expression) || e.contextNode.expression.getText().indexOf(".") !== -1;
  }
  var bXe = C({
    "src/services/formatting/rules.ts"() {
      Xr(), qw();
    }
  });
  function EXe(e, t) {
    return { options: e, getRules: TXe(), host: t };
  }
  function TXe() {
    return Yne === void 0 && (Yne = xXe(R2e())), Yne;
  }
  function SXe(e) {
    let t = 0;
    return e & 1 && (t |= 28), e & 2 && (t |= 96), e & 28 && (t |= 28), e & 96 && (t |= 96), t;
  }
  function xXe(e) {
    const t = AXe(e);
    return (r) => {
      const i = t[Z2e(r.currentTokenSpan.kind, r.nextTokenSpan.kind)];
      if (i) {
        const o = [];
        let s = 0;
        for (const l of i) {
          const f = ~SXe(s);
          l.action & f && Rn(l.context, (d) => d(r)) && (o.push(l), s |= l.action);
        }
        if (o.length)
          return o;
      }
    };
  }
  function AXe(e) {
    const t = new Array(iU * iU), 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 l of i.rightTokenRange.tokens) {
          const f = Z2e(s, l);
          let d = t[f];
          d === void 0 && (d = t[f] = []), CXe(d, i.rule, o, r, f);
        }
    }
    return t;
  }
  function Z2e(e, t) {
    return D.assert(e <= 162 && t <= 162, "Must compute formatting context from tokens"), e * iU + t;
  }
  function CXe(e, t, r, i, o) {
    const s = t.action & 3 ? r ? 0 : oL.StopRulesAny : t.context !== Z6 ? r ? oL.ContextRulesSpecific : oL.ContextRulesAny : r ? oL.NoContextRulesSpecific : oL.NoContextRulesAny, l = i[o] || 0;
    e.splice(LXe(l, s), 0, t), i[o] = IXe(l, s);
  }
  function LXe(e, t) {
    let r = 0;
    for (let i = 0; i <= t; i += c2)
      r += e & rP, e >>= c2;
    return r;
  }
  function IXe(e, t) {
    const r = (e >> t & rP) + 1;
    return D.assert((r & rP) === r, "Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."), e & ~(rP << t) | r << t;
  }
  var Yne, c2, rP, iU, oL, kXe = C({
    "src/services/formatting/rulesMap.ts"() {
      Xr(), qw(), c2 = 5, rP = 31, iU = 162 + 1, oL = ((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))(oL || {});
    }
  });
  function aU(e, t, r) {
    const i = { pos: e, end: t, kind: r };
    return D.isDebugging && Object.defineProperty(i, "__debugKind", {
      get: () => D.formatSyntaxKind(r)
    }), i;
  }
  function wXe(e, t, r) {
    const i = t.getLineAndCharacterOfPosition(e).line;
    if (i === 0)
      return [];
    let o = $R(i, t);
    for (; Im(t.text.charCodeAt(o)); )
      o--;
    fu(t.text.charCodeAt(o)) && o--;
    const s = {
      pos: Cv(i - 1, t),
      end: o + 1
    };
    return iP(s, t, r, 2);
  }
  function DXe(e, t, r) {
    const i = $ne(e, 26, t);
    return eAe(Qne(i), t, r, 3);
  }
  function RXe(e, t, r) {
    const i = $ne(e, 18, t);
    if (!i)
      return [];
    const o = i.parent, s = Qne(o), l = {
      pos: v_(s.getStart(t), t),
      end: e
    };
    return iP(l, t, r, 4);
  }
  function NXe(e, t, r) {
    const i = $ne(e, 19, t);
    return eAe(Qne(i), t, r, 5);
  }
  function OXe(e, t) {
    const r = {
      pos: 0,
      end: e.text.length
    };
    return iP(r, e, t, 0);
  }
  function PXe(e, t, r, i) {
    const o = {
      pos: v_(e, r),
      end: t
    };
    return iP(o, r, i, 1);
  }
  function $ne(e, t, r) {
    const i = Sl(e, r);
    return i && i.kind === t && e === i.getEnd() ? i : void 0;
  }
  function Qne(e) {
    let t = e;
    for (; t && t.parent && t.parent.end === e.end && !MXe(t.parent, t); )
      t = t.parent;
    return t;
  }
  function MXe(e, t) {
    switch (e.kind) {
      case 260:
      case 261:
        return sf(e.members, t);
      case 264:
        const r = e.body;
        return !!r && r.kind === 265 && sf(r.statements, t);
      case 308:
      case 238:
      case 265:
        return sf(e.statements, t);
      case 295:
        return sf(e.block.statements, t);
    }
    return !1;
  }
  function FXe(e, t) {
    return r(t);
    function r(i) {
      const o = Ra(i, (s) => p$(s.getStart(t), s.end, e) && s);
      if (o) {
        const s = r(o);
        if (s)
          return s;
      }
      return i;
    }
  }
  function BXe(e, t) {
    if (!e.length)
      return o;
    const r = e.filter((s) => ow(t, s.start, s.start + s.length)).sort((s, l) => s.start - l.start);
    if (!r.length)
      return o;
    let i = 0;
    return (s) => {
      for (; ; ) {
        if (i >= r.length)
          return !1;
        const l = r[i];
        if (s.end <= l.start)
          return !1;
        if (LF(s.pos, s.end, l.start, l.start + l.length))
          return !0;
        i++;
      }
    };
    function o() {
      return !1;
    }
  }
  function GXe(e, t, r) {
    const i = e.getStart(r);
    if (i === t.pos && e.end === t.end)
      return i;
    const o = Sl(t.pos, r);
    return !o || o.end >= t.pos ? e.pos : o.end;
  }
  function UXe(e, t, r) {
    let i = -1, o;
    for (; e; ) {
      const s = r.getLineAndCharacterOfPosition(e.getStart(r)).line;
      if (i !== -1 && s !== i)
        break;
      if (xp.shouldIndentChildNode(t, e, o, r))
        return t.indentSize;
      i = s, o = e, e = e.parent;
    }
    return 0;
  }
  function VXe(e, t, r, i, o, s) {
    const l = { pos: e.pos, end: e.end };
    return Bne(t.text, r, l.pos, l.end, (f) => tAe(l, e, i, o, f, s, 1, (d) => !1, t));
  }
  function eAe(e, t, r, i) {
    if (!e)
      return [];
    const o = {
      pos: v_(e.getStart(t), t),
      end: e.end
    };
    return iP(o, t, r, i);
  }
  function iP(e, t, r, i) {
    const o = FXe(e, t);
    return Bne(t.text, t.languageVariant, GXe(o, e, t), e.end, (s) => tAe(e, o, xp.getIndentationForNode(o, e, t, r.options), UXe(o, r.options, t), s, r, i, BXe(t.parseDiagnostics, e), t));
  }
  function tAe(e, t, r, i, o, { options: s, getRules: l, host: f }, d, y, h) {
    var b;
    const A = new Fne(h, d, s);
    let L, I, O, k, B, V = -1;
    const H = [];
    if (o.advance(), o.isOnToken()) {
      const He = h.getLineAndCharacterOfPosition(t.getStart(h)).line;
      let Fe = He;
      Jf(t) && (Fe = h.getLineAndCharacterOfPosition(DW(t, h)).line), de(t, t, He, Fe, r, i);
    }
    if (!o.isOnToken()) {
      const He = xp.nodeWillIndentChild(s, t, void 0, h, !1) ? r + s.indentSize : r, Fe = o.getCurrentLeadingTrivia();
      Fe && (ne(Fe, He, !1, (st) => ie(st, h.getLineAndCharacterOfPosition(st.pos), t, t, void 0)), s.trimTrailingWhitespace !== !1 && Ue(Fe));
    }
    if (I && o.getStartPos() >= e.end) {
      const He = o.isOnEOF() ? o.readEOFTokenRange() : o.isOnToken() ? o.readTokenInfo(t).token : void 0;
      if (He && He.pos === L) {
        const Fe = ((b = Sl(He.end, h, t)) == null ? void 0 : b.parent) || O;
        W(He, h.getLineAndCharacterOfPosition(He.pos).line, Fe, I, k, O, Fe, void 0);
      }
    }
    return H;
    function te(He, Fe, st, Ct, Et) {
      if (ow(Ct, He, Fe) || z8(Ct, He, Fe)) {
        if (Et !== -1)
          return Et;
      } else {
        const Vt = h.getLineAndCharacterOfPosition(He).line, tt = v_(He, h), at = xp.findFirstNonWhitespaceColumn(tt, He, h, s);
        if (Vt !== st || He === at) {
          const an = xp.getBaseIndentation(s);
          return an > at ? an : at;
        }
      }
      return -1;
    }
    function X(He, Fe, st, Ct, Et, Vt) {
      const tt = xp.shouldIndentChildNode(s, He) ? s.indentSize : 0;
      return Vt === Fe ? {
        indentation: Fe === B ? V : Et.getIndentation(),
        delta: Math.min(s.indentSize, Et.getDelta(He) + tt)
      } : st === -1 ? He.kind === 20 && Fe === B ? { indentation: V, delta: Et.getDelta(He) } : xp.childStartsOnTheSameLineWithElseInIfStatement(Ct, He, Fe, h) || xp.childIsUnindentedBranchOfConditionalExpression(Ct, He, Fe, h) || xp.argumentStartsOnSameLineAsPreviousArgument(Ct, He, Fe, h) ? { indentation: Et.getIndentation(), delta: tt } : { indentation: Et.getIndentation() + Et.getDelta(He), delta: tt } : { indentation: st, delta: tt };
    }
    function Y(He) {
      if (q_(He)) {
        const Fe = cn(He.modifiers, lo, Qi(He.modifiers, Nu));
        if (Fe)
          return Fe.kind;
      }
      switch (He.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 (He.asteriskToken)
            return 41;
        case 169:
        case 166:
          const Fe = Aa(He);
          if (Fe)
            return Fe.kind;
      }
    }
    function P(He, Fe, st, Ct) {
      return {
        getIndentationForComment: (tt, at, an) => {
          switch (tt) {
            case 19:
            case 23:
            case 21:
              return st + Vt(an);
          }
          return at !== -1 ? at : st;
        },
        getIndentationForToken: (tt, at, an, Xt) => !Xt && Et(tt, at, an) ? st + Vt(an) : st,
        getIndentation: () => st,
        getDelta: Vt,
        recomputeIndentation: (tt, at) => {
          xp.shouldIndentChildNode(s, at, He, h) && (st += tt ? s.indentSize : -s.indentSize, Ct = xp.shouldIndentChildNode(s, He) ? s.indentSize : 0);
        }
      };
      function Et(tt, at, an) {
        switch (at) {
          case 18:
          case 19:
          case 21:
          case 91:
          case 115:
          case 59:
            return !1;
          case 43:
          case 31:
            switch (an.kind) {
              case 283:
              case 284:
              case 282:
                return !1;
            }
            break;
          case 22:
          case 23:
            if (an.kind !== 197)
              return !1;
            break;
        }
        return Fe !== tt && !(Jf(He) && at === Y(He));
      }
      function Vt(tt) {
        return xp.nodeWillIndentChild(s, He, tt, h, !0) ? Ct : 0;
      }
    }
    function de(He, Fe, st, Ct, Et, Vt) {
      if (!ow(e, He.getStart(h), He.getEnd()))
        return;
      const tt = P(He, st, Et, Vt);
      let at = Fe;
      for (Ra(He, (Wn) => {
        an(Wn, -1, He, tt, st, Ct, !1);
      }, (Wn) => {
        Xt(Wn, He, st, tt);
      }); o.isOnToken() && o.getStartPos() < e.end; ) {
        const Wn = o.readTokenInfo(He);
        if (Wn.token.end > Math.min(He.end, e.end))
          break;
        Pn(Wn, He, tt, He);
      }
      function an(Wn, In, Yt, _r, Ai, Ki, Xi, Nr) {
        if (D.assert(!Ys(Wn)), xc(Wn) || Dle(Yt, Wn))
          return In;
        const At = Wn.getStart(h), vn = h.getLineAndCharacterOfPosition(At).line;
        let Ht = vn;
        Jf(Wn) && (Ht = h.getLineAndCharacterOfPosition(DW(Wn, h)).line);
        let dn = -1;
        if (Xi && sf(e, Yt) && (dn = te(At, Wn.end, Ai, e, In), dn !== -1 && (In = dn)), !ow(e, Wn.pos, Wn.end))
          return Wn.end < e.pos && o.skipToEndOf(Wn), In;
        if (Wn.getFullWidth() === 0)
          return In;
        for (; o.isOnToken() && o.getStartPos() < e.end; ) {
          const Ni = o.readTokenInfo(He);
          if (Ni.token.end > e.end)
            return In;
          if (Ni.token.end > At) {
            Ni.token.pos > At && o.skipToStartOf(Wn);
            break;
          }
          Pn(Ni, He, _r, He);
        }
        if (!o.isOnToken() || o.getStartPos() >= e.end)
          return In;
        if (zS(Wn)) {
          const Ni = o.readTokenInfo(Wn);
          if (Wn.kind !== 11)
            return D.assert(Ni.token.end === Wn.end, "Token end is child end"), Pn(Ni, He, _r, Wn), In;
        }
        const ir = Wn.kind === 167 ? vn : Ki, lr = X(Wn, vn, dn, He, _r, ir);
        return de(Wn, at, vn, Ht, lr.indentation, lr.delta), at = He, Nr && Yt.kind === 206 && In === -1 && (In = lr.indentation), In;
      }
      function Xt(Wn, In, Yt, _r) {
        D.assert(_1(Wn)), D.assert(!Ys(Wn));
        const Ai = jXe(In, Wn);
        let Ki = _r, Xi = Yt;
        if (!ow(e, Wn.pos, Wn.end)) {
          Wn.end < e.pos && o.skipToEndOf(Wn);
          return;
        }
        if (Ai !== 0)
          for (; o.isOnToken() && o.getStartPos() < e.end; ) {
            const vn = o.readTokenInfo(In);
            if (vn.token.end > Wn.pos)
              break;
            if (vn.token.kind === Ai) {
              Xi = h.getLineAndCharacterOfPosition(vn.token.pos).line, Pn(vn, In, _r, In);
              let Ht;
              if (V !== -1)
                Ht = V;
              else {
                const dn = v_(vn.token.pos, h);
                Ht = xp.findFirstNonWhitespaceColumn(dn, vn.token.pos, h, s);
              }
              Ki = P(In, Yt, Ht, s.indentSize);
            } else
              Pn(vn, In, _r, In);
          }
        let Nr = -1;
        for (let vn = 0; vn < Wn.length; vn++) {
          const Ht = Wn[vn];
          Nr = an(Ht, Nr, He, Ki, Xi, Xi, !0, vn === 0);
        }
        const At = HXe(Ai);
        if (At !== 0 && o.isOnToken() && o.getStartPos() < e.end) {
          let vn = o.readTokenInfo(In);
          vn.token.kind === 27 && (Pn(vn, In, Ki, In), vn = o.isOnToken() ? o.readTokenInfo(In) : void 0), vn && vn.token.kind === At && sf(In, vn.token) && Pn(vn, In, Ki, In, !0);
        }
      }
      function Pn(Wn, In, Yt, _r, Ai) {
        D.assert(sf(In, Wn.token));
        const Ki = o.lastTrailingTriviaWasNewLine();
        let Xi = !1;
        Wn.leadingTrivia && ye(Wn.leadingTrivia, In, at, Yt);
        let Nr = 0;
        const At = sf(e, Wn.token), vn = h.getLineAndCharacterOfPosition(Wn.token.pos);
        if (At) {
          const Ht = y(Wn.token), dn = I;
          if (Nr = ie(Wn.token, vn, In, at, Yt), !Ht)
            if (Nr === 0) {
              const ir = dn && h.getLineAndCharacterOfPosition(dn.end).line;
              Xi = Ki && vn.line !== ir;
            } else
              Xi = Nr === 1;
        }
        if (Wn.trailingTrivia && (L = Ho(Wn.trailingTrivia).end, ye(Wn.trailingTrivia, In, at, Yt)), Xi) {
          const Ht = At && !y(Wn.token) ? Yt.getIndentationForToken(vn.line, Wn.token.kind, _r, !!Ai) : -1;
          let dn = !0;
          if (Wn.leadingTrivia) {
            const ir = Yt.getIndentationForComment(Wn.token.kind, Ht, _r);
            dn = ne(Wn.leadingTrivia, ir, dn, (lr) => ce(lr.pos, ir, !1));
          }
          Ht !== -1 && dn && (ce(Wn.token.pos, Ht, Nr === 1), B = vn.line, V = Ht);
        }
        o.advance(), at = In;
      }
    }
    function ne(He, Fe, st, Ct) {
      for (const Et of He) {
        const Vt = sf(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(He, Fe, st, Ct) {
      for (const Et of He)
        if (PF(Et.kind) && sf(e, Et)) {
          const Vt = h.getLineAndCharacterOfPosition(Et.pos);
          ie(Et, Vt, Fe, st, Ct);
        }
    }
    function ie(He, Fe, st, Ct, Et) {
      const Vt = y(He);
      let tt = 0;
      if (!Vt)
        if (I)
          tt = W(He, Fe.line, st, I, k, O, Ct, Et);
        else {
          const at = h.getLineAndCharacterOfPosition(e.pos);
          ee(at.line, Fe.line);
        }
      return I = He, L = He.end, O = st, k = Fe.line, tt;
    }
    function W(He, Fe, st, Ct, Et, Vt, tt, at) {
      A.updateContext(Ct, Vt, He, st, tt);
      const an = l(A);
      let Xt = A.options.trimTrailingWhitespace !== !1, Pn = 0;
      return an ? Zt(an, (Wn) => {
        if (Pn = Xe(Wn, Ct, Et, He, Fe), at)
          switch (Pn) {
            case 2:
              st.getStart(h) === He.pos && at.recomputeIndentation(!1, tt);
              break;
            case 1:
              st.getStart(h) === He.pos && at.recomputeIndentation(!0, tt);
              break;
            default:
              D.assert(Pn === 0);
          }
        Xt = Xt && !(Wn.action & 16) && Wn.flags !== 1;
      }) : Xt = Xt && He.kind !== 1, Fe !== Et && Xt && ee(Et, Fe, Ct), Pn;
    }
    function ce(He, Fe, st) {
      const Ct = Zne(Fe, s);
      if (st)
        Oe(He, 0, Ct);
      else {
        const Et = h.getLineAndCharacterOfPosition(He), Vt = Cv(Et.line, h);
        (Fe !== pe(Vt, Et.character) || ve(Ct, Vt)) && Oe(Vt, Et.character, Ct);
      }
    }
    function pe(He, Fe) {
      let st = 0;
      for (let Ct = 0; Ct < Fe; Ct++)
        h.text.charCodeAt(He + Ct) === 9 ? st += s.tabSize - st % s.tabSize : st++;
      return st;
    }
    function ve(He, Fe) {
      return He !== h.text.substr(Fe, He.length);
    }
    function Te(He, Fe, st, Ct = !0) {
      let Et = h.getLineAndCharacterOfPosition(He.pos).line;
      const Vt = h.getLineAndCharacterOfPosition(He.end).line;
      if (Et === Vt) {
        st || ce(He.pos, Fe, !1);
        return;
      }
      const tt = [];
      let at = He.pos;
      for (let In = Et; In < Vt; In++) {
        const Yt = $R(In, h);
        tt.push({ pos: at, end: Yt }), at = Cv(In + 1, h);
      }
      if (Ct && tt.push({ pos: at, end: He.end }), tt.length === 0)
        return;
      const an = Cv(Et, h), Xt = xp.findFirstNonWhitespaceCharacterAndColumn(an, tt[0].pos, h, s);
      let Pn = 0;
      st && (Pn = 1, Et++);
      const Wn = Fe - Xt.column;
      for (let In = Pn; In < tt.length; In++, Et++) {
        const Yt = Cv(Et, h), _r = In === 0 ? Xt : xp.findFirstNonWhitespaceCharacterAndColumn(tt[In].pos, tt[In].end, h, s), Ai = _r.column + Wn;
        if (Ai > 0) {
          const Ki = Zne(Ai, s);
          Oe(Yt, _r.character, Ki);
        } else
          We(Yt, _r.character);
      }
    }
    function ee(He, Fe, st) {
      for (let Ct = He; Ct < Fe; Ct++) {
        const Et = Cv(Ct, h), Vt = $R(Ct, h);
        if (st && (PF(st.kind) || x$(st.kind)) && st.pos <= Vt && st.end > Vt)
          continue;
        const tt = $e(Et, Vt);
        tt !== -1 && (D.assert(tt === Et || !Im(h.text.charCodeAt(tt - 1))), We(tt, Vt + 1 - tt));
      }
    }
    function $e(He, Fe) {
      let st = Fe;
      for (; st >= He && Im(h.text.charCodeAt(st)); )
        st--;
      return st !== Fe ? st + 1 : -1;
    }
    function Ue(He) {
      let Fe = I ? I.end : e.pos;
      for (const st of He)
        PF(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(He, Fe, st) {
      const Ct = h.getLineAndCharacterOfPosition(He).line, Et = h.getLineAndCharacterOfPosition(Fe).line;
      ee(Ct, Et + 1, st);
    }
    function We(He, Fe) {
      Fe && H.push(FF(He, Fe, ""));
    }
    function Oe(He, Fe, st) {
      (Fe || st) && H.push(FF(He, Fe, st));
    }
    function Me(He, Fe) {
      Fe && H.push(FF(He, 0, Fe));
    }
    function Xe(He, Fe, st, Ct, Et) {
      const Vt = Et !== st;
      switch (He.action) {
        case 1:
          return 0;
        case 16:
          if (Fe.end !== Ct.pos)
            return We(Fe.end, Ct.pos - Fe.end), Vt ? 2 : 0;
          break;
        case 32:
          We(Fe.pos, Fe.end - Fe.pos);
          break;
        case 8:
          if (He.flags !== 1 && st !== Et)
            return 0;
          if (Et - st !== 1)
            return Oe(Fe.end, Ct.pos - Fe.end, rb(f, s)), Vt ? 0 : 1;
          break;
        case 4:
          if (He.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 nAe(e, t, r, i = ia(e, t)) {
    const o = rr(i, Hm);
    if (o && (i = o.parent), i.getStart(e) <= t && t < i.getEnd())
      return;
    r = r === null ? void 0 : r === void 0 ? Sl(t, e) : r;
    const l = r && F0(e.text, r.end), f = qW(i, e), d = ma(l, f);
    return d && cn(d, (y) => W8(y, t) || t === y.end && (y.kind === 2 || t === e.getFullWidth()));
  }
  function jXe(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 HXe(e) {
    switch (e) {
      case 20:
        return 21;
      case 29:
        return 31;
      case 18:
        return 19;
    }
    return 0;
  }
  function Zne(e, t) {
    if ((!oU || oU.tabSize !== t.tabSize || oU.indentSize !== t.indentSize) && (oU = { tabSize: t.tabSize, indentSize: t.indentSize }, Ww = zw = void 0), t.convertTabsToSpaces) {
      let i;
      const o = Math.floor(e / t.indentSize), s = e % t.indentSize;
      return zw || (zw = []), zw[o] === void 0 ? (i = Q8(" ", t.indentSize * o), zw[o] = i) : i = zw[o], s ? i + Q8(" ", s) : i;
    } else {
      const i = Math.floor(e / t.tabSize), o = e - i * t.tabSize;
      let s;
      return Ww || (Ww = []), Ww[i] === void 0 ? Ww[i] = s = Q8("	", i) : s = Ww[i], o ? s + Q8(" ", o) : s;
    }
  }
  var oU, Ww, zw, WXe = C({
    "src/services/formatting/formatting.ts"() {
      Xr(), qw();
    }
  }), xp, zXe = C({
    "src/services/formatting/smartIndenter.ts"() {
      Xr(), qw(), ((e) => {
        let t;
        ((ee) => {
          ee[ee.Unknown = -1] = "Unknown";
        })(t || (t = {}));
        function r(ee, $e, Ue, Be = !1) {
          if (ee > $e.text.length)
            return f(Ue);
          if (Ue.indentStyle === 0)
            return 0;
          const We = Sl(ee, $e, void 0, !0), Oe = nAe($e, ee, We || null);
          if (Oe && Oe.kind === 3)
            return i($e, ee, Ue, Oe);
          if (!We)
            return f(Ue);
          if (x$(We.kind) && We.getStart($e) <= ee && ee < We.end)
            return 0;
          const Xe = $e.getLineAndCharacterOfPosition(ee).line, He = ia($e, ee), Fe = He.kind === 18 && He.parent.kind === 207;
          if (Ue.indentStyle === 1 || Fe)
            return o($e, ee, Ue);
          if (We.kind === 27 && We.parent.kind !== 223) {
            const Ct = h(We, $e, Ue);
            if (Ct !== -1)
              return Ct;
          }
          const st = te(ee, We.parent, $e);
          if (st && !sf(st, We)) {
            const Et = [215, 216].indexOf(He.parent.kind) !== -1 ? 0 : Ue.indentSize;
            return P(st, $e, Ue) + Et;
          }
          return s($e, ee, We, Xe, Be, Ue);
        }
        e.getIndentation = r;
        function i(ee, $e, Ue, Be) {
          const We = ac(ee, $e).line - 1, Oe = ac(ee, Be.pos).line;
          if (D.assert(Oe >= 0), We <= Oe)
            return W(Cv(Oe, ee), $e, ee, Ue);
          const Me = Cv(We, ee), { column: Xe, character: He } = ie(Me, $e, ee, Ue);
          return Xe === 0 ? Xe : ee.text.charCodeAt(Me + He) === 42 ? Xe - 1 : Xe;
        }
        function o(ee, $e, Ue) {
          let Be = $e;
          for (; Be > 0; ) {
            const Oe = ee.text.charCodeAt(Be);
            if (!tg(Oe))
              break;
            Be--;
          }
          const We = v_(Be, ee);
          return W(We, Be, ee, Ue);
        }
        function s(ee, $e, Ue, Be, We, Oe) {
          let Me, Xe = Ue;
          for (; Xe; ) {
            if (h$(Xe, $e, ee) && ve(Oe, Xe, Me, ee, !0)) {
              const Fe = I(Xe, ee), st = L(Ue, Xe, Be, ee), Ct = st !== 0 ? We && st === 2 ? Oe.indentSize : 0 : Be !== Fe.line ? Oe.indentSize : 0;
              return d(Xe, Fe, void 0, Ct, ee, !0, Oe);
            }
            const He = de(Xe, ee, Oe, !0);
            if (He !== -1)
              return He;
            Me = Xe, Xe = Xe.parent;
          }
          return f(Oe);
        }
        function l(ee, $e, Ue, Be) {
          const We = Ue.getLineAndCharacterOfPosition(ee.getStart(Ue));
          return d(ee, We, $e, 0, Ue, !1, Be);
        }
        e.getIndentationForNode = l;
        function f(ee) {
          return ee.baseIndentSize || 0;
        }
        e.getBaseIndentation = f;
        function d(ee, $e, Ue, Be, We, Oe, Me) {
          var Xe;
          let He = ee.parent;
          for (; He; ) {
            let Fe = !0;
            if (Ue) {
              const Vt = ee.getStart(We);
              Fe = Vt < Ue.pos || Vt > Ue.end;
            }
            const st = y(He, ee, We), Ct = st.line === $e.line || k(He, ee, $e.line, We);
            if (Fe) {
              const Vt = (Xe = H(ee, We)) == null ? void 0 : Xe[0], tt = !!Vt && I(Vt, We).line > st.line;
              let at = de(ee, We, Me, tt);
              if (at !== -1 || (at = b(ee, He, $e, Ct, We, Me), at !== -1))
                return at + Be;
            }
            ve(Me, He, ee, We, Oe) && !Ct && (Be += Me.indentSize);
            const Et = O(He, ee, $e.line, We);
            ee = He, He = ee.parent, $e = Et ? We.getLineAndCharacterOfPosition(ee.getStart(We)) : st;
          }
          return Be + f(Me);
        }
        function y(ee, $e, Ue) {
          const Be = H($e, Ue), We = Be ? Be.pos : ee.getStart(Ue);
          return Ue.getLineAndCharacterOfPosition(We);
        }
        function h(ee, $e, Ue) {
          const Be = yye(ee);
          return Be && Be.listItemIndex > 0 ? ne(Be.list.getChildren(), Be.listItemIndex - 1, $e, Ue) : -1;
        }
        function b(ee, $e, Ue, Be, We, Oe) {
          return (mu(ee) || qR(ee)) && ($e.kind === 308 || !Be) ? ye(Ue, We, 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, $e, Ue, Be) {
          const We = zT(ee, $e, Be);
          if (!We)
            return 0;
          if (We.kind === 18)
            return 1;
          if (We.kind === 19) {
            const Oe = I(We, Be).line;
            return Ue === Oe ? 2 : 0;
          }
          return 0;
        }
        function I(ee, $e) {
          return $e.getLineAndCharacterOfPosition(ee.getStart($e));
        }
        function O(ee, $e, Ue, Be) {
          if (!(eo(ee) && wi(ee.arguments, $e)))
            return !1;
          const We = ee.expression.getEnd();
          return ac(Be, We).line === Ue;
        }
        e.isArgumentAndStartLineOverlapsExpressionBeingCalled = O;
        function k(ee, $e, Ue, Be) {
          if (ee.kind === 242 && ee.elseStatement === $e) {
            const We = gs(ee, 91, Be);
            return D.assert(We !== void 0), I(We, Be).line === Ue;
          }
          return !1;
        }
        e.childStartsOnTheSameLineWithElseInIfStatement = k;
        function B(ee, $e, Ue, Be) {
          if (bC(ee) && ($e === ee.whenTrue || $e === ee.whenFalse)) {
            const We = ac(Be, ee.condition.end).line;
            if ($e === ee.whenTrue)
              return Ue === We;
            {
              const Oe = I(ee.whenTrue, Be).line, Me = ac(Be, ee.whenTrue.end).line;
              return We === Oe && Me === Ue;
            }
          }
          return !1;
        }
        e.childIsUnindentedBranchOfConditionalExpression = B;
        function V(ee, $e, Ue, Be) {
          if (ig(ee)) {
            if (!ee.arguments)
              return !1;
            const We = cn(ee.arguments, (He) => He.pos === $e.pos);
            if (!We)
              return !1;
            const Oe = ee.arguments.indexOf(We);
            if (Oe === 0)
              return !1;
            const Me = ee.arguments[Oe - 1], Xe = ac(Be, Me.getEnd()).line;
            if (Ue === Xe)
              return !0;
          }
          return !1;
        }
        e.argumentStartsOnSameLineAsPreviousArgument = V;
        function H(ee, $e) {
          return ee.parent && X(ee.getStart($e), ee.getEnd(), ee.parent, $e);
        }
        e.getContainingList = H;
        function te(ee, $e, Ue) {
          return $e && X(ee, ee, $e, Ue);
        }
        function X(ee, $e, Ue, Be) {
          switch (Ue.kind) {
            case 180:
              return We(Ue.typeArguments);
            case 207:
              return We(Ue.properties);
            case 206:
              return We(Ue.elements);
            case 184:
              return We(Ue.members);
            case 259:
            case 215:
            case 216:
            case 171:
            case 170:
            case 176:
            case 173:
            case 182:
            case 177:
              return We(Ue.typeParameters) || We(Ue.parameters);
            case 174:
              return We(Ue.parameters);
            case 260:
            case 228:
            case 261:
            case 262:
            case 348:
              return We(Ue.typeParameters);
            case 211:
            case 210:
              return We(Ue.typeArguments) || We(Ue.arguments);
            case 258:
              return We(Ue.declarations);
            case 272:
            case 276:
              return We(Ue.elements);
            case 203:
            case 204:
              return We(Ue.elements);
          }
          function We(Oe) {
            return Oe && z8(Y(Ue, Oe, Be), ee, $e) ? Oe : void 0;
          }
        }
        function Y(ee, $e, Ue) {
          const Be = ee.getChildren(Ue);
          for (let We = 1; We < Be.length - 1; We++)
            if (Be[We].pos === $e.pos && Be[We].end === $e.end)
              return { pos: Be[We - 1].end, end: Be[We + 1].getStart(Ue) };
          return $e;
        }
        function P(ee, $e, Ue) {
          return ee ? ye($e.getLineAndCharacterOfPosition(ee.pos), $e, Ue) : -1;
        }
        function de(ee, $e, Ue, Be) {
          if (ee.parent && ee.parent.kind === 258)
            return -1;
          const We = H(ee, $e);
          if (We) {
            const Oe = We.indexOf(ee);
            if (Oe !== -1) {
              const Me = ne(We, Oe, $e, Ue);
              if (Me !== -1)
                return Me;
            }
            return P(We, $e, Ue) + (Be ? Ue.indentSize : 0);
          }
          return -1;
        }
        function ne(ee, $e, Ue, Be) {
          D.assert($e >= 0 && $e < ee.length);
          const We = ee[$e];
          let Oe = I(We, Ue);
          for (let Me = $e - 1; Me >= 0; Me--) {
            if (ee[Me].kind === 27)
              continue;
            if (Ue.getLineAndCharacterOfPosition(ee[Me].end).line !== Oe.line)
              return ye(Oe, Ue, Be);
            Oe = I(ee[Me], Ue);
          }
          return -1;
        }
        function ye(ee, $e, Ue) {
          const Be = $e.getPositionOfLineAndCharacter(ee.line, 0);
          return W(Be, Be + ee.character, $e, Ue);
        }
        function ie(ee, $e, Ue, Be) {
          let We = 0, Oe = 0;
          for (let Me = ee; Me < $e; Me++) {
            const Xe = Ue.text.charCodeAt(Me);
            if (!Im(Xe))
              break;
            Xe === 9 ? Oe += Be.tabSize + Oe % Be.tabSize : Oe++, We++;
          }
          return { column: Oe, character: We };
        }
        e.findFirstNonWhitespaceCharacterAndColumn = ie;
        function W(ee, $e, Ue, Be) {
          return ie(ee, $e, Ue, Be).column;
        }
        e.findFirstNonWhitespaceColumn = W;
        function ce(ee, $e, Ue, Be, We) {
          const Oe = Ue ? Ue.kind : 0;
          switch ($e.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, Ue);
              if ($e.kind === 223 && Be && Ue && Oe === 281) {
                const Me = Be.getLineAndCharacterOfPosition(zo(Be.text, $e.pos)).line, Xe = Be.getLineAndCharacterOfPosition(zo(Be.text, Ue.pos)).line;
                return Me !== Xe;
              }
              if ($e.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, Ue) : Oe !== 238;
            case 275:
              return Oe !== 276;
            case 269:
              return Oe !== 270 || !!Ue.namedBindings && Ue.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 We;
        }
        e.nodeWillIndentChild = ce;
        function pe(ee, $e) {
          switch (ee) {
            case 250:
            case 254:
            case 248:
            case 249:
              return $e.kind !== 238;
            default:
              return !1;
          }
        }
        function ve(ee, $e, Ue, Be, We = !1) {
          return ce(ee, $e, Ue, Be, !1) && !(We && Ue && pe(Ue.kind, $e));
        }
        e.shouldIndentChildNode = ve;
        function Te(ee, $e) {
          const Ue = zo(ee.text, $e.pos), Be = ee.getLineAndCharacterOfPosition(Ue).line, We = ee.getLineAndCharacterOfPosition($e.end).line;
          return Be === We;
        }
      })(xp || (xp = {}));
    }
  }), xl = {};
  le(xl, {
    FormattingContext: () => Fne,
    FormattingRequestKind: () => Mne,
    RuleAction: () => Gne,
    RuleFlags: () => Une,
    SmartIndenter: () => xp,
    anyContext: () => Z6,
    createTextRangeWithKind: () => aU,
    formatDocument: () => OXe,
    formatNodeGivenIndentation: () => VXe,
    formatOnClosingCurly: () => NXe,
    formatOnEnter: () => wXe,
    formatOnOpeningCurly: () => RXe,
    formatOnSemicolon: () => DXe,
    formatSelection: () => PXe,
    getAllRules: () => R2e,
    getFormatContext: () => EXe,
    getFormattingScanner: () => Bne,
    getIndentationString: () => Zne,
    getRangeOfEnclosingComment: () => nAe
  });
  var qw = C({
    "src/services/_namespaces/ts.formatting.ts"() {
      WKe(), zKe(), qKe(), bXe(), kXe(), WXe(), zXe();
    }
  }), Xr = C({
    "src/services/_namespaces/ts.ts"() {
      wa(), EF(), l5e(), F5e(), V5e(), Z5e(), eFe(), tFe(), cFe(), yFe(), vFe(), EFe(), kFe(), DFe(), r9e(), a9e(), c9e(), d9e(), D9e(), j9e(), vo(), xte(), WSe(), QHe(), rWe(), EWe(), o0e(), I0e(), VWe(), XWe(), kh(), JJe(), vKe(), LKe(), wKe(), HKe(), qw();
    }
  });
  function qXe() {
    return tre ?? (tre = new R_(De));
  }
  function rAe(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 ? ` ${vh(o, [e], 0)}` : "", s;
  }
  function JXe(e, t, r, i) {
    const o = rAe(e, !0, t, r, i);
    return () => {
      throw new TypeError(o);
    };
  }
  function KXe(e, t, r, i) {
    let o = !1;
    return () => {
      iAe && !o && (D.log.warn(rAe(e, !1, t, r, i)), o = !0);
    };
  }
  function XXe(e, t = {}) {
    var r, i;
    const o = typeof t.typeScriptVersion == "string" ? new R_(t.typeScriptVersion) : (r = t.typeScriptVersion) != null ? r : qXe(), s = typeof t.errorAfter == "string" ? new R_(t.errorAfter) : t.errorAfter, l = typeof t.warnAfter == "string" ? new R_(t.warnAfter) : t.warnAfter, f = typeof t.since == "string" ? new R_(t.since) : (i = t.since) != null ? i : l, d = t.error || s && o.compareTo(s) >= 0, y = !l || o.compareTo(l) >= 0;
    return d ? JXe(e, s, f, t.message) : y ? KXe(e, s, f, t.message) : io;
  }
  function YXe(e, t) {
    return function() {
      return e(), t.apply(this, arguments);
    };
  }
  function ere(e, t) {
    var r;
    const i = XXe((r = t == null ? void 0 : t.name) != null ? r : D.getFunctionName(e), t);
    return YXe(i, e);
  }
  var iAe, tre, aAe = C({
    "src/deprecatedCompat/deprecate.ts"() {
      sU(), iAe = !0;
    }
  });
  function nre(e, t, r, i) {
    if (Object.defineProperty(s, "name", { ...Object.getOwnPropertyDescriptor(s, "name"), value: e }), i)
      for (const l of Object.keys(i)) {
        const f = +l;
        !isNaN(f) && Rs(t, `${f}`) && (t[f] = ere(t[f], { ...i[f], name: e }));
      }
    const o = $Xe(t, r);
    return s;
    function s(...l) {
      const f = o(l), d = f !== void 0 ? t[f] : void 0;
      if (typeof d == "function")
        return d(...l);
      throw new TypeError("Invalid arguments");
    }
  }
  function $Xe(e, t) {
    return (r) => {
      for (let i = 0; Rs(e, `${i}`) && Rs(t, `${i}`); i++) {
        const o = t[i];
        if (o(r))
          return i;
      }
    };
  }
  function QXe(e) {
    return {
      overload: (t) => ({
        bind: (r) => ({
          finish: () => nre(e, t, r),
          deprecate: (i) => ({
            finish: () => nre(e, t, r, i)
          })
        })
      })
    };
  }
  var ZXe = C({
    "src/deprecatedCompat/deprecations.ts"() {
      sU(), aAe();
    }
  }), eYe = C({
    "src/deprecatedCompat/5.0/identifierProperties.ts"() {
      sU(), aAe(), lde((e) => {
        const t = e.getIdentifierConstructor();
        Rs(t.prototype, "originalKeywordKind") || Object.defineProperty(t.prototype, "originalKeywordKind", {
          get: ere(function() {
            return G0(this);
          }, {
            name: "originalKeywordKind",
            since: "5.0",
            warnAfter: "5.1",
            errorAfter: "5.2",
            message: "Use 'identifierToKeywordKind(identifier)' instead."
          })
        }), Rs(t.prototype, "isInJSDocNamespace") || Object.defineProperty(t.prototype, "isInJSDocNamespace", {
          get: ere(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."
          })
        });
      });
    }
  }), sU = C({
    "src/deprecatedCompat/_namespaces/ts.ts"() {
      wa(), ZXe(), eYe();
    }
  }), oAe = {};
  le(oAe, {
    ANONYMOUS: () => _9,
    AccessFlags: () => Zj,
    AssertionLevel: () => Sj,
    AssignmentDeclarationKind: () => sH,
    AssignmentKind: () => Tq,
    Associativity: () => xq,
    BreakpointResolver: () => YQ,
    BuilderFileEmit: () => ZX,
    BuilderProgramKind: () => eY,
    BuilderState: () => qm,
    BundleFileSectionKind: () => CH,
    CallHierarchy: () => Xx,
    CharacterCodes: () => vH,
    CheckFlags: () => Kj,
    CheckMode: () => D5,
    ClassificationType: () => a$,
    ClassificationTypeNames: () => i$,
    CommentDirectiveType: () => Rj,
    Comparison: () => et,
    CompletionInfoFlags: () => $Y,
    CompletionTriggerKind: () => qY,
    Completions: () => t2,
    ConfigFileProgramReloadLevel: () => xX,
    ContextFlags: () => Gj,
    CoreServicesShimHostAdapter: () => XQ,
    Debug: () => D,
    DiagnosticCategory: () => pR,
    Diagnostics: () => _,
    DocumentHighlights: () => h9,
    ElementFlags: () => Qj,
    EmitFlags: () => iM,
    EmitHint: () => SH,
    EmitOnly: () => Oj,
    EndOfLineState: () => e$,
    EnumKind: () => Jj,
    ExitStatus: () => Mj,
    ExportKind: () => uQ,
    Extension: () => bH,
    ExternalEmitHelpers: () => TH,
    FileIncludeKind: () => Y4,
    FilePreprocessingDiagnosticsKind: () => Nj,
    FileSystemEntryKind: () => RH,
    FileWatcherEventKind: () => wH,
    FindAllReferences: () => lc,
    FlattenLevel: () => iX,
    FlowFlags: () => _R,
    ForegroundColorEscapeSequences: () => UX,
    FunctionFlags: () => Sq,
    GeneratedIdentifierFlags: () => X4,
    GetLiteralTextFlags: () => vq,
    GoToDefinition: () => kw,
    HighlightSpanKind: () => KY,
    ImportKind: () => lQ,
    ImportsNotUsedAsValues: () => _H,
    IndentStyle: () => XY,
    IndexKind: () => nH,
    InferenceFlags: () => aH,
    InferencePriority: () => iH,
    InlayHintKind: () => JY,
    InlayHints: () => Bte,
    InternalEmitFlags: () => EH,
    InternalSymbolName: () => Xj,
    InvalidatedProjectKind: () => DY,
    JsDoc: () => sb,
    JsTyping: () => jT,
    JsxEmit: () => fH,
    JsxFlags: () => wj,
    JsxReferenceKind: () => eH,
    LanguageServiceMode: () => HY,
    LanguageServiceShimHostAdapter: () => KQ,
    LanguageVariant: () => gH,
    LexicalEnvironmentFlags: () => AH,
    ListFormat: () => LH,
    LogLevel: () => Aj,
    MemberOverrideStatus: () => Fj,
    ModifierFlags: () => J4,
    ModuleDetectionKind: () => cH,
    ModuleInstanceState: () => NK,
    ModuleKind: () => tM,
    ModuleResolutionKind: () => mR,
    ModuleSpecifierEnding: () => Pq,
    NavigateTo: () => a0e,
    NavigationBar: () => L0e,
    NewLineKind: () => pH,
    NodeBuilderFlags: () => Uj,
    NodeCheckFlags: () => Yj,
    NodeFactoryFlags: () => Vq,
    NodeFlags: () => q4,
    NodeResolutionFeatures: () => DK,
    ObjectFlags: () => Z4,
    OperationCanceledException: () => oI,
    OperatorPrecedence: () => Aq,
    OrganizeImports: () => X_,
    OrganizeImportsMode: () => zY,
    OuterExpressionKinds: () => xH,
    OutliningElementsCollector: () => Xte,
    OutliningSpanKind: () => QY,
    OutputFileType: () => ZY,
    PackageJsonAutoImportPreference: () => jY,
    PackageJsonDependencyGroup: () => VY,
    PatternMatchKind: () => b9,
    PollingInterval: () => aM,
    PollingWatchKind: () => dH,
    PragmaKindFlags: () => IH,
    PrivateIdentifierKind: () => $q,
    ProcessLevel: () => cX,
    QuotePreference: () => aQ,
    RelationComparisonResult: () => K4,
    Rename: () => YG,
    ScriptElementKind: () => n$,
    ScriptElementKindModifier: () => r$,
    ScriptKind: () => mH,
    ScriptSnapshot: () => UY,
    ScriptTarget: () => hH,
    SemanticClassificationFormat: () => WY,
    SemanticMeaning: () => iQ,
    SemicolonPreference: () => YY,
    SignatureCheckMode: () => R5,
    SignatureFlags: () => eM,
    SignatureHelp: () => $6,
    SignatureKind: () => tH,
    SmartSelectionRange: () => Cne,
    SnippetKind: () => rM,
    SortKind: () => Ej,
    StructureIsReused: () => Pj,
    SymbolAccessibility: () => Hj,
    SymbolDisplay: () => wy,
    SymbolDisplayPartKind: () => G8,
    SymbolFlags: () => $4,
    SymbolFormatFlags: () => jj,
    SyntaxKind: () => z4,
    SyntheticSymbolKind: () => Wj,
    Ternary: () => oH,
    ThrottledCancellationToken: () => HQ,
    TokenClass: () => t$,
    TokenFlags: () => Dj,
    TransformFlags: () => nM,
    TypeFacts: () => k5,
    TypeFlags: () => Q4,
    TypeFormatFlags: () => Vj,
    TypeMapKind: () => rH,
    TypePredicateKind: () => zj,
    TypeReferenceSerializationKind: () => qj,
    TypeScriptServicesFactory: () => $0e,
    UnionReduction: () => Bj,
    UpToDateStatusType: () => hY,
    VarianceFlags: () => $j,
    Version: () => R_,
    VersionRange: () => mA,
    WatchDirectoryFlags: () => yH,
    WatchDirectoryKind: () => uH,
    WatchFileKind: () => lH,
    WatchLogLevel: () => AX,
    WatchType: () => y_,
    accessPrivateIdentifier: () => Kme,
    addEmitFlags: () => $p,
    addEmitHelper: () => hx,
    addEmitHelpers: () => yy,
    addInternalEmitFlags: () => mx,
    addNodeFactoryPatcher: () => m6e,
    addObjectAllocatorPatcher: () => lde,
    addRange: () => bi,
    addRelatedInfo: () => qo,
    addSyntheticLeadingComment: () => pO,
    addSyntheticTrailingComment: () => Y3,
    addToSeen: () => hp,
    advancedAsyncSuperHelper: () => vO,
    affectsDeclarationPathOptionDeclarations: () => lK,
    affectsEmitOptionDeclarations: () => cK,
    allKeysStartWithDot: () => b5,
    altDirectorySeparator: () => CR,
    and: () => P4,
    append: () => Bn,
    appendIfUnique: () => ry,
    arrayFrom: () => Do,
    arrayIsEqualTo: () => Vp,
    arrayIsHomogeneous: () => Ode,
    arrayIsSorted: () => cse,
    arrayOf: () => fse,
    arrayReverseIterator: () => hNe,
    arrayToMap: () => t1,
    arrayToMultiMap: () => aR,
    arrayToNumericMap: () => pse,
    arraysEqual: () => Qs,
    assertType: () => ANe,
    assign: () => iR,
    assignHelper: () => r7,
    asyncDelegator: () => a7,
    asyncGeneratorHelper: () => i7,
    asyncSuperHelper: () => yO,
    asyncValues: () => o7,
    attachFileToDiagnostics: () => dx,
    awaitHelper: () => gx,
    awaiterHelper: () => c7,
    base64decode: () => Zue,
    base64encode: () => Que,
    binarySearch: () => pv,
    binarySearchKey: () => OS,
    bindSourceFile: () => ame,
    breakIntoCharacterSpans: () => Uve,
    breakIntoWordSpans: () => Vve,
    buildLinkParts: () => Xye,
    buildOpts: () => o5,
    buildOverload: () => QXe,
    bundlerModuleNameResolver: () => Vpe,
    canBeConvertedToAsync: () => CQ,
    canHaveDecorators: () => Px,
    canHaveExportModifier: () => nO,
    canHaveFlowNode: () => bN,
    canHaveIllegalDecorators: () => DJ,
    canHaveIllegalModifiers: () => a_e,
    canHaveIllegalType: () => aPe,
    canHaveIllegalTypeParameters: () => i_e,
    canHaveJSDoc: () => EN,
    canHaveLocals: () => wm,
    canHaveModifiers: () => q_,
    canHaveSymbol: () => km,
    canJsonReportNoInputFiles: () => XO,
    canProduceDiagnostics: () => j5,
    canUsePropertyAccess: () => mq,
    canWatchDirectoryOrFile: () => D8,
    cartesianProduct: () => kse,
    cast: () => ro,
    chainBundle: () => J_,
    chainDiagnosticMessages: () => ka,
    changeAnyExtension: () => MH,
    changeCompilerHostLikeToUseCache: () => C8,
    changeExtension: () => I1,
    changesAffectModuleResolution: () => CW,
    changesAffectingProgramStructure: () => xle,
    childIsDecorated: () => OI,
    classElementOrClassElementParameterIsDecorated: () => $W,
    classOrConstructorParameterIsDecorated: () => b1,
    classPrivateFieldGetHelper: () => b7,
    classPrivateFieldInHelper: () => T7,
    classPrivateFieldSetHelper: () => E7,
    classicNameResolver: () => rme,
    classifier: () => U9,
    cleanExtendedConfigCache: () => SX,
    clear: () => co,
    clearMap: () => Xf,
    clearSharedExtendedConfigFileWatcher: () => Ohe,
    climbPastPropertyAccess: () => xF,
    climbPastPropertyOrElementAccess: () => pye,
    clone: () => _j,
    cloneCompilerOptions: () => Nye,
    closeFileWatcher: () => Fm,
    closeFileWatcherOf: () => zm,
    codefix: () => Gu,
    collapseTextChangeRangesAcrossMultipleVersions: () => IOe,
    collectExternalModuleInfo: () => YK,
    combine: () => _A,
    combinePaths: () => Pi,
    commentPragmas: () => hR,
    commonOptionsWithBuild: () => n8,
    commonPackageFolders: () => Iq,
    compact: () => nR,
    compareBooleans: () => i1,
    compareDataObjects: () => Hz,
    compareDiagnostics: () => ik,
    compareDiagnosticsSkipRelatedInformation: () => C3,
    compareEmitHelpers: () => bfe,
    compareNumberOfDirectorySeparators: () => $N,
    comparePaths: () => QE,
    comparePathsCaseInsensitive: () => yOe,
    comparePathsCaseSensitive: () => gOe,
    comparePatternKeys: () => LK,
    compareProperties: () => Sse,
    compareStringsCaseInsensitive: () => D4,
    compareStringsCaseInsensitiveEslintCompatible: () => bse,
    compareStringsCaseSensitive: () => ku,
    compareStringsCaseSensitiveUI: () => sR,
    compareTextSpans: () => w4,
    compareValues: () => Vs,
    compileOnSaveCommandLineOption: () => QO,
    compilerOptionsAffectDeclarationPath: () => Sde,
    compilerOptionsAffectEmit: () => Tde,
    compilerOptionsAffectSemanticDiagnostics: () => Ede,
    compilerOptionsDidYouMeanDiagnostics: () => i8,
    compilerOptionsIndicateEsModules: () => D$,
    compose: () => TNe,
    computeCommonSourceDirectoryOfFilenames: () => Ghe,
    computeLineAndCharacterOfPosition: () => wR,
    computeLineOfPosition: () => uI,
    computeLineStarts: () => IR,
    computePositionOfLineAndCharacter: () => VH,
    computeSignature: () => UT,
    computeSignatureWithDiagnostics: () => KX,
    computeSuggestionDiagnostics: () => SQ,
    concatenate: () => ma,
    concatenateDiagnosticMessageChains: () => pde,
    consumesNodeCoreModules: () => a9,
    contains: () => wi,
    containsIgnoredPath: () => fk,
    containsObjectRestOrSpread: () => GO,
    containsParseError: () => YR,
    containsPath: () => gv,
    convertCompilerOptionsForTelemetry: () => f4e,
    convertCompilerOptionsFromJson: () => a4e,
    convertJsonOption: () => YO,
    convertToBase64: () => $ue,
    convertToObject: () => epe,
    convertToObjectWorker: () => JO,
    convertToOptionsWithAbsolutePaths: () => XJ,
    convertToRelativePath: () => cI,
    convertToTSConfig: () => zPe,
    convertTypeAcquisitionFromJson: () => o4e,
    copyComments: () => JT,
    copyEntries: () => KR,
    copyLeadingComments: () => KC,
    copyProperties: () => pj,
    copyTrailingAsLeadingComments: () => o6,
    copyTrailingComments: () => fw,
    couldStartTrivia: () => _ce,
    countWhere: () => Zi,
    createAbstractBuilder: () => _7e,
    createAccessorPropertyBackingField: () => NJ,
    createAccessorPropertyGetRedirector: () => p_e,
    createAccessorPropertySetRedirector: () => m_e,
    createBaseNodeFactory: () => rfe,
    createBinaryExpressionTrampoline: () => W7,
    createBindingHelper: () => dC,
    createBuildInfo: () => S8,
    createBuilderProgram: () => XX,
    createBuilderProgramUsingProgramBuildInfo: () => cge,
    createBuilderStatusReporter: () => Tge,
    createCacheWithRedirects: () => vK,
    createCacheableExportInfoMap: () => vve,
    createCachedDirectoryStructureHost: () => Nhe,
    createClassifier: () => Tve,
    createCommentDirectivesMap: () => Ple,
    createCompilerDiagnostic: () => Os,
    createCompilerDiagnosticForInvalidCustomType: () => UJ,
    createCompilerDiagnosticFromMessageChain: () => A3,
    createCompilerHost: () => Uhe,
    createCompilerHostFromProgramHost: () => dY,
    createCompilerHostWorker: () => IX,
    createDetachedDiagnostic: () => tC,
    createDiagnosticCollection: () => XA,
    createDiagnosticForFileFromMessageChain: () => WW,
    createDiagnosticForNode: () => Rr,
    createDiagnosticForNodeArray: () => RA,
    createDiagnosticForNodeArrayFromMessageChain: () => eN,
    createDiagnosticForNodeFromMessageChain: () => ag,
    createDiagnosticForNodeInSourceFile: () => od,
    createDiagnosticForRange: () => zW,
    createDiagnosticMessageChainFromDiagnostic: () => zle,
    createDiagnosticReporter: () => R8,
    createDocumentPositionMapper: () => Ume,
    createDocumentRegistry: () => _Q,
    createDocumentRegistryInternal: () => kve,
    createEmitAndSemanticDiagnosticsBuilderProgram: () => tY,
    createEmitHelperFactory: () => vfe,
    createEmptyExports: () => RO,
    createExpressionForJsxElement: () => Xfe,
    createExpressionForJsxFragment: () => Yfe,
    createExpressionForObjectLiteralElementLike: () => $fe,
    createExpressionForPropertyName: () => AJ,
    createExpressionFromEntityName: () => NO,
    createExternalHelpersImportDeclarationIfNeeded: () => IJ,
    createFileDiagnostic: () => Il,
    createFileDiagnosticFromMessageChain: () => VM,
    createForOfBindingStatement: () => xJ,
    createGetCanonicalFileName: () => Zl,
    createGetSourceFile: () => CX,
    createGetSymbolAccessibilityDiagnosticForNode: () => xy,
    createGetSymbolAccessibilityDiagnosticForNodeName: () => yhe,
    createGetSymbolWalker: () => lme,
    createIncrementalCompilerHost: () => pY,
    createIncrementalProgram: () => Ege,
    createInputFiles: () => T6e,
    createInputFilesWithFilePaths: () => Gq,
    createInputFilesWithFileTexts: () => Uq,
    createJsxFactoryExpression: () => SJ,
    createLanguageService: () => M0e,
    createLanguageServiceSourceFile: () => w9,
    createMemberAccessForPropertyName: () => DT,
    createModeAwareCache: () => OT,
    createModeAwareCacheKey: () => Vk,
    createModuleResolutionCache: () => p5,
    createModuleResolutionLoader: () => OX,
    createModuleSpecifierResolutionHost: () => Hx,
    createMultiMap: () => l_,
    createNodeConverters: () => afe,
    createNodeFactory: () => cO,
    createOptionNameMap: () => Y7,
    createOverload: () => nre,
    createPackageJsonImportFilter: () => mw,
    createPackageJsonInfo: () => sve,
    createParenthesizerRules: () => ife,
    createPatternMatcher: () => Ove,
    createPrependNodes: () => BX,
    createPrinter: () => H1,
    createPrinterWithDefaults: () => bX,
    createPrinterWithRemoveComments: () => W1,
    createPrinterWithRemoveCommentsNeverAsciiEscape: () => EX,
    createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => x8,
    createProgram: () => Z5,
    createProgramHost: () => fY,
    createPropertyNameNodeForIdentifierOrLiteral: () => G3,
    createQueue: () => mj,
    createRange: () => __,
    createRedirectedBuilderProgram: () => QX,
    createResolutionCache: () => lge,
    createRuntimeTypeSerializer: () => Zme,
    createScanner: () => cy,
    createSemanticDiagnosticsBuilderProgram: () => f7e,
    createSet: () => bNe,
    createSolutionBuilder: () => w7e,
    createSolutionBuilderHost: () => L7e,
    createSolutionBuilderWithWatch: () => D7e,
    createSolutionBuilderWithWatchHost: () => I7e,
    createSortedArray: () => cj,
    createSourceFile: () => jO,
    createSourceMapGenerator: () => Nme,
    createSourceMapSource: () => S6e,
    createSuperAccessVariableStatement: () => V5,
    createSymbolTable: () => ao,
    createSymlinkCache: () => xde,
    createSystemWatchFunctions: () => oce,
    createTextChange: () => Y8,
    createTextChangeFromStartLength: () => FF,
    createTextChangeRange: () => PR,
    createTextRangeFromNode: () => I$,
    createTextRangeFromSpan: () => MF,
    createTextSpan: () => Ll,
    createTextSpanFromBounds: () => _l,
    createTextSpanFromNode: () => Zu,
    createTextSpanFromRange: () => jv,
    createTextSpanFromStringLiteralLikeContent: () => L$,
    createTextWriter: () => PN,
    createTokenRange: () => Gz,
    createTypeChecker: () => Cme,
    createTypeReferenceDirectiveResolutionCache: () => m5,
    createTypeReferenceResolutionLoader: () => $5,
    createUnderscoreEscapedMultiMap: () => hse,
    createUnparsedSourceFile: () => Bq,
    createWatchCompilerHost: () => T7e,
    createWatchCompilerHostOfConfigFile: () => vge,
    createWatchCompilerHostOfFilesAndCompilerOptions: () => bge,
    createWatchFactory: () => uY,
    createWatchHost: () => lY,
    createWatchProgram: () => S7e,
    createWatchStatusReporter: () => dge,
    createWriteFileMeasuringIO: () => LX,
    declarationNameToString: () => Ls,
    decodeMappings: () => JK,
    decodedTextSpanIntersectsWith: () => hM,
    decorateHelper: () => Q3,
    deduplicate: () => fA,
    defaultIncludeSpec: () => l5,
    defaultInitCompilerOptions: () => c5,
    defaultMaximumTruncationLength: () => aO,
    detectSortCaseSensitivity: () => L4,
    diagnosticCategoryName: () => W4,
    diagnosticToString: () => zx,
    directoryProbablyExists: () => Kp,
    directorySeparator: () => Ns,
    displayPart: () => Ad,
    displayPartsToString: () => N0e,
    disposeEmitNodes: () => Wq,
    documentSpansEqual: () => A5e,
    dumpTracingLegend: () => Qse,
    elementAt: () => oy,
    elideNodes: () => __e,
    emitComments: () => Bue,
    emitDetachedComments: () => Gue,
    emitFiles: () => W5,
    emitFilesAndReportErrors: () => fF,
    emitFilesAndReportErrorsAndGetExitStatus: () => hge,
    emitModuleKindIsNonNodeESM: () => Xz,
    emitNewLineBeforeLeadingCommentOfPosition: () => Fue,
    emitNewLineBeforeLeadingComments: () => Pue,
    emitNewLineBeforeLeadingCommentsOfPosition: () => Mue,
    emitSkippedWithNoDiagnostics: () => sF,
    emitUsingBuildInfo: () => Rhe,
    emptyArray: () => rt,
    emptyFileSystemEntries: () => K3,
    emptyMap: () => B4,
    emptyOptions: () => rm,
    emptySet: () => Rse,
    endsWith: () => tl,
    ensurePathIsNonModuleName: () => u1,
    ensureScriptKind: () => O3,
    ensureTrailingDirectorySeparator: () => wu,
    entityNameToString: () => Ef,
    enumerateInsertsAndDeletes: () => Ise,
    equalOwnProperties: () => _se,
    equateStringsCaseInsensitive: () => MS,
    equateStringsCaseSensitive: () => FS,
    equateValues: () => M0,
    esDecorateHelper: () => t7,
    escapeJsxAttributeString: () => bz,
    escapeLeadingUnderscores: () => oc,
    escapeNonAsciiString: () => NN,
    escapeSnippetText: () => ST,
    escapeString: () => ax,
    every: () => Rn,
    expandPreOrPostfixIncrementOrDecrementExpression: () => B7,
    explainFiles: () => mge,
    explainIfFileIsRedirectAndImpliedFormat: () => aY,
    exportAssignmentIsAlias: () => zA,
    exportStarHelper: () => v7,
    expressionResultIsUnused: () => Mde,
    extend: () => k4,
    extendsHelper: () => l7,
    extensionFromPath: () => eO,
    extensionIsTS: () => M3,
    externalHelpersModuleNameText: () => Y0,
    factory: () => N,
    fileExtensionIs: () => sl,
    fileExtensionIsOneOf: () => bl,
    fileIncludeReasonToDiagnostics: () => cY,
    filter: () => yn,
    filterMutate: () => ki,
    filterSemanticDiagnostics: () => eF,
    find: () => cn,
    findAncestor: () => rr,
    findBestPatternMatch: () => yj,
    findChildOfKind: () => gs,
    findComputedPropertyNameCacheAssignment: () => q7,
    findConfigFile: () => Bhe,
    findContainingList: () => kF,
    findDiagnosticForNode: () => lve,
    findFirstNonJsxWhitespaceToken: () => xye,
    findIndex: () => Qi,
    findLast: () => $i,
    findLastIndex: () => ts,
    findListItemInfo: () => yye,
    findMap: () => rd,
    findModifier: () => zC,
    findNextToken: () => zT,
    findPackageJson: () => ave,
    findPackageJsons: () => $$,
    findPrecedingMatchingToken: () => OF,
    findPrecedingToken: () => Sl,
    findSuperStatementIndex: () => B5,
    findTokenOnLeftOfPosition: () => RF,
    findUseStrictPrologue: () => LJ,
    first: () => ss,
    firstDefined: () => sn,
    firstDefinedIterator: () => Hn,
    firstIterator: () => dse,
    firstOrOnly: () => eQ,
    firstOrUndefined: () => zl,
    firstOrUndefinedIterator: () => I4,
    fixupCompilerOptions: () => LQ,
    flatMap: () => wo,
    flatMapIterator: () => O0,
    flatMapToMutable: () => Zb,
    flatten: () => id,
    flattenCommaList: () => h_e,
    flattenDestructuringAssignment: () => FT,
    flattenDestructuringBinding: () => V1,
    flattenDiagnosticMessageText: () => Uv,
    forEach: () => ze,
    forEachAncestor: () => Ale,
    forEachAncestorDirectory: () => Zh,
    forEachChild: () => Ra,
    forEachChildRecursively: () => VO,
    forEachEmittedFile: () => hX,
    forEachEnclosingBlockScopeContainer: () => Hle,
    forEachEntry: () => tf,
    forEachExternalModuleToImportFrom: () => cQ,
    forEachImportClauseDeclaration: () => l3,
    forEachKey: () => LI,
    forEachLeadingCommentRange: () => DR,
    forEachNameInAccessChainWalkingLeft: () => G8e,
    forEachResolvedProjectReference: () => Whe,
    forEachReturnStatement: () => lT,
    forEachRight: () => Zt,
    forEachTrailingCommentRange: () => RR,
    forEachUnique: () => P$,
    forEachYieldExpression: () => Jle,
    forSomeAncestorDirectory: () => B8e,
    formatColorAndReset: () => z1,
    formatDiagnostic: () => kX,
    formatDiagnostics: () => W3e,
    formatDiagnosticsWithColorAndContext: () => Hhe,
    formatGeneratedName: () => RT,
    formatGeneratedNamePart: () => IC,
    formatLocation: () => wX,
    formatMessage: () => Kz,
    formatStringFromArgs: () => vh,
    formatting: () => xl,
    fullTripleSlashAMDReferencePathRegEx: () => Eq,
    fullTripleSlashReferencePathRegEx: () => bq,
    generateDjb2Hash: () => gR,
    generateTSConfig: () => YPe,
    generatorHelper: () => h7,
    getAdjustedReferenceLocation: () => g$,
    getAdjustedRenameLocation: () => DF,
    getAliasDeclarationFromName: () => dz,
    getAllAccessorDeclarations: () => vT,
    getAllDecoratorsOfClass: () => eX,
    getAllDecoratorsOfClassElement: () => U5,
    getAllJSDocTags: () => tW,
    getAllJSDocTagsOfKind: () => FOe,
    getAllKeys: () => gNe,
    getAllProjectOutputs: () => H5,
    getAllSuperTypeNodes: () => GI,
    getAllUnscopedEmitHelpers: () => Yq,
    getAllowJSCompilerOption: () => JN,
    getAllowSyntheticDefaultImports: () => ET,
    getAncestor: () => z0,
    getAnyExtensionFromPath: () => oM,
    getAreDeclarationMapsEnabled: () => k3,
    getAssignedExpandoInitializer: () => QS,
    getAssignedName: () => YH,
    getAssignmentDeclarationKind: () => Ac,
    getAssignmentDeclarationPropertyAccessKind: () => _N,
    getAssignmentTargetKind: () => pT,
    getAutomaticTypeDirectiveNames: () => _5,
    getBaseFileName: () => du,
    getBinaryOperatorPrecedence: () => DN,
    getBuildInfo: () => z5,
    getBuildInfoFileVersionMap: () => $X,
    getBuildInfoText: () => Dhe,
    getBuildOrderFromAnyBuildOrder: () => gF,
    getBuilderCreationParameters: () => lF,
    getBuilderFileEmit: () => Vv,
    getCheckFlags: () => Cc,
    getClassExtendsHeritageElement: () => T1,
    getClassLikeDeclarationOfSymbol: () => dg,
    getCombinedLocalAndExportSymbolFlags: () => ek,
    getCombinedModifierFlags: () => uy,
    getCombinedNodeFlags: () => _p,
    getCombinedNodeFlagsAlwaysIncludeJSDoc: () => KH,
    getCommentRange: () => Gm,
    getCommonSourceDirectory: () => T8,
    getCommonSourceDirectoryOfConfig: () => ew,
    getCompilerOptionValue: () => w3,
    getCompilerOptionsDiffValue: () => XPe,
    getConditions: () => PC,
    getConfigFileParsingDiagnostics: () => GT,
    getConstantValue: () => ffe,
    getContainerNode: () => WT,
    getContainingClass: () => Tl,
    getContainingClassStaticBlock: () => s8e,
    getContainingFunction: () => Tf,
    getContainingFunctionDeclaration: () => tue,
    getContainingFunctionOrClassStaticBlock: () => YM,
    getContainingNodeArray: () => Fde,
    getContainingObjectLiteralElement: () => p6,
    getContextualTypeFromParent: () => XF,
    getContextualTypeFromParentOrAncestorTypeNode: () => wF,
    getCurrentTime: () => P8,
    getDeclarationDiagnostics: () => vhe,
    getDeclarationEmitExtensionForPath: () => xz,
    getDeclarationEmitOutputFilePath: () => kue,
    getDeclarationEmitOutputFilePathWorker: () => Sz,
    getDeclarationFromName: () => xN,
    getDeclarationModifierFlagsFromSymbol: () => Kf,
    getDeclarationOfKind: () => Sc,
    getDeclarationsOfKind: () => Tle,
    getDeclaredExpandoInitializer: () => lN,
    getDecorators: () => vv,
    getDefaultCompilerOptions: () => k9,
    getDefaultExportInfoWorker: () => m9,
    getDefaultFormatCodeSettings: () => lye,
    getDefaultLibFileName: () => _M,
    getDefaultLibFilePath: () => n9e,
    getDefaultLikeExportInfo: () => p9,
    getDiagnosticText: () => HPe,
    getDiagnosticsWithinSpan: () => uve,
    getDirectoryPath: () => _i,
    getDocumentPositionMapper: () => Jve,
    getESModuleInterop: () => V_,
    getEditsForFileRename: () => Dve,
    getEffectiveBaseTypeNode: () => Jp,
    getEffectiveConstraintOfTypeParameter: () => EA,
    getEffectiveContainerForJSDocTemplateTag: () => u3,
    getEffectiveImplementsTypeNodes: () => qA,
    getEffectiveInitializer: () => cN,
    getEffectiveJSDocHost: () => WA,
    getEffectiveModifierFlags: () => Ru,
    getEffectiveModifierFlagsAlwaysIncludeJSDoc: () => Hue,
    getEffectiveModifierFlagsNoCache: () => zue,
    getEffectiveReturnTypeNode: () => mp,
    getEffectiveSetAccessorTypeAnnotationNode: () => Oue,
    getEffectiveTypeAnnotationNode: () => Kl,
    getEffectiveTypeParameterDeclarations: () => Ev,
    getEffectiveTypeRoots: () => s8,
    getElementOrPropertyAccessArgumentExpressionOrName: () => c3,
    getElementOrPropertyAccessName: () => cg,
    getElementsOfBindingOrAssignmentPattern: () => LC,
    getEmitDeclarations: () => j_,
    getEmitFlags: () => go,
    getEmitHelpers: () => $3,
    getEmitModuleDetectionKind: () => yde,
    getEmitModuleKind: () => tu,
    getEmitModuleResolutionKind: () => yc,
    getEmitScriptTarget: () => $o,
    getEnclosingBlockScopeContainer: () => Nm,
    getEncodedSemanticClassifications: () => dQ,
    getEncodedSyntacticClassifications: () => fQ,
    getEndLinePosition: () => $R,
    getEntityNameFromTypeNode: () => iN,
    getEntrypointsFromPackageJsonInfo: () => P4e,
    getErrorCountForSummary: () => uF,
    getErrorSpanForNode: () => y1,
    getErrorSummaryText: () => _ge,
    getEscapedTextOfIdentifierOrLiteral: () => VI,
    getExpandoInitializer: () => H0,
    getExportAssignmentExpression: () => fz,
    getExportInfoMap: () => c6,
    getExportNeedsImportStarHelper: () => jme,
    getExpressionAssociativity: () => hz,
    getExpressionPrecedence: () => m3,
    getExternalHelpersModuleName: () => PO,
    getExternalModuleImportEqualsDeclarationExpression: () => MI,
    getExternalModuleName: () => UA,
    getExternalModuleNameFromDeclaration: () => Lue,
    getExternalModuleNameFromPath: () => Tz,
    getExternalModuleNameLiteral: () => Ox,
    getExternalModuleRequireArgument: () => ZW,
    getFallbackOptions: () => A8,
    getFileEmitOutput: () => Jhe,
    getFileMatcherPatterns: () => ok,
    getFileNamesFromConfigSpecs: () => $O,
    getFileWatcherEventKind: () => nce,
    getFilesInErrorForSummary: () => dF,
    getFirstConstructorWithBody: () => yh,
    getFirstIdentifier: () => Sf,
    getFirstNonSpaceCharacterPosition: () => Zye,
    getFirstProjectOutput: () => yX,
    getFixableErrorSpanExpression: () => Z$,
    getFormatCodeSettingsForWriting: () => l9,
    getFullWidth: () => XR,
    getFunctionFlags: () => Fl,
    getHeritageClause: () => LN,
    getHostSignatureFromJSDoc: () => W0,
    getIdentifierAutoGenerate: () => k6e,
    getIdentifierGeneratedImportReference: () => yfe,
    getIdentifierTypeArguments: () => xT,
    getImmediatelyInvokedFunctionExpression: () => dT,
    getImpliedNodeFormatForFile: () => Q5,
    getImpliedNodeFormatForFileWorker: () => MX,
    getImportNeedsImportDefaultHelper: () => XK,
    getImportNeedsImportStarHelper: () => F5,
    getIndentSize: () => YA,
    getIndentString: () => h3,
    getInitializedVariables: () => ZI,
    getInitializerOfBinaryExpression: () => az,
    getInitializerOfBindingOrAssignmentElement: () => FO,
    getInterfaceBaseTypeNodes: () => UI,
    getInternalEmitFlags: () => P_,
    getInvokedExpression: () => ZM,
    getIsolatedModules: () => U_,
    getJSDocAugmentsTag: () => Wce,
    getJSDocClassTag: () => $H,
    getJSDocCommentRanges: () => JW,
    getJSDocCommentsAndTags: () => sz,
    getJSDocDeprecatedTag: () => QH,
    getJSDocDeprecatedTagNoCache: () => $ce,
    getJSDocEnumTag: () => ZH,
    getJSDocHost: () => rx,
    getJSDocImplementsTags: () => zce,
    getJSDocOverrideTagNoCache: () => Yce,
    getJSDocParameterTags: () => gI,
    getJSDocParameterTagsNoCache: () => Gce,
    getJSDocPrivateTag: () => ROe,
    getJSDocPrivateTagNoCache: () => Jce,
    getJSDocProtectedTag: () => NOe,
    getJSDocProtectedTagNoCache: () => Kce,
    getJSDocPublicTag: () => DOe,
    getJSDocPublicTagNoCache: () => qce,
    getJSDocReadonlyTag: () => OOe,
    getJSDocReadonlyTagNoCache: () => Xce,
    getJSDocReturnTag: () => Qce,
    getJSDocReturnType: () => FR,
    getJSDocRoot: () => BI,
    getJSDocSatisfiesExpressionType: () => yq,
    getJSDocSatisfiesTag: () => eW,
    getJSDocTags: () => f1,
    getJSDocTagsNoCache: () => MOe,
    getJSDocTemplateTag: () => POe,
    getJSDocThisTag: () => yM,
    getJSDocType: () => bv,
    getJSDocTypeAliasName: () => wJ,
    getJSDocTypeAssertionType: () => U7,
    getJSDocTypeParameterDeclarations: () => v3,
    getJSDocTypeParameterTags: () => Vce,
    getJSDocTypeParameterTagsNoCache: () => jce,
    getJSDocTypeTag: () => d1,
    getJSXImplicitImportBase: () => D3,
    getJSXRuntimeImport: () => R3,
    getJSXTransformEnabled: () => $z,
    getKeyForCompilerOptions: () => yK,
    getLanguageVariant: () => WN,
    getLastChild: () => Wz,
    getLeadingCommentRanges: () => dh,
    getLeadingCommentRangesOfNode: () => qW,
    getLeftmostAccessExpression: () => nk,
    getLeftmostExpression: () => rk,
    getLineAndCharacterOfPosition: () => ac,
    getLineInfo: () => Ome,
    getLineOfLocalPosition: () => zI,
    getLineOfLocalPositionFromLineMap: () => gT,
    getLineStartPositionForPosition: () => v_,
    getLineStarts: () => eg,
    getLinesBetweenPositionAndNextNonWhitespaceCharacter: () => ide,
    getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: () => rde,
    getLinesBetweenPositions: () => dI,
    getLinesBetweenRangeEndAndRangeStart: () => Uz,
    getLinesBetweenRangeEndPositions: () => O8e,
    getLiteralText: () => Mle,
    getLocalNameForExternalImport: () => CC,
    getLocalSymbolForExportDefault: () => QA,
    getLocaleSpecificMessage: () => Ro,
    getLocaleTimeString: () => N8,
    getMappedContextSpan: () => jye,
    getMappedDocumentSpan: () => M$,
    getMappedLocation: () => n6,
    getMatchedFileSpec: () => oY,
    getMatchedIncludeSpec: () => sY,
    getMeaningFromDeclaration: () => U8,
    getMeaningFromLocation: () => HT,
    getMembersOfDeclaration: () => Kle,
    getModeForFileReference: () => L8,
    getModeForResolutionAtIndex: () => DX,
    getModeForUsageLocation: () => vp,
    getModifiedTime: () => HS,
    getModifiers: () => eT,
    getModuleInstanceState: () => mg,
    getModuleNameStringLiteralAt: () => nF,
    getModuleSpecifierEndingPreference: () => aq,
    getModuleSpecifierResolverHost: () => R$,
    getNameForExportedSymbol: () => o9,
    getNameFromIndexInfo: () => Wle,
    getNameFromPropertyName: () => Z8,
    getNameOfAccessExpression: () => sde,
    getNameOfCompilerOptionValue: () => JJ,
    getNameOfDeclaration: () => Aa,
    getNameOfExpando: () => rz,
    getNameOfJSDocTypedef: () => Fce,
    getNameOrArgument: () => fN,
    getNameTable: () => UQ,
    getNamesForExportedSymbol: () => fve,
    getNamespaceDeclarationNode: () => VA,
    getNewLineCharacter: () => K0,
    getNewLineKind: () => s6,
    getNewLineOrDefaultFromHost: () => rb,
    getNewTargetContainer: () => rue,
    getNextJSDocCommentLocation: () => cz,
    getNodeForGeneratedName: () => z7,
    getNodeId: () => ds,
    getNodeKind: () => q1,
    getNodeModifiers: () => cw,
    getNodeModulePathParts: () => pq,
    getNonAssignedNameOfDeclaration: () => XH,
    getNonAssignmentOperatorForCompoundAssignment: () => Xk,
    getNonAugmentationDeclaration: () => FW,
    getNonDecoratorTokenPosOfNode: () => DW,
    getNormalizedAbsolutePath: () => Da,
    getNormalizedAbsolutePathWithoutRoot: () => PH,
    getNormalizedPathComponents: () => xR,
    getObjectFlags: () => Zr,
    getOperator: () => yz,
    getOperatorAssociativity: () => gz,
    getOperatorPrecedence: () => wN,
    getOptionFromName: () => HJ,
    getOptionsNameMap: () => DC,
    getOrCreateEmitNode: () => $u,
    getOrCreateExternalHelpersModuleNameIfNeeded: () => n_e,
    getOrUpdate: () => ZD,
    getOriginalNode: () => Ec,
    getOriginalNodeId: () => Ic,
    getOriginalSourceFile: () => E8e,
    getOutputDeclarationFileName: () => Zk,
    getOutputExtension: () => gX,
    getOutputFileNames: () => k3e,
    getOutputPathsFor: () => Qk,
    getOutputPathsForBundle: () => $k,
    getOwnEmitOutputFilePath: () => Iue,
    getOwnKeys: () => $h,
    getOwnValues: () => PS,
    getPackageJsonInfo: () => Gx,
    getPackageJsonTypesVersionsPaths: () => f5,
    getPackageJsonsVisibleToFile: () => ove,
    getPackageNameFromTypesPackageName: () => d8,
    getPackageScopeForPath: () => y5,
    getParameterSymbolFromJSDoc: () => TN,
    getParameterTypeNode: () => u6e,
    getParentNodeInSpan: () => t6,
    getParseTreeNode: () => ga,
    getParsedCommandLineOfConfigFile: () => WO,
    getPathComponents: () => ad,
    getPathComponentsRelativeTo: () => GH,
    getPathFromPathComponents: () => l1,
    getPathUpdater: () => pQ,
    getPathsBasePath: () => Az,
    getPatternFromSpec: () => tq,
    getPendingEmitKind: () => BC,
    getPositionOfLineAndCharacter: () => kR,
    getPossibleGenericSignatures: () => E$,
    getPossibleOriginalInputExtensionForExtension: () => wue,
    getPossibleTypeArgumentsInfo: () => T$,
    getPreEmitDiagnostics: () => H3e,
    getPrecedingNonSpaceCharacterPosition: () => j$,
    getPrivateIdentifier: () => tX,
    getProperties: () => QK,
    getProperty: () => rR,
    getPropertyArrayElementValue: () => eue,
    getPropertyAssignment: () => MA,
    getPropertyAssignmentAliasLikeExpression: () => Eue,
    getPropertyNameForPropertyNameNode: () => S1,
    getPropertyNameForUniqueESSymbol: () => v8e,
    getPropertyNameOfBindingOrAssignmentElement: () => kJ,
    getPropertySymbolFromBindingElement: () => zF,
    getPropertySymbolsFromContextualType: () => D9,
    getQuoteFromPreference: () => Uye,
    getQuotePreference: () => Ep,
    getRangesWhere: () => sj,
    getRefactorContextSpan: () => Wx,
    getReferencedFileLocation: () => tw,
    getRegexFromPattern: () => Dv,
    getRegularExpressionForWildcard: () => ak,
    getRegularExpressionsForWildcards: () => N3,
    getRelativePathFromDirectory: () => Lm,
    getRelativePathFromFile: () => AR,
    getRelativePathToDirectoryOrUrl: () => WS,
    getRenameLocation: () => a6,
    getReplacementSpanForContextToken: () => C$,
    getResolutionDiagnostic: () => GX,
    getResolutionModeOverrideForClause: () => Ux,
    getResolveJsonModule: () => TT,
    getResolvePackageJsonExports: () => Yz,
    getResolvePackageJsonImports: () => Y8e,
    getResolvedExternalModuleName: () => g3,
    getResolvedModule: () => kA,
    getResolvedTypeReferenceDirective: () => KOe,
    getRestIndicatorOfBindingOrAssignmentElement: () => j7,
    getRestParameterElementType: () => XW,
    getRightMostAssignedExpression: () => uN,
    getRootDeclaration: () => Om,
    getRootLength: () => Wp,
    getScriptKind: () => V$,
    getScriptKindFromFileName: () => iq,
    getScriptTargetFeatures: () => RW,
    getSelectedEffectiveModifierFlags: () => cx,
    getSelectedSyntacticModifierFlags: () => jue,
    getSemanticClassifications: () => Sve,
    getSemanticJsxChildren: () => RN,
    getSetAccessorTypeAnnotationNode: () => Rue,
    getSetAccessorValueParameter: () => qI,
    getSetExternalModuleIndicator: () => zN,
    getShebang: () => dM,
    getSingleInitializerOfVariableStatementOrPropertyDeclaration: () => oz,
    getSingleVariableOfVariableStatement: () => HA,
    getSnapshotText: () => GF,
    getSnippetElement: () => qq,
    getSourceFileOfModule: () => NM,
    getSourceFileOfNode: () => er,
    getSourceFilePathInNewDir: () => y3,
    getSourceFilePathInNewDirWorker: () => Lz,
    getSourceFileVersionAsHashFromText: () => _F,
    getSourceFilesToEmit: () => Cz,
    getSourceMapRange: () => $0,
    getSourceMapper: () => qve,
    getSourceTextOfNodeFromSourceFile: () => h1,
    getSpanOfTokenAtPosition: () => py,
    getSpellingSuggestion: () => nI,
    getStartPositionOfLine: () => Cv,
    getStartPositionOfRange: () => QI,
    getStartsOnNewLine: () => _O,
    getStaticPropertiesAndClassStaticBlock: () => G5,
    getStrictOptionValue: () => m_,
    getStringComparer: () => R4,
    getSuperCallFromStatement: () => $K,
    getSuperContainer: () => nN,
    getSupportedCodeFixes: () => O0e,
    getSupportedExtensions: () => sk,
    getSupportedExtensionsWithJsonIfResolveJsonModule: () => XN,
    getSwitchedType: () => K$,
    getSymbolId: () => yo,
    getSymbolNameForPrivateIdentifier: () => IN,
    getSymbolTarget: () => $ye,
    getSyntacticClassifications: () => Lve,
    getSyntacticModifierFlags: () => kv,
    getSyntacticModifierFlagsNoCache: () => Nz,
    getSynthesizedDeepClone: () => kc,
    getSynthesizedDeepCloneWithReplacements: () => i6,
    getSynthesizedDeepClones: () => J1,
    getSynthesizedDeepClonesWithReplacements: () => H$,
    getSyntheticLeadingComments: () => lC,
    getSyntheticTrailingComments: () => mO,
    getTargetLabel: () => AF,
    getTargetOfBindingOrAssignmentElement: () => Fv,
    getTemporaryModuleResolutionState: () => g5,
    getTextOfConstantValue: () => Fle,
    getTextOfIdentifierOrLiteral: () => B_,
    getTextOfJSDocComment: () => BR,
    getTextOfNode: () => El,
    getTextOfNodeFromSourceText: () => wI,
    getTextOfPropertyName: () => DA,
    getThisContainer: () => bd,
    getThisParameter: () => x1,
    getTokenAtPosition: () => ia,
    getTokenPosOfNode: () => sT,
    getTokenSourceMapRange: () => L6e,
    getTouchingPropertyName: () => Lf,
    getTouchingToken: () => sw,
    getTrailingCommentRanges: () => F0,
    getTrailingSemicolonDeferringWriter: () => Ez,
    getTransformFlagsSubtreeExclusions: () => sfe,
    getTransformers: () => pX,
    getTsBuildInfoEmitOutputFilePath: () => Ay,
    getTsConfigObjectLiteralExpression: () => NI,
    getTsConfigPropArray: () => tN,
    getTsConfigPropArrayElementValue: () => XM,
    getTypeAnnotationNode: () => Nue,
    getTypeArgumentOrTypeParameterList: () => wye,
    getTypeKeywordOfTypeOnlyImport: () => O$,
    getTypeNode: () => hfe,
    getTypeNodeIfAccessible: () => pw,
    getTypeParameterFromJsDoc: () => mue,
    getTypeParameterOwner: () => kOe,
    getTypesPackageName: () => E5,
    getUILocale: () => Ese,
    getUniqueName: () => KT,
    getUniqueSymbolId: () => Qye,
    getUseDefineForClassFields: () => KN,
    getWatchErrorSummaryDiagnosticMessage: () => rY,
    getWatchFactory: () => Fhe,
    group: () => tI,
    groupBy: () => mse,
    guessIndentation: () => Ele,
    handleNoEmitOptions: () => FX,
    hasAbstractModifier: () => C1,
    hasAccessorModifier: () => Pm,
    hasAmbientModifier: () => Dz,
    hasChangesInResolutions: () => IW,
    hasChildOfKind: () => q8,
    hasContextSensitiveParameters: () => B3,
    hasDecorators: () => Jf,
    hasDocComment: () => kye,
    hasDynamicName: () => Iv,
    hasEffectiveModifier: () => Pd,
    hasEffectiveModifiers: () => b3,
    hasEffectiveReadonlyModifier: () => JI,
    hasExtension: () => gA,
    hasIndexSignature: () => J$,
    hasInitializer: () => Av,
    hasInvalidEscape: () => vz,
    hasJSDocNodes: () => bf,
    hasJSDocParameterTags: () => Hce,
    hasJSFileExtension: () => _x,
    hasJsonModuleEmitEnabled: () => L3,
    hasOnlyExpressionInitializer: () => aT,
    hasOverrideModifier: () => wz,
    hasPossibleExternalModuleReference: () => jle,
    hasProperty: () => Rs,
    hasPropertyAccessExpressionWithName: () => V8,
    hasQuestionToken: () => nx,
    hasRecordedExternalHelpers: () => t_e,
    hasRestParameter: () => TW,
    hasScopeMarker: () => mle,
    hasStaticModifier: () => pl,
    hasSyntacticModifier: () => Kr,
    hasSyntacticModifiers: () => Vue,
    hasTSFileExtension: () => YN,
    hasTabstop: () => Gde,
    hasTrailingDirectorySeparator: () => mv,
    hasType: () => wM,
    hasTypeArguments: () => m8e,
    hasZeroOrOneAsteriskCharacter: () => Qz,
    helperString: () => Xq,
    hostGetCanonicalFileName: () => q0,
    hostUsesCaseSensitiveFileNames: () => MN,
    idText: () => Pr,
    identifierIsThisKeyword: () => kz,
    identifierToKeywordKind: () => G0,
    identity: () => pc,
    identitySourceMapConsumer: () => M5,
    ignoreSourceNewlines: () => Kq,
    ignoredPaths: () => TR,
    importDefaultHelper: () => y7,
    importFromModuleSpecifier: () => gN,
    importNameElisionDisabled: () => I3,
    importStarHelper: () => gO,
    indexOfAnyCharCode: () => Ma,
    indexOfNode: () => wA,
    indicesOf: () => eR,
    inferredTypesContainingFile: () => aF,
    insertImports: () => qF,
    insertLeadingStatement: () => $6e,
    insertSorted: () => _v,
    insertStatementAfterCustomPrologue: () => m1,
    insertStatementAfterStandardPrologue: () => QOe,
    insertStatementsAfterCustomPrologue: () => kW,
    insertStatementsAfterStandardPrologue: () => Rm,
    intersperse: () => Wa,
    introducesArgumentsExoticObject: () => Qle,
    inverseJsxOptionMap: () => Gk,
    isAbstractConstructorSymbol: () => ade,
    isAbstractModifier: () => kfe,
    isAccessExpression: () => sc,
    isAccessibilityModifier: () => A$,
    isAccessor: () => U0,
    isAccessorModifier: () => Dfe,
    isAliasSymbolDeclaration: () => h8e,
    isAliasableExpression: () => CN,
    isAmbientModule: () => Du,
    isAmbientPropertyDeclaration: () => GW,
    isAnonymousFunctionDefinition: () => jI,
    isAnyDirectorySeparator: () => NH,
    isAnyImportOrBareOrAccessedRequire: () => Vle,
    isAnyImportOrReExport: () => QR,
    isAnyImportSyntax: () => cT,
    isAnySupportedFileExtension: () => a6e,
    isApplicableVersionedTypesKey: () => u8,
    isArgumentExpressionOfElementAccess: () => d$,
    isArray: () => Ba,
    isArrayBindingElement: () => CM,
    isArrayBindingOrAssignmentElement: () => HR,
    isArrayBindingOrAssignmentPattern: () => _W,
    isArrayBindingPattern: () => gC,
    isArrayLiteralExpression: () => Ou,
    isArrayLiteralOrObjectLiteralDestructuringPattern: () => Ly,
    isArrayTypeNode: () => rJ,
    isArrowFunction: () => Ws,
    isAsExpression: () => xO,
    isAssertClause: () => R7,
    isAssertEntry: () => Gfe,
    isAssertionExpression: () => iT,
    isAssertionKey: () => nle,
    isAssertsKeyword: () => Lfe,
    isAssignmentDeclaration: () => FI,
    isAssignmentExpression: () => Yu,
    isAssignmentOperator: () => my,
    isAssignmentPattern: () => xI,
    isAssignmentTarget: () => gh,
    isAsteriskToken: () => bO,
    isAsyncFunction: () => KA,
    isAsyncModifier: () => bk,
    isAutoAccessorPropertyDeclaration: () => ef,
    isAwaitExpression: () => vC,
    isAwaitKeyword: () => nJ,
    isBigIntLiteral: () => S7,
    isBinaryExpression: () => br,
    isBinaryOperatorToken: () => d_e,
    isBindableObjectDefinePropertyCall: () => ZS,
    isBindableStaticAccessExpression: () => _T,
    isBindableStaticElementAccessExpression: () => s3,
    isBindableStaticNameExpression: () => ex,
    isBindingElement: () => us,
    isBindingElementOfBareOrAccessedRequire: () => oue,
    isBindingName: () => _h,
    isBindingOrAssignmentElement: () => sle,
    isBindingOrAssignmentPattern: () => VR,
    isBindingPattern: () => Ja,
    isBlock: () => oo,
    isBlockOrCatchScoped: () => NW,
    isBlockScope: () => UW,
    isBlockScopedContainerTopLevel: () => Ule,
    isBooleanLiteral: () => rle,
    isBreakOrContinueStatement: () => EI,
    isBreakStatement: () => B6e,
    isBuildInfoFile: () => xhe,
    isBuilderProgram: () => pge,
    isBundle: () => dJ,
    isBundleFileTextLike: () => cde,
    isCallChain: () => tT,
    isCallExpression: () => eo,
    isCallExpressionTarget: () => o$,
    isCallLikeExpression: () => XS,
    isCallOrNewExpression: () => ig,
    isCallOrNewExpressionTarget: () => s$,
    isCallSignatureDeclaration: () => _C,
    isCallToHelper: () => vk,
    isCaseBlock: () => IO,
    isCaseClause: () => Dk,
    isCaseKeyword: () => Rfe,
    isCaseOrDefaultClause: () => vW,
    isCatchClause: () => EC,
    isCatchClauseVariableDeclaration: () => Bde,
    isCatchClauseVariableDeclarationOrBindingElement: () => OW,
    isCheckJsEnabledForFile: () => tO,
    isChildOfNodeWithKind: () => KW,
    isCircularBuildOrder: () => jx,
    isClassDeclaration: () => wl,
    isClassElement: () => Ml,
    isClassExpression: () => Pu,
    isClassLike: () => li,
    isClassMemberModifier: () => uW,
    isClassOrTypeElement: () => AM,
    isClassStaticBlockDeclaration: () => Lc,
    isCollapsedRange: () => N8e,
    isColonToken: () => xfe,
    isCommaExpression: () => OO,
    isCommaListExpression: () => Ik,
    isCommaSequence: () => Mk,
    isCommaToken: () => Sfe,
    isComment: () => PF,
    isCommonJsExportPropertyAssignment: () => JM,
    isCommonJsExportedExpression: () => Yle,
    isCompoundAssignment: () => y8,
    isComputedNonLiteralName: () => ZR,
    isComputedPropertyName: () => Ts,
    isConciseBody: () => IM,
    isConditionalExpression: () => bC,
    isConditionalTypeNode: () => mC,
    isConstTypeReference: () => rg,
    isConstructSignatureDeclaration: () => TO,
    isConstructorDeclaration: () => Hc,
    isConstructorTypeNode: () => Sk,
    isContextualKeyword: () => d3,
    isContinueStatement: () => F6e,
    isCustomPrologue: () => HM,
    isDebuggerStatement: () => G6e,
    isDeclaration: () => mu,
    isDeclarationBindingElement: () => UR,
    isDeclarationFileName: () => ld,
    isDeclarationName: () => lg,
    isDeclarationNameOfEnumOrNamespace: () => HN,
    isDeclarationReadonly: () => jM,
    isDeclarationStatement: () => gle,
    isDeclarationWithTypeParameterChildren: () => jW,
    isDeclarationWithTypeParameters: () => VW,
    isDecorator: () => Nu,
    isDecoratorTarget: () => fye,
    isDefaultClause: () => wO,
    isDefaultImport: () => tx,
    isDefaultModifier: () => Cfe,
    isDefaultedExpandoInitializer: () => cue,
    isDeleteExpression: () => Pfe,
    isDeleteTarget: () => uz,
    isDeprecatedDeclaration: () => s9,
    isDestructuringAssignment: () => hy,
    isDiagnosticWithLocation: () => Q$,
    isDiskPathRoot: () => fOe,
    isDoStatement: () => P6e,
    isDotDotDotToken: () => x7,
    isDottedName: () => XI,
    isDynamicName: () => p3,
    isESSymbolIdentifier: () => b8e,
    isEffectiveExternalModule: () => $S,
    isEffectiveModuleDeclaration: () => Gle,
    isEffectiveStrictModeSourceFile: () => BW,
    isElementAccessChain: () => nW,
    isElementAccessExpression: () => cc,
    isEmittedFileOfProgram: () => Mhe,
    isEmptyArrayLiteral: () => Yue,
    isEmptyBindingElement: () => Pce,
    isEmptyBindingPattern: () => Oce,
    isEmptyObjectLiteral: () => Fz,
    isEmptyStatement: () => sJ,
    isEmptyStringLiteral: () => QW,
    isEndOfDeclarationMarker: () => j6e,
    isEntityName: () => Zd,
    isEntityNameExpression: () => jc,
    isEnumConst: () => v1,
    isEnumDeclaration: () => Z0,
    isEnumMember: () => P1,
    isEqualityOperatorKind: () => YF,
    isEqualsGreaterThanToken: () => Afe,
    isExclamationToken: () => EO,
    isExcludedFile: () => ppe,
    isExclusivelyTypeOnlyImportOrExport: () => RX,
    isExportAssignment: () => Mc,
    isExportDeclaration: () => Xl,
    isExportModifier: () => C7,
    isExportName: () => G7,
    isExportNamespaceAsDefaultDeclaration: () => FM,
    isExportOrDefaultModifier: () => RJ,
    isExportSpecifier: () => cd,
    isExportsIdentifier: () => fT,
    isExportsOrModuleExportsOrAlias: () => B1,
    isExpression: () => yt,
    isExpressionNode: () => sg,
    isExpressionOfExternalModuleImportEqualsDeclaration: () => hye,
    isExpressionOfOptionalChainRoot: () => EM,
    isExpressionStatement: () => nu,
    isExpressionWithTypeArguments: () => by,
    isExpressionWithTypeArgumentsInClassExtendsClause: () => GN,
    isExternalModule: () => Yc,
    isExternalModuleAugmentation: () => g1,
    isExternalModuleImportEqualsDeclaration: () => j0,
    isExternalModuleIndicator: () => WR,
    isExternalModuleNameRelative: () => Pl,
    isExternalModuleReference: () => jm,
    isExternalModuleSymbol: () => $8,
    isExternalOrCommonJsModule: () => nf,
    isFileLevelUniqueName: () => PM,
    isFileProbablyExternalModule: () => UO,
    isFirstDeclarationOfSymbolParameter: () => F$,
    isFixablePromiseHandler: () => AQ,
    isForInOrOfStatement: () => CA,
    isForInStatement: () => cJ,
    isForInitializer: () => zp,
    isForOfStatement: () => AO,
    isForStatement: () => LT,
    isFunctionBlock: () => uT,
    isFunctionBody: () => mW,
    isFunctionDeclaration: () => ml,
    isFunctionExpression: () => Ps,
    isFunctionExpressionOrArrowFunction: () => aC,
    isFunctionLike: () => qa,
    isFunctionLikeDeclaration: () => Xs,
    isFunctionLikeKind: () => KS,
    isFunctionLikeOrClassStaticBlockDeclaration: () => SA,
    isFunctionOrConstructorTypeNode: () => ole,
    isFunctionOrModuleBlock: () => dW,
    isFunctionSymbol: () => uue,
    isFunctionTypeNode: () => Sh,
    isFutureReservedKeyword: () => g8e,
    isGeneratedIdentifier: () => Tc,
    isGeneratedPrivateIdentifier: () => JS,
    isGetAccessor: () => xv,
    isGetAccessorDeclaration: () => H_,
    isGetOrSetAccessorDeclaration: () => vM,
    isGlobalDeclaration: () => M5e,
    isGlobalScopeAugmentation: () => qp,
    isGrammarError: () => Dle,
    isHeritageClause: () => Bd,
    isHoistedFunction: () => WM,
    isHoistedVariableStatement: () => zM,
    isIdentifier: () => Ve,
    isIdentifierANonContextualKeyword: () => f3,
    isIdentifierName: () => bue,
    isIdentifierOrThisTypeNode: () => s_e,
    isIdentifierPart: () => B0,
    isIdentifierStart: () => fh,
    isIdentifierText: () => N_,
    isIdentifierTypePredicate: () => Zle,
    isIdentifierTypeReference: () => Nde,
    isIfStatement: () => CT,
    isIgnoredFileFromWildCardWatching: () => K5,
    isImplicitGlob: () => eq,
    isImportCall: () => rf,
    isImportClause: () => Vm,
    isImportDeclaration: () => Ul,
    isImportEqualsDeclaration: () => ru,
    isImportKeyword: () => Tk,
    isImportMeta: () => OA,
    isImportOrExportSpecifier: () => qS,
    isImportOrExportSpecifierName: () => Yye,
    isImportSpecifier: () => xd,
    isImportTypeAssertionContainer: () => Bfe,
    isImportTypeNode: () => _g,
    isImportableFile: () => sQ,
    isInComment: () => Cy,
    isInExpressionContext: () => t3,
    isInJSDoc: () => oN,
    isInJSFile: () => fr,
    isInJSXText: () => Lye,
    isInJsonFile: () => r3,
    isInNonReferenceComment: () => Pye,
    isInReferenceComment: () => Oye,
    isInRightSideOfInternalImportEqualsDeclaration: () => TF,
    isInString: () => qT,
    isInTemplateString: () => b$,
    isInTopLevelContext: () => $M,
    isIncrementalCompilation: () => qN,
    isIndexSignatureDeclaration: () => Ex,
    isIndexedAccessTypeNode: () => Ax,
    isInferTypeNode: () => hC,
    isInfinityOrNaNString: () => _k,
    isInitializedProperty: () => v8,
    isInitializedVariable: () => Vz,
    isInsideJsxElement: () => NF,
    isInsideJsxElementOrAttribute: () => Cye,
    isInsideNodeModules: () => cve,
    isInsideTemplateLiteral: () => X8,
    isInstantiatedModule: () => BK,
    isInterfaceDeclaration: () => Qu,
    isInternalDeclaration: () => dX,
    isInternalModuleImportEqualsDeclaration: () => BA,
    isInternalName: () => CJ,
    isIntersectionTypeNode: () => SO,
    isIntrinsicJsxName: () => HI,
    isIterationStatement: () => Sv,
    isJSDoc: () => Hm,
    isJSDocAllType: () => Wfe,
    isJSDocAugmentsTag: () => xC,
    isJSDocAuthorTag: () => z6e,
    isJSDocCallbackTag: () => _J,
    isJSDocClassTag: () => qfe,
    isJSDocCommentContainingNode: () => bW,
    isJSDocConstructSignature: () => jA,
    isJSDocDeprecatedTag: () => yJ,
    isJSDocEnumTag: () => DO,
    isJSDocFunctionType: () => SC,
    isJSDocImplementsTag: () => bJ,
    isJSDocIndexSignature: () => i3,
    isJSDocLikeText: () => OJ,
    isJSDocLink: () => jfe,
    isJSDocLinkCode: () => Hfe,
    isJSDocLinkLike: () => YS,
    isJSDocLinkPlain: () => H6e,
    isJSDocMemberName: () => eb,
    isJSDocNameReference: () => Rk,
    isJSDocNamepathType: () => W6e,
    isJSDocNamespaceBody: () => HOe,
    isJSDocNode: () => LA,
    isJSDocNonNullableType: () => N7,
    isJSDocNullableType: () => TC,
    isJSDocOptionalParameter: () => iO,
    isJSDocOptionalType: () => fJ,
    isJSDocOverloadTag: () => Ok,
    isJSDocOverrideTag: () => P7,
    isJSDocParameterTag: () => tm,
    isJSDocPrivateTag: () => mJ,
    isJSDocPropertyLikeTag: () => SM,
    isJSDocPropertyTag: () => Kfe,
    isJSDocProtectedTag: () => hJ,
    isJSDocPublicTag: () => pJ,
    isJSDocReadonlyTag: () => gJ,
    isJSDocReturnTag: () => M7,
    isJSDocSatisfiesExpression: () => gq,
    isJSDocSatisfiesTag: () => F7,
    isJSDocSeeTag: () => q6e,
    isJSDocSignature: () => M1,
    isJSDocTag: () => CI,
    isJSDocTemplateTag: () => yp,
    isJSDocThisTag: () => Jfe,
    isJSDocThrowsTag: () => K6e,
    isJSDocTypeAlias: () => f_,
    isJSDocTypeAssertion: () => Fk,
    isJSDocTypeExpression: () => wT,
    isJSDocTypeLiteral: () => Nk,
    isJSDocTypeTag: () => Pk,
    isJSDocTypedefTag: () => vJ,
    isJSDocUnknownTag: () => J6e,
    isJSDocUnknownType: () => zfe,
    isJSDocVariadicType: () => O7,
    isJSXTagName: () => PI,
    isJsonEqual: () => uq,
    isJsonSourceFile: () => d_,
    isJsxAttribute: () => em,
    isJsxAttributeLike: () => kM,
    isJsxAttributes: () => O1,
    isJsxChild: () => JR,
    isJsxClosingElement: () => wx,
    isJsxClosingFragment: () => Ufe,
    isJsxElement: () => Ty,
    isJsxExpression: () => wk,
    isJsxFragment: () => Dx,
    isJsxOpeningElement: () => Ch,
    isJsxOpeningFragment: () => Rx,
    isJsxOpeningLikeElement: () => Ku,
    isJsxOpeningLikeElementTagName: () => _ye,
    isJsxSelfClosingElement: () => kx,
    isJsxSpreadAttribute: () => IT,
    isJsxTagNameExpression: () => AI,
    isJsxText: () => yx,
    isJumpStatementTarget: () => j8,
    isKeyword: () => Td,
    isKnownSymbol: () => kN,
    isLabelName: () => l$,
    isLabelOfLabeledStatement: () => c$,
    isLabeledStatement: () => N1,
    isLateVisibilityPaintedStatement: () => GM,
    isLeftHandSideExpression: () => vd,
    isLeftHandSideOfAssignment: () => k8e,
    isLet: () => RI,
    isLineBreak: () => fu,
    isLiteralComputedPropertyDeclarationName: () => AN,
    isLiteralExpression: () => nT,
    isLiteralExpressionOfObject: () => sW,
    isLiteralImportTypeNode: () => V0,
    isLiteralKind: () => TI,
    isLiteralLikeAccess: () => o3,
    isLiteralLikeElementAccess: () => dN,
    isLiteralNameOfPropertyDeclarationOrIndexAccess: () => CF,
    isLiteralTypeLikeExpression: () => oPe,
    isLiteralTypeLiteral: () => _le,
    isLiteralTypeNode: () => Q0,
    isLocalName: () => Mv,
    isLogicalOperator: () => Jue,
    isLogicalOrCoalescingAssignmentExpression: () => Oz,
    isLogicalOrCoalescingAssignmentOperator: () => KI,
    isLogicalOrCoalescingBinaryExpression: () => BN,
    isLogicalOrCoalescingBinaryOperator: () => FN,
    isMappedTypeNode: () => Ck,
    isMemberName: () => ng,
    isMergeDeclarationMarker: () => V6e,
    isMetaProperty: () => Lk,
    isMethodDeclaration: () => nl,
    isMethodOrAccessor: () => xA,
    isMethodSignature: () => Th,
    isMinusToken: () => tJ,
    isMissingDeclaration: () => U6e,
    isModifier: () => lo,
    isModifierKind: () => dy,
    isModifierLike: () => tc,
    isModuleAugmentationExternal: () => MW,
    isModuleBlock: () => Zp,
    isModuleBody: () => hle,
    isModuleDeclaration: () => Wc,
    isModuleExportsAccessExpression: () => hh,
    isModuleIdentifier: () => iz,
    isModuleName: () => u_e,
    isModuleOrEnumDeclaration: () => zR,
    isModuleReference: () => vle,
    isModuleSpecifierLike: () => WF,
    isModuleWithStringLiteralName: () => BM,
    isNameOfFunctionDeclaration: () => _$,
    isNameOfModuleDeclaration: () => f$,
    isNamedClassElement: () => ale,
    isNamedDeclaration: () => _u,
    isNamedEvaluation: () => qf,
    isNamedEvaluationSource: () => _z,
    isNamedExportBindings: () => iW,
    isNamedExports: () => z_,
    isNamedImportBindings: () => hW,
    isNamedImports: () => Ey,
    isNamedImportsOrExports: () => qz,
    isNamedTupleMember: () => Ak,
    isNamespaceBody: () => jOe,
    isNamespaceExport: () => Ah,
    isNamespaceExportDeclaration: () => kO,
    isNamespaceImport: () => Pv,
    isNamespaceReexportDeclaration: () => aue,
    isNewExpression: () => R1,
    isNewExpressionTarget: () => iw,
    isNightly: () => ON,
    isNoSubstitutionTemplateLiteral: () => vx,
    isNode: () => GOe,
    isNodeArray: () => _1,
    isNodeArrayMultiLine: () => nde,
    isNodeDescendantOf: () => mT,
    isNodeKind: () => GR,
    isNodeLikeSystem: () => bj,
    isNodeModulesDirectory: () => sM,
    isNodeWithPossibleHoistedDeclaration: () => hue,
    isNonContextualKeyword: () => Tue,
    isNonExportDefaultModifier: () => xPe,
    isNonGlobalAmbientModule: () => PW,
    isNonGlobalDeclaration: () => hve,
    isNonNullAccess: () => Ude,
    isNonNullChain: () => TM,
    isNonNullExpression: () => Lx,
    isNonStaticMethodOrAccessorWithPrivateName: () => Wme,
    isNotEmittedOrPartiallyEmittedNode: () => VOe,
    isNotEmittedStatement: () => uJ,
    isNullishCoalesce: () => rW,
    isNumber: () => ay,
    isNumericLiteral: () => h_,
    isNumericLiteralName: () => Eh,
    isObjectBindingElementWithoutPropertyName: () => e6,
    isObjectBindingOrAssignmentElement: () => jR,
    isObjectBindingOrAssignmentPattern: () => fW,
    isObjectBindingPattern: () => Um,
    isObjectLiteralElement: () => EW,
    isObjectLiteralElementLike: () => fy,
    isObjectLiteralExpression: () => xs,
    isObjectLiteralMethod: () => M_,
    isObjectLiteralOrClassExpressionMethodOrAccessor: () => KM,
    isObjectTypeDeclaration: () => ux,
    isOctalDigit: () => jH,
    isOmittedExpression: () => kl,
    isOptionalChain: () => pu,
    isOptionalChainRoot: () => vI,
    isOptionalDeclaration: () => hq,
    isOptionalJSDocPropertyLikeTag: () => rO,
    isOptionalTypeNode: () => iJ,
    isOuterExpression: () => V7,
    isOutermostOptionalChain: () => bI,
    isOverrideModifier: () => wfe,
    isPackedArrayLiteral: () => fq,
    isParameter: () => Oa,
    isParameterDeclaration: () => hT,
    isParameterOrCatchClauseVariable: () => _q,
    isParameterPropertyDeclaration: () => Qd,
    isParameterPropertyModifier: () => SI,
    isParenthesizedExpression: () => Fd,
    isParenthesizedTypeNode: () => Sx,
    isParseTreeNode: () => hI,
    isPartOfTypeNode: () => mh,
    isPartOfTypeQuery: () => n3,
    isPartiallyEmittedExpression: () => D7,
    isPatternMatch: () => O4,
    isPinnedComment: () => MM,
    isPlainJsFile: () => OM,
    isPlusToken: () => eJ,
    isPossiblyTypeArgumentPosition: () => K8,
    isPostfixUnaryExpression: () => oJ,
    isPrefixUnaryExpression: () => Ov,
    isPrivateIdentifier: () => Di,
    isPrivateIdentifierClassElementDeclaration: () => Ju,
    isPrivateIdentifierPropertyAccessExpression: () => TA,
    isPrivateIdentifierSymbol: () => Sue,
    isProgramBundleEmitBuildInfo: () => nge,
    isProgramUptoDate: () => PX,
    isPrologueDirective: () => pp,
    isPropertyAccessChain: () => bM,
    isPropertyAccessEntityNameExpression: () => UN,
    isPropertyAccessExpression: () => Mr,
    isPropertyAccessOrQualifiedName: () => lle,
    isPropertyAccessOrQualifiedNameOrImportTypeNode: () => cle,
    isPropertyAssignment: () => Vl,
    isPropertyDeclaration: () => Za,
    isPropertyName: () => gc,
    isPropertyNameLiteral: () => F_,
    isPropertySignature: () => xf,
    isProtoSetter: () => xue,
    isPrototypeAccess: () => J0,
    isPrototypePropertyAssignment: () => pN,
    isPunctuation: () => Rye,
    isPushOrUnshiftIdentifier: () => pz,
    isQualifiedName: () => Sd,
    isQuestionDotToken: () => A7,
    isQuestionOrExclamationToken: () => o_e,
    isQuestionOrPlusOrMinusToken: () => l_e,
    isQuestionToken: () => Nv,
    isRawSourceMap: () => Mme,
    isReadonlyKeyword: () => Ife,
    isReadonlyKeywordOrPlusOrMinusToken: () => c_e,
    isRecognizedTripleSlashComment: () => wW,
    isReferenceFileLocation: () => FC,
    isReferencedFile: () => nb,
    isRegularExpressionLiteral: () => Qq,
    isRequireCall: () => Ed,
    isRequireVariableStatement: () => nz,
    isRestParameter: () => ph,
    isRestTypeNode: () => aJ,
    isReturnStatement: () => gp,
    isReturnStatementWithFixablePromiseHandler: () => E9,
    isRightSideOfAccessExpression: () => Kue,
    isRightSideOfPropertyAccess: () => jC,
    isRightSideOfQualifiedName: () => mye,
    isRightSideOfQualifiedNameOrPropertyAccess: () => YI,
    isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: () => Xue,
    isRootedDiskPath: () => Cm,
    isSameEntityName: () => GA,
    isSatisfiesExpression: () => N6e,
    isScopeMarker: () => ple,
    isSemicolonClassElement: () => Mfe,
    isSetAccessor: () => _y,
    isSetAccessorDeclaration: () => Yf,
    isShebangTrivia: () => HH,
    isShorthandAmbientModuleSymbol: () => DI,
    isShorthandPropertyAssignment: () => $f,
    isSignedNumericLiteral: () => _3,
    isSimpleCopiableExpression: () => U1,
    isSimpleInlineableExpression: () => nm,
    isSingleOrDoubleQuote: () => sN,
    isSourceFile: () => Hi,
    isSourceFileFromLibrary: () => hw,
    isSourceFileJS: () => Xu,
    isSourceFileNotJS: () => l8e,
    isSourceFileNotJson: () => ez,
    isSourceMapping: () => Fme,
    isSpecialPropertyDeclaration: () => lue,
    isSpreadAssignment: () => Nx,
    isSpreadElement: () => xh,
    isStatement: () => Ca,
    isStatementButNotDeclaration: () => qR,
    isStatementOrBlock: () => yle,
    isStatementWithLocals: () => wle,
    isStatic: () => za,
    isStaticModifier: () => bx,
    isString: () => Ua,
    isStringAKeyword: () => y8e,
    isStringANonContextualKeyword: () => ix,
    isStringAndEmptyAnonymousObjectIntersection: () => Dye,
    isStringDoubleQuoted: () => a3,
    isStringLiteral: () => Go,
    isStringLiteralLike: () => Es,
    isStringLiteralOrJsxExpression: () => ble,
    isStringLiteralOrTemplate: () => nve,
    isStringOrNumericLiteralLike: () => zf,
    isStringOrRegularExpressionOrTemplateLiteral: () => x$,
    isStringTextContainingNode: () => lW,
    isSuperCall: () => NA,
    isSuperKeyword: () => Ek,
    isSuperOrSuperProperty: () => c8e,
    isSuperProperty: () => sd,
    isSupportedSourceFileName: () => Ide,
    isSwitchStatement: () => CO,
    isSyntaxList: () => AC,
    isSyntheticExpression: () => O6e,
    isSyntheticReference: () => Ix,
    isTagName: () => u$,
    isTaggedTemplateExpression: () => AT,
    isTaggedTemplateTag: () => dye,
    isTemplateExpression: () => k7,
    isTemplateHead: () => fC,
    isTemplateLiteral: () => AA,
    isTemplateLiteralKind: () => Tv,
    isTemplateLiteralToken: () => ele,
    isTemplateLiteralTypeNode: () => R6e,
    isTemplateLiteralTypeSpan: () => Nfe,
    isTemplateMiddle: () => Tfe,
    isTemplateMiddleOrTemplateTail: () => xM,
    isTemplateSpan: () => kk,
    isTemplateTail: () => Zq,
    isTextWhiteSpaceLike: () => Vye,
    isThis: () => HC,
    isThisContainerOrFunctionBlock: () => nue,
    isThisIdentifier: () => yT,
    isThisInTypeQuery: () => sx,
    isThisInitializedDeclaration: () => QM,
    isThisInitializedObjectBindingExpression: () => iue,
    isThisProperty: () => rN,
    isThisTypeNode: () => I7,
    isThisTypeParameter: () => pk,
    isThisTypePredicate: () => o8e,
    isThrowStatement: () => lJ,
    isToken: () => zS,
    isTokenKind: () => oW,
    isTraceEnabled: () => Gv,
    isTransientSymbol: () => Dm,
    isTrivia: () => JA,
    isTryStatement: () => LO,
    isTupleTypeNode: () => pC,
    isTypeAlias: () => vN,
    isTypeAliasDeclaration: () => Qp,
    isTypeAssertionExpression: () => Ofe,
    isTypeDeclaration: () => oC,
    isTypeElement: () => rT,
    isTypeKeyword: () => lw,
    isTypeKeywordToken: () => k$,
    isTypeKeywordTokenOrIdentifier: () => BF,
    isTypeLiteralNode: () => of,
    isTypeNode: () => Mi,
    isTypeNodeKind: () => zz,
    isTypeOfExpression: () => yC,
    isTypeOnlyExportDeclaration: () => tle,
    isTypeOnlyImportDeclaration: () => cW,
    isTypeOnlyImportOrExportDeclaration: () => p1,
    isTypeOperatorNode: () => xx,
    isTypeParameterDeclaration: () => Pc,
    isTypePredicateNode: () => L7,
    isTypeQueryNode: () => xk,
    isTypeReferenceNode: () => W_,
    isTypeReferenceType: () => DM,
    isUMDExportSymbol: () => x3,
    isUnaryExpression: () => pW,
    isUnaryExpressionWithWrite: () => fle,
    isUnicodeIdentifierStart: () => cM,
    isUnionTypeNode: () => Tx,
    isUnparsedNode: () => aW,
    isUnparsedPrepend: () => Vfe,
    isUnparsedSource: () => kT,
    isUnparsedTextLike: () => Zce,
    isUrl: () => cce,
    isValidBigIntString: () => F3,
    isValidESSymbolDeclaration: () => $le,
    isValidTypeOnlyAliasUseSite: () => px,
    isValueSignatureDeclaration: () => gue,
    isVarConst: () => og,
    isVariableDeclaration: () => zi,
    isVariableDeclarationInVariableStatement: () => qM,
    isVariableDeclarationInitializedToBareOrAccessedRequire: () => E1,
    isVariableDeclarationInitializedToRequire: () => tz,
    isVariableDeclarationList: () => Mu,
    isVariableLike: () => PA,
    isVariableLikeOrAccessor: () => Xle,
    isVariableStatement: () => cl,
    isVoidExpression: () => Cx,
    isWatchSet: () => M8e,
    isWhileStatement: () => M6e,
    isWhiteSpaceLike: () => tg,
    isWhiteSpaceSingleLine: () => Im,
    isWithStatement: () => Ffe,
    isWriteAccess: () => tk,
    isWriteOnlyAccess: () => jz,
    isYieldExpression: () => w7,
    jsxModeNeedsExplicitImport: () => rQ,
    keywordPart: () => Ud,
    last: () => Ho,
    lastOrUndefined: () => ec,
    length: () => Ie,
    libMap: () => e8,
    libs: () => ZO,
    lineBreakPart: () => JC,
    linkNamePart: () => Kye,
    linkPart: () => G$,
    linkTextPart: () => JF,
    listFiles: () => iY,
    loadModuleFromGlobalCache: () => ime,
    loadWithModeAwareCache: () => I8,
    makeIdentifierFromModuleName: () => Ble,
    makeImport: () => Iy,
    makeImportIfNecessary: () => Gye,
    makeStringLiteral: () => VF,
    mangleScopedPackageName: () => zk,
    map: () => en,
    mapAllOrFail: () => NS,
    mapDefined: () => fa,
    mapDefinedEntries: () => uNe,
    mapDefinedIterator: () => dA,
    mapEntries: () => sse,
    mapIterator: () => Ql,
    mapOneOrMany: () => dve,
    mapToDisplayParts: () => Hv,
    matchFiles: () => rq,
    matchPatternOrExact: () => oq,
    matchedText: () => Lse,
    matchesExclude: () => n5,
    maybeBind: () => Fo,
    maybeSetLocalizedDiagnosticMessages: () => fde,
    memoize: () => yd,
    memoizeCached: () => yse,
    memoizeOne: () => xm,
    memoizeWeak: () => ENe,
    metadataHelper: () => Z3,
    min: () => hj,
    minAndMax: () => Dde,
    missingFileModifiedTime: () => Qh,
    modifierToFlag: () => lx,
    modifiersToFlags: () => Mm,
    moduleOptionDeclaration: () => oK,
    moduleResolutionIsEqualTo: () => Ile,
    moduleResolutionNameAndModeGetter: () => rw,
    moduleResolutionOptionDeclarations: () => i5,
    moduleResolutionSupportsPackageJsonExportsAndImports: () => fx,
    moduleResolutionUsesNodeModules: () => UF,
    moduleSpecifiers: () => G1,
    moveEmitHelpers: () => pfe,
    moveRangeEnd: () => T3,
    moveRangePastDecorators: () => wv,
    moveRangePastModifiers: () => Xp,
    moveRangePos: () => X0,
    moveSyntheticComments: () => dfe,
    mutateMap: () => eC,
    mutateMapSkippingNewValues: () => ug,
    needsParentheses: () => q$,
    needsScopeMarker: () => LM,
    newCaseClauseTracker: () => u9,
    newPrivateEnvironment: () => Jme,
    noEmitNotification: () => b8,
    noEmitSubstitution: () => Yk,
    noTransformers: () => mX,
    noTruncationMaximumTruncationLength: () => j3,
    nodeCanBeDecorated: () => e3,
    nodeHasName: () => MR,
    nodeIsDecorated: () => FA,
    nodeIsMissing: () => xc,
    nodeIsPresent: () => u_,
    nodeIsSynthesized: () => Ys,
    nodeModuleNameResolver: () => jpe,
    nodeModulesPathPart: () => Sy,
    nodeNextJsonConfigResolver: () => Hpe,
    nodeOrChildIsDecorated: () => aN,
    nodeOverlapsWithStartEnd: () => m$,
    nodePosToString: () => $Oe,
    nodeSeenTracker: () => WC,
    nodeStartsNewLexicalEnvironment: () => mz,
    nodeToDisplayParts: () => k5e,
    noop: () => io,
    noopFileWatcher: () => GC,
    noopPush: () => G4,
    normalizePath: () => Wo,
    normalizeSlashes: () => Jl,
    not: () => M4,
    notImplemented: () => Va,
    notImplementedResolver: () => q5,
    nullNodeConverters: () => Fq,
    nullParenthesizerRules: () => Mq,
    nullTransformationContext: () => hg,
    objectAllocator: () => Bl,
    operatorPart: () => uw,
    optionDeclarations: () => pg,
    optionMapToObject: () => qJ,
    optionsAffectingProgramStructure: () => uK,
    optionsForBuild: () => fK,
    optionsForWatch: () => t8,
    optionsHaveChanges: () => IA,
    optionsHaveModuleResolutionChanges: () => Sle,
    or: () => Am,
    orderedRemoveItem: () => N4,
    orderedRemoveItemAt: () => a1,
    outFile: () => Hs,
    packageIdToPackageName: () => RM,
    packageIdToString: () => oT,
    padLeft: () => BS,
    padRight: () => CNe,
    paramHelper: () => e7,
    parameterIsThisKeyword: () => A1,
    parameterNamePart: () => Wye,
    parseBaseNodeFactory: () => GJ,
    parseBigInt: () => Rde,
    parseBuildCommand: () => jPe,
    parseCommandLine: () => VPe,
    parseCommandLineWorker: () => jJ,
    parseConfigFileTextToJson: () => zJ,
    parseConfigFileWithSystem: () => y7e,
    parseConfigHostFromCompilerHostLike: () => tF,
    parseCustomTypeOption: () => $7,
    parseIsolatedEntityName: () => Fx,
    parseIsolatedJSDocComment: () => N_e,
    parseJSDocTypeExpressionForTests: () => PPe,
    parseJsonConfigFileContent: () => QPe,
    parseJsonSourceFileConfigFileContent: () => KO,
    parseJsonText: () => HO,
    parseListTypeOption: () => W_e,
    parseNodeFactory: () => Wm,
    parseNodeModuleFromPath: () => EK,
    parsePackageName: () => AK,
    parsePseudoBigInt: () => lk,
    parseValidBigInt: () => dq,
    patchWriteFileEnsuringDirectory: () => sce,
    pathContainsNodeModules: () => Bx,
    pathIsAbsolute: () => sI,
    pathIsBareSpecifier: () => OH,
    pathIsRelative: () => vf,
    patternText: () => Cse,
    perfLogger: () => Hp,
    performIncrementalCompilation: () => b7e,
    performance: () => dR,
    plainJSErrors: () => oF,
    positionBelongsToNode: () => h$,
    positionIsASICandidate: () => QF,
    positionIsSynthesized: () => Yp,
    positionsAreOnSameLine: () => p_,
    preProcessFile: () => zve,
    probablyUsesSemicolons: () => ZF,
    processCommentPragmas: () => FJ,
    processPragmasIntoFields: () => BJ,
    processTaggedTemplateExpression: () => aX,
    programContainsEsModules: () => Bye,
    programContainsModules: () => Fye,
    projectReferenceIsEqualTo: () => LW,
    propKeyHelper: () => _7,
    propertyNamePart: () => zye,
    pseudoBigIntToString: () => k1,
    punctuationPart: () => yu,
    pushIfUnique: () => c_,
    quote: () => _w,
    quotePreferenceFromString: () => N$,
    rangeContainsPosition: () => H8,
    rangeContainsPositionExclusive: () => W8,
    rangeContainsRange: () => sf,
    rangeContainsRangeExclusive: () => gye,
    rangeContainsStartEnd: () => z8,
    rangeEndIsOnSameLineAsRangeStart: () => jN,
    rangeEndPositionsAreOnSameLine: () => ede,
    rangeEquals: () => uj,
    rangeIsOnSingleLine: () => bT,
    rangeOfNode: () => cq,
    rangeOfTypeParameters: () => lq,
    rangeOverlapsWithStartEnd: () => ow,
    rangeStartIsOnSameLineAsRangeEnd: () => tde,
    rangeStartPositionsAreOnSameLine: () => S3,
    readBuilderProgram: () => hF,
    readConfigFile: () => zO,
    readHelper: () => d7,
    readJson: () => $I,
    readJsonConfigFile: () => K_e,
    readJsonOrUndefined: () => Bz,
    realizeDiagnostics: () => qQ,
    reduceEachLeadingCommentRange: () => pce,
    reduceEachTrailingCommentRange: () => mce,
    reduceLeft: () => Iu,
    reduceLeftIterator: () => ri,
    reducePathComponents: () => YE,
    refactor: () => Bw,
    regExpEscape: () => Z8e,
    relativeComplement: () => lse,
    removeAllComments: () => dO,
    removeEmitHelper: () => I6e,
    removeExtension: () => QN,
    removeFileExtension: () => Md,
    removeIgnoredPath: () => nY,
    removeMinAndVersionNumbers: () => Ase,
    removeOptionality: () => Iye,
    removePrefix: () => rI,
    removeSuffix: () => pA,
    removeTrailingDirectorySeparator: () => $E,
    repeatString: () => Q8,
    replaceElement: () => fj,
    resolutionExtensionIsTSOrJson: () => ZN,
    resolveConfigFileProjectName: () => mY,
    resolveJSModule: () => Gpe,
    resolveModuleName: () => jk,
    resolveModuleNameFromCache: () => L4e,
    resolvePackageNameToPackageJson: () => E4e,
    resolvePath: () => hv,
    resolveProjectReferencePath: () => nw,
    resolveTripleslashReference: () => X5,
    resolveTypeReferenceDirective: () => mK,
    resolvingEmptyArray: () => V3,
    restHelper: () => s7,
    returnFalse: () => n1,
    returnNoopFileWatcher: () => O8,
    returnTrue: () => r1,
    returnUndefined: () => P0,
    returnsPromise: () => xQ,
    runInitializersHelper: () => n7,
    sameFlatMap: () => A4,
    sameMap: () => Zs,
    sameMapping: () => mMe,
    scanShebangTrivia: () => WH,
    scanTokenAtPosition: () => qle,
    scanner: () => vu,
    screenStartingMessageCodes: () => mF,
    semanticDiagnosticsOptionDeclarations: () => sK,
    serializeCompilerOptions: () => KJ,
    server: () => cye,
    servicesVersion: () => VQ,
    setCommentRange: () => Gl,
    setConfigFileInOptions: () => YJ,
    setConstantValue: () => _fe,
    setEachParent: () => iC,
    setEmitFlags: () => sr,
    setFunctionNameHelper: () => p7,
    setGetSourceFileAsHashVersioned: () => pF,
    setIdentifierAutoGenerate: () => hO,
    setIdentifierGeneratedImportReference: () => gfe,
    setIdentifierTypeArguments: () => vy,
    setInternalEmitFlags: () => fO,
    setLocalizedDiagnosticMessages: () => dde,
    setModuleDefaultHelper: () => g7,
    setNodeFlags: () => Pde,
    setObjectAllocator: () => ude,
    setOriginalNode: () => jr,
    setParent: () => Bo,
    setParentRecursive: () => Rv,
    setPrivateIdentifier: () => MT,
    setResolvedModule: () => Cle,
    setResolvedTypeReferenceDirective: () => Lle,
    setSnippetElement: () => Jq,
    setSourceMapRange: () => ls,
    setStackTraceLimit: () => tOe,
    setStartsOnNewLine: () => zq,
    setSyntheticLeadingComments: () => D1,
    setSyntheticTrailingComments: () => uC,
    setSys: () => uOe,
    setSysLog: () => rce,
    setTextRange: () => mt,
    setTextRangeEnd: () => rC,
    setTextRangePos: () => uk,
    setTextRangePosEnd: () => Bm,
    setTextRangePosWidth: () => dk,
    setTokenSourceMapRange: () => ufe,
    setTypeNode: () => mfe,
    setUILocale: () => Tse,
    setValueDeclaration: () => mN,
    shouldAllowImportingTsExtension: () => qk,
    shouldPreserveConstEnums: () => L1,
    shouldUseUriStyleNodeCoreModules: () => c9,
    showModuleSpecifier: () => ode,
    signatureHasLiteralTypes: () => GK,
    signatureHasRestParameter: () => gu,
    signatureToDisplayParts: () => U$,
    single: () => dj,
    singleElementArray: () => XE,
    singleIterator: () => dNe,
    singleOrMany: () => Sm,
    singleOrUndefined: () => Tm,
    skipAlias: () => af,
    skipAssertions: () => nPe,
    skipConstraint: () => w$,
    skipOuterExpressions: () => hu,
    skipParentheses: () => Gs,
    skipPartiallyEmittedExpressions: () => O_,
    skipTrivia: () => zo,
    skipTypeChecking: () => ck,
    skipTypeParentheses: () => lz,
    skipWhile: () => Dse,
    sliceAfter: () => sq,
    some: () => kt,
    sort: () => eI,
    sortAndDeduplicate: () => tR,
    sortAndDeduplicateDiagnostics: () => vA,
    sourceFileAffectingCompilerOptions: () => a5,
    sourceFileMayBeEmitted: () => ox,
    sourceMapCommentRegExp: () => O5,
    sourceMapCommentRegExpDontCareLineStart: () => KK,
    spacePart: () => vc,
    spanMap: () => C4,
    spreadArrayHelper: () => f7,
    stableSort: () => iy,
    startEndContainsRange: () => p$,
    startEndOverlapsWithStartEnd: () => LF,
    startOnNewLine: () => Fu,
    startTracing: () => $se,
    startsWith: () => ba,
    startsWithDirectory: () => BH,
    startsWithUnderscore: () => nQ,
    startsWithUseStrict: () => Zfe,
    stringContains: () => uu,
    stringContainsAt: () => mve,
    stringToToken: () => ZE,
    stripQuotes: () => G_,
    supportedDeclarationExtensions: () => z3,
    supportedJSExtensions: () => Oq,
    supportedJSExtensionsFlat: () => hk,
    supportedLocaleDirectories: () => xW,
    supportedTSExtensions: () => cC,
    supportedTSExtensionsFlat: () => Nq,
    supportedTSImplementationExtensions: () => q3,
    suppressLeadingAndTrailingTrivia: () => Vd,
    suppressLeadingTrivia: () => KF,
    suppressTrailingTrivia: () => tve,
    symbolEscapedNameNoDefault: () => HF,
    symbolName: () => Oc,
    symbolNameNoDefault: () => jF,
    symbolPart: () => Hye,
    symbolToDisplayParts: () => dw,
    syntaxMayBeASICandidate: () => oQ,
    syntaxRequiresTrailingSemicolonOrASI: () => $F,
    sys: () => ql,
    sysLog: () => yR,
    tagNamesAreEquivalent: () => tb,
    takeWhile: () => F4,
    targetOptionDeclaration: () => r8,
    templateObjectHelper: () => u7,
    testFormatSettings: () => uye,
    textChangeRangeIsUnchanged: () => Nce,
    textChangeRangeNewSpan: () => mI,
    textChanges: () => gr,
    textOrKeywordPart: () => B$,
    textPart: () => If,
    textRangeContainsPositionInclusive: () => pM,
    textSpanContainsPosition: () => qH,
    textSpanContainsTextSpan: () => kce,
    textSpanEnd: () => eu,
    textSpanIntersection: () => Rce,
    textSpanIntersectsWith: () => mM,
    textSpanIntersectsWithPosition: () => Dce,
    textSpanIntersectsWithTextSpan: () => LOe,
    textSpanIsEmpty: () => Ice,
    textSpanOverlap: () => wce,
    textSpanOverlapsWith: () => COe,
    textSpansEqual: () => qC,
    textToKeywordObj: () => NR,
    timestamp: () => rc,
    toArray: () => oR,
    toBuilderFileEmit: () => oge,
    toBuilderStateFileInfoForMultiEmit: () => age,
    toEditorSettings: () => _6,
    toFileNameLowerCase: () => D_,
    toLowerCase: () => gse,
    toPath: () => js,
    toProgramEmitPending: () => sge,
    tokenIsIdentifierOrKeyword: () => qu,
    tokenIsIdentifierOrKeywordOrGreaterThan: () => fce,
    tokenToString: () => ho,
    trace: () => _a,
    tracing: () => yi,
    tracingEnabled: () => fR,
    transform: () => i9e,
    transformClassFields: () => Qme,
    transformDeclarations: () => fX,
    transformECMAScriptModule: () => uX,
    transformES2015: () => fhe,
    transformES2016: () => uhe,
    transformES2017: () => nhe,
    transformES2018: () => rhe,
    transformES2019: () => ihe,
    transformES2020: () => ahe,
    transformES2021: () => ohe,
    transformES5: () => _he,
    transformESDecorators: () => the,
    transformESNext: () => she,
    transformGenerators: () => phe,
    transformJsx: () => che,
    transformLegacyDecorators: () => ehe,
    transformModule: () => lX,
    transformNodeModule: () => ghe,
    transformNodes: () => E8,
    transformSystemModule: () => hhe,
    transformTypeScript: () => Yme,
    transpile: () => wFe,
    transpileModule: () => t0e,
    transpileOptionValueCompilerOptions: () => dK,
    trimString: () => o1,
    trimStringEnd: () => lR,
    trimStringStart: () => iI,
    tryAddToSet: () => e1,
    tryAndIgnoreErrors: () => r9,
    tryCast: () => ii,
    tryDirectoryExists: () => n9,
    tryExtractTSExtension: () => E3,
    tryFileExists: () => t9,
    tryGetClassExtendingExpressionWithTypeArguments: () => Pz,
    tryGetClassImplementingOrExtendingExpressionWithTypeArguments: () => Mz,
    tryGetDirectories: () => e9,
    tryGetExtensionFromPath: () => bh,
    tryGetImportFromModuleSpecifier: () => yN,
    tryGetJSDocSatisfiesTypeNode: () => U3,
    tryGetModuleNameFromFile: () => MO,
    tryGetModuleSpecifierFromDeclaration: () => hN,
    tryGetNativePerformanceHooks: () => Jse,
    tryGetPropertyAccessOrIdentifierToString: () => VN,
    tryGetPropertyNameOfBindingOrAssignmentElement: () => H7,
    tryGetSourceMappingURL: () => Pme,
    tryGetTextOfPropertyName: () => UM,
    tryIOAndConsumeErrors: () => i9,
    tryParsePattern: () => nC,
    tryParsePatterns: () => P3,
    tryParseRawSourceMap: () => qK,
    tryReadDirectory: () => Y$,
    tryReadFile: () => qO,
    tryRemoveDirectoryPrefix: () => Zz,
    tryRemoveExtension: () => wde,
    tryRemovePrefix: () => vj,
    tryRemoveSuffix: () => xse,
    typeAcquisitionDeclarations: () => s5,
    typeAliasNamePart: () => qye,
    typeDirectiveIsEqualTo: () => kle,
    typeKeywords: () => d9,
    typeParameterNamePart: () => Jye,
    typeReferenceResolutionNameAndModeGetter: () => w8,
    typeToDisplayParts: () => r6,
    unchangedPollThresholds: () => ER,
    unchangedTextChangeRange: () => SW,
    unescapeLeadingUnderscores: () => ta,
    unmangleScopedPackageName: () => T5,
    unorderedRemoveItem: () => cR,
    unorderedRemoveItemAt: () => gj,
    unreachableCodeIsError: () => vde,
    unusedLabelIsError: () => bde,
    unwrapInnermostStatementOfLabel: () => YW,
    updateErrorForNoInputFiles: () => QJ,
    updateLanguageServiceSourceFile: () => GQ,
    updateMissingFilePathsWatch: () => Phe,
    updatePackageJsonWatch: () => U3e,
    updateResolutionField: () => OC,
    updateSharedExtendedConfigFileWatcher: () => TX,
    updateSourceFile: () => MJ,
    updateWatchingWildcardDirectories: () => J5,
    usesExtensionsOnImports: () => Lde,
    usingSingleLineStringWriter: () => II,
    utf16EncodeAsString: () => pI,
    validateLocaleAndSetLanguage: () => wOe,
    valuesHelper: () => m7,
    version: () => De,
    versionMajorMinor: () => me,
    visitArray: () => zK,
    visitCommaListElements: () => g8,
    visitEachChild: () => Gn,
    visitFunctionBody: () => Cf,
    visitIterationBody: () => g_,
    visitLexicalEnvironment: () => N5,
    visitNode: () => ct,
    visitNodes: () => Xn,
    visitParameterList: () => zc,
    walkUpBindingElementsAndPatterns: () => bA,
    walkUpLexicalEnvironments: () => qme,
    walkUpOuterExpressions: () => e_e,
    walkUpParenthesizedExpressions: () => Lv,
    walkUpParenthesizedTypes: () => SN,
    walkUpParenthesizedTypesAndGetParentAndChild: () => vue,
    whitespaceOrMapCommentRegExp: () => P5,
    writeCommentRange: () => $A,
    writeFile: () => WI,
    writeFileEnsuringDirectories: () => Iz,
    zipToModeAwareCache: () => bK,
    zipWith: () => gi
  });
  var sAe = C({
    "src/typescript/_namespaces/ts.ts"() {
      wa(), EF(), Xr(), sU();
    }
  }), tYe = U({
    "src/typescript/typescript.ts"(e, t) {
      sAe(), sAe(), 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 = oAe;
    }
  });
  return tYe();
})();
typeof YV < "u" && YV.exports && (YV.exports = Qb);
var hut = Qb.createClassifier, cNe = Qb.createLanguageService, gut = Qb.displayPartsToString, yut = Qb.EndOfLineState, vut = Qb.flattenDiagnosticMessageText, but = Qb.IndentStyle, XL = Qb.ScriptKind, Eut = Qb.ScriptTarget, Tut = Qb.TokenClass, lNe = Qb, ha = {};
ha["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" />
`;
ha["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;
}
`;
ha["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;
`;
ha["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";
`;
ha["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;
}
`;
ha["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;
`;
ha["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;
}
`;
ha["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" />
`;
ha["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;
}
`;
ha["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;
}
`;
ha["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;
`;
ha["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;
`;
ha["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;
}
`;
ha["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;`;
ha["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;
}
`;
ha["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;
}`;
ha["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" />`;
ha["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" />`;
ha["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" />
`;
ha["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" />`;
ha["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[];
    }
}
`;
ha["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 };
}
`;
ha["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;
`;
ha["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;
}
`;
ha["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;
}
`;
ha["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;
}
`;
ha["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>;
}`;
ha["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" />
`;
ha["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" />`;
ha["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[];
    }
}
`;
ha["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>
}
`;
ha["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;
}`;
ha["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>[]
}
`;
ha["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" />
`;
ha["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" />
`;
ha["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
    }
}
`;
ha["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;
}
`;
ha["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;
}
`;
ha["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;
}
`;
ha["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;
    }
}
`;
ha["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" />
`;
ha["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;
}`;
ha["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" />
`;
ha["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[];
    };

}
`;
ha["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;
}
`;
ha["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>>[]>;
}
`;
ha["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;
}
`;
ha["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>;
}
`;
ha["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>;
}
`;
ha["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" />
`;
ha["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" />
`;
ha["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[];
    };
}
`;
ha["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>>
}
`;
ha["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;
}
`;
ha["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;
`;
ha["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;
}
`;
ha["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" />
`;
ha["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;
}
`;
ha["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" />
`;
ha["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[];
    };
}
`;
ha["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;
}
`;
ha["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;
}
`;
ha["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"> };
}
`;
ha["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;
}
`;
ha["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;
}
`;
ha["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" />
`;
ha["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" />
`;
ha["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;
}
`;
ha["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" />
`;
ha["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" />
`;
ha["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" />`;
ha["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[];
  }
}
`;
ha["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;
}
`;
ha["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";
`;
ha["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;
`;
ha["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 k_(m) {
  return typeof m == "string" ? /^file:\/\/\//.test(m) ? !!ha[m.substr(8)] : !1 : m.path.indexOf("/lib.") === 0 ? !!ha[m.path.slice(1)] : !1;
}
var XD = class {
  constructor(m, E) {
    jD(this, "_ctx");
    jD(this, "_extraLibs", /* @__PURE__ */ Object.create(null));
    jD(this, "_languageService", cNe(this));
    jD(this, "_compilerOptions");
    jD(this, "_inlayHintsOptions");
    this._ctx = m, this._compilerOptions = E.compilerOptions, this._extraLibs = E.extraLibs, this._inlayHintsOptions = E.inlayHintsOptions;
  }
  getCompilationSettings() {
    return this._compilerOptions;
  }
  getLanguageService() {
    return this._languageService;
  }
  getExtraLibs() {
    return this._extraLibs;
  }
  getScriptFileNames() {
    return this._ctx.getMirrorModels().map((C) => C.uri).filter((C) => !k_(C)).map((C) => C.toString()).concat(Object.keys(this._extraLibs));
  }
  _getModel(m) {
    let E = this._ctx.getMirrorModels();
    for (let C = 0; C < E.length; C++) {
      const U = E[C].uri;
      if (U.toString() === m || U.toString(!0) === m)
        return E[C];
    }
    return null;
  }
  getScriptVersion(m) {
    let E = this._getModel(m);
    return E ? E.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 E, C = this._getModel(m);
    const U = "lib." + m + ".d.ts";
    if (C)
      E = C.getValue();
    else if (m in ha)
      E = ha[m];
    else if (U in ha)
      E = ha[U];
    else if (m in this._extraLibs)
      E = this._extraLibs[m].content;
    else
      return;
    return E;
  }
  getScriptSnapshot(m) {
    const E = this._getScriptText(m);
    if (E !== void 0)
      return {
        getText: (C, U) => E.substring(C, U),
        getLength: () => E.length,
        getChangeRange: () => {
        }
      };
  }
  getScriptKind(m) {
    switch (m.substr(m.lastIndexOf(".") + 1)) {
      case "ts":
        return XL.TS;
      case "tsx":
        return XL.TSX;
      case "js":
        return XL.JS;
      case "jsx":
        return XL.JSX;
      default:
        return this.getCompilationSettings().allowJs ? XL.JS : XL.TS;
    }
  }
  getCurrentDirectory() {
    return "";
  }
  getDefaultLibFileName(m) {
    switch (m.target) {
      case 99:
        const E = "lib.esnext.full.d.ts";
        if (E in ha || E in this._extraLibs)
          return E;
      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 ha || 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 ha;
  }
  static clearFiles(m) {
    const E = [];
    for (const C of m) {
      const U = { ...C };
      if (U.file = U.file ? { fileName: U.file.fileName } : void 0, C.relatedInformation) {
        U.relatedInformation = [];
        for (const le of C.relatedInformation) {
          const me = { ...le };
          me.file = me.file ? { fileName: me.file.fileName } : void 0, U.relatedInformation.push(me);
        }
      }
      E.push(U);
    }
    return E;
  }
  async getSyntacticDiagnostics(m) {
    if (k_(m))
      return [];
    const E = this._languageService.getSyntacticDiagnostics(m);
    return XD.clearFiles(E);
  }
  async getSemanticDiagnostics(m) {
    if (k_(m))
      return [];
    const E = this._languageService.getSemanticDiagnostics(m);
    return XD.clearFiles(E);
  }
  async getSuggestionDiagnostics(m) {
    if (k_(m))
      return [];
    const E = this._languageService.getSuggestionDiagnostics(m);
    return XD.clearFiles(E);
  }
  async getCompilerOptionsDiagnostics(m) {
    if (k_(m))
      return [];
    const E = this._languageService.getCompilerOptionsDiagnostics();
    return XD.clearFiles(E);
  }
  async getCompletionsAtPosition(m, E) {
    if (!k_(m))
      return this._languageService.getCompletionsAtPosition(m, E, void 0);
  }
  async getCompletionEntryDetails(m, E, C) {
    return this._languageService.getCompletionEntryDetails(m, E, C, void 0, void 0, void 0, void 0);
  }
  async getSignatureHelpItems(m, E, C) {
    if (!k_(m))
      return this._languageService.getSignatureHelpItems(m, E, C);
  }
  async getQuickInfoAtPosition(m, E) {
    if (!k_(m))
      return this._languageService.getQuickInfoAtPosition(m, E);
  }
  async getDocumentHighlights(m, E, C) {
    if (!k_(m))
      return this._languageService.getDocumentHighlights(m, E, C);
  }
  async getDefinitionAtPosition(m, E) {
    if (!k_(m))
      return this._languageService.getDefinitionAtPosition(m, E);
  }
  async getReferencesAtPosition(m, E) {
    if (!k_(m))
      return this._languageService.getReferencesAtPosition(m, E);
  }
  async getNavigationTree(m) {
    if (!k_(m))
      return this._languageService.getNavigationTree(m);
  }
  async getFormattingEditsForDocument(m, E) {
    return k_(m) ? [] : this._languageService.getFormattingEditsForDocument(m, E);
  }
  async getFormattingEditsForRange(m, E, C, U) {
    return k_(m) ? [] : this._languageService.getFormattingEditsForRange(m, E, C, U);
  }
  async getFormattingEditsAfterKeystroke(m, E, C, U) {
    return k_(m) ? [] : this._languageService.getFormattingEditsAfterKeystroke(m, E, C, U);
  }
  async findRenameLocations(m, E, C, U, le) {
    if (!k_(m))
      return this._languageService.findRenameLocations(m, E, C, U, le);
  }
  async getRenameInfo(m, E, C) {
    return k_(m) ? { canRename: !1, localizedErrorMessage: "Cannot rename in lib file" } : this._languageService.getRenameInfo(m, E, C);
  }
  async getEmitOutput(m) {
    return k_(m) ? { outputFiles: [], emitSkipped: !0 } : this._languageService.getEmitOutput(m);
  }
  async getCodeFixesAtPosition(m, E, C, U, le) {
    if (k_(m))
      return [];
    const me = {};
    try {
      return this._languageService.getCodeFixesAtPosition(m, E, C, U, le, me);
    } catch {
      return [];
    }
  }
  async updateExtraLibs(m) {
    this._extraLibs = m;
  }
  async provideInlayHints(m, E, C) {
    if (k_(m))
      return [];
    const U = this._inlayHintsOptions ?? {}, le = {
      start: E,
      length: C - E
    };
    try {
      return this._languageService.provideInlayHints(m, le, U);
    } catch {
      return [];
    }
  }
};
function Sut(m, E) {
  let C = XD;
  if (E.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(E.customWorkerPath);
      const U = self.customTSWorkerFactory;
      if (!U)
        throw new Error(`The script at ${E.customWorkerPath} does not add customTSWorkerFactory to self`);
      C = U(XD, sNe, ha);
    }
  return new C(m, E);
}
globalThis.ts = lNe;
self.onmessage = () => {
  oNe((m, E) => Sut(m, E));
};
/*! *****************************************************************************
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 {
  Sut as create
};
