(() => {
  'use strict';
  var e = {};
  e.g = (function () {
    if ('object' == typeof globalThis) return globalThis;
    try {
      return this || new Function('return this')();
    } catch (e) {
      if ('object' == typeof window) return window;
    }
  })();
  const t = new (class {
    constructor() {
      (this.listeners = []),
        (this.unexpectedErrorHandler = function (e) {
          setTimeout(() => {
            if (e.stack) throw new Error(e.message + '\n\n' + e.stack);
            throw e;
          }, 0);
        });
    }
    emit(e) {
      this.listeners.forEach((t) => {
        t(e);
      });
    }
    onUnexpectedError(e) {
      this.unexpectedErrorHandler(e), this.emit(e);
    }
    onUnexpectedExternalError(e) {
      this.unexpectedErrorHandler(e);
    }
  })();
  function n(e) {
    var n;
    ((n = e) instanceof Error && n.name === i && n.message === i) ||
      t.onUnexpectedError(e);
  }
  function r(e) {
    if (e instanceof Error) {
      let { name: t, message: n } = e;
      return {
        $isError: !0,
        name: t,
        message: n,
        stack: e.stacktrace || e.stack,
      };
    }
    return e;
  }
  const i = 'Canceled';
  var o;
  function s(e) {}
  !(function (e) {
    e.is = function (e) {
      return (
        e && 'object' == typeof e && 'function' == typeof e[Symbol.iterator]
      );
    };
    const t = Object.freeze([]);
    (e.empty = function () {
      return t;
    }),
      (e.single = function* (e) {
        yield e;
      }),
      (e.from = function (e) {
        return e || t;
      }),
      (e.first = function (e) {
        return e[Symbol.iterator]().next().value;
      }),
      (e.some = function (e, t) {
        for (const n of e) if (t(n)) return !0;
        return !1;
      }),
      (e.filter = function* (e, t) {
        for (const n of e) t(n) && (yield n);
      }),
      (e.map = function* (e, t) {
        for (const n of e) yield t(n);
      }),
      (e.concat = function* (...e) {
        for (const t of e) for (const e of t) yield e;
      }),
      (e.consume = function (t, n = Number.POSITIVE_INFINITY) {
        const r = [];
        if (0 === n) return [r, t];
        const i = t[Symbol.iterator]();
        for (let t = 0; t < n; t++) {
          const t = i.next();
          if (t.done) return [r, e.empty()];
          r.push(t.value);
        }
        return [r, { [Symbol.iterator]: () => i }];
      });
  })(o || (o = {}));
  class a extends Error {
    constructor(e) {
      super(
        `Encounter errors while disposing of store. Errors: [${e.join(', ')}]`
      ),
        (this.errors = e);
    }
  }
  function u(e) {
    if (o.is(e)) {
      let t = [];
      for (const n of e)
        if (n)
          try {
            n.dispose();
          } catch (e) {
            t.push(e);
          }
      if (1 === t.length) throw t[0];
      if (t.length > 1) throw new a(t);
      return Array.isArray(e) ? [] : e;
    }
    if (e) return e.dispose(), e;
  }
  class l {
    constructor() {
      (this._toDispose = new Set()), (this._isDisposed = !1);
    }
    dispose() {
      this._isDisposed || ((this._isDisposed = !0), this.clear());
    }
    clear() {
      try {
        u(this._toDispose.values());
      } finally {
        this._toDispose.clear();
      }
    }
    add(e) {
      if (!e) return e;
      if (e === this)
        throw new Error('Cannot register a disposable on itself!');
      return (
        this._isDisposed
          ? l.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
      );
    }
  }
  l.DISABLE_DISPOSED_WARNING = !1;
  class c {
    constructor() {
      this._store = new l();
    }
    dispose() {
      this._store.dispose();
    }
    _register(e) {
      if (e === this)
        throw new Error('Cannot register a disposable on itself!');
      return this._store.add(e);
    }
  }
  c.None = Object.freeze({ dispose() {} });
  const h = 'en';
  let f,
    d,
    m,
    g = !1,
    p = !1,
    v = !1,
    y = !1,
    b = !1,
    C = !1,
    _ = null;
  const S =
    'undefined' != typeof process &&
    void 0 !== process.versions &&
    void 0 !== process.versions.electron &&
    'renderer' === process.type;
  if ('object' != typeof navigator || S) {
    if ('object' == typeof process) {
      (g = 'win32' === process.platform),
        (p = 'darwin' === process.platform),
        (v = 'linux' === process.platform),
        (f = h),
        (_ = h);
      const e = process.env.VSCODE_NLS_CONFIG;
      if (e)
        try {
          const t = JSON.parse(e),
            n = t.availableLanguages['*'];
          (f = t.locale), (_ = n || h), (d = t._translationsConfigFile);
        } catch (e) {}
      y = !0;
    }
  } else
    (m = navigator.userAgent),
      (g = m.indexOf('Windows') >= 0),
      (p = m.indexOf('Macintosh') >= 0),
      (m.indexOf('Macintosh') >= 0 ||
        m.indexOf('iPad') >= 0 ||
        m.indexOf('iPhone') >= 0) &&
        !!navigator.maxTouchPoints &&
        navigator.maxTouchPoints > 0,
      (v = m.indexOf('Linux') >= 0),
      !0,
      (f = navigator.language),
      (_ = f);
  let E = 0;
  p ? (E = 1) : g ? (E = 3) : v && (E = 2);
  const A = g,
    x = p,
    N = 'object' == typeof self ? self : 'object' == typeof e.g ? e.g : {},
    L = (function () {
      if (N.setImmediate) return N.setImmediate.bind(N);
      if ('function' == typeof N.postMessage && !N.importScripts) {
        let e = [];
        N.addEventListener('message', (t) => {
          if (t.data && t.data.vscodeSetImmediateId)
            for (let n = 0, r = e.length; n < r; n++) {
              const r = e[n];
              if (r.id === t.data.vscodeSetImmediateId)
                return e.splice(n, 1), void r.callback();
            }
        });
        let t = 0;
        return (n) => {
          const r = ++t;
          e.push({ id: r, callback: n }),
            N.postMessage({ vscodeSetImmediateId: r }, '*');
        };
      }
      if (
        'undefined' != typeof process &&
        'function' == typeof process.nextTick
      )
        return process.nextTick.bind(process);
      const e = Promise.resolve();
      return (t) => e.then(t);
    })();
  function w(e) {
    const t = [];
    for (const n of (function (e) {
      let t = [],
        n = Object.getPrototypeOf(e);
      for (; Object.prototype !== n; )
        (t = t.concat(Object.getOwnPropertyNames(n))),
          (n = Object.getPrototypeOf(n));
      return t;
    })(e))
      'function' == typeof e[n] && t.push(n);
    return t;
  }
  function T(e, t) {
    const n = (e) =>
      function () {
        const n = Array.prototype.slice.call(arguments, 0);
        return t(e, n);
      };
    let r = {};
    for (const t of e) r[t] = n(t);
    return r;
  }
  class k {
    constructor(e) {
      (this._workerId = -1),
        (this._handler = e),
        (this._lastSentReq = 0),
        (this._pendingReplies = Object.create(null));
    }
    setWorkerId(e) {
      this._workerId = e;
    }
    sendMessage(e, t) {
      let n = String(++this._lastSentReq);
      return new Promise((r, i) => {
        (this._pendingReplies[n] = { resolve: r, reject: i }),
          this._send({ vsWorker: this._workerId, req: n, method: e, args: t });
      });
    }
    handleMessage(e) {
      e &&
        e.vsWorker &&
        ((-1 !== this._workerId && e.vsWorker !== this._workerId) ||
          this._handleMessage(e));
    }
    _handleMessage(e) {
      if (e.seq) {
        let t = e;
        if (!this._pendingReplies[t.seq])
          return void console.warn('Got reply to unknown seq');
        let n = this._pendingReplies[t.seq];
        if ((delete this._pendingReplies[t.seq], t.err)) {
          let e = t.err;
          return (
            t.err.$isError &&
              ((e = new Error()),
              (e.name = t.err.name),
              (e.message = t.err.message),
              (e.stack = t.err.stack)),
            void n.reject(e)
          );
        }
        return void n.resolve(t.res);
      }
      let t = e,
        n = t.req;
      this._handler.handleMessage(t.method, t.args).then(
        (e) => {
          this._send({ vsWorker: this._workerId, seq: n, res: e, err: void 0 });
        },
        (e) => {
          e.detail instanceof Error && (e.detail = r(e.detail)),
            this._send({
              vsWorker: this._workerId,
              seq: n,
              res: void 0,
              err: r(e),
            });
        }
      );
    }
    _send(e) {
      let t = [];
      if (e.req) {
        const n = e;
        for (let e = 0; e < n.args.length; e++)
          n.args[e] instanceof ArrayBuffer && t.push(n.args[e]);
      } else {
        const n = e;
        n.res instanceof ArrayBuffer && t.push(n.res);
      }
      this._handler.sendMessage(e, t);
    }
  }
  class O {
    constructor(e, t) {
      (this._requestHandlerFactory = t),
        (this._requestHandler = null),
        (this._protocol = new k({
          sendMessage: (t, n) => {
            e(t, n);
          },
          handleMessage: (e, t) => this._handleMessage(e, t),
        }));
    }
    onmessage(e) {
      this._protocol.handleMessage(e);
    }
    _handleMessage(e, t) {
      if ('$initialize' === e) return this.initialize(t[0], t[1], t[2], t[3]);
      if (!this._requestHandler || 'function' != typeof this._requestHandler[e])
        return Promise.reject(
          new Error('Missing requestHandler or method: ' + e)
        );
      try {
        return Promise.resolve(
          this._requestHandler[e].apply(this._requestHandler, t)
        );
      } catch (e) {
        return Promise.reject(e);
      }
    }
    initialize(e, t, n, r) {
      this._protocol.setWorkerId(e);
      const i = T(r, (e, t) => this._protocol.sendMessage(e, t));
      return this._requestHandlerFactory
        ? ((this._requestHandler = this._requestHandlerFactory(i)),
          Promise.resolve(w(this._requestHandler)))
        : (t &&
            (void 0 !== t.baseUrl && delete t.baseUrl,
            void 0 !== t.paths && void 0 !== t.paths.vs && delete t.paths.vs,
            (t.catchError = !0),
            self.require.config(t)),
          new Promise((e, t) => {
            self.require(
              [n],
              (n) => {
                (this._requestHandler = n.create(i)),
                  this._requestHandler
                    ? e(w(this._requestHandler))
                    : t(new Error('No RequestHandler!'));
              },
              t
            );
          }));
    }
  }
  function I(e, t) {
    return M(e, t, 0, e.length - 1, []), e;
  }
  function M(e, t, n, r, i) {
    if (r <= n) return;
    const o = (n + (r - n) / 2) | 0;
    M(e, t, n, o, i),
      M(e, t, o + 1, r, i),
      t(e[o], e[o + 1]) <= 0 ||
        (function (e, t, n, r, i, o) {
          let s = n,
            a = r + 1;
          for (let t = n; t <= i; t++) o[t] = e[t];
          for (let u = n; u <= i; u++)
            s > r
              ? (e[u] = o[a++])
              : a > i
              ? (e[u] = o[s++])
              : t(o[a], o[s]) < 0
              ? (e[u] = o[a++])
              : (e[u] = o[s++]);
        })(e, t, n, o, r, i);
  }
  class P {
    constructor(e, t, n, r) {
      (this.originalStart = e),
        (this.originalLength = t),
        (this.modifiedStart = n),
        (this.modifiedLength = r);
    }
    getOriginalEnd() {
      return this.originalStart + this.originalLength;
    }
    getModifiedEnd() {
      return this.modifiedStart + this.modifiedLength;
    }
  }
  function R(e) {
    return 55296 <= e && e <= 56319;
  }
  function D(e) {
    return 56320 <= e && e <= 57343;
  }
  String.fromCharCode(65279);
  class F {
    constructor() {
      this._data = JSON.parse(
        '[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]'
      );
    }
    static getInstance() {
      return F._INSTANCE || (F._INSTANCE = new F()), F._INSTANCE;
    }
    getGraphemeBreakType(e) {
      if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4;
      if (e < 127) return 0;
      const t = this._data,
        n = t.length / 3;
      let r = 1;
      for (; r <= n; )
        if (e < t[3 * r]) r *= 2;
        else {
          if (!(e > t[3 * r + 1])) return t[3 * r + 2];
          r = 2 * r + 1;
        }
      return 0;
    }
  }
  function j(e, t) {
    return ((t << 5) - t + e) | 0;
  }
  function U(e, t) {
    t = j(149417, t);
    for (let n = 0, r = e.length; n < r; n++) t = j(e.charCodeAt(n), t);
    return t;
  }
  function V(e, t, n = 32) {
    const r = n - t;
    return ((e << t) | ((~((1 << r) - 1) & e) >>> r)) >>> 0;
  }
  function $(e, t = 0, n = e.byteLength, r = 0) {
    for (let i = 0; i < n; i++) e[t + i] = r;
  }
  function W(e, t = 32) {
    return (function (e, t, n = '0') {
      for (; e.length < t; ) e = n + e;
      return e;
    })((e >>> 0).toString(16), t / 4);
  }
  F._INSTANCE = null;
  class q {
    constructor() {
      (this._h0 = 1732584193),
        (this._h1 = 4023233417),
        (this._h2 = 2562383102),
        (this._h3 = 271733878),
        (this._h4 = 3285377520),
        (this._buff = new Uint8Array(67)),
        (this._buffDV = new DataView(this._buff.buffer)),
        (this._buffLen = 0),
        (this._totalLen = 0),
        (this._leftoverHighSurrogate = 0),
        (this._finished = !1);
    }
    update(e) {
      const t = e.length;
      if (0 === t) return;
      const n = this._buff;
      let r,
        i,
        o = this._buffLen,
        s = this._leftoverHighSurrogate;
      for (
        0 !== s
          ? ((r = s), (i = -1), (s = 0))
          : ((r = e.charCodeAt(0)), (i = 0));
        ;

      ) {
        let a = r;
        if (R(r)) {
          if (!(i + 1 < t)) {
            s = r;
            break;
          }
          {
            const t = e.charCodeAt(i + 1);
            D(t)
              ? (i++, (a = t - 56320 + ((r - 55296) << 10) + 65536))
              : (a = 65533);
          }
        } else D(r) && (a = 65533);
        if (((o = this._push(n, o, a)), i++, !(i < t))) break;
        r = e.charCodeAt(i);
      }
      (this._buffLen = o), (this._leftoverHighSurrogate = s);
    }
    _push(e, t, n) {
      return (
        n < 128
          ? (e[t++] = n)
          : n < 2048
          ? ((e[t++] = 192 | ((1984 & n) >>> 6)),
            (e[t++] = 128 | ((63 & n) >>> 0)))
          : n < 65536
          ? ((e[t++] = 224 | ((61440 & n) >>> 12)),
            (e[t++] = 128 | ((4032 & n) >>> 6)),
            (e[t++] = 128 | ((63 & n) >>> 0)))
          : ((e[t++] = 240 | ((1835008 & n) >>> 18)),
            (e[t++] = 128 | ((258048 & n) >>> 12)),
            (e[t++] = 128 | ((4032 & n) >>> 6)),
            (e[t++] = 128 | ((63 & n) >>> 0))),
        t >= 64 &&
          (this._step(),
          (t -= 64),
          (this._totalLen += 64),
          (e[0] = e[64]),
          (e[1] = e[65]),
          (e[2] = e[66])),
        t
      );
    }
    digest() {
      return (
        this._finished ||
          ((this._finished = !0),
          this._leftoverHighSurrogate &&
            ((this._leftoverHighSurrogate = 0),
            (this._buffLen = this._push(this._buff, this._buffLen, 65533))),
          (this._totalLen += this._buffLen),
          this._wrapUp()),
        W(this._h0) + W(this._h1) + W(this._h2) + W(this._h3) + W(this._h4)
      );
    }
    _wrapUp() {
      (this._buff[this._buffLen++] = 128),
        $(this._buff, this._buffLen),
        this._buffLen > 56 && (this._step(), $(this._buff));
      const e = 8 * this._totalLen;
      this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1),
        this._buffDV.setUint32(60, e % 4294967296, !1),
        this._step();
    }
    _step() {
      const e = q._bigBlock32,
        t = this._buffDV;
      for (let n = 0; n < 64; n += 4) e.setUint32(n, t.getUint32(n, !1), !1);
      for (let t = 64; t < 320; t += 4)
        e.setUint32(
          t,
          V(
            e.getUint32(t - 12, !1) ^
              e.getUint32(t - 32, !1) ^
              e.getUint32(t - 56, !1) ^
              e.getUint32(t - 64, !1),
            1
          ),
          !1
        );
      let n,
        r,
        i,
        o = this._h0,
        s = this._h1,
        a = this._h2,
        u = this._h3,
        l = this._h4;
      for (let t = 0; t < 80; t++)
        t < 20
          ? ((n = (s & a) | (~s & u)), (r = 1518500249))
          : t < 40
          ? ((n = s ^ a ^ u), (r = 1859775393))
          : t < 60
          ? ((n = (s & a) | (s & u) | (a & u)), (r = 2400959708))
          : ((n = s ^ a ^ u), (r = 3395469782)),
          (i = (V(o, 5) + n + l + r + e.getUint32(4 * t, !1)) & 4294967295),
          (l = u),
          (u = a),
          (a = V(s, 30)),
          (s = o),
          (o = i);
      (this._h0 = (this._h0 + o) & 4294967295),
        (this._h1 = (this._h1 + s) & 4294967295),
        (this._h2 = (this._h2 + a) & 4294967295),
        (this._h3 = (this._h3 + u) & 4294967295),
        (this._h4 = (this._h4 + l) & 4294967295);
    }
  }
  q._bigBlock32 = new DataView(new ArrayBuffer(320));
  class K {
    constructor(e) {
      this.source = e;
    }
    getElements() {
      const e = this.source,
        t = new Int32Array(e.length);
      for (let n = 0, r = e.length; n < r; n++) t[n] = e.charCodeAt(n);
      return t;
    }
  }
  function B(e, t, n) {
    return new z(new K(e), new K(t)).ComputeDiff(n).changes;
  }
  class H {
    static Assert(e, t) {
      if (!e) throw new Error(t);
    }
  }
  class Y {
    static Copy(e, t, n, r, i) {
      for (let o = 0; o < i; o++) n[r + o] = e[t + o];
    }
    static Copy2(e, t, n, r, i) {
      for (let o = 0; o < i; o++) n[r + o] = e[t + o];
    }
  }
  class G {
    constructor() {
      (this.m_changes = []),
        (this.m_originalStart = 1073741824),
        (this.m_modifiedStart = 1073741824),
        (this.m_originalCount = 0),
        (this.m_modifiedCount = 0);
    }
    MarkNextChange() {
      (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
        this.m_changes.push(
          new P(
            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);
    }
    AddOriginalElement(e, t) {
      (this.m_originalStart = Math.min(this.m_originalStart, e)),
        (this.m_modifiedStart = Math.min(this.m_modifiedStart, t)),
        this.m_originalCount++;
    }
    AddModifiedElement(e, t) {
      (this.m_originalStart = Math.min(this.m_originalStart, e)),
        (this.m_modifiedStart = Math.min(this.m_modifiedStart, t)),
        this.m_modifiedCount++;
    }
    getChanges() {
      return (
        (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
          this.MarkNextChange(),
        this.m_changes
      );
    }
    getReverseChanges() {
      return (
        (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
          this.MarkNextChange(),
        this.m_changes.reverse(),
        this.m_changes
      );
    }
  }
  class z {
    constructor(e, t, n = null) {
      this.ContinueProcessingPredicate = n;
      const [r, i, o] = z._getElements(e),
        [s, a, u] = z._getElements(t);
      (this._hasStrings = o && u),
        (this._originalStringElements = r),
        (this._originalElementsOrHash = i),
        (this._modifiedStringElements = s),
        (this._modifiedElementsOrHash = a),
        (this.m_forwardHistory = []),
        (this.m_reverseHistory = []);
    }
    static _isStringArray(e) {
      return e.length > 0 && 'string' == typeof e[0];
    }
    static _getElements(e) {
      const t = e.getElements();
      if (z._isStringArray(t)) {
        const e = new Int32Array(t.length);
        for (let n = 0, r = t.length; n < r; n++) e[n] = U(t[n], 0);
        return [t, e, !0];
      }
      return t instanceof Int32Array
        ? [[], t, !1]
        : [[], new Int32Array(t), !1];
    }
    ElementsAreEqual(e, t) {
      return (
        this._originalElementsOrHash[e] === this._modifiedElementsOrHash[t] &&
        (!this._hasStrings ||
          this._originalStringElements[e] === this._modifiedStringElements[t])
      );
    }
    OriginalElementsAreEqual(e, t) {
      return (
        this._originalElementsOrHash[e] === this._originalElementsOrHash[t] &&
        (!this._hasStrings ||
          this._originalStringElements[e] === this._originalStringElements[t])
      );
    }
    ModifiedElementsAreEqual(e, t) {
      return (
        this._modifiedElementsOrHash[e] === this._modifiedElementsOrHash[t] &&
        (!this._hasStrings ||
          this._modifiedStringElements[e] === this._modifiedStringElements[t])
      );
    }
    ComputeDiff(e) {
      return this._ComputeDiff(
        0,
        this._originalElementsOrHash.length - 1,
        0,
        this._modifiedElementsOrHash.length - 1,
        e
      );
    }
    _ComputeDiff(e, t, n, r, i) {
      const o = [!1];
      let s = this.ComputeDiffRecursive(e, t, n, r, o);
      return (
        i && (s = this.PrettifyChanges(s)), { quitEarly: o[0], changes: s }
      );
    }
    ComputeDiffRecursive(e, t, n, r, i) {
      for (i[0] = !1; e <= t && n <= r && this.ElementsAreEqual(e, n); )
        e++, n++;
      for (; t >= e && r >= n && this.ElementsAreEqual(t, r); ) t--, r--;
      if (e > t || n > r) {
        let i;
        return (
          n <= r
            ? (H.Assert(
                e === t + 1,
                'originalStart should only be one more than originalEnd'
              ),
              (i = [new P(e, 0, n, r - n + 1)]))
            : e <= t
            ? (H.Assert(
                n === r + 1,
                'modifiedStart should only be one more than modifiedEnd'
              ),
              (i = [new P(e, t - e + 1, n, 0)]))
            : (H.Assert(
                e === t + 1,
                'originalStart should only be one more than originalEnd'
              ),
              H.Assert(
                n === r + 1,
                'modifiedStart should only be one more than modifiedEnd'
              ),
              (i = [])),
          i
        );
      }
      const o = [0],
        s = [0],
        a = this.ComputeRecursionPoint(e, t, n, r, o, s, i),
        u = o[0],
        l = s[0];
      if (null !== a) return a;
      if (!i[0]) {
        const o = this.ComputeDiffRecursive(e, u, n, l, i);
        let s = [];
        return (
          (s = i[0]
            ? [new P(u + 1, t - (u + 1) + 1, l + 1, r - (l + 1) + 1)]
            : this.ComputeDiffRecursive(u + 1, t, l + 1, r, i)),
          this.ConcatenateChanges(o, s)
        );
      }
      return [new P(e, t - e + 1, n, r - n + 1)];
    }
    WALKTRACE(e, t, n, r, i, o, s, a, u, l, c, h, f, d, m, g, p, v) {
      let y = null,
        b = null,
        C = new G(),
        _ = t,
        S = n,
        E = f[0] - g[0] - r,
        A = -1073741824,
        x = this.m_forwardHistory.length - 1;
      do {
        const t = E + e;
        t === _ || (t < S && u[t - 1] < u[t + 1])
          ? ((d = (c = u[t + 1]) - E - r),
            c < A && C.MarkNextChange(),
            (A = c),
            C.AddModifiedElement(c + 1, d),
            (E = t + 1 - e))
          : ((d = (c = u[t - 1] + 1) - E - r),
            c < A && C.MarkNextChange(),
            (A = c - 1),
            C.AddOriginalElement(c, d + 1),
            (E = t - 1 - e)),
          x >= 0 &&
            ((e = (u = this.m_forwardHistory[x])[0]),
            (_ = 1),
            (S = u.length - 1));
      } while (--x >= -1);
      if (((y = C.getReverseChanges()), v[0])) {
        let e = f[0] + 1,
          t = g[0] + 1;
        if (null !== y && y.length > 0) {
          const n = y[y.length - 1];
          (e = Math.max(e, n.getOriginalEnd())),
            (t = Math.max(t, n.getModifiedEnd()));
        }
        b = [new P(e, h - e + 1, t, m - t + 1)];
      } else {
        (C = new G()),
          (_ = o),
          (S = s),
          (E = f[0] - g[0] - a),
          (A = 1073741824),
          (x = p
            ? this.m_reverseHistory.length - 1
            : this.m_reverseHistory.length - 2);
        do {
          const e = E + i;
          e === _ || (e < S && l[e - 1] >= l[e + 1])
            ? ((d = (c = l[e + 1] - 1) - E - a),
              c > A && C.MarkNextChange(),
              (A = c + 1),
              C.AddOriginalElement(c + 1, d + 1),
              (E = e + 1 - i))
            : ((d = (c = l[e - 1]) - E - a),
              c > A && C.MarkNextChange(),
              (A = c),
              C.AddModifiedElement(c + 1, d + 1),
              (E = e - 1 - i)),
            x >= 0 &&
              ((i = (l = this.m_reverseHistory[x])[0]),
              (_ = 1),
              (S = l.length - 1));
        } while (--x >= -1);
        b = C.getChanges();
      }
      return this.ConcatenateChanges(y, b);
    }
    ComputeRecursionPoint(e, t, n, r, i, o, s) {
      let a = 0,
        u = 0,
        l = 0,
        c = 0,
        h = 0,
        f = 0;
      e--,
        n--,
        (i[0] = 0),
        (o[0] = 0),
        (this.m_forwardHistory = []),
        (this.m_reverseHistory = []);
      const d = t - e + (r - n),
        m = d + 1,
        g = new Int32Array(m),
        p = new Int32Array(m),
        v = r - n,
        y = t - e,
        b = e - n,
        C = t - r,
        _ = (y - v) % 2 == 0;
      (g[v] = e), (p[y] = t), (s[0] = !1);
      for (let S = 1; S <= d / 2 + 1; S++) {
        let d = 0,
          E = 0;
        (l = this.ClipDiagonalBound(v - S, S, v, m)),
          (c = this.ClipDiagonalBound(v + S, S, v, m));
        for (let e = l; e <= c; e += 2) {
          (a =
            e === l || (e < c && g[e - 1] < g[e + 1])
              ? g[e + 1]
              : g[e - 1] + 1),
            (u = a - (e - v) - b);
          const n = a;
          for (; a < t && u < r && this.ElementsAreEqual(a + 1, u + 1); )
            a++, u++;
          if (
            ((g[e] = a),
            a + u > d + E && ((d = a), (E = u)),
            !_ && Math.abs(e - y) <= S - 1 && a >= p[e])
          )
            return (
              (i[0] = a),
              (o[0] = u),
              n <= p[e] && S <= 1448
                ? this.WALKTRACE(
                    v,
                    l,
                    c,
                    b,
                    y,
                    h,
                    f,
                    C,
                    g,
                    p,
                    a,
                    t,
                    i,
                    u,
                    r,
                    o,
                    _,
                    s
                  )
                : null
            );
        }
        const A = (d - e + (E - n) - S) / 2;
        if (
          null !== this.ContinueProcessingPredicate &&
          !this.ContinueProcessingPredicate(d, A)
        )
          return (
            (s[0] = !0),
            (i[0] = d),
            (o[0] = E),
            A > 0 && S <= 1448
              ? this.WALKTRACE(
                  v,
                  l,
                  c,
                  b,
                  y,
                  h,
                  f,
                  C,
                  g,
                  p,
                  a,
                  t,
                  i,
                  u,
                  r,
                  o,
                  _,
                  s
                )
              : (e++, n++, [new P(e, t - e + 1, n, r - n + 1)])
          );
        (h = this.ClipDiagonalBound(y - S, S, y, m)),
          (f = this.ClipDiagonalBound(y + S, S, y, m));
        for (let d = h; d <= f; d += 2) {
          (a =
            d === h || (d < f && p[d - 1] >= p[d + 1])
              ? p[d + 1] - 1
              : p[d - 1]),
            (u = a - (d - y) - C);
          const m = a;
          for (; a > e && u > n && this.ElementsAreEqual(a, u); ) a--, u--;
          if (((p[d] = a), _ && Math.abs(d - v) <= S && a <= g[d]))
            return (
              (i[0] = a),
              (o[0] = u),
              m >= g[d] && S <= 1448
                ? this.WALKTRACE(
                    v,
                    l,
                    c,
                    b,
                    y,
                    h,
                    f,
                    C,
                    g,
                    p,
                    a,
                    t,
                    i,
                    u,
                    r,
                    o,
                    _,
                    s
                  )
                : null
            );
        }
        if (S <= 1447) {
          let e = new Int32Array(c - l + 2);
          (e[0] = v - l + 1),
            Y.Copy2(g, l, e, 1, c - l + 1),
            this.m_forwardHistory.push(e),
            (e = new Int32Array(f - h + 2)),
            (e[0] = y - h + 1),
            Y.Copy2(p, h, e, 1, f - h + 1),
            this.m_reverseHistory.push(e);
        }
      }
      return this.WALKTRACE(
        v,
        l,
        c,
        b,
        y,
        h,
        f,
        C,
        g,
        p,
        a,
        t,
        i,
        u,
        r,
        o,
        _,
        s
      );
    }
    PrettifyChanges(e) {
      for (let t = 0; t < e.length; t++) {
        const n = e[t],
          r =
            t < e.length - 1
              ? e[t + 1].originalStart
              : this._originalElementsOrHash.length,
          i =
            t < e.length - 1
              ? e[t + 1].modifiedStart
              : this._modifiedElementsOrHash.length,
          o = n.originalLength > 0,
          s = n.modifiedLength > 0;
        for (
          ;
          n.originalStart + n.originalLength < r &&
          n.modifiedStart + n.modifiedLength < i &&
          (!o ||
            this.OriginalElementsAreEqual(
              n.originalStart,
              n.originalStart + n.originalLength
            )) &&
          (!s ||
            this.ModifiedElementsAreEqual(
              n.modifiedStart,
              n.modifiedStart + n.modifiedLength
            ));

        )
          n.originalStart++, n.modifiedStart++;
        let a = [null];
        t < e.length - 1 &&
          this.ChangesOverlap(e[t], e[t + 1], a) &&
          ((e[t] = a[0]), e.splice(t + 1, 1), t--);
      }
      for (let t = e.length - 1; t >= 0; t--) {
        const n = e[t];
        let r = 0,
          i = 0;
        if (t > 0) {
          const n = e[t - 1];
          n.originalLength > 0 && (r = n.originalStart + n.originalLength),
            n.modifiedLength > 0 && (i = n.modifiedStart + n.modifiedLength);
        }
        const o = n.originalLength > 0,
          s = n.modifiedLength > 0;
        let a = 0,
          u = this._boundaryScore(
            n.originalStart,
            n.originalLength,
            n.modifiedStart,
            n.modifiedLength
          );
        for (let e = 1; ; e++) {
          const t = n.originalStart - e,
            l = n.modifiedStart - e;
          if (t < r || l < i) break;
          if (o && !this.OriginalElementsAreEqual(t, t + n.originalLength))
            break;
          if (s && !this.ModifiedElementsAreEqual(l, l + n.modifiedLength))
            break;
          const c = this._boundaryScore(
            t,
            n.originalLength,
            l,
            n.modifiedLength
          );
          c > u && ((u = c), (a = e));
        }
        (n.originalStart -= a), (n.modifiedStart -= a);
      }
      return e;
    }
    _OriginalIsBoundary(e) {
      return (
        e <= 0 ||
        e >= this._originalElementsOrHash.length - 1 ||
        (this._hasStrings && /^\s*$/.test(this._originalStringElements[e]))
      );
    }
    _OriginalRegionIsBoundary(e, t) {
      if (this._OriginalIsBoundary(e) || this._OriginalIsBoundary(e - 1))
        return !0;
      if (t > 0) {
        const n = e + t;
        if (this._OriginalIsBoundary(n - 1) || this._OriginalIsBoundary(n))
          return !0;
      }
      return !1;
    }
    _ModifiedIsBoundary(e) {
      return (
        e <= 0 ||
        e >= this._modifiedElementsOrHash.length - 1 ||
        (this._hasStrings && /^\s*$/.test(this._modifiedStringElements[e]))
      );
    }
    _ModifiedRegionIsBoundary(e, t) {
      if (this._ModifiedIsBoundary(e) || this._ModifiedIsBoundary(e - 1))
        return !0;
      if (t > 0) {
        const n = e + t;
        if (this._ModifiedIsBoundary(n - 1) || this._ModifiedIsBoundary(n))
          return !0;
      }
      return !1;
    }
    _boundaryScore(e, t, n, r) {
      return (
        (this._OriginalRegionIsBoundary(e, t) ? 1 : 0) +
        (this._ModifiedRegionIsBoundary(n, r) ? 1 : 0)
      );
    }
    ConcatenateChanges(e, t) {
      let n = [];
      if (0 === e.length || 0 === t.length) return t.length > 0 ? t : e;
      if (this.ChangesOverlap(e[e.length - 1], t[0], n)) {
        const r = new Array(e.length + t.length - 1);
        return (
          Y.Copy(e, 0, r, 0, e.length - 1),
          (r[e.length - 1] = n[0]),
          Y.Copy(t, 1, r, e.length, t.length - 1),
          r
        );
      }
      {
        const n = new Array(e.length + t.length);
        return (
          Y.Copy(e, 0, n, 0, e.length), Y.Copy(t, 0, n, e.length, t.length), n
        );
      }
    }
    ChangesOverlap(e, t, n) {
      if (
        (H.Assert(
          e.originalStart <= t.originalStart,
          'Left change is not less than or equal to right change'
        ),
        H.Assert(
          e.modifiedStart <= t.modifiedStart,
          'Left change is not less than or equal to right change'
        ),
        e.originalStart + e.originalLength >= t.originalStart ||
          e.modifiedStart + e.modifiedLength >= t.modifiedStart)
      ) {
        const r = e.originalStart;
        let i = e.originalLength;
        const o = e.modifiedStart;
        let s = e.modifiedLength;
        return (
          e.originalStart + e.originalLength >= t.originalStart &&
            (i = t.originalStart + t.originalLength - e.originalStart),
          e.modifiedStart + e.modifiedLength >= t.modifiedStart &&
            (s = t.modifiedStart + t.modifiedLength - e.modifiedStart),
          (n[0] = new P(r, i, o, s)),
          !0
        );
      }
      return (n[0] = null), !1;
    }
    ClipDiagonalBound(e, t, n, r) {
      if (e >= 0 && e < r) return e;
      const i = t % 2 == 0;
      return e < 0
        ? i === (n % 2 == 0)
          ? 0
          : 1
        : i === ((r - n - 1) % 2 == 0)
        ? r - 1
        : r - 2;
    }
  }
  const J =
      'undefined' == typeof process
        ? {
            cwd: () => '/',
            env: Object.create(null),
            get platform() {
              return A ? 'win32' : x ? 'darwin' : 'linux';
            },
            nextTick: (e) => L(e),
          }
        : process,
    Q = J.cwd,
    Z = J.env,
    X = J.platform,
    ee = 46,
    te = 47,
    ne = 92,
    re = 58;
  class ie extends Error {
    constructor(e, t, n) {
      let r;
      'string' == typeof t && 0 === t.indexOf('not ')
        ? ((r = 'must not be'), (t = t.replace(/^not /, '')))
        : (r = 'must be');
      const i = -1 !== e.indexOf('.') ? 'property' : 'argument';
      let o = `The "${e}" ${i} ${r} of type ${t}`;
      (o += '. Received type ' + typeof n),
        super(o),
        (this.code = 'ERR_INVALID_ARG_TYPE');
    }
  }
  function oe(e, t) {
    if ('string' != typeof e) throw new ie(t, 'string', e);
  }
  function se(e) {
    return e === te || e === ne;
  }
  function ae(e) {
    return e === te;
  }
  function ue(e) {
    return (e >= 65 && e <= 90) || (e >= 97 && e <= 122);
  }
  function le(e, t, n, r) {
    let i = '',
      o = 0,
      s = -1,
      a = 0,
      u = 0;
    for (let l = 0; l <= e.length; ++l) {
      if (l < e.length) u = e.charCodeAt(l);
      else {
        if (r(u)) break;
        u = te;
      }
      if (r(u)) {
        if (s === l - 1 || 1 === a);
        else if (2 === a) {
          if (
            i.length < 2 ||
            2 !== o ||
            i.charCodeAt(i.length - 1) !== ee ||
            i.charCodeAt(i.length - 2) !== ee
          ) {
            if (i.length > 2) {
              const e = i.lastIndexOf(n);
              -1 === e
                ? ((i = ''), (o = 0))
                : ((i = i.slice(0, e)), (o = i.length - 1 - i.lastIndexOf(n))),
                (s = l),
                (a = 0);
              continue;
            }
            if (0 !== i.length) {
              (i = ''), (o = 0), (s = l), (a = 0);
              continue;
            }
          }
          t && ((i += i.length > 0 ? `${n}..` : '..'), (o = 2));
        } else
          i.length > 0
            ? (i += `${n}${e.slice(s + 1, l)}`)
            : (i = e.slice(s + 1, l)),
            (o = l - s - 1);
        (s = l), (a = 0);
      } else u === ee && -1 !== a ? ++a : (a = -1);
    }
    return i;
  }
  function ce(e, t) {
    if (null === t || 'object' != typeof t)
      throw new ie('pathObject', 'Object', t);
    const n = t.dir || t.root,
      r = t.base || `${t.name || ''}${t.ext || ''}`;
    return n ? (n === t.root ? `${n}${r}` : `${n}${e}${r}`) : r;
  }
  const he = {
      resolve(...e) {
        let t = '',
          n = '',
          r = !1;
        for (let i = e.length - 1; i >= -1; i--) {
          let o;
          if (i >= 0) {
            if (((o = e[i]), oe(o, 'path'), 0 === o.length)) continue;
          } else
            0 === t.length
              ? (o = Q())
              : ((o = Z[`=${t}`] || Q()),
                (void 0 === o ||
                  (o.slice(0, 2).toLowerCase() !== t.toLowerCase() &&
                    o.charCodeAt(2) === ne)) &&
                  (o = `${t}\\`));
          const s = o.length;
          let a = 0,
            u = '',
            l = !1;
          const c = o.charCodeAt(0);
          if (1 === s) se(c) && ((a = 1), (l = !0));
          else if (se(c))
            if (((l = !0), se(o.charCodeAt(1)))) {
              let e = 2,
                t = e;
              for (; e < s && !se(o.charCodeAt(e)); ) e++;
              if (e < s && e !== t) {
                const n = o.slice(t, e);
                for (t = e; e < s && se(o.charCodeAt(e)); ) e++;
                if (e < s && e !== t) {
                  for (t = e; e < s && !se(o.charCodeAt(e)); ) e++;
                  (e !== s && e === t) ||
                    ((u = `\\\\${n}\\${o.slice(t, e)}`), (a = e));
                }
              }
            } else a = 1;
          else
            ue(c) &&
              o.charCodeAt(1) === re &&
              ((u = o.slice(0, 2)),
              (a = 2),
              s > 2 && se(o.charCodeAt(2)) && ((l = !0), (a = 3)));
          if (u.length > 0)
            if (t.length > 0) {
              if (u.toLowerCase() !== t.toLowerCase()) continue;
            } else t = u;
          if (r) {
            if (t.length > 0) break;
          } else if (((n = `${o.slice(a)}\\${n}`), (r = l), l && t.length > 0))
            break;
        }
        return (n = le(n, !r, '\\', se)), r ? `${t}\\${n}` : `${t}${n}` || '.';
      },
      normalize(e) {
        oe(e, 'path');
        const t = e.length;
        if (0 === t) return '.';
        let n,
          r = 0,
          i = !1;
        const o = e.charCodeAt(0);
        if (1 === t) return ae(o) ? '\\' : e;
        if (se(o))
          if (((i = !0), se(e.charCodeAt(1)))) {
            let i = 2,
              o = i;
            for (; i < t && !se(e.charCodeAt(i)); ) i++;
            if (i < t && i !== o) {
              const s = e.slice(o, i);
              for (o = i; i < t && se(e.charCodeAt(i)); ) i++;
              if (i < t && i !== o) {
                for (o = i; i < t && !se(e.charCodeAt(i)); ) i++;
                if (i === t) return `\\\\${s}\\${e.slice(o)}\\`;
                i !== o && ((n = `\\\\${s}\\${e.slice(o, i)}`), (r = i));
              }
            }
          } else r = 1;
        else
          ue(o) &&
            e.charCodeAt(1) === re &&
            ((n = e.slice(0, 2)),
            (r = 2),
            t > 2 && se(e.charCodeAt(2)) && ((i = !0), (r = 3)));
        let s = r < t ? le(e.slice(r), !i, '\\', se) : '';
        return (
          0 !== s.length || i || (s = '.'),
          s.length > 0 && se(e.charCodeAt(t - 1)) && (s += '\\'),
          void 0 === n ? (i ? `\\${s}` : s) : i ? `${n}\\${s}` : `${n}${s}`
        );
      },
      isAbsolute(e) {
        oe(e, 'path');
        const t = e.length;
        if (0 === t) return !1;
        const n = e.charCodeAt(0);
        return (
          se(n) ||
          (t > 2 && ue(n) && e.charCodeAt(1) === re && se(e.charCodeAt(2)))
        );
      },
      join(...e) {
        if (0 === e.length) return '.';
        let t, n;
        for (let r = 0; r < e.length; ++r) {
          const i = e[r];
          oe(i, 'path'),
            i.length > 0 && (void 0 === t ? (t = n = i) : (t += `\\${i}`));
        }
        if (void 0 === t) return '.';
        let r = !0,
          i = 0;
        if ('string' == typeof n && se(n.charCodeAt(0))) {
          ++i;
          const e = n.length;
          e > 1 &&
            se(n.charCodeAt(1)) &&
            (++i, e > 2 && (se(n.charCodeAt(2)) ? ++i : (r = !1)));
        }
        if (r) {
          for (; i < t.length && se(t.charCodeAt(i)); ) i++;
          i >= 2 && (t = `\\${t.slice(i)}`);
        }
        return he.normalize(t);
      },
      relative(e, t) {
        if ((oe(e, 'from'), oe(t, 'to'), e === t)) return '';
        const n = he.resolve(e),
          r = he.resolve(t);
        if (n === r) return '';
        if ((e = n.toLowerCase()) === (t = r.toLowerCase())) return '';
        let i = 0;
        for (; i < e.length && e.charCodeAt(i) === ne; ) i++;
        let o = e.length;
        for (; o - 1 > i && e.charCodeAt(o - 1) === ne; ) o--;
        const s = o - i;
        let a = 0;
        for (; a < t.length && t.charCodeAt(a) === ne; ) a++;
        let u = t.length;
        for (; u - 1 > a && t.charCodeAt(u - 1) === ne; ) u--;
        const l = u - a,
          c = s < l ? s : l;
        let h = -1,
          f = 0;
        for (; f < c; f++) {
          const n = e.charCodeAt(i + f);
          if (n !== t.charCodeAt(a + f)) break;
          n === ne && (h = f);
        }
        if (f !== c) {
          if (-1 === h) return r;
        } else {
          if (l > c) {
            if (t.charCodeAt(a + f) === ne) return r.slice(a + f + 1);
            if (2 === f) return r.slice(a + f);
          }
          s > c && (e.charCodeAt(i + f) === ne ? (h = f) : 2 === f && (h = 3)),
            -1 === h && (h = 0);
        }
        let d = '';
        for (f = i + h + 1; f <= o; ++f)
          (f !== o && e.charCodeAt(f) !== ne) ||
            (d += 0 === d.length ? '..' : '\\..');
        return (
          (a += h),
          d.length > 0
            ? `${d}${r.slice(a, u)}`
            : (r.charCodeAt(a) === ne && ++a, r.slice(a, u))
        );
      },
      toNamespacedPath(e) {
        if ('string' != typeof e) return e;
        if (0 === e.length) return '';
        const t = he.resolve(e);
        if (t.length <= 2) return e;
        if (t.charCodeAt(0) === ne) {
          if (t.charCodeAt(1) === ne) {
            const e = t.charCodeAt(2);
            if (63 !== e && e !== ee) return `\\\\?\\UNC\\${t.slice(2)}`;
          }
        } else if (
          ue(t.charCodeAt(0)) &&
          t.charCodeAt(1) === re &&
          t.charCodeAt(2) === ne
        )
          return `\\\\?\\${t}`;
        return e;
      },
      dirname(e) {
        oe(e, 'path');
        const t = e.length;
        if (0 === t) return '.';
        let n = -1,
          r = 0;
        const i = e.charCodeAt(0);
        if (1 === t) return se(i) ? e : '.';
        if (se(i)) {
          if (((n = r = 1), se(e.charCodeAt(1)))) {
            let i = 2,
              o = i;
            for (; i < t && !se(e.charCodeAt(i)); ) i++;
            if (i < t && i !== o) {
              for (o = i; i < t && se(e.charCodeAt(i)); ) i++;
              if (i < t && i !== o) {
                for (o = i; i < t && !se(e.charCodeAt(i)); ) i++;
                if (i === t) return e;
                i !== o && (n = r = i + 1);
              }
            }
          }
        } else
          ue(i) &&
            e.charCodeAt(1) === re &&
            ((n = t > 2 && se(e.charCodeAt(2)) ? 3 : 2), (r = n));
        let o = -1,
          s = !0;
        for (let n = t - 1; n >= r; --n)
          if (se(e.charCodeAt(n))) {
            if (!s) {
              o = n;
              break;
            }
          } else s = !1;
        if (-1 === o) {
          if (-1 === n) return '.';
          o = n;
        }
        return e.slice(0, o);
      },
      basename(e, t) {
        void 0 !== t && oe(t, 'ext'), oe(e, 'path');
        let n,
          r = 0,
          i = -1,
          o = !0;
        if (
          (e.length >= 2 &&
            ue(e.charCodeAt(0)) &&
            e.charCodeAt(1) === re &&
            (r = 2),
          void 0 !== t && t.length > 0 && t.length <= e.length)
        ) {
          if (t === e) return '';
          let s = t.length - 1,
            a = -1;
          for (n = e.length - 1; n >= r; --n) {
            const u = e.charCodeAt(n);
            if (se(u)) {
              if (!o) {
                r = n + 1;
                break;
              }
            } else
              -1 === a && ((o = !1), (a = n + 1)),
                s >= 0 &&
                  (u === t.charCodeAt(s)
                    ? -1 == --s && (i = n)
                    : ((s = -1), (i = a)));
          }
          return r === i ? (i = a) : -1 === i && (i = e.length), e.slice(r, i);
        }
        for (n = e.length - 1; n >= r; --n)
          if (se(e.charCodeAt(n))) {
            if (!o) {
              r = n + 1;
              break;
            }
          } else -1 === i && ((o = !1), (i = n + 1));
        return -1 === i ? '' : e.slice(r, i);
      },
      extname(e) {
        oe(e, 'path');
        let t = 0,
          n = -1,
          r = 0,
          i = -1,
          o = !0,
          s = 0;
        e.length >= 2 &&
          e.charCodeAt(1) === re &&
          ue(e.charCodeAt(0)) &&
          (t = r = 2);
        for (let a = e.length - 1; a >= t; --a) {
          const t = e.charCodeAt(a);
          if (se(t)) {
            if (!o) {
              r = a + 1;
              break;
            }
          } else
            -1 === i && ((o = !1), (i = a + 1)),
              t === ee
                ? -1 === n
                  ? (n = a)
                  : 1 !== s && (s = 1)
                : -1 !== n && (s = -1);
        }
        return -1 === n ||
          -1 === i ||
          0 === s ||
          (1 === s && n === i - 1 && n === r + 1)
          ? ''
          : e.slice(n, i);
      },
      format: ce.bind(null, '\\'),
      parse(e) {
        oe(e, 'path');
        const t = { root: '', dir: '', base: '', ext: '', name: '' };
        if (0 === e.length) return t;
        const n = e.length;
        let r = 0,
          i = e.charCodeAt(0);
        if (1 === n)
          return se(i) ? ((t.root = t.dir = e), t) : ((t.base = t.name = e), t);
        if (se(i)) {
          if (((r = 1), se(e.charCodeAt(1)))) {
            let t = 2,
              i = t;
            for (; t < n && !se(e.charCodeAt(t)); ) t++;
            if (t < n && t !== i) {
              for (i = t; t < n && se(e.charCodeAt(t)); ) t++;
              if (t < n && t !== i) {
                for (i = t; t < n && !se(e.charCodeAt(t)); ) t++;
                t === n ? (r = t) : t !== i && (r = t + 1);
              }
            }
          }
        } else if (ue(i) && e.charCodeAt(1) === re) {
          if (n <= 2) return (t.root = t.dir = e), t;
          if (((r = 2), se(e.charCodeAt(2)))) {
            if (3 === n) return (t.root = t.dir = e), t;
            r = 3;
          }
        }
        r > 0 && (t.root = e.slice(0, r));
        let o = -1,
          s = r,
          a = -1,
          u = !0,
          l = e.length - 1,
          c = 0;
        for (; l >= r; --l)
          if (((i = e.charCodeAt(l)), se(i))) {
            if (!u) {
              s = l + 1;
              break;
            }
          } else
            -1 === a && ((u = !1), (a = l + 1)),
              i === ee
                ? -1 === o
                  ? (o = l)
                  : 1 !== c && (c = 1)
                : -1 !== o && (c = -1);
        return (
          -1 !== a &&
            (-1 === o || 0 === c || (1 === c && o === a - 1 && o === s + 1)
              ? (t.base = t.name = e.slice(s, a))
              : ((t.name = e.slice(s, o)),
                (t.base = e.slice(s, a)),
                (t.ext = e.slice(o, a)))),
          (t.dir = s > 0 && s !== r ? e.slice(0, s - 1) : t.root),
          t
        );
      },
      sep: '\\',
      delimiter: ';',
      win32: null,
      posix: null,
    },
    fe = {
      resolve(...e) {
        let t = '',
          n = !1;
        for (let r = e.length - 1; r >= -1 && !n; r--) {
          const i = r >= 0 ? e[r] : Q();
          oe(i, 'path'),
            0 !== i.length && ((t = `${i}/${t}`), (n = i.charCodeAt(0) === te));
        }
        return (t = le(t, !n, '/', ae)), n ? `/${t}` : t.length > 0 ? t : '.';
      },
      normalize(e) {
        if ((oe(e, 'path'), 0 === e.length)) return '.';
        const t = e.charCodeAt(0) === te,
          n = e.charCodeAt(e.length - 1) === te;
        return 0 === (e = le(e, !t, '/', ae)).length
          ? t
            ? '/'
            : n
            ? './'
            : '.'
          : (n && (e += '/'), t ? `/${e}` : e);
      },
      isAbsolute: (e) => (
        oe(e, 'path'), e.length > 0 && e.charCodeAt(0) === te
      ),
      join(...e) {
        if (0 === e.length) return '.';
        let t;
        for (let n = 0; n < e.length; ++n) {
          const r = e[n];
          oe(r, 'path'),
            r.length > 0 && (void 0 === t ? (t = r) : (t += `/${r}`));
        }
        return void 0 === t ? '.' : fe.normalize(t);
      },
      relative(e, t) {
        if ((oe(e, 'from'), oe(t, 'to'), e === t)) return '';
        if ((e = fe.resolve(e)) === (t = fe.resolve(t))) return '';
        const n = e.length,
          r = n - 1,
          i = t.length - 1,
          o = r < i ? r : i;
        let s = -1,
          a = 0;
        for (; a < o; a++) {
          const n = e.charCodeAt(1 + a);
          if (n !== t.charCodeAt(1 + a)) break;
          n === te && (s = a);
        }
        if (a === o)
          if (i > o) {
            if (t.charCodeAt(1 + a) === te) return t.slice(1 + a + 1);
            if (0 === a) return t.slice(1 + a);
          } else
            r > o &&
              (e.charCodeAt(1 + a) === te ? (s = a) : 0 === a && (s = 0));
        let u = '';
        for (a = 1 + s + 1; a <= n; ++a)
          (a !== n && e.charCodeAt(a) !== te) ||
            (u += 0 === u.length ? '..' : '/..');
        return `${u}${t.slice(1 + s)}`;
      },
      toNamespacedPath: (e) => e,
      dirname(e) {
        if ((oe(e, 'path'), 0 === e.length)) return '.';
        const t = e.charCodeAt(0) === te;
        let n = -1,
          r = !0;
        for (let t = e.length - 1; t >= 1; --t)
          if (e.charCodeAt(t) === te) {
            if (!r) {
              n = t;
              break;
            }
          } else r = !1;
        return -1 === n ? (t ? '/' : '.') : t && 1 === n ? '//' : e.slice(0, n);
      },
      basename(e, t) {
        void 0 !== t && oe(t, 'ext'), oe(e, 'path');
        let n,
          r = 0,
          i = -1,
          o = !0;
        if (void 0 !== t && t.length > 0 && t.length <= e.length) {
          if (t === e) return '';
          let s = t.length - 1,
            a = -1;
          for (n = e.length - 1; n >= 0; --n) {
            const u = e.charCodeAt(n);
            if (u === te) {
              if (!o) {
                r = n + 1;
                break;
              }
            } else
              -1 === a && ((o = !1), (a = n + 1)),
                s >= 0 &&
                  (u === t.charCodeAt(s)
                    ? -1 == --s && (i = n)
                    : ((s = -1), (i = a)));
          }
          return r === i ? (i = a) : -1 === i && (i = e.length), e.slice(r, i);
        }
        for (n = e.length - 1; n >= 0; --n)
          if (e.charCodeAt(n) === te) {
            if (!o) {
              r = n + 1;
              break;
            }
          } else -1 === i && ((o = !1), (i = n + 1));
        return -1 === i ? '' : e.slice(r, i);
      },
      extname(e) {
        oe(e, 'path');
        let t = -1,
          n = 0,
          r = -1,
          i = !0,
          o = 0;
        for (let s = e.length - 1; s >= 0; --s) {
          const a = e.charCodeAt(s);
          if (a !== te)
            -1 === r && ((i = !1), (r = s + 1)),
              a === ee
                ? -1 === t
                  ? (t = s)
                  : 1 !== o && (o = 1)
                : -1 !== t && (o = -1);
          else if (!i) {
            n = s + 1;
            break;
          }
        }
        return -1 === t ||
          -1 === r ||
          0 === o ||
          (1 === o && t === r - 1 && t === n + 1)
          ? ''
          : e.slice(t, r);
      },
      format: ce.bind(null, '/'),
      parse(e) {
        oe(e, 'path');
        const t = { root: '', dir: '', base: '', ext: '', name: '' };
        if (0 === e.length) return t;
        const n = e.charCodeAt(0) === te;
        let r;
        n ? ((t.root = '/'), (r = 1)) : (r = 0);
        let i = -1,
          o = 0,
          s = -1,
          a = !0,
          u = e.length - 1,
          l = 0;
        for (; u >= r; --u) {
          const t = e.charCodeAt(u);
          if (t !== te)
            -1 === s && ((a = !1), (s = u + 1)),
              t === ee
                ? -1 === i
                  ? (i = u)
                  : 1 !== l && (l = 1)
                : -1 !== i && (l = -1);
          else if (!a) {
            o = u + 1;
            break;
          }
        }
        if (-1 !== s) {
          const r = 0 === o && n ? 1 : o;
          -1 === i || 0 === l || (1 === l && i === s - 1 && i === o + 1)
            ? (t.base = t.name = e.slice(r, s))
            : ((t.name = e.slice(r, i)),
              (t.base = e.slice(r, s)),
              (t.ext = e.slice(i, s)));
        }
        return o > 0 ? (t.dir = e.slice(0, o - 1)) : n && (t.dir = '/'), t;
      },
      sep: '/',
      delimiter: ':',
      win32: null,
      posix: null,
    };
  (fe.win32 = he.win32 = he),
    (fe.posix = he.posix = fe),
    'win32' === X ? he.normalize : fe.normalize,
    'win32' === X ? he.resolve : fe.resolve,
    'win32' === X ? he.relative : fe.relative,
    'win32' === X ? he.dirname : fe.dirname,
    'win32' === X ? he.basename : fe.basename,
    'win32' === X ? he.extname : fe.extname,
    'win32' === X ? he.sep : fe.sep;
  const de = /^\w[\w\d+.-]*$/,
    me = /^\//,
    ge = /^\/\//,
    pe = '',
    ve = '/',
    ye = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
  class be {
    constructor(e, t, n, r, i, o = !1) {
      'object' == typeof e
        ? ((this.scheme = e.scheme || pe),
          (this.authority = e.authority || pe),
          (this.path = e.path || pe),
          (this.query = e.query || pe),
          (this.fragment = e.fragment || pe))
        : ((this.scheme = (function (e, t) {
            return e || t ? e : 'file';
          })(e, o)),
          (this.authority = t || pe),
          (this.path = (function (e, t) {
            switch (e) {
              case 'https':
              case 'http':
              case 'file':
                t ? t[0] !== ve && (t = ve + t) : (t = ve);
            }
            return t;
          })(this.scheme, n || pe)),
          (this.query = r || pe),
          (this.fragment = i || pe),
          (function (e, t) {
            if (!e.scheme && t)
              throw new Error(
                `[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`
              );
            if (e.scheme && !de.test(e.scheme))
              throw new Error(
                '[UriError]: Scheme contains illegal characters.'
              );
            if (e.path)
              if (e.authority) {
                if (!me.test(e.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 (ge.test(e.path))
                throw new Error(
                  '[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'
                );
          })(this, o));
    }
    static isUri(e) {
      return (
        e instanceof be ||
        (!!e &&
          'string' == typeof e.authority &&
          'string' == typeof e.fragment &&
          'string' == typeof e.path &&
          'string' == typeof e.query &&
          'string' == typeof e.scheme &&
          'function' == typeof e.fsPath &&
          'function' == typeof e.with &&
          'function' == typeof e.toString)
      );
    }
    get fsPath() {
      return xe(this, !1);
    }
    with(e) {
      if (!e) return this;
      let { scheme: t, authority: n, path: r, query: i, fragment: o } = e;
      return (
        void 0 === t ? (t = this.scheme) : null === t && (t = pe),
        void 0 === n ? (n = this.authority) : null === n && (n = pe),
        void 0 === r ? (r = this.path) : null === r && (r = pe),
        void 0 === i ? (i = this.query) : null === i && (i = pe),
        void 0 === o ? (o = this.fragment) : null === o && (o = pe),
        t === this.scheme &&
        n === this.authority &&
        r === this.path &&
        i === this.query &&
        o === this.fragment
          ? this
          : new _e(t, n, r, i, o)
      );
    }
    static parse(e, t = !1) {
      const n = ye.exec(e);
      return n
        ? new _e(
            n[2] || pe,
            Te(n[4] || pe),
            Te(n[5] || pe),
            Te(n[7] || pe),
            Te(n[9] || pe),
            t
          )
        : new _e(pe, pe, pe, pe, pe);
    }
    static file(e) {
      let t = pe;
      if ((A && (e = e.replace(/\\/g, ve)), e[0] === ve && e[1] === ve)) {
        const n = e.indexOf(ve, 2);
        -1 === n
          ? ((t = e.substring(2)), (e = ve))
          : ((t = e.substring(2, n)), (e = e.substring(n) || ve));
      }
      return new _e('file', t, e, pe, pe);
    }
    static from(e) {
      return new _e(e.scheme, e.authority, e.path, e.query, e.fragment);
    }
    static joinPath(e, ...t) {
      if (!e.path)
        throw new Error(
          '[UriError]: cannot call joinPaths on URI without path'
        );
      let n;
      return (
        (n =
          A && 'file' === e.scheme
            ? be.file(he.join(xe(e, !0), ...t)).path
            : fe.join(e.path, ...t)),
        e.with({ path: n })
      );
    }
    toString(e = !1) {
      return Ne(this, e);
    }
    toJSON() {
      return this;
    }
    static revive(e) {
      if (e) {
        if (e instanceof be) return e;
        {
          const t = new _e(e);
          return (
            (t._formatted = e.external),
            (t._fsPath = e._sep === Ce ? e.fsPath : null),
            t
          );
        }
      }
      return e;
    }
  }
  const Ce = A ? 1 : void 0;
  class _e extends be {
    constructor() {
      super(...arguments), (this._formatted = null), (this._fsPath = null);
    }
    get fsPath() {
      return this._fsPath || (this._fsPath = xe(this, !1)), this._fsPath;
    }
    toString(e = !1) {
      return e
        ? Ne(this, !0)
        : (this._formatted || (this._formatted = Ne(this, !1)),
          this._formatted);
    }
    toJSON() {
      const e = { $mid: 1 };
      return (
        this._fsPath && ((e.fsPath = this._fsPath), (e._sep = Ce)),
        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 Se = {
    58: '%3A',
    47: '%2F',
    63: '%3F',
    35: '%23',
    91: '%5B',
    93: '%5D',
    64: '%40',
    33: '%21',
    36: '%24',
    38: '%26',
    39: '%27',
    40: '%28',
    41: '%29',
    42: '%2A',
    43: '%2B',
    44: '%2C',
    59: '%3B',
    61: '%3D',
    32: '%20',
  };
  function Ee(e, t) {
    let n,
      r = -1;
    for (let i = 0; i < e.length; i++) {
      const o = e.charCodeAt(i);
      if (
        (o >= 97 && o <= 122) ||
        (o >= 65 && o <= 90) ||
        (o >= 48 && o <= 57) ||
        45 === o ||
        46 === o ||
        95 === o ||
        126 === o ||
        (t && 47 === o)
      )
        -1 !== r && ((n += encodeURIComponent(e.substring(r, i))), (r = -1)),
          void 0 !== n && (n += e.charAt(i));
      else {
        void 0 === n && (n = e.substr(0, i));
        const t = Se[o];
        void 0 !== t
          ? (-1 !== r &&
              ((n += encodeURIComponent(e.substring(r, i))), (r = -1)),
            (n += t))
          : -1 === r && (r = i);
      }
    }
    return (
      -1 !== r && (n += encodeURIComponent(e.substring(r))),
      void 0 !== n ? n : e
    );
  }
  function Ae(e) {
    let t;
    for (let n = 0; n < e.length; n++) {
      const r = e.charCodeAt(n);
      35 === r || 63 === r
        ? (void 0 === t && (t = e.substr(0, n)), (t += Se[r]))
        : void 0 !== t && (t += e[n]);
    }
    return void 0 !== t ? t : e;
  }
  function xe(e, t) {
    let n;
    return (
      (n =
        e.authority && e.path.length > 1 && 'file' === e.scheme
          ? `//${e.authority}${e.path}`
          : 47 === e.path.charCodeAt(0) &&
            ((e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90) ||
              (e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122)) &&
            58 === e.path.charCodeAt(2)
          ? t
            ? e.path.substr(1)
            : e.path[1].toLowerCase() + e.path.substr(2)
          : e.path),
      A && (n = n.replace(/\//g, '\\')),
      n
    );
  }
  function Ne(e, t) {
    const n = t ? Ae : Ee;
    let r = '',
      { scheme: i, authority: o, path: s, query: a, fragment: u } = e;
    if (
      (i && ((r += i), (r += ':')),
      (o || 'file' === i) && ((r += ve), (r += ve)),
      o)
    ) {
      let e = o.indexOf('@');
      if (-1 !== e) {
        const t = o.substr(0, e);
        (o = o.substr(e + 1)),
          (e = t.indexOf(':')),
          -1 === e
            ? (r += n(t, !1))
            : ((r += n(t.substr(0, e), !1)),
              (r += ':'),
              (r += n(t.substr(e + 1), !1))),
          (r += '@');
      }
      (o = o.toLowerCase()),
        (e = o.indexOf(':')),
        -1 === e
          ? (r += n(o, !1))
          : ((r += n(o.substr(0, e), !1)), (r += o.substr(e)));
    }
    if (s) {
      if (s.length >= 3 && 47 === s.charCodeAt(0) && 58 === s.charCodeAt(2)) {
        const e = s.charCodeAt(1);
        e >= 65 &&
          e <= 90 &&
          (s = `/${String.fromCharCode(e + 32)}:${s.substr(3)}`);
      } else if (s.length >= 2 && 58 === s.charCodeAt(1)) {
        const e = s.charCodeAt(0);
        e >= 65 &&
          e <= 90 &&
          (s = `${String.fromCharCode(e + 32)}:${s.substr(2)}`);
      }
      r += n(s, !0);
    }
    return (
      a && ((r += '?'), (r += n(a, !1))),
      u && ((r += '#'), (r += t ? u : Ee(u, !1))),
      r
    );
  }
  function Le(e) {
    try {
      return decodeURIComponent(e);
    } catch (t) {
      return e.length > 3 ? e.substr(0, 3) + Le(e.substr(3)) : e;
    }
  }
  const we = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
  function Te(e) {
    return e.match(we) ? e.replace(we, (e) => Le(e)) : e;
  }
  class ke {
    constructor(e, t) {
      (this.lineNumber = e), (this.column = t);
    }
    with(e = this.lineNumber, t = this.column) {
      return e === this.lineNumber && t === this.column ? this : new ke(e, t);
    }
    delta(e = 0, t = 0) {
      return this.with(this.lineNumber + e, this.column + t);
    }
    equals(e) {
      return ke.equals(this, e);
    }
    static equals(e, t) {
      return (
        (!e && !t) ||
        (!!e && !!t && e.lineNumber === t.lineNumber && e.column === t.column)
      );
    }
    isBefore(e) {
      return ke.isBefore(this, e);
    }
    static isBefore(e, t) {
      return (
        e.lineNumber < t.lineNumber ||
        (!(t.lineNumber < e.lineNumber) && e.column < t.column)
      );
    }
    isBeforeOrEqual(e) {
      return ke.isBeforeOrEqual(this, e);
    }
    static isBeforeOrEqual(e, t) {
      return (
        e.lineNumber < t.lineNumber ||
        (!(t.lineNumber < e.lineNumber) && e.column <= t.column)
      );
    }
    static compare(e, t) {
      let n = 0 | e.lineNumber,
        r = 0 | t.lineNumber;
      return n === r ? (0 | e.column) - (0 | t.column) : n - r;
    }
    clone() {
      return new ke(this.lineNumber, this.column);
    }
    toString() {
      return '(' + this.lineNumber + ',' + this.column + ')';
    }
    static lift(e) {
      return new ke(e.lineNumber, e.column);
    }
    static isIPosition(e) {
      return (
        e && 'number' == typeof e.lineNumber && 'number' == typeof e.column
      );
    }
  }
  class Oe {
    constructor(e, t, n, r) {
      e > n || (e === n && t > r)
        ? ((this.startLineNumber = n),
          (this.startColumn = r),
          (this.endLineNumber = e),
          (this.endColumn = t))
        : ((this.startLineNumber = e),
          (this.startColumn = t),
          (this.endLineNumber = n),
          (this.endColumn = r));
    }
    isEmpty() {
      return Oe.isEmpty(this);
    }
    static isEmpty(e) {
      return (
        e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn
      );
    }
    containsPosition(e) {
      return Oe.containsPosition(this, e);
    }
    static containsPosition(e, t) {
      return !(
        t.lineNumber < e.startLineNumber ||
        t.lineNumber > e.endLineNumber ||
        (t.lineNumber === e.startLineNumber && t.column < e.startColumn) ||
        (t.lineNumber === e.endLineNumber && t.column > e.endColumn)
      );
    }
    containsRange(e) {
      return Oe.containsRange(this, e);
    }
    static containsRange(e, t) {
      return !(
        t.startLineNumber < e.startLineNumber ||
        t.endLineNumber < e.startLineNumber ||
        t.startLineNumber > e.endLineNumber ||
        t.endLineNumber > e.endLineNumber ||
        (t.startLineNumber === e.startLineNumber &&
          t.startColumn < e.startColumn) ||
        (t.endLineNumber === e.endLineNumber && t.endColumn > e.endColumn)
      );
    }
    strictContainsRange(e) {
      return Oe.strictContainsRange(this, e);
    }
    static strictContainsRange(e, t) {
      return !(
        t.startLineNumber < e.startLineNumber ||
        t.endLineNumber < e.startLineNumber ||
        t.startLineNumber > e.endLineNumber ||
        t.endLineNumber > e.endLineNumber ||
        (t.startLineNumber === e.startLineNumber &&
          t.startColumn <= e.startColumn) ||
        (t.endLineNumber === e.endLineNumber && t.endColumn >= e.endColumn)
      );
    }
    plusRange(e) {
      return Oe.plusRange(this, e);
    }
    static plusRange(e, t) {
      let n, r, i, o;
      return (
        t.startLineNumber < e.startLineNumber
          ? ((n = t.startLineNumber), (r = t.startColumn))
          : t.startLineNumber === e.startLineNumber
          ? ((n = t.startLineNumber),
            (r = Math.min(t.startColumn, e.startColumn)))
          : ((n = e.startLineNumber), (r = e.startColumn)),
        t.endLineNumber > e.endLineNumber
          ? ((i = t.endLineNumber), (o = t.endColumn))
          : t.endLineNumber === e.endLineNumber
          ? ((i = t.endLineNumber), (o = Math.max(t.endColumn, e.endColumn)))
          : ((i = e.endLineNumber), (o = e.endColumn)),
        new Oe(n, r, i, o)
      );
    }
    intersectRanges(e) {
      return Oe.intersectRanges(this, e);
    }
    static intersectRanges(e, t) {
      let n = e.startLineNumber,
        r = e.startColumn,
        i = e.endLineNumber,
        o = e.endColumn,
        s = t.startLineNumber,
        a = t.startColumn,
        u = t.endLineNumber,
        l = t.endColumn;
      return (
        n < s ? ((n = s), (r = a)) : n === s && (r = Math.max(r, a)),
        i > u ? ((i = u), (o = l)) : i === u && (o = Math.min(o, l)),
        n > i || (n === i && r > o) ? null : new Oe(n, r, i, o)
      );
    }
    equalsRange(e) {
      return Oe.equalsRange(this, e);
    }
    static equalsRange(e, t) {
      return (
        !!e &&
        !!t &&
        e.startLineNumber === t.startLineNumber &&
        e.startColumn === t.startColumn &&
        e.endLineNumber === t.endLineNumber &&
        e.endColumn === t.endColumn
      );
    }
    getEndPosition() {
      return Oe.getEndPosition(this);
    }
    static getEndPosition(e) {
      return new ke(e.endLineNumber, e.endColumn);
    }
    getStartPosition() {
      return Oe.getStartPosition(this);
    }
    static getStartPosition(e) {
      return new ke(e.startLineNumber, e.startColumn);
    }
    toString() {
      return (
        '[' +
        this.startLineNumber +
        ',' +
        this.startColumn +
        ' -> ' +
        this.endLineNumber +
        ',' +
        this.endColumn +
        ']'
      );
    }
    setEndPosition(e, t) {
      return new Oe(this.startLineNumber, this.startColumn, e, t);
    }
    setStartPosition(e, t) {
      return new Oe(e, t, this.endLineNumber, this.endColumn);
    }
    collapseToStart() {
      return Oe.collapseToStart(this);
    }
    static collapseToStart(e) {
      return new Oe(
        e.startLineNumber,
        e.startColumn,
        e.startLineNumber,
        e.startColumn
      );
    }
    static fromPositions(e, t = e) {
      return new Oe(e.lineNumber, e.column, t.lineNumber, t.column);
    }
    static lift(e) {
      return e
        ? new Oe(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn)
        : null;
    }
    static isIRange(e) {
      return (
        e &&
        'number' == typeof e.startLineNumber &&
        'number' == typeof e.startColumn &&
        'number' == typeof e.endLineNumber &&
        'number' == typeof e.endColumn
      );
    }
    static areIntersectingOrTouching(e, t) {
      return !(
        e.endLineNumber < t.startLineNumber ||
        (e.endLineNumber === t.startLineNumber &&
          e.endColumn < t.startColumn) ||
        t.endLineNumber < e.startLineNumber ||
        (t.endLineNumber === e.startLineNumber && t.endColumn < e.startColumn)
      );
    }
    static areIntersecting(e, t) {
      return !(
        e.endLineNumber < t.startLineNumber ||
        (e.endLineNumber === t.startLineNumber &&
          e.endColumn <= t.startColumn) ||
        t.endLineNumber < e.startLineNumber ||
        (t.endLineNumber === e.startLineNumber && t.endColumn <= e.startColumn)
      );
    }
    static compareRangesUsingStarts(e, t) {
      if (e && t) {
        const n = 0 | e.startLineNumber,
          r = 0 | t.startLineNumber;
        if (n === r) {
          const n = 0 | e.startColumn,
            r = 0 | t.startColumn;
          if (n === r) {
            const n = 0 | e.endLineNumber,
              r = 0 | t.endLineNumber;
            return n === r ? (0 | e.endColumn) - (0 | t.endColumn) : n - r;
          }
          return n - r;
        }
        return n - r;
      }
      return (e ? 1 : 0) - (t ? 1 : 0);
    }
    static compareRangesUsingEnds(e, t) {
      return e.endLineNumber === t.endLineNumber
        ? e.endColumn === t.endColumn
          ? e.startLineNumber === t.startLineNumber
            ? e.startColumn - t.startColumn
            : e.startLineNumber - t.startLineNumber
          : e.endColumn - t.endColumn
        : e.endLineNumber - t.endLineNumber;
    }
    static spansMultipleLines(e) {
      return e.endLineNumber > e.startLineNumber;
    }
  }
  function Ie(e, t, n, r) {
    return new z(e, t, n).ComputeDiff(r);
  }
  class Me {
    constructor(e) {
      const t = [],
        n = [];
      for (let r = 0, i = e.length; r < i; r++)
        (t[r] = je(e[r], 1)), (n[r] = Ue(e[r], 1));
      (this.lines = e), (this._startColumns = t), (this._endColumns = n);
    }
    getElements() {
      const e = [];
      for (let t = 0, n = this.lines.length; t < n; t++)
        e[t] = this.lines[t].substring(
          this._startColumns[t] - 1,
          this._endColumns[t] - 1
        );
      return e;
    }
    getStartLineNumber(e) {
      return e + 1;
    }
    getEndLineNumber(e) {
      return e + 1;
    }
    createCharSequence(e, t, n) {
      const r = [],
        i = [],
        o = [];
      let s = 0;
      for (let a = t; a <= n; a++) {
        const t = this.lines[a],
          n = e ? this._startColumns[a] : 1,
          u = e ? this._endColumns[a] : t.length + 1;
        for (let e = n; e < u; e++)
          (r[s] = t.charCodeAt(e - 1)), (i[s] = a + 1), (o[s] = e), s++;
      }
      return new Pe(r, i, o);
    }
  }
  class Pe {
    constructor(e, t, n) {
      (this._charCodes = e), (this._lineNumbers = t), (this._columns = n);
    }
    getElements() {
      return this._charCodes;
    }
    getStartLineNumber(e) {
      return this._lineNumbers[e];
    }
    getStartColumn(e) {
      return this._columns[e];
    }
    getEndLineNumber(e) {
      return this._lineNumbers[e];
    }
    getEndColumn(e) {
      return this._columns[e] + 1;
    }
  }
  class Re {
    constructor(e, t, n, r, i, o, s, a) {
      (this.originalStartLineNumber = e),
        (this.originalStartColumn = t),
        (this.originalEndLineNumber = n),
        (this.originalEndColumn = r),
        (this.modifiedStartLineNumber = i),
        (this.modifiedStartColumn = o),
        (this.modifiedEndLineNumber = s),
        (this.modifiedEndColumn = a);
    }
    static createFromDiffChange(e, t, n) {
      let r, i, o, s, a, u, l, c;
      return (
        0 === e.originalLength
          ? ((r = 0), (i = 0), (o = 0), (s = 0))
          : ((r = t.getStartLineNumber(e.originalStart)),
            (i = t.getStartColumn(e.originalStart)),
            (o = t.getEndLineNumber(e.originalStart + e.originalLength - 1)),
            (s = t.getEndColumn(e.originalStart + e.originalLength - 1))),
        0 === e.modifiedLength
          ? ((a = 0), (u = 0), (l = 0), (c = 0))
          : ((a = n.getStartLineNumber(e.modifiedStart)),
            (u = n.getStartColumn(e.modifiedStart)),
            (l = n.getEndLineNumber(e.modifiedStart + e.modifiedLength - 1)),
            (c = n.getEndColumn(e.modifiedStart + e.modifiedLength - 1))),
        new Re(r, i, o, s, a, u, l, c)
      );
    }
  }
  class De {
    constructor(e, t, n, r, i) {
      (this.originalStartLineNumber = e),
        (this.originalEndLineNumber = t),
        (this.modifiedStartLineNumber = n),
        (this.modifiedEndLineNumber = r),
        (this.charChanges = i);
    }
    static createFromDiffResult(e, t, n, r, i, o, s) {
      let a, u, l, c, h;
      if (
        (0 === t.originalLength
          ? ((a = n.getStartLineNumber(t.originalStart) - 1), (u = 0))
          : ((a = n.getStartLineNumber(t.originalStart)),
            (u = n.getEndLineNumber(t.originalStart + t.originalLength - 1))),
        0 === t.modifiedLength
          ? ((l = r.getStartLineNumber(t.modifiedStart) - 1), (c = 0))
          : ((l = r.getStartLineNumber(t.modifiedStart)),
            (c = r.getEndLineNumber(t.modifiedStart + t.modifiedLength - 1))),
        o &&
          t.originalLength > 0 &&
          t.originalLength < 20 &&
          t.modifiedLength > 0 &&
          t.modifiedLength < 20 &&
          i())
      ) {
        const o = n.createCharSequence(
            e,
            t.originalStart,
            t.originalStart + t.originalLength - 1
          ),
          a = r.createCharSequence(
            e,
            t.modifiedStart,
            t.modifiedStart + t.modifiedLength - 1
          );
        let u = Ie(o, a, i, !0).changes;
        s &&
          (u = (function (e) {
            if (e.length <= 1) return e;
            const t = [e[0]];
            let n = t[0];
            for (let r = 1, i = e.length; r < i; r++) {
              const i = e[r],
                o = i.originalStart - (n.originalStart + n.originalLength),
                s = i.modifiedStart - (n.modifiedStart + n.modifiedLength);
              Math.min(o, s) < 3
                ? ((n.originalLength =
                    i.originalStart + i.originalLength - n.originalStart),
                  (n.modifiedLength =
                    i.modifiedStart + i.modifiedLength - n.modifiedStart))
                : (t.push(i), (n = i));
            }
            return t;
          })(u)),
          (h = []);
        for (let e = 0, t = u.length; e < t; e++)
          h.push(Re.createFromDiffChange(u[e], o, a));
      }
      return new De(a, u, l, c, h);
    }
  }
  class Fe {
    constructor(e, t, n) {
      (this.shouldComputeCharChanges = n.shouldComputeCharChanges),
        (this.shouldPostProcessCharChanges = n.shouldPostProcessCharChanges),
        (this.shouldIgnoreTrimWhitespace = n.shouldIgnoreTrimWhitespace),
        (this.shouldMakePrettyDiff = n.shouldMakePrettyDiff),
        (this.originalLines = e),
        (this.modifiedLines = t),
        (this.original = new Me(e)),
        (this.modified = new Me(t)),
        (this.continueLineDiff = Ve(n.maxComputationTime)),
        (this.continueCharDiff = Ve(
          0 === n.maxComputationTime ? 0 : Math.min(n.maxComputationTime, 5e3)
        ));
    }
    computeDiff() {
      if (
        1 === this.original.lines.length &&
        0 === this.original.lines[0].length
      )
        return {
          quitEarly: !1,
          changes: [
            {
              originalStartLineNumber: 1,
              originalEndLineNumber: 1,
              modifiedStartLineNumber: 1,
              modifiedEndLineNumber: this.modified.lines.length,
              charChanges: [
                {
                  modifiedEndColumn: 0,
                  modifiedEndLineNumber: 0,
                  modifiedStartColumn: 0,
                  modifiedStartLineNumber: 0,
                  originalEndColumn: 0,
                  originalEndLineNumber: 0,
                  originalStartColumn: 0,
                  originalStartLineNumber: 0,
                },
              ],
            },
          ],
        };
      if (
        1 === this.modified.lines.length &&
        0 === this.modified.lines[0].length
      )
        return {
          quitEarly: !1,
          changes: [
            {
              originalStartLineNumber: 1,
              originalEndLineNumber: this.original.lines.length,
              modifiedStartLineNumber: 1,
              modifiedEndLineNumber: 1,
              charChanges: [
                {
                  modifiedEndColumn: 0,
                  modifiedEndLineNumber: 0,
                  modifiedStartColumn: 0,
                  modifiedStartLineNumber: 0,
                  originalEndColumn: 0,
                  originalEndLineNumber: 0,
                  originalStartColumn: 0,
                  originalStartLineNumber: 0,
                },
              ],
            },
          ],
        };
      const e = Ie(
          this.original,
          this.modified,
          this.continueLineDiff,
          this.shouldMakePrettyDiff
        ),
        t = e.changes,
        n = e.quitEarly;
      if (this.shouldIgnoreTrimWhitespace) {
        const e = [];
        for (let n = 0, r = t.length; n < r; n++)
          e.push(
            De.createFromDiffResult(
              this.shouldIgnoreTrimWhitespace,
              t[n],
              this.original,
              this.modified,
              this.continueCharDiff,
              this.shouldComputeCharChanges,
              this.shouldPostProcessCharChanges
            )
          );
        return { quitEarly: n, changes: e };
      }
      const r = [];
      let i = 0,
        o = 0;
      for (let e = -1, n = t.length; e < n; e++) {
        const s = e + 1 < n ? t[e + 1] : null,
          a = s ? s.originalStart : this.originalLines.length,
          u = s ? s.modifiedStart : this.modifiedLines.length;
        for (; i < a && o < u; ) {
          const e = this.originalLines[i],
            t = this.modifiedLines[o];
          if (e !== t) {
            {
              let n = je(e, 1),
                s = je(t, 1);
              for (
                ;
                n > 1 && s > 1 && e.charCodeAt(n - 2) === t.charCodeAt(s - 2);

              )
                n--, s--;
              (n > 1 || s > 1) &&
                this._pushTrimWhitespaceCharChange(r, i + 1, 1, n, o + 1, 1, s);
            }
            {
              let n = Ue(e, 1),
                s = Ue(t, 1);
              const a = e.length + 1,
                u = t.length + 1;
              for (
                ;
                n < a && s < u && e.charCodeAt(n - 1) === e.charCodeAt(s - 1);

              )
                n++, s++;
              (n < a || s < u) &&
                this._pushTrimWhitespaceCharChange(r, i + 1, n, a, o + 1, s, u);
            }
          }
          i++, o++;
        }
        s &&
          (r.push(
            De.createFromDiffResult(
              this.shouldIgnoreTrimWhitespace,
              s,
              this.original,
              this.modified,
              this.continueCharDiff,
              this.shouldComputeCharChanges,
              this.shouldPostProcessCharChanges
            )
          ),
          (i += s.originalLength),
          (o += s.modifiedLength));
      }
      return { quitEarly: n, changes: r };
    }
    _pushTrimWhitespaceCharChange(e, t, n, r, i, o, s) {
      if (this._mergeTrimWhitespaceCharChange(e, t, n, r, i, o, s)) return;
      let a;
      this.shouldComputeCharChanges && (a = [new Re(t, n, t, r, i, o, i, s)]),
        e.push(new De(t, t, i, i, a));
    }
    _mergeTrimWhitespaceCharChange(e, t, n, r, i, o, s) {
      const a = e.length;
      if (0 === a) return !1;
      const u = e[a - 1];
      return (
        0 !== u.originalEndLineNumber &&
        0 !== u.modifiedEndLineNumber &&
        u.originalEndLineNumber + 1 === t &&
        u.modifiedEndLineNumber + 1 === i &&
        ((u.originalEndLineNumber = t),
        (u.modifiedEndLineNumber = i),
        this.shouldComputeCharChanges &&
          u.charChanges &&
          u.charChanges.push(new Re(t, n, t, r, i, o, i, s)),
        !0)
      );
    }
  }
  function je(e, t) {
    const n = (function (e) {
      for (let t = 0, n = e.length; t < n; t++) {
        const n = e.charCodeAt(t);
        if (32 !== n && 9 !== n) return t;
      }
      return -1;
    })(e);
    return -1 === n ? t : n + 1;
  }
  function Ue(e, t) {
    const n = (function (e, t = e.length - 1) {
      for (let n = t; n >= 0; n--) {
        const t = e.charCodeAt(n);
        if (32 !== t && 9 !== t) return n;
      }
      return -1;
    })(e);
    return -1 === n ? t : n + 2;
  }
  function Ve(e) {
    if (0 === e) return () => !0;
    const t = Date.now();
    return () => Date.now() - t < e;
  }
  function $e(e) {
    return e < 0 ? 0 : e > 255 ? 255 : 0 | e;
  }
  function We(e) {
    return e < 0 ? 0 : e > 4294967295 ? 4294967295 : 0 | e;
  }
  class qe {
    constructor(e, t) {
      (this.index = e), (this.remainder = t);
    }
  }
  class Ke {
    constructor(e) {
      (this.values = e),
        (this.prefixSum = new Uint32Array(e.length)),
        (this.prefixSumValidIndex = new Int32Array(1)),
        (this.prefixSumValidIndex[0] = -1);
    }
    insertValues(e, t) {
      e = We(e);
      const n = this.values,
        r = this.prefixSum,
        i = t.length;
      return (
        0 !== i &&
        ((this.values = new Uint32Array(n.length + i)),
        this.values.set(n.subarray(0, e), 0),
        this.values.set(n.subarray(e), e + i),
        this.values.set(t, 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(r.subarray(0, this.prefixSumValidIndex[0] + 1)),
        !0)
      );
    }
    changeValue(e, t) {
      return (
        (e = We(e)),
        (t = We(t)),
        this.values[e] !== t &&
          ((this.values[e] = t),
          e - 1 < this.prefixSumValidIndex[0] &&
            (this.prefixSumValidIndex[0] = e - 1),
          !0)
      );
    }
    removeValues(e, t) {
      (e = We(e)), (t = We(t));
      const n = this.values,
        r = this.prefixSum;
      if (e >= n.length) return !1;
      let i = n.length - e;
      return (
        t >= i && (t = i),
        0 !== t &&
          ((this.values = new Uint32Array(n.length - t)),
          this.values.set(n.subarray(0, e), 0),
          this.values.set(n.subarray(e + t), 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(r.subarray(0, this.prefixSumValidIndex[0] + 1)),
          !0)
      );
    }
    getTotalValue() {
      return 0 === this.values.length
        ? 0
        : this._getAccumulatedValue(this.values.length - 1);
    }
    getAccumulatedValue(e) {
      return e < 0 ? 0 : ((e = We(e)), this._getAccumulatedValue(e));
    }
    _getAccumulatedValue(e) {
      if (e <= this.prefixSumValidIndex[0]) return this.prefixSum[e];
      let t = this.prefixSumValidIndex[0] + 1;
      0 === t && ((this.prefixSum[0] = this.values[0]), t++),
        e >= this.values.length && (e = this.values.length - 1);
      for (let n = t; n <= e; n++)
        this.prefixSum[n] = this.prefixSum[n - 1] + this.values[n];
      return (
        (this.prefixSumValidIndex[0] = Math.max(
          this.prefixSumValidIndex[0],
          e
        )),
        this.prefixSum[e]
      );
    }
    getIndexOf(e) {
      (e = Math.floor(e)), this.getTotalValue();
      let t = 0,
        n = this.values.length - 1,
        r = 0,
        i = 0,
        o = 0;
      for (; t <= n; )
        if (
          ((r = (t + (n - t) / 2) | 0),
          (i = this.prefixSum[r]),
          (o = i - this.values[r]),
          e < o)
        )
          n = r - 1;
        else {
          if (!(e >= i)) break;
          t = r + 1;
        }
      return new qe(r, e - o);
    }
  }
  const Be = (function (e = '') {
      let t = '(-?\\d*\\.\\d\\w*)|([^';
      for (const n of '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?')
        e.indexOf(n) >= 0 || (t += '\\' + n);
      return (t += '\\s]+)'), new RegExp(t, 'g');
    })(),
    He = { maxLen: 1e3, windowSize: 15, timeBudget: 150 };
  function Ye(e, t, n, r, i = He) {
    if (n.length > i.maxLen) {
      let o = e - i.maxLen / 2;
      return (
        o < 0 ? ((r += e), (o = 0)) : (r += o),
        Ye(e, t, (n = n.substring(o, e + i.maxLen / 2)), r, i)
      );
    }
    Date.now();
    const o = e - 1 - r;
    let s = -1,
      a = null;
    for (let e = 1; ; e++) {
      Date.now(), i.timeBudget;
      const r = o - i.windowSize * e;
      t.lastIndex = Math.max(0, r);
      const u = Ge(t, n, o, s);
      if (!u && a) break;
      if (((a = u), r <= 0)) break;
      s = r;
    }
    if (a) {
      let e = {
        word: a[0],
        startColumn: r + 1 + a.index,
        endColumn: r + 1 + a.index + a[0].length,
      };
      return (t.lastIndex = 0), e;
    }
    return null;
  }
  function Ge(e, t, n, r) {
    let i;
    for (; (i = e.exec(t)); ) {
      const t = i.index || 0;
      if (t <= n && e.lastIndex >= n) return i;
      if (r > 0 && t > r) return null;
    }
    return null;
  }
  class ze {
    constructor(e) {
      let t = $e(e);
      (this._defaultValue = t),
        (this._asciiMap = ze._createAsciiMap(t)),
        (this._map = new Map());
    }
    static _createAsciiMap(e) {
      let t = new Uint8Array(256);
      for (let n = 0; n < 256; n++) t[n] = e;
      return t;
    }
    set(e, t) {
      let n = $e(t);
      e >= 0 && e < 256 ? (this._asciiMap[e] = n) : this._map.set(e, n);
    }
    get(e) {
      return e >= 0 && e < 256
        ? this._asciiMap[e]
        : this._map.get(e) || this._defaultValue;
    }
  }
  class Je {
    constructor(e, t, n) {
      const r = new Uint8Array(e * t);
      for (let i = 0, o = e * t; i < o; i++) r[i] = n;
      (this._data = r), (this.rows = e), (this.cols = t);
    }
    get(e, t) {
      return this._data[e * this.cols + t];
    }
    set(e, t, n) {
      this._data[e * this.cols + t] = n;
    }
  }
  class Qe {
    constructor(e) {
      let t = 0,
        n = 0;
      for (let r = 0, i = e.length; r < i; r++) {
        let [i, o, s] = e[r];
        o > t && (t = o), i > n && (n = i), s > n && (n = s);
      }
      t++, n++;
      let r = new Je(n, t, 0);
      for (let t = 0, n = e.length; t < n; t++) {
        let [n, i, o] = e[t];
        r.set(n, i, o);
      }
      (this._states = r), (this._maxCharCode = t);
    }
    nextState(e, t) {
      return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t);
    }
  }
  let Ze = null,
    Xe = null;
  class et {
    static _createLink(e, t, n, r, i) {
      let o = i - 1;
      do {
        const n = t.charCodeAt(o);
        if (2 !== e.get(n)) break;
        o--;
      } while (o > r);
      if (r > 0) {
        const e = t.charCodeAt(r - 1),
          n = t.charCodeAt(o);
        ((40 === e && 41 === n) ||
          (91 === e && 93 === n) ||
          (123 === e && 125 === n)) &&
          o--;
      }
      return {
        range: {
          startLineNumber: n,
          startColumn: r + 1,
          endLineNumber: n,
          endColumn: o + 2,
        },
        url: t.substring(r, o + 1),
      };
    }
    static computeLinks(
      e,
      t = (function () {
        return (
          null === Ze &&
            (Ze = new Qe([
              [1, 104, 2],
              [1, 72, 2],
              [1, 102, 6],
              [1, 70, 6],
              [2, 116, 3],
              [2, 84, 3],
              [3, 116, 4],
              [3, 84, 4],
              [4, 112, 5],
              [4, 80, 5],
              [5, 115, 9],
              [5, 83, 9],
              [5, 58, 10],
              [6, 105, 7],
              [6, 73, 7],
              [7, 108, 8],
              [7, 76, 8],
              [8, 101, 9],
              [8, 69, 9],
              [9, 58, 10],
              [10, 47, 11],
              [11, 47, 12],
            ])),
          Ze
        );
      })()
    ) {
      const n = (function () {
        if (null === Xe) {
          Xe = new ze(0);
          const e =
            ' \t<>\'"、。｡､，．：；‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…';
          for (let t = 0; t < e.length; t++) Xe.set(e.charCodeAt(t), 1);
          const t = '.,;';
          for (let e = 0; e < t.length; e++) Xe.set(t.charCodeAt(e), 2);
        }
        return Xe;
      })();
      let r = [];
      for (let i = 1, o = e.getLineCount(); i <= o; i++) {
        const o = e.getLineContent(i),
          s = o.length;
        let a = 0,
          u = 0,
          l = 0,
          c = 1,
          h = !1,
          f = !1,
          d = !1,
          m = !1;
        for (; a < s; ) {
          let e = !1;
          const s = o.charCodeAt(a);
          if (13 === c) {
            let t;
            switch (s) {
              case 40:
                (h = !0), (t = 0);
                break;
              case 41:
                t = h ? 0 : 1;
                break;
              case 91:
                (d = !0), (f = !0), (t = 0);
                break;
              case 93:
                (d = !1), (t = f ? 0 : 1);
                break;
              case 123:
                (m = !0), (t = 0);
                break;
              case 125:
                t = m ? 0 : 1;
                break;
              case 39:
                t = 34 === l || 96 === l ? 0 : 1;
                break;
              case 34:
                t = 39 === l || 96 === l ? 0 : 1;
                break;
              case 96:
                t = 39 === l || 34 === l ? 0 : 1;
                break;
              case 42:
                t = 42 === l ? 1 : 0;
                break;
              case 124:
                t = 124 === l ? 1 : 0;
                break;
              case 32:
                t = d ? 0 : 1;
                break;
              default:
                t = n.get(s);
            }
            1 === t && (r.push(et._createLink(n, o, i, u, a)), (e = !0));
          } else if (12 === c) {
            let t;
            91 === s ? ((f = !0), (t = 0)) : (t = n.get(s)),
              1 === t ? (e = !0) : (c = 13);
          } else (c = t.nextState(c, s)), 0 === c && (e = !0);
          e && ((c = 1), (h = !1), (f = !1), (m = !1), (u = a + 1), (l = s)),
            a++;
        }
        13 === c && r.push(et._createLink(n, o, i, u, s));
      }
      return r;
    }
  }
  class tt {
    constructor() {
      this._defaultValueSet = [
        ['true', 'false'],
        ['True', 'False'],
        [
          'Private',
          'Public',
          'Friend',
          'ReadOnly',
          'Partial',
          'Protected',
          'WriteOnly',
        ],
        ['public', 'protected', 'private'],
      ];
    }
    navigateValueSet(e, t, n, r, i) {
      if (e && t) {
        let n = this.doNavigateValueSet(t, i);
        if (n) return { range: e, value: n };
      }
      if (n && r) {
        let e = this.doNavigateValueSet(r, i);
        if (e) return { range: n, value: e };
      }
      return null;
    }
    doNavigateValueSet(e, t) {
      let n = this.numberReplace(e, t);
      return null !== n ? n : this.textReplace(e, t);
    }
    numberReplace(e, t) {
      let n = Math.pow(10, e.length - (e.lastIndexOf('.') + 1)),
        r = Number(e),
        i = parseFloat(e);
      return isNaN(r) || isNaN(i) || r !== i
        ? null
        : 0 !== r || t
        ? ((r = Math.floor(r * n)), (r += t ? n : -n), String(r / n))
        : null;
    }
    textReplace(e, t) {
      return this.valueSetsReplace(this._defaultValueSet, e, t);
    }
    valueSetsReplace(e, t, n) {
      let r = null;
      for (let i = 0, o = e.length; null === r && i < o; i++)
        r = this.valueSetReplace(e[i], t, n);
      return r;
    }
    valueSetReplace(e, t, n) {
      let r = e.indexOf(t);
      return r >= 0
        ? ((r += n ? 1 : -1),
          r < 0 ? (r = e.length - 1) : (r %= e.length),
          e[r])
        : null;
    }
  }
  tt.INSTANCE = new tt();
  class nt {
    constructor(e) {
      (this.element = e),
        (this.next = nt.Undefined),
        (this.prev = nt.Undefined);
    }
  }
  nt.Undefined = new nt(void 0);
  class rt {
    constructor() {
      (this._first = nt.Undefined),
        (this._last = nt.Undefined),
        (this._size = 0);
    }
    get size() {
      return this._size;
    }
    isEmpty() {
      return this._first === nt.Undefined;
    }
    clear() {
      (this._first = nt.Undefined),
        (this._last = nt.Undefined),
        (this._size = 0);
    }
    unshift(e) {
      return this._insert(e, !1);
    }
    push(e) {
      return this._insert(e, !0);
    }
    _insert(e, t) {
      const n = new nt(e);
      if (this._first === nt.Undefined) (this._first = n), (this._last = n);
      else if (t) {
        const e = this._last;
        (this._last = n), (n.prev = e), (e.next = n);
      } else {
        const e = this._first;
        (this._first = n), (n.next = e), (e.prev = n);
      }
      this._size += 1;
      let r = !1;
      return () => {
        r || ((r = !0), this._remove(n));
      };
    }
    shift() {
      if (this._first !== nt.Undefined) {
        const e = this._first.element;
        return this._remove(this._first), e;
      }
    }
    pop() {
      if (this._last !== nt.Undefined) {
        const e = this._last.element;
        return this._remove(this._last), e;
      }
    }
    _remove(e) {
      if (e.prev !== nt.Undefined && e.next !== nt.Undefined) {
        const t = e.prev;
        (t.next = e.next), (e.next.prev = t);
      } else
        e.prev === nt.Undefined && e.next === nt.Undefined
          ? ((this._first = nt.Undefined), (this._last = nt.Undefined))
          : e.next === nt.Undefined
          ? ((this._last = this._last.prev), (this._last.next = nt.Undefined))
          : e.prev === nt.Undefined &&
            ((this._first = this._first.next),
            (this._first.prev = nt.Undefined));
      this._size -= 1;
    }
    *[Symbol.iterator]() {
      let e = this._first;
      for (; e !== nt.Undefined; ) yield e.element, (e = e.next);
    }
    toArray() {
      const e = [];
      for (let t = this._first; t !== nt.Undefined; t = t.next)
        e.push(t.element);
      return e;
    }
  }
  var it;
  !(function (e) {
    function t(e) {
      return (t, n = null, r) => {
        let i,
          o = !1;
        return (
          (i = e(
            (e) => {
              if (!o) return i ? i.dispose() : (o = !0), t.call(n, e);
            },
            null,
            r
          )),
          o && i.dispose(),
          i
        );
      };
    }
    function n(e, t) {
      return a((n, r = null, i) => e((e) => n.call(r, t(e)), null, i));
    }
    function r(e, t) {
      return a((n, r = null, i) =>
        e(
          (e) => {
            t(e), n.call(r, e);
          },
          null,
          i
        )
      );
    }
    function i(e, t) {
      return a((n, r = null, i) => e((e) => t(e) && n.call(r, e), null, i));
    }
    function o(e, t, r) {
      let i = r;
      return n(e, (e) => ((i = t(i, e)), i));
    }
    function a(e) {
      let t;
      const n = new ot({
        onFirstListenerAdd() {
          t = e(n.fire, n);
        },
        onLastListenerRemove() {
          t.dispose();
        },
      });
      return n.event;
    }
    function l(e, t, n = 100, r = !1, i) {
      let o,
        s,
        a,
        u = 0;
      const l = new ot({
        leakWarningThreshold: i,
        onFirstListenerAdd() {
          o = e((e) => {
            u++,
              (s = t(s, e)),
              r && !a && (l.fire(s), (s = void 0)),
              clearTimeout(a),
              (a = setTimeout(() => {
                const e = s;
                (s = void 0), (a = void 0), (!r || u > 1) && l.fire(e), (u = 0);
              }, n));
          });
        },
        onLastListenerRemove() {
          o.dispose();
        },
      });
      return l.event;
    }
    function h(e) {
      let t,
        n = !0;
      return i(e, (e) => {
        const r = n || e !== t;
        return (n = !1), (t = e), r;
      });
    }
    (e.None = () => c.None),
      (e.once = t),
      (e.map = n),
      (e.forEach = r),
      (e.filter = i),
      (e.signal = function (e) {
        return e;
      }),
      (e.any = function (...e) {
        return (t, n = null, r) =>
          (function (...e) {
            return e.forEach(s), { dispose: () => u(e) };
          })(...e.map((e) => e((e) => t.call(n, e), null, r)));
      }),
      (e.reduce = o),
      (e.snapshot = a),
      (e.debounce = l),
      (e.stopwatch = function (e) {
        const r = new Date().getTime();
        return n(t(e), (e) => new Date().getTime() - r);
      }),
      (e.latch = h),
      (e.buffer = function (e, t = !1, n = []) {
        let r = n.slice(),
          i = e((e) => {
            r ? r.push(e) : s.fire(e);
          });
        const o = () => {
            r && r.forEach((e) => s.fire(e)), (r = null);
          },
          s = new ot({
            onFirstListenerAdd() {
              i || (i = e((e) => s.fire(e)));
            },
            onFirstListenerDidAdd() {
              r && (t ? setTimeout(o) : o());
            },
            onLastListenerRemove() {
              i && i.dispose(), (i = null);
            },
          });
        return s.event;
      });
    class f {
      constructor(e) {
        this.event = e;
      }
      map(e) {
        return new f(n(this.event, e));
      }
      forEach(e) {
        return new f(r(this.event, e));
      }
      filter(e) {
        return new f(i(this.event, e));
      }
      reduce(e, t) {
        return new f(o(this.event, e, t));
      }
      latch() {
        return new f(h(this.event));
      }
      debounce(e, t = 100, n = !1, r) {
        return new f(l(this.event, e, t, n, r));
      }
      on(e, t, n) {
        return this.event(e, t, n);
      }
      once(e, n, r) {
        return t(this.event)(e, n, r);
      }
    }
    (e.chain = function (e) {
      return new f(e);
    }),
      (e.fromNodeEventEmitter = function (e, t, n = (e) => e) {
        const r = (...e) => i.fire(n(...e)),
          i = new ot({
            onFirstListenerAdd: () => e.on(t, r),
            onLastListenerRemove: () => e.removeListener(t, r),
          });
        return i.event;
      }),
      (e.fromDOMEventEmitter = function (e, t, n = (e) => e) {
        const r = (...e) => i.fire(n(...e)),
          i = new ot({
            onFirstListenerAdd: () => e.addEventListener(t, r),
            onLastListenerRemove: () => e.removeEventListener(t, r),
          });
        return i.event;
      }),
      (e.fromPromise = function (e) {
        const t = new ot();
        let n = !1;
        return (
          e
            .then(void 0, () => null)
            .then(() => {
              n ? t.fire(void 0) : setTimeout(() => t.fire(void 0), 0);
            }),
          (n = !0),
          t.event
        );
      }),
      (e.toPromise = function (e) {
        return new Promise((n) => t(e)(n));
      });
  })(it || (it = {}));
  class ot {
    constructor(e) {
      (this._disposed = !1), (this._options = e), (this._leakageMon = void 0);
    }
    get event() {
      return (
        this._event ||
          (this._event = (e, t, n) => {
            this._listeners || (this._listeners = new rt());
            const r = this._listeners.isEmpty();
            r &&
              this._options &&
              this._options.onFirstListenerAdd &&
              this._options.onFirstListenerAdd(this);
            const i = this._listeners.push(t ? [e, t] : e);
            let o, s;
            return (
              r &&
                this._options &&
                this._options.onFirstListenerDidAdd &&
                this._options.onFirstListenerDidAdd(this),
              this._options &&
                this._options.onListenerDidAdd &&
                this._options.onListenerDidAdd(this, e, t),
              this._leakageMon &&
                (o = this._leakageMon.check(this._listeners.size)),
              (s = {
                dispose: () => {
                  o && o(),
                    (s.dispose = ot._noop),
                    !this._disposed &&
                      (i(),
                      this._options && this._options.onLastListenerRemove) &&
                      ((this._listeners && !this._listeners.isEmpty()) ||
                        this._options.onLastListenerRemove(this));
                },
              }),
              n instanceof l ? n.add(s) : Array.isArray(n) && n.push(s),
              s
            );
          }),
        this._event
      );
    }
    fire(e) {
      if (this._listeners) {
        this._deliveryQueue || (this._deliveryQueue = new rt());
        for (let t of this._listeners) this._deliveryQueue.push([t, e]);
        for (; this._deliveryQueue.size > 0; ) {
          const [e, t] = this._deliveryQueue.shift();
          try {
            'function' == typeof e ? e.call(void 0, t) : e[0].call(e[1], t);
          } catch (e) {
            n(e);
          }
        }
      }
    }
    dispose() {
      this._listeners && this._listeners.clear(),
        this._deliveryQueue && this._deliveryQueue.clear(),
        this._leakageMon && this._leakageMon.dispose(),
        (this._disposed = !0);
    }
  }
  ot._noop = function () {};
  const st = Object.freeze(function (e, t) {
    const n = setTimeout(e.bind(t), 0);
    return {
      dispose() {
        clearTimeout(n);
      },
    };
  });
  var at;
  !(function (e) {
    (e.isCancellationToken = function (t) {
      return (
        t === e.None ||
        t === e.Cancelled ||
        t instanceof ut ||
        (!(!t || 'object' != typeof t) &&
          'boolean' == typeof t.isCancellationRequested &&
          'function' == typeof t.onCancellationRequested)
      );
    }),
      (e.None = Object.freeze({
        isCancellationRequested: !1,
        onCancellationRequested: it.None,
      })),
      (e.Cancelled = Object.freeze({
        isCancellationRequested: !0,
        onCancellationRequested: st,
      }));
  })(at || (at = {}));
  class ut {
    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
        ? st
        : (this._emitter || (this._emitter = new ot()), this._emitter.event);
    }
    dispose() {
      this._emitter && (this._emitter.dispose(), (this._emitter = null));
    }
  }
  class lt {
    constructor() {
      (this._keyCodeToStr = []), (this._strToKeyCode = Object.create(null));
    }
    define(e, t) {
      (this._keyCodeToStr[e] = t), (this._strToKeyCode[t.toLowerCase()] = e);
    }
    keyCodeToStr(e) {
      return this._keyCodeToStr[e];
    }
    strToKeyCode(e) {
      return this._strToKeyCode[e.toLowerCase()] || 0;
    }
  }
  const ct = new lt(),
    ht = new lt(),
    ft = new lt();
  var dt,
    mt,
    gt,
    pt,
    vt,
    yt,
    bt,
    Ct,
    _t,
    St,
    Et,
    At,
    xt,
    Nt,
    Lt,
    wt,
    Tt,
    kt,
    Ot,
    It,
    Mt,
    Pt,
    Rt,
    Dt,
    Ft,
    jt,
    Ut,
    Vt,
    $t,
    Wt,
    qt,
    Kt,
    Bt,
    Ht;
  !(function () {
    function e(e, t, n = t, r = n) {
      ct.define(e, t), ht.define(e, n), ft.define(e, r);
    }
    e(0, 'unknown'),
      e(1, 'Backspace'),
      e(2, 'Tab'),
      e(3, 'Enter'),
      e(4, 'Shift'),
      e(5, 'Ctrl'),
      e(6, 'Alt'),
      e(7, 'PauseBreak'),
      e(8, 'CapsLock'),
      e(9, 'Escape'),
      e(10, 'Space'),
      e(11, 'PageUp'),
      e(12, 'PageDown'),
      e(13, 'End'),
      e(14, 'Home'),
      e(15, 'LeftArrow', 'Left'),
      e(16, 'UpArrow', 'Up'),
      e(17, 'RightArrow', 'Right'),
      e(18, 'DownArrow', 'Down'),
      e(19, 'Insert'),
      e(20, 'Delete'),
      e(21, '0'),
      e(22, '1'),
      e(23, '2'),
      e(24, '3'),
      e(25, '4'),
      e(26, '5'),
      e(27, '6'),
      e(28, '7'),
      e(29, '8'),
      e(30, '9'),
      e(31, 'A'),
      e(32, 'B'),
      e(33, 'C'),
      e(34, 'D'),
      e(35, 'E'),
      e(36, 'F'),
      e(37, 'G'),
      e(38, 'H'),
      e(39, 'I'),
      e(40, 'J'),
      e(41, 'K'),
      e(42, 'L'),
      e(43, 'M'),
      e(44, 'N'),
      e(45, 'O'),
      e(46, 'P'),
      e(47, 'Q'),
      e(48, 'R'),
      e(49, 'S'),
      e(50, 'T'),
      e(51, 'U'),
      e(52, 'V'),
      e(53, 'W'),
      e(54, 'X'),
      e(55, 'Y'),
      e(56, 'Z'),
      e(57, 'Meta'),
      e(58, 'ContextMenu'),
      e(59, 'F1'),
      e(60, 'F2'),
      e(61, 'F3'),
      e(62, 'F4'),
      e(63, 'F5'),
      e(64, 'F6'),
      e(65, 'F7'),
      e(66, 'F8'),
      e(67, 'F9'),
      e(68, 'F10'),
      e(69, 'F11'),
      e(70, 'F12'),
      e(71, 'F13'),
      e(72, 'F14'),
      e(73, 'F15'),
      e(74, 'F16'),
      e(75, 'F17'),
      e(76, 'F18'),
      e(77, 'F19'),
      e(78, 'NumLock'),
      e(79, 'ScrollLock'),
      e(80, ';', ';', 'OEM_1'),
      e(81, '=', '=', 'OEM_PLUS'),
      e(82, ',', ',', 'OEM_COMMA'),
      e(83, '-', '-', 'OEM_MINUS'),
      e(84, '.', '.', 'OEM_PERIOD'),
      e(85, '/', '/', 'OEM_2'),
      e(86, '`', '`', 'OEM_3'),
      e(110, 'ABNT_C1'),
      e(111, 'ABNT_C2'),
      e(87, '[', '[', 'OEM_4'),
      e(88, '\\', '\\', 'OEM_5'),
      e(89, ']', ']', 'OEM_6'),
      e(90, "'", "'", 'OEM_7'),
      e(91, 'OEM_8'),
      e(92, 'OEM_102'),
      e(93, 'NumPad0'),
      e(94, 'NumPad1'),
      e(95, 'NumPad2'),
      e(96, 'NumPad3'),
      e(97, 'NumPad4'),
      e(98, 'NumPad5'),
      e(99, 'NumPad6'),
      e(100, 'NumPad7'),
      e(101, 'NumPad8'),
      e(102, 'NumPad9'),
      e(103, 'NumPad_Multiply'),
      e(104, 'NumPad_Add'),
      e(105, 'NumPad_Separator'),
      e(106, 'NumPad_Subtract'),
      e(107, 'NumPad_Decimal'),
      e(108, 'NumPad_Divide');
  })(),
    (function (e) {
      (e.toString = function (e) {
        return ct.keyCodeToStr(e);
      }),
        (e.fromString = function (e) {
          return ct.strToKeyCode(e);
        }),
        (e.toUserSettingsUS = function (e) {
          return ht.keyCodeToStr(e);
        }),
        (e.toUserSettingsGeneral = function (e) {
          return ft.keyCodeToStr(e);
        }),
        (e.fromUserSettings = function (e) {
          return ht.strToKeyCode(e) || ft.strToKeyCode(e);
        });
    })(dt || (dt = {}));
  class Yt extends Oe {
    constructor(e, t, n, r) {
      super(e, t, n, r),
        (this.selectionStartLineNumber = e),
        (this.selectionStartColumn = t),
        (this.positionLineNumber = n),
        (this.positionColumn = r);
    }
    toString() {
      return (
        '[' +
        this.selectionStartLineNumber +
        ',' +
        this.selectionStartColumn +
        ' -> ' +
        this.positionLineNumber +
        ',' +
        this.positionColumn +
        ']'
      );
    }
    equalsSelection(e) {
      return Yt.selectionsEqual(this, e);
    }
    static selectionsEqual(e, t) {
      return (
        e.selectionStartLineNumber === t.selectionStartLineNumber &&
        e.selectionStartColumn === t.selectionStartColumn &&
        e.positionLineNumber === t.positionLineNumber &&
        e.positionColumn === t.positionColumn
      );
    }
    getDirection() {
      return this.selectionStartLineNumber === this.startLineNumber &&
        this.selectionStartColumn === this.startColumn
        ? 0
        : 1;
    }
    setEndPosition(e, t) {
      return 0 === this.getDirection()
        ? new Yt(this.startLineNumber, this.startColumn, e, t)
        : new Yt(e, t, this.startLineNumber, this.startColumn);
    }
    getPosition() {
      return new ke(this.positionLineNumber, this.positionColumn);
    }
    setStartPosition(e, t) {
      return 0 === this.getDirection()
        ? new Yt(e, t, this.endLineNumber, this.endColumn)
        : new Yt(this.endLineNumber, this.endColumn, e, t);
    }
    static fromPositions(e, t = e) {
      return new Yt(e.lineNumber, e.column, t.lineNumber, t.column);
    }
    static liftSelection(e) {
      return new Yt(
        e.selectionStartLineNumber,
        e.selectionStartColumn,
        e.positionLineNumber,
        e.positionColumn
      );
    }
    static selectionsArrEqual(e, t) {
      if ((e && !t) || (!e && t)) return !1;
      if (!e && !t) return !0;
      if (e.length !== t.length) return !1;
      for (let n = 0, r = e.length; n < r; n++)
        if (!this.selectionsEqual(e[n], t[n])) return !1;
      return !0;
    }
    static isISelection(e) {
      return (
        e &&
        'number' == typeof e.selectionStartLineNumber &&
        'number' == typeof e.selectionStartColumn &&
        'number' == typeof e.positionLineNumber &&
        'number' == typeof e.positionColumn
      );
    }
    static createWithDirection(e, t, n, r, i) {
      return 0 === i ? new Yt(e, t, n, r) : new Yt(n, r, e, t);
    }
  }
  !(function (e) {
    (e[(e.Unknown = 0)] = 'Unknown'),
      (e[(e.Disabled = 1)] = 'Disabled'),
      (e[(e.Enabled = 2)] = 'Enabled');
  })(mt || (mt = {})),
    (function (e) {
      (e[(e.KeepWhitespace = 1)] = 'KeepWhitespace'),
        (e[(e.InsertAsSnippet = 4)] = 'InsertAsSnippet');
    })(gt || (gt = {})),
    (function (e) {
      (e[(e.Method = 0)] = 'Method'),
        (e[(e.Function = 1)] = 'Function'),
        (e[(e.Constructor = 2)] = 'Constructor'),
        (e[(e.Field = 3)] = 'Field'),
        (e[(e.Variable = 4)] = 'Variable'),
        (e[(e.Class = 5)] = 'Class'),
        (e[(e.Struct = 6)] = 'Struct'),
        (e[(e.Interface = 7)] = 'Interface'),
        (e[(e.Module = 8)] = 'Module'),
        (e[(e.Property = 9)] = 'Property'),
        (e[(e.Event = 10)] = 'Event'),
        (e[(e.Operator = 11)] = 'Operator'),
        (e[(e.Unit = 12)] = 'Unit'),
        (e[(e.Value = 13)] = 'Value'),
        (e[(e.Constant = 14)] = 'Constant'),
        (e[(e.Enum = 15)] = 'Enum'),
        (e[(e.EnumMember = 16)] = 'EnumMember'),
        (e[(e.Keyword = 17)] = 'Keyword'),
        (e[(e.Text = 18)] = 'Text'),
        (e[(e.Color = 19)] = 'Color'),
        (e[(e.File = 20)] = 'File'),
        (e[(e.Reference = 21)] = 'Reference'),
        (e[(e.Customcolor = 22)] = 'Customcolor'),
        (e[(e.Folder = 23)] = 'Folder'),
        (e[(e.TypeParameter = 24)] = 'TypeParameter'),
        (e[(e.User = 25)] = 'User'),
        (e[(e.Issue = 26)] = 'Issue'),
        (e[(e.Snippet = 27)] = 'Snippet');
    })(pt || (pt = {})),
    (function (e) {
      e[(e.Deprecated = 1)] = 'Deprecated';
    })(vt || (vt = {})),
    (function (e) {
      (e[(e.Invoke = 0)] = 'Invoke'),
        (e[(e.TriggerCharacter = 1)] = 'TriggerCharacter'),
        (e[(e.TriggerForIncompleteCompletions = 2)] =
          'TriggerForIncompleteCompletions');
    })(yt || (yt = {})),
    (function (e) {
      (e[(e.EXACT = 0)] = 'EXACT'),
        (e[(e.ABOVE = 1)] = 'ABOVE'),
        (e[(e.BELOW = 2)] = 'BELOW');
    })(bt || (bt = {})),
    (function (e) {
      (e[(e.NotSet = 0)] = 'NotSet'),
        (e[(e.ContentFlush = 1)] = 'ContentFlush'),
        (e[(e.RecoverFromMarkers = 2)] = 'RecoverFromMarkers'),
        (e[(e.Explicit = 3)] = 'Explicit'),
        (e[(e.Paste = 4)] = 'Paste'),
        (e[(e.Undo = 5)] = 'Undo'),
        (e[(e.Redo = 6)] = 'Redo');
    })(Ct || (Ct = {})),
    (function (e) {
      (e[(e.LF = 1)] = 'LF'), (e[(e.CRLF = 2)] = 'CRLF');
    })(_t || (_t = {})),
    (function (e) {
      (e[(e.Text = 0)] = 'Text'),
        (e[(e.Read = 1)] = 'Read'),
        (e[(e.Write = 2)] = 'Write');
    })(St || (St = {})),
    (function (e) {
      (e[(e.None = 0)] = 'None'),
        (e[(e.Keep = 1)] = 'Keep'),
        (e[(e.Brackets = 2)] = 'Brackets'),
        (e[(e.Advanced = 3)] = 'Advanced'),
        (e[(e.Full = 4)] = 'Full');
    })(Et || (Et = {})),
    (function (e) {
      (e[(e.acceptSuggestionOnCommitCharacter = 0)] =
        'acceptSuggestionOnCommitCharacter'),
        (e[(e.acceptSuggestionOnEnter = 1)] = 'acceptSuggestionOnEnter'),
        (e[(e.accessibilitySupport = 2)] = 'accessibilitySupport'),
        (e[(e.accessibilityPageSize = 3)] = 'accessibilityPageSize'),
        (e[(e.ariaLabel = 4)] = 'ariaLabel'),
        (e[(e.autoClosingBrackets = 5)] = 'autoClosingBrackets'),
        (e[(e.autoClosingOvertype = 6)] = 'autoClosingOvertype'),
        (e[(e.autoClosingQuotes = 7)] = 'autoClosingQuotes'),
        (e[(e.autoIndent = 8)] = 'autoIndent'),
        (e[(e.automaticLayout = 9)] = 'automaticLayout'),
        (e[(e.autoSurround = 10)] = 'autoSurround'),
        (e[(e.codeLens = 11)] = 'codeLens'),
        (e[(e.colorDecorators = 12)] = 'colorDecorators'),
        (e[(e.columnSelection = 13)] = 'columnSelection'),
        (e[(e.comments = 14)] = 'comments'),
        (e[(e.contextmenu = 15)] = 'contextmenu'),
        (e[(e.copyWithSyntaxHighlighting = 16)] = 'copyWithSyntaxHighlighting'),
        (e[(e.cursorBlinking = 17)] = 'cursorBlinking'),
        (e[(e.cursorSmoothCaretAnimation = 18)] = 'cursorSmoothCaretAnimation'),
        (e[(e.cursorStyle = 19)] = 'cursorStyle'),
        (e[(e.cursorSurroundingLines = 20)] = 'cursorSurroundingLines'),
        (e[(e.cursorSurroundingLinesStyle = 21)] =
          'cursorSurroundingLinesStyle'),
        (e[(e.cursorWidth = 22)] = 'cursorWidth'),
        (e[(e.disableLayerHinting = 23)] = 'disableLayerHinting'),
        (e[(e.disableMonospaceOptimizations = 24)] =
          'disableMonospaceOptimizations'),
        (e[(e.dragAndDrop = 25)] = 'dragAndDrop'),
        (e[(e.emptySelectionClipboard = 26)] = 'emptySelectionClipboard'),
        (e[(e.extraEditorClassName = 27)] = 'extraEditorClassName'),
        (e[(e.fastScrollSensitivity = 28)] = 'fastScrollSensitivity'),
        (e[(e.find = 29)] = 'find'),
        (e[(e.fixedOverflowWidgets = 30)] = 'fixedOverflowWidgets'),
        (e[(e.folding = 31)] = 'folding'),
        (e[(e.foldingStrategy = 32)] = 'foldingStrategy'),
        (e[(e.foldingHighlight = 33)] = 'foldingHighlight'),
        (e[(e.unfoldOnClickAfterEndOfLine = 34)] =
          'unfoldOnClickAfterEndOfLine'),
        (e[(e.fontFamily = 35)] = 'fontFamily'),
        (e[(e.fontInfo = 36)] = 'fontInfo'),
        (e[(e.fontLigatures = 37)] = 'fontLigatures'),
        (e[(e.fontSize = 38)] = 'fontSize'),
        (e[(e.fontWeight = 39)] = 'fontWeight'),
        (e[(e.formatOnPaste = 40)] = 'formatOnPaste'),
        (e[(e.formatOnType = 41)] = 'formatOnType'),
        (e[(e.glyphMargin = 42)] = 'glyphMargin'),
        (e[(e.gotoLocation = 43)] = 'gotoLocation'),
        (e[(e.hideCursorInOverviewRuler = 44)] = 'hideCursorInOverviewRuler'),
        (e[(e.highlightActiveIndentGuide = 45)] = 'highlightActiveIndentGuide'),
        (e[(e.hover = 46)] = 'hover'),
        (e[(e.inDiffEditor = 47)] = 'inDiffEditor'),
        (e[(e.letterSpacing = 48)] = 'letterSpacing'),
        (e[(e.lightbulb = 49)] = 'lightbulb'),
        (e[(e.lineDecorationsWidth = 50)] = 'lineDecorationsWidth'),
        (e[(e.lineHeight = 51)] = 'lineHeight'),
        (e[(e.lineNumbers = 52)] = 'lineNumbers'),
        (e[(e.lineNumbersMinChars = 53)] = 'lineNumbersMinChars'),
        (e[(e.links = 54)] = 'links'),
        (e[(e.matchBrackets = 55)] = 'matchBrackets'),
        (e[(e.minimap = 56)] = 'minimap'),
        (e[(e.mouseStyle = 57)] = 'mouseStyle'),
        (e[(e.mouseWheelScrollSensitivity = 58)] =
          'mouseWheelScrollSensitivity'),
        (e[(e.mouseWheelZoom = 59)] = 'mouseWheelZoom'),
        (e[(e.multiCursorMergeOverlapping = 60)] =
          'multiCursorMergeOverlapping'),
        (e[(e.multiCursorModifier = 61)] = 'multiCursorModifier'),
        (e[(e.multiCursorPaste = 62)] = 'multiCursorPaste'),
        (e[(e.occurrencesHighlight = 63)] = 'occurrencesHighlight'),
        (e[(e.overviewRulerBorder = 64)] = 'overviewRulerBorder'),
        (e[(e.overviewRulerLanes = 65)] = 'overviewRulerLanes'),
        (e[(e.padding = 66)] = 'padding'),
        (e[(e.parameterHints = 67)] = 'parameterHints'),
        (e[(e.peekWidgetDefaultFocus = 68)] = 'peekWidgetDefaultFocus'),
        (e[(e.definitionLinkOpensInPeek = 69)] = 'definitionLinkOpensInPeek'),
        (e[(e.quickSuggestions = 70)] = 'quickSuggestions'),
        (e[(e.quickSuggestionsDelay = 71)] = 'quickSuggestionsDelay'),
        (e[(e.readOnly = 72)] = 'readOnly'),
        (e[(e.renameOnType = 73)] = 'renameOnType'),
        (e[(e.renderControlCharacters = 74)] = 'renderControlCharacters'),
        (e[(e.renderIndentGuides = 75)] = 'renderIndentGuides'),
        (e[(e.renderFinalNewline = 76)] = 'renderFinalNewline'),
        (e[(e.renderLineHighlight = 77)] = 'renderLineHighlight'),
        (e[(e.renderLineHighlightOnlyWhenFocus = 78)] =
          'renderLineHighlightOnlyWhenFocus'),
        (e[(e.renderValidationDecorations = 79)] =
          'renderValidationDecorations'),
        (e[(e.renderWhitespace = 80)] = 'renderWhitespace'),
        (e[(e.revealHorizontalRightPadding = 81)] =
          'revealHorizontalRightPadding'),
        (e[(e.roundedSelection = 82)] = 'roundedSelection'),
        (e[(e.rulers = 83)] = 'rulers'),
        (e[(e.scrollbar = 84)] = 'scrollbar'),
        (e[(e.scrollBeyondLastColumn = 85)] = 'scrollBeyondLastColumn'),
        (e[(e.scrollBeyondLastLine = 86)] = 'scrollBeyondLastLine'),
        (e[(e.scrollPredominantAxis = 87)] = 'scrollPredominantAxis'),
        (e[(e.selectionClipboard = 88)] = 'selectionClipboard'),
        (e[(e.selectionHighlight = 89)] = 'selectionHighlight'),
        (e[(e.selectOnLineNumbers = 90)] = 'selectOnLineNumbers'),
        (e[(e.showFoldingControls = 91)] = 'showFoldingControls'),
        (e[(e.showUnused = 92)] = 'showUnused'),
        (e[(e.snippetSuggestions = 93)] = 'snippetSuggestions'),
        (e[(e.smoothScrolling = 94)] = 'smoothScrolling'),
        (e[(e.stopRenderingLineAfter = 95)] = 'stopRenderingLineAfter'),
        (e[(e.suggest = 96)] = 'suggest'),
        (e[(e.suggestFontSize = 97)] = 'suggestFontSize'),
        (e[(e.suggestLineHeight = 98)] = 'suggestLineHeight'),
        (e[(e.suggestOnTriggerCharacters = 99)] = 'suggestOnTriggerCharacters'),
        (e[(e.suggestSelection = 100)] = 'suggestSelection'),
        (e[(e.tabCompletion = 101)] = 'tabCompletion'),
        (e[(e.tabIndex = 102)] = 'tabIndex'),
        (e[(e.unusualLineTerminators = 103)] = 'unusualLineTerminators'),
        (e[(e.useTabStops = 104)] = 'useTabStops'),
        (e[(e.wordSeparators = 105)] = 'wordSeparators'),
        (e[(e.wordWrap = 106)] = 'wordWrap'),
        (e[(e.wordWrapBreakAfterCharacters = 107)] =
          'wordWrapBreakAfterCharacters'),
        (e[(e.wordWrapBreakBeforeCharacters = 108)] =
          'wordWrapBreakBeforeCharacters'),
        (e[(e.wordWrapColumn = 109)] = 'wordWrapColumn'),
        (e[(e.wordWrapMinified = 110)] = 'wordWrapMinified'),
        (e[(e.wrappingIndent = 111)] = 'wrappingIndent'),
        (e[(e.wrappingStrategy = 112)] = 'wrappingStrategy'),
        (e[(e.showDeprecated = 113)] = 'showDeprecated'),
        (e[(e.editorClassName = 114)] = 'editorClassName'),
        (e[(e.pixelRatio = 115)] = 'pixelRatio'),
        (e[(e.tabFocusMode = 116)] = 'tabFocusMode'),
        (e[(e.layoutInfo = 117)] = 'layoutInfo'),
        (e[(e.wrappingInfo = 118)] = 'wrappingInfo');
    })(At || (At = {})),
    (function (e) {
      (e[(e.TextDefined = 0)] = 'TextDefined'),
        (e[(e.LF = 1)] = 'LF'),
        (e[(e.CRLF = 2)] = 'CRLF');
    })(xt || (xt = {})),
    (function (e) {
      (e[(e.LF = 0)] = 'LF'), (e[(e.CRLF = 1)] = 'CRLF');
    })(Nt || (Nt = {})),
    (function (e) {
      (e[(e.None = 0)] = 'None'),
        (e[(e.Indent = 1)] = 'Indent'),
        (e[(e.IndentOutdent = 2)] = 'IndentOutdent'),
        (e[(e.Outdent = 3)] = 'Outdent');
    })(Lt || (Lt = {})),
    (function (e) {
      (e[(e.Unknown = 0)] = 'Unknown'),
        (e[(e.Backspace = 1)] = 'Backspace'),
        (e[(e.Tab = 2)] = 'Tab'),
        (e[(e.Enter = 3)] = 'Enter'),
        (e[(e.Shift = 4)] = 'Shift'),
        (e[(e.Ctrl = 5)] = 'Ctrl'),
        (e[(e.Alt = 6)] = 'Alt'),
        (e[(e.PauseBreak = 7)] = 'PauseBreak'),
        (e[(e.CapsLock = 8)] = 'CapsLock'),
        (e[(e.Escape = 9)] = 'Escape'),
        (e[(e.Space = 10)] = 'Space'),
        (e[(e.PageUp = 11)] = 'PageUp'),
        (e[(e.PageDown = 12)] = 'PageDown'),
        (e[(e.End = 13)] = 'End'),
        (e[(e.Home = 14)] = 'Home'),
        (e[(e.LeftArrow = 15)] = 'LeftArrow'),
        (e[(e.UpArrow = 16)] = 'UpArrow'),
        (e[(e.RightArrow = 17)] = 'RightArrow'),
        (e[(e.DownArrow = 18)] = 'DownArrow'),
        (e[(e.Insert = 19)] = 'Insert'),
        (e[(e.Delete = 20)] = 'Delete'),
        (e[(e.KEY_0 = 21)] = 'KEY_0'),
        (e[(e.KEY_1 = 22)] = 'KEY_1'),
        (e[(e.KEY_2 = 23)] = 'KEY_2'),
        (e[(e.KEY_3 = 24)] = 'KEY_3'),
        (e[(e.KEY_4 = 25)] = 'KEY_4'),
        (e[(e.KEY_5 = 26)] = 'KEY_5'),
        (e[(e.KEY_6 = 27)] = 'KEY_6'),
        (e[(e.KEY_7 = 28)] = 'KEY_7'),
        (e[(e.KEY_8 = 29)] = 'KEY_8'),
        (e[(e.KEY_9 = 30)] = 'KEY_9'),
        (e[(e.KEY_A = 31)] = 'KEY_A'),
        (e[(e.KEY_B = 32)] = 'KEY_B'),
        (e[(e.KEY_C = 33)] = 'KEY_C'),
        (e[(e.KEY_D = 34)] = 'KEY_D'),
        (e[(e.KEY_E = 35)] = 'KEY_E'),
        (e[(e.KEY_F = 36)] = 'KEY_F'),
        (e[(e.KEY_G = 37)] = 'KEY_G'),
        (e[(e.KEY_H = 38)] = 'KEY_H'),
        (e[(e.KEY_I = 39)] = 'KEY_I'),
        (e[(e.KEY_J = 40)] = 'KEY_J'),
        (e[(e.KEY_K = 41)] = 'KEY_K'),
        (e[(e.KEY_L = 42)] = 'KEY_L'),
        (e[(e.KEY_M = 43)] = 'KEY_M'),
        (e[(e.KEY_N = 44)] = 'KEY_N'),
        (e[(e.KEY_O = 45)] = 'KEY_O'),
        (e[(e.KEY_P = 46)] = 'KEY_P'),
        (e[(e.KEY_Q = 47)] = 'KEY_Q'),
        (e[(e.KEY_R = 48)] = 'KEY_R'),
        (e[(e.KEY_S = 49)] = 'KEY_S'),
        (e[(e.KEY_T = 50)] = 'KEY_T'),
        (e[(e.KEY_U = 51)] = 'KEY_U'),
        (e[(e.KEY_V = 52)] = 'KEY_V'),
        (e[(e.KEY_W = 53)] = 'KEY_W'),
        (e[(e.KEY_X = 54)] = 'KEY_X'),
        (e[(e.KEY_Y = 55)] = 'KEY_Y'),
        (e[(e.KEY_Z = 56)] = 'KEY_Z'),
        (e[(e.Meta = 57)] = 'Meta'),
        (e[(e.ContextMenu = 58)] = 'ContextMenu'),
        (e[(e.F1 = 59)] = 'F1'),
        (e[(e.F2 = 60)] = 'F2'),
        (e[(e.F3 = 61)] = 'F3'),
        (e[(e.F4 = 62)] = 'F4'),
        (e[(e.F5 = 63)] = 'F5'),
        (e[(e.F6 = 64)] = 'F6'),
        (e[(e.F7 = 65)] = 'F7'),
        (e[(e.F8 = 66)] = 'F8'),
        (e[(e.F9 = 67)] = 'F9'),
        (e[(e.F10 = 68)] = 'F10'),
        (e[(e.F11 = 69)] = 'F11'),
        (e[(e.F12 = 70)] = 'F12'),
        (e[(e.F13 = 71)] = 'F13'),
        (e[(e.F14 = 72)] = 'F14'),
        (e[(e.F15 = 73)] = 'F15'),
        (e[(e.F16 = 74)] = 'F16'),
        (e[(e.F17 = 75)] = 'F17'),
        (e[(e.F18 = 76)] = 'F18'),
        (e[(e.F19 = 77)] = 'F19'),
        (e[(e.NumLock = 78)] = 'NumLock'),
        (e[(e.ScrollLock = 79)] = 'ScrollLock'),
        (e[(e.US_SEMICOLON = 80)] = 'US_SEMICOLON'),
        (e[(e.US_EQUAL = 81)] = 'US_EQUAL'),
        (e[(e.US_COMMA = 82)] = 'US_COMMA'),
        (e[(e.US_MINUS = 83)] = 'US_MINUS'),
        (e[(e.US_DOT = 84)] = 'US_DOT'),
        (e[(e.US_SLASH = 85)] = 'US_SLASH'),
        (e[(e.US_BACKTICK = 86)] = 'US_BACKTICK'),
        (e[(e.US_OPEN_SQUARE_BRACKET = 87)] = 'US_OPEN_SQUARE_BRACKET'),
        (e[(e.US_BACKSLASH = 88)] = 'US_BACKSLASH'),
        (e[(e.US_CLOSE_SQUARE_BRACKET = 89)] = 'US_CLOSE_SQUARE_BRACKET'),
        (e[(e.US_QUOTE = 90)] = 'US_QUOTE'),
        (e[(e.OEM_8 = 91)] = 'OEM_8'),
        (e[(e.OEM_102 = 92)] = 'OEM_102'),
        (e[(e.NUMPAD_0 = 93)] = 'NUMPAD_0'),
        (e[(e.NUMPAD_1 = 94)] = 'NUMPAD_1'),
        (e[(e.NUMPAD_2 = 95)] = 'NUMPAD_2'),
        (e[(e.NUMPAD_3 = 96)] = 'NUMPAD_3'),
        (e[(e.NUMPAD_4 = 97)] = 'NUMPAD_4'),
        (e[(e.NUMPAD_5 = 98)] = 'NUMPAD_5'),
        (e[(e.NUMPAD_6 = 99)] = 'NUMPAD_6'),
        (e[(e.NUMPAD_7 = 100)] = 'NUMPAD_7'),
        (e[(e.NUMPAD_8 = 101)] = 'NUMPAD_8'),
        (e[(e.NUMPAD_9 = 102)] = 'NUMPAD_9'),
        (e[(e.NUMPAD_MULTIPLY = 103)] = 'NUMPAD_MULTIPLY'),
        (e[(e.NUMPAD_ADD = 104)] = 'NUMPAD_ADD'),
        (e[(e.NUMPAD_SEPARATOR = 105)] = 'NUMPAD_SEPARATOR'),
        (e[(e.NUMPAD_SUBTRACT = 106)] = 'NUMPAD_SUBTRACT'),
        (e[(e.NUMPAD_DECIMAL = 107)] = 'NUMPAD_DECIMAL'),
        (e[(e.NUMPAD_DIVIDE = 108)] = 'NUMPAD_DIVIDE'),
        (e[(e.KEY_IN_COMPOSITION = 109)] = 'KEY_IN_COMPOSITION'),
        (e[(e.ABNT_C1 = 110)] = 'ABNT_C1'),
        (e[(e.ABNT_C2 = 111)] = 'ABNT_C2'),
        (e[(e.MAX_VALUE = 112)] = 'MAX_VALUE');
    })(wt || (wt = {})),
    (function (e) {
      (e[(e.Hint = 1)] = 'Hint'),
        (e[(e.Info = 2)] = 'Info'),
        (e[(e.Warning = 4)] = 'Warning'),
        (e[(e.Error = 8)] = 'Error');
    })(Tt || (Tt = {})),
    (function (e) {
      (e[(e.Unnecessary = 1)] = 'Unnecessary'),
        (e[(e.Deprecated = 2)] = 'Deprecated');
    })(kt || (kt = {})),
    (function (e) {
      (e[(e.Inline = 1)] = 'Inline'), (e[(e.Gutter = 2)] = 'Gutter');
    })(Ot || (Ot = {})),
    (function (e) {
      (e[(e.UNKNOWN = 0)] = 'UNKNOWN'),
        (e[(e.TEXTAREA = 1)] = 'TEXTAREA'),
        (e[(e.GUTTER_GLYPH_MARGIN = 2)] = 'GUTTER_GLYPH_MARGIN'),
        (e[(e.GUTTER_LINE_NUMBERS = 3)] = 'GUTTER_LINE_NUMBERS'),
        (e[(e.GUTTER_LINE_DECORATIONS = 4)] = 'GUTTER_LINE_DECORATIONS'),
        (e[(e.GUTTER_VIEW_ZONE = 5)] = 'GUTTER_VIEW_ZONE'),
        (e[(e.CONTENT_TEXT = 6)] = 'CONTENT_TEXT'),
        (e[(e.CONTENT_EMPTY = 7)] = 'CONTENT_EMPTY'),
        (e[(e.CONTENT_VIEW_ZONE = 8)] = 'CONTENT_VIEW_ZONE'),
        (e[(e.CONTENT_WIDGET = 9)] = 'CONTENT_WIDGET'),
        (e[(e.OVERVIEW_RULER = 10)] = 'OVERVIEW_RULER'),
        (e[(e.SCROLLBAR = 11)] = 'SCROLLBAR'),
        (e[(e.OVERLAY_WIDGET = 12)] = 'OVERLAY_WIDGET'),
        (e[(e.OUTSIDE_EDITOR = 13)] = 'OUTSIDE_EDITOR');
    })(It || (It = {})),
    (function (e) {
      (e[(e.TOP_RIGHT_CORNER = 0)] = 'TOP_RIGHT_CORNER'),
        (e[(e.BOTTOM_RIGHT_CORNER = 1)] = 'BOTTOM_RIGHT_CORNER'),
        (e[(e.TOP_CENTER = 2)] = 'TOP_CENTER');
    })(Mt || (Mt = {})),
    (function (e) {
      (e[(e.Left = 1)] = 'Left'),
        (e[(e.Center = 2)] = 'Center'),
        (e[(e.Right = 4)] = 'Right'),
        (e[(e.Full = 7)] = 'Full');
    })(Pt || (Pt = {})),
    (function (e) {
      (e[(e.Off = 0)] = 'Off'),
        (e[(e.On = 1)] = 'On'),
        (e[(e.Relative = 2)] = 'Relative'),
        (e[(e.Interval = 3)] = 'Interval'),
        (e[(e.Custom = 4)] = 'Custom');
    })(Rt || (Rt = {})),
    (function (e) {
      (e[(e.None = 0)] = 'None'),
        (e[(e.Text = 1)] = 'Text'),
        (e[(e.Blocks = 2)] = 'Blocks');
    })(Dt || (Dt = {})),
    (function (e) {
      (e[(e.Smooth = 0)] = 'Smooth'), (e[(e.Immediate = 1)] = 'Immediate');
    })(Ft || (Ft = {})),
    (function (e) {
      (e[(e.Auto = 1)] = 'Auto'),
        (e[(e.Hidden = 2)] = 'Hidden'),
        (e[(e.Visible = 3)] = 'Visible');
    })(jt || (jt = {})),
    (function (e) {
      (e[(e.LTR = 0)] = 'LTR'), (e[(e.RTL = 1)] = 'RTL');
    })(Ut || (Ut = {})),
    (function (e) {
      (e[(e.Invoke = 1)] = 'Invoke'),
        (e[(e.TriggerCharacter = 2)] = 'TriggerCharacter'),
        (e[(e.ContentChange = 3)] = 'ContentChange');
    })(Vt || (Vt = {})),
    (function (e) {
      (e[(e.File = 0)] = 'File'),
        (e[(e.Module = 1)] = 'Module'),
        (e[(e.Namespace = 2)] = 'Namespace'),
        (e[(e.Package = 3)] = 'Package'),
        (e[(e.Class = 4)] = 'Class'),
        (e[(e.Method = 5)] = 'Method'),
        (e[(e.Property = 6)] = 'Property'),
        (e[(e.Field = 7)] = 'Field'),
        (e[(e.Constructor = 8)] = 'Constructor'),
        (e[(e.Enum = 9)] = 'Enum'),
        (e[(e.Interface = 10)] = 'Interface'),
        (e[(e.Function = 11)] = 'Function'),
        (e[(e.Variable = 12)] = 'Variable'),
        (e[(e.Constant = 13)] = 'Constant'),
        (e[(e.String = 14)] = 'String'),
        (e[(e.Number = 15)] = 'Number'),
        (e[(e.Boolean = 16)] = 'Boolean'),
        (e[(e.Array = 17)] = 'Array'),
        (e[(e.Object = 18)] = 'Object'),
        (e[(e.Key = 19)] = 'Key'),
        (e[(e.Null = 20)] = 'Null'),
        (e[(e.EnumMember = 21)] = 'EnumMember'),
        (e[(e.Struct = 22)] = 'Struct'),
        (e[(e.Event = 23)] = 'Event'),
        (e[(e.Operator = 24)] = 'Operator'),
        (e[(e.TypeParameter = 25)] = 'TypeParameter');
    })($t || ($t = {})),
    (function (e) {
      e[(e.Deprecated = 1)] = 'Deprecated';
    })(Wt || (Wt = {})),
    (function (e) {
      (e[(e.Hidden = 0)] = 'Hidden'),
        (e[(e.Blink = 1)] = 'Blink'),
        (e[(e.Smooth = 2)] = 'Smooth'),
        (e[(e.Phase = 3)] = 'Phase'),
        (e[(e.Expand = 4)] = 'Expand'),
        (e[(e.Solid = 5)] = 'Solid');
    })(qt || (qt = {})),
    (function (e) {
      (e[(e.Line = 1)] = 'Line'),
        (e[(e.Block = 2)] = 'Block'),
        (e[(e.Underline = 3)] = 'Underline'),
        (e[(e.LineThin = 4)] = 'LineThin'),
        (e[(e.BlockOutline = 5)] = 'BlockOutline'),
        (e[(e.UnderlineThin = 6)] = 'UnderlineThin');
    })(Kt || (Kt = {})),
    (function (e) {
      (e[(e.AlwaysGrowsWhenTypingAtEdges = 0)] =
        'AlwaysGrowsWhenTypingAtEdges'),
        (e[(e.NeverGrowsWhenTypingAtEdges = 1)] =
          'NeverGrowsWhenTypingAtEdges'),
        (e[(e.GrowsOnlyWhenTypingBefore = 2)] = 'GrowsOnlyWhenTypingBefore'),
        (e[(e.GrowsOnlyWhenTypingAfter = 3)] = 'GrowsOnlyWhenTypingAfter');
    })(Bt || (Bt = {})),
    (function (e) {
      (e[(e.None = 0)] = 'None'),
        (e[(e.Same = 1)] = 'Same'),
        (e[(e.Indent = 2)] = 'Indent'),
        (e[(e.DeepIndent = 3)] = 'DeepIndent');
    })(Ht || (Ht = {}));
  class Gt {
    static chord(e, t) {
      return (function (e, t) {
        return (e | (((65535 & t) << 16) >>> 0)) >>> 0;
      })(e, t);
    }
  }
  (Gt.CtrlCmd = 2048), (Gt.Shift = 1024), (Gt.Alt = 512), (Gt.WinCtrl = 256);
  var zt = function (e, t, n, r) {
    return new (n || (n = Promise))(function (i, o) {
      function s(e) {
        try {
          u(r.next(e));
        } catch (e) {
          o(e);
        }
      }
      function a(e) {
        try {
          u(r.throw(e));
        } catch (e) {
          o(e);
        }
      }
      function u(e) {
        var t;
        e.done
          ? i(e.value)
          : ((t = e.value),
            t instanceof n
              ? t
              : new n(function (e) {
                  e(t);
                })).then(s, a);
      }
      u((r = r.apply(e, t || [])).next());
    });
  };
  class Jt extends class {
    constructor(e, t, n, r) {
      (this._uri = e),
        (this._lines = t),
        (this._eol = n),
        (this._versionId = r),
        (this._lineStarts = null),
        (this._cachedTextValue = null);
    }
    dispose() {
      this._lines.length = 0;
    }
    getText() {
      return (
        null === this._cachedTextValue &&
          (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 t = e.changes;
      for (const e of t)
        this._acceptDeleteRange(e.range),
          this._acceptInsertText(
            new ke(e.range.startLineNumber, e.range.startColumn),
            e.text
          );
      (this._versionId = e.versionId), (this._cachedTextValue = null);
    }
    _ensureLineStarts() {
      if (!this._lineStarts) {
        const e = this._eol.length,
          t = this._lines.length,
          n = new Uint32Array(t);
        for (let r = 0; r < t; r++) n[r] = this._lines[r].length + e;
        this._lineStarts = new Ke(n);
      }
    }
    _setLineText(e, t) {
      (this._lines[e] = t),
        this._lineStarts &&
          this._lineStarts.changeValue(
            e,
            this._lines[e].length + this._eol.length
          );
    }
    _acceptDeleteRange(e) {
      if (e.startLineNumber !== e.endLineNumber)
        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
            );
      else {
        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)
        );
      }
    }
    _acceptInsertText(e, t) {
      if (0 === t.length) return;
      let n = t.split(/\r\n|\r|\n/);
      if (1 === n.length)
        return void this._setLineText(
          e.lineNumber - 1,
          this._lines[e.lineNumber - 1].substring(0, e.column - 1) +
            n[0] +
            this._lines[e.lineNumber - 1].substring(e.column - 1)
        );
      (n[n.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) + n[0]
        );
      let r = new Uint32Array(n.length - 1);
      for (let t = 1; t < n.length; t++)
        this._lines.splice(e.lineNumber + t - 1, 0, n[t]),
          (r[t - 1] = n[t].length + this._eol.length);
      this._lineStarts && this._lineStarts.insertValues(e.lineNumber, r);
    }
  } {
    get uri() {
      return this._uri;
    }
    get version() {
      return this._versionId;
    }
    get eol() {
      return this._eol;
    }
    getValue() {
      return this.getText();
    }
    getLinesContent() {
      return this._lines.slice(0);
    }
    getLineCount() {
      return this._lines.length;
    }
    getLineContent(e) {
      return this._lines[e - 1];
    }
    getWordAtPosition(e, t) {
      let n = Ye(
        e.column,
        (function (e) {
          let t = Be;
          if (e && e instanceof RegExp)
            if (e.global) t = e;
            else {
              let n = 'g';
              e.ignoreCase && (n += 'i'),
                e.multiline && (n += 'm'),
                e.unicode && (n += 'u'),
                (t = new RegExp(e.source, n));
            }
          return (t.lastIndex = 0), t;
        })(t),
        this._lines[e.lineNumber - 1],
        0
      );
      return n
        ? new Oe(e.lineNumber, n.startColumn, e.lineNumber, n.endColumn)
        : null;
    }
    words(e) {
      const t = this._lines,
        n = this._wordenize.bind(this);
      let r = 0,
        i = '',
        o = 0,
        s = [];
      return {
        *[Symbol.iterator]() {
          for (;;)
            if (o < s.length) {
              const e = i.substring(s[o].start, s[o].end);
              (o += 1), yield e;
            } else {
              if (!(r < t.length)) break;
              (i = t[r]), (s = n(i, e)), (o = 0), (r += 1);
            }
        },
      };
    }
    getLineWords(e, t) {
      let n = this._lines[e - 1],
        r = this._wordenize(n, t),
        i = [];
      for (const e of r)
        i.push({
          word: n.substring(e.start, e.end),
          startColumn: e.start + 1,
          endColumn: e.end + 1,
        });
      return i;
    }
    _wordenize(e, t) {
      const n = [];
      let r;
      for (t.lastIndex = 0; (r = t.exec(e)) && 0 !== r[0].length; )
        n.push({ start: r.index, end: r.index + r[0].length });
      return n;
    }
    getValueInRange(e) {
      if ((e = this._validateRange(e)).startLineNumber === e.endLineNumber)
        return this._lines[e.startLineNumber - 1].substring(
          e.startColumn - 1,
          e.endColumn - 1
        );
      let t = this._eol,
        n = e.startLineNumber - 1,
        r = e.endLineNumber - 1,
        i = [];
      i.push(this._lines[n].substring(e.startColumn - 1));
      for (let e = n + 1; e < r; e++) i.push(this._lines[e]);
      return i.push(this._lines[r].substring(0, e.endColumn - 1)), i.join(t);
    }
    offsetAt(e) {
      return (
        (e = this._validatePosition(e)),
        this._ensureLineStarts(),
        this._lineStarts.getAccumulatedValue(e.lineNumber - 2) + (e.column - 1)
      );
    }
    positionAt(e) {
      (e = Math.floor(e)), (e = Math.max(0, e)), this._ensureLineStarts();
      let t = this._lineStarts.getIndexOf(e),
        n = this._lines[t.index].length;
      return { lineNumber: 1 + t.index, column: 1 + Math.min(t.remainder, n) };
    }
    _validateRange(e) {
      const t = this._validatePosition({
          lineNumber: e.startLineNumber,
          column: e.startColumn,
        }),
        n = this._validatePosition({
          lineNumber: e.endLineNumber,
          column: e.endColumn,
        });
      return t.lineNumber !== e.startLineNumber ||
        t.column !== e.startColumn ||
        n.lineNumber !== e.endLineNumber ||
        n.column !== e.endColumn
        ? {
            startLineNumber: t.lineNumber,
            startColumn: t.column,
            endLineNumber: n.lineNumber,
            endColumn: n.column,
          }
        : e;
    }
    _validatePosition(e) {
      if (!ke.isIPosition(e)) throw new Error('bad position');
      let { lineNumber: t, column: n } = e,
        r = !1;
      if (t < 1) (t = 1), (n = 1), (r = !0);
      else if (t > this._lines.length)
        (t = this._lines.length), (n = this._lines[t - 1].length + 1), (r = !0);
      else {
        let e = this._lines[t - 1].length + 1;
        n < 1 ? ((n = 1), (r = !0)) : n > e && ((n = e), (r = !0));
      }
      return r ? { lineNumber: t, column: n } : e;
    }
  }
  class Qt {
    constructor(e, t) {
      (this._host = e),
        (this._models = Object.create(null)),
        (this._foreignModuleFactory = t),
        (this._foreignModule = null);
    }
    dispose() {
      this._models = Object.create(null);
    }
    _getModel(e) {
      return this._models[e];
    }
    _getModels() {
      let e = [];
      return (
        Object.keys(this._models).forEach((t) => e.push(this._models[t])), e
      );
    }
    acceptNewModel(e) {
      this._models[e.url] = new Jt(
        be.parse(e.url),
        e.lines,
        e.EOL,
        e.versionId
      );
    }
    acceptModelChanged(e, t) {
      this._models[e] && this._models[e].onEvents(t);
    }
    acceptRemovedModel(e) {
      this._models[e] && delete this._models[e];
    }
    computeDiff(e, t, n, r) {
      return zt(this, void 0, void 0, function* () {
        const i = this._getModel(e),
          o = this._getModel(t);
        if (!i || !o) return null;
        const s = i.getLinesContent(),
          a = o.getLinesContent(),
          u = new Fe(s, a, {
            shouldComputeCharChanges: !0,
            shouldPostProcessCharChanges: !0,
            shouldIgnoreTrimWhitespace: n,
            shouldMakePrettyDiff: !0,
            maxComputationTime: r,
          }).computeDiff(),
          l = !(u.changes.length > 0) && this._modelsAreIdentical(i, o);
        return { quitEarly: u.quitEarly, identical: l, changes: u.changes };
      });
    }
    _modelsAreIdentical(e, t) {
      const n = e.getLineCount();
      if (n !== t.getLineCount()) return !1;
      for (let r = 1; r <= n; r++)
        if (e.getLineContent(r) !== t.getLineContent(r)) return !1;
      return !0;
    }
    computeMoreMinimalEdits(e, t) {
      return zt(this, void 0, void 0, function* () {
        const n = this._getModel(e);
        if (!n) return t;
        const r = [];
        let i;
        t = I(t, (e, t) =>
          e.range && t.range
            ? Oe.compareRangesUsingStarts(e.range, t.range)
            : (e.range ? 0 : 1) - (t.range ? 0 : 1)
        );
        for (let { range: e, text: o, eol: s } of t) {
          if (('number' == typeof s && (i = s), Oe.isEmpty(e) && !o)) continue;
          const t = n.getValueInRange(e);
          if (((o = o.replace(/\r\n|\n|\r/g, n.eol)), t === o)) continue;
          if (Math.max(o.length, t.length) > Qt._diffLimit) {
            r.push({ range: e, text: o });
            continue;
          }
          const a = B(t, o, !1),
            u = n.offsetAt(Oe.lift(e).getStartPosition());
          for (const e of a) {
            const t = n.positionAt(u + e.originalStart),
              i = n.positionAt(u + e.originalStart + e.originalLength),
              s = {
                text: o.substr(e.modifiedStart, e.modifiedLength),
                range: {
                  startLineNumber: t.lineNumber,
                  startColumn: t.column,
                  endLineNumber: i.lineNumber,
                  endColumn: i.column,
                },
              };
            n.getValueInRange(s.range) !== s.text && r.push(s);
          }
        }
        return (
          'number' == typeof i &&
            r.push({
              eol: i,
              text: '',
              range: {
                startLineNumber: 0,
                startColumn: 0,
                endLineNumber: 0,
                endColumn: 0,
              },
            }),
          r
        );
      });
    }
    computeLinks(e) {
      return zt(this, void 0, void 0, function* () {
        let t = this._getModel(e);
        return t
          ? (function (e) {
              return e &&
                'function' == typeof e.getLineCount &&
                'function' == typeof e.getLineContent
                ? et.computeLinks(e)
                : [];
            })(t)
          : null;
      });
    }
    textualSuggest(e, t, n, r) {
      return zt(this, void 0, void 0, function* () {
        const i = this._getModel(e);
        if (!i) return null;
        const o = [],
          s = new Set(),
          a = new RegExp(n, r),
          u = i.getWordAtPosition(t, a);
        u && s.add(i.getValueInRange(u));
        for (let e of i.words(a))
          if (
            !s.has(e) &&
            (s.add(e),
            isNaN(Number(e)) && (o.push(e), s.size > Qt._suggestionsLimit))
          )
            break;
        return o;
      });
    }
    computeWordRanges(e, t, n, r) {
      return zt(this, void 0, void 0, function* () {
        let i = this._getModel(e);
        if (!i) return Object.create(null);
        const o = new RegExp(n, r),
          s = Object.create(null);
        for (let e = t.startLineNumber; e < t.endLineNumber; e++) {
          let t = i.getLineWords(e, o);
          for (const n of t) {
            if (!isNaN(Number(n.word))) continue;
            let t = s[n.word];
            t || ((t = []), (s[n.word] = t)),
              t.push({
                startLineNumber: e,
                startColumn: n.startColumn,
                endLineNumber: e,
                endColumn: n.endColumn,
              });
          }
        }
        return s;
      });
    }
    navigateValueSet(e, t, n, r, i) {
      return zt(this, void 0, void 0, function* () {
        let o = this._getModel(e);
        if (!o) return null;
        let s = new RegExp(r, i);
        t.startColumn === t.endColumn &&
          (t = {
            startLineNumber: t.startLineNumber,
            startColumn: t.startColumn,
            endLineNumber: t.endLineNumber,
            endColumn: t.endColumn + 1,
          });
        let a = o.getValueInRange(t),
          u = o.getWordAtPosition(
            { lineNumber: t.startLineNumber, column: t.startColumn },
            s
          );
        if (!u) return null;
        let l = o.getValueInRange(u);
        return tt.INSTANCE.navigateValueSet(t, a, u, l, n);
      });
    }
    loadForeignModule(e, t, n) {
      let r = {
        host: T(n, (e, t) => this._host.fhr(e, t)),
        getMirrorModels: () => this._getModels(),
      };
      return this._foreignModuleFactory
        ? ((this._foreignModule = this._foreignModuleFactory(r, t)),
          Promise.resolve(w(this._foreignModule)))
        : Promise.reject(new Error('Unexpected usage'));
    }
    fmr(e, t) {
      if (!this._foreignModule || 'function' != typeof this._foreignModule[e])
        return Promise.reject(
          new Error('Missing requestHandler or method: ' + e)
        );
      try {
        return Promise.resolve(
          this._foreignModule[e].apply(this._foreignModule, t)
        );
      } catch (e) {
        return Promise.reject(e);
      }
    }
  }
  (Qt._diffLimit = 1e5),
    (Qt._suggestionsLimit = 1e4),
    'function' == typeof importScripts &&
      (N.monaco = {
        editor: void 0,
        languages: void 0,
        CancellationTokenSource: class {
          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 ut()), this._token;
          }
          cancel() {
            this._token
              ? this._token instanceof ut && this._token.cancel()
              : (this._token = at.Cancelled);
          }
          dispose(e = !1) {
            e && this.cancel(),
              this._parentListener && this._parentListener.dispose(),
              this._token
                ? this._token instanceof ut && this._token.dispose()
                : (this._token = at.None);
          }
        },
        Emitter: ot,
        KeyCode: wt,
        KeyMod: Gt,
        Position: ke,
        Range: Oe,
        Selection: Yt,
        SelectionDirection: Ut,
        MarkerSeverity: Tt,
        MarkerTag: kt,
        Uri: be,
        Token: class {
          constructor(e, t, n) {
            (this.offset = 0 | e), (this.type = t), (this.language = n);
          }
          toString() {
            return '(' + this.offset + ', ' + this.type + ')';
          }
        },
      });
  let Zt = !1;
  function Xt(e) {
    if (Zt) return;
    Zt = !0;
    const t = new O(
      (e) => {
        self.postMessage(e);
      },
      (t) => new Qt(t, e)
    );
    self.onmessage = (e) => {
      t.onmessage(e.data);
    };
  }
  function en(e, t) {
    void 0 === t && (t = !1);
    var n = e.length,
      r = 0,
      i = '',
      o = 0,
      s = 16,
      a = 0,
      u = 0,
      l = 0,
      c = 0,
      h = 0;
    function f(t, n) {
      for (var i = 0, o = 0; i < t || !n; ) {
        var s = e.charCodeAt(r);
        if (s >= 48 && s <= 57) o = 16 * o + s - 48;
        else if (s >= 65 && s <= 70) o = 16 * o + s - 65 + 10;
        else {
          if (!(s >= 97 && s <= 102)) break;
          o = 16 * o + s - 97 + 10;
        }
        r++, i++;
      }
      return i < t && (o = -1), o;
    }
    function d() {
      if (((i = ''), (h = 0), (o = r), (u = a), (c = l), r >= n))
        return (o = n), (s = 17);
      var t = e.charCodeAt(r);
      if (tn(t)) {
        do {
          r++, (i += String.fromCharCode(t)), (t = e.charCodeAt(r));
        } while (tn(t));
        return (s = 15);
      }
      if (nn(t))
        return (
          r++,
          (i += String.fromCharCode(t)),
          13 === t && 10 === e.charCodeAt(r) && (r++, (i += '\n')),
          a++,
          (l = r),
          (s = 14)
        );
      switch (t) {
        case 123:
          return r++, (s = 1);
        case 125:
          return r++, (s = 2);
        case 91:
          return r++, (s = 3);
        case 93:
          return r++, (s = 4);
        case 58:
          return r++, (s = 6);
        case 44:
          return r++, (s = 5);
        case 34:
          return (
            r++,
            (i = (function () {
              for (var t = '', i = r; ; ) {
                if (r >= n) {
                  (t += e.substring(i, r)), (h = 2);
                  break;
                }
                var o = e.charCodeAt(r);
                if (34 === o) {
                  (t += e.substring(i, r)), r++;
                  break;
                }
                if (92 !== o) {
                  if (o >= 0 && o <= 31) {
                    if (nn(o)) {
                      (t += e.substring(i, r)), (h = 2);
                      break;
                    }
                    h = 6;
                  }
                  r++;
                } else {
                  if (((t += e.substring(i, r)), ++r >= n)) {
                    h = 2;
                    break;
                  }
                  switch (e.charCodeAt(r++)) {
                    case 34:
                      t += '"';
                      break;
                    case 92:
                      t += '\\';
                      break;
                    case 47:
                      t += '/';
                      break;
                    case 98:
                      t += '\b';
                      break;
                    case 102:
                      t += '\f';
                      break;
                    case 110:
                      t += '\n';
                      break;
                    case 114:
                      t += '\r';
                      break;
                    case 116:
                      t += '\t';
                      break;
                    case 117:
                      var s = f(4, !0);
                      s >= 0 ? (t += String.fromCharCode(s)) : (h = 4);
                      break;
                    default:
                      h = 5;
                  }
                  i = r;
                }
              }
              return t;
            })()),
            (s = 10)
          );
        case 47:
          var d = r - 1;
          if (47 === e.charCodeAt(r + 1)) {
            for (r += 2; r < n && !nn(e.charCodeAt(r)); ) r++;
            return (i = e.substring(d, r)), (s = 12);
          }
          if (42 === e.charCodeAt(r + 1)) {
            r += 2;
            for (var g = n - 1, p = !1; r < g; ) {
              var v = e.charCodeAt(r);
              if (42 === v && 47 === e.charCodeAt(r + 1)) {
                (r += 2), (p = !0);
                break;
              }
              r++,
                nn(v) &&
                  (13 === v && 10 === e.charCodeAt(r) && r++, a++, (l = r));
            }
            return p || (r++, (h = 1)), (i = e.substring(d, r)), (s = 13);
          }
          return (i += String.fromCharCode(t)), r++, (s = 16);
        case 45:
          if (
            ((i += String.fromCharCode(t)), ++r === n || !rn(e.charCodeAt(r)))
          )
            return (s = 16);
        case 48:
        case 49:
        case 50:
        case 51:
        case 52:
        case 53:
        case 54:
        case 55:
        case 56:
        case 57:
          return (
            (i += (function () {
              var t = r;
              if (48 === e.charCodeAt(r)) r++;
              else for (r++; r < e.length && rn(e.charCodeAt(r)); ) r++;
              if (r < e.length && 46 === e.charCodeAt(r)) {
                if (!(++r < e.length && rn(e.charCodeAt(r))))
                  return (h = 3), e.substring(t, r);
                for (r++; r < e.length && rn(e.charCodeAt(r)); ) r++;
              }
              var n = r;
              if (
                r < e.length &&
                (69 === e.charCodeAt(r) || 101 === e.charCodeAt(r))
              )
                if (
                  (((++r < e.length && 43 === e.charCodeAt(r)) ||
                    45 === e.charCodeAt(r)) &&
                    r++,
                  r < e.length && rn(e.charCodeAt(r)))
                ) {
                  for (r++; r < e.length && rn(e.charCodeAt(r)); ) r++;
                  n = r;
                } else h = 3;
              return e.substring(t, n);
            })()),
            (s = 11)
          );
        default:
          for (; r < n && m(t); ) r++, (t = e.charCodeAt(r));
          if (o !== r) {
            switch ((i = e.substring(o, r))) {
              case 'true':
                return (s = 8);
              case 'false':
                return (s = 9);
              case 'null':
                return (s = 7);
            }
            return (s = 16);
          }
          return (i += String.fromCharCode(t)), r++, (s = 16);
      }
    }
    function m(e) {
      if (tn(e) || nn(e)) return !1;
      switch (e) {
        case 125:
        case 93:
        case 123:
        case 91:
        case 34:
        case 58:
        case 44:
        case 47:
          return !1;
      }
      return !0;
    }
    return {
      setPosition: function (e) {
        (r = e), (i = ''), (o = 0), (s = 16), (h = 0);
      },
      getPosition: function () {
        return r;
      },
      scan: t
        ? function () {
            var e;
            do {
              e = d();
            } while (e >= 12 && e <= 15);
            return e;
          }
        : d,
      getToken: function () {
        return s;
      },
      getTokenValue: function () {
        return i;
      },
      getTokenOffset: function () {
        return o;
      },
      getTokenLength: function () {
        return r - o;
      },
      getTokenStartLine: function () {
        return u;
      },
      getTokenStartCharacter: function () {
        return o - c;
      },
      getTokenError: function () {
        return h;
      },
    };
  }
  function tn(e) {
    return (
      32 === e ||
      9 === e ||
      11 === e ||
      12 === e ||
      160 === e ||
      5760 === e ||
      (e >= 8192 && e <= 8203) ||
      8239 === e ||
      8287 === e ||
      12288 === e ||
      65279 === e
    );
  }
  function nn(e) {
    return 10 === e || 13 === e || 8232 === e || 8233 === e;
  }
  function rn(e) {
    return e >= 48 && e <= 57;
  }
  function on(e, t) {
    for (var n = '', r = 0; r < t; r++) n += e;
    return n;
  }
  function sn(e, t) {
    return -1 !== '\r\n'.indexOf(e.charAt(t));
  }
  var an;
  (self.onmessage = (e) => {
    Zt || Xt(null);
  }),
    (function (e) {
      e.DEFAULT = { allowTrailingComma: !1 };
    })(an || (an = {}));
  var un,
    ln,
    cn,
    hn,
    fn,
    dn,
    mn,
    gn,
    pn,
    vn,
    yn,
    bn,
    Cn,
    _n,
    Sn,
    En,
    An,
    xn,
    Nn,
    Ln,
    wn = en,
    Tn = function (e, t, n) {
      void 0 === t && (t = []), void 0 === n && (n = an.DEFAULT);
      var r = null,
        i = [],
        o = [];
      function s(e) {
        Array.isArray(i) ? i.push(e) : null !== r && (i[r] = e);
      }
      return (
        (function (e, t, n) {
          void 0 === n && (n = an.DEFAULT);
          var r = en(e, !1);
          function i(e) {
            return e
              ? function () {
                  return e(
                    r.getTokenOffset(),
                    r.getTokenLength(),
                    r.getTokenStartLine(),
                    r.getTokenStartCharacter()
                  );
                }
              : function () {
                  return !0;
                };
          }
          function o(e) {
            return e
              ? function (t) {
                  return e(
                    t,
                    r.getTokenOffset(),
                    r.getTokenLength(),
                    r.getTokenStartLine(),
                    r.getTokenStartCharacter()
                  );
                }
              : function () {
                  return !0;
                };
          }
          var s = i(t.onObjectBegin),
            a = o(t.onObjectProperty),
            u = i(t.onObjectEnd),
            l = i(t.onArrayBegin),
            c = i(t.onArrayEnd),
            h = o(t.onLiteralValue),
            f = o(t.onSeparator),
            d = i(t.onComment),
            m = o(t.onError),
            g = n && n.disallowComments,
            p = n && n.allowTrailingComma;
          function v() {
            for (;;) {
              var e = r.scan();
              switch (r.getTokenError()) {
                case 4:
                  y(14);
                  break;
                case 5:
                  y(15);
                  break;
                case 3:
                  y(13);
                  break;
                case 1:
                  g || y(11);
                  break;
                case 2:
                  y(12);
                  break;
                case 6:
                  y(16);
              }
              switch (e) {
                case 12:
                case 13:
                  g ? y(10) : d();
                  break;
                case 16:
                  y(1);
                  break;
                case 15:
                case 14:
                  break;
                default:
                  return e;
              }
            }
          }
          function y(e, t, n) {
            if (
              (void 0 === t && (t = []),
              void 0 === n && (n = []),
              m(e),
              t.length + n.length > 0)
            )
              for (var i = r.getToken(); 17 !== i; ) {
                if (-1 !== t.indexOf(i)) {
                  v();
                  break;
                }
                if (-1 !== n.indexOf(i)) break;
                i = v();
              }
          }
          function b(e) {
            var t = r.getTokenValue();
            return e ? h(t) : a(t), v(), !0;
          }
          v(),
            17 === r.getToken()
              ? !!n.allowEmptyContent || y(4, [], [])
              : (function e() {
                  switch (r.getToken()) {
                    case 3:
                      return (function () {
                        l(), v();
                        for (
                          var t = !1;
                          4 !== r.getToken() && 17 !== r.getToken();

                        ) {
                          if (5 === r.getToken()) {
                            if (
                              (t || y(4, [], []),
                              f(','),
                              v(),
                              4 === r.getToken() && p)
                            )
                              break;
                          } else t && y(6, [], []);
                          e() || y(4, [], [4, 5]), (t = !0);
                        }
                        return (
                          c(), 4 !== r.getToken() ? y(8, [4], []) : v(), !0
                        );
                      })();
                    case 1:
                      return (function () {
                        s(), v();
                        for (
                          var t = !1;
                          2 !== r.getToken() && 17 !== r.getToken();

                        ) {
                          if (5 === r.getToken()) {
                            if (
                              (t || y(4, [], []),
                              f(','),
                              v(),
                              2 === r.getToken() && p)
                            )
                              break;
                          } else t && y(6, [], []);
                          (10 !== r.getToken()
                            ? (y(3, [], [2, 5]), 0)
                            : (b(!1),
                              6 === r.getToken()
                                ? (f(':'), v(), e() || y(4, [], [2, 5]))
                                : y(5, [], [2, 5]),
                              1)) || y(4, [], [2, 5]),
                            (t = !0);
                        }
                        return (
                          u(), 2 !== r.getToken() ? y(7, [2], []) : v(), !0
                        );
                      })();
                    case 10:
                      return b(!0);
                    default:
                      return (function () {
                        switch (r.getToken()) {
                          case 11:
                            var e = 0;
                            try {
                              'number' !=
                                typeof (e = JSON.parse(r.getTokenValue())) &&
                                (y(2), (e = 0));
                            } catch (e) {
                              y(2);
                            }
                            h(e);
                            break;
                          case 7:
                            h(null);
                            break;
                          case 8:
                            h(!0);
                            break;
                          case 9:
                            h(!1);
                            break;
                          default:
                            return !1;
                        }
                        return v(), !0;
                      })();
                  }
                })()
              ? 17 !== r.getToken() && y(9, [], [])
              : y(4, [], []);
        })(
          e,
          {
            onObjectBegin: function () {
              var e = {};
              s(e), o.push(i), (i = e), (r = null);
            },
            onObjectProperty: function (e) {
              r = e;
            },
            onObjectEnd: function () {
              i = o.pop();
            },
            onArrayBegin: function () {
              var e = [];
              s(e), o.push(i), (i = e), (r = null);
            },
            onArrayEnd: function () {
              i = o.pop();
            },
            onLiteralValue: s,
            onError: function (e, n, r) {
              t.push({ error: e, offset: n, length: r });
            },
          },
          n
        ),
        i[0]
      );
    },
    kn = function e(t, n, r) {
      if (
        (void 0 === r && (r = !1),
        (function (e, t, n) {
          return (
            void 0 === n && (n = !1),
            (t >= e.offset && t < e.offset + e.length) ||
              (n && t === e.offset + e.length)
          );
        })(t, n, r))
      ) {
        var i = t.children;
        if (Array.isArray(i))
          for (var o = 0; o < i.length && i[o].offset <= n; o++) {
            var s = e(i[o], n, r);
            if (s) return s;
          }
        return t;
      }
    },
    On = function e(t) {
      if (!t.parent || !t.parent.children) return [];
      var n = e(t.parent);
      if ('property' === t.parent.type) {
        var r = t.parent.children[0].value;
        n.push(r);
      } else if ('array' === t.parent.type) {
        var i = t.parent.children.indexOf(t);
        -1 !== i && n.push(i);
      }
      return n;
    },
    In = function e(t) {
      switch (t.type) {
        case 'array':
          return t.children.map(e);
        case 'object':
          for (
            var n = Object.create(null), r = 0, i = t.children;
            r < i.length;
            r++
          ) {
            var o = i[r],
              s = o.children[1];
            s && (n[o.children[0].value] = e(s));
          }
          return n;
        case 'null':
        case 'string':
        case 'number':
        case 'boolean':
          return t.value;
        default:
          return;
      }
    };
  function Mn(e, t) {
    if (e === t) return !0;
    if (null == e || null == t) return !1;
    if (typeof e != typeof t) return !1;
    if ('object' != typeof e) return !1;
    if (Array.isArray(e) !== Array.isArray(t)) return !1;
    var n, r;
    if (Array.isArray(e)) {
      if (e.length !== t.length) return !1;
      for (n = 0; n < e.length; n++) if (!Mn(e[n], t[n])) return !1;
    } else {
      var i = [];
      for (r in e) i.push(r);
      i.sort();
      var o = [];
      for (r in t) o.push(r);
      if ((o.sort(), !Mn(i, o))) return !1;
      for (n = 0; n < i.length; n++) if (!Mn(e[i[n]], t[i[n]])) return !1;
    }
    return !0;
  }
  function Pn(e) {
    return 'number' == typeof e;
  }
  function Rn(e) {
    return void 0 !== e;
  }
  function Dn(e) {
    return 'boolean' == typeof e;
  }
  !(function (e) {
    (e.create = function (e, t) {
      return { line: e, character: t };
    }),
      (e.is = function (e) {
        var t = e;
        return (
          fr.objectLiteral(t) && fr.number(t.line) && fr.number(t.character)
        );
      });
  })(un || (un = {})),
    (function (e) {
      (e.create = function (e, t, n, r) {
        if (fr.number(e) && fr.number(t) && fr.number(n) && fr.number(r))
          return { start: un.create(e, t), end: un.create(n, r) };
        if (un.is(e) && un.is(t)) return { start: e, end: t };
        throw new Error(
          'Range#create called with invalid arguments[' +
            e +
            ', ' +
            t +
            ', ' +
            n +
            ', ' +
            r +
            ']'
        );
      }),
        (e.is = function (e) {
          var t = e;
          return fr.objectLiteral(t) && un.is(t.start) && un.is(t.end);
        });
    })(ln || (ln = {})),
    (function (e) {
      (e.create = function (e, t) {
        return { uri: e, range: t };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) &&
            ln.is(t.range) &&
            (fr.string(t.uri) || fr.undefined(t.uri))
          );
        });
    })(cn || (cn = {})),
    (function (e) {
      (e.create = function (e, t, n, r) {
        return {
          targetUri: e,
          targetRange: t,
          targetSelectionRange: n,
          originSelectionRange: r,
        };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) &&
            ln.is(t.targetRange) &&
            fr.string(t.targetUri) &&
            (ln.is(t.targetSelectionRange) ||
              fr.undefined(t.targetSelectionRange)) &&
            (ln.is(t.originSelectionRange) ||
              fr.undefined(t.originSelectionRange))
          );
        });
    })(hn || (hn = {})),
    (function (e) {
      (e.create = function (e, t, n, r) {
        return { red: e, green: t, blue: n, alpha: r };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.number(t.red) &&
            fr.number(t.green) &&
            fr.number(t.blue) &&
            fr.number(t.alpha)
          );
        });
    })(fn || (fn = {})),
    (function (e) {
      (e.create = function (e, t) {
        return { range: e, color: t };
      }),
        (e.is = function (e) {
          var t = e;
          return ln.is(t.range) && fn.is(t.color);
        });
    })(dn || (dn = {})),
    (function (e) {
      (e.create = function (e, t, n) {
        return { label: e, textEdit: t, additionalTextEdits: n };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.string(t.label) &&
            (fr.undefined(t.textEdit) || Sn.is(t)) &&
            (fr.undefined(t.additionalTextEdits) ||
              fr.typedArray(t.additionalTextEdits, Sn.is))
          );
        });
    })(mn || (mn = {})),
    (function (e) {
      (e.Comment = 'comment'), (e.Imports = 'imports'), (e.Region = 'region');
    })(gn || (gn = {})),
    (function (e) {
      (e.create = function (e, t, n, r, i) {
        var o = { startLine: e, endLine: t };
        return (
          fr.defined(n) && (o.startCharacter = n),
          fr.defined(r) && (o.endCharacter = r),
          fr.defined(i) && (o.kind = i),
          o
        );
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.number(t.startLine) &&
            fr.number(t.startLine) &&
            (fr.undefined(t.startCharacter) || fr.number(t.startCharacter)) &&
            (fr.undefined(t.endCharacter) || fr.number(t.endCharacter)) &&
            (fr.undefined(t.kind) || fr.string(t.kind))
          );
        });
    })(pn || (pn = {})),
    (function (e) {
      (e.create = function (e, t) {
        return { location: e, message: t };
      }),
        (e.is = function (e) {
          var t = e;
          return fr.defined(t) && cn.is(t.location) && fr.string(t.message);
        });
    })(vn || (vn = {})),
    (function (e) {
      (e.Error = 1), (e.Warning = 2), (e.Information = 3), (e.Hint = 4);
    })(yn || (yn = {})),
    (function (e) {
      (e.Unnecessary = 1), (e.Deprecated = 2);
    })(bn || (bn = {})),
    (function (e) {
      (e.create = function (e, t, n, r, i, o) {
        var s = { range: e, message: t };
        return (
          fr.defined(n) && (s.severity = n),
          fr.defined(r) && (s.code = r),
          fr.defined(i) && (s.source = i),
          fr.defined(o) && (s.relatedInformation = o),
          s
        );
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) &&
            ln.is(t.range) &&
            fr.string(t.message) &&
            (fr.number(t.severity) || fr.undefined(t.severity)) &&
            (fr.number(t.code) || fr.string(t.code) || fr.undefined(t.code)) &&
            (fr.string(t.source) || fr.undefined(t.source)) &&
            (fr.undefined(t.relatedInformation) ||
              fr.typedArray(t.relatedInformation, vn.is))
          );
        });
    })(Cn || (Cn = {})),
    (function (e) {
      (e.create = function (e, t) {
        for (var n = [], r = 2; r < arguments.length; r++)
          n[r - 2] = arguments[r];
        var i = { title: e, command: t };
        return fr.defined(n) && n.length > 0 && (i.arguments = n), i;
      }),
        (e.is = function (e) {
          var t = e;
          return fr.defined(t) && fr.string(t.title) && fr.string(t.command);
        });
    })(_n || (_n = {})),
    (function (e) {
      (e.replace = function (e, t) {
        return { range: e, newText: t };
      }),
        (e.insert = function (e, t) {
          return { range: { start: e, end: e }, newText: t };
        }),
        (e.del = function (e) {
          return { range: e, newText: '' };
        }),
        (e.is = function (e) {
          var t = e;
          return fr.objectLiteral(t) && fr.string(t.newText) && ln.is(t.range);
        });
    })(Sn || (Sn = {})),
    (function (e) {
      (e.create = function (e, t) {
        return { textDocument: e, edits: t };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) && jn.is(t.textDocument) && Array.isArray(t.edits)
          );
        });
    })(En || (En = {})),
    (function (e) {
      (e.create = function (e, t) {
        var n = { kind: 'create', uri: e };
        return (
          void 0 === t ||
            (void 0 === t.overwrite && void 0 === t.ignoreIfExists) ||
            (n.options = t),
          n
        );
      }),
        (e.is = function (e) {
          var t = e;
          return (
            t &&
            'create' === t.kind &&
            fr.string(t.uri) &&
            (void 0 === t.options ||
              ((void 0 === t.options.overwrite ||
                fr.boolean(t.options.overwrite)) &&
                (void 0 === t.options.ignoreIfExists ||
                  fr.boolean(t.options.ignoreIfExists))))
          );
        });
    })(An || (An = {})),
    (function (e) {
      (e.create = function (e, t, n) {
        var r = { kind: 'rename', oldUri: e, newUri: t };
        return (
          void 0 === n ||
            (void 0 === n.overwrite && void 0 === n.ignoreIfExists) ||
            (r.options = n),
          r
        );
      }),
        (e.is = function (e) {
          var t = e;
          return (
            t &&
            'rename' === t.kind &&
            fr.string(t.oldUri) &&
            fr.string(t.newUri) &&
            (void 0 === t.options ||
              ((void 0 === t.options.overwrite ||
                fr.boolean(t.options.overwrite)) &&
                (void 0 === t.options.ignoreIfExists ||
                  fr.boolean(t.options.ignoreIfExists))))
          );
        });
    })(xn || (xn = {})),
    (function (e) {
      (e.create = function (e, t) {
        var n = { kind: 'delete', uri: e };
        return (
          void 0 === t ||
            (void 0 === t.recursive && void 0 === t.ignoreIfNotExists) ||
            (n.options = t),
          n
        );
      }),
        (e.is = function (e) {
          var t = e;
          return (
            t &&
            'delete' === t.kind &&
            fr.string(t.uri) &&
            (void 0 === t.options ||
              ((void 0 === t.options.recursive ||
                fr.boolean(t.options.recursive)) &&
                (void 0 === t.options.ignoreIfNotExists ||
                  fr.boolean(t.options.ignoreIfNotExists))))
          );
        });
    })(Nn || (Nn = {})),
    (function (e) {
      e.is = function (e) {
        var t = e;
        return (
          t &&
          (void 0 !== t.changes || void 0 !== t.documentChanges) &&
          (void 0 === t.documentChanges ||
            t.documentChanges.every(function (e) {
              return fr.string(e.kind)
                ? An.is(e) || xn.is(e) || Nn.is(e)
                : En.is(e);
            }))
        );
      };
    })(Ln || (Ln = {}));
  var Fn,
    jn,
    Un,
    Vn,
    $n,
    Wn,
    qn,
    Kn,
    Bn,
    Hn,
    Yn,
    Gn,
    zn,
    Jn,
    Qn,
    Zn,
    Xn,
    er,
    tr,
    nr,
    rr,
    ir,
    or,
    sr,
    ar,
    ur,
    lr,
    cr,
    hr = (function () {
      function e(e) {
        this.edits = e;
      }
      return (
        (e.prototype.insert = function (e, t) {
          this.edits.push(Sn.insert(e, t));
        }),
        (e.prototype.replace = function (e, t) {
          this.edits.push(Sn.replace(e, t));
        }),
        (e.prototype.delete = function (e) {
          this.edits.push(Sn.del(e));
        }),
        (e.prototype.add = function (e) {
          this.edits.push(e);
        }),
        (e.prototype.all = function () {
          return this.edits;
        }),
        (e.prototype.clear = function () {
          this.edits.splice(0, this.edits.length);
        }),
        e
      );
    })();
  !(function () {
    function e(e) {
      var t = this;
      (this._textEditChanges = Object.create(null)),
        e &&
          ((this._workspaceEdit = e),
          e.documentChanges
            ? e.documentChanges.forEach(function (e) {
                if (En.is(e)) {
                  var n = new hr(e.edits);
                  t._textEditChanges[e.textDocument.uri] = n;
                }
              })
            : e.changes &&
              Object.keys(e.changes).forEach(function (n) {
                var r = new hr(e.changes[n]);
                t._textEditChanges[n] = r;
              }));
    }
    Object.defineProperty(e.prototype, 'edit', {
      get: function () {
        return this._workspaceEdit;
      },
      enumerable: !0,
      configurable: !0,
    }),
      (e.prototype.getTextEditChange = function (e) {
        if (jn.is(e)) {
          if (
            (this._workspaceEdit ||
              (this._workspaceEdit = { documentChanges: [] }),
            !this._workspaceEdit.documentChanges)
          )
            throw new Error(
              'Workspace edit is not configured for document changes.'
            );
          var t = e;
          if (!(r = this._textEditChanges[t.uri])) {
            var n = { textDocument: t, edits: (i = []) };
            this._workspaceEdit.documentChanges.push(n),
              (r = new hr(i)),
              (this._textEditChanges[t.uri] = r);
          }
          return r;
        }
        if (
          (this._workspaceEdit ||
            (this._workspaceEdit = { changes: Object.create(null) }),
          !this._workspaceEdit.changes)
        )
          throw new Error(
            'Workspace edit is not configured for normal text edit changes.'
          );
        var r;
        if (!(r = this._textEditChanges[e])) {
          var i = [];
          (this._workspaceEdit.changes[e] = i),
            (r = new hr(i)),
            (this._textEditChanges[e] = r);
        }
        return r;
      }),
      (e.prototype.createFile = function (e, t) {
        this.checkDocumentChanges(),
          this._workspaceEdit.documentChanges.push(An.create(e, t));
      }),
      (e.prototype.renameFile = function (e, t, n) {
        this.checkDocumentChanges(),
          this._workspaceEdit.documentChanges.push(xn.create(e, t, n));
      }),
      (e.prototype.deleteFile = function (e, t) {
        this.checkDocumentChanges(),
          this._workspaceEdit.documentChanges.push(Nn.create(e, t));
      }),
      (e.prototype.checkDocumentChanges = function () {
        if (!this._workspaceEdit || !this._workspaceEdit.documentChanges)
          throw new Error(
            'Workspace edit is not configured for document changes.'
          );
      });
  })(),
    (function (e) {
      (e.create = function (e) {
        return { uri: e };
      }),
        (e.is = function (e) {
          var t = e;
          return fr.defined(t) && fr.string(t.uri);
        });
    })(Fn || (Fn = {})),
    (function (e) {
      (e.create = function (e, t) {
        return { uri: e, version: t };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) &&
            fr.string(t.uri) &&
            (null === t.version || fr.number(t.version))
          );
        });
    })(jn || (jn = {})),
    (function (e) {
      (e.create = function (e, t, n, r) {
        return { uri: e, languageId: t, version: n, text: r };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) &&
            fr.string(t.uri) &&
            fr.string(t.languageId) &&
            fr.number(t.version) &&
            fr.string(t.text)
          );
        });
    })(Un || (Un = {})),
    (function (e) {
      (e.PlainText = 'plaintext'), (e.Markdown = 'markdown');
    })(Vn || (Vn = {})),
    (function (e) {
      e.is = function (t) {
        var n = t;
        return n === e.PlainText || n === e.Markdown;
      };
    })(Vn || (Vn = {})),
    (function (e) {
      e.is = function (e) {
        var t = e;
        return fr.objectLiteral(e) && Vn.is(t.kind) && fr.string(t.value);
      };
    })($n || ($n = {})),
    (function (e) {
      (e.Text = 1),
        (e.Method = 2),
        (e.Function = 3),
        (e.Constructor = 4),
        (e.Field = 5),
        (e.Variable = 6),
        (e.Class = 7),
        (e.Interface = 8),
        (e.Module = 9),
        (e.Property = 10),
        (e.Unit = 11),
        (e.Value = 12),
        (e.Enum = 13),
        (e.Keyword = 14),
        (e.Snippet = 15),
        (e.Color = 16),
        (e.File = 17),
        (e.Reference = 18),
        (e.Folder = 19),
        (e.EnumMember = 20),
        (e.Constant = 21),
        (e.Struct = 22),
        (e.Event = 23),
        (e.Operator = 24),
        (e.TypeParameter = 25);
    })(Wn || (Wn = {})),
    (function (e) {
      (e.PlainText = 1), (e.Snippet = 2);
    })(qn || (qn = {})),
    (function (e) {
      e.Deprecated = 1;
    })(Kn || (Kn = {})),
    (function (e) {
      e.create = function (e) {
        return { label: e };
      };
    })(Bn || (Bn = {})),
    (function (e) {
      e.create = function (e, t) {
        return { items: e || [], isIncomplete: !!t };
      };
    })(Hn || (Hn = {})),
    (function (e) {
      (e.fromPlainText = function (e) {
        return e.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&');
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.string(t) ||
            (fr.objectLiteral(t) && fr.string(t.language) && fr.string(t.value))
          );
        });
    })(Yn || (Yn = {})),
    (function (e) {
      e.is = function (e) {
        var t = e;
        return (
          !!t &&
          fr.objectLiteral(t) &&
          ($n.is(t.contents) ||
            Yn.is(t.contents) ||
            fr.typedArray(t.contents, Yn.is)) &&
          (void 0 === e.range || ln.is(e.range))
        );
      };
    })(Gn || (Gn = {})),
    (function (e) {
      e.create = function (e, t) {
        return t ? { label: e, documentation: t } : { label: e };
      };
    })(zn || (zn = {})),
    (function (e) {
      e.create = function (e, t) {
        for (var n = [], r = 2; r < arguments.length; r++)
          n[r - 2] = arguments[r];
        var i = { label: e };
        return (
          fr.defined(t) && (i.documentation = t),
          fr.defined(n) ? (i.parameters = n) : (i.parameters = []),
          i
        );
      };
    })(Jn || (Jn = {})),
    (function (e) {
      (e.Text = 1), (e.Read = 2), (e.Write = 3);
    })(Qn || (Qn = {})),
    (function (e) {
      e.create = function (e, t) {
        var n = { range: e };
        return fr.number(t) && (n.kind = t), n;
      };
    })(Zn || (Zn = {})),
    (function (e) {
      (e.File = 1),
        (e.Module = 2),
        (e.Namespace = 3),
        (e.Package = 4),
        (e.Class = 5),
        (e.Method = 6),
        (e.Property = 7),
        (e.Field = 8),
        (e.Constructor = 9),
        (e.Enum = 10),
        (e.Interface = 11),
        (e.Function = 12),
        (e.Variable = 13),
        (e.Constant = 14),
        (e.String = 15),
        (e.Number = 16),
        (e.Boolean = 17),
        (e.Array = 18),
        (e.Object = 19),
        (e.Key = 20),
        (e.Null = 21),
        (e.EnumMember = 22),
        (e.Struct = 23),
        (e.Event = 24),
        (e.Operator = 25),
        (e.TypeParameter = 26);
    })(Xn || (Xn = {})),
    (function (e) {
      e.Deprecated = 1;
    })(er || (er = {})),
    (function (e) {
      e.create = function (e, t, n, r, i) {
        var o = { name: e, kind: t, location: { uri: r, range: n } };
        return i && (o.containerName = i), o;
      };
    })(tr || (tr = {})),
    (function (e) {
      (e.create = function (e, t, n, r, i, o) {
        var s = { name: e, detail: t, kind: n, range: r, selectionRange: i };
        return void 0 !== o && (s.children = o), s;
      }),
        (e.is = function (e) {
          var t = e;
          return (
            t &&
            fr.string(t.name) &&
            fr.number(t.kind) &&
            ln.is(t.range) &&
            ln.is(t.selectionRange) &&
            (void 0 === t.detail || fr.string(t.detail)) &&
            (void 0 === t.deprecated || fr.boolean(t.deprecated)) &&
            (void 0 === t.children || Array.isArray(t.children))
          );
        });
    })(nr || (nr = {})),
    (function (e) {
      (e.Empty = ''),
        (e.QuickFix = 'quickfix'),
        (e.Refactor = 'refactor'),
        (e.RefactorExtract = 'refactor.extract'),
        (e.RefactorInline = 'refactor.inline'),
        (e.RefactorRewrite = 'refactor.rewrite'),
        (e.Source = 'source'),
        (e.SourceOrganizeImports = 'source.organizeImports'),
        (e.SourceFixAll = 'source.fixAll');
    })(rr || (rr = {})),
    (function (e) {
      (e.create = function (e, t) {
        var n = { diagnostics: e };
        return null != t && (n.only = t), n;
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) &&
            fr.typedArray(t.diagnostics, Cn.is) &&
            (void 0 === t.only || fr.typedArray(t.only, fr.string))
          );
        });
    })(ir || (ir = {})),
    (function (e) {
      (e.create = function (e, t, n) {
        var r = { title: e };
        return (
          _n.is(t) ? (r.command = t) : (r.edit = t),
          void 0 !== n && (r.kind = n),
          r
        );
      }),
        (e.is = function (e) {
          var t = e;
          return (
            t &&
            fr.string(t.title) &&
            (void 0 === t.diagnostics || fr.typedArray(t.diagnostics, Cn.is)) &&
            (void 0 === t.kind || fr.string(t.kind)) &&
            (void 0 !== t.edit || void 0 !== t.command) &&
            (void 0 === t.command || _n.is(t.command)) &&
            (void 0 === t.isPreferred || fr.boolean(t.isPreferred)) &&
            (void 0 === t.edit || Ln.is(t.edit))
          );
        });
    })(or || (or = {})),
    (function (e) {
      (e.create = function (e, t) {
        var n = { range: e };
        return fr.defined(t) && (n.data = t), n;
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) &&
            ln.is(t.range) &&
            (fr.undefined(t.command) || _n.is(t.command))
          );
        });
    })(sr || (sr = {})),
    (function (e) {
      (e.create = function (e, t) {
        return { tabSize: e, insertSpaces: t };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) && fr.number(t.tabSize) && fr.boolean(t.insertSpaces)
          );
        });
    })(ar || (ar = {})),
    (function (e) {
      (e.create = function (e, t, n) {
        return { range: e, target: t, data: n };
      }),
        (e.is = function (e) {
          var t = e;
          return (
            fr.defined(t) &&
            ln.is(t.range) &&
            (fr.undefined(t.target) || fr.string(t.target))
          );
        });
    })(ur || (ur = {})),
    (function (e) {
      (e.create = function (e, t) {
        return { range: e, parent: t };
      }),
        (e.is = function (t) {
          var n = t;
          return (
            void 0 !== n &&
            ln.is(n.range) &&
            (void 0 === n.parent || e.is(n.parent))
          );
        });
    })(lr || (lr = {})),
    (function (e) {
      function t(e, n) {
        if (e.length <= 1) return e;
        var r = (e.length / 2) | 0,
          i = e.slice(0, r),
          o = e.slice(r);
        t(i, n), t(o, n);
        for (var s = 0, a = 0, u = 0; s < i.length && a < o.length; ) {
          var l = n(i[s], o[a]);
          e[u++] = l <= 0 ? i[s++] : o[a++];
        }
        for (; s < i.length; ) e[u++] = i[s++];
        for (; a < o.length; ) e[u++] = o[a++];
        return e;
      }
      (e.create = function (e, t, n, r) {
        return new dr(e, t, n, r);
      }),
        (e.is = function (e) {
          var t = e;
          return !!(
            fr.defined(t) &&
            fr.string(t.uri) &&
            (fr.undefined(t.languageId) || fr.string(t.languageId)) &&
            fr.number(t.lineCount) &&
            fr.func(t.getText) &&
            fr.func(t.positionAt) &&
            fr.func(t.offsetAt)
          );
        }),
        (e.applyEdits = function (e, n) {
          for (
            var r = e.getText(),
              i = t(n, function (e, t) {
                var n = e.range.start.line - t.range.start.line;
                return 0 === n
                  ? e.range.start.character - t.range.start.character
                  : n;
              }),
              o = r.length,
              s = i.length - 1;
            s >= 0;
            s--
          ) {
            var a = i[s],
              u = e.offsetAt(a.range.start),
              l = e.offsetAt(a.range.end);
            if (!(l <= o)) throw new Error('Overlapping edit');
            (r = r.substring(0, u) + a.newText + r.substring(l, r.length)),
              (o = u);
          }
          return r;
        });
    })(cr || (cr = {}));
  var fr,
    dr = (function () {
      function e(e, t, n, r) {
        (this._uri = e),
          (this._languageId = t),
          (this._version = n),
          (this._content = r),
          (this._lineOffsets = void 0);
      }
      return (
        Object.defineProperty(e.prototype, 'uri', {
          get: function () {
            return this._uri;
          },
          enumerable: !0,
          configurable: !0,
        }),
        Object.defineProperty(e.prototype, 'languageId', {
          get: function () {
            return this._languageId;
          },
          enumerable: !0,
          configurable: !0,
        }),
        Object.defineProperty(e.prototype, 'version', {
          get: function () {
            return this._version;
          },
          enumerable: !0,
          configurable: !0,
        }),
        (e.prototype.getText = function (e) {
          if (e) {
            var t = this.offsetAt(e.start),
              n = this.offsetAt(e.end);
            return this._content.substring(t, n);
          }
          return this._content;
        }),
        (e.prototype.update = function (e, t) {
          (this._content = e.text),
            (this._version = t),
            (this._lineOffsets = void 0);
        }),
        (e.prototype.getLineOffsets = function () {
          if (void 0 === this._lineOffsets) {
            for (
              var e = [], t = this._content, n = !0, r = 0;
              r < t.length;
              r++
            ) {
              n && (e.push(r), (n = !1));
              var i = t.charAt(r);
              (n = '\r' === i || '\n' === i),
                '\r' === i &&
                  r + 1 < t.length &&
                  '\n' === t.charAt(r + 1) &&
                  r++;
            }
            n && t.length > 0 && e.push(t.length), (this._lineOffsets = e);
          }
          return this._lineOffsets;
        }),
        (e.prototype.positionAt = function (e) {
          e = Math.max(Math.min(e, this._content.length), 0);
          var t = this.getLineOffsets(),
            n = 0,
            r = t.length;
          if (0 === r) return un.create(0, e);
          for (; n < r; ) {
            var i = Math.floor((n + r) / 2);
            t[i] > e ? (r = i) : (n = i + 1);
          }
          var o = n - 1;
          return un.create(o, e - t[o]);
        }),
        (e.prototype.offsetAt = function (e) {
          var t = this.getLineOffsets();
          if (e.line >= t.length) return this._content.length;
          if (e.line < 0) return 0;
          var n = t[e.line],
            r = e.line + 1 < t.length ? t[e.line + 1] : this._content.length;
          return Math.max(Math.min(n + e.character, r), n);
        }),
        Object.defineProperty(e.prototype, 'lineCount', {
          get: function () {
            return this.getLineOffsets().length;
          },
          enumerable: !0,
          configurable: !0,
        }),
        e
      );
    })();
  !(function (e) {
    var t = Object.prototype.toString;
    (e.defined = function (e) {
      return void 0 !== e;
    }),
      (e.undefined = function (e) {
        return void 0 === e;
      }),
      (e.boolean = function (e) {
        return !0 === e || !1 === e;
      }),
      (e.string = function (e) {
        return '[object String]' === t.call(e);
      }),
      (e.number = function (e) {
        return '[object Number]' === t.call(e);
      }),
      (e.func = function (e) {
        return '[object Function]' === t.call(e);
      }),
      (e.objectLiteral = function (e) {
        return null !== e && 'object' == typeof e;
      }),
      (e.typedArray = function (e, t) {
        return Array.isArray(e) && e.every(t);
      });
  })(fr || (fr = {}));
  var mr,
    gr,
    pr,
    vr = (function () {
      function e(e, t, n, r) {
        (this._uri = e),
          (this._languageId = t),
          (this._version = n),
          (this._content = r),
          (this._lineOffsets = void 0);
      }
      return (
        Object.defineProperty(e.prototype, 'uri', {
          get: function () {
            return this._uri;
          },
          enumerable: !0,
          configurable: !0,
        }),
        Object.defineProperty(e.prototype, 'languageId', {
          get: function () {
            return this._languageId;
          },
          enumerable: !0,
          configurable: !0,
        }),
        Object.defineProperty(e.prototype, 'version', {
          get: function () {
            return this._version;
          },
          enumerable: !0,
          configurable: !0,
        }),
        (e.prototype.getText = function (e) {
          if (e) {
            var t = this.offsetAt(e.start),
              n = this.offsetAt(e.end);
            return this._content.substring(t, n);
          }
          return this._content;
        }),
        (e.prototype.update = function (t, n) {
          for (var r = 0, i = t; r < i.length; r++) {
            var o = i[r];
            if (e.isIncremental(o)) {
              var s = Cr(o.range),
                a = this.offsetAt(s.start),
                u = this.offsetAt(s.end);
              this._content =
                this._content.substring(0, a) +
                o.text +
                this._content.substring(u, this._content.length);
              var l = Math.max(s.start.line, 0),
                c = Math.max(s.end.line, 0),
                h = this._lineOffsets,
                f = br(o.text, !1, a);
              if (c - l === f.length)
                for (var d = 0, m = f.length; d < m; d++) h[d + l + 1] = f[d];
              else
                f.length < 1e4
                  ? h.splice.apply(h, [l + 1, c - l].concat(f))
                  : (this._lineOffsets = h = h
                      .slice(0, l + 1)
                      .concat(f, h.slice(c + 1)));
              var g = o.text.length - (u - a);
              if (0 !== g)
                for (d = l + 1 + f.length, m = h.length; d < m; d++)
                  h[d] = h[d] + g;
            } else {
              if (!e.isFull(o))
                throw new Error('Unknown change event received');
              (this._content = o.text), (this._lineOffsets = void 0);
            }
          }
          this._version = n;
        }),
        (e.prototype.getLineOffsets = function () {
          return (
            void 0 === this._lineOffsets &&
              (this._lineOffsets = br(this._content, !0)),
            this._lineOffsets
          );
        }),
        (e.prototype.positionAt = function (e) {
          e = Math.max(Math.min(e, this._content.length), 0);
          var t = this.getLineOffsets(),
            n = 0,
            r = t.length;
          if (0 === r) return { line: 0, character: e };
          for (; n < r; ) {
            var i = Math.floor((n + r) / 2);
            t[i] > e ? (r = i) : (n = i + 1);
          }
          var o = n - 1;
          return { line: o, character: e - t[o] };
        }),
        (e.prototype.offsetAt = function (e) {
          var t = this.getLineOffsets();
          if (e.line >= t.length) return this._content.length;
          if (e.line < 0) return 0;
          var n = t[e.line],
            r = e.line + 1 < t.length ? t[e.line + 1] : this._content.length;
          return Math.max(Math.min(n + e.character, r), n);
        }),
        Object.defineProperty(e.prototype, 'lineCount', {
          get: function () {
            return this.getLineOffsets().length;
          },
          enumerable: !0,
          configurable: !0,
        }),
        (e.isIncremental = function (e) {
          var t = e;
          return (
            null != t &&
            'string' == typeof t.text &&
            void 0 !== t.range &&
            (void 0 === t.rangeLength || 'number' == typeof t.rangeLength)
          );
        }),
        (e.isFull = function (e) {
          var t = e;
          return (
            null != t &&
            'string' == typeof t.text &&
            void 0 === t.range &&
            void 0 === t.rangeLength
          );
        }),
        e
      );
    })();
  function yr(e, t) {
    if (e.length <= 1) return e;
    var n = (e.length / 2) | 0,
      r = e.slice(0, n),
      i = e.slice(n);
    yr(r, t), yr(i, t);
    for (var o = 0, s = 0, a = 0; o < r.length && s < i.length; ) {
      var u = t(r[o], i[s]);
      e[a++] = u <= 0 ? r[o++] : i[s++];
    }
    for (; o < r.length; ) e[a++] = r[o++];
    for (; s < i.length; ) e[a++] = i[s++];
    return e;
  }
  function br(e, t, n) {
    void 0 === n && (n = 0);
    for (var r = t ? [n] : [], i = 0; i < e.length; i++) {
      var o = e.charCodeAt(i);
      (13 !== o && 10 !== o) ||
        (13 === o && i + 1 < e.length && 10 === e.charCodeAt(i + 1) && i++,
        r.push(n + i + 1));
    }
    return r;
  }
  function Cr(e) {
    var t = e.start,
      n = e.end;
    return t.line > n.line || (t.line === n.line && t.character > n.character)
      ? { start: n, end: t }
      : e;
  }
  function _r(e) {
    var t = Cr(e.range);
    return t !== e.range ? { newText: e.newText, range: t } : e;
  }
  function Sr(e, t) {
    return 0 === t.length
      ? e
      : e.replace(/\{(\d+)\}/g, function (e, n) {
          var r = n[0];
          return void 0 !== t[r] ? t[r] : e;
        });
  }
  function Er(e, t) {
    for (var n = [], r = 2; r < arguments.length; r++) n[r - 2] = arguments[r];
    return Sr(t, n);
  }
  function Ar(e) {
    return Er;
  }
  !(function (e) {
    (e.create = function (e, t, n, r) {
      return new vr(e, t, n, r);
    }),
      (e.update = function (e, t, n) {
        if (e instanceof vr) return e.update(t, n), e;
        throw new Error(
          'TextDocument.update: document must be created by TextDocument.create'
        );
      }),
      (e.applyEdits = function (e, t) {
        for (
          var n = e.getText(),
            r = 0,
            i = [],
            o = 0,
            s = yr(t.map(_r), function (e, t) {
              var n = e.range.start.line - t.range.start.line;
              return 0 === n
                ? e.range.start.character - t.range.start.character
                : n;
            });
          o < s.length;
          o++
        ) {
          var a = s[o],
            u = e.offsetAt(a.range.start);
          if (u < r) throw new Error('Overlapping edit');
          u > r && i.push(n.substring(r, u)),
            a.newText.length && i.push(a.newText),
            (r = e.offsetAt(a.range.end));
        }
        return i.push(n.substr(r)), i.join('');
      });
  })(mr || (mr = {})),
    (function (e) {
      (e[(e.Undefined = 0)] = 'Undefined'),
        (e[(e.EnumValueMismatch = 1)] = 'EnumValueMismatch'),
        (e[(e.UnexpectedEndOfComment = 257)] = 'UnexpectedEndOfComment'),
        (e[(e.UnexpectedEndOfString = 258)] = 'UnexpectedEndOfString'),
        (e[(e.UnexpectedEndOfNumber = 259)] = 'UnexpectedEndOfNumber'),
        (e[(e.InvalidUnicode = 260)] = 'InvalidUnicode'),
        (e[(e.InvalidEscapeCharacter = 261)] = 'InvalidEscapeCharacter'),
        (e[(e.InvalidCharacter = 262)] = 'InvalidCharacter'),
        (e[(e.PropertyExpected = 513)] = 'PropertyExpected'),
        (e[(e.CommaExpected = 514)] = 'CommaExpected'),
        (e[(e.ColonExpected = 515)] = 'ColonExpected'),
        (e[(e.ValueExpected = 516)] = 'ValueExpected'),
        (e[(e.CommaOrCloseBacketExpected = 517)] =
          'CommaOrCloseBacketExpected'),
        (e[(e.CommaOrCloseBraceExpected = 518)] = 'CommaOrCloseBraceExpected'),
        (e[(e.TrailingComma = 519)] = 'TrailingComma'),
        (e[(e.DuplicateKey = 520)] = 'DuplicateKey'),
        (e[(e.CommentNotPermitted = 521)] = 'CommentNotPermitted'),
        (e[(e.SchemaResolveError = 768)] = 'SchemaResolveError');
    })(gr || (gr = {})),
    (function (e) {
      e.LATEST = {
        textDocument: {
          completion: {
            completionItem: {
              documentationFormat: [Vn.Markdown, Vn.PlainText],
              commitCharactersSupport: !0,
            },
          },
        },
      };
    })(pr || (pr = {}));
  var xr,
    Nr,
    Lr =
      ((xr = function (e, t) {
        return (xr =
          Object.setPrototypeOf ||
          ({ __proto__: [] } instanceof Array &&
            function (e, t) {
              e.__proto__ = t;
            }) ||
          function (e, t) {
            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
          })(e, t);
      }),
      function (e, t) {
        function n() {
          this.constructor = e;
        }
        xr(e, t),
          (e.prototype =
            null === t
              ? Object.create(t)
              : ((n.prototype = t.prototype), new n()));
      }),
    wr = Ar(),
    Tr = {
      'color-hex': {
        errorMessage: wr(
          'colorHexFormatWarning',
          'Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.'
        ),
        pattern: /^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/,
      },
      'date-time': {
        errorMessage: wr(
          'dateTimeFormatWarning',
          'String is not a RFC3339 date-time.'
        ),
        pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i,
      },
      date: {
        errorMessage: wr('dateFormatWarning', 'String is not a RFC3339 date.'),
        pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i,
      },
      time: {
        errorMessage: wr('timeFormatWarning', 'String is not a RFC3339 time.'),
        pattern: /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i,
      },
      email: {
        errorMessage: wr(
          'emailFormatWarning',
          'String is not an e-mail address.'
        ),
        pattern: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
      },
    },
    kr = (function () {
      function e(e, t, n) {
        void 0 === n && (n = 0),
          (this.offset = t),
          (this.length = n),
          (this.parent = e);
      }
      return (
        Object.defineProperty(e.prototype, 'children', {
          get: function () {
            return [];
          },
          enumerable: !1,
          configurable: !0,
        }),
        (e.prototype.toString = function () {
          return (
            'type: ' +
            this.type +
            ' (' +
            this.offset +
            '/' +
            this.length +
            ')' +
            (this.parent ? ' parent: {' + this.parent.toString() + '}' : '')
          );
        }),
        e
      );
    })(),
    Or = (function (e) {
      function t(t, n) {
        var r = e.call(this, t, n) || this;
        return (r.type = 'null'), (r.value = null), r;
      }
      return Lr(t, e), t;
    })(kr),
    Ir = (function (e) {
      function t(t, n, r) {
        var i = e.call(this, t, r) || this;
        return (i.type = 'boolean'), (i.value = n), i;
      }
      return Lr(t, e), t;
    })(kr),
    Mr = (function (e) {
      function t(t, n) {
        var r = e.call(this, t, n) || this;
        return (r.type = 'array'), (r.items = []), r;
      }
      return (
        Lr(t, e),
        Object.defineProperty(t.prototype, 'children', {
          get: function () {
            return this.items;
          },
          enumerable: !1,
          configurable: !0,
        }),
        t
      );
    })(kr),
    Pr = (function (e) {
      function t(t, n) {
        var r = e.call(this, t, n) || this;
        return (
          (r.type = 'number'), (r.isInteger = !0), (r.value = Number.NaN), r
        );
      }
      return Lr(t, e), t;
    })(kr),
    Rr = (function (e) {
      function t(t, n, r) {
        var i = e.call(this, t, n, r) || this;
        return (i.type = 'string'), (i.value = ''), i;
      }
      return Lr(t, e), t;
    })(kr),
    Dr = (function (e) {
      function t(t, n, r) {
        var i = e.call(this, t, n) || this;
        return (i.type = 'property'), (i.colonOffset = -1), (i.keyNode = r), i;
      }
      return (
        Lr(t, e),
        Object.defineProperty(t.prototype, 'children', {
          get: function () {
            return this.valueNode
              ? [this.keyNode, this.valueNode]
              : [this.keyNode];
          },
          enumerable: !1,
          configurable: !0,
        }),
        t
      );
    })(kr),
    Fr = (function (e) {
      function t(t, n) {
        var r = e.call(this, t, n) || this;
        return (r.type = 'object'), (r.properties = []), r;
      }
      return (
        Lr(t, e),
        Object.defineProperty(t.prototype, 'children', {
          get: function () {
            return this.properties;
          },
          enumerable: !1,
          configurable: !0,
        }),
        t
      );
    })(kr);
  function jr(e) {
    return Dn(e) ? (e ? {} : { not: {} }) : e;
  }
  !(function (e) {
    (e[(e.Key = 0)] = 'Key'), (e[(e.Enum = 1)] = 'Enum');
  })(Nr || (Nr = {}));
  var Ur = (function () {
      function e(e, t) {
        void 0 === e && (e = -1),
          (this.focusOffset = e),
          (this.exclude = t),
          (this.schemas = []);
      }
      return (
        (e.prototype.add = function (e) {
          this.schemas.push(e);
        }),
        (e.prototype.merge = function (e) {
          Array.prototype.push.apply(this.schemas, e.schemas);
        }),
        (e.prototype.include = function (e) {
          return (
            (-1 === this.focusOffset || Kr(e, this.focusOffset)) &&
            e !== this.exclude
          );
        }),
        (e.prototype.newSub = function () {
          return new e(-1, this.exclude);
        }),
        e
      );
    })(),
    Vr = (function () {
      function e() {}
      return (
        Object.defineProperty(e.prototype, 'schemas', {
          get: function () {
            return [];
          },
          enumerable: !1,
          configurable: !0,
        }),
        (e.prototype.add = function (e) {}),
        (e.prototype.merge = function (e) {}),
        (e.prototype.include = function (e) {
          return !0;
        }),
        (e.prototype.newSub = function () {
          return this;
        }),
        (e.instance = new e()),
        e
      );
    })(),
    $r = (function () {
      function e() {
        (this.problems = []),
          (this.propertiesMatches = 0),
          (this.propertiesValueMatches = 0),
          (this.primaryValueMatches = 0),
          (this.enumValueMatch = !1),
          (this.enumValues = void 0);
      }
      return (
        (e.prototype.hasProblems = function () {
          return !!this.problems.length;
        }),
        (e.prototype.mergeAll = function (e) {
          for (var t = 0, n = e; t < n.length; t++) {
            var r = n[t];
            this.merge(r);
          }
        }),
        (e.prototype.merge = function (e) {
          this.problems = this.problems.concat(e.problems);
        }),
        (e.prototype.mergeEnumValues = function (e) {
          if (
            !this.enumValueMatch &&
            !e.enumValueMatch &&
            this.enumValues &&
            e.enumValues
          ) {
            this.enumValues = this.enumValues.concat(e.enumValues);
            for (var t = 0, n = this.problems; t < n.length; t++) {
              var r = n[t];
              r.code === gr.EnumValueMismatch &&
                (r.message = wr(
                  'enumWarning',
                  'Value is not accepted. Valid values: {0}.',
                  this.enumValues
                    .map(function (e) {
                      return JSON.stringify(e);
                    })
                    .join(', ')
                ));
            }
          }
        }),
        (e.prototype.mergePropertyMatch = function (e) {
          this.merge(e),
            this.propertiesMatches++,
            (e.enumValueMatch || (!e.hasProblems() && e.propertiesMatches)) &&
              this.propertiesValueMatches++,
            e.enumValueMatch &&
              e.enumValues &&
              1 === e.enumValues.length &&
              this.primaryValueMatches++;
        }),
        (e.prototype.compare = function (e) {
          var t = this.hasProblems();
          return t !== e.hasProblems()
            ? t
              ? -1
              : 1
            : this.enumValueMatch !== e.enumValueMatch
            ? e.enumValueMatch
              ? -1
              : 1
            : this.primaryValueMatches !== e.primaryValueMatches
            ? this.primaryValueMatches - e.primaryValueMatches
            : this.propertiesValueMatches !== e.propertiesValueMatches
            ? this.propertiesValueMatches - e.propertiesValueMatches
            : this.propertiesMatches - e.propertiesMatches;
        }),
        e
      );
    })();
  function Wr(e) {
    return In(e);
  }
  function qr(e) {
    return On(e);
  }
  function Kr(e, t, n) {
    return (
      void 0 === n && (n = !1),
      (t >= e.offset && t < e.offset + e.length) ||
        (n && t === e.offset + e.length)
    );
  }
  var Br = (function () {
    function e(e, t, n) {
      void 0 === t && (t = []),
        void 0 === n && (n = []),
        (this.root = e),
        (this.syntaxErrors = t),
        (this.comments = n);
    }
    return (
      (e.prototype.getNodeFromOffset = function (e, t) {
        if ((void 0 === t && (t = !1), this.root)) return kn(this.root, e, t);
      }),
      (e.prototype.visit = function (e) {
        if (this.root) {
          var t = function (n) {
            var r = e(n),
              i = n.children;
            if (Array.isArray(i))
              for (var o = 0; o < i.length && r; o++) r = t(i[o]);
            return r;
          };
          t(this.root);
        }
      }),
      (e.prototype.validate = function (e, t) {
        if (this.root && t) {
          var n = new $r();
          return (
            Hr(this.root, t, n, Vr.instance),
            n.problems.map(function (t) {
              var n = ln.create(
                e.positionAt(t.location.offset),
                e.positionAt(t.location.offset + t.location.length)
              );
              return Cn.create(n, t.message, t.severity, t.code);
            })
          );
        }
      }),
      (e.prototype.getMatchingSchemas = function (e, t, n) {
        void 0 === t && (t = -1);
        var r = new Ur(t, n);
        return this.root && e && Hr(this.root, e, new $r(), r), r.schemas;
      }),
      e
    );
  })();
  function Hr(e, t, n, r) {
    if (e && r.include(e)) {
      var i = e;
      switch (i.type) {
        case 'object':
          !(function (e, t, n, r) {
            for (
              var i = Object.create(null), o = [], s = 0, a = e.properties;
              s < a.length;
              s++
            )
              (i[(U = (p = a[s]).keyNode.value)] = p.valueNode), o.push(U);
            if (Array.isArray(t.required))
              for (var u = 0, l = t.required; u < l.length; u++)
                if (!i[(E = l[u])]) {
                  var c =
                      e.parent &&
                      'property' === e.parent.type &&
                      e.parent.keyNode,
                    h = c
                      ? { offset: c.offset, length: c.length }
                      : { offset: e.offset, length: 1 };
                  n.problems.push({
                    location: h,
                    severity: yn.Warning,
                    message: wr(
                      'MissingRequiredPropWarning',
                      'Missing property "{0}".',
                      E
                    ),
                  });
                }
            var f = function (e) {
              for (var t = o.indexOf(e); t >= 0; )
                o.splice(t, 1), (t = o.indexOf(e));
            };
            if (t.properties)
              for (
                var d = 0, m = Object.keys(t.properties);
                d < m.length;
                d++
              ) {
                f((E = m[d]));
                var g = t.properties[E];
                if ((T = i[E]))
                  if (Dn(g))
                    if (g) n.propertiesMatches++, n.propertiesValueMatches++;
                    else {
                      var p = T.parent;
                      n.problems.push({
                        location: {
                          offset: p.keyNode.offset,
                          length: p.keyNode.length,
                        },
                        severity: yn.Warning,
                        message:
                          t.errorMessage ||
                          wr(
                            'DisallowedExtraPropWarning',
                            'Property {0} is not allowed.',
                            E
                          ),
                      });
                    }
                  else Hr(T, g, (N = new $r()), r), n.mergePropertyMatch(N);
              }
            if (t.patternProperties)
              for (
                var v = 0, y = Object.keys(t.patternProperties);
                v < y.length;
                v++
              )
                for (
                  var b = y[v], C = new RegExp(b), _ = 0, S = o.slice(0);
                  _ < S.length;
                  _++
                ) {
                  var E = S[_];
                  C.test(E) &&
                    (f(E),
                    (T = i[E]) &&
                      (Dn((g = t.patternProperties[b]))
                        ? g
                          ? (n.propertiesMatches++, n.propertiesValueMatches++)
                          : ((p = T.parent),
                            n.problems.push({
                              location: {
                                offset: p.keyNode.offset,
                                length: p.keyNode.length,
                              },
                              severity: yn.Warning,
                              message:
                                t.errorMessage ||
                                wr(
                                  'DisallowedExtraPropWarning',
                                  'Property {0} is not allowed.',
                                  E
                                ),
                            }))
                        : (Hr(T, g, (N = new $r()), r),
                          n.mergePropertyMatch(N))));
                }
            if ('object' == typeof t.additionalProperties) {
              for (var A = 0, x = o; A < x.length; A++)
                if ((T = i[(E = x[A])])) {
                  var N = new $r();
                  Hr(T, t.additionalProperties, N, r), n.mergePropertyMatch(N);
                }
            } else if (!1 === t.additionalProperties && o.length > 0)
              for (var L = 0, w = o; L < w.length; L++) {
                var T;
                (T = i[(E = w[L])]) &&
                  ((p = T.parent),
                  n.problems.push({
                    location: {
                      offset: p.keyNode.offset,
                      length: p.keyNode.length,
                    },
                    severity: yn.Warning,
                    message:
                      t.errorMessage ||
                      wr(
                        'DisallowedExtraPropWarning',
                        'Property {0} is not allowed.',
                        E
                      ),
                  }));
              }
            if (
              (Pn(t.maxProperties) &&
                e.properties.length > t.maxProperties &&
                n.problems.push({
                  location: { offset: e.offset, length: e.length },
                  severity: yn.Warning,
                  message: wr(
                    'MaxPropWarning',
                    'Object has more properties than limit of {0}.',
                    t.maxProperties
                  ),
                }),
              Pn(t.minProperties) &&
                e.properties.length < t.minProperties &&
                n.problems.push({
                  location: { offset: e.offset, length: e.length },
                  severity: yn.Warning,
                  message: wr(
                    'MinPropWarning',
                    'Object has fewer properties than the required number of {0}',
                    t.minProperties
                  ),
                }),
              t.dependencies)
            )
              for (
                var k = 0, O = Object.keys(t.dependencies);
                k < O.length;
                k++
              )
                if (i[(U = O[k])]) {
                  var I = t.dependencies[U];
                  if (Array.isArray(I))
                    for (var M = 0, P = I; M < P.length; M++) {
                      var R = P[M];
                      i[R]
                        ? n.propertiesValueMatches++
                        : n.problems.push({
                            location: { offset: e.offset, length: e.length },
                            severity: yn.Warning,
                            message: wr(
                              'RequiredDependentPropWarning',
                              'Object is missing property {0} required by property {1}.',
                              R,
                              U
                            ),
                          });
                    }
                  else
                    (g = jr(I)) &&
                      (Hr(e, g, (N = new $r()), r), n.mergePropertyMatch(N));
                }
            var D = jr(t.propertyNames);
            if (D)
              for (var F = 0, j = e.properties; F < j.length; F++) {
                var U;
                (U = j[F].keyNode) && Hr(U, D, n, Vr.instance);
              }
          })(i, t, n, r);
          break;
        case 'array':
          !(function (e, t, n, r) {
            if (Array.isArray(t.items)) {
              for (var i = t.items, o = 0; o < i.length; o++) {
                var s = jr(i[o]),
                  a = new $r();
                (f = e.items[o])
                  ? (Hr(f, s, a, r), n.mergePropertyMatch(a))
                  : e.items.length >= i.length && n.propertiesValueMatches++;
              }
              if (e.items.length > i.length)
                if ('object' == typeof t.additionalItems)
                  for (var u = i.length; u < e.items.length; u++)
                    (a = new $r()),
                      Hr(e.items[u], t.additionalItems, a, r),
                      n.mergePropertyMatch(a);
                else
                  !1 === t.additionalItems &&
                    n.problems.push({
                      location: { offset: e.offset, length: e.length },
                      severity: yn.Warning,
                      message: wr(
                        'additionalItemsWarning',
                        'Array has too many items according to schema. Expected {0} or fewer.',
                        i.length
                      ),
                    });
            } else {
              var l = jr(t.items);
              if (l)
                for (var c = 0, h = e.items; c < h.length; c++) {
                  var f;
                  Hr((f = h[c]), l, (a = new $r()), r), n.mergePropertyMatch(a);
                }
            }
            var d = jr(t.contains);
            if (
              (d &&
                (e.items.some(function (e) {
                  var t = new $r();
                  return Hr(e, d, t, Vr.instance), !t.hasProblems();
                }) ||
                  n.problems.push({
                    location: { offset: e.offset, length: e.length },
                    severity: yn.Warning,
                    message:
                      t.errorMessage ||
                      wr(
                        'requiredItemMissingWarning',
                        'Array does not contain required item.'
                      ),
                  })),
              Pn(t.minItems) &&
                e.items.length < t.minItems &&
                n.problems.push({
                  location: { offset: e.offset, length: e.length },
                  severity: yn.Warning,
                  message: wr(
                    'minItemsWarning',
                    'Array has too few items. Expected {0} or more.',
                    t.minItems
                  ),
                }),
              Pn(t.maxItems) &&
                e.items.length > t.maxItems &&
                n.problems.push({
                  location: { offset: e.offset, length: e.length },
                  severity: yn.Warning,
                  message: wr(
                    'maxItemsWarning',
                    'Array has too many items. Expected {0} or fewer.',
                    t.maxItems
                  ),
                }),
              !0 === t.uniqueItems)
            ) {
              var m = Wr(e);
              m.some(function (e, t) {
                return t !== m.lastIndexOf(e);
              }) &&
                n.problems.push({
                  location: { offset: e.offset, length: e.length },
                  severity: yn.Warning,
                  message: wr(
                    'uniqueItemsWarning',
                    'Array has duplicate items.'
                  ),
                });
            }
          })(i, t, n, r);
          break;
        case 'string':
          !(function (e, t, n, r) {
            if (
              (Pn(t.minLength) &&
                e.value.length < t.minLength &&
                n.problems.push({
                  location: { offset: e.offset, length: e.length },
                  severity: yn.Warning,
                  message: wr(
                    'minLengthWarning',
                    'String is shorter than the minimum length of {0}.',
                    t.minLength
                  ),
                }),
              Pn(t.maxLength) &&
                e.value.length > t.maxLength &&
                n.problems.push({
                  location: { offset: e.offset, length: e.length },
                  severity: yn.Warning,
                  message: wr(
                    'maxLengthWarning',
                    'String is longer than the maximum length of {0}.',
                    t.maxLength
                  ),
                }),
              'string' == typeof t.pattern &&
                (new RegExp(t.pattern).test(e.value) ||
                  n.problems.push({
                    location: { offset: e.offset, length: e.length },
                    severity: yn.Warning,
                    message:
                      t.patternErrorMessage ||
                      t.errorMessage ||
                      wr(
                        'patternWarning',
                        'String does not match the pattern of "{0}".',
                        t.pattern
                      ),
                  })),
              t.format)
            )
              switch (t.format) {
                case 'uri':
                case 'uri-reference':
                  var i = void 0;
                  if (e.value) {
                    var o = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(
                      e.value
                    );
                    o
                      ? o[2] ||
                        'uri' !== t.format ||
                        (i = wr(
                          'uriSchemeMissing',
                          'URI with a scheme is expected.'
                        ))
                      : (i = wr('uriMissing', 'URI is expected.'));
                  } else i = wr('uriEmpty', 'URI expected.');
                  i &&
                    n.problems.push({
                      location: { offset: e.offset, length: e.length },
                      severity: yn.Warning,
                      message:
                        t.patternErrorMessage ||
                        t.errorMessage ||
                        wr('uriFormatWarning', 'String is not a URI: {0}', i),
                    });
                  break;
                case 'color-hex':
                case 'date-time':
                case 'date':
                case 'time':
                case 'email':
                  var s = Tr[t.format];
                  (e.value && s.pattern.exec(e.value)) ||
                    n.problems.push({
                      location: { offset: e.offset, length: e.length },
                      severity: yn.Warning,
                      message:
                        t.patternErrorMessage ||
                        t.errorMessage ||
                        s.errorMessage,
                    });
              }
          })(i, t, n);
          break;
        case 'number':
          !(function (e, t, n, r) {
            var i = e.value;
            function o(e) {
              var t,
                n = /^(-?\d+)(?:\.(\d+))?(?:e([-+]\d+))?$/.exec(e.toString());
              return (
                n && {
                  value: Number(n[1] + (n[2] || '')),
                  multiplier:
                    ((null === (t = n[2]) || void 0 === t
                      ? void 0
                      : t.length) || 0) - (parseInt(n[3]) || 0),
                }
              );
            }
            if (Pn(t.multipleOf)) {
              var s = -1;
              if (Number.isInteger(t.multipleOf)) s = i % t.multipleOf;
              else {
                var a = o(t.multipleOf),
                  u = o(i);
                if (a && u) {
                  var l = Math.pow(10, Math.abs(u.multiplier - a.multiplier));
                  u.multiplier < a.multiplier ? (u.value *= l) : (a.value *= l),
                    (s = u.value % a.value);
                }
              }
              0 !== s &&
                n.problems.push({
                  location: { offset: e.offset, length: e.length },
                  severity: yn.Warning,
                  message: wr(
                    'multipleOfWarning',
                    'Value is not divisible by {0}.',
                    t.multipleOf
                  ),
                });
            }
            function c(e, t) {
              return Pn(t) ? t : Dn(t) && t ? e : void 0;
            }
            function h(e, t) {
              if (!Dn(t) || !t) return e;
            }
            var f = c(t.minimum, t.exclusiveMinimum);
            Pn(f) &&
              i <= f &&
              n.problems.push({
                location: { offset: e.offset, length: e.length },
                severity: yn.Warning,
                message: wr(
                  'exclusiveMinimumWarning',
                  'Value is below the exclusive minimum of {0}.',
                  f
                ),
              });
            var d = c(t.maximum, t.exclusiveMaximum);
            Pn(d) &&
              i >= d &&
              n.problems.push({
                location: { offset: e.offset, length: e.length },
                severity: yn.Warning,
                message: wr(
                  'exclusiveMaximumWarning',
                  'Value is above the exclusive maximum of {0}.',
                  d
                ),
              });
            var m = h(t.minimum, t.exclusiveMinimum);
            Pn(m) &&
              i < m &&
              n.problems.push({
                location: { offset: e.offset, length: e.length },
                severity: yn.Warning,
                message: wr(
                  'minimumWarning',
                  'Value is below the minimum of {0}.',
                  m
                ),
              });
            var g = h(t.maximum, t.exclusiveMaximum);
            Pn(g) &&
              i > g &&
              n.problems.push({
                location: { offset: e.offset, length: e.length },
                severity: yn.Warning,
                message: wr(
                  'maximumWarning',
                  'Value is above the maximum of {0}.',
                  g
                ),
              });
          })(i, t, n);
          break;
        case 'property':
          return Hr(i.valueNode, t, n, r);
      }
      !(function () {
        function e(e) {
          return (
            i.type === e ||
            ('integer' === e && 'number' === i.type && i.isInteger)
          );
        }
        if (
          (Array.isArray(t.type)
            ? t.type.some(e) ||
              n.problems.push({
                location: { offset: i.offset, length: i.length },
                severity: yn.Warning,
                message:
                  t.errorMessage ||
                  wr(
                    'typeArrayMismatchWarning',
                    'Incorrect type. Expected one of {0}.',
                    t.type.join(', ')
                  ),
              })
            : t.type &&
              (e(t.type) ||
                n.problems.push({
                  location: { offset: i.offset, length: i.length },
                  severity: yn.Warning,
                  message:
                    t.errorMessage ||
                    wr(
                      'typeMismatchWarning',
                      'Incorrect type. Expected "{0}".',
                      t.type
                    ),
                })),
          Array.isArray(t.allOf))
        )
          for (var o = 0, s = t.allOf; o < s.length; o++) {
            var a = s[o];
            Hr(i, jr(a), n, r);
          }
        var u = jr(t.not);
        if (u) {
          var l = new $r(),
            c = r.newSub();
          Hr(i, u, l, c),
            l.hasProblems() ||
              n.problems.push({
                location: { offset: i.offset, length: i.length },
                severity: yn.Warning,
                message: wr(
                  'notSchemaWarning',
                  'Matches a schema that is not allowed.'
                ),
              });
          for (var h = 0, f = c.schemas; h < f.length; h++) {
            var d = f[h];
            (d.inverted = !d.inverted), r.add(d);
          }
        }
        var m = function (e, t) {
          for (var o = [], s = void 0, a = 0, u = e; a < u.length; a++) {
            var l = jr(u[a]),
              c = new $r(),
              h = r.newSub();
            if ((Hr(i, l, c, h), c.hasProblems() || o.push(l), s))
              if (t || c.hasProblems() || s.validationResult.hasProblems()) {
                var f = c.compare(s.validationResult);
                f > 0
                  ? (s = { schema: l, validationResult: c, matchingSchemas: h })
                  : 0 === f &&
                    (s.matchingSchemas.merge(h),
                    s.validationResult.mergeEnumValues(c));
              } else
                s.matchingSchemas.merge(h),
                  (s.validationResult.propertiesMatches += c.propertiesMatches),
                  (s.validationResult.propertiesValueMatches +=
                    c.propertiesValueMatches);
            else s = { schema: l, validationResult: c, matchingSchemas: h };
          }
          return (
            o.length > 1 &&
              t &&
              n.problems.push({
                location: { offset: i.offset, length: 1 },
                severity: yn.Warning,
                message: wr(
                  'oneOfWarning',
                  'Matches multiple schemas when only one must validate.'
                ),
              }),
            s &&
              (n.merge(s.validationResult),
              (n.propertiesMatches += s.validationResult.propertiesMatches),
              (n.propertiesValueMatches +=
                s.validationResult.propertiesValueMatches),
              r.merge(s.matchingSchemas)),
            o.length
          );
        };
        Array.isArray(t.anyOf) && m(t.anyOf, !1),
          Array.isArray(t.oneOf) && m(t.oneOf, !0);
        var g = function (e) {
            var t = new $r(),
              o = r.newSub();
            Hr(i, jr(e), t, o),
              n.merge(t),
              (n.propertiesMatches += t.propertiesMatches),
              (n.propertiesValueMatches += t.propertiesValueMatches),
              r.merge(o);
          },
          p = jr(t.if);
        if (
          (p &&
            (function (e, t, n) {
              var o = jr(e),
                s = new $r(),
                a = r.newSub();
              Hr(i, o, s, a),
                r.merge(a),
                s.hasProblems() ? n && g(n) : t && g(t);
            })(p, jr(t.then), jr(t.else)),
          Array.isArray(t.enum))
        ) {
          for (var v = Wr(i), y = !1, b = 0, C = t.enum; b < C.length; b++) {
            if (Mn(v, C[b])) {
              y = !0;
              break;
            }
          }
          (n.enumValues = t.enum),
            (n.enumValueMatch = y),
            y ||
              n.problems.push({
                location: { offset: i.offset, length: i.length },
                severity: yn.Warning,
                code: gr.EnumValueMismatch,
                message:
                  t.errorMessage ||
                  wr(
                    'enumWarning',
                    'Value is not accepted. Valid values: {0}.',
                    t.enum
                      .map(function (e) {
                        return JSON.stringify(e);
                      })
                      .join(', ')
                  ),
              });
        }
        Rn(t.const) &&
          (Mn((v = Wr(i)), t.const)
            ? (n.enumValueMatch = !0)
            : (n.problems.push({
                location: { offset: i.offset, length: i.length },
                severity: yn.Warning,
                code: gr.EnumValueMismatch,
                message:
                  t.errorMessage ||
                  wr(
                    'constWarning',
                    'Value must be {0}.',
                    JSON.stringify(t.const)
                  ),
              }),
              (n.enumValueMatch = !1)),
          (n.enumValues = [t.const])),
          t.deprecationMessage &&
            i.parent &&
            n.problems.push({
              location: { offset: i.parent.offset, length: i.parent.length },
              severity: yn.Warning,
              message: t.deprecationMessage,
            });
      })(),
        r.add({ node: i, schema: t });
    }
  }
  function Yr(e, t, n) {
    if (null !== e && 'object' == typeof e) {
      var r = t + '\t';
      if (Array.isArray(e)) {
        if (0 === e.length) return '[]';
        for (var i = '[\n', o = 0; o < e.length; o++)
          (i += r + Yr(e[o], r, n)),
            o < e.length - 1 && (i += ','),
            (i += '\n');
        return i + (t + ']');
      }
      var s = Object.keys(e);
      if (0 === s.length) return '{}';
      for (i = '{\n', o = 0; o < s.length; o++) {
        var a = s[o];
        (i += r + JSON.stringify(a) + ': ' + Yr(e[a], r, n)),
          o < s.length - 1 && (i += ','),
          (i += '\n');
      }
      return i + (t + '}');
    }
    return n(e);
  }
  function Gr(e, t) {
    var n = e.length - t.length;
    return n > 0 ? e.lastIndexOf(t) === n : 0 === n && e === t;
  }
  function zr(e) {
    return e
      .replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, '\\$&')
      .replace(/[\*]/g, '.*');
  }
  var Jr = Ar(),
    Qr = (function () {
      function e(e, t, n, r) {
        void 0 === t && (t = []),
          void 0 === n && (n = Promise),
          void 0 === r && (r = {}),
          (this.schemaService = e),
          (this.contributions = t),
          (this.promiseConstructor = n),
          (this.clientCapabilities = r);
      }
      return (
        (e.prototype.doResolve = function (e) {
          for (var t = this.contributions.length - 1; t >= 0; t--) {
            var n = this.contributions[t].resolveCompletion;
            if (n) {
              var r = n(e);
              if (r) return r;
            }
          }
          return this.promiseConstructor.resolve(e);
        }),
        (e.prototype.doComplete = function (e, t, n) {
          var r = this,
            i = { items: [], isIncomplete: !1 },
            o = e.getText(),
            s = e.offsetAt(t),
            a = n.getNodeFromOffset(s, !0);
          if (this.isInComment(e, a ? a.offset : 0, s))
            return Promise.resolve(i);
          if (a && s === a.offset + a.length && s > 0) {
            var u = o[s - 1];
            (('object' === a.type && '}' === u) ||
              ('array' === a.type && ']' === u)) &&
              (a = a.parent);
          }
          var l,
            c = this.getCurrentWord(e, s);
          if (
            !a ||
            ('string' !== a.type &&
              'number' !== a.type &&
              'boolean' !== a.type &&
              'null' !== a.type)
          ) {
            var h = s - c.length;
            h > 0 && '"' === o[h - 1] && h--,
              (l = ln.create(e.positionAt(h), t));
          } else
            l = ln.create(
              e.positionAt(a.offset),
              e.positionAt(a.offset + a.length)
            );
          var f = {},
            d = {
              add: function (e) {
                var t = e.label,
                  n = f[t];
                if (n) n.documentation || (n.documentation = e.documentation);
                else {
                  if ((t = t.replace(/[\n]/g, '↵')).length > 60) {
                    var r = t.substr(0, 57).trim() + '...';
                    f[r] || (t = r);
                  }
                  l &&
                    void 0 !== e.insertText &&
                    (e.textEdit = Sn.replace(l, e.insertText)),
                    (e.label = t),
                    (f[t] = e),
                    i.items.push(e);
                }
              },
              setAsIncomplete: function () {
                i.isIncomplete = !0;
              },
              error: function (e) {
                console.error(e);
              },
              log: function (e) {
                console.log(e);
              },
              getNumberOfProposals: function () {
                return i.items.length;
              },
            };
          return this.schemaService
            .getSchemaForResource(e.uri, n)
            .then(function (t) {
              var u = [],
                h = !0,
                m = '',
                g = void 0;
              if (a && 'string' === a.type) {
                var p = a.parent;
                p &&
                  'property' === p.type &&
                  p.keyNode === a &&
                  ((h = !p.valueNode),
                  (g = p),
                  (m = o.substr(a.offset + 1, a.length - 2)),
                  p && (a = p.parent));
              }
              if (a && 'object' === a.type) {
                if (a.offset === s) return i;
                a.properties.forEach(function (e) {
                  (g && g === e) || (f[e.keyNode.value] = Bn.create('__'));
                });
                var v = '';
                h && (v = r.evaluateSeparatorAfter(e, e.offsetAt(l.end))),
                  t
                    ? r.getPropertyCompletions(t, n, a, h, v, d)
                    : r.getSchemaLessPropertyCompletions(n, a, m, d);
                var y = qr(a);
                r.contributions.forEach(function (t) {
                  var n = t.collectPropertyCompletions(
                    e.uri,
                    y,
                    c,
                    h,
                    '' === v,
                    d
                  );
                  n && u.push(n);
                }),
                  !t &&
                    c.length > 0 &&
                    '"' !== o.charAt(s - c.length - 1) &&
                    (d.add({
                      kind: Wn.Property,
                      label: r.getLabelForValue(c),
                      insertText: r.getInsertTextForProperty(c, void 0, !1, v),
                      insertTextFormat: qn.Snippet,
                      documentation: '',
                    }),
                    d.setAsIncomplete());
              }
              var b = {};
              return (
                t
                  ? r.getValueCompletions(t, n, a, s, e, d, b)
                  : r.getSchemaLessValueCompletions(n, a, s, e, d),
                r.contributions.length > 0 &&
                  r.getContributedValueCompletions(n, a, s, e, d, u),
                r.promiseConstructor.all(u).then(function () {
                  if (0 === d.getNumberOfProposals()) {
                    var t = s;
                    !a ||
                      ('string' !== a.type &&
                        'number' !== a.type &&
                        'boolean' !== a.type &&
                        'null' !== a.type) ||
                      (t = a.offset + a.length);
                    var n = r.evaluateSeparatorAfter(e, t);
                    r.addFillerValueCompletions(b, n, d);
                  }
                  return i;
                })
              );
            });
        }),
        (e.prototype.getPropertyCompletions = function (e, t, n, r, i, o) {
          var s = this;
          t.getMatchingSchemas(e.schema, n.offset).forEach(function (e) {
            if (e.node === n && !e.inverted) {
              var t = e.schema.properties;
              t &&
                Object.keys(t).forEach(function (e) {
                  var n = t[e];
                  if (
                    'object' == typeof n &&
                    !n.deprecationMessage &&
                    !n.doNotSuggest
                  ) {
                    var a = {
                      kind: Wn.Property,
                      label: e,
                      insertText: s.getInsertTextForProperty(e, n, r, i),
                      insertTextFormat: qn.Snippet,
                      filterText: s.getFilterTextForValue(e),
                      documentation:
                        s.fromMarkup(n.markdownDescription) ||
                        n.description ||
                        '',
                    };
                    void 0 !== n.suggestSortText &&
                      (a.sortText = n.suggestSortText),
                      a.insertText &&
                        Gr(a.insertText, '$1' + i) &&
                        (a.command = {
                          title: 'Suggest',
                          command: 'editor.action.triggerSuggest',
                        }),
                      o.add(a);
                  }
                });
              var a = e.schema.propertyNames;
              if (
                'object' == typeof a &&
                !a.deprecationMessage &&
                !a.doNotSuggest
              ) {
                var u = function (e, t) {
                  void 0 === t && (t = void 0);
                  var n = {
                    kind: Wn.Property,
                    label: e,
                    insertText: s.getInsertTextForProperty(e, void 0, r, i),
                    insertTextFormat: qn.Snippet,
                    filterText: s.getFilterTextForValue(e),
                    documentation:
                      t ||
                      s.fromMarkup(a.markdownDescription) ||
                      a.description ||
                      '',
                  };
                  void 0 !== a.suggestSortText &&
                    (n.sortText = a.suggestSortText),
                    n.insertText &&
                      Gr(n.insertText, '$1' + i) &&
                      (n.command = {
                        title: 'Suggest',
                        command: 'editor.action.triggerSuggest',
                      }),
                    o.add(n);
                };
                if (a.enum)
                  for (var l = 0; l < a.enum.length; l++) {
                    var c = void 0;
                    a.markdownEnumDescriptions &&
                    l < a.markdownEnumDescriptions.length
                      ? (c = s.fromMarkup(a.markdownEnumDescriptions[l]))
                      : a.enumDescriptions &&
                        l < a.enumDescriptions.length &&
                        (c = a.enumDescriptions[l]),
                      u(a.enum[l], c);
                  }
                a.const && u(a.const);
              }
            }
          });
        }),
        (e.prototype.getSchemaLessPropertyCompletions = function (e, t, n, r) {
          var i = this,
            o = function (e) {
              e.properties.forEach(function (e) {
                var t = e.keyNode.value;
                r.add({
                  kind: Wn.Property,
                  label: t,
                  insertText: i.getInsertTextForValue(t, ''),
                  insertTextFormat: qn.Snippet,
                  filterText: i.getFilterTextForValue(t),
                  documentation: '',
                });
              });
            };
          if (t.parent)
            if ('property' === t.parent.type) {
              var s = t.parent.keyNode.value;
              e.visit(function (e) {
                return (
                  'property' === e.type &&
                    e !== t.parent &&
                    e.keyNode.value === s &&
                    e.valueNode &&
                    'object' === e.valueNode.type &&
                    o(e.valueNode),
                  !0
                );
              });
            } else
              'array' === t.parent.type &&
                t.parent.items.forEach(function (e) {
                  'object' === e.type && e !== t && o(e);
                });
          else
            'object' === t.type &&
              r.add({
                kind: Wn.Property,
                label: '$schema',
                insertText: this.getInsertTextForProperty(
                  '$schema',
                  void 0,
                  !0,
                  ''
                ),
                insertTextFormat: qn.Snippet,
                documentation: '',
                filterText: this.getFilterTextForValue('$schema'),
              });
        }),
        (e.prototype.getSchemaLessValueCompletions = function (e, t, n, r, i) {
          var o = this,
            s = n;
          if (
            (!t ||
              ('string' !== t.type &&
                'number' !== t.type &&
                'boolean' !== t.type &&
                'null' !== t.type) ||
              ((s = t.offset + t.length), (t = t.parent)),
            !t)
          )
            return (
              i.add({
                kind: this.getSuggestionKind('object'),
                label: 'Empty object',
                insertText: this.getInsertTextForValue({}, ''),
                insertTextFormat: qn.Snippet,
                documentation: '',
              }),
              void i.add({
                kind: this.getSuggestionKind('array'),
                label: 'Empty array',
                insertText: this.getInsertTextForValue([], ''),
                insertTextFormat: qn.Snippet,
                documentation: '',
              })
            );
          var a = this.evaluateSeparatorAfter(r, s),
            u = function (e) {
              e.parent &&
                !Kr(e.parent, n, !0) &&
                i.add({
                  kind: o.getSuggestionKind(e.type),
                  label: o.getLabelTextForMatchingNode(e, r),
                  insertText: o.getInsertTextForMatchingNode(e, r, a),
                  insertTextFormat: qn.Snippet,
                  documentation: '',
                }),
                'boolean' === e.type &&
                  o.addBooleanValueCompletion(!e.value, a, i);
            };
          if ('property' === t.type && n > (t.colonOffset || 0)) {
            var l = t.valueNode;
            if (
              l &&
              (n > l.offset + l.length ||
                'object' === l.type ||
                'array' === l.type)
            )
              return;
            var c = t.keyNode.value;
            e.visit(function (e) {
              return (
                'property' === e.type &&
                  e.keyNode.value === c &&
                  e.valueNode &&
                  u(e.valueNode),
                !0
              );
            }),
              '$schema' === c &&
                t.parent &&
                !t.parent.parent &&
                this.addDollarSchemaCompletions(a, i);
          }
          if ('array' === t.type)
            if (t.parent && 'property' === t.parent.type) {
              var h = t.parent.keyNode.value;
              e.visit(function (e) {
                return (
                  'property' === e.type &&
                    e.keyNode.value === h &&
                    e.valueNode &&
                    'array' === e.valueNode.type &&
                    e.valueNode.items.forEach(u),
                  !0
                );
              });
            } else t.items.forEach(u);
        }),
        (e.prototype.getValueCompletions = function (e, t, n, r, i, o, s) {
          var a = r,
            u = void 0,
            l = void 0;
          if (
            (!n ||
              ('string' !== n.type &&
                'number' !== n.type &&
                'boolean' !== n.type &&
                'null' !== n.type) ||
              ((a = n.offset + n.length), (l = n), (n = n.parent)),
            n)
          ) {
            if ('property' === n.type && r > (n.colonOffset || 0)) {
              var c = n.valueNode;
              if (c && r > c.offset + c.length) return;
              (u = n.keyNode.value), (n = n.parent);
            }
            if (n && (void 0 !== u || 'array' === n.type)) {
              for (
                var h = this.evaluateSeparatorAfter(i, a),
                  f = 0,
                  d = t.getMatchingSchemas(e.schema, n.offset, l);
                f < d.length;
                f++
              ) {
                var m = d[f];
                if (m.node === n && !m.inverted && m.schema) {
                  if ('array' === n.type && m.schema.items)
                    if (Array.isArray(m.schema.items)) {
                      var g = this.findItemAtOffset(n, i, r);
                      g < m.schema.items.length &&
                        this.addSchemaValueCompletions(
                          m.schema.items[g],
                          h,
                          o,
                          s
                        );
                    } else
                      this.addSchemaValueCompletions(m.schema.items, h, o, s);
                  if (void 0 !== u) {
                    var p = !1;
                    if (
                      (m.schema.properties &&
                        (C = m.schema.properties[u]) &&
                        ((p = !0), this.addSchemaValueCompletions(C, h, o, s)),
                      m.schema.patternProperties && !p)
                    )
                      for (
                        var v = 0, y = Object.keys(m.schema.patternProperties);
                        v < y.length;
                        v++
                      ) {
                        var b = y[v];
                        if (new RegExp(b).test(u)) {
                          p = !0;
                          var C = m.schema.patternProperties[b];
                          this.addSchemaValueCompletions(C, h, o, s);
                        }
                      }
                    m.schema.additionalProperties &&
                      !p &&
                      ((C = m.schema.additionalProperties),
                      this.addSchemaValueCompletions(C, h, o, s));
                  }
                }
              }
              '$schema' !== u ||
                n.parent ||
                this.addDollarSchemaCompletions(h, o),
                s.boolean &&
                  (this.addBooleanValueCompletion(!0, h, o),
                  this.addBooleanValueCompletion(!1, h, o)),
                s.null && this.addNullValueCompletion(h, o);
            }
          } else this.addSchemaValueCompletions(e.schema, '', o, s);
        }),
        (e.prototype.getContributedValueCompletions = function (
          e,
          t,
          n,
          r,
          i,
          o
        ) {
          if (t) {
            if (
              (('string' !== t.type &&
                'number' !== t.type &&
                'boolean' !== t.type &&
                'null' !== t.type) ||
                (t = t.parent),
              t && 'property' === t.type && n > (t.colonOffset || 0))
            ) {
              var s = t.keyNode.value,
                a = t.valueNode;
              if ((!a || n <= a.offset + a.length) && t.parent) {
                var u = qr(t.parent);
                this.contributions.forEach(function (e) {
                  var t = e.collectValueCompletions(r.uri, u, s, i);
                  t && o.push(t);
                });
              }
            }
          } else
            this.contributions.forEach(function (e) {
              var t = e.collectDefaultCompletions(r.uri, i);
              t && o.push(t);
            });
        }),
        (e.prototype.addSchemaValueCompletions = function (e, t, n, r) {
          var i = this;
          'object' == typeof e &&
            (this.addEnumValueCompletions(e, t, n),
            this.addDefaultValueCompletions(e, t, n),
            this.collectTypes(e, r),
            Array.isArray(e.allOf) &&
              e.allOf.forEach(function (e) {
                return i.addSchemaValueCompletions(e, t, n, r);
              }),
            Array.isArray(e.anyOf) &&
              e.anyOf.forEach(function (e) {
                return i.addSchemaValueCompletions(e, t, n, r);
              }),
            Array.isArray(e.oneOf) &&
              e.oneOf.forEach(function (e) {
                return i.addSchemaValueCompletions(e, t, n, r);
              }));
        }),
        (e.prototype.addDefaultValueCompletions = function (e, t, n, r) {
          var i = this;
          void 0 === r && (r = 0);
          var o = !1;
          if (Rn(e.default)) {
            for (var s = e.type, a = e.default, u = r; u > 0; u--)
              (a = [a]), (s = 'array');
            n.add({
              kind: this.getSuggestionKind(s),
              label: this.getLabelForValue(a),
              insertText: this.getInsertTextForValue(a, t),
              insertTextFormat: qn.Snippet,
              detail: Jr('json.suggest.default', 'Default value'),
            }),
              (o = !0);
          }
          Array.isArray(e.examples) &&
            e.examples.forEach(function (s) {
              for (var a = e.type, u = s, l = r; l > 0; l--)
                (u = [u]), (a = 'array');
              n.add({
                kind: i.getSuggestionKind(a),
                label: i.getLabelForValue(u),
                insertText: i.getInsertTextForValue(u, t),
                insertTextFormat: qn.Snippet,
              }),
                (o = !0);
            }),
            Array.isArray(e.defaultSnippets) &&
              e.defaultSnippets.forEach(function (s) {
                var a,
                  u,
                  l = e.type,
                  c = s.body,
                  h = s.label;
                if (Rn(c)) {
                  e.type;
                  for (var f = r; f > 0; f--) c = [c];
                  (a = i.getInsertTextForSnippetValue(c, t)),
                    (u = i.getFilterTextForSnippetValue(c)),
                    (h = h || i.getLabelForSnippetValue(c));
                } else {
                  if ('string' != typeof s.bodyText) return;
                  var d = '',
                    m = '',
                    g = '';
                  for (f = r; f > 0; f--)
                    (d = d + g + '[\n'),
                      (m = m + '\n' + g + ']'),
                      (g += '\t'),
                      (l = 'array');
                  (a = d + g + s.bodyText.split('\n').join('\n' + g) + m + t),
                    (h = h || a),
                    (u = a.replace(/[\n]/g, ''));
                }
                n.add({
                  kind: i.getSuggestionKind(l),
                  label: h,
                  documentation:
                    i.fromMarkup(s.markdownDescription) || s.description,
                  insertText: a,
                  insertTextFormat: qn.Snippet,
                  filterText: u,
                }),
                  (o = !0);
              }),
            !o &&
              'object' == typeof e.items &&
              !Array.isArray(e.items) &&
              r < 5 &&
              this.addDefaultValueCompletions(e.items, t, n, r + 1);
        }),
        (e.prototype.addEnumValueCompletions = function (e, t, n) {
          if (
            (Rn(e.const) &&
              n.add({
                kind: this.getSuggestionKind(e.type),
                label: this.getLabelForValue(e.const),
                insertText: this.getInsertTextForValue(e.const, t),
                insertTextFormat: qn.Snippet,
                documentation:
                  this.fromMarkup(e.markdownDescription) || e.description,
              }),
            Array.isArray(e.enum))
          )
            for (var r = 0, i = e.enum.length; r < i; r++) {
              var o = e.enum[r],
                s = this.fromMarkup(e.markdownDescription) || e.description;
              e.markdownEnumDescriptions &&
              r < e.markdownEnumDescriptions.length &&
              this.doesSupportMarkdown()
                ? (s = this.fromMarkup(e.markdownEnumDescriptions[r]))
                : e.enumDescriptions &&
                  r < e.enumDescriptions.length &&
                  (s = e.enumDescriptions[r]),
                n.add({
                  kind: this.getSuggestionKind(e.type),
                  label: this.getLabelForValue(o),
                  insertText: this.getInsertTextForValue(o, t),
                  insertTextFormat: qn.Snippet,
                  documentation: s,
                });
            }
        }),
        (e.prototype.collectTypes = function (e, t) {
          if (!Array.isArray(e.enum) && !Rn(e.const)) {
            var n = e.type;
            Array.isArray(n)
              ? n.forEach(function (e) {
                  return (t[e] = !0);
                })
              : n && (t[n] = !0);
          }
        }),
        (e.prototype.addFillerValueCompletions = function (e, t, n) {
          e.object &&
            n.add({
              kind: this.getSuggestionKind('object'),
              label: '{}',
              insertText: this.getInsertTextForGuessedValue({}, t),
              insertTextFormat: qn.Snippet,
              detail: Jr('defaults.object', 'New object'),
              documentation: '',
            }),
            e.array &&
              n.add({
                kind: this.getSuggestionKind('array'),
                label: '[]',
                insertText: this.getInsertTextForGuessedValue([], t),
                insertTextFormat: qn.Snippet,
                detail: Jr('defaults.array', 'New array'),
                documentation: '',
              });
        }),
        (e.prototype.addBooleanValueCompletion = function (e, t, n) {
          n.add({
            kind: this.getSuggestionKind('boolean'),
            label: e ? 'true' : 'false',
            insertText: this.getInsertTextForValue(e, t),
            insertTextFormat: qn.Snippet,
            documentation: '',
          });
        }),
        (e.prototype.addNullValueCompletion = function (e, t) {
          t.add({
            kind: this.getSuggestionKind('null'),
            label: 'null',
            insertText: 'null' + e,
            insertTextFormat: qn.Snippet,
            documentation: '',
          });
        }),
        (e.prototype.addDollarSchemaCompletions = function (e, t) {
          var n = this;
          this.schemaService
            .getRegisteredSchemaIds(function (e) {
              return 'http' === e || 'https' === e;
            })
            .forEach(function (r) {
              return t.add({
                kind: Wn.Module,
                label: n.getLabelForValue(r),
                filterText: n.getFilterTextForValue(r),
                insertText: n.getInsertTextForValue(r, e),
                insertTextFormat: qn.Snippet,
                documentation: '',
              });
            });
        }),
        (e.prototype.getLabelForValue = function (e) {
          return JSON.stringify(e);
        }),
        (e.prototype.getFilterTextForValue = function (e) {
          return JSON.stringify(e);
        }),
        (e.prototype.getFilterTextForSnippetValue = function (e) {
          return JSON.stringify(e).replace(/\$\{\d+:([^}]+)\}|\$\d+/g, '$1');
        }),
        (e.prototype.getLabelForSnippetValue = function (e) {
          return JSON.stringify(e).replace(/\$\{\d+:([^}]+)\}|\$\d+/g, '$1');
        }),
        (e.prototype.getInsertTextForPlainText = function (e) {
          return e.replace(/[\\\$\}]/g, '\\$&');
        }),
        (e.prototype.getInsertTextForValue = function (e, t) {
          var n = JSON.stringify(e, null, '\t');
          return '{}' === n
            ? '{$1}' + t
            : '[]' === n
            ? '[$1]' + t
            : this.getInsertTextForPlainText(n + t);
        }),
        (e.prototype.getInsertTextForSnippetValue = function (e, t) {
          return (
            Yr(e, '', function (e) {
              return 'string' == typeof e && '^' === e[0]
                ? e.substr(1)
                : JSON.stringify(e);
            }) + t
          );
        }),
        (e.prototype.getInsertTextForGuessedValue = function (e, t) {
          switch (typeof e) {
            case 'object':
              return null === e
                ? '${1:null}' + t
                : this.getInsertTextForValue(e, t);
            case 'string':
              var n = JSON.stringify(e);
              return (
                (n = n.substr(1, n.length - 2)),
                '"${1:' + (n = this.getInsertTextForPlainText(n)) + '}"' + t
              );
            case 'number':
            case 'boolean':
              return '${1:' + JSON.stringify(e) + '}' + t;
          }
          return this.getInsertTextForValue(e, t);
        }),
        (e.prototype.getSuggestionKind = function (e) {
          if (Array.isArray(e)) {
            var t = e;
            e = t.length > 0 ? t[0] : void 0;
          }
          if (!e) return Wn.Value;
          switch (e) {
            case 'string':
              return Wn.Value;
            case 'object':
              return Wn.Module;
            case 'property':
              return Wn.Property;
            default:
              return Wn.Value;
          }
        }),
        (e.prototype.getLabelTextForMatchingNode = function (e, t) {
          switch (e.type) {
            case 'array':
              return '[]';
            case 'object':
              return '{}';
            default:
              return t.getText().substr(e.offset, e.length);
          }
        }),
        (e.prototype.getInsertTextForMatchingNode = function (e, t, n) {
          switch (e.type) {
            case 'array':
              return this.getInsertTextForValue([], n);
            case 'object':
              return this.getInsertTextForValue({}, n);
            default:
              var r = t.getText().substr(e.offset, e.length) + n;
              return this.getInsertTextForPlainText(r);
          }
        }),
        (e.prototype.getInsertTextForProperty = function (e, t, n, r) {
          var i = this.getInsertTextForValue(e, '');
          if (!n) return i;
          var o,
            s = i + ': ',
            a = 0;
          if (t) {
            if (Array.isArray(t.defaultSnippets)) {
              if (1 === t.defaultSnippets.length) {
                var u = t.defaultSnippets[0].body;
                Rn(u) && (o = this.getInsertTextForSnippetValue(u, ''));
              }
              a += t.defaultSnippets.length;
            }
            if (
              (t.enum &&
                (o ||
                  1 !== t.enum.length ||
                  (o = this.getInsertTextForGuessedValue(t.enum[0], '')),
                (a += t.enum.length)),
              Rn(t.default) &&
                (o || (o = this.getInsertTextForGuessedValue(t.default, '')),
                a++),
              Array.isArray(t.examples) &&
                t.examples.length &&
                (o ||
                  (o = this.getInsertTextForGuessedValue(t.examples[0], '')),
                (a += t.examples.length)),
              0 === a)
            ) {
              var l = Array.isArray(t.type) ? t.type[0] : t.type;
              switch (
                (l ||
                  (t.properties ? (l = 'object') : t.items && (l = 'array')),
                l)
              ) {
                case 'boolean':
                  o = '$1';
                  break;
                case 'string':
                  o = '"$1"';
                  break;
                case 'object':
                  o = '{$1}';
                  break;
                case 'array':
                  o = '[$1]';
                  break;
                case 'number':
                case 'integer':
                  o = '${1:0}';
                  break;
                case 'null':
                  o = '${1:null}';
                  break;
                default:
                  return i;
              }
            }
          }
          return (!o || a > 1) && (o = '$1'), s + o + r;
        }),
        (e.prototype.getCurrentWord = function (e, t) {
          for (
            var n = t - 1, r = e.getText();
            n >= 0 && -1 === ' \t\n\r\v":{[,]}'.indexOf(r.charAt(n));

          )
            n--;
          return r.substring(n + 1, t);
        }),
        (e.prototype.evaluateSeparatorAfter = function (e, t) {
          var n = wn(e.getText(), !0);
          switch ((n.setPosition(t), n.scan())) {
            case 5:
            case 2:
            case 4:
            case 17:
              return '';
            default:
              return ',';
          }
        }),
        (e.prototype.findItemAtOffset = function (e, t, n) {
          for (
            var r = wn(t.getText(), !0), i = e.items, o = i.length - 1;
            o >= 0;
            o--
          ) {
            var s = i[o];
            if (n > s.offset + s.length)
              return (
                r.setPosition(s.offset + s.length),
                5 === r.scan() && n >= r.getTokenOffset() + r.getTokenLength()
                  ? o + 1
                  : o
              );
            if (n >= s.offset) return o;
          }
          return 0;
        }),
        (e.prototype.isInComment = function (e, t, n) {
          var r = wn(e.getText(), !1);
          r.setPosition(t);
          for (
            var i = r.scan();
            17 !== i && r.getTokenOffset() + r.getTokenLength() < n;

          )
            i = r.scan();
          return (12 === i || 13 === i) && r.getTokenOffset() <= n;
        }),
        (e.prototype.fromMarkup = function (e) {
          if (e && this.doesSupportMarkdown())
            return { kind: Vn.Markdown, value: e };
        }),
        (e.prototype.doesSupportMarkdown = function () {
          if (!Rn(this.supportsMarkdown)) {
            var e =
              this.clientCapabilities.textDocument &&
              this.clientCapabilities.textDocument.completion;
            this.supportsMarkdown =
              e &&
              e.completionItem &&
              Array.isArray(e.completionItem.documentationFormat) &&
              -1 !== e.completionItem.documentationFormat.indexOf(Vn.Markdown);
          }
          return this.supportsMarkdown;
        }),
        (e.prototype.doesSupportsCommitCharacters = function () {
          if (!Rn(this.supportsCommitCharacters)) {
            var e =
              this.clientCapabilities.textDocument &&
              this.clientCapabilities.textDocument.completion;
            this.supportsCommitCharacters =
              e &&
              e.completionItem &&
              !!e.completionItem.commitCharactersSupport;
          }
          return this.supportsCommitCharacters;
        }),
        e
      );
    })(),
    Zr = (function () {
      function e(e, t, n) {
        void 0 === t && (t = []),
          (this.schemaService = e),
          (this.contributions = t),
          (this.promise = n || Promise);
      }
      return (
        (e.prototype.doHover = function (e, t, n) {
          var r = e.offsetAt(t),
            i = n.getNodeFromOffset(r);
          if (
            !i ||
            (('object' === i.type || 'array' === i.type) &&
              r > i.offset + 1 &&
              r < i.offset + i.length - 1)
          )
            return this.promise.resolve(null);
          var o = i;
          if ('string' === i.type) {
            var s = i.parent;
            if (
              s &&
              'property' === s.type &&
              s.keyNode === i &&
              !(i = s.valueNode)
            )
              return this.promise.resolve(null);
          }
          for (
            var a = ln.create(
                e.positionAt(o.offset),
                e.positionAt(o.offset + o.length)
              ),
              u = function (e) {
                return { contents: e, range: a };
              },
              l = qr(i),
              c = this.contributions.length - 1;
            c >= 0;
            c--
          ) {
            var h = this.contributions[c].getInfoContribution(e.uri, l);
            if (h)
              return h.then(function (e) {
                return u(e);
              });
          }
          return this.schemaService
            .getSchemaForResource(e.uri, n)
            .then(function (e) {
              if (e && i) {
                var t = n.getMatchingSchemas(e.schema, i.offset),
                  r = void 0,
                  o = void 0,
                  s = void 0,
                  a = void 0;
                t.every(function (e) {
                  if (
                    e.node === i &&
                    !e.inverted &&
                    e.schema &&
                    ((r = r || e.schema.title),
                    (o =
                      o ||
                      e.schema.markdownDescription ||
                      Xr(e.schema.description)),
                    e.schema.enum)
                  ) {
                    var t = e.schema.enum.indexOf(Wr(i));
                    e.schema.markdownEnumDescriptions
                      ? (s = e.schema.markdownEnumDescriptions[t])
                      : e.schema.enumDescriptions &&
                        (s = Xr(e.schema.enumDescriptions[t])),
                      s &&
                        'string' != typeof (a = e.schema.enum[t]) &&
                        (a = JSON.stringify(a));
                  }
                  return !0;
                });
                var l = '';
                return (
                  r && (l = Xr(r)),
                  o && (l.length > 0 && (l += '\n\n'), (l += o)),
                  s &&
                    (l.length > 0 && (l += '\n\n'),
                    (l +=
                      '`' +
                      ((-1 !== (c = a).indexOf('`') ? '`` ' + c + ' ``' : c) +
                        '`: ') +
                      s)),
                  u([l])
                );
              }
              var c;
              return null;
            });
        }),
        e
      );
    })();
  function Xr(e) {
    if (e)
      return e
        .replace(/([^\n\r])(\r?\n)([^\n\r])/gm, '$1\n\n$3')
        .replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&');
  }
  var ei,
    ti,
    ni = (function () {
      var e = function (t, n) {
        return (e =
          Object.setPrototypeOf ||
          ({ __proto__: [] } instanceof Array &&
            function (e, t) {
              e.__proto__ = t;
            }) ||
          function (e, t) {
            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
          })(t, n);
      };
      return function (t, n) {
        function r() {
          this.constructor = t;
        }
        e(t, n),
          (t.prototype =
            null === n
              ? Object.create(n)
              : ((r.prototype = n.prototype), new r()));
      };
    })();
  if ('object' == typeof process) ti = 'win32' === process.platform;
  else if ('object' == typeof navigator) {
    var ri = navigator.userAgent;
    ti = ri.indexOf('Windows') >= 0;
  }
  var ii = /^\w[\w\d+.-]*$/,
    oi = /^\//,
    si = /^\/\//,
    ai = '',
    ui = '/',
    li = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,
    ci = (function () {
      function e(e, t, n, r, i, o) {
        void 0 === o && (o = !1),
          'object' == typeof e
            ? ((this.scheme = e.scheme || ai),
              (this.authority = e.authority || ai),
              (this.path = e.path || ai),
              (this.query = e.query || ai),
              (this.fragment = e.fragment || ai))
            : ((this.scheme = (function (e, t) {
                return e || t ? e : 'file';
              })(e, o)),
              (this.authority = t || ai),
              (this.path = (function (e, t) {
                switch (e) {
                  case 'https':
                  case 'http':
                  case 'file':
                    t ? t[0] !== ui && (t = ui + t) : (t = ui);
                }
                return t;
              })(this.scheme, n || ai)),
              (this.query = r || ai),
              (this.fragment = i || ai),
              (function (e, t) {
                if (!e.scheme && t)
                  throw new Error(
                    '[UriError]: Scheme is missing: {scheme: "", authority: "' +
                      e.authority +
                      '", path: "' +
                      e.path +
                      '", query: "' +
                      e.query +
                      '", fragment: "' +
                      e.fragment +
                      '"}'
                  );
                if (e.scheme && !ii.test(e.scheme))
                  throw new Error(
                    '[UriError]: Scheme contains illegal characters.'
                  );
                if (e.path)
                  if (e.authority) {
                    if (!oi.test(e.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 (si.test(e.path))
                    throw new Error(
                      '[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'
                    );
              })(this, o));
      }
      return (
        (e.isUri = function (t) {
          return (
            t instanceof e ||
            (!!t &&
              'string' == typeof t.authority &&
              'string' == typeof t.fragment &&
              'string' == typeof t.path &&
              'string' == typeof t.query &&
              'string' == typeof t.scheme &&
              'function' == typeof t.fsPath &&
              'function' == typeof t.with &&
              'function' == typeof t.toString)
          );
        }),
        Object.defineProperty(e.prototype, 'fsPath', {
          get: function () {
            return pi(this, !1);
          },
          enumerable: !0,
          configurable: !0,
        }),
        (e.prototype.with = function (e) {
          if (!e) return this;
          var t = e.scheme,
            n = e.authority,
            r = e.path,
            i = e.query,
            o = e.fragment;
          return (
            void 0 === t ? (t = this.scheme) : null === t && (t = ai),
            void 0 === n ? (n = this.authority) : null === n && (n = ai),
            void 0 === r ? (r = this.path) : null === r && (r = ai),
            void 0 === i ? (i = this.query) : null === i && (i = ai),
            void 0 === o ? (o = this.fragment) : null === o && (o = ai),
            t === this.scheme &&
            n === this.authority &&
            r === this.path &&
            i === this.query &&
            o === this.fragment
              ? this
              : new fi(t, n, r, i, o)
          );
        }),
        (e.parse = function (e, t) {
          void 0 === t && (t = !1);
          var n = li.exec(e);
          return n
            ? new fi(
                n[2] || ai,
                Ci(n[4] || ai),
                Ci(n[5] || ai),
                Ci(n[7] || ai),
                Ci(n[9] || ai),
                t
              )
            : new fi(ai, ai, ai, ai, ai);
        }),
        (e.file = function (e) {
          var t = ai;
          if ((ti && (e = e.replace(/\\/g, ui)), e[0] === ui && e[1] === ui)) {
            var n = e.indexOf(ui, 2);
            -1 === n
              ? ((t = e.substring(2)), (e = ui))
              : ((t = e.substring(2, n)), (e = e.substring(n) || ui));
          }
          return new fi('file', t, e, ai, ai);
        }),
        (e.from = function (e) {
          return new fi(e.scheme, e.authority, e.path, e.query, e.fragment);
        }),
        (e.prototype.toString = function (e) {
          return void 0 === e && (e = !1), vi(this, e);
        }),
        (e.prototype.toJSON = function () {
          return this;
        }),
        (e.revive = function (t) {
          if (t) {
            if (t instanceof e) return t;
            var n = new fi(t);
            return (
              (n._formatted = t.external),
              (n._fsPath = t._sep === hi ? t.fsPath : null),
              n
            );
          }
          return t;
        }),
        e
      );
    })(),
    hi = ti ? 1 : void 0,
    fi = (function (e) {
      function t() {
        var t = (null !== e && e.apply(this, arguments)) || this;
        return (t._formatted = null), (t._fsPath = null), t;
      }
      return (
        ni(t, e),
        Object.defineProperty(t.prototype, 'fsPath', {
          get: function () {
            return this._fsPath || (this._fsPath = pi(this, !1)), this._fsPath;
          },
          enumerable: !0,
          configurable: !0,
        }),
        (t.prototype.toString = function (e) {
          return (
            void 0 === e && (e = !1),
            e
              ? vi(this, !0)
              : (this._formatted || (this._formatted = vi(this, !1)),
                this._formatted)
          );
        }),
        (t.prototype.toJSON = function () {
          var e = { $mid: 1 };
          return (
            this._fsPath && ((e.fsPath = this._fsPath), (e._sep = hi)),
            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
          );
        }),
        t
      );
    })(ci),
    di =
      (((ei = {})[58] = '%3A'),
      (ei[47] = '%2F'),
      (ei[63] = '%3F'),
      (ei[35] = '%23'),
      (ei[91] = '%5B'),
      (ei[93] = '%5D'),
      (ei[64] = '%40'),
      (ei[33] = '%21'),
      (ei[36] = '%24'),
      (ei[38] = '%26'),
      (ei[39] = '%27'),
      (ei[40] = '%28'),
      (ei[41] = '%29'),
      (ei[42] = '%2A'),
      (ei[43] = '%2B'),
      (ei[44] = '%2C'),
      (ei[59] = '%3B'),
      (ei[61] = '%3D'),
      (ei[32] = '%20'),
      ei);
  function mi(e, t) {
    for (var n = void 0, r = -1, i = 0; i < e.length; i++) {
      var o = e.charCodeAt(i);
      if (
        (o >= 97 && o <= 122) ||
        (o >= 65 && o <= 90) ||
        (o >= 48 && o <= 57) ||
        45 === o ||
        46 === o ||
        95 === o ||
        126 === o ||
        (t && 47 === o)
      )
        -1 !== r && ((n += encodeURIComponent(e.substring(r, i))), (r = -1)),
          void 0 !== n && (n += e.charAt(i));
      else {
        void 0 === n && (n = e.substr(0, i));
        var s = di[o];
        void 0 !== s
          ? (-1 !== r &&
              ((n += encodeURIComponent(e.substring(r, i))), (r = -1)),
            (n += s))
          : -1 === r && (r = i);
      }
    }
    return (
      -1 !== r && (n += encodeURIComponent(e.substring(r))),
      void 0 !== n ? n : e
    );
  }
  function gi(e) {
    for (var t = void 0, n = 0; n < e.length; n++) {
      var r = e.charCodeAt(n);
      35 === r || 63 === r
        ? (void 0 === t && (t = e.substr(0, n)), (t += di[r]))
        : void 0 !== t && (t += e[n]);
    }
    return void 0 !== t ? t : e;
  }
  function pi(e, t) {
    var n;
    return (
      (n =
        e.authority && e.path.length > 1 && 'file' === e.scheme
          ? '//' + e.authority + e.path
          : 47 === e.path.charCodeAt(0) &&
            ((e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90) ||
              (e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122)) &&
            58 === e.path.charCodeAt(2)
          ? t
            ? e.path.substr(1)
            : e.path[1].toLowerCase() + e.path.substr(2)
          : e.path),
      ti && (n = n.replace(/\//g, '\\')),
      n
    );
  }
  function vi(e, t) {
    var n = t ? gi : mi,
      r = '',
      i = e.scheme,
      o = e.authority,
      s = e.path,
      a = e.query,
      u = e.fragment;
    if (
      (i && ((r += i), (r += ':')),
      (o || 'file' === i) && ((r += ui), (r += ui)),
      o)
    ) {
      var l = o.indexOf('@');
      if (-1 !== l) {
        var c = o.substr(0, l);
        (o = o.substr(l + 1)),
          -1 === (l = c.indexOf(':'))
            ? (r += n(c, !1))
            : ((r += n(c.substr(0, l), !1)),
              (r += ':'),
              (r += n(c.substr(l + 1), !1))),
          (r += '@');
      }
      -1 === (l = (o = o.toLowerCase()).indexOf(':'))
        ? (r += n(o, !1))
        : ((r += n(o.substr(0, l), !1)), (r += o.substr(l)));
    }
    if (s) {
      if (s.length >= 3 && 47 === s.charCodeAt(0) && 58 === s.charCodeAt(2))
        (h = s.charCodeAt(1)) >= 65 &&
          h <= 90 &&
          (s = '/' + String.fromCharCode(h + 32) + ':' + s.substr(3));
      else if (s.length >= 2 && 58 === s.charCodeAt(1)) {
        var h;
        (h = s.charCodeAt(0)) >= 65 &&
          h <= 90 &&
          (s = String.fromCharCode(h + 32) + ':' + s.substr(2));
      }
      r += n(s, !0);
    }
    return (
      a && ((r += '?'), (r += n(a, !1))),
      u && ((r += '#'), (r += t ? u : mi(u, !1))),
      r
    );
  }
  function yi(e) {
    try {
      return decodeURIComponent(e);
    } catch (t) {
      return e.length > 3 ? e.substr(0, 3) + yi(e.substr(3)) : e;
    }
  }
  var bi = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
  function Ci(e) {
    return e.match(bi)
      ? e.replace(bi, function (e) {
          return yi(e);
        })
      : e;
  }
  var _i = Ar(),
    Si = (function () {
      function e(e, t) {
        (this.patternRegExps = []), (this.isInclude = []);
        try {
          for (var n = 0, r = e; n < r.length; n++) {
            var i = r[n],
              o = '!' !== i[0];
            o || (i = i.substring(1)),
              this.patternRegExps.push(new RegExp(zr(i) + '$')),
              this.isInclude.push(o);
          }
          this.uris = t;
        } catch (e) {
          (this.patternRegExps.length = 0),
            (this.isInclude.length = 0),
            (this.uris = []);
        }
      }
      return (
        (e.prototype.matchesPattern = function (e) {
          for (var t = !1, n = 0; n < this.patternRegExps.length; n++)
            this.patternRegExps[n].test(e) && (t = this.isInclude[n]);
          return t;
        }),
        (e.prototype.getURIs = function () {
          return this.uris;
        }),
        e
      );
    })(),
    Ei = (function () {
      function e(e, t, n) {
        (this.service = e),
          (this.url = t),
          (this.dependencies = {}),
          n &&
            (this.unresolvedSchema = this.service.promise.resolve(new Ai(n)));
      }
      return (
        (e.prototype.getUnresolvedSchema = function () {
          return (
            this.unresolvedSchema ||
              (this.unresolvedSchema = this.service.loadSchema(this.url)),
            this.unresolvedSchema
          );
        }),
        (e.prototype.getResolvedSchema = function () {
          var e = this;
          return (
            this.resolvedSchema ||
              (this.resolvedSchema = this.getUnresolvedSchema().then(function (
                t
              ) {
                return e.service.resolveSchemaContent(t, e.url, e.dependencies);
              })),
            this.resolvedSchema
          );
        }),
        (e.prototype.clearSchema = function () {
          (this.resolvedSchema = void 0),
            (this.unresolvedSchema = void 0),
            (this.dependencies = {});
        }),
        e
      );
    })(),
    Ai = function (e, t) {
      void 0 === t && (t = []), (this.schema = e), (this.errors = t);
    },
    xi = (function () {
      function e(e, t) {
        void 0 === t && (t = []), (this.schema = e), (this.errors = t);
      }
      return (
        (e.prototype.getSection = function (e) {
          var t = this.getSectionRecursive(e, this.schema);
          if (t) return jr(t);
        }),
        (e.prototype.getSectionRecursive = function (e, t) {
          if (!t || 'boolean' == typeof t || 0 === e.length) return t;
          var n = e.shift();
          if (t.properties && (t.properties[n], 1))
            return this.getSectionRecursive(e, t.properties[n]);
          if (t.patternProperties)
            for (
              var r = 0, i = Object.keys(t.patternProperties);
              r < i.length;
              r++
            ) {
              var o = i[r];
              if (new RegExp(o).test(n))
                return this.getSectionRecursive(e, t.patternProperties[o]);
            }
          else {
            if ('object' == typeof t.additionalProperties)
              return this.getSectionRecursive(e, t.additionalProperties);
            if (n.match('[0-9]+'))
              if (Array.isArray(t.items)) {
                var s = parseInt(n, 10);
                if (!isNaN(s) && t.items[s])
                  return this.getSectionRecursive(e, t.items[s]);
              } else if (t.items) return this.getSectionRecursive(e, t.items);
          }
        }),
        e
      );
    })(),
    Ni = (function () {
      function e(e, t, n) {
        (this.contextService = t),
          (this.requestService = e),
          (this.promiseConstructor = n || Promise),
          (this.callOnDispose = []),
          (this.contributionSchemas = {}),
          (this.contributionAssociations = []),
          (this.schemasById = {}),
          (this.filePatternAssociations = []),
          (this.registeredSchemasIds = {});
      }
      return (
        (e.prototype.getRegisteredSchemaIds = function (e) {
          return Object.keys(this.registeredSchemasIds).filter(function (t) {
            var n = ci.parse(t).scheme;
            return 'schemaservice' !== n && (!e || e(n));
          });
        }),
        Object.defineProperty(e.prototype, 'promise', {
          get: function () {
            return this.promiseConstructor;
          },
          enumerable: !1,
          configurable: !0,
        }),
        (e.prototype.dispose = function () {
          for (; this.callOnDispose.length > 0; ) this.callOnDispose.pop()();
        }),
        (e.prototype.onResourceChange = function (e) {
          for (
            var t = this,
              n = !1,
              r = [(e = wi(e))],
              i = Object.keys(this.schemasById).map(function (e) {
                return t.schemasById[e];
              });
            r.length;

          )
            for (var o = r.pop(), s = 0; s < i.length; s++) {
              var a = i[s];
              a &&
                (a.url === o || a.dependencies[o]) &&
                (a.url !== o && r.push(a.url),
                a.clearSchema(),
                (i[s] = void 0),
                (n = !0));
            }
          return n;
        }),
        (e.prototype.setSchemaContributions = function (e) {
          if (e.schemas) {
            var t = e.schemas;
            for (var n in t) {
              var r = wi(n);
              this.contributionSchemas[r] = this.addSchemaHandle(r, t[n]);
            }
          }
          if (Array.isArray(e.schemaAssociations))
            for (var i = 0, o = e.schemaAssociations; i < o.length; i++) {
              var s = o[i],
                a = s.uris.map(wi),
                u = this.addFilePatternAssociation(s.pattern, a);
              this.contributionAssociations.push(u);
            }
        }),
        (e.prototype.addSchemaHandle = function (e, t) {
          var n = new Ei(this, e, t);
          return (this.schemasById[e] = n), n;
        }),
        (e.prototype.getOrAddSchemaHandle = function (e, t) {
          return this.schemasById[e] || this.addSchemaHandle(e, t);
        }),
        (e.prototype.addFilePatternAssociation = function (e, t) {
          var n = new Si(e, t);
          return this.filePatternAssociations.push(n), n;
        }),
        (e.prototype.registerExternalSchema = function (e, t, n) {
          var r = wi(e);
          return (
            (this.registeredSchemasIds[r] = !0),
            (this.cachedSchemaForResource = void 0),
            t && this.addFilePatternAssociation(t, [e]),
            n ? this.addSchemaHandle(r, n) : this.getOrAddSchemaHandle(r)
          );
        }),
        (e.prototype.clearExternalSchemas = function () {
          for (var e in ((this.schemasById = {}),
          (this.filePatternAssociations = []),
          (this.registeredSchemasIds = {}),
          (this.cachedSchemaForResource = void 0),
          this.contributionSchemas))
            (this.schemasById[e] = this.contributionSchemas[e]),
              (this.registeredSchemasIds[e] = !0);
          for (
            var t = 0, n = this.contributionAssociations;
            t < n.length;
            t++
          ) {
            var r = n[t];
            this.filePatternAssociations.push(r);
          }
        }),
        (e.prototype.getResolvedSchema = function (e) {
          var t = wi(e),
            n = this.schemasById[t];
          return n ? n.getResolvedSchema() : this.promise.resolve(void 0);
        }),
        (e.prototype.loadSchema = function (e) {
          if (!this.requestService) {
            var t = _i(
              'json.schema.norequestservice',
              "Unable to load schema from '{0}'. No schema request service available",
              Ti(e)
            );
            return this.promise.resolve(new Ai({}, [t]));
          }
          return this.requestService(e).then(
            function (t) {
              if (!t) {
                var n = _i(
                  'json.schema.nocontent',
                  "Unable to load schema from '{0}': No content.",
                  Ti(e)
                );
                return new Ai({}, [n]);
              }
              var r,
                i = [];
              r = Tn(t, i);
              var o = i.length
                ? [
                    _i(
                      'json.schema.invalidFormat',
                      "Unable to parse content from '{0}': Parse error at offset {1}.",
                      Ti(e),
                      i[0].offset
                    ),
                  ]
                : [];
              return new Ai(r, o);
            },
            function (t) {
              var n = t.toString(),
                r = t.toString().split('Error: ');
              return (
                r.length > 1 && (n = r[1]),
                Gr(n, '.') && (n = n.substr(0, n.length - 1)),
                new Ai({}, [
                  _i(
                    'json.schema.nocontent',
                    "Unable to load schema from '{0}': {1}.",
                    Ti(e),
                    n
                  ),
                ])
              );
            }
          );
        }),
        (e.prototype.resolveSchemaContent = function (e, t, n) {
          var r = this,
            i = e.errors.slice(0),
            o = e.schema;
          if (o.$schema) {
            var s = wi(o.$schema);
            if ('http://json-schema.org/draft-03/schema' === s)
              return this.promise.resolve(
                new xi({}, [
                  _i(
                    'json.schema.draft03.notsupported',
                    'Draft-03 schemas are not supported.'
                  ),
                ])
              );
            'https://json-schema.org/draft/2019-09/schema' === s &&
              i.push(
                _i(
                  'json.schema.draft201909.notsupported',
                  'Draft 2019-09 schemas are not yet fully supported.'
                )
              );
          }
          var a = this.contextService,
            u = function (e, t, n, r) {
              var o = r ? decodeURIComponent(r) : void 0,
                s = (function (e, t) {
                  if (!t) return e;
                  var n = e;
                  return (
                    '/' === t[0] && (t = t.substr(1)),
                    t.split('/').some(function (e) {
                      return !(n = n[e]);
                    }),
                    n
                  );
                })(t, o);
              if (s)
                for (var a in s)
                  s.hasOwnProperty(a) && !e.hasOwnProperty(a) && (e[a] = s[a]);
              else
                i.push(
                  _i(
                    'json.schema.invalidref',
                    "$ref '{0}' in '{1}' can not be resolved.",
                    o,
                    n
                  )
                );
            },
            l = function (e, t, n, o, s) {
              a && !/^\w+:\/\/.*/.test(t) && (t = a.resolveRelativePath(t, o)),
                (t = wi(t));
              var l = r.getOrAddSchemaHandle(t);
              return l.getUnresolvedSchema().then(function (r) {
                if (((s[t] = !0), r.errors.length)) {
                  var o = n ? t + '#' + n : t;
                  i.push(
                    _i(
                      'json.schema.problemloadingref',
                      "Problems loading reference '{0}': {1}",
                      o,
                      r.errors[0]
                    )
                  );
                }
                return u(e, r.schema, t, n), c(e, r.schema, t, l.dependencies);
              });
            },
            c = function (e, t, n, i) {
              if (!e || 'object' != typeof e) return Promise.resolve(null);
              for (
                var o = [e],
                  s = [],
                  a = [],
                  c = function (e) {
                    for (var r = []; e.$ref; ) {
                      var s = e.$ref,
                        c = s.split('#', 2);
                      if ((delete e.$ref, c[0].length > 0))
                        return void a.push(l(e, c[0], c[1], n, i));
                      -1 === r.indexOf(s) && (u(e, t, n, c[1]), r.push(s));
                    }
                    !(function () {
                      for (var e = [], t = 0; t < arguments.length; t++)
                        e[t] = arguments[t];
                      for (var n = 0, r = e; n < r.length; n++) {
                        var i = r[n];
                        'object' == typeof i && o.push(i);
                      }
                    })(
                      e.items,
                      e.additionalItems,
                      e.additionalProperties,
                      e.not,
                      e.contains,
                      e.propertyNames,
                      e.if,
                      e.then,
                      e.else
                    ),
                      (function () {
                        for (var e = [], t = 0; t < arguments.length; t++)
                          e[t] = arguments[t];
                        for (var n = 0, r = e; n < r.length; n++) {
                          var i = r[n];
                          if ('object' == typeof i)
                            for (var s in i) {
                              var a = i[s];
                              'object' == typeof a && o.push(a);
                            }
                        }
                      })(
                        e.definitions,
                        e.properties,
                        e.patternProperties,
                        e.dependencies
                      ),
                      (function () {
                        for (var e = [], t = 0; t < arguments.length; t++)
                          e[t] = arguments[t];
                        for (var n = 0, r = e; n < r.length; n++) {
                          var i = r[n];
                          if (Array.isArray(i))
                            for (var s = 0, a = i; s < a.length; s++) {
                              var u = a[s];
                              'object' == typeof u && o.push(u);
                            }
                        }
                      })(e.anyOf, e.allOf, e.oneOf, e.items);
                  };
                o.length;

              ) {
                var h = o.pop();
                s.indexOf(h) >= 0 || (s.push(h), c(h));
              }
              return r.promise.all(a);
            };
          return c(o, o, t, n).then(function (e) {
            return new xi(o, i);
          });
        }),
        (e.prototype.getSchemaForResource = function (e, t) {
          if (t && t.root && 'object' === t.root.type) {
            var n = t.root.properties.filter(function (e) {
              return (
                '$schema' === e.keyNode.value &&
                e.valueNode &&
                'string' === e.valueNode.type
              );
            });
            if (n.length > 0) {
              var r = n[0].valueNode;
              if (r && 'string' === r.type) {
                var i = Wr(r);
                if (
                  (i &&
                    (function (e, t) {
                      if (e.length < '.'.length) return !1;
                      for (var n = 0; n < '.'.length; n++)
                        if (e[n] !== '.'[n]) return !1;
                      return !0;
                    })(i) &&
                    this.contextService &&
                    (i = this.contextService.resolveRelativePath(i, e)),
                  i)
                ) {
                  var o = wi(i);
                  return this.getOrAddSchemaHandle(o).getResolvedSchema();
                }
              }
            }
          }
          if (
            this.cachedSchemaForResource &&
            this.cachedSchemaForResource.resource === e
          )
            return this.cachedSchemaForResource.resolvedSchema;
          for (
            var s = Object.create(null),
              a = [],
              u = 0,
              l = this.filePatternAssociations;
            u < l.length;
            u++
          ) {
            var c = l[u];
            if (c.matchesPattern(e))
              for (var h = 0, f = c.getURIs(); h < f.length; h++) {
                var d = f[h];
                s[d] || (a.push(d), (s[d] = !0));
              }
          }
          var m =
            a.length > 0
              ? this.createCombinedSchema(e, a).getResolvedSchema()
              : this.promise.resolve(void 0);
          return (
            (this.cachedSchemaForResource = { resource: e, resolvedSchema: m }),
            m
          );
        }),
        (e.prototype.createCombinedSchema = function (e, t) {
          if (1 === t.length) return this.getOrAddSchemaHandle(t[0]);
          var n = 'schemaservice://combinedSchema/' + encodeURIComponent(e),
            r = {
              allOf: t.map(function (e) {
                return { $ref: e };
              }),
            };
          return this.addSchemaHandle(n, r);
        }),
        (e.prototype.getMatchingSchemas = function (e, t, n) {
          if (n) {
            var r = n.id || 'schemaservice://untitled/matchingSchemas/' + Li++;
            return this.resolveSchemaContent(new Ai(n), r, {}).then(function (
              e
            ) {
              return t.getMatchingSchemas(e.schema).filter(function (e) {
                return !e.inverted;
              });
            });
          }
          return this.getSchemaForResource(e.uri, t).then(function (e) {
            return e
              ? t.getMatchingSchemas(e.schema).filter(function (e) {
                  return !e.inverted;
                })
              : [];
          });
        }),
        e
      );
    })(),
    Li = 0;
  function wi(e) {
    try {
      return ci.parse(e).toString();
    } catch (t) {
      return e;
    }
  }
  function Ti(e) {
    try {
      var t = ci.parse(e);
      if ('file' === t.scheme) return t.fsPath;
    } catch (e) {}
    return e;
  }
  var ki = Ar(),
    Oi = (function () {
      function e(e, t) {
        (this.jsonSchemaService = e),
          (this.promise = t),
          (this.validationEnabled = !0);
      }
      return (
        (e.prototype.configure = function (e) {
          e &&
            ((this.validationEnabled = e.validate),
            (this.commentSeverity = e.allowComments ? void 0 : yn.Error));
        }),
        (e.prototype.doValidation = function (e, t, n, r) {
          var i = this;
          if (!this.validationEnabled) return this.promise.resolve([]);
          var o = [],
            s = {},
            a = function (e) {
              var t =
                e.range.start.line +
                ' ' +
                e.range.start.character +
                ' ' +
                e.message;
              s[t] || ((s[t] = !0), o.push(e));
            },
            u = function (r) {
              var s = n ? Ri(n.trailingCommas) : yn.Error,
                u = n ? Ri(n.comments) : i.commentSeverity;
              if (r) {
                if (r.errors.length && t.root) {
                  var l = t.root,
                    c = 'object' === l.type ? l.properties[0] : void 0;
                  if (c && '$schema' === c.keyNode.value) {
                    var h = c.valueNode || c,
                      f = ln.create(
                        e.positionAt(h.offset),
                        e.positionAt(h.offset + h.length)
                      );
                    a(
                      Cn.create(
                        f,
                        r.errors[0],
                        yn.Warning,
                        gr.SchemaResolveError
                      )
                    );
                  } else
                    (f = ln.create(
                      e.positionAt(l.offset),
                      e.positionAt(l.offset + 1)
                    )),
                      a(
                        Cn.create(
                          f,
                          r.errors[0],
                          yn.Warning,
                          gr.SchemaResolveError
                        )
                      );
                } else {
                  var d = t.validate(e, r.schema);
                  d && d.forEach(a);
                }
                Mi(r.schema) && (u = void 0), Pi(r.schema) && (s = void 0);
              }
              for (var m = 0, g = t.syntaxErrors; m < g.length; m++) {
                var p = g[m];
                if (p.code === gr.TrailingComma) {
                  if ('number' != typeof s) continue;
                  p.severity = s;
                }
                a(p);
              }
              if ('number' == typeof u) {
                var v = ki(
                  'InvalidCommentToken',
                  'Comments are not permitted in JSON.'
                );
                t.comments.forEach(function (e) {
                  a(Cn.create(e, v, u, gr.CommentNotPermitted));
                });
              }
              return o;
            };
          if (r) {
            var l = r.id || 'schemaservice://untitled/' + Ii++;
            return this.jsonSchemaService
              .resolveSchemaContent(new Ai(r), l, {})
              .then(function (e) {
                return u(e);
              });
          }
          return this.jsonSchemaService
            .getSchemaForResource(e.uri, t)
            .then(function (e) {
              return u(e);
            });
        }),
        e
      );
    })(),
    Ii = 0;
  function Mi(e) {
    if (e && 'object' == typeof e) {
      if (Dn(e.allowComments)) return e.allowComments;
      if (e.allOf)
        for (var t = 0, n = e.allOf; t < n.length; t++) {
          var r = Mi(n[t]);
          if (Dn(r)) return r;
        }
    }
  }
  function Pi(e) {
    if (e && 'object' == typeof e) {
      if (Dn(e.allowTrailingCommas)) return e.allowTrailingCommas;
      var t = e;
      if (Dn(t.allowsTrailingCommas)) return t.allowsTrailingCommas;
      if (e.allOf)
        for (var n = 0, r = e.allOf; n < r.length; n++) {
          var i = Pi(r[n]);
          if (Dn(i)) return i;
        }
    }
  }
  function Ri(e) {
    switch (e) {
      case 'error':
        return yn.Error;
      case 'warning':
        return yn.Warning;
      case 'ignore':
        return;
    }
  }
  function Di(e) {
    return e < 48
      ? 0
      : e <= 57
      ? e - 48
      : (e < 97 && (e += 32), e >= 97 && e <= 102 ? e - 97 + 10 : 0);
  }
  function Fi(e) {
    if ('#' === e[0])
      switch (e.length) {
        case 4:
          return {
            red: (17 * Di(e.charCodeAt(1))) / 255,
            green: (17 * Di(e.charCodeAt(2))) / 255,
            blue: (17 * Di(e.charCodeAt(3))) / 255,
            alpha: 1,
          };
        case 5:
          return {
            red: (17 * Di(e.charCodeAt(1))) / 255,
            green: (17 * Di(e.charCodeAt(2))) / 255,
            blue: (17 * Di(e.charCodeAt(3))) / 255,
            alpha: (17 * Di(e.charCodeAt(4))) / 255,
          };
        case 7:
          return {
            red: (16 * Di(e.charCodeAt(1)) + Di(e.charCodeAt(2))) / 255,
            green: (16 * Di(e.charCodeAt(3)) + Di(e.charCodeAt(4))) / 255,
            blue: (16 * Di(e.charCodeAt(5)) + Di(e.charCodeAt(6))) / 255,
            alpha: 1,
          };
        case 9:
          return {
            red: (16 * Di(e.charCodeAt(1)) + Di(e.charCodeAt(2))) / 255,
            green: (16 * Di(e.charCodeAt(3)) + Di(e.charCodeAt(4))) / 255,
            blue: (16 * Di(e.charCodeAt(5)) + Di(e.charCodeAt(6))) / 255,
            alpha: (16 * Di(e.charCodeAt(7)) + Di(e.charCodeAt(8))) / 255,
          };
      }
  }
  var ji = (function () {
    function e(e) {
      this.schemaService = e;
    }
    return (
      (e.prototype.findDocumentSymbols = function (e, t, n) {
        var r = this;
        void 0 === n && (n = { resultLimit: Number.MAX_VALUE });
        var i = t.root;
        if (!i) return [];
        var o = n.resultLimit || Number.MAX_VALUE,
          s = e.uri;
        if (
          ('vscode://defaultsettings/keybindings.json' === s ||
            Gr(s.toLowerCase(), '/user/keybindings.json')) &&
          'array' === i.type
        ) {
          for (var a = [], u = 0, l = i.items; u < l.length; u++) {
            var c = l[u];
            if ('object' === c.type)
              for (var h = 0, f = c.properties; h < f.length; h++) {
                var d = f[h];
                if ('key' === d.keyNode.value && d.valueNode) {
                  var m = cn.create(e.uri, Ui(e, c));
                  if (
                    (a.push({
                      name: Wr(d.valueNode),
                      kind: Xn.Function,
                      location: m,
                    }),
                    --o <= 0)
                  )
                    return (
                      n &&
                        n.onResultLimitExceeded &&
                        n.onResultLimitExceeded(s),
                      a
                    );
                }
              }
          }
          return a;
        }
        for (
          var g = [{ node: i, containerName: '' }],
            p = 0,
            v = !1,
            y = [],
            b = function (t, n) {
              'array' === t.type
                ? t.items.forEach(function (e) {
                    e && g.push({ node: e, containerName: n });
                  })
                : 'object' === t.type &&
                  t.properties.forEach(function (t) {
                    var i = t.valueNode;
                    if (i)
                      if (o > 0) {
                        o--;
                        var s = cn.create(e.uri, Ui(e, t)),
                          a = n ? n + '.' + t.keyNode.value : t.keyNode.value;
                        y.push({
                          name: r.getKeyLabel(t),
                          kind: r.getSymbolKind(i.type),
                          location: s,
                          containerName: n,
                        }),
                          g.push({ node: i, containerName: a });
                      } else v = !0;
                  });
            };
          p < g.length;

        ) {
          var C = g[p++];
          b(C.node, C.containerName);
        }
        return (
          v && n && n.onResultLimitExceeded && n.onResultLimitExceeded(s), y
        );
      }),
      (e.prototype.findDocumentSymbols2 = function (e, t, n) {
        var r = this;
        void 0 === n && (n = { resultLimit: Number.MAX_VALUE });
        var i = t.root;
        if (!i) return [];
        var o = n.resultLimit || Number.MAX_VALUE,
          s = e.uri;
        if (
          ('vscode://defaultsettings/keybindings.json' === s ||
            Gr(s.toLowerCase(), '/user/keybindings.json')) &&
          'array' === i.type
        ) {
          for (var a = [], u = 0, l = i.items; u < l.length; u++) {
            var c = l[u];
            if ('object' === c.type)
              for (var h = 0, f = c.properties; h < f.length; h++) {
                var d = f[h];
                if ('key' === d.keyNode.value && d.valueNode) {
                  var m = Ui(e, c),
                    g = Ui(e, d.keyNode);
                  if (
                    (a.push({
                      name: Wr(d.valueNode),
                      kind: Xn.Function,
                      range: m,
                      selectionRange: g,
                    }),
                    --o <= 0)
                  )
                    return (
                      n &&
                        n.onResultLimitExceeded &&
                        n.onResultLimitExceeded(s),
                      a
                    );
                }
              }
          }
          return a;
        }
        for (
          var p = [],
            v = [{ node: i, result: p }],
            y = 0,
            b = !1,
            C = function (t, n) {
              'array' === t.type
                ? t.items.forEach(function (t, i) {
                    if (t)
                      if (o > 0) {
                        o--;
                        var s = Ui(e, t),
                          a = s,
                          u = {
                            name: String(i),
                            kind: r.getSymbolKind(t.type),
                            range: s,
                            selectionRange: a,
                            children: [],
                          };
                        n.push(u), v.push({ result: u.children, node: t });
                      } else b = !0;
                  })
                : 'object' === t.type &&
                  t.properties.forEach(function (t) {
                    var i = t.valueNode;
                    if (i)
                      if (o > 0) {
                        o--;
                        var s = Ui(e, t),
                          a = Ui(e, t.keyNode),
                          u = {
                            name: r.getKeyLabel(t),
                            kind: r.getSymbolKind(i.type),
                            range: s,
                            selectionRange: a,
                            children: [],
                          };
                        n.push(u), v.push({ result: u.children, node: i });
                      } else b = !0;
                  });
            };
          y < v.length;

        ) {
          var _ = v[y++];
          C(_.node, _.result);
        }
        return (
          b && n && n.onResultLimitExceeded && n.onResultLimitExceeded(s), p
        );
      }),
      (e.prototype.getSymbolKind = function (e) {
        switch (e) {
          case 'object':
            return Xn.Module;
          case 'string':
            return Xn.String;
          case 'number':
            return Xn.Number;
          case 'array':
            return Xn.Array;
          case 'boolean':
            return Xn.Boolean;
          default:
            return Xn.Variable;
        }
      }),
      (e.prototype.getKeyLabel = function (e) {
        var t = e.keyNode.value;
        return (
          t && (t = t.replace(/[\n]/g, '↵')), t && t.trim() ? t : '"' + t + '"'
        );
      }),
      (e.prototype.findDocumentColors = function (e, t, n) {
        return this.schemaService
          .getSchemaForResource(e.uri, t)
          .then(function (r) {
            var i = [];
            if (r)
              for (
                var o =
                    n && 'number' == typeof n.resultLimit
                      ? n.resultLimit
                      : Number.MAX_VALUE,
                  s = {},
                  a = 0,
                  u = t.getMatchingSchemas(r.schema);
                a < u.length;
                a++
              ) {
                var l = u[a];
                if (
                  !l.inverted &&
                  l.schema &&
                  ('color' === l.schema.format ||
                    'color-hex' === l.schema.format) &&
                  l.node &&
                  'string' === l.node.type
                ) {
                  var c = String(l.node.offset);
                  if (!s[c]) {
                    var h = Fi(Wr(l.node));
                    if (h) {
                      var f = Ui(e, l.node);
                      i.push({ color: h, range: f });
                    }
                    if (((s[c] = !0), --o <= 0))
                      return (
                        n &&
                          n.onResultLimitExceeded &&
                          n.onResultLimitExceeded(e.uri),
                        i
                      );
                  }
                }
              }
            return i;
          });
      }),
      (e.prototype.getColorPresentations = function (e, t, n, r) {
        var i,
          o = [],
          s = Math.round(255 * n.red),
          a = Math.round(255 * n.green),
          u = Math.round(255 * n.blue);
        function l(e) {
          var t = e.toString(16);
          return 2 !== t.length ? '0' + t : t;
        }
        return (
          (i =
            1 === n.alpha
              ? '#' + l(s) + l(a) + l(u)
              : '#' + l(s) + l(a) + l(u) + l(Math.round(255 * n.alpha))),
          o.push({ label: i, textEdit: Sn.replace(r, JSON.stringify(i)) }),
          o
        );
      }),
      e
    );
  })();
  function Ui(e, t) {
    return ln.create(e.positionAt(t.offset), e.positionAt(t.offset + t.length));
  }
  var Vi = Ar(),
    $i = {
      schemaAssociations: [],
      schemas: {
        'http://json-schema.org/schema#': {
          $ref: 'http://json-schema.org/draft-07/schema#',
        },
        'http://json-schema.org/draft-04/schema#': {
          title: Vi(
            'schema.json',
            'Describes a JSON file using a schema. See json-schema.org for more info.'
          ),
          $schema: 'http://json-schema.org/draft-04/schema#',
          definitions: {
            schemaArray: { type: 'array', minItems: 1, items: { $ref: '#' } },
            positiveInteger: { type: 'integer', minimum: 0 },
            positiveIntegerDefault0: {
              allOf: [
                { $ref: '#/definitions/positiveInteger' },
                { default: 0 },
              ],
            },
            simpleTypes: {
              type: 'string',
              enum: [
                'array',
                'boolean',
                'integer',
                'null',
                'number',
                'object',
                'string',
              ],
            },
            stringArray: {
              type: 'array',
              items: { type: 'string' },
              minItems: 1,
              uniqueItems: !0,
            },
          },
          type: 'object',
          properties: {
            id: { type: 'string', format: 'uri' },
            $schema: { type: 'string', format: 'uri' },
            title: { type: 'string' },
            description: { type: 'string' },
            default: {},
            multipleOf: { type: 'number', minimum: 0, exclusiveMinimum: !0 },
            maximum: { type: 'number' },
            exclusiveMaximum: { type: 'boolean', default: !1 },
            minimum: { type: 'number' },
            exclusiveMinimum: { type: 'boolean', default: !1 },
            maxLength: { allOf: [{ $ref: '#/definitions/positiveInteger' }] },
            minLength: {
              allOf: [{ $ref: '#/definitions/positiveIntegerDefault0' }],
            },
            pattern: { type: 'string', format: 'regex' },
            additionalItems: {
              anyOf: [{ type: 'boolean' }, { $ref: '#' }],
              default: {},
            },
            items: {
              anyOf: [{ $ref: '#' }, { $ref: '#/definitions/schemaArray' }],
              default: {},
            },
            maxItems: { allOf: [{ $ref: '#/definitions/positiveInteger' }] },
            minItems: {
              allOf: [{ $ref: '#/definitions/positiveIntegerDefault0' }],
            },
            uniqueItems: { type: 'boolean', default: !1 },
            maxProperties: {
              allOf: [{ $ref: '#/definitions/positiveInteger' }],
            },
            minProperties: {
              allOf: [{ $ref: '#/definitions/positiveIntegerDefault0' }],
            },
            required: { allOf: [{ $ref: '#/definitions/stringArray' }] },
            additionalProperties: {
              anyOf: [{ type: 'boolean' }, { $ref: '#' }],
              default: {},
            },
            definitions: {
              type: 'object',
              additionalProperties: { $ref: '#' },
              default: {},
            },
            properties: {
              type: 'object',
              additionalProperties: { $ref: '#' },
              default: {},
            },
            patternProperties: {
              type: 'object',
              additionalProperties: { $ref: '#' },
              default: {},
            },
            dependencies: {
              type: 'object',
              additionalProperties: {
                anyOf: [{ $ref: '#' }, { $ref: '#/definitions/stringArray' }],
              },
            },
            enum: { type: 'array', minItems: 1, uniqueItems: !0 },
            type: {
              anyOf: [
                { $ref: '#/definitions/simpleTypes' },
                {
                  type: 'array',
                  items: { $ref: '#/definitions/simpleTypes' },
                  minItems: 1,
                  uniqueItems: !0,
                },
              ],
            },
            format: {
              anyOf: [
                {
                  type: 'string',
                  enum: [
                    'date-time',
                    'uri',
                    'email',
                    'hostname',
                    'ipv4',
                    'ipv6',
                    'regex',
                  ],
                },
                { type: 'string' },
              ],
            },
            allOf: { allOf: [{ $ref: '#/definitions/schemaArray' }] },
            anyOf: { allOf: [{ $ref: '#/definitions/schemaArray' }] },
            oneOf: { allOf: [{ $ref: '#/definitions/schemaArray' }] },
            not: { allOf: [{ $ref: '#' }] },
          },
          dependencies: {
            exclusiveMaximum: ['maximum'],
            exclusiveMinimum: ['minimum'],
          },
          default: {},
        },
        'http://json-schema.org/draft-07/schema#': {
          title: Vi(
            'schema.json',
            'Describes a JSON file using a schema. See json-schema.org for more info.'
          ),
          definitions: {
            schemaArray: { type: 'array', minItems: 1, items: { $ref: '#' } },
            nonNegativeInteger: { type: 'integer', minimum: 0 },
            nonNegativeIntegerDefault0: {
              allOf: [
                { $ref: '#/definitions/nonNegativeInteger' },
                { default: 0 },
              ],
            },
            simpleTypes: {
              enum: [
                'array',
                'boolean',
                'integer',
                'null',
                'number',
                'object',
                'string',
              ],
            },
            stringArray: {
              type: 'array',
              items: { type: 'string' },
              uniqueItems: !0,
              default: [],
            },
          },
          type: ['object', 'boolean'],
          properties: {
            $id: { type: 'string', format: 'uri-reference' },
            $schema: { type: 'string', format: 'uri' },
            $ref: { type: 'string', format: 'uri-reference' },
            $comment: { type: 'string' },
            title: { type: 'string' },
            description: { type: 'string' },
            default: !0,
            readOnly: { type: 'boolean', default: !1 },
            examples: { type: 'array', items: !0 },
            multipleOf: { type: 'number', exclusiveMinimum: 0 },
            maximum: { type: 'number' },
            exclusiveMaximum: { type: 'number' },
            minimum: { type: 'number' },
            exclusiveMinimum: { type: 'number' },
            maxLength: { $ref: '#/definitions/nonNegativeInteger' },
            minLength: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
            pattern: { type: 'string', format: 'regex' },
            additionalItems: { $ref: '#' },
            items: {
              anyOf: [{ $ref: '#' }, { $ref: '#/definitions/schemaArray' }],
              default: !0,
            },
            maxItems: { $ref: '#/definitions/nonNegativeInteger' },
            minItems: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
            uniqueItems: { type: 'boolean', default: !1 },
            contains: { $ref: '#' },
            maxProperties: { $ref: '#/definitions/nonNegativeInteger' },
            minProperties: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
            required: { $ref: '#/definitions/stringArray' },
            additionalProperties: { $ref: '#' },
            definitions: {
              type: 'object',
              additionalProperties: { $ref: '#' },
              default: {},
            },
            properties: {
              type: 'object',
              additionalProperties: { $ref: '#' },
              default: {},
            },
            patternProperties: {
              type: 'object',
              additionalProperties: { $ref: '#' },
              propertyNames: { format: 'regex' },
              default: {},
            },
            dependencies: {
              type: 'object',
              additionalProperties: {
                anyOf: [{ $ref: '#' }, { $ref: '#/definitions/stringArray' }],
              },
            },
            propertyNames: { $ref: '#' },
            const: !0,
            enum: { type: 'array', items: !0, minItems: 1, uniqueItems: !0 },
            type: {
              anyOf: [
                { $ref: '#/definitions/simpleTypes' },
                {
                  type: 'array',
                  items: { $ref: '#/definitions/simpleTypes' },
                  minItems: 1,
                  uniqueItems: !0,
                },
              ],
            },
            format: { type: 'string' },
            contentMediaType: { type: 'string' },
            contentEncoding: { type: 'string' },
            if: { $ref: '#' },
            then: { $ref: '#' },
            else: { $ref: '#' },
            allOf: { $ref: '#/definitions/schemaArray' },
            anyOf: { $ref: '#/definitions/schemaArray' },
            oneOf: { $ref: '#/definitions/schemaArray' },
            not: { $ref: '#' },
          },
          default: !0,
        },
      },
    },
    Wi = {
      id: Vi('schema.json.id', 'A unique identifier for the schema.'),
      $schema: Vi(
        'schema.json.$schema',
        'The schema to verify this document against.'
      ),
      title: Vi('schema.json.title', 'A descriptive title of the element.'),
      description: Vi(
        'schema.json.description',
        'A long description of the element. Used in hover menus and suggestions.'
      ),
      default: Vi(
        'schema.json.default',
        'A default value. Used by suggestions.'
      ),
      multipleOf: Vi(
        'schema.json.multipleOf',
        'A number that should cleanly divide the current value (i.e. have no remainder).'
      ),
      maximum: Vi(
        'schema.json.maximum',
        'The maximum numerical value, inclusive by default.'
      ),
      exclusiveMaximum: Vi(
        'schema.json.exclusiveMaximum',
        'Makes the maximum property exclusive.'
      ),
      minimum: Vi(
        'schema.json.minimum',
        'The minimum numerical value, inclusive by default.'
      ),
      exclusiveMinimum: Vi(
        'schema.json.exclusiveMininum',
        'Makes the minimum property exclusive.'
      ),
      maxLength: Vi('schema.json.maxLength', 'The maximum length of a string.'),
      minLength: Vi('schema.json.minLength', 'The minimum length of a string.'),
      pattern: Vi(
        'schema.json.pattern',
        'A regular expression to match the string against. It is not implicitly anchored.'
      ),
      additionalItems: Vi(
        'schema.json.additionalItems',
        'For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail.'
      ),
      items: Vi(
        'schema.json.items',
        'For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.'
      ),
      maxItems: Vi(
        'schema.json.maxItems',
        'The maximum number of items that can be inside an array. Inclusive.'
      ),
      minItems: Vi(
        'schema.json.minItems',
        'The minimum number of items that can be inside an array. Inclusive.'
      ),
      uniqueItems: Vi(
        'schema.json.uniqueItems',
        'If all of the items in the array must be unique. Defaults to false.'
      ),
      maxProperties: Vi(
        'schema.json.maxProperties',
        'The maximum number of properties an object can have. Inclusive.'
      ),
      minProperties: Vi(
        'schema.json.minProperties',
        'The minimum number of properties an object can have. Inclusive.'
      ),
      required: Vi(
        'schema.json.required',
        'An array of strings that lists the names of all properties required on this object.'
      ),
      additionalProperties: Vi(
        'schema.json.additionalProperties',
        "Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail."
      ),
      definitions: Vi(
        'schema.json.definitions',
        'Not used for validation. Place subschemas here that you wish to reference inline with $ref.'
      ),
      properties: Vi(
        'schema.json.properties',
        'A map of property names to schemas for each property.'
      ),
      patternProperties: Vi(
        'schema.json.patternProperties',
        'A map of regular expressions on property names to schemas for matching properties.'
      ),
      dependencies: Vi(
        'schema.json.dependencies',
        'A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.'
      ),
      enum: Vi('schema.json.enum', 'The set of literal values that are valid.'),
      type: Vi(
        'schema.json.type',
        'Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.'
      ),
      format: Vi(
        'schema.json.format',
        'Describes the format expected for the value.'
      ),
      allOf: Vi(
        'schema.json.allOf',
        'An array of schemas, all of which must match.'
      ),
      anyOf: Vi(
        'schema.json.anyOf',
        'An array of schemas, where at least one must match.'
      ),
      oneOf: Vi(
        'schema.json.oneOf',
        'An array of schemas, exactly one of which must match.'
      ),
      not: Vi('schema.json.not', 'A schema which must not match.'),
      $id: Vi('schema.json.$id', 'A unique identifier for the schema.'),
      $ref: Vi(
        'schema.json.$ref',
        'Reference a definition hosted on any location.'
      ),
      $comment: Vi(
        'schema.json.$comment',
        'Comments from schema authors to readers or maintainers of the schema.'
      ),
      readOnly: Vi(
        'schema.json.readOnly',
        'Indicates that the value of the instance is managed exclusively by the owning authority.'
      ),
      examples: Vi(
        'schema.json.examples',
        'Sample JSON values associated with a particular schema, for the purpose of illustrating usage.'
      ),
      contains: Vi(
        'schema.json.contains',
        'An array instance is valid against "contains" if at least one of its elements is valid against the given schema.'
      ),
      propertyNames: Vi(
        'schema.json.propertyNames',
        'If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.'
      ),
      const: Vi(
        'schema.json.const',
        'An instance validates successfully against this keyword if its value is equal to the value of the keyword.'
      ),
      contentMediaType: Vi(
        'schema.json.contentMediaType',
        'Describes the media type of a string property.'
      ),
      contentEncoding: Vi(
        'schema.json.contentEncoding',
        'Describes the content encoding of a string property.'
      ),
      if: Vi(
        'schema.json.if',
        'The validation outcome of the "if" subschema controls which of the "then" or "else" keywords are evaluated.'
      ),
      then: Vi(
        'schema.json.then',
        'The "if" subschema is used for validation when the "if" subschema succeeds.'
      ),
      else: Vi(
        'schema.json.else',
        'The "else" subschema is used for validation when the "if" subschema fails.'
      ),
    };
  for (var qi in $i.schemas) {
    var Ki = $i.schemas[qi];
    for (var Bi in Ki.properties) {
      var Hi = Ki.properties[Bi];
      'boolean' == typeof Hi && (Hi = Ki.properties[Bi] = {});
      var Yi = Wi[Bi];
      Yi
        ? (Hi.description = Yi)
        : console.log(Bi + ": localize('schema.json." + Bi + '\', "")');
    }
  }
  function Gi(e, t) {
    var n = [],
      r = [],
      i = [],
      o = -1,
      s = wn(e.getText(), !1),
      a = s.scan();
    function u(e) {
      n.push(e), r.push(i.length);
    }
    for (; 17 !== a; ) {
      switch (a) {
        case 1:
        case 3:
          var l = {
            startLine: (f = e.positionAt(s.getTokenOffset()).line),
            endLine: f,
            kind: 1 === a ? 'object' : 'array',
          };
          i.push(l);
          break;
        case 2:
        case 4:
          var c = 2 === a ? 'object' : 'array';
          if (i.length > 0 && i[i.length - 1].kind === c) {
            l = i.pop();
            var h = e.positionAt(s.getTokenOffset()).line;
            l &&
              h > l.startLine + 1 &&
              o !== l.startLine &&
              ((l.endLine = h - 1), u(l), (o = l.startLine));
          }
          break;
        case 13:
          var f = e.positionAt(s.getTokenOffset()).line,
            d = e.positionAt(s.getTokenOffset() + s.getTokenLength()).line;
          1 === s.getTokenError() && f + 1 < e.lineCount
            ? s.setPosition(e.offsetAt(un.create(f + 1, 0)))
            : f < d &&
              (u({ startLine: f, endLine: d, kind: gn.Comment }), (o = f));
          break;
        case 12:
          var m = e
            .getText()
            .substr(s.getTokenOffset(), s.getTokenLength())
            .match(/^\/\/\s*#(region\b)|(endregion\b)/);
          if (m)
            if (((h = e.positionAt(s.getTokenOffset()).line), m[1]))
              (l = { startLine: h, endLine: h, kind: gn.Region }), i.push(l);
            else {
              for (var g = i.length - 1; g >= 0 && i[g].kind !== gn.Region; )
                g--;
              g >= 0 &&
                ((l = i[g]),
                (i.length = g),
                h > l.startLine &&
                  o !== l.startLine &&
                  ((l.endLine = h), u(l), (o = l.startLine)));
            }
      }
      a = s.scan();
    }
    var p = t && t.rangeLimit;
    if ('number' != typeof p || n.length <= p) return n;
    t && t.onRangeLimitExceeded && t.onRangeLimitExceeded(e.uri);
    for (var v = [], y = 0, b = r; y < b.length; y++)
      (A = b[y]) < 30 && (v[A] = (v[A] || 0) + 1);
    var C = 0,
      _ = 0;
    for (g = 0; g < v.length; g++) {
      var S = v[g];
      if (S) {
        if (S + C > p) {
          _ = g;
          break;
        }
        C += S;
      }
    }
    var E = [];
    for (g = 0; g < n.length; g++) {
      var A;
      'number' == typeof (A = r[g]) &&
        (A < _ || (A === _ && C++ < p)) &&
        E.push(n[g]);
    }
    return E;
  }
  function zi(e, t, n) {
    function r(t, n) {
      return ln.create(e.positionAt(t), e.positionAt(n));
    }
    var i = wn(e.getText(), !0);
    function o(e, t) {
      return (
        i.setPosition(e),
        i.scan() === t ? i.getTokenOffset() + i.getTokenLength() : -1
      );
    }
    return t.map(function (t) {
      for (var i = e.offsetAt(t), s = n.getNodeFromOffset(i, !0), a = []; s; ) {
        switch (s.type) {
          case 'string':
          case 'object':
          case 'array':
            var u = s.offset + 1,
              l = s.offset + s.length - 1;
            u < l && i >= u && i <= l && a.push(r(u, l)),
              a.push(r(s.offset, s.offset + s.length));
            break;
          case 'number':
          case 'boolean':
          case 'null':
          case 'property':
            a.push(r(s.offset, s.offset + s.length));
        }
        if ('property' === s.type || (s.parent && 'array' === s.parent.type)) {
          var c = o(s.offset + s.length, 5);
          -1 !== c && a.push(r(s.offset, c));
        }
        s = s.parent;
      }
      for (var h = void 0, f = a.length - 1; f >= 0; f--)
        h = lr.create(a[f], h);
      return h || (h = lr.create(ln.create(t, t))), h;
    });
  }
  function Ji(e, t, n) {
    var r = e.offsetAt(t),
      i = n.getNodeFromOffset(r, !0);
    if (
      !i ||
      !(function (e) {
        return (
          ('string' === e.type &&
            e.parent &&
            'property' === e.parent.type &&
            e.parent.valueNode === e &&
            '$ref' === e.parent.keyNode.value) ||
          !1
        );
      })(i)
    )
      return Promise.resolve([]);
    var o = i.parent.valueNode,
      s = (function (e, t) {
        var n = (function (e) {
          return '#' === e
            ? []
            : '#' !== e[0] || '/' !== e[1]
            ? null
            : e.substring(2).split(/\//).map(Xi);
        })(t);
        return n ? Zi(n, e.root) : null;
      })(n, o.value);
    if (!s) return Promise.resolve([]);
    var a = {
      targetUri: e.uri,
      originSelectionRange: Qi(e, o),
      targetRange: Qi(e, s),
      targetSelectionRange: Qi(e, s),
    };
    return Promise.resolve([a]);
  }
  function Qi(e, t) {
    return ln.create(e.positionAt(t.offset), e.positionAt(t.offset + t.length));
  }
  function Zi(e, t) {
    if (!t) return null;
    if (0 === e.length) return t;
    var n = e.shift();
    if (t && 'object' === t.type) {
      var r = t.properties.find(function (e) {
        return e.keyNode.value === n;
      });
      return r ? Zi(e, r.valueNode) : null;
    }
    if (t && 'array' === t.type && n.match(/^(0|[1-9][0-9]*)$/)) {
      var i = Number.parseInt(n),
        o = t.items[i];
      return o ? Zi(e, o) : null;
    }
    return null;
  }
  function Xi(e) {
    return e.replace(/~1/g, '/').replace(/~0/g, '~');
  }
  function eo(e) {
    var t = e.promiseConstructor || Promise,
      n = new Ni(e.schemaRequestService, e.workspaceContext, t);
    n.setSchemaContributions($i);
    var r = new Qr(n, e.contributions, t, e.clientCapabilities),
      i = new Zr(n, e.contributions, t),
      o = new ji(n),
      s = new Oi(n, t);
    return {
      configure: function (e) {
        n.clearExternalSchemas(),
          e.schemas &&
            e.schemas.forEach(function (e) {
              n.registerExternalSchema(e.uri, e.fileMatch, e.schema);
            }),
          s.configure(e);
      },
      resetSchema: function (e) {
        return n.onResourceChange(e);
      },
      doValidation: s.doValidation.bind(s),
      parseJSONDocument: function (e) {
        return (function (e, t) {
          var n = [],
            r = -1,
            i = e.getText(),
            o = wn(i, !1),
            s = t && t.collectComments ? [] : void 0;
          function a() {
            for (;;) {
              var t = o.scan();
              switch ((c(), t)) {
                case 12:
                case 13:
                  Array.isArray(s) &&
                    s.push(
                      ln.create(
                        e.positionAt(o.getTokenOffset()),
                        e.positionAt(o.getTokenOffset() + o.getTokenLength())
                      )
                    );
                  break;
                case 15:
                case 14:
                  break;
                default:
                  return t;
              }
            }
          }
          function u(t, i, o, s, a) {
            if ((void 0 === a && (a = yn.Error), 0 === n.length || o !== r)) {
              var u = ln.create(e.positionAt(o), e.positionAt(s));
              n.push(Cn.create(u, t, a, i, e.languageId)), (r = o);
            }
          }
          function l(e, t, n, r, s) {
            void 0 === n && (n = void 0),
              void 0 === r && (r = []),
              void 0 === s && (s = []);
            var l = o.getTokenOffset(),
              c = o.getTokenOffset() + o.getTokenLength();
            if (l === c && l > 0) {
              for (l--; l > 0 && /\s/.test(i.charAt(l)); ) l--;
              c = l + 1;
            }
            if ((u(e, t, l, c), n && h(n, !1), r.length + s.length > 0))
              for (var f = o.getToken(); 17 !== f; ) {
                if (-1 !== r.indexOf(f)) {
                  a();
                  break;
                }
                if (-1 !== s.indexOf(f)) break;
                f = a();
              }
            return n;
          }
          function c() {
            switch (o.getTokenError()) {
              case 4:
                return (
                  l(
                    wr('InvalidUnicode', 'Invalid unicode sequence in string.'),
                    gr.InvalidUnicode
                  ),
                  !0
                );
              case 5:
                return (
                  l(
                    wr(
                      'InvalidEscapeCharacter',
                      'Invalid escape character in string.'
                    ),
                    gr.InvalidEscapeCharacter
                  ),
                  !0
                );
              case 3:
                return (
                  l(
                    wr('UnexpectedEndOfNumber', 'Unexpected end of number.'),
                    gr.UnexpectedEndOfNumber
                  ),
                  !0
                );
              case 1:
                return (
                  l(
                    wr('UnexpectedEndOfComment', 'Unexpected end of comment.'),
                    gr.UnexpectedEndOfComment
                  ),
                  !0
                );
              case 2:
                return (
                  l(
                    wr('UnexpectedEndOfString', 'Unexpected end of string.'),
                    gr.UnexpectedEndOfString
                  ),
                  !0
                );
              case 6:
                return (
                  l(
                    wr(
                      'InvalidCharacter',
                      'Invalid characters in string. Control characters must be escaped.'
                    ),
                    gr.InvalidCharacter
                  ),
                  !0
                );
            }
            return !1;
          }
          function h(e, t) {
            return (
              (e.length = o.getTokenOffset() + o.getTokenLength() - e.offset),
              t && a(),
              e
            );
          }
          var f = new Rr(void 0, 0, 0);
          function d(t, n) {
            var r = new Dr(t, o.getTokenOffset(), f),
              i = m(r);
            if (!i) {
              if (16 !== o.getToken()) return;
              l(
                wr(
                  'DoubleQuotesExpected',
                  'Property keys must be doublequoted'
                ),
                gr.Undefined
              );
              var s = new Rr(r, o.getTokenOffset(), o.getTokenLength());
              (s.value = o.getTokenValue()), (i = s), a();
            }
            r.keyNode = i;
            var c = n[i.value];
            if (
              (c
                ? (u(
                    wr('DuplicateKeyWarning', 'Duplicate object key'),
                    gr.DuplicateKey,
                    r.keyNode.offset,
                    r.keyNode.offset + r.keyNode.length,
                    yn.Warning
                  ),
                  'object' == typeof c &&
                    u(
                      wr('DuplicateKeyWarning', 'Duplicate object key'),
                      gr.DuplicateKey,
                      c.keyNode.offset,
                      c.keyNode.offset + c.keyNode.length,
                      yn.Warning
                    ),
                  (n[i.value] = !0))
                : (n[i.value] = r),
              6 === o.getToken())
            )
              (r.colonOffset = o.getTokenOffset()), a();
            else if (
              (l(wr('ColonExpected', 'Colon expected'), gr.ColonExpected),
              10 === o.getToken() &&
                e.positionAt(i.offset + i.length).line <
                  e.positionAt(o.getTokenOffset()).line)
            )
              return (r.length = i.length), r;
            var h = g(r);
            return h
              ? ((r.valueNode = h),
                (r.length = h.offset + h.length - r.offset),
                r)
              : l(
                  wr('ValueExpected', 'Value expected'),
                  gr.ValueExpected,
                  r,
                  [],
                  [2, 5]
                );
          }
          function m(e) {
            if (10 === o.getToken()) {
              var t = new Rr(e, o.getTokenOffset());
              return (t.value = o.getTokenValue()), h(t, !0);
            }
          }
          function g(e) {
            return (
              (function (e) {
                if (3 === o.getToken()) {
                  var t = new Mr(e, o.getTokenOffset());
                  a();
                  for (
                    var n = !1;
                    4 !== o.getToken() && 17 !== o.getToken();

                  ) {
                    if (5 === o.getToken()) {
                      n ||
                        l(
                          wr('ValueExpected', 'Value expected'),
                          gr.ValueExpected
                        );
                      var r = o.getTokenOffset();
                      if ((a(), 4 === o.getToken())) {
                        n &&
                          u(
                            wr('TrailingComma', 'Trailing comma'),
                            gr.TrailingComma,
                            r,
                            r + 1
                          );
                        continue;
                      }
                    } else
                      n &&
                        l(
                          wr('ExpectedComma', 'Expected comma'),
                          gr.CommaExpected
                        );
                    var i = g(t);
                    i
                      ? t.items.push(i)
                      : l(
                          wr('PropertyExpected', 'Value expected'),
                          gr.ValueExpected,
                          void 0,
                          [],
                          [4, 5]
                        ),
                      (n = !0);
                  }
                  return 4 !== o.getToken()
                    ? l(
                        wr(
                          'ExpectedCloseBracket',
                          'Expected comma or closing bracket'
                        ),
                        gr.CommaOrCloseBacketExpected,
                        t
                      )
                    : h(t, !0);
                }
              })(e) ||
              (function (e) {
                if (1 === o.getToken()) {
                  var t = new Fr(e, o.getTokenOffset()),
                    n = Object.create(null);
                  a();
                  for (
                    var r = !1;
                    2 !== o.getToken() && 17 !== o.getToken();

                  ) {
                    if (5 === o.getToken()) {
                      r ||
                        l(
                          wr('PropertyExpected', 'Property expected'),
                          gr.PropertyExpected
                        );
                      var i = o.getTokenOffset();
                      if ((a(), 2 === o.getToken())) {
                        r &&
                          u(
                            wr('TrailingComma', 'Trailing comma'),
                            gr.TrailingComma,
                            i,
                            i + 1
                          );
                        continue;
                      }
                    } else
                      r &&
                        l(
                          wr('ExpectedComma', 'Expected comma'),
                          gr.CommaExpected
                        );
                    var s = d(t, n);
                    s
                      ? t.properties.push(s)
                      : l(
                          wr('PropertyExpected', 'Property expected'),
                          gr.PropertyExpected,
                          void 0,
                          [],
                          [2, 5]
                        ),
                      (r = !0);
                  }
                  return 2 !== o.getToken()
                    ? l(
                        wr(
                          'ExpectedCloseBrace',
                          'Expected comma or closing brace'
                        ),
                        gr.CommaOrCloseBraceExpected,
                        t
                      )
                    : h(t, !0);
                }
              })(e) ||
              m(e) ||
              (function (e) {
                if (11 === o.getToken()) {
                  var t = new Pr(e, o.getTokenOffset());
                  if (0 === o.getTokenError()) {
                    var n = o.getTokenValue();
                    try {
                      var r = JSON.parse(n);
                      if (!Pn(r))
                        return l(
                          wr('InvalidNumberFormat', 'Invalid number format.'),
                          gr.Undefined,
                          t
                        );
                      t.value = r;
                    } catch (e) {
                      return l(
                        wr('InvalidNumberFormat', 'Invalid number format.'),
                        gr.Undefined,
                        t
                      );
                    }
                    t.isInteger = -1 === n.indexOf('.');
                  }
                  return h(t, !0);
                }
              })(e) ||
              (function (e) {
                switch (o.getToken()) {
                  case 7:
                    return h(new Or(e, o.getTokenOffset()), !0);
                  case 8:
                    return h(new Ir(e, !0, o.getTokenOffset()), !0);
                  case 9:
                    return h(new Ir(e, !1, o.getTokenOffset()), !0);
                  default:
                    return;
                }
              })(e)
            );
          }
          var p = void 0;
          return (
            17 !== a() &&
              ((p = g(p))
                ? 17 !== o.getToken() &&
                  l(
                    wr('End of file expected', 'End of file expected.'),
                    gr.Undefined
                  )
                : l(
                    wr(
                      'Invalid symbol',
                      'Expected a JSON object, array or literal.'
                    ),
                    gr.Undefined
                  )),
            new Br(p, n, s)
          );
        })(e, { collectComments: !0 });
      },
      newJSONDocument: function (e, t) {
        return (function (e, t) {
          return void 0 === t && (t = []), new Br(e, t, []);
        })(e, t);
      },
      getMatchingSchemas: n.getMatchingSchemas.bind(n),
      doResolve: r.doResolve.bind(r),
      doComplete: r.doComplete.bind(r),
      findDocumentSymbols: o.findDocumentSymbols.bind(o),
      findDocumentSymbols2: o.findDocumentSymbols2.bind(o),
      findColorSymbols: function (e, t) {
        return o.findDocumentColors(e, t).then(function (e) {
          return e.map(function (e) {
            return e.range;
          });
        });
      },
      findDocumentColors: o.findDocumentColors.bind(o),
      getColorPresentations: o.getColorPresentations.bind(o),
      doHover: i.doHover.bind(i),
      getFoldingRanges: Gi,
      getSelectionRanges: zi,
      findDefinition: Ji,
      format: function (e, t, n) {
        var r = void 0;
        if (t) {
          var i = e.offsetAt(t.start);
          r = { offset: i, length: e.offsetAt(t.end) - i };
        }
        var o = {
          tabSize: n ? n.tabSize : 4,
          insertSpaces: !n || n.insertSpaces,
          eol: '\n',
        };
        return (function (e, t, n) {
          return (function (e, t, n) {
            var r, i, o, s, a;
            if (t) {
              for (
                s = t.offset, a = s + t.length, o = s;
                o > 0 && !sn(e, o - 1);

              )
                o--;
              for (var u = a; u < e.length && !sn(e, u); ) u++;
              (i = e.substring(o, u)),
                (r = (function (e, t) {
                  for (var n = 0, r = 0, i = t.tabSize || 4; n < e.length; ) {
                    var o = e.charAt(n);
                    if (' ' === o) r++;
                    else {
                      if ('\t' !== o) break;
                      r += i;
                    }
                    n++;
                  }
                  return Math.floor(r / i);
                })(i, n));
            } else (i = e), (r = 0), (o = 0), (s = 0), (a = e.length);
            var l,
              c = (function (e, t) {
                for (var n = 0; n < t.length; n++) {
                  var r = t.charAt(n);
                  if ('\r' === r)
                    return n + 1 < t.length && '\n' === t.charAt(n + 1)
                      ? '\r\n'
                      : '\r';
                  if ('\n' === r) return '\n';
                }
                return (e && e.eol) || '\n';
              })(n, e),
              h = !1,
              f = 0;
            l = n.insertSpaces ? on(' ', n.tabSize || 4) : '\t';
            var d = en(i, !1),
              m = !1;
            function g() {
              return c + on(l, r + f);
            }
            function p() {
              var e = d.scan();
              for (h = !1; 15 === e || 14 === e; )
                (h = h || 14 === e), (e = d.scan());
              return (m = 16 === e || 0 !== d.getTokenError()), e;
            }
            var v = [];
            function y(t, n, r) {
              !m &&
                n < a &&
                r > s &&
                e.substring(n, r) !== t &&
                v.push({ offset: n, length: r - n, content: t });
            }
            var b = p();
            if (17 !== b) {
              var C = d.getTokenOffset() + o;
              y(on(l, r), o, C);
            }
            for (; 17 !== b; ) {
              for (
                var _ = d.getTokenOffset() + d.getTokenLength() + o,
                  S = p(),
                  E = '';
                !h && (12 === S || 13 === S);

              )
                y(' ', _, d.getTokenOffset() + o),
                  (_ = d.getTokenOffset() + d.getTokenLength() + o),
                  (E = 12 === S ? g() : ''),
                  (S = p());
              if (2 === S) 1 !== b && (f--, (E = g()));
              else if (4 === S) 3 !== b && (f--, (E = g()));
              else {
                switch (b) {
                  case 3:
                  case 1:
                    f++, (E = g());
                    break;
                  case 5:
                  case 12:
                    E = g();
                    break;
                  case 13:
                    E = h ? g() : ' ';
                    break;
                  case 6:
                    E = ' ';
                    break;
                  case 10:
                    if (6 === S) {
                      E = '';
                      break;
                    }
                  case 7:
                  case 8:
                  case 9:
                  case 11:
                  case 2:
                  case 4:
                    12 === S || 13 === S
                      ? (E = ' ')
                      : 5 !== S && 17 !== S && (m = !0);
                    break;
                  case 16:
                    m = !0;
                }
                !h || (12 !== S && 13 !== S) || (E = g());
              }
              y(E, _, d.getTokenOffset() + o), (b = S);
            }
            return v;
          })(e, t, n);
        })(e.getText(), r, o).map(function (t) {
          return Sn.replace(
            ln.create(
              e.positionAt(t.offset),
              e.positionAt(t.offset + t.length)
            ),
            t.content
          );
        });
      },
    };
  }
  var to,
    no = function (e, t, n, r) {
      return new (n || (n = Promise))(function (i, o) {
        function s(e) {
          try {
            u(r.next(e));
          } catch (e) {
            o(e);
          }
        }
        function a(e) {
          try {
            u(r.throw(e));
          } catch (e) {
            o(e);
          }
        }
        function u(e) {
          var t;
          e.done
            ? i(e.value)
            : ((t = e.value),
              t instanceof n
                ? t
                : new n(function (e) {
                    e(t);
                  })).then(s, a);
        }
        u((r = r.apply(e, t || [])).next());
      });
    },
    ro = function (e, t) {
      var n,
        r,
        i,
        o,
        s = {
          label: 0,
          sent: function () {
            if (1 & i[0]) throw i[1];
            return i[1];
          },
          trys: [],
          ops: [],
        };
      return (
        (o = { next: a(0), throw: a(1), return: a(2) }),
        'function' == typeof Symbol &&
          (o[Symbol.iterator] = function () {
            return this;
          }),
        o
      );
      function a(o) {
        return function (a) {
          return (function (o) {
            if (n) throw new TypeError('Generator is already executing.');
            for (; s; )
              try {
                if (
                  ((n = 1),
                  r &&
                    (i =
                      2 & o[0]
                        ? r.return
                        : o[0]
                        ? r.throw || ((i = r.return) && i.call(r), 0)
                        : r.next) &&
                    !(i = i.call(r, o[1])).done)
                )
                  return i;
                switch (((r = 0), i && (o = [2 & o[0], i.value]), o[0])) {
                  case 0:
                  case 1:
                    i = o;
                    break;
                  case 4:
                    return s.label++, { value: o[1], done: !1 };
                  case 5:
                    s.label++, (r = o[1]), (o = [0]);
                    continue;
                  case 7:
                    (o = s.ops.pop()), s.trys.pop();
                    continue;
                  default:
                    if (
                      !(
                        (i = (i = s.trys).length > 0 && i[i.length - 1]) ||
                        (6 !== o[0] && 2 !== o[0])
                      )
                    ) {
                      s = 0;
                      continue;
                    }
                    if (3 === o[0] && (!i || (o[1] > i[0] && o[1] < i[3]))) {
                      s.label = o[1];
                      break;
                    }
                    if (6 === o[0] && s.label < i[1]) {
                      (s.label = i[1]), (i = o);
                      break;
                    }
                    if (i && s.label < i[2]) {
                      (s.label = i[2]), s.ops.push(o);
                      break;
                    }
                    i[2] && s.ops.pop(), s.trys.pop();
                    continue;
                }
                o = t.call(e, s);
              } catch (e) {
                (o = [6, e]), (r = 0);
              } finally {
                n = i = 0;
              }
            if (5 & o[0]) throw o[1];
            return { value: o[0] ? o[1] : void 0, done: !0 };
          })([o, a]);
        };
      }
    };
  'undefined' != typeof fetch &&
    (to = function (e) {
      return fetch(e).then(function (e) {
        return e.text();
      });
    });
  var io = (function () {
      function e(e, t) {
        (this._ctx = e),
          (this._languageSettings = t.languageSettings),
          (this._languageId = t.languageId),
          (this._languageService = eo({
            workspaceContext: {
              resolveRelativePath: function (e, t) {
                return (function (e, t) {
                  if (
                    (function (e) {
                      return e.charCodeAt(0) === oo;
                    })(t)
                  ) {
                    var n = ci.parse(e),
                      r = t.split('/');
                    return n.with({ path: ao(r) }).toString();
                  }
                  return (function (e) {
                    for (var t = [], n = 1; n < arguments.length; n++)
                      t[n - 1] = arguments[n];
                    for (
                      var r = ci.parse(e), i = r.path.split('/'), o = 0, s = t;
                      o < s.length;
                      o++
                    ) {
                      var a = s[o];
                      i.push.apply(i, a.split('/'));
                    }
                    return r.with({ path: ao(i) }).toString();
                  })(e, t);
                })(t.substr(0, t.lastIndexOf('/') + 1), e);
              },
            },
            schemaRequestService: t.enableSchemaRequest && to,
          })),
          this._languageService.configure(this._languageSettings);
      }
      return (
        (e.prototype.doValidation = function (e) {
          return no(this, void 0, void 0, function () {
            var t, n;
            return ro(this, function (r) {
              return (t = this._getTextDocument(e))
                ? ((n = this._languageService.parseJSONDocument(t)),
                  [2, this._languageService.doValidation(t, n)])
                : [2, Promise.resolve([])];
            });
          });
        }),
        (e.prototype.doComplete = function (e, t) {
          return no(this, void 0, void 0, function () {
            var n, r;
            return ro(this, function (i) {
              return (
                (n = this._getTextDocument(e)),
                (r = this._languageService.parseJSONDocument(n)),
                [2, this._languageService.doComplete(n, t, r)]
              );
            });
          });
        }),
        (e.prototype.doResolve = function (e) {
          return no(this, void 0, void 0, function () {
            return ro(this, function (t) {
              return [2, this._languageService.doResolve(e)];
            });
          });
        }),
        (e.prototype.doHover = function (e, t) {
          return no(this, void 0, void 0, function () {
            var n, r;
            return ro(this, function (i) {
              return (
                (n = this._getTextDocument(e)),
                (r = this._languageService.parseJSONDocument(n)),
                [2, this._languageService.doHover(n, t, r)]
              );
            });
          });
        }),
        (e.prototype.format = function (e, t, n) {
          return no(this, void 0, void 0, function () {
            var r, i;
            return ro(this, function (o) {
              return (
                (r = this._getTextDocument(e)),
                (i = this._languageService.format(r, t, n)),
                [2, Promise.resolve(i)]
              );
            });
          });
        }),
        (e.prototype.resetSchema = function (e) {
          return no(this, void 0, void 0, function () {
            return ro(this, function (t) {
              return [2, Promise.resolve(this._languageService.resetSchema(e))];
            });
          });
        }),
        (e.prototype.findDocumentSymbols = function (e) {
          return no(this, void 0, void 0, function () {
            var t, n, r;
            return ro(this, function (i) {
              return (
                (t = this._getTextDocument(e)),
                (n = this._languageService.parseJSONDocument(t)),
                (r = this._languageService.findDocumentSymbols(t, n)),
                [2, Promise.resolve(r)]
              );
            });
          });
        }),
        (e.prototype.findDocumentColors = function (e) {
          return no(this, void 0, void 0, function () {
            var t, n, r;
            return ro(this, function (i) {
              return (
                (t = this._getTextDocument(e)),
                (n = this._languageService.parseJSONDocument(t)),
                (r = this._languageService.findDocumentColors(t, n)),
                [2, Promise.resolve(r)]
              );
            });
          });
        }),
        (e.prototype.getColorPresentations = function (e, t, n) {
          return no(this, void 0, void 0, function () {
            var r, i, o;
            return ro(this, function (s) {
              return (
                (r = this._getTextDocument(e)),
                (i = this._languageService.parseJSONDocument(r)),
                (o = this._languageService.getColorPresentations(r, i, t, n)),
                [2, Promise.resolve(o)]
              );
            });
          });
        }),
        (e.prototype.getFoldingRanges = function (e, t) {
          return no(this, void 0, void 0, function () {
            var n, r;
            return ro(this, function (i) {
              return (
                (n = this._getTextDocument(e)),
                (r = this._languageService.getFoldingRanges(n, t)),
                [2, Promise.resolve(r)]
              );
            });
          });
        }),
        (e.prototype.getSelectionRanges = function (e, t) {
          return no(this, void 0, void 0, function () {
            var n, r, i;
            return ro(this, function (o) {
              return (
                (n = this._getTextDocument(e)),
                (r = this._languageService.parseJSONDocument(n)),
                (i = this._languageService.getSelectionRanges(n, t, r)),
                [2, Promise.resolve(i)]
              );
            });
          });
        }),
        (e.prototype._getTextDocument = function (e) {
          for (var t = 0, n = this._ctx.getMirrorModels(); t < n.length; t++) {
            var r = n[t];
            if (r.uri.toString() === e)
              return mr.create(e, this._languageId, r.version, r.getValue());
          }
          return null;
        }),
        e
      );
    })(),
    oo = '/'.charCodeAt(0),
    so = '.'.charCodeAt(0);
  function ao(e) {
    for (var t = [], n = 0, r = e; n < r.length; n++) {
      var i = r[n];
      0 === i.length ||
        (1 === i.length && i.charCodeAt(0) === so) ||
        (2 === i.length && i.charCodeAt(0) === so && i.charCodeAt(1) === so
          ? t.pop()
          : t.push(i));
    }
    e.length > 1 && 0 === e[e.length - 1].length && t.push('');
    var o = t.join('/');
    return 0 === e[0].length && (o = '/' + o), o;
  }
  self.onmessage = function () {
    Xt(function (e, t) {
      return new io(e, t);
    });
  };
})();
