(self.webpackChunkRemoteClient = self.webpackChunkRemoteClient || []).push([
  [1568, 2058],
  {
    31450: (e, t, r) => {
      'use strict';
      r.d(t, { Z: () => i });
      var n = r(76506),
        o = r(71552);
      const s = {
        apiKey: void 0,
        applicationUrl: n.g.location && n.g.location.href,
        assetsPath: '',
        fontsUrl: 'https://static.arcgis.com/fonts',
        geometryService: null,
        geometryServiceUrl:
          'https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer',
        geoRSSServiceUrl: 'https://utility.arcgis.com/sharing/rss',
        kmlServiceUrl: 'https://utility.arcgis.com/sharing/kml',
        portalUrl: 'https://www.arcgis.com',
        workers: { loaderConfig: { has: {}, paths: {}, map: {}, packages: [] } },
        request: {
          httpsDomains: [
            'arcgis.com',
            'arcgisonline.com',
            'esrikr.com',
            'premiumservices.blackbridge.com',
            'esripremium.accuweather.com',
            'gbm.digitalglobe.com',
            'firstlook.digitalglobe.com',
            'msi.digitalglobe.com',
          ],
          interceptors: [],
          maxUrlLength: 2e3,
          proxyRules: [],
          proxyUrl: null,
          timeout: 6e4,
          trustedServers: [],
          useIdentity: !0,
        },
        log: { interceptors: [], level: null },
      };
      if ((n.g.esriConfig && ((0, o.d)(s, n.g.esriConfig, !0), delete s.has), !s.assetsPath)) {
        const e = '';
        s.assetsPath = e.slice(0, e.indexOf('@arcgis/'));
      }
      s.baseUrl && console.warn('[esri.config]', 'baseUrl has been replaced by assetsPath'),
        Object.defineProperty(s, 'baseUrl', {
          set() {
            console.warn('[esri.config]', 'baseUrl has been replaced by assetsPath');
          },
        }),
        (s.request.corsEnabledServers = []),
        (s.request.corsEnabledServers.push = function () {
          return (
            console.warn(
              '[esri.config]',
              'request.corsEnabledServers is not supported and will be removed in a future release. See http://esriurl.com/cors8664',
            ),
            0
          );
        });
      const i = s;
    },
    92143: (e, t, r) => {
      'use strict';
      r.d(t, { L: () => a });
      var n = r(31450),
        o = r(76506),
        s = r(40642);
      const i = { info: 0, warn: 1, error: 2, none: 3 };
      class a {
        constructor(e) {
          (this.level = null),
            (this._module = ''),
            (this._parent = null),
            (this.writer = null),
            (this._loggedMessages = { error: new Map(), warn: new Map(), info: new Map() }),
            null != e.level && (this.level = e.level),
            null != e.writer && (this.writer = e.writer),
            (this._module = e.module),
            (a._loggers[this.module] = this);
          const t = this.module.lastIndexOf('.');
          -1 !== t && (this._parent = a.getLogger(this.module.slice(0, t)));
        }
        get module() {
          return this._module;
        }
        get parent() {
          return this._parent;
        }
        error(...e) {
          this._log('error', 'always', ...e);
        }
        warn(...e) {
          this._log('warn', 'always', ...e);
        }
        info(...e) {
          this._log('info', 'always', ...e);
        }
        errorOnce(...e) {
          this._log('error', 'once', ...e);
        }
        warnOnce(...e) {
          this._log('warn', 'once', ...e);
        }
        infoOnce(...e) {
          this._log('info', 'once', ...e);
        }
        errorOncePerTick(...e) {
          this._log('error', 'oncePerTick', ...e);
        }
        warnOncePerTick(...e) {
          this._log('warn', 'oncePerTick', ...e);
        }
        infoOncePerTick(...e) {
          this._log('info', 'oncePerTick', ...e);
        }
        get test() {
          const e = this;
          return {
            loggedMessages: e._loggedMessages,
            clearLoggedWarnings: () => e._loggedMessages.warn.clear(),
          };
        }
        static get testSingleton() {
          return {
            resetLoggers(e = {}) {
              const t = a._loggers;
              return (a._loggers = e), t;
            },
            set throttlingDisabled(e) {
              a._throttlingDisabled = e;
            },
          };
        }
        static getLogger(e) {
          let t = a._loggers[e];
          return t || (t = new a({ module: e })), t;
        }
        _log(e, t, ...r) {
          if (this._matchLevel(e)) {
            if ('always' !== t && !a._throttlingDisabled) {
              const n = this._argsToKey(r),
                o = this._loggedMessages[e].get(n);
              if (('once' === t && null != o) || ('oncePerTick' === t && o && o >= a._tickCounter))
                return;
              this._loggedMessages[e].set(n, a._tickCounter), a._scheduleTickCounterIncrement();
            }
            for (const t of n.Z.log.interceptors) if (t(e, this.module, ...r)) return;
            this._inheritedWriter()(e, this.module, ...r);
          }
        }
        _parentWithMember(e, t) {
          let r = this;
          for (; (0, o.i)(r); ) {
            const t = r[e];
            if ((0, o.i)(t)) return t;
            r = r.parent;
          }
          return t;
        }
        _inheritedWriter() {
          return this._parentWithMember('writer', this._consoleWriter);
        }
        _consoleWriter(e, t, ...r) {
          console[e](`[${t}]`, ...r);
        }
        _matchLevel(e) {
          const t = n.Z.log.level ? n.Z.log.level : 'warn';
          return i[this._parentWithMember('level', t)] <= i[e];
        }
        _argsToKey(...e) {
          return (0, s.n)(
            JSON.stringify(e, (e, t) =>
              'object' != typeof t || Array.isArray(t) ? t : '[Object]',
            ),
          );
        }
        static _scheduleTickCounterIncrement() {
          a._tickCounterScheduled ||
            ((a._tickCounterScheduled = !0),
            Promise.resolve().then(() => {
              a._tickCounter++, (a._tickCounterScheduled = !1);
            }));
        }
      }
      (a._loggers = {}),
        (a._tickCounter = 0),
        (a._tickCounterScheduled = !1),
        (a._throttlingDisabled = !1);
    },
    91700: (e, t, r) => {
      'use strict';
      r.d(t, { M: () => s, a: () => o });
      var n = r(6906);
      class o {
        constructor(e, t, r) {
          (this._namespace = e),
            (this._storage = t),
            (this._removeFunc = !1),
            (this._hit = 0),
            (this._miss = 0),
            this._storage.register(this),
            (this._namespace += ':'),
            r && (this._storage.registerRemoveFunc(this._namespace, r), (this._removeFunc = !0));
        }
        destroy() {
          this._storage.clear(this._namespace),
            this._removeFunc && this._storage.deregisterRemoveFunc(this._namespace),
            this._storage.deregister(this),
            (this._storage = null);
        }
        get namespace() {
          return this._namespace.slice(0, -1);
        }
        get hitRate() {
          return this._hit / (this._hit + this._miss);
        }
        get size() {
          return this._storage.size;
        }
        get maxSize() {
          return this._storage.maxSize;
        }
        resetHitRate() {
          this._hit = this._miss = 0;
        }
        put(e, t, r, n = 0) {
          this._storage.put(this._namespace + e, t, r, n);
        }
        get(e) {
          const t = this._storage.get(this._namespace + e);
          return void 0 === t ? ++this._miss : ++this._hit, t;
        }
        pop(e) {
          const t = this._storage.pop(this._namespace + e);
          return void 0 === t ? ++this._miss : ++this._hit, t;
        }
        updateSize(e, t, r) {
          this._storage.updateSize(this._namespace + e, t, r);
        }
        clear() {
          this._storage.clear(this._namespace);
        }
        clearAll() {
          this._storage.clearAll();
        }
        getStats() {
          return this._storage.getStats();
        }
        resetStats() {
          this._storage.resetStats();
        }
      }
      class s {
        constructor(e = 10485760) {
          (this._maxSize = e),
            (this._db = new Map()),
            (this._size = 0),
            (this._hit = 0),
            (this._miss = 0),
            (this._removeFuncs = new n.P()),
            (this._users = new n.P());
        }
        destroy() {
          this.clearAll(), this._removeFuncs.clear(), this._users.clear(), (this._db = null);
        }
        register(e) {
          this._users.push(e);
        }
        deregister(e) {
          this._users.removeUnordered(e);
        }
        registerRemoveFunc(e, t) {
          this._removeFuncs.push([e, t]);
        }
        deregisterRemoveFunc(e) {
          this._removeFuncs.filterInPlace((t) => t[0] !== e);
        }
        get size() {
          return this._size;
        }
        get maxSize() {
          return this._maxSize;
        }
        set maxSize(e) {
          (this._maxSize = Math.max(e, 0)), this._checkSizeLimit();
        }
        put(e, t, r, n) {
          const o = this._db.get(e);
          if (
            (o &&
              ((this._size -= o.size),
              this._db.delete(e),
              o.entry !== t && this._notifyRemoved(e, o.entry)),
            r > this._maxSize)
          )
            return void this._notifyRemoved(e, t);
          if (void 0 === t) return void console.warn('Refusing to cache undefined entry ');
          if (!r || r < 0)
            return void console.warn('Refusing to cache entry with invalid size ' + r);
          const s = 1 + Math.max(n, -3) - -3;
          this._db.set(e, { entry: t, size: r, lifetime: s, lives: s }),
            (this._size += r),
            this._checkSizeLimit();
        }
        updateSize(e, t, r) {
          const n = this._db.get(e);
          if (n && n.entry === t) {
            if (((this._size -= n.size), r > this._maxSize))
              return this._db.delete(e), void this._notifyRemoved(e, t);
            (n.size = r), (this._size += r), this._checkSizeLimit();
          }
        }
        pop(e) {
          const t = this._db.get(e);
          if (t) return (this._size -= t.size), this._db.delete(e), ++this._hit, t.entry;
          ++this._miss;
        }
        get(e) {
          const t = this._db.get(e);
          if (void 0 !== t)
            return (
              this._db.delete(e), (t.lives = t.lifetime), this._db.set(e, t), ++this._hit, t.entry
            );
          ++this._miss;
        }
        getStats() {
          const e = {
              Size:
                Math.round(this._size / 1048576) + '/' + Math.round(this._maxSize / 1048576) + 'MB',
              'Hit rate': Math.round(100 * this._getHitRate()) + '%',
              Entries: this._db.size.toString(),
            },
            t = {},
            r = new Array();
          this._db.forEach((e, n) => {
            const o = e.lifetime;
            (r[o] = (r[o] || 0) + e.size),
              this._users.forAll((r) => {
                const o = r.namespace;
                if (n.startsWith(o)) {
                  const r = t[o] || 0;
                  t[o] = r + e.size;
                }
              });
          });
          const n = {};
          this._users.forAll((e) => {
            const r = e.namespace;
            if (!isNaN(e.hitRate) && e.hitRate > 0) {
              const o = t[r] || 0;
              (t[r] = o), (n[r] = Math.round(100 * e.hitRate) + '%');
            } else n[r] = '0%';
          });
          const o = Object.keys(t);
          o.forEach((e) => (t[e] = (t[e] / this._size) * 100)),
            o.sort((e, r) => t[r] - t[e]),
            o.forEach((r) => (e[r] = Math.round(t[r]) + '% / ' + n[r]));
          for (let t = r.length - 1; t >= 0; --t) {
            const n = r[t];
            n && (e['Priority ' + (t + -3 - 1)] = Math.round((n / this.size) * 100) + '%');
          }
          return e;
        }
        resetStats() {
          (this._hit = this._miss = 0), this._users.forAll((e) => e.resetHitRate());
        }
        clear(e) {
          this._db.forEach((t, r) => {
            r.startsWith(e) &&
              ((this._size -= t.size), this._db.delete(r), this._notifyRemoved(r, t.entry));
          });
        }
        clearAll() {
          this._db.forEach((e, t) => this._notifyRemoved(t, e.entry)),
            (this._size = 0),
            this._db.clear();
        }
        _getHitRate() {
          return this._hit / (this._hit + this._miss);
        }
        _notifyRemoved(e, t) {
          this._removeFuncs.forAll((r) => {
            e.startsWith(r[0]) && r[1](t);
          });
        }
        _checkSizeLimit() {
          if (!(this._size <= this._maxSize))
            for (const [e, t] of this._db)
              if (
                (this._db.delete(e),
                t.lives <= 1
                  ? ((this._size -= t.size), this._notifyRemoved(e, t.entry))
                  : (--t.lives, this._db.set(e, t)),
                this._size <= 0.9 * this.maxSize)
              )
                return;
        }
      }
    },
    81172: (e, t, r) => {
      'use strict';
      r.d(t, { M: () => o });
      var n = r(71552);
      class o {
        constructor(e, t, r) {
          var s;
          (this.name = e),
            (this.details = r),
            (this.message = void 0),
            this instanceof o &&
              (this.message =
                (t &&
                  ((s = r),
                  t.replace(/\$\{([^\s\:\}]*)(?:\:([^\s\:\}]+))?\}/g, function (e, t) {
                    if ('' === t) return '$';
                    const r = (0, n.g)(t, s),
                      o = null == r ? '' : r;
                    if (void 0 === o) throw new Error(`could not find key "${t}" in template`);
                    return o.toString();
                  }))) ||
                '');
        }
        toString() {
          return '[' + this.name + ']: ' + this.message;
        }
      }
    },
    53326: (e, t, r) => {
      'use strict';
      r.d(t, {
        C: () => d,
        N: () => g,
        b: () => a,
        c: () => o,
        d: () => i,
        e: () => f,
        g: () => m,
        l: () => s,
        m: () => u,
        n: () => l,
        s: () => h,
        y: () => c,
      });
      var n = r(76506);
      function o(e = y) {
        return [e[0], e[1], e[2], e[3], e[4], e[5]];
      }
      function s(e, t, r, n, s, i, a = o()) {
        return (a[0] = e), (a[1] = t), (a[2] = r), (a[3] = n), (a[4] = s), (a[5] = i), a;
      }
      function i(e, t) {
        (e[0] = Math.min(e[0], t[0])),
          (e[1] = Math.min(e[1], t[1])),
          (e[2] = Math.min(e[2], t[2])),
          (e[3] = Math.max(e[3], t[3])),
          (e[4] = Math.max(e[4], t[4])),
          (e[5] = Math.max(e[5], t[5]));
      }
      function a(e, t) {
        (e[0] = Math.min(e[0], t[0])),
          (e[1] = Math.min(e[1], t[1])),
          (e[2] = Math.min(e[2], t[2])),
          (e[3] = Math.max(e[3], t[0])),
          (e[4] = Math.max(e[4], t[1])),
          (e[5] = Math.max(e[5], t[2]));
      }
      function c(e, t = [0, 0, 0]) {
        return (
          (t[0] = (function (e) {
            return e[0] >= e[3] ? 0 : e[3] - e[0];
          })(e)),
          (t[1] = (function (e) {
            return e[1] >= e[4] ? 0 : e[4] - e[1];
          })(e)),
          (t[2] = (function (e) {
            return e[2] >= e[5] ? 0 : e[5] - e[2];
          })(e)),
          t
        );
      }
      function u(e, t, r = e) {
        return (
          (r[0] = t[0]),
          (r[1] = t[1]),
          (r[2] = t[2]),
          r !== e && ((r[3] = e[3]), (r[4] = e[4]), (r[5] = e[5])),
          r
        );
      }
      function l(e, t, r = e) {
        return (
          (r[3] = t[0]),
          (r[4] = t[1]),
          (r[5] = t[2]),
          r !== e && ((r[0] = e[0]), (r[1] = e[1]), (r[2] = e[2])),
          e
        );
      }
      function h(e, t) {
        return (
          (e[0] = t[0]),
          (e[1] = t[1]),
          (e[2] = t[2]),
          (e[3] = t[3]),
          (e[4] = t[4]),
          (e[5] = t[5]),
          e
        );
      }
      function f(e) {
        return e ? h(e, g) : o(g);
      }
      function d(e, t) {
        return (
          (e[0] = t[0]),
          (e[1] = t[1]),
          (e[2] = Number.NEGATIVE_INFINITY),
          (e[3] = t[2]),
          (e[4] = t[3]),
          (e[5] = Number.POSITIVE_INFINITY),
          e
        );
      }
      function p(e) {
        return 6 === e.length;
      }
      function m(e, t, r) {
        if ((0, n.b)(e) || (0, n.b)(t)) return e === t;
        if (!p(e) || !p(t)) return !1;
        if (r) {
          for (let n = 0; n < e.length; n++) if (!r(e[n], t[n])) return !1;
        } else for (let r = 0; r < e.length; r++) if (e[r] !== t[r]) return !1;
        return !0;
      }
      r(21801), r(92482);
      const g = [1 / 0, 1 / 0, 1 / 0, -1 / 0, -1 / 0, -1 / 0],
        y = [0, 0, 0, 0, 0, 0];
      o();
    },
    92482: (e, t, r) => {
      'use strict';
      r.d(t, {
        N: () => h,
        a: () => o,
        d: () => u,
        f: () => s,
        m: () => l,
        p: () => i,
        t: () => a,
        x: () => c,
      }),
        r(76506);
      var n = r(21801);
      function o(e = f) {
        return [e[0], e[1], e[2], e[3]];
      }
      function s(e, t, r, n, s = o()) {
        return (s[0] = e), (s[1] = t), (s[2] = r), (s[3] = n), s;
      }
      function i(e, t = o()) {
        return (t[0] = e.xmin), (t[1] = e.ymin), (t[2] = e.xmax), (t[3] = e.ymax), t;
      }
      function a(e, t) {
        return new n.Z({ xmin: e[0], ymin: e[1], xmax: e[2], ymax: e[3], spatialReference: t });
      }
      function c(e) {
        return (
          (function (e) {
            return e[0] >= e[2] ? 0 : e[2] - e[0];
          })(e) *
          (function (e) {
            return e[1] >= e[3] ? 0 : e[3] - e[1];
          })(e)
        );
      }
      function u(e, t) {
        return (
          Math.max(t[0], e[0]) <= Math.min(t[2], e[2]) &&
          Math.max(t[1], e[1]) <= Math.min(t[3], e[3])
        );
      }
      function l(e, t) {
        return t[0] >= e[0] && t[2] <= e[2] && t[1] >= e[1] && t[3] <= e[3];
      }
      const h = [1 / 0, 1 / 0, -1 / 0, -1 / 0],
        f = [0, 0, 0, 0];
    },
    82426: (e, t, r) => {
      'use strict';
      function n() {
        return [0, 0, 0];
      }
      function o(e) {
        return [e[0], e[1], e[2]];
      }
      function s(e, t, r) {
        return [e, t, r];
      }
      function i(e) {
        const t = [0, 0, 0],
          r = Math.min(3, e.length);
        for (let n = 0; n < r; ++n) t[n] = e[n];
        return t;
      }
      function a(e, t) {
        return new Float64Array(e, t, 3);
      }
      r.d(t, {
        A: () => x,
        B: () => X,
        C: () => P,
        D: () => L,
        E: () => l,
        G: () => W,
        H: () => G,
        I: () => D,
        O: () => u,
        R: () => h,
        S: () => J,
        T: () => i,
        Z: () => c,
        a: () => O,
        a4: () => w,
        a6: () => Z,
        aa: () => B,
        b: () => n,
        c: () => H,
        d: () => S,
        e: () => p,
        f: () => b,
        g: () => m,
        h: () => k,
        i: () => V,
        j: () => d,
        k: () => K,
        l: () => f,
        m: () => Q,
        n: () => M,
        o: () => _,
        p: () => s,
        r: () => Y,
        s: () => g,
        t: () => q,
        u: () => o,
        w: () => v,
        x: () => T,
        y: () => a,
        z: () => C,
      });
      const c = [0, 0, 0],
        u = s(1, 1, 1),
        l = 1e-6,
        h = Math.random;
      function f(e) {
        const t = e[0],
          r = e[1],
          n = e[2];
        return Math.sqrt(t * t + r * r + n * n);
      }
      function d(e, t) {
        return (e[0] = t[0]), (e[1] = t[1]), (e[2] = t[2]), e;
      }
      function p(e, t, r, n) {
        return (e[0] = t), (e[1] = r), (e[2] = n), e;
      }
      function m(e, t, r) {
        return (e[0] = t[0] + r[0]), (e[1] = t[1] + r[1]), (e[2] = t[2] + r[2]), e;
      }
      function g(e, t, r) {
        return (e[0] = t[0] - r[0]), (e[1] = t[1] - r[1]), (e[2] = t[2] - r[2]), e;
      }
      function y(e, t, r) {
        return (e[0] = t[0] * r[0]), (e[1] = t[1] * r[1]), (e[2] = t[2] * r[2]), e;
      }
      function w(e, t, r) {
        return (e[0] = t[0] / r[0]), (e[1] = t[1] / r[1]), (e[2] = t[2] / r[2]), e;
      }
      function b(e, t, r) {
        return (e[0] = t[0] * r), (e[1] = t[1] * r), (e[2] = t[2] * r), e;
      }
      function v(e, t) {
        const r = t[0] - e[0],
          n = t[1] - e[1],
          o = t[2] - e[2];
        return Math.sqrt(r * r + n * n + o * o);
      }
      function _(e, t) {
        const r = t[0] - e[0],
          n = t[1] - e[1],
          o = t[2] - e[2];
        return r * r + n * n + o * o;
      }
      function x(e) {
        const t = e[0],
          r = e[1],
          n = e[2];
        return t * t + r * r + n * n;
      }
      function M(e, t) {
        const r = t[0],
          n = t[1],
          o = t[2];
        let s = r * r + n * n + o * o;
        return (
          s > 0 &&
            ((s = 1 / Math.sqrt(s)), (e[0] = t[0] * s), (e[1] = t[1] * s), (e[2] = t[2] * s)),
          e
        );
      }
      function S(e, t) {
        return e[0] * t[0] + e[1] * t[1] + e[2] * t[2];
      }
      function O(e, t, r) {
        const n = t[0],
          o = t[1],
          s = t[2],
          i = r[0],
          a = r[1],
          c = r[2];
        return (e[0] = o * c - s * a), (e[1] = s * i - n * c), (e[2] = n * a - o * i), e;
      }
      function k(e, t, r, n) {
        const o = t[0],
          s = t[1],
          i = t[2];
        return (
          (e[0] = o + n * (r[0] - o)), (e[1] = s + n * (r[1] - s)), (e[2] = i + n * (r[2] - i)), e
        );
      }
      function q(e, t, r) {
        const n = t[0],
          o = t[1],
          s = t[2];
        return (
          (e[0] = r[0] * n + r[4] * o + r[8] * s + r[12]),
          (e[1] = r[1] * n + r[5] * o + r[9] * s + r[13]),
          (e[2] = r[2] * n + r[6] * o + r[10] * s + r[14]),
          e
        );
      }
      function T(e, t, r) {
        const n = t[0],
          o = t[1],
          s = t[2];
        return (
          (e[0] = n * r[0] + o * r[3] + s * r[6]),
          (e[1] = n * r[1] + o * r[4] + s * r[7]),
          (e[2] = n * r[2] + o * r[5] + s * r[8]),
          e
        );
      }
      function P(e, t, r) {
        const n = r[0],
          o = r[1],
          s = r[2],
          i = r[3],
          a = t[0],
          c = t[1],
          u = t[2];
        let l = o * u - s * c,
          h = s * a - n * u,
          f = n * c - o * a,
          d = o * f - s * h,
          p = s * l - n * f,
          m = n * h - o * l;
        const g = 2 * i;
        return (
          (l *= g),
          (h *= g),
          (f *= g),
          (d *= 2),
          (p *= 2),
          (m *= 2),
          (e[0] = a + l + d),
          (e[1] = c + h + p),
          (e[2] = u + f + m),
          e
        );
      }
      Math.PI, Math.PI;
      const E = [0, 0, 0],
        A = [0, 0, 0];
      function C(e, t) {
        return e[0] === t[0] && e[1] === t[1] && e[2] === t[2];
      }
      function L(e, t, r) {
        const n = r[0] - t[0],
          o = r[1] - t[1],
          s = r[2] - t[2];
        let i = n * n + o * o + s * s;
        return i > 0
          ? ((i = 1 / Math.sqrt(i)), (e[0] = n * i), (e[1] = o * i), (e[2] = s * i), e)
          : ((e[0] = 0), (e[1] = 0), (e[2] = 0), e);
      }
      const z = g,
        I = y,
        $ = w,
        R = v,
        U = _,
        j = f,
        F = x;
      Object.freeze({
        __proto__: null,
        length: f,
        copy: d,
        set: p,
        add: m,
        subtract: g,
        multiply: y,
        divide: w,
        ceil: function (e, t) {
          return (e[0] = Math.ceil(t[0])), (e[1] = Math.ceil(t[1])), (e[2] = Math.ceil(t[2])), e;
        },
        floor: function (e, t) {
          return (e[0] = Math.floor(t[0])), (e[1] = Math.floor(t[1])), (e[2] = Math.floor(t[2])), e;
        },
        min: function (e, t, r) {
          return (
            (e[0] = Math.min(t[0], r[0])),
            (e[1] = Math.min(t[1], r[1])),
            (e[2] = Math.min(t[2], r[2])),
            e
          );
        },
        max: function (e, t, r) {
          return (
            (e[0] = Math.max(t[0], r[0])),
            (e[1] = Math.max(t[1], r[1])),
            (e[2] = Math.max(t[2], r[2])),
            e
          );
        },
        round: function (e, t) {
          return (e[0] = Math.round(t[0])), (e[1] = Math.round(t[1])), (e[2] = Math.round(t[2])), e;
        },
        scale: b,
        scaleAndAdd: function (e, t, r, n) {
          return (e[0] = t[0] + r[0] * n), (e[1] = t[1] + r[1] * n), (e[2] = t[2] + r[2] * n), e;
        },
        distance: v,
        squaredDistance: _,
        squaredLength: x,
        negate: function (e, t) {
          return (e[0] = -t[0]), (e[1] = -t[1]), (e[2] = -t[2]), e;
        },
        inverse: function (e, t) {
          return (e[0] = 1 / t[0]), (e[1] = 1 / t[1]), (e[2] = 1 / t[2]), e;
        },
        normalize: M,
        dot: S,
        cross: O,
        lerp: k,
        hermite: function (e, t, r, n, o, s) {
          const i = s * s,
            a = i * (2 * s - 3) + 1,
            c = i * (s - 2) + s,
            u = i * (s - 1),
            l = i * (3 - 2 * s);
          return (
            (e[0] = t[0] * a + r[0] * c + n[0] * u + o[0] * l),
            (e[1] = t[1] * a + r[1] * c + n[1] * u + o[1] * l),
            (e[2] = t[2] * a + r[2] * c + n[2] * u + o[2] * l),
            e
          );
        },
        bezier: function (e, t, r, n, o, s) {
          const i = 1 - s,
            a = i * i,
            c = s * s,
            u = a * i,
            l = 3 * s * a,
            h = 3 * c * i,
            f = c * s;
          return (
            (e[0] = t[0] * u + r[0] * l + n[0] * h + o[0] * f),
            (e[1] = t[1] * u + r[1] * l + n[1] * h + o[1] * f),
            (e[2] = t[2] * u + r[2] * l + n[2] * h + o[2] * f),
            e
          );
        },
        random: function (e, t) {
          t = t || 1;
          const r = 2 * h() * Math.PI,
            n = 2 * h() - 1,
            o = Math.sqrt(1 - n * n) * t;
          return (e[0] = Math.cos(r) * o), (e[1] = Math.sin(r) * o), (e[2] = n * t), e;
        },
        transformMat4: q,
        transformMat3: T,
        transformQuat: P,
        rotateX: function (e, t, r, n) {
          const o = [],
            s = [];
          return (
            (o[0] = t[0] - r[0]),
            (o[1] = t[1] - r[1]),
            (o[2] = t[2] - r[2]),
            (s[0] = o[0]),
            (s[1] = o[1] * Math.cos(n) - o[2] * Math.sin(n)),
            (s[2] = o[1] * Math.sin(n) + o[2] * Math.cos(n)),
            (e[0] = s[0] + r[0]),
            (e[1] = s[1] + r[1]),
            (e[2] = s[2] + r[2]),
            e
          );
        },
        rotateY: function (e, t, r, n) {
          const o = [],
            s = [];
          return (
            (o[0] = t[0] - r[0]),
            (o[1] = t[1] - r[1]),
            (o[2] = t[2] - r[2]),
            (s[0] = o[2] * Math.sin(n) + o[0] * Math.cos(n)),
            (s[1] = o[1]),
            (s[2] = o[2] * Math.cos(n) - o[0] * Math.sin(n)),
            (e[0] = s[0] + r[0]),
            (e[1] = s[1] + r[1]),
            (e[2] = s[2] + r[2]),
            e
          );
        },
        rotateZ: function (e, t, r, n) {
          const o = [],
            s = [];
          return (
            (o[0] = t[0] - r[0]),
            (o[1] = t[1] - r[1]),
            (o[2] = t[2] - r[2]),
            (s[0] = o[0] * Math.cos(n) - o[1] * Math.sin(n)),
            (s[1] = o[0] * Math.sin(n) + o[1] * Math.cos(n)),
            (s[2] = o[2]),
            (e[0] = s[0] + r[0]),
            (e[1] = s[1] + r[1]),
            (e[2] = s[2] + r[2]),
            e
          );
        },
        angle: function (e, t) {
          d(E, e), d(A, t), M(E, E), M(A, A);
          const r = S(E, A);
          return r > 1 ? 0 : r < -1 ? Math.PI : Math.acos(r);
        },
        str: function (e) {
          return 'vec3(' + e[0] + ', ' + e[1] + ', ' + e[2] + ')';
        },
        exactEquals: C,
        equals: function (e, t) {
          const r = e[0],
            n = e[1],
            o = e[2],
            s = t[0],
            i = t[1],
            a = t[2];
          return (
            Math.abs(r - s) <= 1e-6 * Math.max(1, Math.abs(r), Math.abs(s)) &&
            Math.abs(n - i) <= 1e-6 * Math.max(1, Math.abs(n), Math.abs(i)) &&
            Math.abs(o - a) <= 1e-6 * Math.max(1, Math.abs(o), Math.abs(a))
          );
        },
        direction: L,
        sub: z,
        mul: I,
        div: $,
        dist: R,
        sqrDist: U,
        len: j,
        sqrLen: F,
      });
      const N = new Float32Array(1),
        D =
          Number.isFinite ||
          function (e) {
            return 'number' == typeof e && window.isFinite(e);
          },
        B =
          Number.isNaN ||
          function (e) {
            return e != e;
          };
      function W(e) {
        --e;
        for (let t = 1; t < 32; t <<= 1) e |= e >> t;
        return e + 1;
      }
      function H(e, t, r) {
        return Math.min(Math.max(e, t), r);
      }
      function Z(e) {
        return 0 == (e & (e - 1));
      }
      Math.sign;
      const G =
        Math.log2 ||
        function (e) {
          return Math.log(e) / Math.LN2;
        };
      function J(e, t, r) {
        return e + (t - e) * r;
      }
      function K(e) {
        return (e * Math.PI) / 180;
      }
      function Y(e) {
        return (180 * e) / Math.PI;
      }
      function V(e) {
        return Math.acos(H(e, -1, 1));
      }
      function Q(e) {
        return Math.asin(H(e, -1, 1));
      }
      function X(e, t) {
        const r = f(e);
        return p(t, r, Q(e[2] / r), Math.atan2(e[1] / r, e[0] / r)), t;
      }
      !(function (e) {
        (N[0] = e), N[0];
      })(34028234663852886e22);
    },
    71552: (e, t, r) => {
      'use strict';
      r.d(t, { d: () => o, g: () => s, s: () => i });
      var n = r(76506);
      function o(e, t, r = !1) {
        return c(e, t, r);
      }
      function s(e, t) {
        if (null != t) return t[e] || a(e.split('.'), !1, t);
      }
      function i(e, t, r) {
        const n = e.split('.'),
          o = n.pop(),
          s = a(n, !0, r);
        s && o && (s[o] = t);
      }
      function a(e, t, r) {
        let n = r;
        for (const r of e) {
          if (null == n) return;
          if (!(r in n)) {
            if (!t) return;
            n[r] = {};
          }
          n = n[r];
        }
        return n;
      }
      function c(e, t, r) {
        return t
          ? Object.keys(t).reduce(function (e, o) {
              let s = e[o],
                i = t[o];
              return s === i
                ? e
                : void 0 === s
                ? ((e[o] = (0, n.d9)(i)), e)
                : (Array.isArray(i) || Array.isArray(e)
                    ? ((s = s
                        ? Array.isArray(s)
                          ? (e[o] = s.concat())
                          : (e[o] = [s])
                        : (e[o] = [])),
                      i &&
                        (Array.isArray(i) || (i = [i]),
                        r
                          ? i.forEach((e) => {
                              -1 === s.indexOf(e) && s.push(e);
                            })
                          : (e[o] = i.concat())))
                    : i && 'object' == typeof i
                    ? (e[o] = c(s, i, r))
                    : (e.hasOwnProperty(o) && !t.hasOwnProperty(o)) || (e[o] = i),
                  e);
            }, e || {})
          : e;
      }
    },
    40642: (e, t, r) => {
      'use strict';
      r.d(t, { e: () => a, n: () => c, r: () => i, s: () => u });
      var n = r(71552);
      const o = /\{([^\}]+)\}/g;
      function s(e) {
        return null == e ? '' : e;
      }
      function i(e, t) {
        return e.replace(o, 'object' == typeof t ? (e, r) => s((0, n.g)(r, t)) : (e, r) => s(t(r)));
      }
      function a(e, t) {
        return e.replace(/([\.$?*|{}\(\)\[\]\\\/\+\-^])/g, (e) =>
          t && -1 !== t.indexOf(e) ? e : `\\${e}`,
        );
      }
      function c(e) {
        let t = 0;
        for (let r = 0; r < e.length; r++) (t = (t << 5) - t + e.charCodeAt(r)), (t |= 0);
        return t;
      }
      function u(e) {
        return new DOMParser().parseFromString(e || '', 'text/html').body.innerText || '';
      }
    },
    61568: (e, t, r) => {
      'use strict';
      r.r(t),
        r.d(t, {
          clearBoundingBoxCache: () => m,
          computeIconLayerResourceSize: () => w,
          computeLayerResourceSize: () => g,
          computeLayerSize: () => y,
          computeObjectLayerResourceSize: () => b,
        });
      var n = r(82058),
        o = r(60991),
        s = r(30831),
        i = r(76506),
        a = r(53326),
        c = r(82426);
      const u = (0, a.l)(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5),
        l = (0, a.l)(-0.5, -0.5, 0, 0.5, 0.5, 1),
        h = (0, a.l)(-0.5, -0.5, 0, 0.5, 0.5, 0.5);
      function f(e) {
        switch (e) {
          case 'sphere':
          case 'cube':
          case 'diamond':
            return u;
          case 'cylinder':
          case 'cone':
          case 'inverted-cone':
            return l;
          case 'tetrahedron':
            return h;
          default:
            return;
        }
      }
      r(31450),
        r(71552),
        r(88762),
        r(32101),
        r(92143),
        r(40642),
        r(81172),
        r(50406),
        r(91700),
        r(6906),
        r(27794),
        r(21801),
        r(34250),
        r(91306),
        r(86656),
        r(22723),
        r(17533),
        r(73796),
        r(74673),
        r(21972),
        r(23639),
        r(91055),
        r(26341),
        r(97714),
        r(60947),
        r(2906),
        r(91597),
        r(86787),
        r(35132),
        r(89623),
        r(92482);
      let d = p();
      function p() {
        return new s.I(50);
      }
      function m() {
        d = p();
      }
      function g(e, t) {
        if ('icon' === e.type) return w(e, t);
        if ('object' === e.type) return b(e, t);
        throw new o.Z(
          'symbol3d:unsupported-symbol-layer',
          'computeLayerSize only works with symbol layers of type Icon and Object',
        );
      }
      async function y(e, t) {
        if ('icon' === e.type)
          return (function (e, t) {
            return w(e, t).then((t) => {
              if (null == e.size) return t;
              const r = t[0] / t[1];
              return r > 1 ? [e.size, e.size / r] : [e.size * r, e.size];
            });
          })(e, t);
        if ('object' === e.type)
          return (async function (e, t) {
            return (function (e, { isPrimitive: t, width: r, depth: n, height: o }) {
              const s = t ? 10 : 1;
              if (null == r && null == o && null == n) return [s * e[0], s * e[1], s * e[2]];
              const i = (0, c.p)(r, n, o);
              let a;
              for (let t = 0; t < 3; t++) {
                const r = i[t];
                if (null != r) {
                  a = r / e[t];
                  break;
                }
              }
              for (let t = 0; t < 3; t++) null == i[t] && (i[t] = e[t] * a);
              return i;
            })(await b(e, t), e);
          })(e, t);
        throw new o.Z(
          'symbol3d:unsupported-symbol-layer',
          'computeLayerSize only works with symbol layers of type Icon and Object',
        );
      }
      async function w(e, t) {
        if (e.resource.href)
          return ((r = e.resource.href),
          (0, n.default)(r, { responseType: 'image' }).then((e) => e.data)).then((e) => [
            e.width,
            e.height,
          ]);
        var r;
        if (e.resource.primitive) return (0, i.i)(t) ? [t, t] : [256, 256];
        throw new o.Z(
          'symbol3d:invalid-symbol-layer',
          'symbol layers of type Icon must have either an href or a primitive resource',
        );
      }
      function b(e, t) {
        return (async function (e, t) {
          if (!e.isPrimitive) {
            const t = e.resource.href,
              n = d.get(t);
            if (void 0 !== n) return Promise.resolve(n);
            const o = await Promise.all([r.e(167), r.e(779), r.e(3283)])
                .then(r.bind(r, 83283))
                .then(function (e) {
                  return e.o;
                }),
              s = await o.fetch(t, { disableTextures: !0 });
            return d.put(t, s.referenceBoundingBox), s.referenceBoundingBox;
          }
          let n = null;
          if (
            e.resource &&
            e.resource.primitive &&
            ((n = (0, a.c)(f(e.resource.primitive))), (0, i.i)(t))
          )
            for (let e = 0; e < n.length; e++) n[e] *= t;
          return n
            ? Promise.resolve(n)
            : Promise.reject(
                new o.Z('symbol:invalid-resource', 'The symbol does not have a valid resource'),
              );
        })(e, t).then((e) => (0, a.y)(e));
      }
    },
    60991: (e, t, r) => {
      'use strict';
      r.d(t, { Z: () => a });
      var n = r(76506),
        o = r(92143),
        s = r(81172);
      r(31450), r(71552), r(40642);
      class i extends s.M {
        constructor(e, t, r) {
          if ((super(e, t, r), !(this instanceof i))) return new i(e, t, r);
        }
        toJSON() {
          if (null != this.details)
            try {
              return {
                name: this.name,
                message: this.message,
                details: JSON.parse(
                  JSON.stringify(this.details, (e, t) => {
                    if (t && 'object' == typeof t && 'function' == typeof t.toJSON) return t;
                    try {
                      return (0, n.d9)(t);
                    } catch (e) {
                      return '[object]';
                    }
                  }),
                ),
              };
            } catch (e) {
              throw (o.L.getLogger('esri.core.Error').error(e), e);
            }
          return { name: this.name, message: this.message, details: this.details };
        }
        static fromJSON(e) {
          return new i(e.name, e.message, e.details);
        }
      }
      i.prototype.type = 'error';
      const a = i;
    },
    86787: (e, t, r) => {
      'use strict';
      r.d(t, { p: () => c });
      var n = r(91306),
        o = r(86656);
      r(76506), r(92143), r(31450), r(71552), r(40642), r(22723);
      const s = Object.prototype.toString;
      function i(e) {
        const t = '__accessorMetadata__' in e ? (0, n.e)(e) : e;
        return function (...e) {
          if ((e.push(t), 'number' == typeof e[2]))
            throw new Error('Using @cast has parameter decorator is not supported since 4.16');
          return a.apply(this, e);
        };
      }
      function a(e, t, r, n) {
        (0, o.a)(e, t).cast = n;
      }
      function c(...e) {
        var t;
        if (3 !== e.length || 'string' != typeof e[1])
          return 1 === e.length && '[object Function]' === s.call(e[0])
            ? i(e[0])
            : 1 === e.length && 'string' == typeof e[0]
            ? ((t = e[0]),
              function (e, r) {
                (0, o.a)(e, t).cast = e[r];
              })
            : void 0;
      }
    },
    76506: (e, t, r) => {
      'use strict';
      r.d(t, {
        A: () => E,
        B: () => T,
        D: () => M,
        E: () => f,
        F: () => x,
        G: () => m,
        a: () => q,
        b: () => h,
        c: () => k,
        d9: () => I,
        d: () => g,
        e: () => O,
        fS: () => $,
        f: () => d,
        yd: () => z,
        g: () => n,
        h: () => u,
        i: () => l,
        j: () => y,
        k: () => v,
        l: () => w,
        m: () => S,
        n: () => _,
        p: () => L,
        q: () => C,
        r: () => b,
        s: () => P,
        u: () => p,
        y: () => A,
      });
      const n =
        'undefined' != typeof globalThis
          ? globalThis
          : 'undefined' != typeof self
          ? self
          : 'undefined' != typeof window
          ? window
          : void 0 !== r.g
          ? r.g
          : void 0;
      var o, s;
      let i;
      var a, c;
      function u(e) {
        return 'function' == typeof i[e] ? (i[e] = i[e](n)) : i[e];
      }
      function l(e) {
        return null != e;
      }
      function h(e) {
        return null == e;
      }
      function f(e) {
        return void 0 === e;
      }
      function d(e, t) {
        return l(e) ? t(e) : null;
      }
      function p(e) {
        return e;
      }
      function m(e, t) {
        if (h(e)) throw new Error(t);
        return e;
      }
      function g(e, t) {
        return l(e) ? e : 'function' == typeof t ? t() : t;
      }
      function y(e) {
        return l(e) && e.destroy(), null;
      }
      function w(e) {
        return l(e) && e.dispose(), null;
      }
      function b(e) {
        return l(e) && e.remove(), null;
      }
      function v(e) {
        return l(e) && e.release(), null;
      }
      function _(e) {
        return null;
      }
      function x(e, t) {
        const r = new Array();
        for (const n of e) r.push(S(n, null, t));
        return r;
      }
      function M(e, t) {
        for (const r of e) S(r, null, t);
      }
      function S(e, t, r) {
        return l(e) ? r(e) : t;
      }
      function O(e, t) {
        return l(e) ? t(e) : null;
      }
      function k(e, ...t) {
        let r = e;
        for (let e = 0; e < t.length && r; ++e) r = r[t[e]];
        return r;
      }
      function q(e) {
        return e;
      }
      function T(e, t) {
        if (e.forEach) e.forEach(t);
        else for (let r = 0; r < e.length; r++) t(e[r], r, e);
      }
      function P(e, t, r) {
        if (e.slice) return e.slice(t, r);
        void 0 === t
          ? (t = 0)
          : (t < 0 && (t += e.length), (t = Math.min(e.length, Math.max(0, t)))),
          void 0 === r
            ? (r = e.length)
            : (r < 0 && (r += e.length), (r = Math.min(e.length, Math.max(0, r))));
        const n = Math.max(0, r - t),
          o = new (0, e.constructor)(n);
        for (let r = 0; r < n; r++) o[r] = e[t + r];
        return o;
      }
      function E(e) {
        return (
          e instanceof ArrayBuffer || (e && e.constructor && 'ArrayBuffer' === e.constructor.name)
        );
      }
      function A(e) {
        return (
          e instanceof Uint8Array || (e && e.constructor && 'Uint8Array' === e.constructor.name)
        );
      }
      function C(e) {
        return (
          e instanceof Uint16Array || (e && e.constructor && 'Uint16Array' === e.constructor.name)
        );
      }
      function L(e) {
        return (
          e instanceof Uint32Array || (e && e.constructor && 'Uint32Array' === e.constructor.name)
        );
      }
      function z(e, t) {
        let r;
        if (t)
          for (r in e)
            e.hasOwnProperty(r) &&
              (void 0 === e[r] ? delete e[r] : e[r] instanceof Object && z(e[r], !0));
        else for (r in e) e.hasOwnProperty(r) && void 0 === e[r] && delete e[r];
        return e;
      }
      function I(e) {
        if (!e || 'object' != typeof e || 'function' == typeof e) return e;
        if (
          (t = e) instanceof Int8Array ||
          (t && t.constructor && 'Int8Array' === t.constructor.name) ||
          A(e) ||
          (function (e) {
            return (
              e instanceof Uint8ClampedArray ||
              (e && e.constructor && 'Uint8ClampedArray' === e.constructor.name)
            );
          })(e) ||
          (function (e) {
            return (
              e instanceof Int16Array || (e && e.constructor && 'Int16Array' === e.constructor.name)
            );
          })(e) ||
          C(e) ||
          (function (e) {
            return (
              e instanceof Int32Array || (e && e.constructor && 'Int32Array' === e.constructor.name)
            );
          })(e) ||
          L(e) ||
          (function (e) {
            return (
              e instanceof Float32Array ||
              (e && e.constructor && 'Float32Array' === e.constructor.name)
            );
          })(e) ||
          (function (e) {
            return (
              e instanceof Float64Array ||
              (e && e.constructor && 'Float64Array' === e.constructor.name)
            );
          })(e)
        )
          return P(e);
        var t;
        if (e instanceof Date) return new Date(e.getTime());
        if (e instanceof ArrayBuffer) return e.slice(0, e.byteLength);
        if (e instanceof Map) {
          const t = new Map();
          return (
            e.forEach((e, r) => {
              t.set(r, I(e));
            }),
            t
          );
        }
        if (e instanceof Set) {
          const t = new Set();
          return (
            e.forEach((e) => {
              t.add(I(e));
            }),
            t
          );
        }
        let r;
        const n = e;
        if ('function' == typeof n.clone) r = n.clone();
        else if ('function' == typeof n.map && 'function' == typeof n.forEach) r = n.map(I);
        else if ('function' == typeof n.notifyChange && 'function' == typeof n.watch) r = n.clone();
        else {
          r = {};
          for (const t of Object.getOwnPropertyNames(e)) r[t] = I(e[t]);
        }
        return r;
      }
      function $(e, t) {
        return (
          e === t ||
          ('number' == typeof e && isNaN(e) && 'number' == typeof t && isNaN(t)) ||
          ('function' == typeof (e || {}).getTime &&
            'function' == typeof (t || {}).getTime &&
            e.getTime() === t.getTime()) ||
          !1
        );
      }
      (i =
        (null != (o = n.dojoConfig) && o.has) || (null != (s = n.esriConfig) && s.has)
          ? {
              ...(null == (a = n.dojoConfig) ? void 0 : a.has),
              ...(null == (c = n.esriConfig) ? void 0 : c.has),
            }
          : {}),
        (u.add = (e, t, r, n) => ((n || void 0 === i[e]) && (i[e] = t), r && u(e))),
        (u.cache = i),
        u.add('esri-deprecation-warnings', !0),
        (() => {
          u.add(
            'host-webworker',
            void 0 !== n.WorkerGlobalScope && self instanceof n.WorkerGlobalScope,
          );
          const e =
            'undefined' != typeof window &&
            'undefined' != typeof location &&
            'undefined' != typeof document &&
            window.location === location &&
            window.document === document;
          if (
            (u.add('host-browser', e),
            u.add(
              'host-node',
              'object' == typeof n.process &&
                n.process.versions &&
                n.process.versions.node &&
                n.process.versions.v8,
            ),
            u.add('dom', e),
            u('host-browser'))
          ) {
            const e = navigator,
              t = e.userAgent,
              r = e.appVersion,
              n = parseFloat(r);
            if (
              (u.add('wp', parseFloat(t.split('Windows Phone')[1]) || void 0),
              u.add('msapp', parseFloat(t.split('MSAppHost/')[1]) || void 0),
              u.add('khtml', r.includes('Konqueror') ? n : void 0),
              u.add('edge', parseFloat(t.split('Edge/')[1]) || void 0),
              u.add('opr', parseFloat(t.split('OPR/')[1]) || void 0),
              u.add(
                'webkit',
                (!u('wp') && !u('edge') && parseFloat(t.split('WebKit/')[1])) || void 0,
              ),
              u.add(
                'chrome',
                (!u('edge') && !u('opr') && parseFloat(t.split('Chrome/')[1])) || void 0,
              ),
              u.add('android', (!u('wp') && parseFloat(t.split('Android ')[1])) || void 0),
              u.add(
                'safari',
                !r.includes('Safari') ||
                  u('wp') ||
                  u('chrome') ||
                  u('android') ||
                  u('edge') ||
                  u('opr')
                  ? void 0
                  : parseFloat(r.split('Version/')[1]),
              ),
              u.add('mac', r.includes('Macintosh')),
              !u('wp') && t.match(/(iPhone|iPod|iPad)/))
            ) {
              const e = RegExp.$1.replace(/P/, 'p'),
                r = t.match(/OS ([\d_]+)/) ? RegExp.$1 : '1',
                n = parseFloat(r.replace(/_/, '.').replace(/_/g, ''));
              u.add(e, n), u.add('ios', n);
            }
            u.add('trident', parseFloat(r.split('Trident/')[1]) || void 0),
              u('webkit') ||
                (!t.includes('Gecko') ||
                  u('wp') ||
                  u('khtml') ||
                  u('trident') ||
                  u('edge') ||
                  u.add('mozilla', n),
                u('mozilla') &&
                  u.add(
                    'ff',
                    parseFloat(t.split('Firefox/')[1] || t.split('Minefield/')[1]) || void 0,
                  ));
          }
        })(),
        (() => {
          if (n.navigator) {
            const e = navigator.userAgent,
              t = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile/i.test(e),
              r = /iPhone/i.test(e);
            t && u.add('esri-mobile', t),
              r && u.add('esri-iPhone', r),
              u.add('esri-geolocation', !!navigator.geolocation);
          }
          u.add('esri-canvas-svg-support', !u('trident')),
            u.add('esri-wasm', 'WebAssembly' in n),
            u.add('esri-shared-array-buffer', () => {
              const e = 'SharedArrayBuffer' in n,
                t = !1 === n.crossOriginIsolated;
              return e && !t;
            }),
            u.add('esri-atomics', 'Atomics' in n),
            u.add('esri-workers', 'Worker' in n),
            u.add('esri-text-decoder', 'TextDecoder' in n),
            u.add('esri-text-encoder', 'TextEncoder' in n),
            u.add('web-feat:cache', 'caches' in n),
            u.add('esri-workers-arraybuffer-transfer', !u('safari') || Number(u('safari')) >= 12),
            u.add('featurelayer-snapshot-enabled', !0),
            u.add('featurelayer-snapshot-point-min-threshold', 8e4),
            u.add('featurelayer-snapshot-point-max-threshold', 4e5),
            u.add('featurelayer-snapshot-point-coverage', 0.1),
            u.add('featurelayer-advanced-symbols', !1),
            u.add('featurelayer-pbf', !0),
            u.add('featurelayer-pbf-statistics', !1),
            u.add('feature-layers-workers', !0),
            u.add('mapview-transitions-duration', 200),
            u.add('mapserver-pbf-enabled', !1),
            u('host-webworker') ||
              (u('host-browser') &&
                (u.add('csp-restrictions', () => {
                  try {
                    new Function();
                  } catch {
                    return !0;
                  }
                  return !1;
                }),
                u.add('esri-image-decode', () => {
                  if ('decode' in new Image()) {
                    const e = new Image();
                    return (
                      (e.src =
                        'data:image/svg+xml;charset=UTF-8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg"></svg>'),
                      void e
                        .decode()
                        .then(() => {
                          u.add('esri-image-decode', !0, !0, !0);
                        })
                        .catch(() => {
                          u.add('esri-image-decode', !1, !0, !0);
                        })
                    );
                  }
                  return !1;
                }),
                u.add('esri-url-encodes-apostrophe', () => {
                  const e = n.document.createElement('a');
                  return (e.href = "?'"), e.href.includes('?%27');
                }),
                u.add('vectortilelayer-max-buffers', u('ff') ? 160 : Number.POSITIVE_INFINITY)));
        })();
    },
    50406: (e, t, r) => {
      'use strict';
      r.d(t, {
        e4: () => P,
        $6: () => l,
        Ue: () => h,
        yi: () => d,
        zE: () => f,
        dD: () => S,
        hh: () => z,
        vr: () => I,
        Ds: () => L,
        as: () => O,
        WW: () => k,
        i: () => a,
        R8: () => M,
        D_: () => x,
        Hc: () => g,
        tI: () => C,
        y8: () => E,
        o: () => c,
        fu: () => b,
        $F: () => v,
        d1: () => q,
        DB: () => T,
        r9: () => y,
        k_: () => p,
        H9: () => w,
        gx: () => A,
        Hl: () => _,
      });
      var n,
        o = r(76506),
        s = r(60991),
        i =
          (r(92143),
          r(81172),
          r(71552),
          r(31450),
          r(40642),
          (n = o.g),
          {
            setTimeout: (e, t) => {
              const r = n.setTimeout(e, t);
              return { remove: () => n.clearTimeout(r) };
            },
          });
      function a(e) {
        return e && ('function' == typeof e.on || 'function' == typeof e.addEventListener);
      }
      function c(e, t, r) {
        if (!a(e)) throw new TypeError('target is not a Evented or EventTarget object');
        if ('on' in e) return e.on(t, r);
        if (Array.isArray(t)) {
          const n = t.slice();
          for (const t of n) e.addEventListener(t, r);
          return {
            remove() {
              for (const t of n) e.removeEventListener(t, r);
            },
          };
        }
        return (
          e.addEventListener(t, r),
          {
            remove() {
              e.removeEventListener(t, r);
            },
          }
        );
      }
      function u(e, t, r) {
        if (!a(e)) throw new TypeError('target is not a Evented or EventTarget object');
        if ('once' in e) return e.once(t, r);
        const n = c(e, t, (t) => {
          n.remove(), r.call(e, t);
        });
        return {
          remove() {
            n.remove();
          },
        };
      }
      function l(e) {
        return Promise.all(e);
      }
      function h(e) {
        return new Promise((t, r) => {
          try {
            e(t, r);
          } catch (e) {
            Promise.resolve().then(() => r(e));
          }
        });
      }
      function f(e = 'Aborted') {
        return new s.Z('AbortError', e);
      }
      function d() {
        return new AbortController();
      }
      function p(e, t = 'Aborted') {
        if (g(e)) throw f(t);
      }
      function m(e) {
        return (0, o.i)(e) ? ('aborted' in e ? e : e.signal) : e;
      }
      function g(e) {
        const t = m(e);
        return (0, o.i)(t) && t.aborted;
      }
      function y(e) {
        if (x(e)) throw e;
      }
      function w(e) {
        if (!x(e)) throw e;
      }
      function b(e, t) {
        const r = m(e);
        if (!(0, o.b)(r)) {
          if (!r.aborted) return u(r, 'abort', () => t());
          t();
        }
      }
      function v(e, t) {
        const r = m(e);
        if (!(0, o.b)(r)) return p(r), u(r, 'abort', () => t(f()));
      }
      function _(e, t) {
        const r = m(t);
        return (0, o.b)(r)
          ? e
          : new Promise((r, n) => {
              let s = b(t, () => n(f()));
              const i = () => (s = (0, o.r)(s));
              e.then(i, i), e.then(r, n);
            });
      }
      function x(e) {
        return e && 'AbortError' === e.name;
      }
      function M(e) {
        return e.catch((e) => {
          if (!x(e)) throw e;
        });
      }
      function S() {
        let e = null;
        const t = new Promise((t, r) => {
          e = { promise: void 0, resolve: t, reject: r };
        });
        return (e.promise = t), e;
      }
      function O(e) {
        if (!e) return;
        if ('function' != typeof e.forEach) {
          const t = Object.keys(e);
          return O(t.map((t) => e[t])).then((e) => {
            const r = {};
            return t.forEach((t, n) => (r[t] = e[n])), r;
          });
        }
        const t = e;
        return h((e) => {
          const r = [];
          let n = t.length;
          0 === n && e(r),
            t.forEach((t) => {
              const o = { promise: t || Promise.resolve(t) };
              r.push(o),
                o.promise
                  .then((e) => {
                    o.value = e;
                  })
                  .catch((e) => {
                    o.error = e;
                  })
                  .then(() => {
                    --n, 0 === n && e(r);
                  });
            });
        });
      }
      function k(e) {
        return O(e).then((e) => e.filter((e) => !!e.value).map((e) => e.value));
      }
      function q(e) {
        return Promise.reject(e);
      }
      function T(e) {
        return Promise.resolve(e);
      }
      function P(e, t, r) {
        const n = d();
        return (
          b(r, () => n.abort()),
          new Promise((r, o) => {
            let s = setTimeout(() => {
              (s = 0), r(t);
            }, e);
            b(n, () => {
              s && (clearTimeout(s), o(f()));
            });
          })
        );
      }
      function E(e) {
        return e && 'function' == typeof e.then;
      }
      function A(e) {
        return C(e) ? e : Promise.resolve(e);
      }
      function C(e) {
        return e && 'object' == typeof e && 'then' in e && 'function' == typeof e.then;
      }
      function L(e, t = -1) {
        let r,
          n,
          s,
          i,
          a = null;
        const c = (...u) => {
          if (r) {
            (n = u), i && i.reject(f()), (i = S());
            const e = (0, o.a)(i.promise);
            if (a) {
              const e = a;
              (a = null), e.abort();
            }
            return e;
          }
          if (((s = i || S()), (i = null), t > 0)) {
            const n = d();
            r = A(e(...u, n.signal));
            const o = r;
            P(t).then(() => {
              r === o && (i ? n.abort() : (a = n));
            });
          } else (r = 1), (r = A(e(...u)));
          const l = () => {
              const e = n;
              (n = s = r = a = null), null != e && c(...e);
            },
            h = r,
            p = s;
          return h.then(l, l), h.then(p.resolve, p.reject), (0, o.a)(p.promise);
        };
        return c;
      }
      function z() {
        let e, t;
        const r = new Promise((r, n) => {
            (e = r), (t = n);
          }),
          n = (t) => {
            e(t);
          };
        return (
          (n.resolve = (t) => e(t)),
          (n.reject = (e) => t(e)),
          (n.timeout = (e, t) => i.setTimeout(() => n.reject(t), e)),
          (n.promise = r),
          n
        );
      }
      function I(e) {
        let t = d();
        const r = e(t.signal);
        let n = {
          promise: r,
          finished: !1,
          abort: () => {
            t && (t.abort(), (t = null));
          },
        };
        const o = () => {
          n && ((n.finished = !0), (n = null)), (t = null);
        };
        return r.then(o, o), n;
      }
    },
    32101: (e, t, r) => {
      'use strict';
      r.d(t, {
        R9: () => w,
        qg: () => q,
        tD: () => A,
        ZN: () => ue,
        fl: () => le,
        AX: () => _,
        Gd: () => b,
        Ie: () => ie,
        sJ: () => K,
        AH: () => G,
        vt: () => oe,
        oh: () => I,
        P$: () => B,
        Ml: () => he,
        ed: () => C,
        b7: () => k,
        D6: () => $,
        tm: () => L,
        YP: () => W,
        jc: () => H,
        HK: () => Z,
        $U: () => X,
        oC: () => V,
        kl: () => R,
        v_: () => D,
        hF: () => j,
        _l: () => Y,
        PF: () => F,
        Fv: () => N,
        B7: () => O,
        u0: () => M,
        Yd: () => ne,
        Hu: () => ce,
        Qj: () => se,
        hO: () => ee,
        mN: () => x,
      });
      var n = r(31450),
        o = r(60991),
        s = r(76506),
        i = r(92143);
      r(71552), r(81172), r(40642);
      const a = i.L.getLogger('esri.core.urlUtils'),
        c = n.Z.request,
        u = 'esri/config: esriConfig.request.proxyUrl is not set.',
        l = /^\s*[a-z][a-z0-9-+.]*:(?![0-9])/i,
        h = /^\s*http:/i,
        f = /^\s*https:/i,
        d = /^\s*file:/i,
        p = /:\d+$/,
        m = /^https?:\/\/[^/]+\.arcgis.com\/sharing(\/|$)/i,
        g = new RegExp('^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$'),
        y = new RegExp('^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$');
      class w {
        constructor(e = '') {
          (this.uri = e),
            (this.scheme = null),
            (this.authority = null),
            (this.path = null),
            (this.query = null),
            (this.fragment = null),
            (this.user = null),
            (this.password = null),
            (this.host = null),
            (this.port = null);
          let t = (0, s.a)(this.uri.match(g));
          (this.scheme = t[2] || (t[1] ? '' : null)),
            (this.authority = t[4] || (t[3] ? '' : null)),
            (this.path = t[5]),
            (this.query = t[7] || (t[6] ? '' : null)),
            (this.fragment = t[9] || (t[8] ? '' : null)),
            null != this.authority &&
              ((t = (0, s.a)(this.authority.match(y))),
              (this.user = t[3] || null),
              (this.password = t[4] || null),
              (this.host = t[6] || t[7]),
              (this.port = t[9] || null));
        }
        toString() {
          return this.uri;
        }
      }
      const b = new w(n.Z.applicationUrl),
        v = {},
        _ = (() => {
          const e = (0, s.a)(b.path),
            t = e.substring(0, e.lastIndexOf(e.split('/')[e.split('/').length - 1]));
          return `${b.scheme}://${b.host}${null != b.port ? `:${b.port}` : ''}${t}`;
        })();
      function x(e) {
        const t = { path: null, query: null },
          r = new w(e),
          n = e.indexOf('?');
        return (
          null === r.query ? (t.path = e) : ((t.path = e.substring(0, n)), (t.query = M(r.query))),
          r.fragment &&
            ((t.hash = r.fragment),
            null === r.query &&
              (t.path = t.path.substring(0, t.path.length - (r.fragment.length + 1)))),
          t
        );
      }
      function M(e) {
        const t = e.split('&'),
          r = {};
        for (const e of t) {
          if (!e) continue;
          const t = e.indexOf('=');
          let n, o;
          t < 0
            ? ((n = decodeURIComponent(e)), (o = ''))
            : ((n = decodeURIComponent(e.slice(0, t))), (o = decodeURIComponent(e.slice(t + 1))));
          let s = r[n];
          'string' == typeof s && (s = r[n] = [s]), Array.isArray(s) ? s.push(o) : (r[n] = o);
        }
        return r;
      }
      function S(e) {
        return e && 'object' == typeof e && 'toJSON' in e && 'function' == typeof e.toJSON;
      }
      function O(e, t) {
        return e
          ? t && 'function' == typeof t
            ? Object.keys(e)
                .map((r) => encodeURIComponent(r) + '=' + encodeURIComponent(t(r, e[r])))
                .join('&')
            : Object.keys(e)
                .map((r) => {
                  const n = e[r];
                  if (null == n) return '';
                  const o = encodeURIComponent(r) + '=',
                    s = t && t[r];
                  return s
                    ? o + encodeURIComponent(s(n))
                    : Array.isArray(n)
                    ? n
                        .map((e) =>
                          S(e)
                            ? o + encodeURIComponent(JSON.stringify(e))
                            : o + encodeURIComponent(e),
                        )
                        .join('&')
                    : S(n)
                    ? o + encodeURIComponent(JSON.stringify(n))
                    : o + encodeURIComponent(n);
                })
                .filter((e) => e)
                .join('&')
          : '';
      }
      function k(e = !1) {
        let t,
          r = c.proxyUrl;
        if ('string' == typeof e) {
          t = X(e);
          const n = C(e);
          n && (r = n.proxyUrl);
        } else t = !!e;
        if (!r) throw (a.warn(u), new o.Z('urlutils:proxy-not-set', u));
        return t && te() && (r = ee(r)), x(r);
      }
      function q(e) {
        const t = C(e);
        let r, n;
        if (t) {
          const e = P(t.proxyUrl);
          (r = e.path), (n = e.query ? M(e.query) : null);
        }
        if (r) {
          const t = x(e);
          e = r + '?' + t.path;
          const o = O({ ...n, ...t.query });
          o && (e = `${e}?${o}`);
        }
        return e;
      }
      const T = { path: '', query: '' };
      function P(e) {
        const t = e.indexOf('?');
        return (
          -1 !== t
            ? ((T.path = e.slice(0, t)), (T.query = e.slice(t + 1)))
            : ((T.path = e), (T.query = null)),
          T
        );
      }
      function E(e) {
        return (e = re(
          (e = (function (e) {
            return e && '/' === e[e.length - 1] ? e : `${e}/`;
          })((e = P(e).path))),
          !0,
        )).toLowerCase();
      }
      function A(e) {
        const t = { proxyUrl: e.proxyUrl, urlPrefix: E(e.urlPrefix) },
          r = c.proxyRules,
          n = t.urlPrefix;
        let o = r.length;
        for (let e = 0; e < r.length; e++) {
          const t = r[e].urlPrefix;
          if (0 === n.indexOf(t)) {
            if (n.length === t.length) return -1;
            o = e;
            break;
          }
          0 === t.indexOf(n) && (o = e + 1);
        }
        return r.splice(o, 0, t), o;
      }
      function C(e) {
        const t = c.proxyRules,
          r = E(e);
        for (let e = 0; e < t.length; e++) if (0 === r.indexOf(t[e].urlPrefix)) return t[e];
      }
      function L(e, t) {
        return (e = z(e)), (t = z(t)), re(e) === re(t);
      }
      function z(e) {
        const t = (e = N(e)).indexOf('/sharing');
        return t > 0 ? e.substring(0, t) : e.replace(/\/+$/, '');
      }
      function I(e) {
        const t = (t) =>
            null == t ||
            (t instanceof RegExp && t.test(e)) ||
            ('string' == typeof t && e.startsWith(t)),
          r = c.interceptors;
        if (r)
          for (const e of r)
            if (Array.isArray(e.urls)) {
              if (e.urls.some(t)) return e;
            } else if (t(e.urls)) return e;
        return null;
      }
      function $(e, t, r = !1) {
        const n = ae(e),
          o = ae(t);
        return (
          !(!r && n.scheme !== o.scheme) &&
          null != n.host &&
          null != o.host &&
          n.host.toLowerCase() === o.host.toLowerCase() &&
          n.port === o.port
        );
      }
      function R(e) {
        if ('string' == typeof e) {
          if (!W(e)) return !0;
          e = ae(e);
        }
        if ($(e, b)) return !0;
        const t = c.trustedServers || [];
        for (let r = 0; r < t.length; r++) {
          const n = U(t[r]);
          for (let t = 0; t < n.length; t++) if ($(e, n[t])) return !0;
        }
        return !1;
      }
      function U(e) {
        return (
          v[e] ||
            (Q(e) || V(e)
              ? (v[e] = [new w(j(e))])
              : (v[e] = [new w(`http://${e}`), new w(`https://${e}`)])),
          v[e]
        );
      }
      function j(e, t = _, r) {
        return V(e)
          ? r && r.preserveProtocolRelative
            ? e
            : 'http' === b.scheme && b.authority === B(e).slice(2)
            ? `http:${e}`
            : `https:${e}`
          : Q(e)
          ? e
          : (0, s.a)(
              D(
                '/' === e[0]
                  ? (function (e) {
                      const t = e.indexOf('//'),
                        r = e.indexOf('/', t + 2);
                      return -1 === r ? e : e.slice(0, r);
                    })(t)
                  : t,
                e,
              ),
            );
      }
      function F(e, t = _, r) {
        if (!W(e)) return e;
        const n = N(e),
          o = n.toLowerCase(),
          s = N(t).toLowerCase().replace(/\/+$/, ''),
          i = r ? N(r).toLowerCase().replace(/\/+$/, '') : null;
        if (i && 0 !== s.indexOf(i)) return e;
        const a = (e, t, r) => (-1 === (r = e.indexOf(t, r)) ? e.length : r);
        let c = a(o, '/', o.indexOf('//') + 2),
          u = -1;
        for (; o.slice(0, c + 1) === s.slice(0, c) + '/' && ((u = c + 1), c !== o.length); )
          c = a(o, '/', c + 1);
        if (-1 === u) return e;
        if (i && u < i.length) return e;
        e = n.slice(u);
        const l = s.slice(u - 1).replace(/[^/]+/g, '').length;
        if (l > 0) for (let t = 0; t < l; t++) e = `../${e}`;
        else e = `./${e}`;
        return e;
      }
      function N(e) {
        return (function (e) {
          const t = c.httpsDomains;
          if (
            !(function (e) {
              return h.test(e) || ('http' === b.scheme && V(e));
            })(e)
          )
            return e;
          const r = e.indexOf('/', 7);
          let n;
          if (((n = -1 === r ? e : e.slice(0, r)), (n = n.toLowerCase().slice(7)), p.test(n))) {
            if (!n.endsWith(':80')) return e;
            (n = n.slice(0, -3)), (e = e.replace(':80', ''));
          }
          return 'http' !== b.scheme || n !== b.authority || m.test(e)
            ? (((te() && n === b.authority) ||
                (t && t.some((e) => n === e || n.endsWith(`.${e}`))) ||
                (te() && !C(e))) &&
                (e = ee(e)),
              e)
            : e;
        })(
          (e = (function (e) {
            return e.replace(/^(https?:\/\/)(arcgis\.com)/i, '$1www.$2');
          })(
            (e = (function (e) {
              if (/^https?:\/\//i.test(e)) {
                const t = P(e);
                (e = (e = t.path.replace(/\/{2,}/g, '/')).replace('/', '//')),
                  t.query && (e += `?${t.query}`);
              }
              return e;
            })((e = j((e = e.trim()))))),
          )),
        );
      }
      function D(...e) {
        const t = e.filter(s.i);
        if (!t || !t.length) return;
        const r = [];
        if (W(t[0])) {
          const e = t[0],
            o = e.indexOf('//');
          -1 !== o &&
            (r.push(e.slice(0, o + 1)),
            (n = t[0]),
            d.test(n) && (r[0] += '/'),
            (t[0] = e.slice(o + 2)));
        } else '/' === t[0][0] && r.push('');
        var n;
        const o = t.reduce((e, t) => (t ? e.concat(t.split('/')) : e), []);
        for (let e = 0; e < o.length; e++) {
          const t = o[e];
          '..' === t && r.length > 0 && '..' !== r[r.length - 1]
            ? r.pop()
            : ((!t && e === o.length - 1) || (t && ('.' !== t || 0 === r.length))) && r.push(t);
        }
        return r.join('/');
      }
      function B(e, t = !1) {
        if (H(e) || Z(e)) return null;
        let r = e.indexOf('://');
        if (-1 === r && V(e)) r = 2;
        else {
          if (-1 === r) return null;
          r += 3;
        }
        const n = e.indexOf('/', r);
        return -1 !== n && (e = e.slice(0, n)), t && (e = re(e, !0)), e;
      }
      function W(e) {
        return V(e) || Q(e);
      }
      function H(e) {
        return null != e && 'blob:' === e.slice(0, 5);
      }
      function Z(e) {
        return 'data:' === e.slice(0, 5);
      }
      function G(e) {
        const t = K(e);
        if (!t || !t.isBase64) return null;
        const r = atob(t.data),
          n = new Uint8Array(r.length);
        for (let e = 0; e < r.length; e++) n[e] = r.charCodeAt(e);
        return n.buffer;
      }
      const J = /^data:(.*?)(;base64)?,(.*)$/;
      function K(e) {
        const t = e.match(J);
        if (!t) return null;
        const [, r, n, o] = t;
        return { mediaType: r, isBase64: !!n, data: o };
      }
      function Y(e) {
        return e.isBase64
          ? `data:${e.mediaType};base64,${e.data}`
          : `data:${e.mediaType},${e.data}`;
      }
      function V(e) {
        return null != e && void 0 !== e && '/' === e[0] && '/' === e[1];
      }
      function Q(e) {
        return l.test(e);
      }
      function X(e) {
        return f.test(e) || ('https' === b.scheme && V(e));
      }
      function ee(e) {
        return V(e) ? `https:${e}` : e.replace(h, 'https:');
      }
      function te() {
        return 'https' === b.scheme;
      }
      function re(e, t = !1) {
        return V(e)
          ? e.slice(2)
          : ((e = e.replace(l, '')),
            t && e.length > 1 && '/' === e[0] && '/' === e[1] && (e = e.slice(2)),
            e);
      }
      function ne(e) {
        let t = 0;
        if (W(e)) {
          const r = e.indexOf('//');
          -1 !== r && (t = r + 2);
        }
        const r = e.lastIndexOf('/');
        return r < t ? e : e.slice(0, r + 1);
      }
      function oe(e, t) {
        if (!e) return '';
        const r = x(e).path.replace(/\/+$/, ''),
          n = r.substring(r.lastIndexOf('/') + 1);
        if (null == t || !t.length) return n;
        const o = new RegExp(`.(${t.join('|')})$`, 'ig');
        return n.replace(o, '');
      }
      function se(e) {
        return e.replace(/\/+$/, '');
      }
      function ie(e, t, r) {
        if (!(t && r && e && W(e))) return e;
        const n = e.indexOf('//'),
          o = e.indexOf('/', n + 2),
          s = e.indexOf(':', n + 2),
          i = Math.min(o < 0 ? e.length : o, s < 0 ? e.length : s);
        return e.slice(n + 2, i).toLowerCase() !== t.toLowerCase()
          ? e
          : `${e.slice(0, n + 2)}${r}${e.slice(i)}`;
      }
      function ae(e) {
        return 'string' == typeof e ? new w(j(e)) : (e.scheme || (e.scheme = b.scheme), e);
      }
      function ce(e, t) {
        const r = x(e),
          n = Object.keys(r.query || {});
        return (
          n.length > 0 &&
            t &&
            t.warn(
              'removeQueryParameters()',
              `Url query parameters are not supported, the following parameters have been removed: ${n.join(
                ', ',
              )}.`,
            ),
          r.path
        );
      }
      function ue(e, t, r) {
        const n = x(e),
          o = n.query || {};
        return (o[t] = String(r)), `${n.path}?${O(o)}`;
      }
      function le(e, t) {
        const r = x(e),
          n = r.query || {};
        for (const e in t) n[e] = t[e];
        const o = O(n);
        return o ? `${r.path}?${o}` : r.path;
      }
      function he(e) {
        if ((0, s.b)(e)) return null;
        const t = e.match(fe);
        return t ? t[1] : null;
      }
      const fe = /.*?\.([^\/]*)$/;
    },
    88762: (e, t, r) => {
      'use strict';
      r.d(t, {
        Dp: () => h,
        rh: () => s,
        id: () => u,
        LB: () => i,
        qh: () => l,
        i8: () => a,
        Nv: () => c,
      });
      var n = r(76506),
        o = r(32101);
      r(31450), r(71552), r(60991), r(92143), r(40642), r(81172);
      const s = '20210806',
        i = 'd1c4ecf1457c4e5613ee54ecf4ec0563e3153413',
        a = '4.20',
        c = {
          request(e, t) {
            var n;
            const o = null == (n = e.options) ? void 0 : n.responseType;
            return r
              .e(2058)
              .then(r.bind(r, 82058))
              .then(function (e) {
                return e.r;
              })
              .then(({ default: r }) => {
                const n = e.options || {};
                return (
                  (n.responseType =
                    'native' === o || 'native-request-init' === o
                      ? 'native-request-init'
                      : 'array-buffer'),
                  (n.signal = null == t ? void 0 : t.signal),
                  r(e.url, n)
                );
              })
              .then((e) => {
                const t = { data: e.data, ssl: e.ssl };
                return 'native-request-init' === e.requestOptions.responseType
                  ? (delete t.data.signal, t)
                  : { result: t, transferList: [t.data] };
              });
          },
        };
      let u;
      function l(e) {
        u = e;
      }
      function h(e) {
        const t = u && u.findCredential(e);
        return t && t.token ? (0, o.ZN)(e, 'token', t.token) : e;
      }
      (0, n.h)('host-webworker') ||
        (console.debug(
          `Using ArcGIS API for JavaScript 4.20 [Date: 20210806, Revision: ${i.slice(0, 8)}]`,
        ),
        ((0, n.h)('edge') || (0, n.h)('trident')) &&
          console.warn('Deprecated browser - see http://esriurl.com/oldbrowser'));
    },
    82058: (e, t, r) => {
      'use strict';
      r.r(t), r.d(t, { default: () => A, l: () => h, r: () => E, s: () => l });
      var n = r(31450),
        o = r(88762),
        s = r(60991),
        i = r(76506),
        a = r(50406),
        c = r(32101);
      r(71552), r(92143), r(40642), r(81172);
      const u = [
        'elevation3d.arcgis.com',
        'js.arcgis.com',
        'jsdev.arcgis.com',
        'jsqa.arcgis.com',
        'static.arcgis.com',
      ];
      function l(e) {
        const t = (0, c.P$)(e, !0);
        return (
          t &&
          t.endsWith('.arcgis.com') &&
          !u.includes(t) &&
          !e.endsWith('/sharing/rest/generateToken')
        );
      }
      function h(e, t, r = !1, n) {
        return new Promise((o, s) => {
          if ((0, a.Hc)(n)) return void s(f());
          let c = () => {
              h(), s(new Error(`Unable to load ${t}`));
            },
            u = () => {
              const t = e;
              h(), o(t);
            },
            l = () => {
              if (!e) return;
              const t = e;
              h(), (t.src = ''), s(f());
            };
          const h = () => {
            (0, i.h)('esri-image-decode') ||
              (e.removeEventListener('error', c), e.removeEventListener('load', u)),
              (c = null),
              (u = null),
              (e = null),
              (0, i.i)(n) && n.removeEventListener('abort', l),
              (l = null),
              r && URL.revokeObjectURL(t);
          };
          (0, i.i)(n) && n.addEventListener('abort', l),
            (0, i.h)('esri-image-decode')
              ? e.decode().then(u, c)
              : (e.addEventListener('error', c), e.addEventListener('load', u));
        });
      }
      function f() {
        try {
          return new DOMException('Aborted', 'AbortError');
        } catch {
          const e = new Error();
          return (e.name = 'AbortError'), e;
        }
      }
      async function d(e, t) {
        const u = (0, c.HK)(e),
          h = (0, c.jc)(e);
        h || u || (e = (0, c.Fv)(e));
        const f = { url: e, requestOptions: { ...(0, i.u)(t) } };
        let y = (0, c.oh)(e);
        if (y) {
          const e = await (async function (e, t) {
            if (null != e.responseData) return e.responseData;
            if (
              (e.headers &&
                (t.requestOptions.headers = { ...t.requestOptions.headers, ...e.headers }),
              e.query && (t.requestOptions.query = { ...t.requestOptions.query, ...e.query }),
              e.before)
            ) {
              let r, n;
              try {
                n = await e.before(t);
              } catch (e) {
                r = M('request:interceptor', e, t);
              }
              if (
                ((n instanceof Error || n instanceof s.Z) && (r = M('request:interceptor', n, t)),
                r)
              )
                throw (e.error && e.error(r), r);
              return n;
            }
          })(y, f);
          if (null != e)
            return { data: e, getHeader: v, requestOptions: f.requestOptions, url: f.url };
          y.after || y.error || (y = null);
        }
        if (((e = f.url), 'image' === (t = f.requestOptions).responseType)) {
          if ((0, i.h)('host-webworker') || (0, i.h)('host-node'))
            throw M(
              'request:invalid-parameters',
              new Error("responseType 'image' is not supported in Web Workers or Node environment"),
              f,
            );
        } else if (u)
          throw M(
            'request:invalid-parameters',
            new Error('Data URLs are not supported for responseType = ' + t.responseType),
            f,
          );
        if ('head' === t.method) {
          if (t.body)
            throw M(
              'request:invalid-parameters',
              new Error("body parameter cannot be set when method is 'head'"),
              f,
            );
          if (u || h)
            throw M(
              'request:invalid-parameters',
              new Error("data and blob URLs are not supported for method 'head'"),
              f,
            );
        }
        if (
          (await (async function () {
            (0, i.h)('host-webworker')
              ? p || (p = await r.e(9768).then(r.bind(r, 89768)))
              : d._abortableFetch || (d._abortableFetch = i.g.fetch.bind(i.g));
          })(),
          p)
        )
          return p.execute(e, t);
        const w = (0, a.yi)();
        (0, a.fu)(t, () => w.abort());
        const b = {
            controller: w,
            credential: null,
            credentialToken: null,
            fetchOptions: null,
            hasToken: !1,
            interceptor: y,
            params: f,
            redoRequest: !1,
            useIdentity: m.useIdentity,
            useProxy: !1,
            useSSL: !1,
            withCredentials: !1,
          },
          _ = await (async function (e) {
            var t, r;
            let s, u;
            await (async function (e) {
              const t = e.params.url,
                r = e.params.requestOptions,
                s = e.controller.signal,
                c = r.body;
              let u = null,
                h = null,
                f = null;
              if (
                (g &&
                  'HTMLFormElement' in i.g &&
                  (c instanceof FormData
                    ? (u = c)
                    : c instanceof HTMLFormElement && ((h = c), (u = new FormData(h)))),
                'string' == typeof c && (f = c),
                (e.fetchOptions = {
                  cache: r.cacheBust && !d._abortableFetch.polyfill ? 'no-cache' : 'default',
                  credentials: 'same-origin',
                  headers: r.headers || {},
                  method: 'head' === r.method ? 'HEAD' : 'GET',
                  mode: 'cors',
                  redirect: 'follow',
                  signal: s,
                }),
                (u || f) && (e.fetchOptions.body = u || f),
                'anonymous' === r.authMode && (e.useIdentity = !1),
                (e.hasToken = !!(
                  /token=/i.test(t) ||
                  (r.query && r.query.token) ||
                  (u && u.get && u.get('token')) ||
                  (h && h.elements.token)
                )),
                !e.hasToken &&
                  n.Z.apiKey &&
                  l(t) &&
                  (r.query || (r.query = {}), (r.query.token = n.Z.apiKey), (e.hasToken = !0)),
                e.useIdentity && !e.hasToken && !e.credentialToken && !O(t) && !(0, a.Hc)(s))
              ) {
                let n;
                'immediate' === r.authMode
                  ? (await S(),
                    (n = await o.id.getCredential(t, { signal: s })),
                    (e.credential = n))
                  : 'no-prompt' === r.authMode
                  ? (await S(),
                    (n = await o.id.getCredential(t, { prompt: !1, signal: s }).catch(() => {})),
                    (e.credential = n))
                  : o.id && (n = o.id.findCredential(t)),
                  n && ((e.credentialToken = n.token), (e.useSSL = !!n.ssl));
              }
            })(e);
            try {
              do {
                [s, u] = await k(e);
              } while (!(await T(e, s, u)));
            } catch (t) {
              const r = M('request:server', t, e.params, s);
              throw (
                ((r.details.ssl = e.useSSL),
                e.interceptor && e.interceptor.error && e.interceptor.error(r),
                r)
              );
            }
            const h = e.params.url;
            if (
              /\/sharing\/rest\/(accounts|portals)\/self/i.test(h) &&
              !e.hasToken &&
              !e.credentialToken &&
              null != (t = u) &&
              null != (r = t.user) &&
              r.username &&
              !(0, c.kl)(h)
            ) {
              const e = (0, c.P$)(h, !0);
              e && m.trustedServers.push(e);
            }
            const f = e.credential;
            if (f && o.id) {
              const e = o.id.findServerInfo(f.server);
              let t = e && e.owningSystemUrl;
              if (t) {
                t = t.replace(/\/?$/, '/sharing');
                const e = o.id.findCredential(t, f.userId);
                e && -1 === o.id._getIdenticalSvcIdx(t, e) && e.resources.unshift(t);
              }
            }
            return {
              data: u,
              getHeader: s ? (e) => s.headers.get(e) : v,
              requestOptions: e.params.requestOptions,
              ssl: e.useSSL,
              url: e.params.url,
            };
          })(b);
        return y && y.after && y.after(_), _;
      }
      let p;
      const m = n.Z.request,
        g = 'FormData' in i.g,
        y = [499, 498, 403, 401],
        w = ['COM_0056', 'COM_0057', 'SB_0008'],
        b = [/\/arcgis\/tokens/i, /\/sharing(\/rest)?\/generatetoken/i, /\/rest\/info/i],
        v = () => null,
        _ = Symbol();
      function x(e) {
        const t = (0, c.P$)(e);
        return !t || t.endsWith('.arcgis.com') || d._corsServers.includes(t) || (0, c.kl)(t);
      }
      function M(e, t, r, n) {
        let o = 'Error';
        const c = { url: r.url, requestOptions: r.requestOptions, getHeader: v, ssl: !1 };
        if (t instanceof s.Z)
          return (
            t.details
              ? ((t.details = (0, i.d9)(t.details)),
                (t.details.url = r.url),
                (t.details.requestOptions = r.requestOptions))
              : (t.details = c),
            t
          );
        if (t) {
          const e = n && ((e) => n.headers.get(e)),
            r = n && n.status,
            s = t.message;
          s && (o = s),
            e && (c.getHeader = e),
            (c.httpStatus = (null != t.httpCode ? t.httpCode : t.code) || r || 0),
            (c.subCode = t.subcode),
            (c.messageCode = t.messageCode),
            'string' == typeof t.details ? (c.messages = [t.details]) : (c.messages = t.details),
            (c.raw = _ in t ? t[_] : t);
        }
        return (0, a.D_)(t) ? (0, a.zE)() : new s.Z(e, o, c);
      }
      async function S() {
        o.id || (await Promise.all([r.e(6229), r.e(1503), r.e(4494)]).then(r.bind(r, 64494)));
      }
      function O(e) {
        return b.some((t) => t.test(e));
      }
      async function k(e) {
        let t = e.params.url;
        const r = e.params.requestOptions,
          n = e.fetchOptions,
          s = (0, c.jc)(t) || (0, c.HK)(t),
          u = r.responseType || 'json',
          l = s ? 0 : null != r.timeout ? r.timeout : m.timeout;
        let h = !1;
        if (!s) {
          e.useSSL && (t = (0, c.hO)(t)),
            r.cacheBust &&
              'default' === n.cache &&
              (t = (0, c.ZN)(t, 'request.preventCache', Date.now()));
          let s = { ...r.query };
          e.credentialToken && (s.token = e.credentialToken);
          let a = (0, c.B7)(s);
          (0, i.h)('esri-url-encodes-apostrophe') && (a = a.replace(/'/g, '%27'));
          const u = t.length + 1 + a.length;
          let l;
          h =
            'delete' === r.method ||
            'post' === r.method ||
            'put' === r.method ||
            !!r.body ||
            u > m.maxUrlLength;
          const f = r.useProxy || !!(0, c.ed)(t);
          if (f) {
            const e = (0, c.b7)(t);
            (l = e.path),
              !h && l.length + 1 + u > m.maxUrlLength && (h = !0),
              e.query && (s = { ...e.query, ...s });
          }
          if ('HEAD' === n.method && (h || f)) {
            if (h) {
              if (u > m.maxUrlLength)
                throw M(
                  'request:invalid-parameters',
                  new Error('URL exceeds maximum length'),
                  e.params,
                );
              throw M(
                'request:invalid-parameters',
                new Error("cannot use POST request when method is 'head'"),
                e.params,
              );
            }
            if (f)
              throw M(
                'request:invalid-parameters',
                new Error("cannot use proxy when method is 'head'"),
                e.params,
              );
          }
          if (
            (h
              ? ((n.method =
                  'delete' === r.method ? 'DELETE' : 'put' === r.method ? 'PUT' : 'POST'),
                r.body
                  ? (t = (0, c.fl)(t, s))
                  : ((n.body = (0, c.B7)(s)),
                    (n.headers['Content-Type'] = 'application/x-www-form-urlencoded')))
              : (t = (0, c.fl)(t, s)),
            f && ((e.useProxy = !0), (t = `${l}?${t}`)),
            s.token && g && n.body instanceof FormData)
          ) {
            const e = n.body;
            e.set ? e.set('token', s.token) : e.append('token', s.token);
          }
          if (r.hasOwnProperty('withCredentials')) e.withCredentials = r.withCredentials;
          else if (!(0, c.D6)(t, c.Gd))
            if ((0, c.kl)(t)) e.withCredentials = !0;
            else if (o.id) {
              const r = o.id.findServerInfo(t);
              r && r.webTierAuth && (e.withCredentials = !0);
            }
          e.withCredentials && (n.credentials = 'include');
        }
        let f,
          p,
          y = 0,
          w = !1;
        l > 0 &&
          (y = setTimeout(() => {
            (w = !0), e.controller.abort();
          }, l));
        try {
          if ('native-request-init' === r.responseType) (p = n), (p.url = t);
          else if (
            'image' !== r.responseType ||
            'default' !== n.cache ||
            'GET' !== n.method ||
            h ||
            (function (e) {
              if (e) for (const t of Object.getOwnPropertyNames(e)) if (e[t]) return !0;
              return !1;
            })(r.headers) ||
            (!s && !e.useProxy && m.proxyUrl && !x(t))
          ) {
            if (
              ((f = await d._abortableFetch(t, n)),
              e.useProxy ||
                (function (e) {
                  const t = (0, c.P$)(e);
                  t && !d._corsServers.includes(t) && d._corsServers.push(t);
                })(t),
              'native' === r.responseType)
            )
              p = f;
            else if ('HEAD' !== n.method)
              if (f.ok) {
                switch (u) {
                  case 'array-buffer':
                    p = await f.arrayBuffer();
                    break;
                  case 'blob':
                  case 'image':
                    p = await f.blob();
                    break;
                  default:
                    p = await f.text();
                }
                if (
                  (y && (clearTimeout(y), (y = 0)), 'json' === u || 'xml' === u || 'document' === u)
                )
                  if (p)
                    switch (u) {
                      case 'json':
                        p = JSON.parse(p);
                        break;
                      case 'xml':
                        p = q(p, 'application/xml');
                        break;
                      case 'document':
                        p = q(p, 'text/html');
                    }
                  else p = null;
                if (p) {
                  if ('array-buffer' === u || 'blob' === u) {
                    const e = f.headers.get('Content-Type');
                    if (
                      /application\/json|text\/plain/i.test(e) &&
                      p['blob' === u ? 'size' : 'byteLength'] <= 750
                    )
                      try {
                        const e = await new Response(p).json();
                        e.error && (p = e);
                      } catch {}
                  }
                  'image' === u &&
                    p instanceof Blob &&
                    (p = await P(URL.createObjectURL(p), e, !0));
                }
              } else p = await f.text();
          } else p = await P(t, e);
        } catch (n) {
          if ('AbortError' === n.name) {
            if (w) throw new Error('Timeout exceeded');
            throw (0, a.zE)('Request canceled');
          }
          if (
            !(!f && n instanceof TypeError && m.proxyUrl) ||
            r.body ||
            'delete' === r.method ||
            'head' === r.method ||
            'post' === r.method ||
            'put' === r.method ||
            e.useProxy ||
            x(t)
          )
            throw n;
          (e.redoRequest = !0), (0, c.tD)({ proxyUrl: m.proxyUrl, urlPrefix: (0, c.P$)(t) });
        } finally {
          y && clearTimeout(y);
        }
        return [f, p];
      }
      function q(e, t) {
        let r;
        try {
          r = new DOMParser().parseFromString(e, t);
        } catch {}
        if (!r || r.getElementsByTagName('parsererror').length)
          throw new SyntaxError('XML Parse error');
        return r;
      }
      async function T(e, t, r) {
        if (e.redoRequest) return (e.redoRequest = !1), !1;
        const n = e.params.requestOptions;
        if (!t || 'native' === n.responseType || 'native-request-init' === n.responseType)
          return !0;
        let s, i, a, c;
        if (!t.ok)
          throw ((s = new Error(`Unable to load ${t.url} status: ${t.status}`)), (s[_] = r), s);
        null != r && r.error && (s = r.error),
          s &&
            ((i = Number(s.code)),
            (a = s.hasOwnProperty('subcode') ? Number(s.subcode) : null),
            (c = s.messageCode),
            (c = c && c.toUpperCase()));
        const u = n.authMode;
        if (
          403 === i &&
          (4 === a ||
            (s.message &&
              s.message.toLowerCase().indexOf('ssl') > -1 &&
              -1 === s.message.toLowerCase().indexOf('permission')))
        ) {
          if (!e.useSSL) return (e.useSSL = !0), !1;
        } else if (
          !e.hasToken &&
          e.useIdentity &&
          ('no-prompt' !== u || 498 === i) &&
          -1 !== y.indexOf(i) &&
          !O(e.params.url) &&
          (403 !== i || (-1 === w.indexOf(c) && (null == a || (2 === a && e.credentialToken))))
        ) {
          await S();
          try {
            const t = await o.id.getCredential(e.params.url, {
              error: M('request:server', s, e.params),
              prompt: 'no-prompt' !== u,
              signal: e.controller.signal,
              token: e.credentialToken,
            });
            return (
              (e.credential = t), (e.credentialToken = t.token), (e.useSSL = e.useSSL || t.ssl), !1
            );
          } catch (t) {
            if ('no-prompt' === u) return (e.credential = null), (e.credentialToken = null), !1;
            s = t;
          }
        }
        if (s) throw s;
        return !0;
      }
      function P(e, t, r = !1) {
        const n = t.controller.signal,
          o = new Image();
        return (
          t.withCredentials ? (o.crossOrigin = 'use-credentials') : (o.crossOrigin = 'anonymous'),
          (o.alt = ''),
          (o.src = e),
          h(o, e, r, n)
        );
      }
      (d._abortableFetch = null),
        (d._corsServers = ['https://server.arcgisonline.com', 'https://services.arcgisonline.com']);
      var E = Object.freeze({ __proto__: null, default: d });
      const A = d;
    },
  },
]);
