(self.webpackChunkRemoteClient = self.webpackChunkRemoteClient || []).push([
  [6087],
  {
    8358: (t, e, n) => {
      'use strict';
      n.d(e, { d: () => o });
      var r = n(82426);
      function o(t, e, n) {
        var o;
        const c = t.byteLength / (4 * e),
          u = new Uint32Array(t, 0, c * e);
        let p = new Uint32Array(c);
        const h = null != (o = null == n ? void 0 : n.minReduction) ? o : 0,
          f = (null == n ? void 0 : n.originalIndices) || null,
          g = f ? f.length : 0,
          x = (null == n ? void 0 : n.componentOffsets) || null;
        let d = 0;
        if (x)
          for (let t = 0; t < x.length - 1; t++) {
            const e = x[t + 1] - x[t];
            e > d && (d = e);
          }
        else d = c;
        const m = Math.floor(1.1 * d) + 1;
        (null == l || l.length < 2 * m) && (l = new Uint32Array((0, r.G)(2 * m)));
        for (let t = 0; t < 2 * m; t++) l[t] = 0;
        let y = 0;
        const v = !!x && !!f,
          w = v ? g : c,
          b = v ? new Uint32Array(g) : null,
          A = 1.96;
        let C = 0 !== h ? Math.ceil(((4 * A * A) / (h * h)) * h * (1 - h)) : w,
          M = 1,
          Z = x ? x[1] : w;
        for (let t = 0; t < w; t++) {
          if (t === C) {
            const e = 1 - y / t;
            if (e + A * Math.sqrt((e * (1 - e)) / t) < h) return null;
            C *= 2;
          }
          if (t === Z) {
            for (let t = 0; t < 2 * m; t++) l[t] = 0;
            if (f) for (let t = x[M - 1]; t < x[M]; t++) b[t] = p[f[t]];
            Z = x[++M];
          }
          const n = v ? f[t] : t,
            r = n * e,
            o = a(u, r, e);
          let s = o % m,
            c = y;
          for (; 0 !== l[2 * s + 1]; ) {
            if (l[2 * s] === o) {
              const t = l[2 * s + 1] - 1;
              if (i(u, r, t * e, e)) {
                c = p[t];
                break;
              }
            }
            s++, s >= m && (s -= m);
          }
          c === y && ((l[2 * s] = o), (l[2 * s + 1] = n + 1), y++), (p[n] = c);
        }
        if (0 !== h && 1 - y / c < h) return null;
        if (v) {
          for (let t = x[M - 1]; t < b.length; t++) b[t] = p[f[t]];
          p = b;
        }
        const F = new Uint32Array(e * y);
        y = 0;
        for (let t = 0; t < w; t++) p[t] === y && (s(u, (v ? f[t] : t) * e, F, y * e, e), y++);
        if (f && !v) {
          const t = new Uint32Array(g);
          for (let e = 0; e < t.length; e++) t[e] = p[f[e]];
          p = t;
        }
        return { buffer: F.buffer, indices: p, uniqueCount: y };
      }
      function i(t, e, n, r) {
        for (let o = 0; o < r; o++) if (t[e + o] !== t[n + o]) return !1;
        return !0;
      }
      function s(t, e, n, r, o) {
        for (let i = 0; i < o; i++) n[r + i] = t[e + i];
      }
      function a(t, e, n) {
        let r = 0;
        for (let o = 0; o < n; o++) (r = (t[e + o] + r) | 0), (r = (r + (r << 11) + (r >>> 2)) | 0);
        return r >>> 0;
      }
      let l = null;
    },
    11545: (t, e, n) => {
      'use strict';
      n.d(e, { e: () => s });
      var r,
        o,
        i = { exports: {} };
      (r = i),
        void 0 !==
          (o = (function () {
            function t(t, n, o) {
              o = o || 2;
              var i,
                s,
                a,
                c,
                u,
                p,
                h,
                f = n && n.length,
                g = f ? n[0] * o : t.length,
                x = e(t, 0, g, o, !0),
                d = [];
              if (!x || x.next === x.prev) return d;
              if ((f && (x = l(t, n, x, o)), t.length > 80 * o)) {
                (i = a = t[0]), (s = c = t[1]);
                for (var m = o; m < g; m += o)
                  (u = t[m]) < i && (i = u),
                    (p = t[m + 1]) < s && (s = p),
                    u > a && (a = u),
                    p > c && (c = p);
                h = 0 !== (h = Math.max(a - i, c - s)) ? 1 / h : 0;
              }
              return r(x, d, o, i, s, h), d;
            }
            function e(t, e, n, r, o) {
              var i, s;
              if (o === R(t, e, n, r) > 0) for (i = e; i < n; i += r) s = M(i, t[i], t[i + 1], s);
              else for (i = n - r; i >= e; i -= r) s = M(i, t[i], t[i + 1], s);
              return s && y(s, s.next) && (Z(s), (s = s.next)), s;
            }
            function n(t, e) {
              if (!t) return t;
              e || (e = t);
              var n,
                r = t;
              do {
                if (((n = !1), r.steiner || (!y(r, r.next) && 0 !== m(r.prev, r, r.next))))
                  r = r.next;
                else {
                  if ((Z(r), (r = e = r.prev) === r.next)) break;
                  n = !0;
                }
              } while (n || r !== e);
              return e;
            }
            function r(t, e, l, c, u, p, f) {
              if (t) {
                !f && p && h(t, c, u, p);
                for (var g, x, d = t; t.prev !== t.next; )
                  if (((g = t.prev), (x = t.next), p ? i(t, c, u, p) : o(t)))
                    e.push(g.i / l),
                      e.push(t.i / l),
                      e.push(x.i / l),
                      Z(t),
                      (t = x.next),
                      (d = x.next);
                  else if ((t = x) === d) {
                    f
                      ? 1 === f
                        ? r((t = s(n(t), e, l)), e, l, c, u, p, 2)
                        : 2 === f && a(t, e, l, c, u, p)
                      : r(n(t), e, l, c, u, p, 1);
                    break;
                  }
              }
            }
            function o(t) {
              var e = t.prev,
                n = t,
                r = t.next;
              if (m(e, n, r) >= 0) return !1;
              for (var o = t.next.next; o !== t.prev; ) {
                if (x(e.x, e.y, n.x, n.y, r.x, r.y, o.x, o.y) && m(o.prev, o, o.next) >= 0)
                  return !1;
                o = o.next;
              }
              return !0;
            }
            function i(t, e, n, r) {
              var o = t.prev,
                i = t,
                s = t.next;
              if (m(o, i, s) >= 0) return !1;
              for (
                var a = o.x < i.x ? (o.x < s.x ? o.x : s.x) : i.x < s.x ? i.x : s.x,
                  l = o.y < i.y ? (o.y < s.y ? o.y : s.y) : i.y < s.y ? i.y : s.y,
                  c = o.x > i.x ? (o.x > s.x ? o.x : s.x) : i.x > s.x ? i.x : s.x,
                  u = o.y > i.y ? (o.y > s.y ? o.y : s.y) : i.y > s.y ? i.y : s.y,
                  p = f(a, l, e, n, r),
                  h = f(c, u, e, n, r),
                  g = t.prevZ,
                  d = t.nextZ;
                g && g.z >= p && d && d.z <= h;

              ) {
                if (
                  g !== t.prev &&
                  g !== t.next &&
                  x(o.x, o.y, i.x, i.y, s.x, s.y, g.x, g.y) &&
                  m(g.prev, g, g.next) >= 0
                )
                  return !1;
                if (
                  ((g = g.prevZ),
                  d !== t.prev &&
                    d !== t.next &&
                    x(o.x, o.y, i.x, i.y, s.x, s.y, d.x, d.y) &&
                    m(d.prev, d, d.next) >= 0)
                )
                  return !1;
                d = d.nextZ;
              }
              for (; g && g.z >= p; ) {
                if (
                  g !== t.prev &&
                  g !== t.next &&
                  x(o.x, o.y, i.x, i.y, s.x, s.y, g.x, g.y) &&
                  m(g.prev, g, g.next) >= 0
                )
                  return !1;
                g = g.prevZ;
              }
              for (; d && d.z <= h; ) {
                if (
                  d !== t.prev &&
                  d !== t.next &&
                  x(o.x, o.y, i.x, i.y, s.x, s.y, d.x, d.y) &&
                  m(d.prev, d, d.next) >= 0
                )
                  return !1;
                d = d.nextZ;
              }
              return !0;
            }
            function s(t, e, r) {
              var o = t;
              do {
                var i = o.prev,
                  s = o.next.next;
                !y(i, s) &&
                  v(i, o, o.next, s) &&
                  A(i, s) &&
                  A(s, i) &&
                  (e.push(i.i / r), e.push(o.i / r), e.push(s.i / r), Z(o), Z(o.next), (o = t = s)),
                  (o = o.next);
              } while (o !== t);
              return n(o);
            }
            function a(t, e, o, i, s, a) {
              var l = t;
              do {
                for (var c = l.next.next; c !== l.prev; ) {
                  if (l.i !== c.i && d(l, c)) {
                    var u = C(l, c);
                    return (
                      (l = n(l, l.next)),
                      (u = n(u, u.next)),
                      r(l, e, o, i, s, a),
                      void r(u, e, o, i, s, a)
                    );
                  }
                  c = c.next;
                }
                l = l.next;
              } while (l !== t);
            }
            function l(t, r, o, i) {
              var s,
                a,
                l,
                p = [];
              for (s = 0, a = r.length; s < a; s++)
                (l = e(t, r[s] * i, s < a - 1 ? r[s + 1] * i : t.length, i, !1)) === l.next &&
                  (l.steiner = !0),
                  p.push(g(l));
              for (p.sort(c), s = 0; s < p.length; s++) o = n((o = u(p[s], o)), o.next);
              return o;
            }
            function c(t, e) {
              return t.x - e.x;
            }
            function u(t, e) {
              var r = (function (t, e) {
                var n,
                  r = e,
                  o = t.x,
                  i = t.y,
                  s = -1 / 0;
                do {
                  if (i <= r.y && i >= r.next.y && r.next.y !== r.y) {
                    var a = r.x + ((i - r.y) * (r.next.x - r.x)) / (r.next.y - r.y);
                    if (a <= o && a > s) {
                      if (((s = a), a === o)) {
                        if (i === r.y) return r;
                        if (i === r.next.y) return r.next;
                      }
                      n = r.x < r.next.x ? r : r.next;
                    }
                  }
                  r = r.next;
                } while (r !== e);
                if (!n) return null;
                if (o === s) return n;
                var l,
                  c = n,
                  u = n.x,
                  h = n.y,
                  f = 1 / 0;
                r = n;
                do {
                  o >= r.x &&
                    r.x >= u &&
                    o !== r.x &&
                    x(i < h ? o : s, i, u, h, i < h ? s : o, i, r.x, r.y) &&
                    ((l = Math.abs(i - r.y) / (o - r.x)),
                    A(r, t) &&
                      (l < f || (l === f && (r.x > n.x || (r.x === n.x && p(n, r))))) &&
                      ((n = r), (f = l))),
                    (r = r.next);
                } while (r !== c);
                return n;
              })(t, e);
              if (!r) return e;
              var o = C(r, t),
                i = n(r, r.next);
              return n(o, o.next), e === r ? i : e;
            }
            function p(t, e) {
              return m(t.prev, t, e.prev) < 0 && m(e.next, t, t.next) < 0;
            }
            function h(t, e, n, r) {
              var o = t;
              do {
                if (
                  (null === o.z && (o.z = f(o.x, o.y, e, n, r)),
                  o.prev.next !== o || o.next.prev !== o)
                )
                  return (o.prev.next = o), (o.next.prev = o), h(t, e, n, r);
                (o.prevZ = o.prev), (o.nextZ = o.next), (o = o.next);
              } while (o !== t);
              (o.prevZ.nextZ = null),
                (o.prevZ = null),
                (function (t) {
                  var e,
                    n,
                    r,
                    o,
                    i,
                    s,
                    a,
                    l,
                    c = 1;
                  do {
                    for (n = t, t = null, i = null, s = 0; n; ) {
                      for (s++, r = n, a = 0, e = 0; e < c && (a++, (r = r.nextZ)); e++);
                      for (l = c; a > 0 || (l > 0 && r); )
                        0 !== a && (0 === l || !r || n.z <= r.z)
                          ? ((o = n), (n = n.nextZ), a--)
                          : ((o = r), (r = r.nextZ), l--),
                          i ? (i.nextZ = o) : (t = o),
                          (o.prevZ = i),
                          (i = o);
                      n = r;
                    }
                    (i.nextZ = null), (c *= 2);
                  } while (s > 1);
                })(o);
            }
            function f(t, e, n, r, o) {
              return (
                (t =
                  1431655765 &
                  ((t =
                    858993459 &
                    ((t =
                      252645135 &
                      ((t = 16711935 & ((t = 32767 * (t - n) * o) | (t << 8))) | (t << 4))) |
                      (t << 2))) |
                    (t << 1))) |
                ((e =
                  1431655765 &
                  ((e =
                    858993459 &
                    ((e =
                      252645135 &
                      ((e = 16711935 & ((e = 32767 * (e - r) * o) | (e << 8))) | (e << 4))) |
                      (e << 2))) |
                    (e << 1))) <<
                  1)
              );
            }
            function g(t) {
              var e = t,
                n = t;
              do {
                (e.x < n.x || (e.x === n.x && e.y < n.y)) && (n = e), (e = e.next);
              } while (e !== t);
              return n;
            }
            function x(t, e, n, r, o, i, s, a) {
              return (
                (o - s) * (e - a) - (t - s) * (i - a) >= 0 &&
                (t - s) * (r - a) - (n - s) * (e - a) >= 0 &&
                (n - s) * (i - a) - (o - s) * (r - a) >= 0
              );
            }
            function d(t, e) {
              return (
                t.next.i !== e.i &&
                t.prev.i !== e.i &&
                !(function (t, e) {
                  var n = t;
                  do {
                    if (
                      n.i !== t.i &&
                      n.next.i !== t.i &&
                      n.i !== e.i &&
                      n.next.i !== e.i &&
                      v(n, n.next, t, e)
                    )
                      return !0;
                    n = n.next;
                  } while (n !== t);
                  return !1;
                })(t, e) &&
                ((A(t, e) &&
                  A(e, t) &&
                  (function (t, e) {
                    var n = t,
                      r = !1,
                      o = (t.x + e.x) / 2,
                      i = (t.y + e.y) / 2;
                    do {
                      n.y > i != n.next.y > i &&
                        n.next.y !== n.y &&
                        o < ((n.next.x - n.x) * (i - n.y)) / (n.next.y - n.y) + n.x &&
                        (r = !r),
                        (n = n.next);
                    } while (n !== t);
                    return r;
                  })(t, e) &&
                  (m(t.prev, t, e.prev) || m(t, e.prev, e))) ||
                  (y(t, e) && m(t.prev, t, t.next) > 0 && m(e.prev, e, e.next) > 0))
              );
            }
            function m(t, e, n) {
              return (e.y - t.y) * (n.x - e.x) - (e.x - t.x) * (n.y - e.y);
            }
            function y(t, e) {
              return t.x === e.x && t.y === e.y;
            }
            function v(t, e, n, r) {
              var o = b(m(t, e, n)),
                i = b(m(t, e, r)),
                s = b(m(n, r, t)),
                a = b(m(n, r, e));
              return (
                (o !== i && s !== a) ||
                !(0 !== o || !w(t, n, e)) ||
                !(0 !== i || !w(t, r, e)) ||
                !(0 !== s || !w(n, t, r)) ||
                !(0 !== a || !w(n, e, r))
              );
            }
            function w(t, e, n) {
              return (
                e.x <= Math.max(t.x, n.x) &&
                e.x >= Math.min(t.x, n.x) &&
                e.y <= Math.max(t.y, n.y) &&
                e.y >= Math.min(t.y, n.y)
              );
            }
            function b(t) {
              return t > 0 ? 1 : t < 0 ? -1 : 0;
            }
            function A(t, e) {
              return m(t.prev, t, t.next) < 0
                ? m(t, e, t.next) >= 0 && m(t, t.prev, e) >= 0
                : m(t, e, t.prev) < 0 || m(t, t.next, e) < 0;
            }
            function C(t, e) {
              var n = new F(t.i, t.x, t.y),
                r = new F(e.i, e.x, e.y),
                o = t.next,
                i = e.prev;
              return (
                (t.next = e),
                (e.prev = t),
                (n.next = o),
                (o.prev = n),
                (r.next = n),
                (n.prev = r),
                (i.next = r),
                (r.prev = i),
                r
              );
            }
            function M(t, e, n, r) {
              var o = new F(t, e, n);
              return (
                r
                  ? ((o.next = r.next), (o.prev = r), (r.next.prev = o), (r.next = o))
                  : ((o.prev = o), (o.next = o)),
                o
              );
            }
            function Z(t) {
              (t.next.prev = t.prev),
                (t.prev.next = t.next),
                t.prevZ && (t.prevZ.nextZ = t.nextZ),
                t.nextZ && (t.nextZ.prevZ = t.prevZ);
            }
            function F(t, e, n) {
              (this.i = t),
                (this.x = e),
                (this.y = n),
                (this.prev = null),
                (this.next = null),
                (this.z = null),
                (this.prevZ = null),
                (this.nextZ = null),
                (this.steiner = !1);
            }
            function R(t, e, n, r) {
              for (var o = 0, i = e, s = n - r; i < n; i += r)
                (o += (t[s] - t[i]) * (t[i + 1] + t[s + 1])), (s = i);
              return o;
            }
            return (
              (t.deviation = function (t, e, n, r) {
                var o = e && e.length,
                  i = o ? e[0] * n : t.length,
                  s = Math.abs(R(t, 0, i, n));
                if (o)
                  for (var a = 0, l = e.length; a < l; a++) {
                    var c = e[a] * n,
                      u = a < l - 1 ? e[a + 1] * n : t.length;
                    s -= Math.abs(R(t, c, u, n));
                  }
                var p = 0;
                for (a = 0; a < r.length; a += 3) {
                  var h = r[a] * n,
                    f = r[a + 1] * n,
                    g = r[a + 2] * n;
                  p += Math.abs(
                    (t[h] - t[g]) * (t[f + 1] - t[h + 1]) - (t[h] - t[f]) * (t[g + 1] - t[h + 1]),
                  );
                }
                return 0 === s && 0 === p ? 0 : Math.abs((p - s) / s);
              }),
              (t.flatten = function (t) {
                for (
                  var e = t[0][0].length,
                    n = { vertices: [], holes: [], dimensions: e },
                    r = 0,
                    o = 0;
                  o < t.length;
                  o++
                ) {
                  for (var i = 0; i < t[o].length; i++)
                    for (var s = 0; s < e; s++) n.vertices.push(t[o][i][s]);
                  o > 0 && ((r += t[o - 1].length), n.holes.push(r));
                }
                return n;
              }),
              t
            );
          })()) && (r.exports = o);
      var s = i.exports;
    },
    76087: (t, e, n) => {
      'use strict';
      n.r(e), n.d(e, { meshFeatureSetFromJSON: () => wt });
      var r = n(23761),
        o = n(76506),
        i = n(21801),
        s = n(29768),
        a = n(60991),
        l = n(22739),
        c = n(92143),
        u = n(20543),
        p = n(50406),
        h = n(34250),
        f = (n(91306), n(17533)),
        g = n(82426),
        x = n(73796),
        d = n(91597),
        m = n(44567),
        y = n(34987),
        v = n(81773),
        w = n(84017),
        b = n(11545),
        A = n(8358);
      function C(t) {
        const e = M(t.rings, t.hasZ, 1),
          n = [];
        let r = 0,
          o = 0;
        for (const t of e.polygons) {
          const i = t.count,
            s = t.index,
            a = new Float64Array(e.position.buffer, 3 * s * e.position.BYTES_PER_ELEMENT, 3 * i),
            l = t.holeIndices.map((t) => t - s),
            c = new Uint32Array((0, b.e)(a, l, 3));
          n.push({ position: a, faces: c }), (r += a.length), (o += c.length);
        }
        const i = (function (t, e, n) {
            if (1 === t.length) return t[0];
            const r = new Float64Array(e),
              o = new Uint32Array(n);
            let i = 0,
              s = 0,
              a = 0;
            for (const e of t) {
              for (let t = 0; t < e.position.length; t++) r[i++] = e.position[t];
              for (let t = 0; t < e.faces.length; t++) o[s++] = e.faces[t] + a;
              a = i / 3;
            }
            return { position: r, faces: o };
          })(n, r, o),
          s = (0, A.d)(i.position.buffer, 6, { originalIndices: i.faces });
        return (i.position = new Float64Array(s.buffer)), (i.faces = s.indices), i;
      }
      function M(t, e, n) {
        const r = t.length,
          o = new Array(r),
          i = new Array(r),
          s = new Array(r);
        let a = 0,
          l = 0,
          c = 0,
          u = 0;
        for (let e = 0; e < r; ++e) u += t[e].length;
        const p = new Float64Array(3 * u);
        let h = 0;
        for (let u = r - 1; u >= 0; u--) {
          const f = t[u],
            g = 1 === n && !(0, m.i)(f, !1, !1);
          if (g && 1 !== r) o[a++] = f;
          else {
            let t = f.length;
            for (let e = 0; e < a; ++e) t += o[e].length;
            const n = {
              index: h,
              pathLengths: new Array(a + 1),
              count: t,
              holeIndices: new Array(a),
            };
            (n.pathLengths[0] = f.length),
              f.length > 0 && (s[c++] = { index: h, count: f.length }),
              (h = g ? Z(f, f.length - 1, -1, p, h, f.length, e) : Z(f, 0, 1, p, h, f.length, e));
            for (let t = 0; t < a; ++t) {
              const r = o[t];
              (n.holeIndices[t] = h),
                (n.pathLengths[t + 1] = r.length),
                r.length > 0 && (s[c++] = { index: h, count: r.length }),
                (h = Z(r, 0, 1, p, h, r.length, e));
            }
            (a = 0), n.count > 0 && (i[l++] = n);
          }
        }
        for (let t = 0; t < a; ++t) {
          const n = o[t];
          n.length > 0 && (s[c++] = { index: h, count: n.length }),
            (h = Z(n, 0, 1, p, h, n.length, e));
        }
        return (
          l < r && (i.length = l),
          c < r && (s.length = c),
          { position: p, polygons: i, outlines: s }
        );
      }
      function Z(t, e, n, r, o, i, s) {
        o *= 3;
        for (let a = 0; a < i; ++a) {
          const i = t[e];
          (r[o++] = i[0]), (r[o++] = i[1]), (r[o++] = s ? i[2] : 0), (e += n);
        }
        return o / 3;
      }
      var F = n(72334),
        R = n(32101),
        _ = n(26923),
        T = n(45087),
        L = n(57532),
        D = n(95587),
        j = n(84661),
        O = n(65775);
      n(81172),
        n(71552),
        n(31450),
        n(40642),
        n(21972),
        n(23639),
        n(86656),
        n(22723),
        n(91055),
        n(27794),
        n(6906),
        n(60947),
        n(74673),
        n(26341),
        n(2906),
        n(35132),
        n(89623),
        n(97714),
        n(86787),
        n(98380),
        n(35861),
        n(7200),
        n(44265),
        n(48027),
        n(54174),
        n(68225),
        n(38742),
        n(47029),
        n(71337),
        n(53785),
        n(57251),
        n(40167),
        n(72836),
        n(84069),
        n(12381),
        n(73173),
        n(82058),
        n(88762),
        n(92896),
        n(92482),
        n(92624);
      const P = c.L.getLogger('esri.geometry.support.meshUtils.centerAt'),
        I = (0, g.b)(),
        z = (0, g.b)();
      function S(t) {
        const e = (0, R.Yd)(t.url);
        return (n) => {
          var r;
          const o = (0, R.PF)(n, e, e),
            i = o ? o.replace(/^ *\.\//, '') : null;
          return null != (r = t.files.get(i)) ? r : n;
        };
      }
      async function E(t, e) {
        return t instanceof Blob
          ? U.fromBlob(t)
          : 'string' == typeof t
          ? new U(t)
          : Array.isArray(t)
          ? (async function (t, e) {
              const n = new Map();
              let r = null;
              const i = await (0, p.WW)(
                  t.map(async (t) => ({
                    name: t.name,
                    source: await E(t instanceof Blob ? t : t.source, e),
                  })),
                ),
                s = [];
              for (const t of i) t && ((0, p.Hc)(e) ? t.source.dispose() : s.push(t));
              (0, p.k_)(e);
              for (const { name: t, source: e } of s)
                ((0, o.b)(r) || /\.(gltf|glb)/i.test(t)) && (r = e.url),
                  n.set(t, e.url),
                  e.files && e.files.forEach((t, e) => n.set(e, t));
              if ((0, o.b)(r))
                throw new a.Z(
                  'mesh-load-external:missing-files',
                  'Missing files to load external mesh source',
                );
              return new U(r, () => s.forEach(({ source: t }) => t.dispose()), n);
            })(t, e)
          : (async function (t, e) {
              const { default: r } = await (0, p.Hl)(
                  Promise.resolve()
                    .then(n.bind(n, 82058))
                    .then(function (t) {
                      return t.r;
                    }),
                  e,
                ),
                o =
                  'string' == typeof t.multipart[0]
                    ? await Promise.all(
                        t.multipart.map(
                          async (t) => (await r(t, { responseType: 'array-buffer' })).data,
                        ),
                      )
                    : t.multipart;
              return U.fromBlob(new Blob(o));
            })(t, e);
      }
      class U {
        constructor(t, e = () => {}, n = new Map()) {
          (this.url = t), (this.dispose = e), (this.files = n);
        }
        static fromBlob(t) {
          const e = URL.createObjectURL(t);
          return new U(e, () => URL.revokeObjectURL(e));
        }
      }
      const k = c.L.getLogger('esri.geometry.support.meshUtils.offset');
      function W(t, e) {
        if (t) for (let n = 0; n < t.length; n += 3) for (let r = 0; r < 3; r++) t[n + r] += e[r];
      }
      const $ = (0, g.b)(),
        N = (0, L.c)(),
        H = (0, T.c)(),
        B = {
          position: [-0.5, -0.5, 0, 0.5, -0.5, 0, 0.5, 0.5, 0, -0.5, 0.5, 0],
          normal: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
          uv: [0, 1, 1, 1, 1, 0, 0, 0],
          faces: [0, 1, 2, 0, 2, 3],
          facingAxisOrderSwap: {
            east: [3, 1, 2],
            west: [-3, -1, 2],
            north: [-1, 3, 2],
            south: [1, -3, 2],
            up: [1, 2, 3],
            down: [1, -2, -3],
          },
        };
      function K(t, e, n) {
        !(function (t) {
          for (let e = 0; e < t.position.length; e += 3) t.position[e + 2] += 0.5;
        })(t),
          (function (t, e) {
            if (null == e) return;
            const n =
              'number' == typeof e
                ? [e, e, e]
                : [
                    null != e.width ? e.width : 1,
                    null != e.depth ? e.depth : 1,
                    null != e.height ? e.height : 1,
                  ];
            (J[0] = n[0]), (J[4] = n[1]), (J[8] = n[2]);
            for (let e = 0; e < t.position.length; e += 3) {
              for (let n = 0; n < 3; n++) Y[n] = t.position[e + n];
              (0, g.x)(Y, Y, J);
              for (let n = 0; n < 3; n++) t.position[e + n] = Y[n];
            }
            if (n[0] !== n[1] || n[1] !== n[2]) {
              (J[0] = 1 / n[0]), (J[4] = 1 / n[1]), (J[8] = 1 / n[2]);
              for (let e = 0; e < t.normal.length; e += 3) {
                for (let n = 0; n < 3; n++) Y[n] = t.normal[e + n];
                (0, g.x)(Y, Y, J), (0, g.n)(Y, Y);
                for (let n = 0; n < 3; n++) t.normal[e + n] = Y[n];
              }
            }
          })(t, n && n.size);
        const { vertexAttributes: r, transform: o } = (0, w.a)(t, e, n);
        return {
          vertexAttributes: new v.M({ ...r, uv: t.uv }),
          transform: o,
          components: [new v.Z({ faces: t.faces, material: (n && n.material) || null })],
          spatialReference: e.spatialReference,
        };
      }
      const V = {
          faceDescriptions: [
            {
              axis: [0, -1, 0],
              uvOrigin: [0, 0.625],
              corners: [
                [-1, -1],
                [1, -1],
                [1, 1],
                [-1, 1],
              ],
            },
            {
              axis: [1, 0, 0],
              uvOrigin: [0.25, 0.625],
              corners: [
                [-1, -1],
                [1, -1],
                [1, 1],
                [-1, 1],
              ],
            },
            {
              axis: [0, 1, 0],
              uvOrigin: [0.5, 0.625],
              corners: [
                [1, -1],
                [-1, -1],
                [-1, 1],
                [1, 1],
              ],
            },
            {
              axis: [-1, 0, 0],
              uvOrigin: [0.75, 0.625],
              corners: [
                [1, -1],
                [-1, -1],
                [-1, 1],
                [1, 1],
              ],
            },
            {
              axis: [0, 0, 1],
              uvOrigin: [0, 0.375],
              corners: [
                [-1, -1],
                [1, -1],
                [1, 1],
                [-1, 1],
              ],
            },
            {
              axis: [0, 0, -1],
              uvOrigin: [0, 0.875],
              corners: [
                [-1, 1],
                [1, 1],
                [1, -1],
                [-1, -1],
              ],
            },
          ],
          uvScales: [
            [0, 0],
            [1, 0],
            [1, 1],
            [0, 1],
          ],
          faceVertexOffsets: [0, 1, 2, 0, 2, 3],
        },
        G = { south: 0, east: 1, north: 2, west: 3, up: 4, down: 5 },
        Y = (0, g.b)(),
        J = (0, T.c)(),
        X = c.L.getLogger('esri.geometry.support.meshUtils.rotate');
      function q(t, e, n, r = g.Z) {
        if (!(0, o.b)(t)) {
          (0, O.i)(nt), (0, O.b)(nt, nt, (0, y.d)(e), (0, y.b)(e));
          for (let e = 0; e < t.length; e += n) {
            for (let n = 0; n < 3; n++) Q[n] = t[e + n] - r[n];
            (0, g.t)(Q, Q, nt);
            for (let n = 0; n < 3; n++) t[e + n] = Q[n] + r[n];
          }
        }
      }
      const Q = (0, g.b)(),
        tt = (0, g.b)(),
        et = (0, y.c)(),
        nt = (0, L.c)(),
        rt = (0, T.c)(),
        ot = (0, g.b)(),
        it = c.L.getLogger('esri.geometry.support.meshUtils.scale');
      function st(t, e, n = g.Z) {
        if (t)
          for (let r = 0; r < t.length; r += 3) {
            for (let e = 0; e < 3; e++) at[e] = t[r + e] - n[e];
            (0, g.f)(at, at, e);
            for (let e = 0; e < 3; e++) t[r + e] = at[e] + n[e];
          }
      }
      const at = (0, g.b)(),
        lt = (0, g.b)(),
        ct = (0, g.b)();
      var ut;
      const pt = c.L.getLogger('esri.geometry.Mesh');
      let ht = (ut = class extends l.L.LoadableMixin((0, u.a)(x.Z)) {
        constructor(t) {
          super(t),
            (this.components = null),
            (this.transform = null),
            (this.external = null),
            (this.hasZ = !0),
            (this.hasM = !1),
            (this.vertexAttributes = new v.a()),
            (this.type = 'mesh');
        }
        initialize() {
          ((0, o.b)(this.external) || this.vertexAttributes.position.length) &&
            (this.loadStatus = 'loaded');
        }
        get hasExtent() {
          return (
            (!this.loaded && (0, o.i)(this.external) && (0, o.i)(this.external.extent)) ||
            (this.loaded &&
              this.vertexAttributes.position.length > 0 &&
              (!this.components || this.components.length > 0))
          );
        }
        get boundingInfo() {
          const t = this.vertexAttributes.position,
            e = this.spatialReference;
          if (0 === t.length || (this.components && 0 === this.components.length))
            return {
              extent: new i.Z({
                xmin: 0,
                ymin: 0,
                zmin: 0,
                xmax: 0,
                ymax: 0,
                zmax: 0,
                spatialReference: e,
              }),
              center: new d.Z({ x: 0, y: 0, z: 0, spatialReference: e }),
            };
          const n = (0, o.i)(this.transform) ? this.transform.project(t, e) : t;
          let r = 1 / 0,
            s = 1 / 0,
            a = 1 / 0,
            l = -1 / 0,
            c = -1 / 0,
            u = -1 / 0,
            p = 0,
            h = 0,
            f = 0;
          const g = n.length,
            x = 1 / (g / 3);
          let m = 0;
          for (; m < g; ) {
            const t = n[m++],
              e = n[m++],
              o = n[m++];
            (r = Math.min(r, t)),
              (s = Math.min(s, e)),
              (a = Math.min(a, o)),
              (l = Math.max(l, t)),
              (c = Math.max(c, e)),
              (u = Math.max(u, o)),
              (p += x * t),
              (h += x * e),
              (f += x * o);
          }
          return {
            extent: new i.Z({
              xmin: r,
              ymin: s,
              zmin: a,
              xmax: l,
              ymax: c,
              zmax: u,
              spatialReference: e,
            }),
            center: new d.Z({ x: p, y: h, z: f, spatialReference: e }),
          };
        }
        get anchor() {
          if ((0, o.i)(this.transform)) return this.transform.getOriginPoint(this.spatialReference);
          const t = this.boundingInfo;
          return new d.Z({
            x: t.center.x,
            y: t.center.y,
            z: t.extent.zmin,
            spatialReference: this.spatialReference,
          });
        }
        get origin() {
          return (0, o.i)(this.transform)
            ? this.transform.getOriginPoint(this.spatialReference)
            : this.boundingInfo.center;
        }
        get extent() {
          return !this.loaded && (0, o.i)(this.external) && (0, o.i)(this.external.extent)
            ? this.external.extent.clone()
            : this.boundingInfo.extent;
        }
        addComponent(t) {
          this.loaded
            ? (this.components || (this.components = []),
              this.components.push(v.Z.from(t)),
              this.notifyChange('components'))
            : pt.error('addComponent()', 'Mesh must be loaded before applying operations');
        }
        removeComponent(t) {
          if (this.loaded) {
            if (this.components) {
              const e = this.components.indexOf(t);
              if (-1 !== e)
                return this.components.splice(e, 1), void this.notifyChange('components');
            }
            pt.error(
              'removeComponent()',
              'Provided component is not part of the list of components',
            );
          } else pt.error('removeComponent()', 'Mesh must be loaded before applying operations');
        }
        rotate(t, e, n, r) {
          return (
            (0, y.f)(ft.x, t, gt),
            (0, y.f)(ft.y, e, xt),
            (0, y.f)(ft.z, n, dt),
            (0, y.a)(gt, xt, gt),
            (0, y.a)(gt, dt, gt),
            (function (t, e, n) {
              if (!t.vertexAttributes || !t.vertexAttributes.position || 0 === e[3]) return;
              const r = t.spatialReference;
              if ((0, o.i)(t.transform)) {
                var i;
                null != (null == n ? void 0 : n.geographic) &&
                  n.geographic !== t.transform.geographic &&
                  X.warn(
                    `Specifying the 'geographic' parameter (${n.geographic}) different from the Mesh transform setting (${t.transform.geographic}) is not supported`,
                  );
                const o =
                  null != (i = null == n ? void 0 : n.origin) ? i : t.transform.getOriginPoint(r);
                !(function (t, e, n) {
                  const r = (0, g.e)(Q, n.x, n.y, n.z),
                    o = (0, g.s)(Q, r, t.origin);
                  t.applyLocalInverse(o, tt),
                    (t.rotation = (0, y.a)(t.rotation, e, (0, y.c)())),
                    t.applyLocalInverse(o, o),
                    (0, g.s)(o, o, tt),
                    (t.translation = (0, g.g)((0, g.b)(), t.translation, o));
                })(t.transform, e, o);
              } else {
                var s;
                const r = null != (s = null == n ? void 0 : n.origin) ? s : t.origin;
                (0, w.i)(t.spatialReference, n)
                  ? (function (t, e, n) {
                      const r = t.spatialReference,
                        i = (0, D.c)(r),
                        s = ot;
                      (0, F.KC)(n, s, i) || (0, F.KC)(t.origin, s, i);
                      const a = t.vertexAttributes.position,
                        l = t.vertexAttributes.normal,
                        c = t.vertexAttributes.tangent,
                        u = new Float64Array(a.length),
                        p = (0, o.i)(l) ? new Float32Array(l.length) : null,
                        h = (0, o.i)(c) ? new Float32Array(c.length) : null;
                      (0, F.P_)(i, s, nt, i), (0, _.f)(rt, nt);
                      const f = et;
                      (0, g.x)((0, y.b)(et), (0, y.b)(e), rt),
                        (f[3] = e[3]),
                        (0, j.p)(a, r, u),
                        (0, o.i)(l) && (0, j.a)(l, a, u, r, p),
                        (0, o.i)(c) && (0, j.b)(c, a, u, r, h),
                        q(u, f, 3, s),
                        (0, j.c)(u, a, r),
                        (0, o.i)(l) && (q(p, f, 3), (0, j.d)(p, a, u, r, l)),
                        (0, o.i)(c) && (q(h, f, 4), (0, j.e)(h, a, u, r, c)),
                        t.vertexAttributesChanged();
                    })(t, e, r)
                  : (function (t, e, n) {
                      const r = ot;
                      if (!(0, F.KC)(n, r, t.spatialReference)) {
                        const e = t.origin;
                        (r[0] = e.x),
                          (r[1] = e.y),
                          (r[2] = e.z),
                          X.error(
                            `Failed to project specified origin (wkid:${n.spatialReference.wkid}) to mesh spatial reference (wkid:${t.spatialReference.wkid}).`,
                          );
                      }
                      q(t.vertexAttributes.position, e, 3, r),
                        q(t.vertexAttributes.normal, e, 3),
                        q(t.vertexAttributes.tangent, e, 4),
                        t.vertexAttributesChanged();
                    })(t, e, r);
              }
            })(this, gt, r),
            this
          );
        }
        offset(t, e, n, r) {
          return this.loaded
            ? ((mt[0] = t),
              (mt[1] = e),
              (mt[2] = n),
              (function (t, e, n) {
                t.vertexAttributes &&
                  t.vertexAttributes.position &&
                  ((0, o.i)(t.transform)
                    ? (null != (null == n ? void 0 : n.geographic) &&
                        n.geographic !== t.transform.geographic &&
                        k.warn(
                          `Specifying the 'geographic' parameter (${n.geographic}) different from the Mesh transform setting (${t.transform.geographic}) is not supported`,
                        ),
                      (function (t, e) {
                        const n = t.origin;
                        t.origin = (0, g.g)((0, g.b)(), n, e);
                      })(t.transform, e))
                    : (0, w.i)(t.spatialReference, n)
                    ? (function (t, e) {
                        const n = t.spatialReference,
                          r = t.vertexAttributes.position,
                          i = t.vertexAttributes.normal,
                          s = t.vertexAttributes.tangent,
                          a = new Float64Array(r.length),
                          l = (0, o.i)(i) ? new Float32Array(i.length) : null,
                          c = (0, o.i)(s) ? new Float32Array(s.length) : null,
                          u = t.extent.center,
                          p = $;
                        (0, F.P_)(n, [u.x, u.y, u.z], N, (0, D.c)(n)),
                          (0, _.f)(H, N),
                          (0, g.x)(p, e, H),
                          (0, j.p)(r, n, a),
                          (0, o.i)(i) && (0, j.a)(i, r, a, n, l),
                          (0, o.i)(s) && (0, j.b)(s, r, a, n, c),
                          W(a, p),
                          (0, j.c)(a, r, n),
                          (0, o.i)(i) && (0, j.d)(l, r, a, n, i),
                          (0, o.i)(s) && (0, j.e)(c, r, a, n, s),
                          t.vertexAttributesChanged();
                      })(t, e)
                    : (function (t, e) {
                        W(t.vertexAttributes.position, e), t.vertexAttributesChanged();
                      })(t, e));
              })(this, mt, r),
              this)
            : (pt.error('offset()', 'Mesh must be loaded before applying operations'), this);
        }
        scale(t, e) {
          return this.loaded
            ? ((function (t, e, n) {
                if (!t.vertexAttributes || !t.vertexAttributes.position) return;
                const r = t.spatialReference;
                if ((0, o.i)(t.transform)) {
                  var i;
                  null != (null == n ? void 0 : n.geographic) &&
                    n.geographic !== t.transform.geographic &&
                    it.warn(
                      `Specifying the 'geographic' parameter (${n.geographic}) different from the Mesh transform setting (${t.transform.geographic}) is not supported`,
                    );
                  const o =
                    null != (i = null == n ? void 0 : n.origin) ? i : t.transform.getOriginPoint(r);
                  !(function (t, e, n) {
                    const r = (0, g.e)(at, n.x, n.y, n.z),
                      o = (0, g.s)(at, r, t.origin);
                    t.applyLocalInverse(o, lt);
                    const i = (0, g.f)((0, g.b)(), t.scale, e);
                    (t.scale = i),
                      t.applyLocalInverse(o, o),
                      (0, g.s)(o, o, lt),
                      (t.translation = (0, g.g)((0, g.b)(), t.translation, o));
                  })(t.transform, e, o);
                } else {
                  const r = (0, w.i)(t.spatialReference, n),
                    i = (n && n.origin) || t.origin;
                  r
                    ? (function (t, e, n) {
                        const r = t.spatialReference,
                          i = (0, D.c)(r),
                          s = ct;
                        (0, F.KC)(n, s, i) || (0, F.KC)(t.origin, s, i);
                        const a = t.vertexAttributes.position,
                          l = t.vertexAttributes.normal,
                          c = t.vertexAttributes.tangent,
                          u = new Float64Array(a.length),
                          p = (0, o.i)(l) ? new Float32Array(l.length) : null,
                          h = (0, o.i)(c) ? new Float32Array(c.length) : null;
                        (0, j.p)(a, r, u),
                          (0, o.i)(l) && (0, j.a)(l, a, u, r, p),
                          (0, o.i)(c) && (0, j.b)(c, a, u, r, h),
                          st(u, e, s),
                          (0, j.c)(u, a, r),
                          (0, o.i)(l) && (0, j.d)(p, a, u, r, l),
                          (0, o.i)(c) && (0, j.e)(h, a, u, r, c),
                          t.vertexAttributesChanged();
                      })(t, e, i)
                    : (function (t, e, n) {
                        const r = ct;
                        if (!(0, F.KC)(n, r, t.spatialReference)) {
                          const e = t.origin;
                          (r[0] = e.x),
                            (r[1] = e.y),
                            (r[2] = e.z),
                            it.error(
                              `Failed to project specified origin (wkid:${n.spatialReference.wkid}) to mesh spatial reference (wkid:${t.spatialReference.wkid}).`,
                            );
                        }
                        st(t.vertexAttributes.position, e, r), t.vertexAttributesChanged();
                      })(t, e, i);
                }
              })(this, t, e),
              this)
            : (pt.error('scale()', 'Mesh must be loaded before applying operations'), this);
        }
        centerAt(t, e) {
          return this.loaded
            ? ((function (t, e, n) {
                var r;
                if (!t.vertexAttributes || !t.vertexAttributes.position) return;
                const i = null != (r = null == n ? void 0 : n.origin) ? r : t.origin;
                (0, o.i)(t.transform)
                  ? (null != (null == n ? void 0 : n.geographic) &&
                      n.geographic !== t.transform.geographic &&
                      P.warn(
                        `Specifying the 'geographic' parameter (${n.geographic}) different from the Mesh transform setting (${t.transform.geographic}) is not supported`,
                      ),
                    (function (t, e, n) {
                      const r = e.x - n.x,
                        o = e.y - n.y,
                        i = e.hasZ && n.hasZ ? e.z - n.z : 0,
                        s = t.origin;
                      t.origin = [s[0] + r, s[1] + o, s[2] + i];
                    })(t.transform, e, i))
                  : (0, w.i)(t.spatialReference, n)
                  ? (function (t, e, n) {
                      const r = (0, w.u)(t.vertexAttributes, n, { geographic: !0 }),
                        { position: o, normal: i, tangent: s } = (0, w.g)(r, e, { geographic: !0 });
                      (t.vertexAttributes.position = o),
                        (t.vertexAttributes.normal = i),
                        (t.vertexAttributes.tangent = s),
                        t.vertexAttributesChanged();
                    })(t, e, i)
                  : (function (t, e, n) {
                      const r = z,
                        o = I;
                      if ((0, F.KC)(e, o, t.spatialReference)) {
                        if (!(0, F.KC)(n, r, t.spatialReference)) {
                          const e = t.origin;
                          (r[0] = e.x),
                            (r[1] = e.y),
                            (r[2] = e.z),
                            P.error(
                              `Failed to project specified origin (wkid:${n.spatialReference.wkid}) to mesh spatial reference (wkid:${t.spatialReference.wkid}).`,
                            );
                        }
                        (function (t, e, n) {
                          if (t)
                            for (let r = 0; r < t.length; r += 3)
                              for (let o = 0; o < 3; o++) t[r + o] += e[o] - n[o];
                        })(t.vertexAttributes.position, o, r),
                          t.vertexAttributesChanged();
                      } else
                        P.error(
                          `Failed to project centerAt location (wkid:${e.spatialReference.wkid}) to mesh spatial reference (wkid:${t.spatialReference.wkid})`,
                        );
                    })(t, e, i);
              })(this, t, e),
              this)
            : (pt.error('centerAt()', 'Mesh must be loaded before applying operations'), this);
        }
        load(t) {
          return (
            (0, o.i)(this.external) &&
              this.addResolvingPromise(
                (async function (t, e, r) {
                  const { loadGLTFMesh: i } = await (0, p.Hl)(
                      Promise.all([n.e(779), n.e(2432)]).then(n.bind(n, 62432)),
                      r,
                    ),
                    s = await E(e, r),
                    a = i(
                      new d.Z({ x: 0, y: 0, z: 0, spatialReference: t.spatialReference }),
                      s.url,
                      {
                        resolveFile: S(s),
                        useTransform: !0,
                        signal: (0, o.i)(r) ? r.signal : null,
                      },
                    );
                  a.then(
                    () => s.dispose(),
                    () => s.dispose(),
                  );
                  const { vertexAttributes: l, components: c } = await a;
                  (t.vertexAttributes = l), (t.components = c);
                })(this, this.external.source, t),
              ),
            Promise.resolve(this)
          );
        }
        clone() {
          const t = this.components ? new Map() : null,
            e = this.components ? new Map() : null,
            n = {
              components: this.components
                ? this.components.map((n) => n.cloneWithDeduplication(t, e))
                : null,
              spatialReference: this.spatialReference,
              vertexAttributes: this.vertexAttributes.clone(),
              transform: (0, o.i)(this.transform) ? this.transform.clone() : null,
              external: (0, o.i)(this.external)
                ? {
                    source: this.external.source,
                    extent: (0, o.i)(this.external.extent) ? this.external.extent.clone() : null,
                  }
                : null,
            };
          return new ut(n);
        }
        vertexAttributesChanged() {
          this.notifyChange('vertexAttributes');
        }
        async toBinaryGLTF(t) {
          const { toBinaryGLTF: e } = await n.e(9314).then(n.bind(n, 79314));
          return e(this, t);
        }
        static createBox(t, e) {
          if (!(t instanceof d.Z))
            return pt.error('.createBox()', 'expected location to be a Point instance'), null;
          const n = new ut(
            K(
              (function () {
                const { faceDescriptions: t, faceVertexOffsets: e, uvScales: n } = V,
                  r = 4 * t.length,
                  o = new Float64Array(3 * r),
                  i = new Float32Array(3 * r),
                  s = new Float32Array(2 * r),
                  a = new Uint32Array(2 * t.length * 3);
                let l = 0,
                  c = 0,
                  u = 0,
                  p = 0;
                for (let r = 0; r < t.length; r++) {
                  const h = t[r],
                    f = l / 3;
                  for (const t of e) a[p++] = f + t;
                  const g = h.corners;
                  for (let t = 0; t < 4; t++) {
                    const e = g[t];
                    let r = 0;
                    (s[u++] = 0.25 * n[t][0] + h.uvOrigin[0]),
                      (s[u++] = h.uvOrigin[1] - 0.25 * n[t][1]);
                    for (let t = 0; t < 3; t++)
                      0 !== h.axis[t]
                        ? ((o[l++] = 0.5 * h.axis[t]), (i[c++] = h.axis[t]))
                        : ((o[l++] = 0.5 * e[r++]), (i[c++] = 0));
                  }
                }
                return { position: o, normal: i, uv: s, faces: a };
              })(),
              t,
              e,
            ),
          );
          return e && e.imageFace && 'all' !== e.imageFace
            ? (function (t, e) {
                const n = t.components[0],
                  r = n.faces,
                  i = G[e],
                  s = 6 * i,
                  a = new Uint32Array(6),
                  l = new Uint32Array(r.length - 6);
                let c = 0,
                  u = 0;
                for (let t = 0; t < r.length; t++)
                  t >= s && t < s + 6 ? (a[c++] = r[t]) : (l[u++] = r[t]);
                if ((0, o.i)(t.vertexAttributes.uv)) {
                  const e = new Float32Array(t.vertexAttributes.uv),
                    n = 4 * i * 2,
                    r = [0, 1, 1, 1, 1, 0, 0, 0];
                  for (let t = 0; t < r.length; t++) e[n + t] = r[t];
                  t.vertexAttributes.uv = e;
                }
                return (
                  (t.components = [
                    new v.Z({ faces: a, material: n.material }),
                    new v.Z({ faces: l }),
                  ]),
                  t
                );
              })(n, e.imageFace)
            : n;
        }
        static createSphere(t, e) {
          return t instanceof d.Z
            ? new ut(
                K(
                  (function (t = 0) {
                    const e = Math.round(8 * 2 ** t),
                      n = 2 * e,
                      r = (e - 1) * (n + 1) + 2 * n,
                      o = new Float64Array(3 * r),
                      i = new Float32Array(3 * r),
                      s = new Float32Array(2 * r),
                      a = new Uint32Array((e - 1) * n * 2 * 3);
                    let l = 0,
                      c = 0,
                      u = 0,
                      p = 0;
                    for (let t = 0; t <= e; t++) {
                      const r = (t / e) * Math.PI + 0.5 * Math.PI,
                        h = Math.cos(r),
                        f = Math.sin(r);
                      Y[2] = f;
                      const g = 0 === t || t === e,
                        x = g ? n - 1 : n;
                      for (let r = 0; r <= x; r++) {
                        const f = (r / x) * 2 * Math.PI;
                        (Y[0] = -Math.sin(f) * h), (Y[1] = Math.cos(f) * h);
                        for (let t = 0; t < 3; t++) (o[l] = 0.5 * Y[t]), (i[l] = Y[t]), ++l;
                        (s[c++] = (r + (g ? 0.5 : 0)) / n),
                          (s[c++] = t / e),
                          0 !== t &&
                            r !== n &&
                            (t !== e && ((a[u++] = p), (a[u++] = p + 1), (a[u++] = p - n)),
                            1 !== t && ((a[u++] = p), (a[u++] = p - n), (a[u++] = p - n - 1))),
                          p++;
                      }
                    }
                    return { position: o, normal: i, uv: s, faces: a };
                  })((e && e.densificationFactor) || 0),
                  t,
                  e,
                ),
              )
            : (pt.error('.createSphere()', 'expected location to be a Point instance'), null);
        }
        static createCylinder(t, e) {
          return t instanceof d.Z
            ? new ut(
                K(
                  (function (t = 0) {
                    const e = Math.round(16 * 2 ** t),
                      n = 4 * (e + 1) + 2 * e,
                      r = new Float64Array(3 * n),
                      o = new Float32Array(3 * n),
                      i = new Float32Array(2 * n),
                      s = new Uint32Array(4 * e * 3);
                    let a = 0,
                      l = 0,
                      c = 0,
                      u = 0,
                      p = 0;
                    for (let t = 0; t <= 5; t++) {
                      const n = 0 === t || 5 === t,
                        h = t <= 1 || t >= 4,
                        f = 2 === t || 4 === t,
                        g = n ? e - 1 : e;
                      for (let x = 0; x <= g; x++) {
                        const d = (x / g) * 2 * Math.PI,
                          m = n ? 0 : 0.5;
                        (Y[0] = m * Math.sin(d)),
                          (Y[1] = m * -Math.cos(d)),
                          (Y[2] = t <= 2 ? 0.5 : -0.5);
                        for (let e = 0; e < 3; e++)
                          (r[a++] = Y[e]),
                            (o[l++] = h
                              ? 2 === e
                                ? t <= 1
                                  ? 1
                                  : -1
                                : 0
                              : 2 === e
                              ? 0
                              : Y[e] / m);
                        (i[c++] = (x + (n ? 0.5 : 0)) / e),
                          (i[c++] =
                            t <= 1
                              ? (1 * t) / 3
                              : t <= 3
                              ? (1 * (t - 2)) / 3 + 1 / 3
                              : (1 * (t - 4)) / 3 + 2 / 3),
                          f ||
                            0 === t ||
                            x === e ||
                            (5 !== t && ((s[u++] = p), (s[u++] = p + 1), (s[u++] = p - e)),
                            1 !== t && ((s[u++] = p), (s[u++] = p - e), (s[u++] = p - e - 1))),
                          p++;
                      }
                    }
                    return { position: r, normal: o, uv: i, faces: s };
                  })((e && e.densificationFactor) || 0),
                  t,
                  e,
                ),
              )
            : (pt.error('.createCylinder()', 'expected location to be a Point instance'), null);
        }
        static createPlane(t, e) {
          return t instanceof d.Z
            ? new ut(
                K(
                  (function (t) {
                    const e = B.facingAxisOrderSwap[t],
                      n = B.position,
                      r = B.normal,
                      o = new Float64Array(n.length),
                      i = new Float32Array(r.length);
                    let s = 0;
                    for (let t = 0; t < 4; t++) {
                      const t = s;
                      for (let a = 0; a < 3; a++) {
                        const l = e[a],
                          c = Math.abs(l) - 1,
                          u = l >= 0 ? 1 : -1;
                        (o[s] = n[t + c] * u), (i[s] = r[t + c] * u), s++;
                      }
                    }
                    return {
                      position: o,
                      normal: i,
                      uv: new Float32Array(B.uv),
                      faces: new Uint32Array(B.faces),
                    };
                  })((e && e.facing) || 'up'),
                  t,
                  e,
                ),
              )
            : (pt.error('.createPlane()', 'expected location to be a Point instance'), null);
        }
        static createFromPolygon(t, e) {
          if (!(t instanceof m.Z))
            return (
              pt.error('.createFromPolygon()', 'expected polygon to be a Polygon instance'), null
            );
          const n = C(t);
          return new ut({
            vertexAttributes: new v.a({ position: n.position }),
            components: [
              new v.Z({ faces: n.faces, shading: 'flat', material: (e && e.material) || null }),
            ],
            spatialReference: t.spatialReference,
          });
        }
        static async createFromGLTF(t, e, r) {
          if (!(t instanceof d.Z))
            throw (
              (pt.error('.createfromGLTF()', 'expected location to be a Point instance'),
              new a.Z('invalid-input', 'Expected location to be a Point instance'))
            );
          const { loadGLTFMesh: o } = await (0, p.Hl)(
            Promise.all([n.e(779), n.e(2432)]).then(n.bind(n, 62432)),
            r,
          );
          return new ut(await o(t, e, r));
        }
        static createWithExternalSource(t, e, n) {
          var r, o, i;
          const s = null != (r = null == n ? void 0 : n.extent) ? r : null,
            a = null != (o = null == n ? void 0 : n.transform.clone()) ? o : new w.M();
          a.origin = [t.x, t.y, null != (i = t.z) ? i : 0];
          const l = t.spatialReference;
          return new ut({ external: { source: e, extent: s }, transform: a, spatialReference: l });
        }
        static createIncomplete(t, e) {
          var n, r;
          const o = null != (n = null == e ? void 0 : e.transform.clone()) ? n : new w.M();
          o.origin = [t.x, t.y, null != (r = t.z) ? r : 0];
          const i = t.spatialReference,
            s = new ut({ transform: o, spatialReference: i });
          return (
            s.addResolvingPromise(
              Promise.reject(new a.Z('mesh-incomplete', 'Mesh resources are not complete')),
            ),
            s
          );
        }
      });
      (0, s._)(
        [(0, h.Cb)({ type: [v.Z], json: { write: !0 } })],
        ht.prototype,
        'components',
        void 0,
      ),
        (0, s._)(
          [(0, h.Cb)({ type: w.M, json: { write: !0 } })],
          ht.prototype,
          'transform',
          void 0,
        ),
        (0, s._)([(0, h.Cb)({ constructOnly: !0 })], ht.prototype, 'external', void 0),
        (0, s._)([(0, h.Cb)({ readOnly: !0 })], ht.prototype, 'hasExtent', null),
        (0, s._)([(0, h.Cb)({ readOnly: !0 })], ht.prototype, 'boundingInfo', null),
        (0, s._)([(0, h.Cb)({ readOnly: !0 })], ht.prototype, 'anchor', null),
        (0, s._)([(0, h.Cb)({ readOnly: !0 })], ht.prototype, 'origin', null),
        (0, s._)([(0, h.Cb)({ readOnly: !0, json: { read: !1 } })], ht.prototype, 'extent', null),
        (0, s._)(
          [(0, h.Cb)({ readOnly: !0, json: { read: !1, write: !0, default: !0 } })],
          ht.prototype,
          'hasZ',
          void 0,
        ),
        (0, s._)(
          [(0, h.Cb)({ readOnly: !0, json: { read: !1, write: !0, default: !1 } })],
          ht.prototype,
          'hasM',
          void 0,
        ),
        (0, s._)(
          [(0, h.Cb)({ type: v.a, nonNullable: !0, json: { write: !0 } })],
          ht.prototype,
          'vertexAttributes',
          void 0,
        ),
        (ht = ut = (0, s._)([(0, f.j)('esri.geometry.Mesh')], ht));
      const ft = { x: (0, g.p)(1, 0, 0), y: (0, g.p)(0, 1, 0), z: (0, g.p)(0, 0, 1) },
        gt = (0, y.c)(),
        xt = (0, y.c)(),
        dt = (0, y.c)(),
        mt = (0, g.b)(),
        yt = ht;
      var vt = n(87258);
      function wt(t, e, n) {
        const i = n.features;
        (n.features = []), delete n.geometryType;
        const s = vt.default.fromJSON(n);
        s.geometryType = 'mesh';
        const a = s.spatialReference,
          l =
            (0, o.b)(t.outFields) || !t.outFields.length
              ? () => ({})
              : ((c = t.outFields.includes('*') ? null : new Set(t.outFields)),
                ({ attributes: t }) => {
                  if (!t) return {};
                  if (!c) return t;
                  for (const e in t) c.has(e) || delete t[e];
                  return t;
                });
        var c;
        for (const t of i) {
          const n = bt(t, a, e);
          (0, o.i)(n) && s.features.push(new r.Z({ geometry: n, attributes: l(t) }));
        }
        return s;
      }
      function bt(t, e, n) {
        const { status: r, source: o } = (function (t) {
          if (!t.assetMappings) return { status: 0 };
          const e = [],
            n = new Map();
          for (const r of t.assetMappings) {
            const t = r.seqNo,
              o = r.assetName,
              i = r.assetURL,
              s = r.conversionStatus;
            if ('FAILED' === s) return { status: 0 };
            if ('COMPLETED' !== s) return { status: 1 };
            if (null == t) e.push({ name: o, source: i });
            else {
              const r = n.get(o);
              let s;
              r
                ? (s = r.multipart)
                : ((s = []),
                  e.push({ name: o, source: { multipart: s } }),
                  n.set(o, { multipart: s })),
                (s[t] = i);
            }
          }
          return { status: 2, source: e };
        })(t);
        if (0 === r) return null;
        const s = (function ({ attributes: t }, e, { transformFieldRoles: n }) {
            return new d.Z({
              x: t[n.originX],
              y: t[n.originY],
              z: t[n.originZ],
              spatialReference: e,
            });
          })(t, e, n),
          a = i.Z.fromJSON(t.geometry);
        a.spatialReference = e;
        const l = (function ({ attributes: t, assetMappings: e }, { transformFieldRoles: n }) {
          var r;
          return new w.M({
            translation: [t[n.translationX], t[n.translationY], t[n.translationZ]],
            rotation: (0, y.f)([t[n.rotationX], t[n.rotationY], t[n.rotationZ]], t[n.rotationDeg]),
            scale: [t[n.scaleX], t[n.scaleY], t[n.scaleZ]],
            geographic: !(null != (r = e.flags) && r.includes('PROJECT_VERTICES')),
          });
        })(t, n);
        return 1 === r
          ? yt.createIncomplete(s, { extent: a, transform: l })
          : yt.createWithExternalSource(s, o, { extent: a, transform: l });
      }
      n(74569),
        n(22781),
        n(32422),
        n(86748),
        n(15324),
        n(76996),
        n(14249),
        n(9801),
        n(53523),
        n(59465),
        n(42911),
        n(46826),
        n(45433),
        n(60217),
        n(29107),
        n(30574),
        n(2157),
        n(25977),
        n(7471),
        n(54414),
        n(1648),
        n(8925),
        n(33921),
        n(3482),
        n(45154),
        n(16769),
        n(55531),
        n(30582),
        n(593),
        n(85699),
        n(63136),
        n(96055),
        n(47776),
        n(18033),
        n(6331),
        n(62048),
        n(4292),
        n(75626),
        n(72652),
        n(29641),
        n(30493),
        n(70821),
        n(82673),
        n(34229),
        n(37029),
        n(96467),
        n(63571),
        n(30776),
        n(63130),
        n(25696),
        n(66396),
        n(42775),
        n(95834),
        n(34394),
        n(57150),
        n(76726),
        n(20444),
        n(76393),
        n(78548),
        n(2497),
        n(49906),
        n(46527),
        n(48649),
        n(9960),
        n(3101),
        n(5853),
        n(39141),
        n(48243),
        n(34635),
        n(10401),
        n(49900),
        n(66284),
        n(67477),
        n(78533),
        n(74653),
        n(91091),
        n(58943),
        n(70737),
        n(8487),
        n(17817),
        n(90814),
        n(15459),
        n(61847),
        n(16796),
        n(16955),
        n(22401),
        n(77894),
        n(55187),
        n(8586),
        n(44509),
        n(69814),
        n(11305),
        n(62259),
        n(44790),
        n(5909),
        n(60669),
        n(48208),
        n(51589),
        n(97546),
        n(54732);
    },
    47029: (t, e, n) => {
      'use strict';
      function r(t, e, n, r) {
        if (!e || !n) throw new Error('Cannot construct image data without dimensions');
        if (i)
          try {
            return new ImageData(t, e, n);
          } catch (t) {
            i = !1;
          }
        const s = (function (t, e, n) {
          return (
            n ||
              (o || ((o = document.createElement('canvas')), (o.width = 1), (o.height = 1)),
              (n = o)),
            n.getContext('2d').createImageData(t, e)
          );
        })(e, n, r);
        return s.data.set(t, 0), s;
      }
      n.d(e, { w: () => r }), n(76506), n(82426);
      let o = null,
        i = !0;
    },
    81773: (t, e, n) => {
      'use strict';
      n.d(e, { Z: () => C, M: () => w, a: () => x });
      var r,
        o = n(29768),
        i = n(74673),
        s = n(76506),
        a = n(92143),
        l = n(34250),
        c = n(86787),
        u = n(17533),
        p = n(91306),
        h = n(44265),
        f = n(71337);
      n(21972),
        n(23639),
        n(86656),
        n(22723),
        n(91055),
        n(27794),
        n(6906),
        n(50406),
        n(60991),
        n(81172),
        n(71552),
        n(31450),
        n(40642),
        n(26341),
        n(48027),
        n(54174),
        n(82426),
        n(68225),
        n(97714),
        n(2906),
        n(38742),
        n(32101),
        n(47029);
      const g = a.L.getLogger('esri.geometry.support.MeshVertexAttributes');
      let x = (r = class extends i.a {
        constructor(t) {
          super(t),
            (this.color = null),
            (this.position = new Float64Array(0)),
            (this.uv = null),
            (this.normal = null),
            (this.tangent = null);
        }
        castColor(t) {
          return m(t, Uint8Array, [Uint8ClampedArray], { loggerTag: '.color=', stride: 4 }, g);
        }
        castPosition(t) {
          return (
            t &&
              t instanceof Float32Array &&
              g.warn(
                '.position=',
                'Setting position attribute from a Float32Array may cause precision problems. Consider storing data in a Float64Array or a regular number array',
              ),
            m(t, Float64Array, [Float32Array], { loggerTag: '.position=', stride: 3 }, g)
          );
        }
        castUv(t) {
          return m(t, Float32Array, [Float64Array], { loggerTag: '.uv=', stride: 2 }, g);
        }
        castNormal(t) {
          return m(t, Float32Array, [Float64Array], { loggerTag: '.normal=', stride: 3 }, g);
        }
        castTangent(t) {
          return m(t, Float32Array, [Float64Array], { loggerTag: '.tangent=', stride: 4 }, g);
        }
        clone() {
          const t = {
            position: (0, s.d9)(this.position),
            uv: (0, s.d9)(this.uv),
            normal: (0, s.d9)(this.normal),
            tangent: (0, s.d9)(this.tangent),
            color: (0, s.d9)(this.color),
          };
          return new r(t);
        }
        clonePositional() {
          const t = {
            position: (0, s.d9)(this.position),
            normal: (0, s.d9)(this.normal),
            tangent: (0, s.d9)(this.tangent),
            uv: this.uv,
            color: this.color,
          };
          return new r(t);
        }
      });
      function d(t, e, n, r) {
        const { loggerTag: o, stride: i } = e;
        return t.length % i != 0
          ? (r.error(o, `Invalid array length, expected a multiple of ${i}`), new n([]))
          : t;
      }
      function m(t, e, n, r, o) {
        if (!t) return t;
        if (t instanceof e) return d(t, r, e, o);
        for (const i of n) if (t instanceof i) return d(new e(t), r, e, o);
        if (Array.isArray(t)) return d(new e(t), r, e, o);
        {
          const r = n.map((t) => `'${t.name}'`);
          return (
            o.error(`Failed to set property, expected one of ${r}, but got ${t.constructor.name}`),
            new e([])
          );
        }
      }
      function y(t, e, n) {
        e[n] = (function (t) {
          const e = new Array(t.length);
          for (let n = 0; n < t.length; n++) e[n] = t[n];
          return e;
        })(t);
      }
      (0, o._)([(0, l.Cb)({ json: { write: y } })], x.prototype, 'color', void 0),
        (0, o._)([(0, c.p)('color')], x.prototype, 'castColor', null),
        (0, o._)(
          [(0, l.Cb)({ nonNullable: !0, json: { write: y } })],
          x.prototype,
          'position',
          void 0,
        ),
        (0, o._)([(0, c.p)('position')], x.prototype, 'castPosition', null),
        (0, o._)([(0, l.Cb)({ json: { write: y } })], x.prototype, 'uv', void 0),
        (0, o._)([(0, c.p)('uv')], x.prototype, 'castUv', null),
        (0, o._)([(0, l.Cb)({ json: { write: y } })], x.prototype, 'normal', void 0),
        (0, o._)([(0, c.p)('normal')], x.prototype, 'castNormal', null),
        (0, o._)([(0, l.Cb)({ json: { write: y } })], x.prototype, 'tangent', void 0),
        (0, o._)([(0, c.p)('tangent')], x.prototype, 'castTangent', null),
        (x = r = (0, o._)([(0, u.j)('esri.geometry.support.MeshVertexAttributes')], x));
      var v,
        w = x;
      const b = a.L.getLogger('esri.geometry.support.MeshComponent');
      let A = (v = class extends i.a {
        constructor(t) {
          super(t),
            (this.faces = null),
            (this.material = null),
            (this.shading = 'source'),
            (this.trustSourceNormals = !1);
        }
        static from(t) {
          return (0, p.k)(v, t);
        }
        castFaces(t) {
          return m(t, Uint32Array, [Uint16Array], { loggerTag: '.faces=', stride: 3 }, b);
        }
        castMaterial(t) {
          return (0, p.k)(
            t &&
              'object' == typeof t &&
              ('metallic' in t || 'roughness' in t || 'metallicRoughnessTexture' in t)
              ? f.Z
              : h.Z,
            t,
          );
        }
        clone() {
          return new v({
            faces: (0, s.d9)(this.faces),
            shading: this.shading,
            material: (0, s.d9)(this.material),
            trustSourceNormals: this.trustSourceNormals,
          });
        }
        cloneWithDeduplication(t, e) {
          const n = {
            faces: (0, s.d9)(this.faces),
            shading: this.shading,
            material: this.material ? this.material.cloneWithDeduplication(t, e) : null,
            trustSourceNormals: this.trustSourceNormals,
          };
          return new v(n);
        }
      });
      (0, o._)([(0, l.Cb)({ json: { write: !0 } })], A.prototype, 'faces', void 0),
        (0, o._)([(0, c.p)('faces')], A.prototype, 'castFaces', null),
        (0, o._)([(0, l.Cb)({ type: h.Z, json: { write: !0 } })], A.prototype, 'material', void 0),
        (0, o._)([(0, c.p)('material')], A.prototype, 'castMaterial', null),
        (0, o._)(
          [(0, l.Cb)({ type: String, json: { write: !0 } })],
          A.prototype,
          'shading',
          void 0,
        ),
        (0, o._)([(0, l.Cb)({ type: Boolean })], A.prototype, 'trustSourceNormals', void 0),
        (A = v = (0, o._)([(0, u.j)('esri.geometry.support.MeshComponent')], A));
      const C = A;
    },
    44265: (t, e, n) => {
      'use strict';
      n.d(e, { Z: () => h });
      var r,
        o = n(29768),
        i = n(48027),
        s = n(74673),
        a = n(76506),
        l = n(34250),
        c = (n(91306), n(92143), n(17533)),
        u = n(68225);
      n(54174),
        n(82426),
        n(31450),
        n(71552),
        n(40642),
        n(21972),
        n(23639),
        n(86656),
        n(22723),
        n(91055),
        n(27794),
        n(6906),
        n(50406),
        n(60991),
        n(81172),
        n(26341),
        n(97714),
        n(2906),
        n(38742),
        n(32101),
        n(47029);
      let p = (r = class extends s.a {
        constructor(t) {
          super(t),
            (this.color = null),
            (this.colorTexture = null),
            (this.normalTexture = null),
            (this.alphaMode = 'auto'),
            (this.alphaCutoff = 0.5),
            (this.doubleSided = !0);
        }
        clone() {
          return this.cloneWithDeduplication(null, new Map());
        }
        cloneWithDeduplication(t, e) {
          const n = (0, a.i)(t) ? t.get(this) : null;
          if (n) return n;
          const o = new r(this.clonePropertiesWithDeduplication(e));
          return (0, a.i)(t) && t.set(this, o), o;
        }
        clonePropertiesWithDeduplication(t) {
          return {
            color: (0, a.i)(this.color) ? this.color.clone() : null,
            colorTexture: (0, a.i)(this.colorTexture)
              ? this.colorTexture.cloneWithDeduplication(t)
              : null,
            normalTexture: (0, a.i)(this.normalTexture)
              ? this.normalTexture.cloneWithDeduplication(t)
              : null,
            alphaMode: this.alphaMode,
            alphaCutoff: this.alphaCutoff,
            doubleSided: this.doubleSided,
          };
        }
      });
      (0, o._)([(0, l.Cb)({ type: i.Z, json: { write: !0 } })], p.prototype, 'color', void 0),
        (0, o._)(
          [(0, l.Cb)({ type: u.Z, json: { write: !0 } })],
          p.prototype,
          'colorTexture',
          void 0,
        ),
        (0, o._)(
          [(0, l.Cb)({ type: u.Z, json: { write: !0 } })],
          p.prototype,
          'normalTexture',
          void 0,
        ),
        (0, o._)(
          [(0, l.Cb)({ nonNullable: !0, json: { write: !0 } })],
          p.prototype,
          'alphaMode',
          void 0,
        ),
        (0, o._)(
          [(0, l.Cb)({ nonNullable: !0, json: { write: !0 } })],
          p.prototype,
          'alphaCutoff',
          void 0,
        ),
        (0, o._)(
          [(0, l.Cb)({ nonNullable: !0, json: { write: !0 } })],
          p.prototype,
          'doubleSided',
          void 0,
        ),
        (p = r = (0, o._)([(0, c.j)('esri.geometry.support.MeshMaterial')], p));
      const h = p;
    },
    71337: (t, e, n) => {
      'use strict';
      n.d(e, { Z: () => h });
      var r,
        o = n(29768),
        i = n(48027),
        s = n(76506),
        a = n(34250),
        l = (n(91306), n(92143), n(17533)),
        c = n(44265),
        u = n(68225);
      n(54174),
        n(82426),
        n(31450),
        n(71552),
        n(40642),
        n(86656),
        n(22723),
        n(81172),
        n(74673),
        n(21972),
        n(23639),
        n(91055),
        n(27794),
        n(6906),
        n(50406),
        n(60991),
        n(26341),
        n(97714),
        n(2906),
        n(38742),
        n(32101),
        n(47029);
      let p = (r = class extends c.Z {
        constructor(t) {
          super(t),
            (this.emissiveColor = null),
            (this.emissiveTexture = null),
            (this.occlusionTexture = null),
            (this.metallic = 1),
            (this.roughness = 1),
            (this.metallicRoughnessTexture = null);
        }
        clone() {
          return this.cloneWithDeduplication(null, new Map());
        }
        cloneWithDeduplication(t, e) {
          const n = (0, s.i)(t) ? t.get(this) : null;
          if (n) return n;
          const o = new r(this.clonePropertiesWithDeduplication(e));
          return (0, s.i)(t) && t.set(this, o), o;
        }
        clonePropertiesWithDeduplication(t) {
          return {
            ...super.clonePropertiesWithDeduplication(t),
            emissiveColor: (0, s.i)(this.emissiveColor) ? this.emissiveColor.clone() : null,
            emissiveTexture: (0, s.i)(this.emissiveTexture)
              ? this.emissiveTexture.cloneWithDeduplication(t)
              : null,
            occlusionTexture: (0, s.i)(this.occlusionTexture)
              ? this.occlusionTexture.cloneWithDeduplication(t)
              : null,
            metallic: this.metallic,
            roughness: this.roughness,
            metallicRoughnessTexture: (0, s.i)(this.metallicRoughnessTexture)
              ? this.metallicRoughnessTexture.cloneWithDeduplication(t)
              : null,
          };
        }
      });
      (0, o._)(
        [(0, a.Cb)({ type: i.Z, json: { write: !0 } })],
        p.prototype,
        'emissiveColor',
        void 0,
      ),
        (0, o._)(
          [(0, a.Cb)({ type: u.Z, json: { write: !0 } })],
          p.prototype,
          'emissiveTexture',
          void 0,
        ),
        (0, o._)(
          [(0, a.Cb)({ type: u.Z, json: { write: !0 } })],
          p.prototype,
          'occlusionTexture',
          void 0,
        ),
        (0, o._)(
          [
            (0, a.Cb)({
              type: Number,
              nonNullable: !0,
              json: { write: !0 },
              range: { min: 0, max: 1 },
            }),
          ],
          p.prototype,
          'metallic',
          void 0,
        ),
        (0, o._)(
          [
            (0, a.Cb)({
              type: Number,
              nonNullable: !0,
              json: { write: !0 },
              range: { min: 0, max: 1 },
            }),
          ],
          p.prototype,
          'roughness',
          void 0,
        ),
        (0, o._)(
          [(0, a.Cb)({ type: u.Z, json: { write: !0 } })],
          p.prototype,
          'metallicRoughnessTexture',
          void 0,
        ),
        (p = r = (0, o._)([(0, l.j)('esri.geometry.support.MeshMaterialMetallicRoughness')], p));
      const h = p;
    },
    68225: (t, e, n) => {
      'use strict';
      n.d(e, { Z: () => d });
      var r,
        o = n(29768),
        i = (n(76506), n(74673)),
        s = n(34250),
        a = n(91306),
        l = (n(92143), n(97714)),
        c = n(17533),
        u = n(2906),
        p = n(38742),
        h = n(47029);
      n(21972),
        n(23639),
        n(86656),
        n(22723),
        n(91055),
        n(27794),
        n(6906),
        n(50406),
        n(60991),
        n(81172),
        n(71552),
        n(31450),
        n(40642),
        n(26341),
        n(32101),
        n(82426);
      const f = new WeakMap();
      let g = 0,
        x = (r = class extends i.a {
          constructor(t) {
            super(t), (this.wrap = 'repeat');
          }
          get url() {
            return this._get('url') || null;
          }
          set url(t) {
            this._set('url', t), t && this._set('data', null);
          }
          get data() {
            return this._get('data') || null;
          }
          set data(t) {
            this._set('data', t), t && this._set('url', null);
          }
          writeData(t, e, n, r) {
            if (t instanceof HTMLImageElement) {
              const o = {
                type: 'image-element',
                src: (0, p.t)(t.src, r),
                crossOrigin: t.crossOrigin,
              };
              e[n] = o;
            } else if (t instanceof HTMLCanvasElement) {
              const r = t.getContext('2d').getImageData(0, 0, t.width, t.height),
                o = { type: 'canvas-element', imageData: this.encodeImageData(r) };
              e[n] = o;
            } else if (t instanceof HTMLVideoElement) {
              const o = {
                type: 'video-element',
                src: (0, p.t)(t.src, r),
                autoplay: t.autoplay,
                loop: t.loop,
                muted: t.muted,
                crossOrigin: t.crossOrigin,
                preload: t.preload,
              };
              e[n] = o;
            } else {
              const r = { type: 'image-data', imageData: this.encodeImageData(t) };
              e[n] = r;
            }
          }
          readData(t) {
            switch (t.type) {
              case 'image-element': {
                const e = new Image();
                return (e.src = t.src), (e.crossOrigin = t.crossOrigin), e;
              }
              case 'canvas-element': {
                const e = this.decodeImageData(t.imageData),
                  n = document.createElement('canvas');
                return (
                  (n.width = e.width),
                  (n.height = e.height),
                  n.getContext('2d').putImageData(e, 0, 0),
                  n
                );
              }
              case 'image-data':
                return this.decodeImageData(t.imageData);
              case 'video-element': {
                const e = document.createElement('video');
                return (
                  (e.src = t.src),
                  (e.crossOrigin = t.crossOrigin),
                  (e.autoplay = t.autoplay),
                  (e.loop = t.loop),
                  (e.muted = t.muted),
                  (e.preload = t.preload),
                  e
                );
              }
              default:
                return;
            }
          }
          get transparent() {
            const t = this.data,
              e = this.url;
            if (t instanceof HTMLCanvasElement)
              return this.imageDataContainsTransparent(
                t.getContext('2d').getImageData(0, 0, t.width, t.height),
              );
            if (t instanceof ImageData) return this.imageDataContainsTransparent(t);
            if (e) {
              const t = e.substr(e.length - 4, 4).toLowerCase(),
                n = e.substr(0, 15).toLocaleLowerCase();
              if ('.png' === t || 'data:image/png;' === n) return !0;
            }
            return !1;
          }
          set transparent(t) {
            null != t ? this._override('transparent', t) : this._clearOverride('transparent');
          }
          get contentHash() {
            const t =
                'string' == typeof this.wrap
                  ? this.wrap
                  : 'object' == typeof this.wrap
                  ? `${this.wrap.horizontal}/${this.wrap.vertical}`
                  : '',
              e = (e = '') => `d:${e},t:${this.transparent},w:${t}`;
            return null != this.url
              ? e(this.url)
              : null != this.data
              ? this.data instanceof HTMLImageElement || this.data instanceof HTMLVideoElement
                ? e(this.data.src)
                : (f.has(this.data) || f.set(this.data, ++g), e(f.get(this.data)))
              : e();
          }
          clone() {
            const t = { url: this.url, data: this.data, wrap: this.cloneWrap() };
            return new r(t);
          }
          cloneWithDeduplication(t) {
            const e = t.get(this);
            if (e) return e;
            const n = this.clone();
            return t.set(this, n), n;
          }
          cloneWrap() {
            return 'string' == typeof this.wrap
              ? this.wrap
              : { horizontal: this.wrap.horizontal, vertical: this.wrap.vertical };
          }
          encodeImageData(t) {
            let e = '';
            for (let n = 0; n < t.data.length; n++) e += String.fromCharCode(t.data[n]);
            return { data: btoa(e), width: t.width, height: t.height };
          }
          decodeImageData(t) {
            const e = atob(t.data),
              n = new Uint8ClampedArray(e.length);
            for (let t = 0; t < e.length; t++) n[t] = e.charCodeAt(t);
            return (0, h.w)(n, t.width, t.height);
          }
          imageDataContainsTransparent(t) {
            for (let e = 3; e < t.data.length; e += 4) if (255 !== t.data[e]) return !0;
            return !1;
          }
          static from(t) {
            return 'string' == typeof t
              ? new r({ url: t })
              : t instanceof HTMLImageElement ||
                t instanceof HTMLCanvasElement ||
                t instanceof ImageData ||
                t instanceof HTMLVideoElement
              ? new r({ data: t })
              : (0, a.k)(r, t);
          }
        });
      (0, o._)([(0, s.Cb)({ type: String, json: { write: p.w } })], x.prototype, 'url', null),
        (0, o._)(
          [
            (0, s.Cb)({
              json: {
                write: {
                  overridePolicy() {
                    return { enabled: !this.url };
                  },
                },
              },
            }),
            (0, s.Cb)(),
          ],
          x.prototype,
          'data',
          null,
        ),
        (0, o._)([(0, u.w)('data')], x.prototype, 'writeData', null),
        (0, o._)([(0, l.r)('data')], x.prototype, 'readData', null),
        (0, o._)(
          [
            (0, s.Cb)({
              type: Boolean,
              json: {
                write: {
                  overridePolicy() {
                    return { enabled: this._isOverridden('transparent') };
                  },
                },
              },
            }),
          ],
          x.prototype,
          'transparent',
          null,
        ),
        (0, o._)([(0, s.Cb)({ json: { write: !0 } })], x.prototype, 'wrap', void 0),
        (0, o._)([(0, s.Cb)({ readOnly: !0 })], x.prototype, 'contentHash', null),
        (x = r = (0, o._)([(0, c.j)('esri.geometry.support.MeshTexture')], x));
      const d = x;
    },
  },
]);
