tangram-weather 0.2.1__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,10 +9,10 @@ var er, Ds;
9
9
  function Yi() {
10
10
  return Ds || (Ds = 1, er = (a, e = 0, t = 1) => a < e ? e : a > t ? t : a), er;
11
11
  }
12
- var tr, Ps;
12
+ var tr, Os;
13
13
  function Bl() {
14
- if (Ps) return tr;
15
- Ps = 1;
14
+ if (Os) return tr;
15
+ Os = 1;
16
16
  const a = Yi();
17
17
  return tr = (e) => {
18
18
  e._clipped = !1, e._unclipped = e.slice(0);
@@ -21,10 +21,10 @@ function Bl() {
21
21
  return e;
22
22
  }, tr;
23
23
  }
24
- var nr, Os;
24
+ var nr, Ps;
25
25
  function os() {
26
- if (Os) return nr;
27
- Os = 1;
26
+ if (Ps) return nr;
27
+ Ps = 1;
28
28
  const a = {};
29
29
  for (let e of ["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp", "Undefined", "Null"])
30
30
  a[`[object ${e}]`] = e.toLowerCase();
@@ -169,7 +169,7 @@ function to() {
169
169
  }, hr;
170
170
  }
171
171
  var dr, Zs;
172
- function Pl() {
172
+ function Ol() {
173
173
  if (Zs) return dr;
174
174
  Zs = 1;
175
175
  const a = to(), e = rt(), t = /^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/, n = /^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/, r = /^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/, s = /^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/, o = /^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/, i = /^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/, { round: l } = Math, u = (c) => {
@@ -220,10 +220,10 @@ function Pl() {
220
220
  return u.test = (c) => t.test(c) || n.test(c) || r.test(c) || s.test(c) || o.test(c) || i.test(c), dr = u, dr;
221
221
  }
222
222
  var js;
223
- function Ol() {
223
+ function Pl() {
224
224
  if (js) return qs;
225
225
  js = 1;
226
- const a = ft(), e = De(), t = rt(), { type: n } = be(), r = Dl(), s = Pl();
226
+ const a = ft(), e = De(), t = rt(), { type: n } = be(), r = Dl(), s = Ol();
227
227
  return e.prototype.css = function(o) {
228
228
  return r(this._rgb, o);
229
229
  }, a.css = (...o) => new e(...o, "css"), t.format.css = s, t.autodetect.push({
@@ -234,7 +234,7 @@ function Ol() {
234
234
  }
235
235
  }), qs;
236
236
  }
237
- Ol();
237
+ Pl();
238
238
  var $s = {}, pr, Xs;
239
239
  function no() {
240
240
  if (Xs) return pr;
@@ -664,8 +664,8 @@ function $l() {
664
664
  for (let q = 0; q < S.length; q++)
665
665
  u.push(q / (S.length - 1));
666
666
  }
667
- return N(), h = S;
668
- }, Q = function(S) {
667
+ return U(), h = S;
668
+ }, O = function(S) {
669
669
  if (f != null) {
670
670
  const q = f.length - 1;
671
671
  let Y = 0;
@@ -675,12 +675,12 @@ function $l() {
675
675
  }
676
676
  return 0;
677
677
  };
678
- let M = (S) => S, Z = (S) => S;
678
+ let M = (S) => S, H = (S) => S;
679
679
  const z = function(S, q) {
680
680
  let Y, j;
681
681
  if (q == null && (q = !1), isNaN(S) || S === null)
682
682
  return o;
683
- q ? j = S : f && f.length > 2 ? j = Q(S) / (f.length - 2) : I !== v ? j = (S - v) / (I - v) : j = 1, j = Z(j), q || (j = M(j)), E !== 1 && (j = t(j, E)), j = c[0] + j * (1 - c[0] - c[1]), j = Math.min(1, Math.max(0, j));
683
+ q ? j = S : f && f.length > 2 ? j = O(S) / (f.length - 2) : I !== v ? j = (S - v) / (I - v) : j = 1, j = H(j), q || (j = M(j)), E !== 1 && (j = t(j, E)), j = c[0] + j * (1 - c[0] - c[1]), j = Math.min(1, Math.max(0, j));
684
684
  const se = Math.floor(j * 1e4);
685
685
  if (L && T[se])
686
686
  Y = T[se];
@@ -706,7 +706,7 @@ function $l() {
706
706
  }
707
707
  return Y;
708
708
  };
709
- var N = () => T = {};
709
+ var U = () => T = {};
710
710
  C(r);
711
711
  const G = function(S) {
712
712
  const q = a(z(S));
@@ -736,7 +736,7 @@ function $l() {
736
736
  u.push(Y / (q - 1));
737
737
  if (S.length > 2) {
738
738
  const Y = S.map((se, ne) => ne / (S.length - 1)), j = S.map((se) => (se - v) / (I - v));
739
- j.every((se, ne) => Y[ne] === se) || (Z = (se) => {
739
+ j.every((se, ne) => Y[ne] === se) || (H = (se) => {
740
740
  if (se <= 0 || se >= 1) return se;
741
741
  let ne = 0;
742
742
  for (; se >= j[ne + 1]; ) ne++;
@@ -747,7 +747,7 @@ function $l() {
747
747
  }
748
748
  return l = [v, I], G;
749
749
  }, G.mode = function(S) {
750
- return arguments.length ? (s = S, N(), G) : s;
750
+ return arguments.length ? (s = S, U(), G) : s;
751
751
  }, G.range = function(S, q) {
752
752
  return C(S), G;
753
753
  }, G.out = function(S) {
@@ -755,14 +755,14 @@ function $l() {
755
755
  }, G.spread = function(S) {
756
756
  return arguments.length ? (i = S, G) : i;
757
757
  }, G.correctLightness = function(S) {
758
- return S == null && (S = !0), y = S, N(), y ? M = function(q) {
758
+ return S == null && (S = !0), y = S, U(), y ? M = function(q) {
759
759
  const Y = z(0, !0).lab()[0], j = z(1, !0).lab()[0], se = Y > j;
760
760
  let ne = z(q, !0).lab()[0];
761
761
  const ye = Y + (j - Y) * q;
762
- let Ge = ne - ye, le = 0, Oe = 1, ht = 20;
762
+ let Ge = ne - ye, le = 0, Pe = 1, ht = 20;
763
763
  for (; Math.abs(Ge) > 0.01 && ht-- > 0; )
764
764
  (function() {
765
- return se && (Ge *= -1), Ge < 0 ? (le = q, q += (Oe - q) * 0.5) : (Oe = q, q += (le - q) * 0.5), ne = z(q, !0).lab()[0], Ge = ne - ye;
765
+ return se && (Ge *= -1), Ge < 0 ? (le = q, q += (Pe - q) * 0.5) : (Pe = q, q += (le - q) * 0.5), ne = z(q, !0).lab()[0], Ge = ne - ye;
766
766
  })();
767
767
  return q;
768
768
  } : M = (q) => q, G;
@@ -936,7 +936,7 @@ function dc(a, e, t, n = co) {
936
936
  const r = e / n, s = Fe(t), o = Fe(a[1]), i = Fe(a[0]), l = Math.sin(o) * Math.cos(r) + Math.cos(o) * Math.sin(r) * Math.cos(s), u = Math.asin(l), c = Math.sin(s) * Math.sin(r) * Math.cos(o), f = Math.cos(r) - Math.sin(o) * l, h = i + Math.atan2(c, f), p = zr(u);
937
937
  return [zr(h), p];
938
938
  }
939
- const uo = Symbol("Comlink.proxy"), pc = Symbol("Comlink.endpoint"), mc = Symbol("Comlink.releaseProxy"), kr = Symbol("Comlink.finalizer"), dn = Symbol("Comlink.thrown"), fo = (a) => typeof a == "object" && a !== null || typeof a == "function", gc = {
939
+ const uo = /* @__PURE__ */ Symbol("Comlink.proxy"), pc = /* @__PURE__ */ Symbol("Comlink.endpoint"), mc = /* @__PURE__ */ Symbol("Comlink.releaseProxy"), kr = /* @__PURE__ */ Symbol("Comlink.finalizer"), dn = /* @__PURE__ */ Symbol("Comlink.thrown"), fo = (a) => typeof a == "object" && a !== null || typeof a == "function", gc = {
940
940
  canHandle: (a) => fo(a) && a[uo],
941
941
  serialize(a) {
942
942
  const { port1: e, port2: t } = new MessageChannel();
@@ -1405,9 +1405,9 @@ function Sc(a = 4, e = !1) {
1405
1405
  const T = f.length;
1406
1406
  i = new h(T * 4);
1407
1407
  for (let L = 0; L < T; L += 3) {
1408
- const E = f[L + 0], C = f[L + 1], Q = f[L + 2], M = c(E, C), Z = c(C, Q), z = c(Q, E);
1409
- let N = L * 4;
1410
- i[N++] = E, i[N++] = M, i[N++] = z, i[N++] = C, i[N++] = Z, i[N++] = M, i[N++] = Q, i[N++] = z, i[N++] = Z, i[N++] = M, i[N++] = Z, i[N++] = z;
1408
+ const E = f[L + 0], C = f[L + 1], O = f[L + 2], M = c(E, C), H = c(C, O), z = c(O, E);
1409
+ let U = L * 4;
1410
+ i[U++] = E, i[U++] = M, i[U++] = z, i[U++] = C, i[U++] = H, i[U++] = M, i[U++] = O, i[U++] = z, i[U++] = H, i[U++] = M, i[U++] = H, i[U++] = z;
1411
1411
  }
1412
1412
  f = i;
1413
1413
  }
@@ -1429,9 +1429,9 @@ function Sc(a = 4, e = !1) {
1429
1429
  }
1430
1430
  for (let y = 0; y < i.length; y += 3) {
1431
1431
  const T = i[y + 0], L = i[y + 1], E = i[y + 2];
1432
- let C = p[2 * T], Q = p[2 * L], M = p[2 * E];
1433
- const Z = p[2 * T + 1], z = p[2 * L + 1], N = p[2 * E + 1];
1434
- Q - C >= 0.5 && Z !== 1 && (Q -= 1), M - Q > 0.5 && (M -= 1), (C > 0.5 && C - M > 0.5 || C === 1 && N === 0) && (C -= 1), Q > 0.5 && Q - C > 0.5 && (Q -= 1), Z === 0 || Z === 1 ? (C = (Q + M) / 2, Z === Q ? p[2 * T] = C : i[y + 0] = I(T, C, Z, !1)) : z === 0 || z === 1 ? (Q = (C + M) / 2, z === C ? p[2 * L] = Q : i[y + 1] = I(L, Q, z, !1)) : (N === 0 || N === 1) && (M = (C + Q) / 2, N === C ? p[2 * E] = M : i[y + 2] = I(E, M, N, !1)), C !== p[2 * T] && Z !== 0 && Z !== 1 && (i[y + 0] = I(T, C, Z, !0)), Q !== p[2 * L] && z !== 0 && z !== 1 && (i[y + 1] = I(L, Q, z, !0)), M !== p[2 * E] && N !== 0 && N !== 1 && (i[y + 2] = I(E, M, N, !0));
1432
+ let C = p[2 * T], O = p[2 * L], M = p[2 * E];
1433
+ const H = p[2 * T + 1], z = p[2 * L + 1], U = p[2 * E + 1];
1434
+ O - C >= 0.5 && H !== 1 && (O -= 1), M - O > 0.5 && (M -= 1), (C > 0.5 && C - M > 0.5 || C === 1 && U === 0) && (C -= 1), O > 0.5 && O - C > 0.5 && (O -= 1), H === 0 || H === 1 ? (C = (O + M) / 2, H === O ? p[2 * T] = C : i[y + 0] = I(T, C, H, !1)) : z === 0 || z === 1 ? (O = (C + M) / 2, z === C ? p[2 * L] = O : i[y + 1] = I(L, O, z, !1)) : (U === 0 || U === 1) && (M = (C + O) / 2, U === C ? p[2 * E] = M : i[y + 2] = I(E, M, U, !1)), C !== p[2 * T] && H !== 0 && H !== 1 && (i[y + 0] = I(T, C, H, !0)), O !== p[2 * L] && z !== 0 && z !== 1 && (i[y + 1] = I(L, O, z, !0)), M !== p[2 * E] && U !== 0 && U !== 1 && (i[y + 2] = I(E, M, U, !0));
1435
1435
  }
1436
1436
  return { vertices: o, triangles: i, uv: p };
1437
1437
  }
@@ -1623,7 +1623,7 @@ function Dc(a, e, t, n = 1 / 0, r = 1 / 0, s) {
1623
1623
  let o = 1;
1624
1624
  const i = [];
1625
1625
  n === void 0 && (n = 1 / 0), r !== void 0 && (o = lt(r / Qc));
1626
- const l = new Lc([], Pc);
1626
+ const l = new Lc([], Oc);
1627
1627
  let u = {
1628
1628
  left: 0,
1629
1629
  // left index in the kd-tree array
@@ -1687,13 +1687,13 @@ function _a(a, e, t, n) {
1687
1687
  const r = n.minLng, s = n.maxLng, o = n.minLat, i = n.maxLat;
1688
1688
  if (a >= r && a <= s)
1689
1689
  return e < o ? lt((e - o) * Re) : e > i ? lt((e - i) * Re) : 0;
1690
- const l = Math.min(lt((a - r) * Re), lt((a - s) * Re)), u = Oc(e, l);
1690
+ const l = Math.min(lt((a - r) * Re), lt((a - s) * Re)), u = Pc(e, l);
1691
1691
  return u > o && u < i ? pn(l, t, e, u) : Math.min(
1692
1692
  pn(l, t, e, o),
1693
1693
  pn(l, t, e, i)
1694
1694
  );
1695
1695
  }
1696
- function Pc(a, e) {
1696
+ function Oc(a, e) {
1697
1697
  return a.dist - e.dist;
1698
1698
  }
1699
1699
  function lt(a) {
@@ -1707,7 +1707,7 @@ function Ca(a, e, t, n, r) {
1707
1707
  const s = lt((a - t) * Re);
1708
1708
  return pn(s, r, e, n);
1709
1709
  }
1710
- function Oc(a, e) {
1710
+ function Pc(a, e) {
1711
1711
  const t = 1 - 2 * e;
1712
1712
  return t <= 0 ? a > 0 ? 90 : -90 : Math.atan(Math.tan(a * Re) / t) / Re;
1713
1713
  }
@@ -2135,13 +2135,13 @@ class Te extends Ce {
2135
2135
  }
2136
2136
  /** The usage with which this buffer was created */
2137
2137
  usage;
2138
- /** For index buffers, whether indices are 16 or 32 bit */
2138
+ /** For index buffers, whether indices are 8, 16 or 32 bit. Note: uint8 indices are automatically converted to uint16 for WebGPU compatibility */
2139
2139
  indexType;
2140
2140
  /** "Time" of last update, can be used to check if redraw is needed */
2141
2141
  updateTimestamp;
2142
2142
  constructor(e, t) {
2143
2143
  const n = { ...t };
2144
- (t.usage || 0) & Te.INDEX && !t.indexType && (t.data instanceof Uint32Array ? n.indexType = "uint32" : t.data instanceof Uint16Array && (n.indexType = "uint16")), delete n.data, super(e, n, Te.defaultProps), this.usage = n.usage || 0, this.indexType = n.indexType, this.updateTimestamp = e.incrementTimestamp();
2144
+ (t.usage || 0) & Te.INDEX && !t.indexType && (t.data instanceof Uint32Array ? n.indexType = "uint32" : t.data instanceof Uint16Array ? n.indexType = "uint16" : t.data instanceof Uint8Array && (n.indexType = "uint8")), delete n.data, super(e, n, Te.defaultProps), this.usage = n.usage || 0, this.indexType = n.indexType, this.updateTimestamp = e.incrementTimestamp();
2145
2145
  }
2146
2146
  /**
2147
2147
  * Create a copy of this Buffer with new byteLength, with same props but of the specified size.
@@ -3134,11 +3134,11 @@ const Mu = (
3134
3134
  vertex: Mu,
3135
3135
  fragment: Qu
3136
3136
  }, Qa = /void\s+main\s*\([^)]*\)\s*\{\n?/, Da = /}\n?[^{}]*$/, Qr = [], mn = "__LUMA_INJECT_DECLARATIONS__";
3137
- function Pu(a) {
3137
+ function Ou(a) {
3138
3138
  const e = { vertex: {}, fragment: {} };
3139
3139
  for (const t in a) {
3140
3140
  let n = a[t];
3141
- const r = Ou(t);
3141
+ const r = Pu(t);
3142
3142
  typeof n == "string" && (n = {
3143
3143
  order: 0,
3144
3144
  injection: n
@@ -3146,7 +3146,7 @@ function Pu(a) {
3146
3146
  }
3147
3147
  return e;
3148
3148
  }
3149
- function Ou(a) {
3149
+ function Pu(a) {
3150
3150
  const e = a.slice(0, 2);
3151
3151
  switch (e) {
3152
3152
  case "vs":
@@ -3211,7 +3211,7 @@ function Nu(a) {
3211
3211
  // defines = {},
3212
3212
  inject: n = {}
3213
3213
  } = a, r = {
3214
- normalizedInjections: Pu(n),
3214
+ normalizedInjections: Ou(n),
3215
3215
  parsedDeprecations: Uu(t)
3216
3216
  };
3217
3217
  e && (r.propValidators = Su(e)), a.instance = r;
@@ -3228,13 +3228,7 @@ function ko(a, e, t) {
3228
3228
  }
3229
3229
  function Uu(a) {
3230
3230
  return a.forEach((e) => {
3231
- switch (e.type) {
3232
- case "function":
3233
- e.regex = new RegExp(`\\b${e.old}\\(`);
3234
- break;
3235
- default:
3236
- e.regex = new RegExp(`${e.type} ${e.old};`);
3237
- }
3231
+ e.type === "function" ? e.regex = new RegExp(`\\b${e.old}\\(`) : e.regex = new RegExp(`${e.type} ${e.old};`);
3238
3232
  }), a;
3239
3233
  }
3240
3234
  function gs(a) {
@@ -3311,9 +3305,9 @@ function Fu(a, e) {
3311
3305
  throw new Error("luma.gl v9 only supports GLSL 3.00 shader sources");
3312
3306
  switch (e) {
3313
3307
  case "vertex":
3314
- return a = Pa(a, Ru), a;
3308
+ return a = Oa(a, Ru), a;
3315
3309
  case "fragment":
3316
- return a = Pa(a, Wu), a;
3310
+ return a = Oa(a, Wu), a;
3317
3311
  default:
3318
3312
  throw new Error(e);
3319
3313
  }
@@ -3336,7 +3330,7 @@ const Bo = [
3336
3330
  // `varying` keyword replaced with `in`
3337
3331
  [$r("varying"), "in $1"]
3338
3332
  ];
3339
- function Pa(a, e) {
3333
+ function Oa(a, e) {
3340
3334
  for (const [t, n] of e)
3341
3335
  a = a.replace(t, n);
3342
3336
  return a;
@@ -3425,13 +3419,13 @@ function Hu(a) {
3425
3419
  function Zu(a) {
3426
3420
  const { vs: e, fs: t } = a, n = gs(a.modules || []);
3427
3421
  return {
3428
- vs: Oa(a.platformInfo, {
3422
+ vs: Pa(a.platformInfo, {
3429
3423
  ...a,
3430
3424
  source: e,
3431
3425
  stage: "vertex",
3432
3426
  modules: n
3433
3427
  }),
3434
- fs: Oa(a.platformInfo, {
3428
+ fs: Pa(a.platformInfo, {
3435
3429
  ...a,
3436
3430
  // @ts-expect-error
3437
3431
  source: t,
@@ -3473,15 +3467,15 @@ function ju(a, e) {
3473
3467
  for (const L in T) {
3474
3468
  const E = /^(v|f)s:#([\w-]+)$/.exec(L);
3475
3469
  if (E) {
3476
- const Q = E[2] === "decl" ? h : p;
3477
- Q[L] = Q[L] || [], Q[L].push(T[L]);
3470
+ const O = E[2] === "decl" ? h : p;
3471
+ O[L] = O[L] || [], O[L].push(T[L]);
3478
3472
  } else
3479
3473
  f[L] = f[L] || [], f[L].push(T[L]);
3480
3474
  }
3481
3475
  }
3482
3476
  return u += Mo, u = Ln(u, n, h), u += So(c[n], f), u += l, u = Ln(u, n, p), u;
3483
3477
  }
3484
- function Oa(a, e) {
3478
+ function Pa(a, e) {
3485
3479
  const { source: t, stage: n, language: r = "glsl", modules: s, defines: o = {}, hookFunctions: i = [], inject: l = {}, prologue: u = !0, log: c } = e;
3486
3480
  ms(typeof t == "string", "shader source must be a string");
3487
3481
  const f = r === "glsl" ? qu(t).version : -1, h = a.shaderLanguageVersion, p = f === 100 ? "#version 100" : "#version 300 es", I = t.split(`
@@ -3511,30 +3505,30 @@ ${$u(y)}
3511
3505
  `;
3512
3506
  break;
3513
3507
  }
3514
- const L = Lo(i), E = {}, C = {}, Q = {};
3508
+ const L = Lo(i), E = {}, C = {}, O = {};
3515
3509
  for (const M in l) {
3516
- const Z = typeof l[M] == "string" ? { injection: l[M], order: 0 } : l[M], z = /^(v|f)s:(#)?([\w-]+)$/.exec(M);
3510
+ const H = typeof l[M] == "string" ? { injection: l[M], order: 0 } : l[M], z = /^(v|f)s:(#)?([\w-]+)$/.exec(M);
3517
3511
  if (z) {
3518
- const N = z[2], G = z[3];
3519
- N ? G === "decl" ? C[M] = [Z] : Q[M] = [Z] : E[M] = [Z];
3512
+ const U = z[2], G = z[3];
3513
+ U ? G === "decl" ? C[M] = [H] : O[M] = [H] : E[M] = [H];
3520
3514
  } else
3521
- Q[M] = [Z];
3515
+ O[M] = [H];
3522
3516
  }
3523
3517
  for (const M of s) {
3524
3518
  c && ko(M, I, c);
3525
- const Z = Do(M, n);
3526
- T += Z;
3519
+ const H = Do(M, n);
3520
+ T += H;
3527
3521
  const z = M.instance?.normalizedInjections[n] || {};
3528
- for (const N in z) {
3529
- const G = /^(v|f)s:#([\w-]+)$/.exec(N);
3522
+ for (const U in z) {
3523
+ const G = /^(v|f)s:#([\w-]+)$/.exec(U);
3530
3524
  if (G) {
3531
- const q = G[2] === "decl" ? C : Q;
3532
- q[N] = q[N] || [], q[N].push(z[N]);
3525
+ const q = G[2] === "decl" ? C : O;
3526
+ q[U] = q[U] || [], q[U].push(z[U]);
3533
3527
  } else
3534
- E[N] = E[N] || [], E[N].push(z[N]);
3528
+ E[U] = E[U] || [], E[U].push(z[U]);
3535
3529
  }
3536
3530
  }
3537
- return T += "// ----- MAIN SHADER SOURCE -------------------------", T += Mo, T = Ln(T, n, C), T += So(L[n], E), T += I, T = Ln(T, n, Q), r === "glsl" && f !== h && (T = Fu(T, n)), T.trim();
3531
+ return T += "// ----- MAIN SHADER SOURCE -------------------------", T += Mo, T = Ln(T, n, C), T += So(L[n], E), T += I, T = Ln(T, n, O), r === "glsl" && f !== h && (T = Fu(T, n)), T.trim();
3538
3532
  }
3539
3533
  function Qo(a) {
3540
3534
  return function(t) {
@@ -3904,9 +3898,9 @@ function hf(a) {
3904
3898
  var e = (32768 & a) >> 15, t = (31744 & a) >> 10, n = 1023 & a;
3905
3899
  return t == 0 ? (e ? -1 : 1) * Math.pow(2, -14) * (n / Math.pow(2, 10)) : t == 31 ? n ? NaN : 1 / 0 * (e ? -1 : 1) : (e ? -1 : 1) * Math.pow(2, t - 15) * (1 + n / Math.pow(2, 10));
3906
3900
  }
3907
- const Po = new Float32Array(1), df = new Int32Array(Po.buffer), ve = new Uint16Array(1);
3901
+ const Oo = new Float32Array(1), df = new Int32Array(Oo.buffer), ve = new Uint16Array(1);
3908
3902
  function pf(a) {
3909
- Po[0] = a;
3903
+ Oo[0] = a;
3910
3904
  const e = df[0], t = e >> 31 & 1;
3911
3905
  let n = e >> 23 & 255, r = 8388607 & e;
3912
3906
  if (n === 255) return ve[0] = t << 15 | 31744 | (r !== 0 ? 512 : 0), ve[0];
@@ -3919,10 +3913,10 @@ function pf(a) {
3919
3913
  }
3920
3914
  return n = n - 127 + 15, n >= 31 ? (ve[0] = t << 15 | 31744, ve[0]) : n <= 0 ? n < -10 ? (ve[0] = t << 15, ve[0]) : (r = (8388608 | r) >> 1 - n, ve[0] = t << 15 | r >> 13, ve[0]) : (r >>= 13, ve[0] = t << 15 | n << 10 | r, ve[0]);
3921
3915
  }
3922
- const As = new Uint32Array(1), Oo = new Float32Array(As.buffer, 0, 1);
3916
+ const As = new Uint32Array(1), Po = new Float32Array(As.buffer, 0, 1);
3923
3917
  function Va(a) {
3924
3918
  const e = 112 + (a >> 6 & 31) << 23 | (63 & a) << 17;
3925
- return As[0] = e, Oo[0];
3919
+ return As[0] = e, Po[0];
3926
3920
  }
3927
3921
  function mf(a, e, t, n, r, s, o, i, l) {
3928
3922
  const u = n * (o >>= r) * (s >>= r) + t * o + e * i;
@@ -4042,7 +4036,7 @@ function mf(a, e, t, n, r, s, o, i, l) {
4042
4036
  const c = new Uint32Array(a.buffer, u, 1)[0], f = (4192256 & c) >> 11, h = (4290772992 & c) >> 22;
4043
4037
  return [Va(2047 & c), Va(f), (function(p) {
4044
4038
  const v = 112 + (p >> 5 & 31) << 23 | (31 & p) << 18;
4045
- return As[0] = v, Oo[0];
4039
+ return As[0] = v, Po[0];
4046
4040
  })(h), 1];
4047
4041
  }
4048
4042
  }
@@ -4267,7 +4261,7 @@ class gn extends ce {
4267
4261
  e(this), (t = this.value) === null || t === void 0 || t.search(e);
4268
4262
  }
4269
4263
  }
4270
- var vt, Ot, w, g;
4264
+ var vt, Pt, w, g;
4271
4265
  ((a) => {
4272
4266
  a.increment = "++", a.decrement = "--";
4273
4267
  })(vt || (vt = {})), ((a) => {
@@ -4290,13 +4284,13 @@ let Fo = class extends ce {
4290
4284
  };
4291
4285
  ((a) => {
4292
4286
  a.assign = "=", a.addAssign = "+=", a.subtractAssin = "-=", a.multiplyAssign = "*=", a.divideAssign = "/=", a.moduloAssign = "%=", a.andAssign = "&=", a.orAssign = "|=", a.xorAssign = "^=", a.shiftLeftAssign = "<<=", a.shiftRightAssign = ">>=";
4293
- })(Ot || (Ot = {})), ((a) => {
4287
+ })(Pt || (Pt = {})), ((a) => {
4294
4288
  a.parse = function(e) {
4295
4289
  const t = e;
4296
4290
  if (t == "parse") throw new Error("Invalid value for AssignOperator");
4297
4291
  return t;
4298
4292
  };
4299
- })(Ot || (Ot = {}));
4293
+ })(Pt || (Pt = {}));
4300
4294
  class Ro extends ce {
4301
4295
  constructor(e, t, n) {
4302
4296
  super(), this.operator = e, this.variable = t, this.value = n;
@@ -4520,11 +4514,11 @@ let An = class extends k {
4520
4514
  get astNodeType() {
4521
4515
  return "sampler";
4522
4516
  }
4523
- }, Pe = class extends Le {
4517
+ }, Oe = class extends Le {
4524
4518
  constructor() {
4525
4519
  super(), this.postfix = null;
4526
4520
  }
4527
- }, ut = class extends Pe {
4521
+ }, ut = class extends Oe {
4528
4522
  constructor(e) {
4529
4523
  super(), this.value = e;
4530
4524
  }
@@ -4537,7 +4531,7 @@ let An = class extends k {
4537
4531
  constEvaluateString() {
4538
4532
  return this.value;
4539
4533
  }
4540
- }, Ve = class extends Pe {
4534
+ }, Ve = class extends Oe {
4541
4535
  constructor(e, t) {
4542
4536
  super(), this.type = e, this.args = t;
4543
4537
  }
@@ -4550,7 +4544,7 @@ let An = class extends k {
4550
4544
  constEvaluate(e, t) {
4551
4545
  return t && (t[0] = this.type), e.evalExpression(this, e.context);
4552
4546
  }
4553
- }, xs = class extends Pe {
4547
+ }, xs = class extends Oe {
4554
4548
  constructor(e, t) {
4555
4549
  super(), this.cachedReturnValue = null, this.name = e, this.args = t;
4556
4550
  }
@@ -4570,7 +4564,7 @@ let An = class extends k {
4570
4564
  for (const t of this.args) t.search(e);
4571
4565
  e(this);
4572
4566
  }
4573
- }, ke = class extends Pe {
4567
+ }, ke = class extends Oe {
4574
4568
  constructor(e) {
4575
4569
  super(), this.name = e;
4576
4570
  }
@@ -4583,7 +4577,7 @@ let An = class extends k {
4583
4577
  constEvaluate(e, t) {
4584
4578
  return e.evalExpression(this, e.context);
4585
4579
  }
4586
- }, jo = class extends Pe {
4580
+ }, jo = class extends Oe {
4587
4581
  constructor(e, t) {
4588
4582
  super(), this.name = e, this.initializer = t;
4589
4583
  }
@@ -4600,7 +4594,7 @@ let An = class extends k {
4600
4594
  search(e) {
4601
4595
  this.initializer.search(e);
4602
4596
  }
4603
- }, me = class extends Pe {
4597
+ }, me = class extends Oe {
4604
4598
  constructor(e, t) {
4605
4599
  super(), this.value = e, this.type = t;
4606
4600
  }
@@ -4614,15 +4608,15 @@ let An = class extends k {
4614
4608
  return this.value instanceof b;
4615
4609
  }
4616
4610
  get isVector() {
4617
- return this.value instanceof m || this.value instanceof H;
4611
+ return this.value instanceof m || this.value instanceof Z;
4618
4612
  }
4619
4613
  get scalarValue() {
4620
4614
  return this.value instanceof b ? this.value.value : (console.error("Value is not scalar."), 0);
4621
4615
  }
4622
4616
  get vectorValue() {
4623
- return this.value instanceof m || this.value instanceof H ? this.value.data : (console.error("Value is not a vector or matrix."), new Float32Array(0));
4617
+ return this.value instanceof m || this.value instanceof Z ? this.value.data : (console.error("Value is not a vector or matrix."), new Float32Array(0));
4624
4618
  }
4625
- }, $o = class extends Pe {
4619
+ }, $o = class extends Oe {
4626
4620
  constructor(e, t) {
4627
4621
  super(), this.type = e, this.value = t;
4628
4622
  }
@@ -4632,14 +4626,14 @@ let An = class extends k {
4632
4626
  search(e) {
4633
4627
  this.value.search(e);
4634
4628
  }
4635
- }, _t = class extends Pe {
4629
+ }, _t = class extends Oe {
4636
4630
  constructor(e) {
4637
4631
  super(), this.index = e;
4638
4632
  }
4639
4633
  search(e) {
4640
4634
  this.index.search(e);
4641
4635
  }
4642
- }, Xo = class extends Pe {
4636
+ }, Xo = class extends Oe {
4643
4637
  constructor() {
4644
4638
  super();
4645
4639
  }
@@ -4679,7 +4673,7 @@ let An = class extends k {
4679
4673
  search(e) {
4680
4674
  e(this), this.searchBlock(this.body, e);
4681
4675
  }
4682
- }, yn = class extends Pe {
4676
+ }, yn = class extends Oe {
4683
4677
  constructor() {
4684
4678
  super();
4685
4679
  }
@@ -4907,15 +4901,15 @@ let m = class Vt extends qe {
4907
4901
  return e;
4908
4902
  }
4909
4903
  };
4910
- class H extends qe {
4904
+ class Z extends qe {
4911
4905
  constructor(e, t, n = null) {
4912
4906
  super(t, n), e instanceof Float32Array ? this.data = e : this.data = new Float32Array(e);
4913
4907
  }
4914
4908
  clone() {
4915
- return new H(new Float32Array(this.data), this.typeInfo, null);
4909
+ return new Z(new Float32Array(this.data), this.typeInfo, null);
4916
4910
  }
4917
4911
  setDataValue(e, t, n, r) {
4918
- n instanceof ut ? console.error("TODO: Set matrix postfix") : t instanceof H ? this.data = t.data : console.error("SetDataValue: Invalid value", t);
4912
+ n instanceof ut ? console.error("TODO: Set matrix postfix") : t instanceof Z ? this.data = t.data : console.error("SetDataValue: Invalid value", t);
4919
4913
  }
4920
4914
  getSubData(e, t, n) {
4921
4915
  if (t === null) return this;
@@ -5066,39 +5060,39 @@ let Ae = class bn extends qe {
5066
5060
  }
5067
5061
  if (o === "mat2x2f" || o === "mat2x2h") {
5068
5062
  const i = new Float32Array(this.buffer, r, 4);
5069
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3]));
5063
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3]));
5070
5064
  }
5071
5065
  if (o === "mat2x3f" || o === "mat2x3h") {
5072
5066
  const i = new Float32Array(this.buffer, r, 6);
5073
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5]));
5067
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5]));
5074
5068
  }
5075
5069
  if (o === "mat2x4f" || o === "mat2x4h") {
5076
5070
  const i = new Float32Array(this.buffer, r, 8);
5077
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7]));
5071
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7]));
5078
5072
  }
5079
5073
  if (o === "mat3x2f" || o === "mat3x2h") {
5080
5074
  const i = new Float32Array(this.buffer, r, 6);
5081
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5]));
5075
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5]));
5082
5076
  }
5083
5077
  if (o === "mat3x3f" || o === "mat3x3h") {
5084
5078
  const i = new Float32Array(this.buffer, r, 9);
5085
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7], i[8] = t.data[8]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8]));
5079
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7], i[8] = t.data[8]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8]));
5086
5080
  }
5087
5081
  if (o === "mat3x4f" || o === "mat3x4h") {
5088
5082
  const i = new Float32Array(this.buffer, r, 12);
5089
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7], i[8] = t.data[8], i[9] = t.data[9], i[10] = t.data[10], i[11] = t.data[11]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11]));
5083
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7], i[8] = t.data[8], i[9] = t.data[9], i[10] = t.data[10], i[11] = t.data[11]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11]));
5090
5084
  }
5091
5085
  if (o === "mat4x2f" || o === "mat4x2h") {
5092
5086
  const i = new Float32Array(this.buffer, r, 8);
5093
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7]));
5087
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7]));
5094
5088
  }
5095
5089
  if (o === "mat4x3f" || o === "mat4x3h") {
5096
5090
  const i = new Float32Array(this.buffer, r, 12);
5097
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7], i[8] = t.data[8], i[9] = t.data[9], i[10] = t.data[10], i[11] = t.data[11]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11]));
5091
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7], i[8] = t.data[8], i[9] = t.data[9], i[10] = t.data[10], i[11] = t.data[11]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11]));
5098
5092
  }
5099
5093
  if (o === "mat4x4f" || o === "mat4x4h") {
5100
5094
  const i = new Float32Array(this.buffer, r, 16);
5101
- return void (t instanceof H ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7], i[8] = t.data[8], i[9] = t.data[9], i[10] = t.data[10], i[11] = t.data[11], i[12] = t.data[12], i[13] = t.data[13], i[14] = t.data[14], i[15] = t.data[15]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15]));
5095
+ return void (t instanceof Z ? (i[0] = t.data[0], i[1] = t.data[1], i[2] = t.data[2], i[3] = t.data[3], i[4] = t.data[4], i[5] = t.data[5], i[6] = t.data[6], i[7] = t.data[7], i[8] = t.data[8], i[9] = t.data[9], i[10] = t.data[10], i[11] = t.data[11], i[12] = t.data[12], i[13] = t.data[13], i[14] = t.data[14], i[15] = t.data[15]) : (i[0] = t[0], i[1] = t[1], i[2] = t[2], i[3] = t[3], i[4] = t[4], i[5] = t[5], i[6] = t[6], i[7] = t[7], i[8] = t[8], i[9] = t[9], i[10] = t[10], i[11] = t[11], i[12] = t[12], i[13] = t[13], i[14] = t[14], i[15] = t[15]));
5102
5096
  }
5103
5097
  if (t instanceof bn) {
5104
5098
  if (n === t.typeInfo)
@@ -5116,7 +5110,7 @@ let Ae = class bn extends qe {
5116
5110
  let i = this.offset, l = this.typeInfo;
5117
5111
  for (; t; ) {
5118
5112
  if (t instanceof _t) {
5119
- const c = t.index, f = c instanceof Pe ? e.evalExpression(c, n) : c;
5113
+ const c = t.index, f = c instanceof Oe ? e.evalExpression(c, n) : c;
5120
5114
  let h = 0;
5121
5115
  if (f instanceof b ? h = f.value : typeof f == "number" ? h = f : console.error("GetDataValue: Invalid index type", c), l instanceof et) i += h * l.stride, l = l.format;
5122
5116
  else {
@@ -5508,18 +5502,18 @@ let qa = class {
5508
5502
  this._tokens.push(new qa(e, t, this._line, this._start, this._current));
5509
5503
  }
5510
5504
  };
5511
- function P(a) {
5505
+ function D(a) {
5512
5506
  return Array.isArray(a) || a?.buffer instanceof ArrayBuffer;
5513
5507
  }
5514
- const Pn = new Float32Array(1), If = new Uint32Array(Pn.buffer), _f = new Uint32Array(Pn.buffer), On = new Int32Array(1), Cf = new Float32Array(On.buffer), Ef = new Uint32Array(On.buffer), Nn = new Uint32Array(1), kf = new Float32Array(Nn.buffer), Tf = new Int32Array(Nn.buffer);
5508
+ const On = new Float32Array(1), If = new Uint32Array(On.buffer), _f = new Uint32Array(On.buffer), Pn = new Int32Array(1), Cf = new Float32Array(Pn.buffer), Ef = new Uint32Array(Pn.buffer), Nn = new Uint32Array(1), kf = new Float32Array(Nn.buffer), Tf = new Int32Array(Nn.buffer);
5515
5509
  function Ga(a, e, t) {
5516
5510
  if (e === t) return a;
5517
5511
  if (e === "f32") {
5518
- if (t === "i32" || t === "x32") return Pn[0] = a, If[0];
5519
- if (t === "u32") return Pn[0] = a, _f[0];
5512
+ if (t === "i32" || t === "x32") return On[0] = a, If[0];
5513
+ if (t === "u32") return On[0] = a, _f[0];
5520
5514
  } else if (e === "i32" || e === "x32") {
5521
- if (t === "f32") return On[0] = a, Cf[0];
5522
- if (t === "u32") return On[0] = a, Ef[0];
5515
+ if (t === "f32") return Pn[0] = a, Cf[0];
5516
+ if (t === "u32") return Pn[0] = a, Ef[0];
5523
5517
  } else if (e === "u32") {
5524
5518
  if (t === "f32") return Nn[0] = a, kf[0];
5525
5519
  if (t === "i32" || t === "x32") return Nn[0] = a, Tf[0];
@@ -5584,7 +5578,7 @@ let Bf = class {
5584
5578
  for (const t of this._functions.values()) t.node.search((n) => {
5585
5579
  var r, s, o;
5586
5580
  if (n instanceof tl) {
5587
- if (n.value) if (P(n.value)) for (const i of n.value) for (const l of this.overrides) i === l.name && ((r = t.info) === null || r === void 0 || r.overrides.push(l));
5581
+ if (n.value) if (D(n.value)) for (const i of n.value) for (const l of this.overrides) i === l.name && ((r = t.info) === null || r === void 0 || r.overrides.push(l));
5588
5582
  else for (const i of this.overrides) n.value === i.name && ((s = t.info) === null || s === void 0 || s.overrides.push(i));
5589
5583
  } else if (n instanceof ke) for (const i of this.overrides) n.name === i.name && ((o = t.info) === null || o === void 0 || o.overrides.push(i));
5590
5584
  });
@@ -6091,7 +6085,7 @@ let ws = 0, Sf = class sl {
6091
6085
  }
6092
6086
  Determinant(e, t) {
6093
6087
  const n = this.exec.evalExpression(e.args[0], t);
6094
- if (n instanceof H) {
6088
+ if (n instanceof Z) {
6095
6089
  const r = n.data, s = n.typeInfo.getTypeName(), o = s.endsWith("h") ? this.getTypeInfo("f16") : this.getTypeInfo("f32");
6096
6090
  if (s === "mat2x2" || s === "mat2x2f" || s === "mat2x2h") return new b(r[0] * r[3] - r[1] * r[2], o);
6097
6091
  if (s === "mat2x3" || s === "mat2x3f" || s === "mat2x3h") return new b(r[0] * (r[4] * r[8] - r[5] * r[7]) - r[1] * (r[3] * r[8] - r[5] * r[6]) + r[2] * (r[3] * r[7] - r[4] * r[6]), o);
@@ -6378,43 +6372,43 @@ let ws = 0, Sf = class sl {
6378
6372
  }
6379
6373
  Transpose(e, t) {
6380
6374
  const n = this.exec.evalExpression(e.args[0], t);
6381
- if (!(n instanceof H)) return console.error(`Transpose() expects a matrix argument. Line ${e.line}`), null;
6375
+ if (!(n instanceof Z)) return console.error(`Transpose() expects a matrix argument. Line ${e.line}`), null;
6382
6376
  const r = this._getTransposeType(n.typeInfo);
6383
6377
  if (n.typeInfo.name === "mat2x2" || n.typeInfo.name === "mat2x2f" || n.typeInfo.name === "mat2x2h") {
6384
6378
  const s = n.data;
6385
- return new H([s[0], s[2], s[1], s[3]], r);
6379
+ return new Z([s[0], s[2], s[1], s[3]], r);
6386
6380
  }
6387
6381
  if (n.typeInfo.name === "mat2x3" || n.typeInfo.name === "mat2x3f" || n.typeInfo.name === "mat2x3h") {
6388
6382
  const s = n.data;
6389
- return new H([s[0], s[3], s[6], s[1], s[4], s[7]], r);
6383
+ return new Z([s[0], s[3], s[6], s[1], s[4], s[7]], r);
6390
6384
  }
6391
6385
  if (n.typeInfo.name === "mat2x4" || n.typeInfo.name === "mat2x4f" || n.typeInfo.name === "mat2x4h") {
6392
6386
  const s = n.data;
6393
- return new H([s[0], s[4], s[8], s[12], s[1], s[5], s[9], s[13]], r);
6387
+ return new Z([s[0], s[4], s[8], s[12], s[1], s[5], s[9], s[13]], r);
6394
6388
  }
6395
6389
  if (n.typeInfo.name === "mat3x2" || n.typeInfo.name === "mat3x2f" || n.typeInfo.name === "mat3x2h") {
6396
6390
  const s = n.data;
6397
- return new H([s[0], s[3], s[1], s[4], s[2], s[5]], r);
6391
+ return new Z([s[0], s[3], s[1], s[4], s[2], s[5]], r);
6398
6392
  }
6399
6393
  if (n.typeInfo.name === "mat3x3" || n.typeInfo.name === "mat3x3f" || n.typeInfo.name === "mat3x3h") {
6400
6394
  const s = n.data;
6401
- return new H([s[0], s[3], s[6], s[1], s[4], s[7], s[2], s[5], s[8]], r);
6395
+ return new Z([s[0], s[3], s[6], s[1], s[4], s[7], s[2], s[5], s[8]], r);
6402
6396
  }
6403
6397
  if (n.typeInfo.name === "mat3x4" || n.typeInfo.name === "mat3x4f" || n.typeInfo.name === "mat3x4h") {
6404
6398
  const s = n.data;
6405
- return new H([s[0], s[4], s[8], s[12], s[1], s[5], s[9], s[13], s[2], s[6], s[10], s[14]], r);
6399
+ return new Z([s[0], s[4], s[8], s[12], s[1], s[5], s[9], s[13], s[2], s[6], s[10], s[14]], r);
6406
6400
  }
6407
6401
  if (n.typeInfo.name === "mat4x2" || n.typeInfo.name === "mat4x2f" || n.typeInfo.name === "mat4x2h") {
6408
6402
  const s = n.data;
6409
- return new H([s[0], s[4], s[1], s[5], s[2], s[6]], r);
6403
+ return new Z([s[0], s[4], s[1], s[5], s[2], s[6]], r);
6410
6404
  }
6411
6405
  if (n.typeInfo.name === "mat4x3" || n.typeInfo.name === "mat4x3f" || n.typeInfo.name === "mat4x3h") {
6412
6406
  const s = n.data;
6413
- return new H([s[0], s[4], s[8], s[1], s[5], s[9], s[2], s[6], s[10]], r);
6407
+ return new Z([s[0], s[4], s[8], s[1], s[5], s[9], s[2], s[6], s[10]], r);
6414
6408
  }
6415
6409
  if (n.typeInfo.name === "mat4x4" || n.typeInfo.name === "mat4x4f" || n.typeInfo.name === "mat4x4h") {
6416
6410
  const s = n.data;
6417
- return new H([s[0], s[4], s[8], s[12], s[1], s[5], s[9], s[13], s[2], s[6], s[10], s[14], s[3], s[7], s[11], s[15]], r);
6411
+ return new Z([s[0], s[4], s[8], s[12], s[1], s[5], s[9], s[13], s[2], s[6], s[10], s[14], s[3], s[7], s[11], s[15]], r);
6418
6412
  }
6419
6413
  return console.error(`Invalid matrix type ${n.typeInfo.name}`), null;
6420
6414
  }
@@ -6761,7 +6755,7 @@ let ws = 0, Sf = class sl {
6761
6755
  return console.error("TODO: quadSwapY"), null;
6762
6756
  }
6763
6757
  };
6764
- const Pr = { vec2: 2, vec2f: 2, vec2i: 2, vec2u: 2, vec2b: 2, vec2h: 2, vec3: 3, vec3f: 3, vec3i: 3, vec3u: 3, vec3b: 3, vec3h: 3, vec4: 4, vec4f: 4, vec4i: 4, vec4u: 4, vec4b: 4, vec4h: 4 }, we = { mat2x2: [2, 2, 4], mat2x2f: [2, 2, 4], mat2x2h: [2, 2, 4], mat2x3: [2, 3, 6], mat2x3f: [2, 3, 6], mat2x3h: [2, 3, 6], mat2x4: [2, 4, 8], mat2x4f: [2, 4, 8], mat2x4h: [2, 4, 8], mat3x2: [3, 2, 6], mat3x2f: [3, 2, 6], mat3x2h: [3, 2, 6], mat3x3: [3, 3, 9], mat3x3f: [3, 3, 9], mat3x3h: [3, 3, 9], mat3x4: [3, 4, 12], mat3x4f: [3, 4, 12], mat3x4h: [3, 4, 12], mat4x2: [4, 2, 8], mat4x2f: [4, 2, 8], mat4x2h: [4, 2, 8], mat4x3: [4, 3, 12], mat4x3f: [4, 3, 12], mat4x3h: [4, 3, 12], mat4x4: [4, 4, 16], mat4x4f: [4, 4, 16], mat4x4h: [4, 4, 16] };
6758
+ const Or = { vec2: 2, vec2f: 2, vec2i: 2, vec2u: 2, vec2b: 2, vec2h: 2, vec3: 3, vec3f: 3, vec3i: 3, vec3u: 3, vec3b: 3, vec3h: 3, vec4: 4, vec4f: 4, vec4i: 4, vec4u: 4, vec4b: 4, vec4h: 4 }, we = { mat2x2: [2, 2, 4], mat2x2f: [2, 2, 4], mat2x2h: [2, 2, 4], mat2x3: [2, 3, 6], mat2x3f: [2, 3, 6], mat2x3h: [2, 3, 6], mat2x4: [2, 4, 8], mat2x4f: [2, 4, 8], mat2x4h: [2, 4, 8], mat3x2: [3, 2, 6], mat3x2f: [3, 2, 6], mat3x2h: [3, 2, 6], mat3x3: [3, 3, 9], mat3x3f: [3, 3, 9], mat3x3h: [3, 3, 9], mat3x4: [3, 4, 12], mat3x4f: [3, 4, 12], mat3x4h: [3, 4, 12], mat4x2: [4, 2, 8], mat4x2f: [4, 2, 8], mat4x2h: [4, 2, 8], mat4x3: [4, 3, 12], mat4x3f: [4, 3, 12], mat4x3h: [4, 3, 12], mat4x4: [4, 4, 16], mat4x4f: [4, 4, 16], mat4x4h: [4, 4, 16] };
6765
6759
  let vn = class Be extends Qf {
6766
6760
  constructor(e, t) {
6767
6761
  var n;
@@ -6772,7 +6766,7 @@ let vn = class Be extends Qf {
6772
6766
  const r = (n = (t = this.context.getVariable(e)) === null || t === void 0 ? void 0 : t.value) !== null && n !== void 0 ? n : null;
6773
6767
  if (r === null) return null;
6774
6768
  if (r instanceof b) return r.value;
6775
- if (r instanceof m || r instanceof H) return Array.from(r.data);
6769
+ if (r instanceof m || r instanceof Z) return Array.from(r.data);
6776
6770
  if (r instanceof Ae && r.typeInfo instanceof et) {
6777
6771
  if (r.typeInfo.format.name === "u32") return Array.from(new Uint32Array(r.buffer, r.offset, r.typeInfo.count));
6778
6772
  if (r.typeInfo.format.name === "i32") return Array.from(new Int32Array(r.buffer, r.offset, r.typeInfo.count));
@@ -6807,13 +6801,13 @@ let vn = class Be extends Qf {
6807
6801
  for (const C of T.attributes) C.name === "binding" ? L = C.value : C.name === "group" && (E = C.value);
6808
6802
  if (p == L && h == E) {
6809
6803
  let C = !1;
6810
- for (const Q of f.resources) if (Q.name === I.name && Q.group === parseInt(h) && Q.binding === parseInt(p)) {
6804
+ for (const O of f.resources) if (O.name === I.name && O.group === parseInt(h) && O.binding === parseInt(p)) {
6811
6805
  C = !0;
6812
6806
  break;
6813
6807
  }
6814
6808
  if (C) if (v.texture !== void 0 && v.descriptor !== void 0) {
6815
- const Q = new at(v.texture, this.getTypeInfo(T.type), v.descriptor, (y = v.texture.view) !== null && y !== void 0 ? y : null);
6816
- I.value = Q;
6809
+ const O = new at(v.texture, this.getTypeInfo(T.type), v.descriptor, (y = v.texture.view) !== null && y !== void 0 ? y : null);
6810
+ I.value = O;
6817
6811
  } else v.uniform !== void 0 ? I.value = new Ae(v.uniform, this.getTypeInfo(T.type)) : I.value = new Ae(v, this.getTypeInfo(T.type));
6818
6812
  }
6819
6813
  }
@@ -6965,14 +6959,14 @@ let vn = class Be extends Qf {
6965
6959
  if (e.variable instanceof pe) {
6966
6960
  const l = this._getVariableData(e.variable, t), u = this.evalExpression(e.value, t), c = e.operator;
6967
6961
  if (c === "=") {
6968
- if (l instanceof b || l instanceof m || l instanceof H) {
6969
- if (u instanceof b || u instanceof m || u instanceof H && l.data.length === u.data.length) return void l.data.set(u.data);
6962
+ if (l instanceof b || l instanceof m || l instanceof Z) {
6963
+ if (u instanceof b || u instanceof m || u instanceof Z && l.data.length === u.data.length) return void l.data.set(u.data);
6970
6964
  console.error(`Invalid assignment. Line ${e.line}`);
6971
6965
  } else if (l instanceof Ae && u instanceof Ae && l.buffer.byteLength - l.offset >= u.buffer.byteLength - u.offset) return void (l.buffer.byteLength % 4 == 0 ? new Uint32Array(l.buffer, l.offset, l.typeInfo.size / 4).set(new Uint32Array(u.buffer, u.offset, u.typeInfo.size / 4)) : new Uint8Array(l.buffer, l.offset, l.typeInfo.size).set(new Uint8Array(u.buffer, u.offset, u.typeInfo.size)));
6972
6966
  return console.error(`Invalid assignment. Line ${e.line}`), null;
6973
6967
  }
6974
- if (c === "+=") return l instanceof b || l instanceof m || l instanceof H ? u instanceof b || u instanceof m || u instanceof H ? void l.data.set(u.data.map((f, h) => l.data[h] + f)) : void console.error(`Invalid assignment . Line ${e.line}`) : void console.error(`Invalid assignment. Line ${e.line}`);
6975
- if (c === "-=") return (l instanceof b || l instanceof m || l instanceof H) && (u instanceof b || u instanceof m || u instanceof H) ? void l.data.set(u.data.map((f, h) => l.data[h] - f)) : void console.error(`Invalid assignment. Line ${e.line}`);
6968
+ if (c === "+=") return l instanceof b || l instanceof m || l instanceof Z ? u instanceof b || u instanceof m || u instanceof Z ? void l.data.set(u.data.map((f, h) => l.data[h] + f)) : void console.error(`Invalid assignment . Line ${e.line}`) : void console.error(`Invalid assignment. Line ${e.line}`);
6969
+ if (c === "-=") return (l instanceof b || l instanceof m || l instanceof Z) && (u instanceof b || u instanceof m || u instanceof Z) ? void l.data.set(u.data.map((f, h) => l.data[h] - f)) : void console.error(`Invalid assignment. Line ${e.line}`);
6976
6970
  }
6977
6971
  if (e.variable instanceof pe) {
6978
6972
  if (e.variable.operator === "*") {
@@ -7038,14 +7032,14 @@ let vn = class Be extends Qf {
7038
7032
  }
7039
7033
  if (n instanceof Ae) n.setDataValue(this, o, s, t);
7040
7034
  else if (s) {
7041
- if (!(n instanceof m || n instanceof H)) return void console.error(`Variable ${r} is not a vector or matrix. Line ${e.line}`);
7035
+ if (!(n instanceof m || n instanceof Z)) return void console.error(`Variable ${r} is not a vector or matrix. Line ${e.line}`);
7042
7036
  if (s instanceof _t) {
7043
7037
  const l = this.evalExpression(s.index, t).value;
7044
7038
  if (n instanceof m) {
7045
7039
  if (!(o instanceof b)) return void console.error(`Invalid assignment to ${r}. Line ${e.line}`);
7046
7040
  n.data[l] = o.value;
7047
7041
  } else {
7048
- if (!(n instanceof H)) return void console.error(`Invalid assignment to ${r}. Line ${e.line}`);
7042
+ if (!(n instanceof Z)) return void console.error(`Invalid assignment to ${r}. Line ${e.line}`);
7049
7043
  {
7050
7044
  const u = this.evalExpression(s.index, t).value;
7051
7045
  if (u < 0) return void console.error(`Invalid assignment to ${r}. Line ${e.line}`);
@@ -7120,7 +7114,7 @@ let vn = class Be extends Qf {
7120
7114
  }
7121
7115
  }
7122
7116
  }
7123
- } else n instanceof b && o instanceof b ? n.value = o.value : n instanceof m && o instanceof m || n instanceof H && o instanceof H ? n.data.set(o.data) : console.error(`Invalid assignment to ${r}. Line ${e.line}`);
7117
+ } else n instanceof b && o instanceof b ? n.value = o.value : n instanceof m && o instanceof m || n instanceof Z && o instanceof Z ? n.data.set(o.data) : console.error(`Invalid assignment to ${r}. Line ${e.line}`);
7124
7118
  }
7125
7119
  _function(e, t) {
7126
7120
  const n = new Lf(e);
@@ -7361,7 +7355,7 @@ let vn = class Be extends Qf {
7361
7355
  const r = n instanceof b ? n.value : n instanceof m ? Array.from(n.data) : null;
7362
7356
  switch (e.operator) {
7363
7357
  case "+": {
7364
- if (P(r)) {
7358
+ if (D(r)) {
7365
7359
  const i = r.map((l, u) => +l);
7366
7360
  return new m(i, n.typeInfo);
7367
7361
  }
@@ -7369,7 +7363,7 @@ let vn = class Be extends Qf {
7369
7363
  return new b(+s, o);
7370
7364
  }
7371
7365
  case "-": {
7372
- if (P(r)) {
7366
+ if (D(r)) {
7373
7367
  const i = r.map((l, u) => -l);
7374
7368
  return new m(i, n.typeInfo);
7375
7369
  }
@@ -7377,7 +7371,7 @@ let vn = class Be extends Qf {
7377
7371
  return new b(-s, o);
7378
7372
  }
7379
7373
  case "!": {
7380
- if (P(r)) {
7374
+ if (D(r)) {
7381
7375
  const i = r.map((l, u) => l ? 0 : 1);
7382
7376
  return new m(i, n.typeInfo);
7383
7377
  }
@@ -7385,7 +7379,7 @@ let vn = class Be extends Qf {
7385
7379
  return new b(s ? 0 : 1, o);
7386
7380
  }
7387
7381
  case "~": {
7388
- if (P(r)) {
7382
+ if (D(r)) {
7389
7383
  const i = r.map((l, u) => ~l);
7390
7384
  return new m(i, n.typeInfo);
7391
7385
  }
@@ -7396,20 +7390,20 @@ let vn = class Be extends Qf {
7396
7390
  return console.error(`Invalid unary operator ${e.operator}. Line ${e.line}`), null;
7397
7391
  }
7398
7392
  _evalBinaryOp(e, t) {
7399
- const n = this.evalExpression(e.left, t), r = this.evalExpression(e.right, t), s = n instanceof b ? n.value : n instanceof m || n instanceof H ? Array.from(n.data) : null, o = r instanceof b ? r.value : r instanceof m || r instanceof H ? Array.from(r.data) : null;
7393
+ const n = this.evalExpression(e.left, t), r = this.evalExpression(e.right, t), s = n instanceof b ? n.value : n instanceof m || n instanceof Z ? Array.from(n.data) : null, o = r instanceof b ? r.value : r instanceof m || r instanceof Z ? Array.from(r.data) : null;
7400
7394
  switch (e.operator) {
7401
7395
  case "+": {
7402
- if (P(s) && P(o)) {
7396
+ if (D(s) && D(o)) {
7403
7397
  const c = s, f = o;
7404
7398
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7405
7399
  const h = c.map((p, v) => p + f[v]);
7406
7400
  return new m(h, n.typeInfo);
7407
7401
  }
7408
- if (P(s)) {
7402
+ if (D(s)) {
7409
7403
  const c = o, f = s.map((h, p) => h + c);
7410
7404
  return new m(f, n.typeInfo);
7411
7405
  }
7412
- if (P(o)) {
7406
+ if (D(o)) {
7413
7407
  const c = s, f = o.map((h, p) => c + h);
7414
7408
  return new m(f, r.typeInfo);
7415
7409
  }
@@ -7417,17 +7411,17 @@ let vn = class Be extends Qf {
7417
7411
  return new b(i + l, u);
7418
7412
  }
7419
7413
  case "-": {
7420
- if (P(s) && P(o)) {
7414
+ if (D(s) && D(o)) {
7421
7415
  const c = s, f = o;
7422
7416
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7423
7417
  const h = c.map((p, v) => p - f[v]);
7424
7418
  return new m(h, n.typeInfo);
7425
7419
  }
7426
- if (P(s)) {
7420
+ if (D(s)) {
7427
7421
  const c = o, f = s.map((h, p) => h - c);
7428
7422
  return new m(f, n.typeInfo);
7429
7423
  }
7430
- if (P(o)) {
7424
+ if (D(o)) {
7431
7425
  const c = s, f = o.map((h, p) => c - h);
7432
7426
  return new m(f, r.typeInfo);
7433
7427
  }
@@ -7435,50 +7429,50 @@ let vn = class Be extends Qf {
7435
7429
  return new b(i - l, u);
7436
7430
  }
7437
7431
  case "*": {
7438
- if (P(s) && P(o)) {
7432
+ if (D(s) && D(o)) {
7439
7433
  const c = s, f = o;
7440
- if (n instanceof H && r instanceof H) {
7434
+ if (n instanceof Z && r instanceof Z) {
7441
7435
  const h = (function(y, T, L, E) {
7442
7436
  if (we[T.name] === void 0 || we[E.name] === void 0) return null;
7443
- const C = we[T.name][0], Q = we[T.name][1], M = we[E.name][0];
7437
+ const C = we[T.name][0], O = we[T.name][1], M = we[E.name][0];
7444
7438
  if (C !== we[E.name][1]) return null;
7445
- const Z = new Array(M * Q);
7446
- for (let z = 0; z < Q; z++) for (let N = 0; N < M; N++) {
7439
+ const H = new Array(M * O);
7440
+ for (let z = 0; z < O; z++) for (let U = 0; U < M; U++) {
7447
7441
  let G = 0;
7448
- for (let S = 0; S < C; S++) G += y[S * Q + z] * L[N * C + S];
7449
- Z[z * M + N] = G;
7442
+ for (let S = 0; S < C; S++) G += y[S * O + z] * L[U * C + S];
7443
+ H[z * M + U] = G;
7450
7444
  }
7451
- return Z;
7445
+ return H;
7452
7446
  })(c, n.typeInfo, f, r.typeInfo);
7453
7447
  if (h === null) return console.error(`Matrix multiplication failed. Line ${e.line}.`), null;
7454
7448
  const p = we[r.typeInfo.name][0], v = we[n.typeInfo.name][1], I = this.getTypeInfo(`mat${p}x${v}f`);
7455
- return new H(h, I);
7449
+ return new Z(h, I);
7456
7450
  }
7457
- if (n instanceof H && r instanceof m) {
7451
+ if (n instanceof Z && r instanceof m) {
7458
7452
  const h = (function(p, v, I, y) {
7459
- if (we[v.name] === void 0 || Pr[y.name] === void 0) return null;
7453
+ if (we[v.name] === void 0 || Or[y.name] === void 0) return null;
7460
7454
  const T = we[v.name][0], L = we[v.name][1];
7461
7455
  if (T !== I.length) return null;
7462
7456
  const E = new Array(L);
7463
7457
  for (let C = 0; C < L; C++) {
7464
- let Q = 0;
7465
- for (let M = 0; M < T; M++) Q += p[M * L + C] * I[M];
7466
- E[C] = Q;
7458
+ let O = 0;
7459
+ for (let M = 0; M < T; M++) O += p[M * L + C] * I[M];
7460
+ E[C] = O;
7467
7461
  }
7468
7462
  return E;
7469
7463
  })(c, n.typeInfo, f, r.typeInfo);
7470
7464
  return h === null ? (console.error(`Matrix vector multiplication failed. Line ${e.line}.`), null) : new m(h, r.typeInfo);
7471
7465
  }
7472
- if (n instanceof m && r instanceof H) {
7466
+ if (n instanceof m && r instanceof Z) {
7473
7467
  const h = (function(p, v, I, y) {
7474
- if (Pr[v.name] === void 0 || we[y.name] === void 0) return null;
7468
+ if (Or[v.name] === void 0 || we[y.name] === void 0) return null;
7475
7469
  const T = we[y.name][0], L = we[y.name][1];
7476
7470
  if (L !== p.length) return null;
7477
7471
  const E = [];
7478
7472
  for (let C = 0; C < T; C++) {
7479
- let Q = 0;
7480
- for (let M = 0; M < L; M++) Q += p[M] * I[M * T + C];
7481
- E[C] = Q;
7473
+ let O = 0;
7474
+ for (let M = 0; M < L; M++) O += p[M] * I[M * T + C];
7475
+ E[C] = O;
7482
7476
  }
7483
7477
  return E;
7484
7478
  })(c, n.typeInfo, f, r.typeInfo);
@@ -7490,29 +7484,29 @@ let vn = class Be extends Qf {
7490
7484
  return new m(h, n.typeInfo);
7491
7485
  }
7492
7486
  }
7493
- if (P(s)) {
7487
+ if (D(s)) {
7494
7488
  const c = o, f = s.map((h, p) => h * c);
7495
- return n instanceof H ? new H(f, n.typeInfo) : new m(f, n.typeInfo);
7489
+ return n instanceof Z ? new Z(f, n.typeInfo) : new m(f, n.typeInfo);
7496
7490
  }
7497
- if (P(o)) {
7491
+ if (D(o)) {
7498
7492
  const c = s, f = o.map((h, p) => c * h);
7499
- return r instanceof H ? new H(f, r.typeInfo) : new m(f, r.typeInfo);
7493
+ return r instanceof Z ? new Z(f, r.typeInfo) : new m(f, r.typeInfo);
7500
7494
  }
7501
7495
  const i = s, l = o, u = this._maxFormatTypeInfo([n.typeInfo, r.typeInfo]);
7502
7496
  return new b(i * l, u);
7503
7497
  }
7504
7498
  case "%": {
7505
- if (P(s) && P(o)) {
7499
+ if (D(s) && D(o)) {
7506
7500
  const c = s, f = o;
7507
7501
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7508
7502
  const h = c.map((p, v) => p % f[v]);
7509
7503
  return new m(h, n.typeInfo);
7510
7504
  }
7511
- if (P(s)) {
7505
+ if (D(s)) {
7512
7506
  const c = o, f = s.map((h, p) => h % c);
7513
7507
  return new m(f, n.typeInfo);
7514
7508
  }
7515
- if (P(o)) {
7509
+ if (D(o)) {
7516
7510
  const c = s, f = o.map((h, p) => c % h);
7517
7511
  return new m(f, r.typeInfo);
7518
7512
  }
@@ -7520,17 +7514,17 @@ let vn = class Be extends Qf {
7520
7514
  return new b(i % l, u);
7521
7515
  }
7522
7516
  case "/": {
7523
- if (P(s) && P(o)) {
7517
+ if (D(s) && D(o)) {
7524
7518
  const c = s, f = o;
7525
7519
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7526
7520
  const h = c.map((p, v) => p / f[v]);
7527
7521
  return new m(h, n.typeInfo);
7528
7522
  }
7529
- if (P(s)) {
7523
+ if (D(s)) {
7530
7524
  const c = o, f = s.map((h, p) => h / c);
7531
7525
  return new m(f, n.typeInfo);
7532
7526
  }
7533
- if (P(o)) {
7527
+ if (D(o)) {
7534
7528
  const c = s, f = o.map((h, p) => c / h);
7535
7529
  return new m(f, r.typeInfo);
7536
7530
  }
@@ -7538,17 +7532,17 @@ let vn = class Be extends Qf {
7538
7532
  return new b(i / l, u);
7539
7533
  }
7540
7534
  case "&": {
7541
- if (P(s) && P(o)) {
7535
+ if (D(s) && D(o)) {
7542
7536
  const c = s, f = o;
7543
7537
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7544
7538
  const h = c.map((p, v) => p & f[v]);
7545
7539
  return new m(h, n.typeInfo);
7546
7540
  }
7547
- if (P(s)) {
7541
+ if (D(s)) {
7548
7542
  const c = o, f = s.map((h, p) => h & c);
7549
7543
  return new m(f, n.typeInfo);
7550
7544
  }
7551
- if (P(o)) {
7545
+ if (D(o)) {
7552
7546
  const c = s, f = o.map((h, p) => c & h);
7553
7547
  return new m(f, r.typeInfo);
7554
7548
  }
@@ -7556,17 +7550,17 @@ let vn = class Be extends Qf {
7556
7550
  return new b(i & l, u);
7557
7551
  }
7558
7552
  case "|": {
7559
- if (P(s) && P(o)) {
7553
+ if (D(s) && D(o)) {
7560
7554
  const c = s, f = o;
7561
7555
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7562
7556
  const h = c.map((p, v) => p | f[v]);
7563
7557
  return new m(h, n.typeInfo);
7564
7558
  }
7565
- if (P(s)) {
7559
+ if (D(s)) {
7566
7560
  const c = o, f = s.map((h, p) => h | c);
7567
7561
  return new m(f, n.typeInfo);
7568
7562
  }
7569
- if (P(o)) {
7563
+ if (D(o)) {
7570
7564
  const c = s, f = o.map((h, p) => c | h);
7571
7565
  return new m(f, r.typeInfo);
7572
7566
  }
@@ -7574,17 +7568,17 @@ let vn = class Be extends Qf {
7574
7568
  return new b(i | l, u);
7575
7569
  }
7576
7570
  case "^": {
7577
- if (P(s) && P(o)) {
7571
+ if (D(s) && D(o)) {
7578
7572
  const c = s, f = o;
7579
7573
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7580
7574
  const h = c.map((p, v) => p ^ f[v]);
7581
7575
  return new m(h, n.typeInfo);
7582
7576
  }
7583
- if (P(s)) {
7577
+ if (D(s)) {
7584
7578
  const c = o, f = s.map((h, p) => h ^ c);
7585
7579
  return new m(f, n.typeInfo);
7586
7580
  }
7587
- if (P(o)) {
7581
+ if (D(o)) {
7588
7582
  const c = s, f = o.map((h, p) => c ^ h);
7589
7583
  return new m(f, r.typeInfo);
7590
7584
  }
@@ -7592,17 +7586,17 @@ let vn = class Be extends Qf {
7592
7586
  return new b(i ^ l, u);
7593
7587
  }
7594
7588
  case "<<": {
7595
- if (P(s) && P(o)) {
7589
+ if (D(s) && D(o)) {
7596
7590
  const c = s, f = o;
7597
7591
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7598
7592
  const h = c.map((p, v) => p << f[v]);
7599
7593
  return new m(h, n.typeInfo);
7600
7594
  }
7601
- if (P(s)) {
7595
+ if (D(s)) {
7602
7596
  const c = o, f = s.map((h, p) => h << c);
7603
7597
  return new m(f, n.typeInfo);
7604
7598
  }
7605
- if (P(o)) {
7599
+ if (D(o)) {
7606
7600
  const c = s, f = o.map((h, p) => c << h);
7607
7601
  return new m(f, r.typeInfo);
7608
7602
  }
@@ -7610,17 +7604,17 @@ let vn = class Be extends Qf {
7610
7604
  return new b(i << l, u);
7611
7605
  }
7612
7606
  case ">>": {
7613
- if (P(s) && P(o)) {
7607
+ if (D(s) && D(o)) {
7614
7608
  const c = s, f = o;
7615
7609
  if (c.length !== f.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7616
7610
  const h = c.map((p, v) => p >> f[v]);
7617
7611
  return new m(h, n.typeInfo);
7618
7612
  }
7619
- if (P(s)) {
7613
+ if (D(s)) {
7620
7614
  const c = o, f = s.map((h, p) => h >> c);
7621
7615
  return new m(f, n.typeInfo);
7622
7616
  }
7623
- if (P(o)) {
7617
+ if (D(o)) {
7624
7618
  const c = s, f = o.map((h, p) => c >> h);
7625
7619
  return new m(f, r.typeInfo);
7626
7620
  }
@@ -7628,129 +7622,129 @@ let vn = class Be extends Qf {
7628
7622
  return new b(i >> l, u);
7629
7623
  }
7630
7624
  case ">":
7631
- if (P(s) && P(o)) {
7625
+ if (D(s) && D(o)) {
7632
7626
  const i = s, l = o;
7633
7627
  if (i.length !== l.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7634
7628
  const u = i.map((c, f) => c > l[f] ? 1 : 0);
7635
7629
  return new m(u, n.typeInfo);
7636
7630
  }
7637
- if (P(s)) {
7631
+ if (D(s)) {
7638
7632
  const i = o, l = s.map((u, c) => u > i ? 1 : 0);
7639
7633
  return new m(l, n.typeInfo);
7640
7634
  }
7641
- if (P(o)) {
7635
+ if (D(o)) {
7642
7636
  const i = s, l = o.map((u, c) => i > u ? 1 : 0);
7643
7637
  return new m(l, r.typeInfo);
7644
7638
  }
7645
7639
  return new b(s > o ? 1 : 0, this.getTypeInfo("bool"));
7646
7640
  case "<":
7647
- if (P(s) && P(o)) {
7641
+ if (D(s) && D(o)) {
7648
7642
  const i = s, l = o;
7649
7643
  if (i.length !== l.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7650
7644
  const u = i.map((c, f) => c < l[f] ? 1 : 0);
7651
7645
  return new m(u, n.typeInfo);
7652
7646
  }
7653
- if (P(s)) {
7647
+ if (D(s)) {
7654
7648
  const i = o, l = s.map((u, c) => u < i ? 1 : 0);
7655
7649
  return new m(l, n.typeInfo);
7656
7650
  }
7657
- if (P(o)) {
7651
+ if (D(o)) {
7658
7652
  const i = s, l = o.map((u, c) => i < u ? 1 : 0);
7659
7653
  return new m(l, r.typeInfo);
7660
7654
  }
7661
7655
  return new b(s < o ? 1 : 0, this.getTypeInfo("bool"));
7662
7656
  case "==":
7663
- if (P(s) && P(o)) {
7657
+ if (D(s) && D(o)) {
7664
7658
  const i = s, l = o;
7665
7659
  if (i.length !== l.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7666
7660
  const u = i.map((c, f) => c === l[f] ? 1 : 0);
7667
7661
  return new m(u, n.typeInfo);
7668
7662
  }
7669
- if (P(s)) {
7663
+ if (D(s)) {
7670
7664
  const i = o, l = s.map((u, c) => u == i ? 1 : 0);
7671
7665
  return new m(l, n.typeInfo);
7672
7666
  }
7673
- if (P(o)) {
7667
+ if (D(o)) {
7674
7668
  const i = s, l = o.map((u, c) => i == u ? 1 : 0);
7675
7669
  return new m(l, r.typeInfo);
7676
7670
  }
7677
7671
  return new b(s === o ? 1 : 0, this.getTypeInfo("bool"));
7678
7672
  case "!=":
7679
- if (P(s) && P(o)) {
7673
+ if (D(s) && D(o)) {
7680
7674
  const i = s, l = o;
7681
7675
  if (i.length !== l.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7682
7676
  const u = i.map((c, f) => c !== l[f] ? 1 : 0);
7683
7677
  return new m(u, n.typeInfo);
7684
7678
  }
7685
- if (P(s)) {
7679
+ if (D(s)) {
7686
7680
  const i = o, l = s.map((u, c) => u !== i ? 1 : 0);
7687
7681
  return new m(l, n.typeInfo);
7688
7682
  }
7689
- if (P(o)) {
7683
+ if (D(o)) {
7690
7684
  const i = s, l = o.map((u, c) => i !== u ? 1 : 0);
7691
7685
  return new m(l, r.typeInfo);
7692
7686
  }
7693
7687
  return new b(s !== o ? 1 : 0, this.getTypeInfo("bool"));
7694
7688
  case ">=":
7695
- if (P(s) && P(o)) {
7689
+ if (D(s) && D(o)) {
7696
7690
  const i = s, l = o;
7697
7691
  if (i.length !== l.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7698
7692
  const u = i.map((c, f) => c >= l[f] ? 1 : 0);
7699
7693
  return new m(u, n.typeInfo);
7700
7694
  }
7701
- if (P(s)) {
7695
+ if (D(s)) {
7702
7696
  const i = o, l = s.map((u, c) => u >= i ? 1 : 0);
7703
7697
  return new m(l, n.typeInfo);
7704
7698
  }
7705
- if (P(o)) {
7699
+ if (D(o)) {
7706
7700
  const i = s, l = o.map((u, c) => i >= u ? 1 : 0);
7707
7701
  return new m(l, r.typeInfo);
7708
7702
  }
7709
7703
  return new b(s >= o ? 1 : 0, this.getTypeInfo("bool"));
7710
7704
  case "<=":
7711
- if (P(s) && P(o)) {
7705
+ if (D(s) && D(o)) {
7712
7706
  const i = s, l = o;
7713
7707
  if (i.length !== l.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7714
7708
  const u = i.map((c, f) => c <= l[f] ? 1 : 0);
7715
7709
  return new m(u, n.typeInfo);
7716
7710
  }
7717
- if (P(s)) {
7711
+ if (D(s)) {
7718
7712
  const i = o, l = s.map((u, c) => u <= i ? 1 : 0);
7719
7713
  return new m(l, n.typeInfo);
7720
7714
  }
7721
- if (P(o)) {
7715
+ if (D(o)) {
7722
7716
  const i = s, l = o.map((u, c) => i <= u ? 1 : 0);
7723
7717
  return new m(l, r.typeInfo);
7724
7718
  }
7725
7719
  return new b(s <= o ? 1 : 0, this.getTypeInfo("bool"));
7726
7720
  case "&&":
7727
- if (P(s) && P(o)) {
7721
+ if (D(s) && D(o)) {
7728
7722
  const i = s, l = o;
7729
7723
  if (i.length !== l.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7730
7724
  const u = i.map((c, f) => c && l[f] ? 1 : 0);
7731
7725
  return new m(u, n.typeInfo);
7732
7726
  }
7733
- if (P(s)) {
7727
+ if (D(s)) {
7734
7728
  const i = o, l = s.map((u, c) => u && i ? 1 : 0);
7735
7729
  return new m(l, n.typeInfo);
7736
7730
  }
7737
- if (P(o)) {
7731
+ if (D(o)) {
7738
7732
  const i = s, l = o.map((u, c) => i && u ? 1 : 0);
7739
7733
  return new m(l, r.typeInfo);
7740
7734
  }
7741
7735
  return new b(s && o ? 1 : 0, this.getTypeInfo("bool"));
7742
7736
  case "||":
7743
- if (P(s) && P(o)) {
7737
+ if (D(s) && D(o)) {
7744
7738
  const i = s, l = o;
7745
7739
  if (i.length !== l.length) return console.error(`Vector length mismatch. Line ${e.line}.`), null;
7746
7740
  const u = i.map((c, f) => c || l[f] ? 1 : 0);
7747
7741
  return new m(u, n.typeInfo);
7748
7742
  }
7749
- if (P(s)) {
7743
+ if (D(s)) {
7750
7744
  const i = o, l = s.map((u, c) => u || i ? 1 : 0);
7751
7745
  return new m(l, n.typeInfo);
7752
7746
  }
7753
- if (P(o)) {
7747
+ if (D(o)) {
7754
7748
  const i = s, l = o.map((u, c) => i || u ? 1 : 0);
7755
7749
  return new m(l, r.typeInfo);
7756
7750
  }
@@ -8081,7 +8075,7 @@ let vn = class Be extends Qf {
8081
8075
  return n.typeInfo = this.getTypeInfo(e.type), n.getSubData(this, e.postfix, t).clone();
8082
8076
  }
8083
8077
  _callConstructorVec(e, t) {
8084
- const n = this.getTypeInfo(e.type), r = e.type.getTypeName(), s = Pr[r];
8078
+ const n = this.getTypeInfo(e.type), r = e.type.getTypeName(), s = Or[r];
8085
8079
  if (s === void 0) return console.error(`Invalid vec constructor ${r}. Line ${e.line}`), null;
8086
8080
  const o = [];
8087
8081
  if (e instanceof me) if (e.isVector) {
@@ -8118,23 +8112,23 @@ let vn = class Be extends Qf {
8118
8112
  } else o.push(e.scalarValue);
8119
8113
  else if (e.args) for (const i of e.args) {
8120
8114
  const l = this.evalExpression(i, t);
8121
- l instanceof m ? o.push(...l.data) : l instanceof b ? o.push(l.value) : l instanceof H && o.push(...l.data);
8115
+ l instanceof m ? o.push(...l.data) : l instanceof b ? o.push(l.value) : l instanceof Z && o.push(...l.data);
8122
8116
  }
8123
8117
  if (n instanceof ct && n.format === null && (n.format = this.getTypeInfo("f32")), o.length === 0) {
8124
8118
  const i = new Array(s[2]).fill(0);
8125
- return new H(i, n).getSubData(this, e.postfix, t);
8119
+ return new Z(i, n).getSubData(this, e.postfix, t);
8126
8120
  }
8127
- return o.length !== s[2] ? (console.error(`Invalid matrix constructor. Line ${e.line}`), null) : new H(o, n).getSubData(this, e.postfix, t);
8121
+ return o.length !== s[2] ? (console.error(`Invalid matrix constructor. Line ${e.line}`), null) : new Z(o, n).getSubData(this, e.postfix, t);
8128
8122
  }
8129
8123
  };
8130
8124
  vn._breakObj = new qe(new Se("BREAK", null), null), vn._continueObj = new qe(new Se("CONTINUE", null), null), vn._priority = /* @__PURE__ */ new Map([["f32", 0], ["f16", 1], ["u32", 2], ["i32", 3], ["x32", 3]]);
8131
- let Pf = class {
8125
+ let Of = class {
8132
8126
  constructor() {
8133
8127
  this.constants = /* @__PURE__ */ new Map(), this.aliases = /* @__PURE__ */ new Map(), this.structs = /* @__PURE__ */ new Map();
8134
8128
  }
8135
- }, Of = class {
8129
+ }, Pf = class {
8136
8130
  constructor() {
8137
- this._tokens = [], this._current = 0, this._currentLine = 1, this._deferArrayCountEval = [], this._currentLoop = [], this._context = new Pf(), this._exec = new vn(), this._forwardTypeCount = 0;
8131
+ this._tokens = [], this._current = 0, this._currentLine = 1, this._deferArrayCountEval = [], this._currentLoop = [], this._context = new Of(), this._exec = new vn(), this._forwardTypeCount = 0;
8138
8132
  }
8139
8133
  parse(e) {
8140
8134
  this._initialize(e), this._deferArrayCountEval.length = 0;
@@ -8411,7 +8405,7 @@ let Pf = class {
8411
8405
  let n = this._match(d.tokens.underscore);
8412
8406
  if (n || (e = this._unary_expression()), !n && e == null) return null;
8413
8407
  const r = this._consume(d.assignment_operators, "Expected assignment operator."), s = this._short_circuit_or_expression();
8414
- return this._updateNode(new Ro(Ot.parse(r.lexeme), e, s), t);
8408
+ return this._updateNode(new Ro(Pt.parse(r.lexeme), e, s), t);
8415
8409
  }
8416
8410
  _func_call_statement() {
8417
8411
  if (!this._check(d.tokens.ident)) return null;
@@ -8978,7 +8972,7 @@ let Pf = class {
8978
8972
  super(), e && this.update(e);
8979
8973
  }
8980
8974
  update(e) {
8981
- const t = new Of().parse(e);
8975
+ const t = new Pf().parse(e);
8982
8976
  this.updateAST(t);
8983
8977
  }
8984
8978
  };
@@ -9047,10 +9041,10 @@ function Vf(a) {
9047
9041
  throw typeof e == "object" && e?.message && (t += `: ${e.message} `), typeof e == "object" && e?.token && (t += e.token.line || ""), new Error(t, { cause: e });
9048
9042
  }
9049
9043
  }
9050
- const Or = {};
9044
+ const Pr = {};
9051
9045
  function Xn(a = "id") {
9052
- Or[a] = Or[a] || 1;
9053
- const e = Or[a]++;
9046
+ Pr[a] = Pr[a] || 1;
9047
+ const e = Pr[a]++;
9054
9048
  return `${a}-${e}`;
9055
9049
  }
9056
9050
  class za {
@@ -9213,13 +9207,11 @@ class Is {
9213
9207
  /** Calculate a hash based on all the inputs for a render pipeline */
9214
9208
  _hashRenderPipeline(e) {
9215
9209
  const t = e.vs ? this._getHash(e.vs.source) : 0, n = e.fs ? this._getHash(e.fs.source) : 0, r = "-", s = this._getHash(JSON.stringify(e.bufferLayout)), { type: o } = this.device;
9216
- switch (o) {
9217
- case "webgl":
9218
- return `${o}/R/${t}/${n}V${r}BL${s}`;
9219
- case "webgpu":
9220
- default:
9221
- const i = this._getHash(JSON.stringify(e.parameters));
9222
- return `${o}/R/${t}/${n}V${r}T${e.topology}P${i}BL${s}`;
9210
+ if (o === "webgl")
9211
+ return `${o}/R/${t}/${n}V${r}BL${s}`;
9212
+ {
9213
+ const i = this._getHash(JSON.stringify(e.parameters));
9214
+ return `${o}/R/${t}/${n}V${r}T${e.topology}P${i}BL${s}`;
9223
9215
  }
9224
9216
  }
9225
9217
  _getHash(e) {
@@ -10380,36 +10372,36 @@ function ts(a, e) {
10380
10372
  function tt(a) {
10381
10373
  return a[2] - a[0] == 360;
10382
10374
  }
10383
- function Pt(a, e) {
10375
+ function Ot(a, e) {
10384
10376
  return { type: "Feature", geometry: { type: "Point", coordinates: a }, properties: e };
10385
10377
  }
10386
10378
  function vh(a, e, t) {
10387
10379
  const { image: n, image2: r, imageSmoothing: s, imageInterpolation: o, imageWeight: i, imageType: l, imageUnscale: u, imageMinValue: c, imageMaxValue: f } = a, { width: h, height: p } = n, v = (function(L, E, C) {
10388
- const Q = [C[0], C[3]], M = (C[2] - C[0]) / L, Z = (C[3] - C[1]) / E;
10380
+ const O = [C[0], C[3]], M = (C[2] - C[0]) / L, H = (C[3] - C[1]) / E;
10389
10381
  return (z) => {
10390
- const [N, G] = z;
10391
- return [(N - Q[0]) / M, (Q[1] - G) / Z];
10382
+ const [U, G] = z;
10383
+ return [(U - O[0]) / M, (O[1] - G) / H];
10392
10384
  };
10393
10385
  })(h, p, e), I = mh(h, p, s), y = tt(e);
10394
10386
  return { type: "FeatureCollection", features: t.map(((L) => {
10395
- if (!(function(z, N) {
10396
- return z[0] >= N[0] && z[0] <= N[2] && z[1] >= N[1] && z[1] <= N[3];
10397
- })(L, e)) return Pt(L, { value: NaN });
10398
- const E = v(L), C = E[0] / h, Q = E[1] / p, M = ph(n, r, I, o, i, y, C, Q);
10399
- if (!hh(M, u)) return Pt(L, { value: NaN });
10400
- const Z = dh(M, l, u);
10401
- if (typeof c == "number" && !isNaN(c) && Z < c || typeof f == "number" && !isNaN(f) && Z > f) return Pt(L, { value: NaN });
10387
+ if (!(function(z, U) {
10388
+ return z[0] >= U[0] && z[0] <= U[2] && z[1] >= U[1] && z[1] <= U[3];
10389
+ })(L, e)) return Ot(L, { value: NaN });
10390
+ const E = v(L), C = E[0] / h, O = E[1] / p, M = ph(n, r, I, o, i, y, C, O);
10391
+ if (!hh(M, u)) return Ot(L, { value: NaN });
10392
+ const H = dh(M, l, u);
10393
+ if (typeof c == "number" && !isNaN(c) && H < c || typeof f == "number" && !isNaN(f) && H > f) return Ot(L, { value: NaN });
10402
10394
  if (l === xe.VECTOR) {
10403
- const z = (function(N, G, S) {
10395
+ const z = (function(U, G, S) {
10404
10396
  if (G === xe.VECTOR) {
10405
- const q = ul(N, G, S);
10397
+ const q = ul(U, G, S);
10406
10398
  return (360 - (Math.atan2(q[1], q[0]) / Math.PI * 180 + 180) - 270) % 360;
10407
10399
  }
10408
10400
  return NaN;
10409
10401
  })(M, l, u);
10410
- return Pt(L, { value: Z, direction: z });
10402
+ return Ot(L, { value: H, direction: z });
10411
10403
  }
10412
- return Pt(L, { value: Z });
10404
+ return Ot(L, { value: H });
10413
10405
  })) };
10414
10406
  }
10415
10407
  const xh = /* @__PURE__ */ new WeakMap(), wh = /* @__PURE__ */ new WeakMap();
@@ -10535,10 +10527,10 @@ vec4 AG(sampler2D AH,vec2 AI,vec2 AJ,vec2 AK){vec2 uv=(AJ+AK+0.5)/AI;return text
10535
10527
  super.updateState(e), t !== e.oldProps.palette && this._updatePalette();
10536
10528
  }
10537
10529
  draw(e) {
10538
- const { device: t, viewport: n } = this.context, { model: r } = this.state, { imageTexture: s, imageTexture2: o, imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p, bounds: v, _imageCoordinateSystem: I, transparentColor: y, minZoom: T, maxZoom: L, borderEnabled: E, borderWidth: C, borderColor: Q, gridEnabled: M, gridSize: Z, gridColor: z } = he(this.props, Rt), { paletteTexture: N, paletteBounds: G } = this.state;
10530
+ const { device: t, viewport: n } = this.context, { model: r } = this.state, { imageTexture: s, imageTexture2: o, imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p, bounds: v, _imageCoordinateSystem: I, transparentColor: y, minZoom: T, maxZoom: L, borderEnabled: E, borderWidth: C, borderColor: O, gridEnabled: M, gridSize: H, gridColor: z } = he(this.props, Rt), { paletteTexture: U, paletteBounds: G } = this.state;
10539
10531
  if (!s) return;
10540
10532
  const S = We(n);
10541
- r && Bt(n, T, L) && (r.shaderInputs.setProps({ [Et.name]: { viewportGlobe: S, bounds: v, _imageCoordinateSystem: I, transparentColor: y }, [kt.name]: { imageTexture: s ?? Ie(t), imageTexture2: o ?? Ie(t), imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p, borderEnabled: E, borderWidth: C, borderColor: Q, gridEnabled: M, gridSize: Z, gridColor: z }, [Tt.name]: { paletteTexture: N ?? Ie(t), paletteBounds: G } }), this.props.image = s, super.draw(e), this.props.image = null);
10533
+ r && Bt(n, T, L) && (r.shaderInputs.setProps({ [Et.name]: { viewportGlobe: S, bounds: v, _imageCoordinateSystem: I, transparentColor: y }, [kt.name]: { imageTexture: s ?? Ie(t), imageTexture2: o ?? Ie(t), imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p, borderEnabled: E, borderWidth: C, borderColor: O, gridEnabled: M, gridSize: H, gridColor: z }, [Tt.name]: { paletteTexture: U ?? Ie(t), paletteBounds: G } }), this.props.image = s, super.draw(e), this.props.image = null);
10542
10534
  }
10543
10535
  _updatePalette() {
10544
10536
  const { device: e } = this.context, { palette: t } = he(this.props, Rt);
@@ -10597,10 +10589,10 @@ vec4 AG(sampler2D AH,vec2 AI,vec2 AJ,vec2 AK){vec2 uv=(AJ+AK+0.5)/AI;return text
10597
10589
  super.updateState(e), t !== e.oldProps.palette && this._updatePalette();
10598
10590
  }
10599
10591
  draw(e) {
10600
- const { device: t, viewport: n } = this.context, { model: r } = this.state, { imageTexture: s, imageTexture2: o, imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p, bounds: v, _imageCoordinateSystem: I, transparentColor: y, minZoom: T, maxZoom: L, color: E, interval: C, majorInterval: Q, width: M } = he(this.props, ns), { paletteTexture: Z, paletteBounds: z } = this.state;
10592
+ const { device: t, viewport: n } = this.context, { model: r } = this.state, { imageTexture: s, imageTexture2: o, imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p, bounds: v, _imageCoordinateSystem: I, transparentColor: y, minZoom: T, maxZoom: L, color: E, interval: C, majorInterval: O, width: M } = he(this.props, ns), { paletteTexture: H, paletteBounds: z } = this.state;
10601
10593
  if (!s) return;
10602
- const N = We(n);
10603
- r && Bt(n, T, L) && (r.shaderInputs.setProps({ [Et.name]: { viewportGlobe: N, bounds: v, _imageCoordinateSystem: I, transparentColor: y }, [kt.name]: { imageTexture: s ?? Ie(t), imageTexture2: o ?? Ie(t), imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p }, [Tt.name]: { paletteTexture: Z ?? Ie(t), paletteBounds: z, paletteColor: E }, [Ti.name]: { interval: C, majorInterval: Q, width: M } }), this.props.image = s, super.draw(e), this.props.image = null);
10594
+ const U = We(n);
10595
+ r && Bt(n, T, L) && (r.shaderInputs.setProps({ [Et.name]: { viewportGlobe: U, bounds: v, _imageCoordinateSystem: I, transparentColor: y }, [kt.name]: { imageTexture: s ?? Ie(t), imageTexture2: o ?? Ie(t), imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p }, [Tt.name]: { paletteTexture: H ?? Ie(t), paletteBounds: z, paletteColor: E }, [Ti.name]: { interval: C, majorInterval: O, width: M } }), this.props.image = s, super.draw(e), this.props.image = null);
10604
10596
  }
10605
10597
  _updatePalette() {
10606
10598
  const { device: e } = this.context, { palette: t } = he(this.props, ns);
@@ -10632,36 +10624,36 @@ function Qh(a = 20) {
10632
10624
  return new Array(a).fill(void 0).map((() => Mh.charAt(Math.floor(62 * Math.random())))).join("");
10633
10625
  }
10634
10626
  const Dh = kc((Si = function() {
10635
- const a = Symbol("Comlink.proxy"), e = Symbol("Comlink.endpoint"), t = Symbol("Comlink.releaseProxy"), n = Symbol("Comlink.finalizer"), r = Symbol("Comlink.thrown"), s = (_) => typeof _ == "object" && _ !== null || typeof _ == "function", o = { canHandle: (_) => s(_) && _[a], serialize(_) {
10636
- const { port1: D, port2: F } = new MessageChannel();
10637
- return l(_, D), [F, [F]];
10638
- }, deserialize: (_) => (_.start(), (function(D, F) {
10639
- const O = /* @__PURE__ */ new Map();
10640
- return D.addEventListener("message", (function(U) {
10641
- const { data: R } = U;
10627
+ const a = /* @__PURE__ */ Symbol("Comlink.proxy"), e = /* @__PURE__ */ Symbol("Comlink.endpoint"), t = /* @__PURE__ */ Symbol("Comlink.releaseProxy"), n = /* @__PURE__ */ Symbol("Comlink.finalizer"), r = /* @__PURE__ */ Symbol("Comlink.thrown"), s = (_) => typeof _ == "object" && _ !== null || typeof _ == "function", o = { canHandle: (_) => s(_) && _[a], serialize(_) {
10628
+ const { port1: Q, port2: F } = new MessageChannel();
10629
+ return l(_, Q), [F, [F]];
10630
+ }, deserialize: (_) => (_.start(), (function(Q, F) {
10631
+ const P = /* @__PURE__ */ new Map();
10632
+ return Q.addEventListener("message", (function(N) {
10633
+ const { data: R } = N;
10642
10634
  if (!R || !R.id) return;
10643
- const W = O.get(R.id);
10635
+ const W = P.get(R.id);
10644
10636
  if (W) try {
10645
10637
  W(R);
10646
10638
  } finally {
10647
- O.delete(R.id);
10639
+ P.delete(R.id);
10648
10640
  }
10649
- })), v(D, O, [], F);
10641
+ })), v(Q, P, [], F);
10650
10642
  })(_)) }, i = /* @__PURE__ */ new Map([["proxy", o], ["throw", { canHandle: (_) => s(_) && r in _, serialize({ value: _ }) {
10651
- let D;
10652
- return D = _ instanceof Error ? { isError: !0, value: { message: _.message, name: _.name, stack: _.stack } } : { isError: !1, value: _ }, [D, []];
10643
+ let Q;
10644
+ return Q = _ instanceof Error ? { isError: !0, value: { message: _.message, name: _.name, stack: _.stack } } : { isError: !1, value: _ }, [Q, []];
10653
10645
  }, deserialize(_) {
10654
10646
  throw _.isError ? Object.assign(new Error(_.value.message), _.value) : _.value;
10655
10647
  } }]]);
10656
- function l(_, D = globalThis, F = ["*"]) {
10657
- D.addEventListener("message", (function O(U) {
10658
- if (!U || !U.data) return;
10648
+ function l(_, Q = globalThis, F = ["*"]) {
10649
+ Q.addEventListener("message", (function P(N) {
10650
+ if (!N || !N.data) return;
10659
10651
  if (!(function(ee, J) {
10660
10652
  for (const B of ee)
10661
10653
  if (J === B || B === "*" || B instanceof RegExp && B.test(J)) return !0;
10662
10654
  return !1;
10663
- })(F, U.origin)) return void console.warn(`Invalid origin '${U.origin}' for comlink proxy`);
10664
- const { id: R, type: W, path: re } = Object.assign({ path: [] }, U.data), K = (U.data.argumentList || []).map(E);
10655
+ })(F, N.origin)) return void console.warn(`Invalid origin '${N.origin}' for comlink proxy`);
10656
+ const { id: R, type: W, path: re } = Object.assign({ path: [] }, N.data), K = (N.data.argumentList || []).map(E);
10665
10657
  let $;
10666
10658
  try {
10667
10659
  const ee = re.slice(0, -1).reduce(((B, V) => B[V]), _), J = re.reduce(((B, V) => B[V]), _);
@@ -10670,7 +10662,7 @@ const Dh = kc((Si = function() {
10670
10662
  $ = J;
10671
10663
  break;
10672
10664
  case "SET":
10673
- ee[re.slice(-1)[0]] = E(U.data.value), $ = !0;
10665
+ ee[re.slice(-1)[0]] = E(N.data.value), $ = !0;
10674
10666
  break;
10675
10667
  case "APPLY":
10676
10668
  $ = J.apply(ee, K);
@@ -10697,16 +10689,16 @@ const Dh = kc((Si = function() {
10697
10689
  }
10698
10690
  Promise.resolve($).catch(((ee) => ({ value: ee, [r]: 0 }))).then(((ee) => {
10699
10691
  const [J, B] = L(ee);
10700
- D.postMessage(Object.assign(Object.assign({}, J), { id: R }), B), W === "RELEASE" && (D.removeEventListener("message", O), u(D), n in _ && typeof _[n] == "function" && _[n]());
10692
+ Q.postMessage(Object.assign(Object.assign({}, J), { id: R }), B), W === "RELEASE" && (Q.removeEventListener("message", P), u(Q), n in _ && typeof _[n] == "function" && _[n]());
10701
10693
  })).catch(((ee) => {
10702
10694
  const [J, B] = L({ value: new TypeError("Unserializable return value"), [r]: 0 });
10703
- D.postMessage(Object.assign(Object.assign({}, J), { id: R }), B);
10695
+ Q.postMessage(Object.assign(Object.assign({}, J), { id: R }), B);
10704
10696
  }));
10705
- })), D.start && D.start();
10697
+ })), Q.start && Q.start();
10706
10698
  }
10707
10699
  function u(_) {
10708
- (function(D) {
10709
- return D.constructor.name === "MessagePort";
10700
+ (function(Q) {
10701
+ return Q.constructor.name === "MessagePort";
10710
10702
  })(_) && _.close();
10711
10703
  }
10712
10704
  function c(_) {
@@ -10718,39 +10710,39 @@ const Dh = kc((Si = function() {
10718
10710
  }));
10719
10711
  }
10720
10712
  const h = /* @__PURE__ */ new WeakMap(), p = "FinalizationRegistry" in globalThis && new FinalizationRegistry(((_) => {
10721
- const D = (h.get(_) || 0) - 1;
10722
- h.set(_, D), D === 0 && f(_);
10713
+ const Q = (h.get(_) || 0) - 1;
10714
+ h.set(_, Q), Q === 0 && f(_);
10723
10715
  }));
10724
- function v(_, D, F = [], O = function() {
10716
+ function v(_, Q, F = [], P = function() {
10725
10717
  }) {
10726
- let U = !1;
10727
- const R = new Proxy(O, { get(W, re) {
10728
- if (c(U), re === t) return () => {
10718
+ let N = !1;
10719
+ const R = new Proxy(P, { get(W, re) {
10720
+ if (c(N), re === t) return () => {
10729
10721
  (function(K) {
10730
10722
  p && p.unregister(K);
10731
- })(R), f(_), D.clear(), U = !0;
10723
+ })(R), f(_), Q.clear(), N = !0;
10732
10724
  };
10733
10725
  if (re === "then") {
10734
10726
  if (F.length === 0) return { then: () => R };
10735
- const K = C(_, D, { type: "GET", path: F.map((($) => $.toString())) }).then(E);
10727
+ const K = C(_, Q, { type: "GET", path: F.map((($) => $.toString())) }).then(E);
10736
10728
  return K.then.bind(K);
10737
10729
  }
10738
- return v(_, D, [...F, re]);
10730
+ return v(_, Q, [...F, re]);
10739
10731
  }, set(W, re, K) {
10740
- c(U);
10732
+ c(N);
10741
10733
  const [$, ee] = L(K);
10742
- return C(_, D, { type: "SET", path: [...F, re].map(((J) => J.toString())), value: $ }, ee).then(E);
10734
+ return C(_, Q, { type: "SET", path: [...F, re].map(((J) => J.toString())), value: $ }, ee).then(E);
10743
10735
  }, apply(W, re, K) {
10744
- c(U);
10736
+ c(N);
10745
10737
  const $ = F[F.length - 1];
10746
- if ($ === e) return C(_, D, { type: "ENDPOINT" }).then(E);
10747
- if ($ === "bind") return v(_, D, F.slice(0, -1));
10738
+ if ($ === e) return C(_, Q, { type: "ENDPOINT" }).then(E);
10739
+ if ($ === "bind") return v(_, Q, F.slice(0, -1));
10748
10740
  const [ee, J] = I(K);
10749
- return C(_, D, { type: "APPLY", path: F.map(((B) => B.toString())), argumentList: ee }, J).then(E);
10741
+ return C(_, Q, { type: "APPLY", path: F.map(((B) => B.toString())), argumentList: ee }, J).then(E);
10750
10742
  }, construct(W, re) {
10751
- c(U);
10743
+ c(N);
10752
10744
  const [K, $] = I(re);
10753
- return C(_, D, { type: "CONSTRUCT", path: F.map(((ee) => ee.toString())), argumentList: K }, $).then(E);
10745
+ return C(_, Q, { type: "CONSTRUCT", path: F.map(((ee) => ee.toString())), argumentList: K }, $).then(E);
10754
10746
  } });
10755
10747
  return (function(W, re) {
10756
10748
  const K = (h.get(re) || 0) + 1;
@@ -10758,18 +10750,18 @@ const Dh = kc((Si = function() {
10758
10750
  })(R, _), R;
10759
10751
  }
10760
10752
  function I(_) {
10761
- const D = _.map(L);
10762
- return [D.map(((O) => O[0])), (F = D.map(((O) => O[1])), Array.prototype.concat.apply([], F))];
10753
+ const Q = _.map(L);
10754
+ return [Q.map(((P) => P[0])), (F = Q.map(((P) => P[1])), Array.prototype.concat.apply([], F))];
10763
10755
  var F;
10764
10756
  }
10765
10757
  const y = /* @__PURE__ */ new WeakMap();
10766
- function T(_, D) {
10767
- return y.set(_, D), _;
10758
+ function T(_, Q) {
10759
+ return y.set(_, Q), _;
10768
10760
  }
10769
10761
  function L(_) {
10770
- for (const [D, F] of i) if (F.canHandle(_)) {
10771
- const [O, U] = F.serialize(_);
10772
- return [{ type: "HANDLER", name: D, value: O }, U];
10762
+ for (const [Q, F] of i) if (F.canHandle(_)) {
10763
+ const [P, N] = F.serialize(_);
10764
+ return [{ type: "HANDLER", name: Q, value: P }, N];
10773
10765
  }
10774
10766
  return [{ type: "RAW", value: _ }, y.get(_) || []];
10775
10767
  }
@@ -10781,93 +10773,93 @@ const Dh = kc((Si = function() {
10781
10773
  return _.value;
10782
10774
  }
10783
10775
  }
10784
- function C(_, D, F, O) {
10785
- return new Promise(((U) => {
10776
+ function C(_, Q, F, P) {
10777
+ return new Promise(((N) => {
10786
10778
  const R = new Array(4).fill(0).map((() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))).join("-");
10787
- D.set(R, U), _.start && _.start(), _.postMessage(Object.assign({ id: R }, F), O);
10779
+ Q.set(R, N), _.start && _.start(), _.postMessage(Object.assign({ id: R }, F), P);
10788
10780
  }));
10789
10781
  }
10790
- const Q = 6371e3;
10782
+ const O = 6371e3;
10791
10783
  function M(_) {
10792
10784
  return _ / 180 * Math.PI;
10793
10785
  }
10794
- const Z = 6370972;
10795
- function z(_, D) {
10796
- return (function(F, O, U = Q) {
10797
- const R = U, W = M(F[1]), re = M(F[0]), K = M(O[1]), $ = K - W, ee = M(O[0]) - re, J = Math.sin($ / 2) * Math.sin($ / 2) + Math.cos(W) * Math.cos(K) * Math.sin(ee / 2) * Math.sin(ee / 2);
10786
+ const H = 6370972;
10787
+ function z(_, Q) {
10788
+ return (function(F, P, N = O) {
10789
+ const R = N, W = M(F[1]), re = M(F[0]), K = M(P[1]), $ = K - W, ee = M(P[0]) - re, J = Math.sin($ / 2) * Math.sin($ / 2) + Math.cos(W) * Math.cos(K) * Math.sin(ee / 2) * Math.sin(ee / 2);
10798
10790
  return R * (2 * Math.atan2(Math.sqrt(J), Math.sqrt(1 - J)));
10799
- })(_, D, Z);
10791
+ })(_, Q, H);
10800
10792
  }
10801
- const N = { NEAREST: "NEAREST", LINEAR: "LINEAR", CUBIC: "CUBIC" }, G = { VECTOR: "VECTOR" };
10793
+ const U = { NEAREST: "NEAREST", LINEAR: "LINEAR", CUBIC: "CUBIC" }, G = { VECTOR: "VECTOR" };
10802
10794
  function S(_) {
10803
10795
  return _ % 1;
10804
10796
  }
10805
- function q(_, D) {
10806
- return _.map(((F, O) => _[O] + D[O]));
10797
+ function q(_, Q) {
10798
+ return _.map(((F, P) => _[P] + Q[P]));
10807
10799
  }
10808
- function Y(_, D) {
10809
- return _.map(((F, O) => _[O] * D));
10800
+ function Y(_, Q) {
10801
+ return _.map(((F, P) => _[P] * Q));
10810
10802
  }
10811
- function j(_, D) {
10812
- return _.map(((F, O) => _[O] * D[O])).reduce(((F, O) => F + O));
10803
+ function j(_, Q) {
10804
+ return _.map(((F, P) => _[P] * Q[P])).reduce(((F, P) => F + P));
10813
10805
  }
10814
- function se(_, D, F) {
10815
- return _ === D ? _ : _ * (1 - F) + D * F;
10806
+ function se(_, Q, F) {
10807
+ return _ === Q ? _ : _ * (1 - F) + Q * F;
10816
10808
  }
10817
- function ne(_, D, F) {
10818
- return _.map(((O, U) => se(_[U], D[U], F)));
10809
+ function ne(_, Q, F) {
10810
+ return _.map(((P, N) => se(_[N], Q[N], F)));
10819
10811
  }
10820
- function ye(_, D) {
10821
- return D ? _[3] >= 255 : !isNaN(_[0]);
10812
+ function ye(_, Q) {
10813
+ return Q ? _[3] >= 255 : !isNaN(_[0]);
10822
10814
  }
10823
- function Ge(_, D, F) {
10824
- if (D === G.VECTOR) {
10825
- const O = (function(U, R, W) {
10826
- return R === G.VECTOR ? W ? [se(W[0], W[1], U[0] / 255), se(W[0], W[1], U[1] / 255)] : [U[0], U[1]] : [NaN, NaN];
10827
- })(_, D, F);
10828
- return Math.hypot(O[0], O[1]);
10815
+ function Ge(_, Q, F) {
10816
+ if (Q === G.VECTOR) {
10817
+ const P = (function(N, R, W) {
10818
+ return R === G.VECTOR ? W ? [se(W[0], W[1], N[0] / 255), se(W[0], W[1], N[1] / 255)] : [N[0], N[1]] : [NaN, NaN];
10819
+ })(_, Q, F);
10820
+ return Math.hypot(P[0], P[1]);
10829
10821
  }
10830
- return (function(O, U, R) {
10831
- return U === G.VECTOR ? 0 : R ? se(R[0], R[1], O[0] / 255) : O[0];
10832
- })(_, D, F);
10822
+ return (function(P, N, R) {
10823
+ return N === G.VECTOR ? 0 : R ? se(R[0], R[1], P[0] / 255) : P[0];
10824
+ })(_, Q, F);
10833
10825
  }
10834
- function le(_, D, F, O, U, R) {
10835
- const { data: W, width: re, height: K } = _, $ = W.length / (re * K), ee = (F + U + 0.5) / D[0], J = (O + R + 0.5) / D[1], B = Math.max(0, Math.min(re - 1, Math.floor(ee * re))), V = Math.max(0, Math.min(K - 1, Math.floor(J * K)));
10826
+ function le(_, Q, F, P, N, R) {
10827
+ const { data: W, width: re, height: K } = _, $ = W.length / (re * K), ee = (F + N + 0.5) / Q[0], J = (P + R + 0.5) / Q[1], B = Math.max(0, Math.min(re - 1, Math.floor(ee * re))), V = Math.max(0, Math.min(K - 1, Math.floor(J * K)));
10836
10828
  return new Array($).fill(void 0).map(((X, ue) => W[(B + V * re) * $ + ue]));
10837
10829
  }
10838
- const Oe = [3, -6, 0, 4].map(((_) => _ / 6)), ht = [-1, 6, -12, 8].map(((_) => _ / 6));
10830
+ const Pe = [3, -6, 0, 4].map(((_) => _ / 6)), ht = [-1, 6, -12, 8].map(((_) => _ / 6));
10839
10831
  function Kt(_) {
10840
10832
  return [_ * _ * _, _ * _, _, 1];
10841
10833
  }
10842
- function St(_, D, F, O, U) {
10843
- const R = q(q(q(Y(_, j(ht, Kt(U + 1))), Y(D, j(Oe, Kt(U)))), Y(F, j(Oe, Kt(1 - U)))), Y(O, j(ht, Kt(2 - U))));
10844
- return R[3] = _[3] > 0 && D[3] > 0 && F[3] > 0 && O[3] > 0 ? Math.max(Math.max(Math.max(_[3], D[3]), F[3]), O[3]) : 0, R;
10834
+ function St(_, Q, F, P, N) {
10835
+ const R = q(q(q(Y(_, j(ht, Kt(N + 1))), Y(Q, j(Pe, Kt(N)))), Y(F, j(Pe, Kt(1 - N)))), Y(P, j(ht, Kt(2 - N))));
10836
+ return R[3] = _[3] > 0 && Q[3] > 0 && F[3] > 0 && P[3] > 0 ? Math.max(Math.max(Math.max(_[3], Q[3]), F[3]), P[3]) : 0, R;
10845
10837
  }
10846
- function Kn(_, D, F, O, U) {
10847
- return F === N.CUBIC ? (function(R, W, re, K) {
10838
+ function Kn(_, Q, F, P, N) {
10839
+ return F === U.CUBIC ? (function(R, W, re, K) {
10848
10840
  const $ = re * W[0] - 0.5, ee = K * W[1] - 0.5, J = Math.floor($), B = Math.floor(ee), V = S($), X = S(ee);
10849
10841
  return St(St(le(R, W, J, B, -1, -1), le(R, W, J, B, 0, -1), le(R, W, J, B, 1, -1), le(R, W, J, B, 2, -1), V), St(le(R, W, J, B, -1, 0), le(R, W, J, B, 0, 0), le(R, W, J, B, 1, 0), le(R, W, J, B, 2, 0), V), St(le(R, W, J, B, -1, 1), le(R, W, J, B, 0, 1), le(R, W, J, B, 1, 1), le(R, W, J, B, 2, 1), V), St(le(R, W, J, B, -1, 2), le(R, W, J, B, 0, 2), le(R, W, J, B, 1, 2), le(R, W, J, B, 2, 2), V), X);
10850
- })(_, D, O, U) : F === N.LINEAR ? (function(R, W, re, K) {
10842
+ })(_, Q, P, N) : F === U.LINEAR ? (function(R, W, re, K) {
10851
10843
  const $ = re * W[0] - 0.5, ee = K * W[1] - 0.5, J = Math.floor($), B = Math.floor(ee), V = S($), X = S(ee);
10852
10844
  return ne(ne(le(R, W, J, B, 0, 0), le(R, W, J, B, 1, 0), V), ne(le(R, W, J, B, 0, 1), le(R, W, J, B, 1, 1), V), X);
10853
- })(_, D, O, U) : (function(R, W, re, K) {
10845
+ })(_, Q, P, N) : (function(R, W, re, K) {
10854
10846
  const $ = re * W[0] - 0.5, ee = K * W[1] - 0.5;
10855
10847
  return le(R, W, Math.round($), Math.round(ee), 0, 0);
10856
- })(_, D, O, U);
10848
+ })(_, Q, P, N);
10857
10849
  }
10858
- function ml(_, D, F, O, U, R, W, re) {
10850
+ function ml(_, Q, F, P, N, R, W, re) {
10859
10851
  const K = R ? W + 0.5 / F[0] : se(0 + 0.5 / F[0], 1 - 0.5 / F[0], W), $ = se(0 + 0.5 / F[1], 1 - 0.5 / F[1], re);
10860
- return D && U > 0 ? ne(Kn(_, F, O, K, $), Kn(D, F, O, K, $), U) : Kn(_, F, O, K, $);
10852
+ return Q && N > 0 ? ne(Kn(_, F, P, K, $), Kn(Q, F, P, K, $), N) : Kn(_, F, P, K, $);
10861
10853
  }
10862
- function gl(_, D) {
10863
- const { image: F, image2: O, imageSmoothing: U, imageInterpolation: R, imageWeight: W, imageType: re, imageUnscale: K, imageMinValue: $, imageMaxValue: ee } = _, { width: J, height: B } = F, V = R !== N.NEAREST ? N.NEAREST : R, X = (function(oe, _e, Ne) {
10854
+ function gl(_, Q) {
10855
+ const { image: F, image2: P, imageSmoothing: N, imageInterpolation: R, imageWeight: W, imageType: re, imageUnscale: K, imageMinValue: $, imageMaxValue: ee } = _, { width: J, height: B } = F, V = R !== U.NEAREST ? U.NEAREST : R, X = (function(oe, _e, Ne) {
10864
10856
  const Je = 1 + Math.max(0, Ne);
10865
10857
  return [oe / Je, _e / Je];
10866
- })(J, B, U), ue = (function(oe) {
10858
+ })(J, B, N), ue = (function(oe) {
10867
10859
  return oe[2] - oe[0] == 360;
10868
- })(D), fe = new Float32Array(J * B);
10860
+ })(Q), fe = new Float32Array(J * B);
10869
10861
  for (let oe = 0; oe < B; oe++) for (let _e = 0; _e < J; _e++) {
10870
- const Ne = _e + oe * J, Je = ml(F, O, X, V, W, ue, _e / J, oe / B);
10862
+ const Ne = _e + oe * J, Je = ml(F, P, X, V, W, ue, _e / J, oe / B);
10871
10863
  if (!ye(Je, K)) {
10872
10864
  fe[Ne] = NaN;
10873
10865
  continue;
@@ -10877,16 +10869,16 @@ const Dh = kc((Si = function() {
10877
10869
  }
10878
10870
  return { data: fe, width: J, height: B };
10879
10871
  }
10880
- function Al(_, D, F) {
10881
- let { data: O, width: U, height: R } = _;
10872
+ function Al(_, Q, F) {
10873
+ let { data: P, width: N, height: R } = _;
10882
10874
  const W = 1e3 * F, re = (function(B, V, X) {
10883
10875
  const ue = [X[0], X[3]], fe = (X[2] - X[0]) / B, oe = (X[3] - X[1]) / V;
10884
10876
  return (_e) => {
10885
10877
  const [Ne, Je] = _e;
10886
10878
  return [ue[0] + Ne * fe, ue[1] - Je * oe];
10887
10879
  };
10888
- })(U, R, D);
10889
- O = (function(B, V, X) {
10880
+ })(N, R, Q);
10881
+ P = (function(B, V, X) {
10890
10882
  const ue = new Float32Array(B.length);
10891
10883
  for (let fe = 0; fe < X; fe++) for (let oe = 0; oe < V; oe++) {
10892
10884
  const _e = oe + fe * V;
@@ -10896,15 +10888,15 @@ const Dh = kc((Si = function() {
10896
10888
  } else ue[_e] = B[_e];
10897
10889
  }
10898
10890
  return ue;
10899
- })(O, U, R);
10891
+ })(P, N, R);
10900
10892
  let K = [], $ = [];
10901
- for (let B = 1; B < R - 1; B++) for (let V = 1; V < U - 1; V++) {
10902
- const X = O[V + B * U];
10903
- if (!isNaN(X) && X >= O[V + 1 + B * U] && X >= O[V + 1 + (B + 1) * U] && X >= O[V + (B + 1) * U] && X >= O[V - 1 + (B + 1) * U] && X > O[V - 1 + B * U] && X > O[V - 1 + (B - 1) * U] && X > O[V + (B - 1) * U] && X > O[V + 1 + (B - 1) * U]) {
10893
+ for (let B = 1; B < R - 1; B++) for (let V = 1; V < N - 1; V++) {
10894
+ const X = P[V + B * N];
10895
+ if (!isNaN(X) && X >= P[V + 1 + B * N] && X >= P[V + 1 + (B + 1) * N] && X >= P[V + (B + 1) * N] && X >= P[V - 1 + (B + 1) * N] && X > P[V - 1 + B * N] && X > P[V - 1 + (B - 1) * N] && X > P[V + (B - 1) * N] && X > P[V + 1 + (B - 1) * N]) {
10904
10896
  const ue = re([V, B]);
10905
10897
  K.push({ position: ue, value: X });
10906
10898
  }
10907
- if (!isNaN(X) && X <= O[V + 1 + B * U] && X <= O[V + 1 + (B + 1) * U] && X <= O[V + (B + 1) * U] && X <= O[V - 1 + (B + 1) * U] && X < O[V - 1 + B * U] && X < O[V - 1 + (B - 1) * U] && X < O[V + (B - 1) * U] && X < O[V + 1 + (B - 1) * U]) {
10899
+ if (!isNaN(X) && X <= P[V + 1 + B * N] && X <= P[V + 1 + (B + 1) * N] && X <= P[V + (B + 1) * N] && X <= P[V - 1 + (B + 1) * N] && X < P[V - 1 + B * N] && X < P[V - 1 + (B - 1) * N] && X < P[V + (B - 1) * N] && X < P[V + 1 + (B - 1) * N]) {
10908
10900
  const ue = re([V, B]);
10909
10901
  $.push({ position: ue, value: X });
10910
10902
  }
@@ -10929,34 +10921,34 @@ const Dh = kc((Si = function() {
10929
10921
  }
10930
10922
  return $ = J.filter(((B) => !!B)), new Float32Array([K.length, ...K.map(((B) => [...B.position, B.value])).flat(), $.length, ...$.map(((B) => [...B.position, B.value])).flat()]);
10931
10923
  }
10932
- l({ getHighLowPointData(_, D, F, O, U, R, W, re, K, $, ee, J, B, V, X) {
10924
+ l({ getHighLowPointData(_, Q, F, P, N, R, W, re, K, $, ee, J, B, V, X) {
10933
10925
  const ue = (function(fe, oe, _e) {
10934
10926
  return Al(gl(fe, oe), oe, _e);
10935
- })({ image: { data: _, width: D, height: F }, image2: O ? { data: O, width: U, height: R } : null, imageSmoothing: W, imageInterpolation: re, imageWeight: K, imageType: $, imageUnscale: ee, imageMinValue: J, imageMaxValue: B }, V, X);
10927
+ })({ image: { data: _, width: Q, height: F }, image2: P ? { data: P, width: N, height: R } : null, imageSmoothing: W, imageInterpolation: re, imageWeight: K, imageType: $, imageUnscale: ee, imageMinValue: J, imageMaxValue: B }, V, X);
10936
10928
  return T(ue, [ue.buffer]);
10937
10929
  } });
10938
10930
  }, Si.toString().replace(/^function.+?{/, "").slice(0, -1)));
10939
- var Si, Ph = Ec(Dh);
10940
- const rs = { LOW: "L", HIGH: "H" }, Oh = go(Ph());
10931
+ var Si, Oh = Ec(Dh);
10932
+ const rs = { LOW: "L", HIGH: "H" }, Ph = go(Oh());
10941
10933
  function Li(a, e) {
10942
10934
  return { type: "Feature", geometry: { type: "Point", coordinates: a }, properties: e };
10943
10935
  }
10944
10936
  async function Nh(a, e, t) {
10945
10937
  const { image: n, image2: r, imageSmoothing: s, imageInterpolation: o, imageWeight: i, imageType: l, imageUnscale: u, imageMinValue: c, imageMaxValue: f } = a, { data: h, width: p, height: v } = n, { data: I = null, width: y = null, height: T = null } = r || {}, L = h.slice(0), E = I ? I.slice(0) : null;
10946
- return { type: "FeatureCollection", features: (function(Q) {
10938
+ return { type: "FeatureCollection", features: (function(O) {
10947
10939
  let M = 0;
10948
- const Z = [], z = Q[M++];
10940
+ const H = [], z = O[M++];
10949
10941
  for (let G = 0; G < z; G++) {
10950
- const S = [Q[M++], Q[M++]], q = Q[M++];
10951
- Z.push(Li(S, { type: rs.HIGH, value: q }));
10942
+ const S = [O[M++], O[M++]], q = O[M++];
10943
+ H.push(Li(S, { type: rs.HIGH, value: q }));
10952
10944
  }
10953
- const N = Q[M++];
10954
- for (let G = 0; G < N; G++) {
10955
- const S = [Q[M++], Q[M++]], q = Q[M++];
10956
- Z.push(Li(S, { type: rs.LOW, value: q }));
10945
+ const U = O[M++];
10946
+ for (let G = 0; G < U; G++) {
10947
+ const S = [O[M++], O[M++]], q = O[M++];
10948
+ H.push(Li(S, { type: rs.LOW, value: q }));
10957
10949
  }
10958
- return Z;
10959
- })(await Oh.getHighLowPointData(Zr(L, [L.buffer]), p, v, E ? Zr(E, [E.buffer]) : null, y, T, s, o, i, l, u, c, f, e, t)) };
10950
+ return H;
10951
+ })(await Ph.getHighLowPointData(Zr(L, [L.buffer]), p, v, E ? Zr(E, [E.buffer]) : null, y, T, s, o, i, l, u, c, f, e, t)) };
10960
10952
  }
10961
10953
  const Mi = "high-low-label";
10962
10954
  function Qi(a, e, t) {
@@ -10965,17 +10957,18 @@ function Qi(a, e, t) {
10965
10957
  const Wt = { image: { type: "object", value: null }, image2: { type: "object", value: null }, imageSmoothing: { type: "number", value: 0 }, imageInterpolation: { type: "object", value: Ze.CUBIC }, imageWeight: { type: "number", value: 0 }, imageType: { type: "object", value: xe.SCALAR }, imageUnscale: { type: "array", value: null }, imageMinValue: { type: "object", value: null }, imageMaxValue: { type: "object", value: null }, bounds: { type: "array", value: [-180, -90, 180, 90], compare: !0 }, minZoom: { type: "object", value: null }, maxZoom: { type: "object", value: null }, radius: { type: "number", value: 0 }, unitFormat: { type: "object", value: null }, textFormatFunction: { type: "function", value: ll }, textFontFamily: { type: "object", value: Cs }, textSize: { type: "number", value: 12 }, textColor: { type: "color", value: Es }, textOutlineWidth: { type: "number", value: 1 }, textOutlineColor: { type: "color", value: ks }, palette: { type: "object", value: null } };
10966
10958
  class Jn extends je {
10967
10959
  renderLayers() {
10968
- const { viewport: e } = this.context, { props: t, visiblePoints: n, minValue: r, maxValue: s } = this.state;
10960
+ const { viewport: e } = this.context, { props: t, points: n, minValue: r, maxValue: s } = this.state;
10969
10961
  if (!t || !n || typeof r != "number" || typeof s != "number") return [];
10970
10962
  const { unitFormat: o, textFormatFunction: i, textFontFamily: l, textSize: u, textColor: c, textOutlineWidth: f, textOutlineColor: h } = he(t, Wt), { paletteScale: p } = this.state;
10971
10963
  return [new In(this.getSubLayerProps({ id: "type", data: n, getPixelOffset: [0, -$a(e, 1.2 * u / 2)], getPosition: (v) => v.geometry.coordinates, getText: (v) => v.properties.type, getSize: 1.2 * u, getColor: (v) => p ? Wn(p(v.properties.value).rgba()) : c, getAngle: Ye(e, 0), outlineWidth: f, outlineColor: h, fontFamily: l, fontSettings: { sdf: !0 }, billboard: !1, extensions: [new Jr()], collisionEnabled: !0, collisionGroup: Mi, collisionTestProps: { sizeScale: 5 }, getCollisionPriority: (v) => Qi(v, r, s), parameters: { cullMode: "front", depthCompare: "always", ...this.props.parameters } })), new In(this.getSubLayerProps({ id: "value", data: n, getPixelOffset: [0, $a(e, 1.2 * u / 2)], getPosition: (v) => v.geometry.coordinates, getText: (v) => i(v.properties.value, o), getSize: u, getColor: (v) => p ? Wn(p(v.properties.value).rgba()) : c, getAngle: Ye(e, 0), outlineWidth: f, outlineColor: h, fontFamily: l, fontSettings: { sdf: !0 }, billboard: !1, extensions: [new Jr()], collisionEnabled: !0, collisionGroup: Mi, collisionTestProps: { sizeScale: 5 }, getCollisionPriority: (v) => Qi(v, r, s), parameters: { cullMode: "front", depthCompare: "always", ...this.props.parameters } }))];
10972
10964
  }
10973
- shouldUpdateState(e) {
10974
- return super.shouldUpdateState(e) || e.changeFlags.viewportChanged;
10965
+ filterSubLayer(e) {
10966
+ const { viewport: t } = e, { minZoom: n, maxZoom: r } = he(this.props, Wt);
10967
+ return Bt(t, n, r);
10975
10968
  }
10976
10969
  updateState(e) {
10977
- const { image: t, image2: n, imageSmoothing: r, imageInterpolation: s, imageWeight: o, imageType: i, imageUnscale: l, imageMinValue: u, imageMaxValue: c, minZoom: f, maxZoom: h, radius: p, unitFormat: v, textFormatFunction: I, textFontFamily: y, textSize: T, textColor: L, textOutlineWidth: E, textOutlineColor: C, palette: Q, visible: M } = e.props;
10978
- super.updateState(e), p && M ? (t === e.oldProps.image && n === e.oldProps.image2 && r === e.oldProps.imageSmoothing && s === e.oldProps.imageInterpolation && o === e.oldProps.imageWeight && i === e.oldProps.imageType && l === e.oldProps.imageUnscale && u === e.oldProps.imageMinValue && c === e.oldProps.imageMaxValue && p === e.oldProps.radius && M === e.oldProps.visible || this._updateFeatures(), (f !== e.oldProps.minZoom || h !== e.oldProps.maxZoom || e.changeFlags.viewportChanged) && this._updateVisibleFeatures(), Q !== e.oldProps.palette && this._updatePalette(), v === e.oldProps.unitFormat && I === e.oldProps.textFormatFunction && y === e.oldProps.textFontFamily && T === e.oldProps.textSize && L === e.oldProps.textColor && E === e.oldProps.textOutlineWidth && C === e.oldProps.textOutlineColor || this._redrawVisibleFeatures(), this.setState({ props: e.props })) : this.setState({ points: void 0, visiblePoints: void 0, minValue: void 0, maxValue: void 0 });
10970
+ const { image: t, image2: n, imageSmoothing: r, imageInterpolation: s, imageWeight: o, imageType: i, imageUnscale: l, imageMinValue: u, imageMaxValue: c, radius: f, unitFormat: h, textFormatFunction: p, textFontFamily: v, textSize: I, textColor: y, textOutlineWidth: T, textOutlineColor: L, palette: E, visible: C } = e.props;
10971
+ super.updateState(e), f && C ? (t === e.oldProps.image && n === e.oldProps.image2 && r === e.oldProps.imageSmoothing && s === e.oldProps.imageInterpolation && o === e.oldProps.imageWeight && i === e.oldProps.imageType && l === e.oldProps.imageUnscale && u === e.oldProps.imageMinValue && c === e.oldProps.imageMaxValue && f === e.oldProps.radius && C === e.oldProps.visible || this._updateFeatures(), E !== e.oldProps.palette && this._updatePalette(), h === e.oldProps.unitFormat && p === e.oldProps.textFormatFunction && v === e.oldProps.textFontFamily && I === e.oldProps.textSize && y === e.oldProps.textColor && T === e.oldProps.textOutlineWidth && L === e.oldProps.textOutlineColor || this._redrawVisibleFeatures(), this.setState({ props: e.props })) : this.setState({ points: void 0, minValue: void 0, maxValue: void 0 });
10979
10972
  }
10980
10973
  async _updateFeatures() {
10981
10974
  const { image: e, image2: t, imageSmoothing: n, imageInterpolation: r, imageType: s, imageUnscale: o, imageMinValue: i, imageMaxValue: l, imageWeight: u, bounds: c, radius: f } = he(this.props, Wt);
@@ -10985,13 +10978,7 @@ class Jn extends je {
10985
10978
  const p = { image: e, image2: t, imageSmoothing: n, imageInterpolation: r, imageWeight: u, imageType: s, imageUnscale: o, imageMinValue: i, imageMaxValue: l }, v = (await Nh(p, c, f)).features;
10986
10979
  if (this.state.requestId !== h) return;
10987
10980
  const I = v.map(((L) => L.properties.value)), y = Math.min(...I), T = Math.max(...I);
10988
- this.setState({ points: v, minValue: y, maxValue: T }), this._updateVisibleFeatures();
10989
- }
10990
- _updateVisibleFeatures() {
10991
- const { viewport: e } = this.context, { minZoom: t, maxZoom: n } = he(this.props, Wt), { points: r } = this.state;
10992
- if (!r) return;
10993
- let s;
10994
- s = Bt(e, t, n) ? r : [], this.setState({ visiblePoints: s });
10981
+ this.setState({ points: v, minValue: y, maxValue: T });
10995
10982
  }
10996
10983
  _updatePalette() {
10997
10984
  const { palette: e } = he(this.props, Wt);
@@ -11000,7 +10987,7 @@ class Jn extends je {
11000
10987
  this.setState({ paletteScale: t }), this._redrawVisibleFeatures();
11001
10988
  }
11002
10989
  _redrawVisibleFeatures() {
11003
- this.setState({ visiblePoints: Array.isArray(this.state.visiblePoints) ? Array.from(this.state.visiblePoints) : this.state.visiblePoints });
10990
+ this.setState({ points: Array.isArray(this.state.points) ? Array.from(this.state.points) : this.state.points });
11004
10991
  }
11005
10992
  }
11006
10993
  Jn.layerName = "HighLowCompositeLayer", Jn.defaultProps = Wt;
@@ -11017,7 +11004,7 @@ class Di extends je {
11017
11004
  }
11018
11005
  }
11019
11006
  Di.layerName = "HighLowLayer", Di.defaultProps = Uh;
11020
- const Ee = { COLD: "COLD", WARM: "WARM", OCCLUDED: "OCCLUDED", STATIONARY: "STATIONARY" }, Pi = { iconAtlas: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAAAqCAYAAABbec77AAAFsmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMDMtMTBUMTQ6NDI6NTYrMDEwMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjMtMDMtMjVUMDk6MDY6NTgrMDE6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjMtMDMtMjVUMDk6MDY6NTgrMDE6MDAiCiAgIHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD0iMjAyMy0wMy0xMFQxNDo0Mjo1NiswMTAwIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIxMDYiCiAgIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSI0MiIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICB0aWZmOkltYWdlV2lkdGg9IjEwNiIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNDIiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLzEiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLzEiPgogICA8ZGM6dGl0bGU+CiAgICA8cmRmOkFsdD4KICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmZyb250PC9yZGY6bGk+CiAgICA8L3JkZjpBbHQ+CiAgIDwvZGM6dGl0bGU+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBEZXNpZ25lciAyIDIuMC40IgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTAzLTI1VDA5OjA2OjU4KzAxOjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIiPz6ldAqQAAABgWlDQ1BzUkdCIElFQzYxOTY2LTIuMQAAKJF1kd8rg1EYxz/baGKiuKBcLOFqNNTiRtnSKGnNlOFme/dL7cfb+25puVVuV5S48euCv4Bb5VopIiW3XBM3rNfzbmqSPafnPJ/zPed5Ouc5YA2llYze4IZMNq8F/V7nYnjJaX/GRjd2BrFEFF2dDARmqWsfd1jMeDNo1qp/7l9ricV1BSxNwhOKquWFp4Vn1/KqydvCnUoqEhM+FXZpckHhW1OPVvnF5GSVv0zWQkEfWNuFnclfHP3FSkrLCMvL6cukC8rPfcyXOOLZhXmJveI96ATx48XJDFP48DDMuMwe6c4IQ7KiTr67kj9HTnIVmVWKaKySJEUel6gFqR6XmBA9LiNN0ez/377qidGRanWHFxqfDOOtH+xbUC4ZxuehYZSPwPYIF9lafu4Axt5FL9W0vn1o24Czy5oW3YHzTeh6UCNapCLZxK2JBLyeQGsYOq6hebnas599ju8htC5fdQW7ezAg59tWvgEshmfLrsJJUgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAohJREFUeJztmj1uE1EURo8J0BBMmSgV7IE0oUzDCtJQ44JsgcRmEQksAJZARBqoUrGCVNPhGpzGwlIo/J4x9hv7vv/n8D7pSJYlz3xX1x4djQdqamo2M68UNQXnGfBT8TRvlZq2bAFXwK3iSr1XU1gG/F2Spp+zUM1yXgATlhc1AQ4y9qqZyxOgYXlJmgboZmtXM8sn2pek+ZitXQ0w1fB1S9JUZc8UreLSRVVlz5BFFZdSlX1N7gc+3gluNncAvAXeha0TJF3gJbAP7C0A8GOB78AX4FfypsK0qbiUkpR9F+gBF8AY+1nG6rM9daxisk7FpeRW9h3gHL8vnOkLeKaOnT0SFZeSQ9m3md4tuXHoK2UEnKpzZYmNiktJqeyHwDDCDG0M1TmTxlbFpaRQ9g5wTNjLnJSJOneSuKq4lJjK/gD4ELG7lPeqS9QMEgzSj9D7IXCZoLuUSyIuy1fFpYRW9g5l/JJMv6zgCaXiUhrCKftxwt62vAk04ywhVVxKCGU/JI84SJkQ0AZjqLgUH2XfJq2CuzIEHnnMCcRTcSk+yn6asbctJ44zAvFVXIqLsu8Q945DaEZ43G4aFDCApm/Z/byAzracWc4IpFNxKTbKvltYdym/sbzrnlrFpTTIlL1XQFdXXgvmmyWHikuRKPtFAT1d+SyYD8ir4lJWKXsXtz/9SmEMPF4xH5BfxaWsUvajAvr5cqSHuWcYcIvpZWUTHo7sMr08m5R9P3GXGHmuX5gW5fqASq7oB2MWs2d4b9PSOkNpKi7FpOzfCujly1fTkkpVcSkN/16urwvo5Mu1aVElq7iUeWUfFdDHlxs9TGdusFvuRvRMd2oek0zUFJi6qJqamv8wfwB+DW9fiCc45gAAAABJRU5ErkJggg==", iconMapping: { COLD: { x: 2, y: 2, width: 50, height: 38, anchorY: 35, mask: !0 }, WARM: { x: 54, y: 2, width: 50, height: 38, anchorY: 35, mask: !0 } } };
11007
+ const Ee = { COLD: "COLD", WARM: "WARM", OCCLUDED: "OCCLUDED", STATIONARY: "STATIONARY" }, Oi = { iconAtlas: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAAAqCAYAAABbec77AAAFsmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMDMtMTBUMTQ6NDI6NTYrMDEwMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjMtMDMtMjVUMDk6MDY6NTgrMDE6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjMtMDMtMjVUMDk6MDY6NTgrMDE6MDAiCiAgIHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD0iMjAyMy0wMy0xMFQxNDo0Mjo1NiswMTAwIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEi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", iconMapping: { COLD: { x: 2, y: 2, width: 50, height: 38, anchorY: 35, mask: !0 }, WARM: { x: 54, y: 2, width: 50, height: 38, anchorY: 35, mask: !0 } } };
11021
11008
  function Vh(a, e) {
11022
11009
  for (let t = a.length - 1; t >= 0; t--) if (e.call(a, a[t], t, a)) return t;
11023
11010
  return -1;
@@ -11025,7 +11012,7 @@ function Vh(a, e) {
11025
11012
  const wn = { data: { type: "array", value: [] }, minZoom: { type: "object", value: null }, maxZoom: { type: "object", value: null }, getType: { type: "function", value: null }, getPath: { type: "function", value: null }, width: { type: "number", value: 2 }, coldColor: { type: "color", value: [0, 0, 255] }, warmColor: { type: "color", value: [255, 0, 0] }, occludedColor: { type: "color", value: [148, 0, 211] }, iconSize: { type: "number", value: 15 }, _debug: { type: "boolean", value: !1 } };
11026
11013
  class zn extends je {
11027
11014
  renderLayers() {
11028
- const { viewport: e } = this.context, { props: t, visibleFrontLines: n, visibleDebugFrontPoints: r } = this.state;
11015
+ const { viewport: e } = this.context, { props: t, frontLines: n, debugFrontPoints: r } = this.state;
11029
11016
  if (!t || !n || !r) return [];
11030
11017
  const { getType: s, getPath: o, width: i, coldColor: l, warmColor: u, occludedColor: c, iconSize: f, _debug: h } = he(t, wn);
11031
11018
  if (!s || !o) return [];
@@ -11034,17 +11021,18 @@ class zn extends je {
11034
11021
  const I = { [Ee.COLD]: l, [Ee.WARM]: u, [Ee.OCCLUDED]: c, [Ee.STATIONARY]: l };
11035
11022
  return [new Qs(this.getSubLayerProps({ id: "path", data: n, getPath: (y) => [y.startPosition, ...y.icons.map(((T) => T.position)), y.endPosition], getColor: (y) => I[s(y.d)], getWidth: i, widthUnits: "pixels" })), new Qs(this.getSubLayerProps({ id: "path-stationary-warm", data: n.filter(((y) => s(y.d) === Ee.STATIONARY)), getPath: (y) => [y.startPosition, ...y.icons.map(((T) => T.position)), y.endPosition], getColor: u, getWidth: i, widthUnits: "pixels", extensions: [new Tl({ dash: !0, highPrecisionDash: !0 })], getDashArray: [45, 45] })), new Ki(this.getSubLayerProps({ id: "icon", data: n.flatMap(((y) => y.icons)), getPosition: (y) => y.position, getIcon: (y) => s(y.d) === Ee.OCCLUDED || s(y.d) === Ee.STATIONARY ? y.alternate ? Ee.COLD : Ee.WARM : s(y.d), getSize: f, getColor: (y) => s(y.d) === Ee.STATIONARY ? y.alternate ? I[Ee.COLD] : I[Ee.WARM] : I[s(y.d)], getAngle: (y) => s(y.d) === Ee.STATIONARY ? y.alternate ? Ye(e, y.direction) : Ye(e, y.direction + 180) : Ye(e, y.direction), iconAtlas: v, iconMapping: p.iconMapping, sizeBasis: "height", billboard: !1, extensions: [new Jr()], collisionEnabled: !0, collisionGroup: "front-icon", collisionTestProps: { sizeScale: 5 }, getCollisionPriority: (y) => y.priority })), ...h ? [new In(this.getSubLayerProps({ id: "text", data: r, getPosition: (y) => y.position, getText: (y) => `${y.index}`, getSize: 12, getColor: Es, getAngle: Ye(e, 0), outlineWidth: 1, outlineColor: ks, fontFamily: Cs, fontSettings: { sdf: !0 }, billboard: !1 }))] : []];
11036
11023
  }
11037
- shouldUpdateState(e) {
11038
- return super.shouldUpdateState(e) || e.changeFlags.viewportChanged;
11024
+ filterSubLayer(e) {
11025
+ const { viewport: t } = e, { minZoom: n, maxZoom: r } = he(this.props, wn);
11026
+ return Bt(t, n, r);
11039
11027
  }
11040
11028
  updateState(e) {
11041
- const { data: t, getType: n, getPath: r, minZoom: s, maxZoom: o } = e.props;
11042
- super.updateState(e), t && n && r ? (this.state.iconStyle || this._updateIconStyle(), t === e.oldProps.data && r === e.oldProps.getPath || this._updateFeatures(), (s !== e.oldProps.minZoom || o !== e.oldProps.maxZoom || e.changeFlags.viewportChanged) && this._updateVisibleFeatures(), this.setState({ props: e.props })) : this.setState({ features: void 0, debugFeatures: void 0, visibleFeatures: void 0, visibleDebugFeatures: void 0 });
11029
+ const { data: t, getType: n, getPath: r } = e.props;
11030
+ super.updateState(e), t && n && r ? (this.state.iconStyle || this._updateIconStyle(), t === e.oldProps.data && r === e.oldProps.getPath || this._updateFeatures(), this.setState({ props: e.props })) : this.setState({ features: void 0, debugFeatures: void 0 });
11043
11031
  }
11044
11032
  async _updateIconStyle() {
11045
11033
  const { device: e } = this.context;
11046
- this.setState({ iconStyle: Pi });
11047
- const t = nt(e, await cl(Pi.iconAtlas));
11034
+ this.setState({ iconStyle: Oi });
11035
+ const t = nt(e, await cl(Oi.iconAtlas));
11048
11036
  this.setState({ iconAtlasTexture: t });
11049
11037
  }
11050
11038
  _updateFeatures() {
@@ -11059,31 +11047,25 @@ class zn extends je {
11059
11047
  if (h > 1 && I % 3 == 0) continue;
11060
11048
  const y = I * p, T = Vh(u, ((G) => G <= y));
11061
11049
  if (T === -1 || T === l.length - 1) throw new Error("Invalid state");
11062
- const L = T + 1, E = l[T], C = l[L], Q = u[T], M = hc(E, C), Z = _h(E, y - Q, M), z = 90 - M, N = 100 - h;
11063
- c.push({ distance: y, position: Z, direction: z, priority: N });
11050
+ const L = T + 1, E = l[T], C = l[L], O = u[T], M = hc(E, C), H = _h(E, y - O, M), z = 90 - M, U = 100 - h;
11051
+ c.push({ distance: y, position: H, direction: z, priority: U });
11064
11052
  }
11065
11053
  }
11066
11054
  c = c.sort(((h, p) => h.distance - p.distance));
11067
11055
  const f = c.map(((h, p) => ({ d: o, ...h, alternate: p % 2 == 0 })));
11068
11056
  return { d: o, startPosition: i[0], endPosition: i[i.length - 1], icons: f };
11069
11057
  })(s, t(s)))), r = e.flatMap(((s) => t(s).map(((o, i) => ({ d: s, position: o, index: i })))));
11070
- this.setState({ frontLines: n, debugFrontPoints: r }), this._updateVisibleFeatures();
11071
- }
11072
- _updateVisibleFeatures() {
11073
- const { viewport: e } = this.context, { minZoom: t, maxZoom: n } = he(this.props, wn), { frontLines: r, debugFrontPoints: s } = this.state;
11074
- if (!r || !s) return;
11075
- let o, i;
11076
- Bt(e, t, n) ? (o = r, i = s) : (o = [], i = []), this.setState({ visibleFrontLines: o, visibleDebugFrontPoints: i });
11058
+ this.setState({ frontLines: n, debugFrontPoints: r });
11077
11059
  }
11078
11060
  }
11079
11061
  zn.layerName = "FrontCompositeLayer", zn.defaultProps = wn;
11080
11062
  const Fh = { ...zn.defaultProps };
11081
- class Oi extends je {
11063
+ class Pi extends je {
11082
11064
  renderLayers() {
11083
11065
  return [new zn(this.props, this.getSubLayerProps({ id: "composite" }))];
11084
11066
  }
11085
11067
  }
11086
- Oi.layerName = "FrontLayer", Oi.defaultProps = Fh;
11068
+ Pi.layerName = "FrontLayer", Pi.defaultProps = Fh;
11087
11069
  const Rh = /* @__PURE__ */ new Map(), Wh = /* @__PURE__ */ new Map();
11088
11070
  function qh(a, e = 0) {
11089
11071
  let t;
@@ -11129,23 +11111,27 @@ function qh(a, e = 0) {
11129
11111
  const ss = { VALUE: "VALUE", ARROW: "ARROW", WIND_BARB: "WIND_BARB" }, Ni = /* @__PURE__ */ new Map([[ss.ARROW, { iconAtlas: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAFtGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMDMtMTBUMTQ6NDE6MjYrMDEwMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjQtMDItMTFUMjM6Mzc6NTErMDE6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQtMDItMTFUMjM6Mzc6NTErMDE6MDAiCiAgIHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD0iMjAyMy0wMy0xMFQxNDo0MToyNiswMTAwIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEi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", iconMapping: { 0: { x: 0, y: 0, width: 100, height: 100, mask: !0 } } }], [ss.WIND_BARB, { iconAtlas: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/wAAAKoCAYAAADKyfSuAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3W2sdWd6F/YLIQFf+AJODBRm8kJCMnqMWrVU7pBUVK0UUFCKpwEncezMJBM0ICVNbImED9gZI94i222TL5EIk0SPnSaozbhAFCK1KmoG1yqtWmGJooJLMkxD/NiIL3wAJKRqxcea4+P9stbe17XWuu/7tyUryfPsfa37/l3/rGdf5z5nn98QHgQIECBAgAABAgQIECBAgEB3Ar+hux3ZEAECBAgQIECAAAECBAgQIBAGfiEgQIAAAQIECBAgQIAAAQIdChj4O2yqLREgQIAAAQIECBAgQIAAAQO/DBAgQIAAAQIECBAgQIAAgQ4FDPwdNtWWCBAgQIAAAQIECBAgQICAgV8GCBAgQIAAAQIECBAgQIBAhwIG/g6baksECBAgQIAAAQIECBAgQMDALwMECBAgQIAAAQIECBAgQKBDAQN/h021JQIECBAgQIAAAQIECBAgYOCXAQIECBAgQIAAAQIECBAg0KGAgb/DptoSAQIECBAgQIAAAQIECBAw8MsAAQIECBAgQIAAAQIECBDoUMDA32FTbYkAAQIECBAgQIAAAQIECBj4ZYAAAQIECHxR4CMR8Q+AENi5gJzuvEGW9+sCcioILQh0n1MDfwsxtEYCBAgQWEPgkxHxfRFxb42LuQaBCwXk9EI4L1tVQE5X5XaxCwWGyKmB/8J0eBkBAgQIdCMwDfjfHxHfebOjH46IH+hmdzbSi4Cc9tLJvvchp333t5fdDZVTA38vsbUPAgQIELhE4Ltvhv2vvfPiT0TET15S0GsIFAjIaQGqkukCcppOqmCBwHA5NfAXpEhJAgQIENi9wPTV/acjYhrsDz1+LSL+eER8bvc7scCeBeS05+72szc57aeXPe9k2Jwa+HuOtb0RIECAwCGBP3lzqv81J3j+ekQ8jo/AhgJyuiG+S88WkNPZVJ64ocDQOTXwb5g8lyZAgACBVQV+X0T8YER8/MRV/21E/ImI+LlVV+ZiBL4oIKfS0IKAnLbQJWuU04gw8Pt/BAIECBAYQeBTN6f6X31is69ExLePgGGPuxWQ0922xsJuCcipOLQgIKc3XTLwtxBXayRAgACBSwW+IiKei4inThT4Vzen+n/z0ot4HYErBeT0SkAvX0VATldhdpErBeT0DqCB/8pEeTkBAgQI7FZg+ur+9MF8X3VihT915lv8d7s5C+tGQE67aWXXG5HTrtvbzebk9EArDfzd5NtGCBAgQOBG4HdHxF+MiCdPiPzLm1P9X6BGYCMBOd0I3mUXCcjpIi5P3khATk/AG/g3SqXLEiBAgECJwHfdfDDf7z1R/ccjYvo9vB4EthKQ063kXXeJgJwu0fLcrQTk9Iy8gX+raLouAQIECGQKPBwRL0bEEyeK/oubv3eqnymv1hIBOV2i5blbCcjpVvKuu0RATmdqGfhnQnkaAQIECOxWYPpAvumD+aYP6jn2+LGI+FO73YGFjSAgpyN0uf09Zub00zf35vZV7GBvAnK6oCMG/gVYnkqAAAECuxL4bRHxI2dO9d+OiO+ICKf6u2rdUIuR06Ha3exmM3P60ZvvuHr05rNUXm5WxcL3JiCnF3TEwH8BmpcQIECAwOYC3xoRfyEivvzESn40Ir5385VawMgCcjpy99vZe2ZOp1P9Z29t/UFE3IuI6YuvHgSuEZDTC/UM/BfCeRkBAgQIbCLwW29O9T9+4uq/GhGfdKq/SX9c9F0BOZWEFgQyc3r7VP/u3qcT/lO/NaUFK2vcTkBOr7Q38F8J6OUECBAgsJrAN0fECxHx4RNXdKq/Wjtc6IiAnIpGCwKZOb17qn9o/9PPXN9vAcYadyUgpwntMPAnICpBgAABAqUCv+XmVP/Ur9L7fER8yql+aR8UPy0gpxLSgkBmTk+d6r9n8XpEPBMRr7WAY427EZDTxFYY+BMxlSJAgACBdIFviojp1P5DJyo71U9nV3ChgJwuBPP0TQQyczrnVP95n9K/SZ9bv6icJnfQwJ8MqhwBAgQIpAj8xptT/T99otqbEfE9TvVTvBW5TEBOL3PzqnUFMnPqVH/d3o10NTkt6raBvwhWWQIECBC4WOCP3Jzqf+WJCk71L+b1wiQBOU2CVKZUIDOnTvVLWzV0cTktbL+BvxBXaQIECBC4SOCHTnwb6D+++VV7v3BRZS8ikCcgp3mWKtUJZOTUqX5df1R+V0BOC5Ng4C/EVZrADgUO3VCnr9hPf+5BYC8Cx/7hd6q/lw5Zx6k3qHNzOt17n0NJoFjg2vupU/3iBil/cuBfcj999ozlsJ8pYeD3/2UExhIw8I/V71Z3K6etdm6sdV+a09unpdPvJp9+R7kHgSqBjJweW5tP4K/q2nh15bSw5wb+QlylCexQ4NIb6g63YkkdC8hpx83taGuX5PTuaemDiLgXEW935GIr+xLIyOmhHQ17Wrqv9nazGjktbKWBvxBXaQI7FLjkhrrDbVhS5wJy2nmDO9nekpye+hno6YR/Oun3IFAhkJXT99bmVL+iS2rKaWEGDPyFuEoT2KHAkhvqDpdvSYMIyOkgjW58m3NzOudnoJ+KiPuNe1j+PgUyc+pUf5897mFVclrYRQN/Ia7SBHYoMPeGusOlW9JAAnI6ULMb3uq5nPpk84ab29HS5bSjZna8FTktbK6BvxBXaQI7FDh3Q93hki1pQAE5HbDpDW75VE7nnOo7LW2w6Q0uWU4bbNqAS5bTwqYb+AtxlSawQwGD1A6bYkkfEJBToWhB4FBOPxMRH4mIR09swM9At9DdftYop/30suedyGlhdw38hbhKE9ihgEFqh02xJAO/DDQpcOh+em4jTvXPCfn7bAE5zRZVr0JATitUb2oa+AtxlSawQwED/w6bYkkGfhloUmDJG1Sn+k22uItFy2kXbex+E3Ja2GIDfyGu0gR2KGDg32FTLMnALwNNCsx9g+pUv8n2drNoOe2mlV1vRE4L22vgL8RVmsAOBQz8O2yKJRn4ZaBJgXNvUJ3qN9nW7hYtp921tMsNyWlhWw38hbhKE9ihwLUD/0MR8c4O92VJfQlcm9O+NOxmrwKn3qA61d9r18Zbl5yO1/MWd3xtTr0/PdF1A3+L/y9hzQQuF7hmkHoyIl6IiHsR8fblS/BKAmcFrsnp2eKeQCBJ4FBOvxARj0fEa0nXUIbAtQJyeq2g168hcE1OvT890yED/xoRdg0C+xG4ZJB6OCJejIgnbrbxckRMN1cPAlUCl+S0ai3qEjgmIKey0YKAnLbQJWu8JKfen87MjYF/JpSnEehEYOkNdRrsX4qI6Vulbj+mP58Gfw8CFQJLc1qxBjUJnBOQ03NC/n4PAnK6hy5YwzmBpTn1/vSc6K2/N/AvwPJUAh0IzL2h3v2q6d2tT9/SP31r/4MOTGxhfwJzc7q/lVvRSAJyOlK3292rnLbbu5FWPjen3p9ekAoD/wVoXkKgYYE5N9RjXzW9ve1XIuKZiHirYQtL36/AnJzud/VWNoqAnI7S6bb3Kadt92+U1c/JqfenF6bBwH8hnJcRaFTg1A313FdNpy1Pn9D/dETcb3T/lt2GwJx/+NvYiVX2LCCnPXe3n73JaT+97Hkn3p8WdtfAX4irNIEdChy7ob555Gf1nervsIkDLMkb1AGa3MEW5bSDJg6wBTkdoMkdbNH708ImGvgLcZUmsEOBQzfUNyLikRNrdaq/w0Z2viRvUDtvcCfbk9NOGtn5NuS08wZ3sj3vTwsbaeAvxFWawA4FDt1QTy3Tz+rvsIkDLMkb1AGa3MEW5bSDJg6wBTkdoMkdbNH708ImGvgLcZUmsEOBuTdUp/o7bN5AS/IGdaBmN7xVOW24eQMtXU4HanbDW/X+tLB5Bv5CXKUJ7FBgzg3Vqf4OGzfYkrxBHazhjW5XThtt3GDLltPBGt7odr0/LWycgb8QV2kCOxQ4dUN1qr/Dhg26JG9QB218Y9uW08YaNuhy5XTQxje2be9PCxtm4C/EVZrADgWO3VCd6u+wWQMvyRvUgZvf0NbltKFmDbxUOR24+Q1t3fvTwmYZ+AtxlSawQ4FDN9RXI+KxHa7VksYV8AZ13N63tHM5balb465VTsftfUs79/60sFsG/kJcpQnsUMA//DtsiiV9QEBOhaIFATltoUvWKKcy0IKAnBZ2ycBfiKs0gR0KuKHusCmWZOCXgSYF3E+bbNtwi5bT4Vre5IbltLBtBv5CXKUJ7FDADXWHTbEkA78MNCngftpk24ZbtJwO1/ImNyynhW0z8BfiKk1ghwJuqDtsiiUZ+GWgSQH30ybbNtyi5XS4lje5YTktbJuBvxBXaQI7FHBD3WFTLMnALwNNCrifNtm24RYtp8O1vMkNy2lh2wz8hbhKE9ihgBvqDptiSQZ+GWhSwP20ybYNt2g5Ha7lTW5YTgvbZuAvxFWawA4F3FB32BRLMvDLQJMC7qdNtm24RcvpcC1vcsNyWtg2A38hrtIEdijghrrDpliSgV8GmhRwP22ybcMtWk6Ha3mTG5bTwrYZ+AtxlSawQwE31B02xZIM/DLQpID7aZNtG27Rcjpcy5vcsJwWts3AX4irNIEdCrih7rAplmTgl4EmBdxPm2zbcIuW0+Fa3uSG5bSwbQb+QlylCexQwA11h02xJAO/DDQp4H7aZNuGW7ScDtfyJjcsp4VtM/AX4ipNYIcCbqg7bIolGfhloEkB99Mm2zbcouV0uJY3uWE5LWybgb8QV2kCOxRwQ91hUyzJwC8DTQq4nzbZtuEWLafDtbzJDctpYdsM/IW4ShPYoYAb6g6bYkkGfhloUsD9tMm2DbdoOR2u5U1uWE4L22bgL8RVmsAOBdxQd9gUSzLwy0CTAu6nTbZtuEXL6XAtb3LDclrYNgN/Ia7SBHYo4Ia6w6ZYkoFfBpoUcD9tsm3DLVpOh2t5kxuW08K2GfgLcZUmsEMBN9QdNsWSDPwy0KSA+2mTbRtu0XI6XMub3LCcFrbNwF+IqzSBHQq4oe6wKZZk4JeBJgXcT5ts23CLltPhWt7khuW0sG0G/kJcpQnsUMANdYdNsSQDvww0KeB+2mTbhlu0nA7X8iY3LKeFbTPwF+IqTWCHAm6oO2yKJRn4ZaBJAffTJts23KLldLiWN7lhOS1sm4G/EFdpAjsUcEPdYVMsycAvA00KuJ822bbhFi2nw7W8yQ3LaWHbDPyFuEoT2KGAG+oOm2JJBn4ZaFLA/bTJtg23aDkdruVNblhOC9tm4C/EVZrADgXcUHfYFEsy8MtAkwLup022bbhFy+lwLW9yw3Ja2DYDfyGu0gR2KOCGusOmWJKBXwaaFHA/bbJtwy1aTodreZMbltPCthn4C3GVJrBDATfUHTbFkgz8MtCkgPtpk20bbtFyOlzLm9ywnBa2zcBfiKs0gR0KuKHusCmWZOCXgSYF3E+bbNtwi5bT4Vre5IbltLBtBv5CXKUJ7FDADXWHTbEkA78MNCngftpk24ZbtJwO1/ImNyynhW0z8BfiKk1ghwJuqDtsiiUZ+GWgSQH30ybbNtyi5XS4lje5YTktbJuBvxBXaQI7FHBD3WFTLMnALwNNCrifNtm24RYtp8O1vMkNy2lh2wz8hbhKE9ihgBvqDptiSQZ+GWhSwP20ybYNt2g5Ha7lTW5YTgvbZuAvxFWawA4F3FB32BRLMvDLQJMC7qdNtm24RcvpcC1vcsNyWtg2A38hrtIEdijghrrDpliSgV8GmhRwP22ybcMtWk6Ha3mTG5bTwrYZ+AtxlSawQwE31B02xZIM/DLQpID7aZNtG27Rcjpcy5vcsJwWts3AX4irNIEdCrih7rAplmTgl4EmBdxPm2zbcIuW0+Fa3uSG5bSwbQb+QlylCexQwA11h02xJAO/DDQp4H7aZNuGW7ScDtfyJjcsp4VtM/AX4ipNYIcCbqg7bIolGfhloEkB99Mm2zbcouV0uJY3uWE5LWybgb8QV2kCOxRwQ91hUyzJwC8DTQq4nzbZtuEWLafDtbzJDctpYdsM/IW4ShPYoYAb6g6bYkkGfhloUsD9tMm2DbdoOR2u5U1uWE4L22bgL8RVmsAOBdxQd9gUSzLwy0CTAu6nTbZtuEXL6XAtb3LDclrYNgN/Ia7SBHYo4Ia6w6ZYkoFfBpoUcD9tsm3DLVpOh2t5kxuW08K2GfgLcZUmsEMBN9QdNsWSDPwy0KSA+2mTbRtu0XI6XMub3LCcFrbNwF+IqzSBHQq4oe6wKZZk4JeBJgXcT5ts23CLltPhWt7khuW0sG0G/kJcpQnsUMANdYdNsSQDvww0KeB+2mTbhlu0nA7X8iY3LKeFbTPwF+IqTWCHAm6oO2yKJRn4ZaBJAffTJts23KLldLiWN7lhOS1sm4G/EFdpAjsUcEPdYVMsycAvA00KuJ822bbhFi2nw7W8yQ3LaWHbDPyFuEoT2KGAG+oOm2JJBn4ZaFLA/bTJtg23aDkdruVNblhOC9tm4M/B/e0R8Xsi4kMR8eU3Jf9JRHw+Iv5pRPzznMuoQuBqATfUqwkVWEFATldAdomrBeT0akIFVhCQ0xWQXeJqATm9mvB4AQP/ZbiPRMS3RcR/GhEfjogvPVPmQUT8SkT8TxHx0xHxxmWX9SoCVwu4oV5NqMAKAnK6ArJLXC0gp1cTKrCCgJyugOwSVwvI6dWEBv4swm+8GfSnYf+axzT0T//9/DVFvJbABQJuqBegecnqAnK6OrkLXiAgpxegecnqAnK6OrkLXiAgpxegzX2JE/55Ut8REZ+MiK+b9/TZz/pcRPx4RPzU7Fd4IoHrBNxQr/Pz6nUE5HQdZ1e5TkBOr/Pz6nUE5HQdZ1e5TkBOr/M7+WoD/3ncv3oz7J9/5uXPmIb+77785V5JYLaAG+psKk/cUEBON8R36dkCcjqbyhM3FJDTDfFderaAnM6mWv5EA/9xs6+KiL8REV9zhvVfR8T/d/Pfr978z+kl/05E/K6b/zn977/5TJ1/GBHfFBH/aHkbvYLAbAE31NlUnrihgJxuiO/SswXkdDaVJ24oIKcb4rv0bAE5nU21/IkG/sNmn4iIz5zh/LsR8bM3/00fynfqMX2o3+M3//3BM8/9zoj4ieWt9AoCswTcUGcxedLGAnK6cQNcfpaAnM5i8qSNBeR04wa4/CwBOZ3FdNmTDPwfdPtjEfHZE5w/GRE/ExG/eBl5fENEfEtEfPzE6x+LiFcvrO9lBE4JuKHKRwsCctpCl6xRTmWgBQE5baFL1iinhRkw8L8f93dExD874f0DEfHDSf34MxHxV07U+p0R8WtJ11KGwHsCbqiy0IKAnLbQJWuUUxloQUBOW+iSNcppYQYM/O/H/Z8j4g8d8X4yIl5O7sW3R8T9IzX/TkT8J8nXU46AG6oMtCAgpy10yRrlVAZaEJDTFrpkjXJamAED/xdxn4+IP3fE+ssi4leK+vDhiPjlI7X/fEQ8W3RdZccUcEMds++t7VpOW+vYmOuV0zH73tqu5bS1jo25Xjkt7LuB/13cJ06c3n9JRLxT2IOp9EMR8faRa0zfBfBK8fWVH0fADXWcXre8UzltuXvjrF1Ox+l1yzuV05a7N87a5bSw1wb+d3F/KSK+7oDz9GfTp/Gv8Zg+vf9zBy40/dnXr7EA1xhCwA11iDY3v0k5bb6FQ2xATodoc/OblNPmWzjEBuS0sM0G/ohvjIi/dcD4u2b8ar7s1ky/ku+vHSj6RyPi57Mvpt6QAm6oQ7a9uU3LaXMtG3LBcjpk25vbtJw217IhFyynhW038L/77fLfdsd4+tV7nyh0P1X6Jw78yr6fvvmxg42W5LIdCbihdtTMjrcipx03t6OtyWlHzex4K3LacXM72pqcFjZz9IH/kYj4+wd8/3BE/GKh+6nS3xARf/vAE35/RLyx0Zpcth8BN9R+etnzTuS05+72szc57aeXPe9ETnvubj97k9PCXo4+8P+liPjBO77Tz+wf+nn+wjZ8oPT0c/vTz/TffvzliPizay7CtboUcEPtsq3dbUpOu2tplxuS0y7b2t2m5LS7lna5ITktbOvoA//fi4j/4I7v90bEjxaazyn9PRHxI3ee+L9HxB+Y82LPIXBCwA1VPFoQkNMWumSNcioDLQjIaQtdskY5LczA6AP/g4iYfu3ee49/ExG/JyKmP9/y8aUR8U8j4jfdWsT0a/umP/cgcI2AG+o1el67loCcriXtOtcIyOk1el67loCcriXtOtcIyOk1emdeO/LA/1BETEP07ccvR8SXF3ovKf1PIuLL7rxg+uLEO0uKeC6BOwJuqCLRgoCcttAla5RTGWhBQE5b6JI1ymlhBkYe+P/9iJi+Tf7243+NiI8Wei8p/VpE/Ed3XjD9+MH/saSI5xIw8MtAgwL+4W+waQMuWU4HbHqDW5bTBps24JLltLDpIw/8H4uI//6O7fR/f3Oh95LS/11E/Bd3XjD93z+3pIjnEjDwy0CDAv7hb7BpAy5ZTgdseoNbltMGmzbgkuW0sOkjD/zfFxH/1R3b6f9+utB7SemXIuL777xg+r//6yVFPJeAgV8GGhTwD3+DTRtwyXI6YNMb3LKcNti0AZcsp4VNH3ng/y8PDM/TkP1MofeS0i8e+OLD9EWK/2ZJEc8lQIAAAQIECBAgQIAAgTEFRh74vyki/oc7bf/ZiPiWnUThZyLi8Ttr+c8j4m/sZH2WQYAAAQIECBAgQIAAAQI7Fhh54P93I+L/vNObX4qI/3gn/fpfIuLr76zl34uI/2sn67MMAgQIECBAgAABAgQIENixwMgD/28/8Cvu/t+I+Mqd9OvNiPiKO2uZfpXgP9/J+iyDAAECBAgQIECAAAECBHYsMPLAP7XlrYj40lv9+dcR8aGIeLBxz6Y1fT4ifvOtdUxrenjjdbk8AQIECBAgQIAAAQIECDQiMPrA/79FxB+406vvjYgf3bh/3xMRP3JnDX8vIv7Djdfl8gQIECBAgAABAgQIECDQiMDoA/9fiogfvNOrvxsRX7dx/z4XEX/wzhr+ckT82Y3X5fIECBAgQIAAAQIECBAg0IjA6AP/IxHx9w/06g9HxC9u1MNviIi/feDavz8i3thoTS5LgAABAgQIECBAgAABAo0JjD7wT+16JSK+7U7ffjIiPrFRL38iIj5+59o/HRFPbLQelyVAgAABAgQIECBAgACBBgUM/BHfGBF/60DvfiAifnjlnv6ZiPgrB675RyPi51dei8sRIECAAAECBAgQIECAQMMCBv53m/dLR35u/8mIeHml/n57RNw/cK3p5/m/fqU1uAwBAgQIECBAgAABAgQIdCJg4H+3kd8REdO38R96fFlE/Epxvz8cEb985BrTt/f/VPH1lSdAgAABAgQIECBAgACBzgQM/F9s6F+NiE8e6e+XRMQ7Rb1/KCLePlL7xyPiu4uuqywBAgQIECBAgAABAgQIdCxg4H9/c//viPiaI/2eflXf9Cv7Mh/Tr96bvmX/0OMfRsTXZl5MLQIECBAgQIAAAQIECBAYR8DA//5ef1VE/D8n2v9dEfGZpHh8Z0T8tRO1vjoi/lHStZQhQIAAAQIECBAgQIAAgcEEDPwfbPj06/hODfXTz/r/TET84oVZ+YaI+JYDv3rvdrnpiwHTr+fzIECAAAECBAgQIECAAAECFwkY+A+z/bGI+OwZ0enb+3/25r8HZ577pRHx+M1/07fxn3o8FhGvXtRNLyJAgAABAgQIECBAgAABAjcCBv7jUfgdEfHfRsQfOpOWfxMRvxoR/+zmf37+5vkfiojfFRG/8+Z//qYzdf5ORHxrRPyadBIgQIAAAQIECBAgQIAAgWsFDPznBZ+PiD93/mlXPePPR8SzV1XwYgIECBAgQIAAAQIECBAgcEvAwD8vDk9ExKciYvqk/szH9An9PxYRr2QWVYsAAQIECBAgQIAAAQIECBj4l2XgGyPi227+W/bK9z/7pyNi+u/nrynitQQIECBAgAABAgQIECBA4JiAgf+ybDxyM/T/ZxHx4Yj4kjNl3o6IX4mI//Fm0H/jsst6FQECBAgQIECAAAECBAgQmCdg4J/ndO5ZD90M/tPwP31Y3/SYPrxvGvKn/945V8DfEyBAgAABAgQIECBAgACBTAEDf6amWgQIECBAgAABAgQIECBAYCcCBv6dNMIyCBAgQIAAAQIECBAgQIBApoCBP1NTLQIECBAgQIAAAQIECBAgsBMBA/9OGmEZBAgQIECAAAECBAgQIEAgU8DAn6mpFgECBAgQIECAAAECBAgQ2ImAgX8njbAMAgQIECBAgAABAgQIECCQKWDgz9RUiwABAgQIECBAgAABAgQI7ETAwL+TRlgGAQIECBAgQIAAAQIECBDIFDDwZ2qqRYAAAQIECBAgQIAAAQIEdiJg4N9JIyyDAAECBAgQIECAAAECBAhkChj4MzXVIkCAAAECBAgQIECAAAECOxEw8O+kEZZBgAABAgQIECBAgAABAgQyBQz8mZpqESBAgAABAgQIECBAgACBnQgY+HfSCMsgQIAAAQIECBAgQIAAAQKZAgb+TE21CBAgQIAAAQIECBAgQIDATgQM/DtphGUQIECAAAECBAgQIECAAIFMAQN/pqZaBAgQIECAAAECBAgQIEBgJwIG/p00wjIIECBAgAABAgQIECBAgECmgIE/U1MtAgQIECBAgAABAgQIECCwEwED/04aYRkECBAgQIAAAQIECBAgQCBTwMCfqakWAQIECBAgQIAAAQIECBDYiYCBfyeNsAwCBAgQIECAAAECBAgQIJApYODP1FSLAAECBAgQIECAAAECBAjsRMDAv5NGWAYBAgQIECBAgAABAgQIEMgUMPBnaqpFgAABAgQIECBAgAABAgR2ImDg30kjLIMAAQIECBAgQIAAAQIECGQKGPgzNdUiQIAAAQIECBAgQIAAAQI7ETDw76QRlkGAAAECBAgQIECAAAECBDIFDPyZmtvV+khE/IPtLu/KBGYJyOk+90g5AAAgAElEQVQsJk/aWEBON26Ay88SkNNZTJ5EgAABAgb+9jPwyYj4voi41/5W7KBjATntuLkdbU1OO2pmx1uR046ba2sECBDIFjDwZ4uuV28a8L8/Ir7z5pI/HBE/sN7lXYnALAE5ncXkSRsLyOnGDXD5WQJyOovJkwgQIEDgtoCBv808fPfNsP+1d5b/iYj4yTa3ZNUdCshph03tcEty2mFTO9ySnHbYVFsiQIDAGgIG/jWU864xfXX/6YiYBvtDj1+LiD8eEZ/Lu6RKBBYLyOliMi/YQEBON0B3ycUCcrqYzAsIECBA4LaAgb+dPPzJm1P9rzmx5L8eEY+3syUr7VBATjtsaodbktMOm9rhluS0w6baEgECBNYWMPCvLb78er8vIn4wIj5+4qX/NiL+RET83PLyXkEgRUBOUxgVKRaQ02Jg5VME5DSFURECBAgQmAQM/PvOwaduTvW/+sQyX4mIb9/3NqyucwE57bzBnWxPTjtpZOfbkNPOG2x7BAgQWFvAwL+2+LzrfUVEPBcRT514+r+6OdX/m/NKehaBdAE5TSdVsEBATgtQlUwXkNN0UgUJECBAYBIw8O8vB9NX96cP5vuqE0v7qTPf4r+/XVlRbwJy2ltH+9yPnPbZ1952Jae9ddR+CBAgsCMBA/9+mvG7I+IvRsSTJ5b0L29O9X9hP8u2ksEE5HSwhje6XTlttHGDLVtOB2u47RIgQGALAQP/FuofvOZ33Xww3+89sZwfj4jp9/B6ENhKQE63knfdJQJyukTLc7cSkNOt5F2XAAECgwkY+Ldt+MMR8WJEPHFiGf/i5u+d6m/bq5GvLqcjd7+dvctpO70aeaVyOnL37Z0AAQIbCBj4N0C/ueT0gXzTB/NNH9Rz7PFjEfGnZizx0ze1ZjzVUwgsEpDTRVyevJGAnG4E77KLBOR0EZcnEyBAgECGgIE/Q3FZjd8WET9y5lT/7Yj4jog4d6r/0ZvvEHj05mf/X162FM8mcFRAToWjBQE5baFL1iinMkCAAAECmwkY+Nel/9aI+AsR8eUnLvujEfG9M5Y1neo/e+t5DyLiXkRMXyzwIHCNgJxeo+e1awnI6VrSrnONgJxeo+e1BAgQIHC1gIH/asJZBX7rzan+x088+1cj4pMLT/XvlptO+E99yv+sxXrSsAJyOmzrm9q4nDbVrmEXK6fDtt7GCRAgsC8BA399P745Il6IiA+fuNSlp/qHSk4/I3i/fluu0JmAnHbW0E63I6edNrazbclpZw21HQIECLQsYOCv695vuTnVP/Wr9D4fEZ+68lT/vR28HhHPRMRrdVtSuUMBOe2wqR1uSU47bGqHW5LTDptqSwQIEGhdwMBf08Fviojp1P5DK53qP+9T+msa2XlVOe28wZ1sT047aWTn25DTzhtsewQIEGhVwMCf27nfeHOq/6dPlH0zIr7HqX4uvGqLBOR0EZcnbyQgpxvBu+wiATldxOXJBAgQILC2gIE/T/yP3Jzqf6VT/TxUldIF5DSdVMECATktQFUyXUBO00kVJECAAIFsAQN/nugPnfi2+n9886v2fuHM5T4aES9GxKMnnudn9fN6NmIlOR2x6+3tWU7b69mIK5bTEbtuzwQIEGhMwMCf17Bj//BnfgK/n9XP69eoleR01M63tW85batfo65WTkftfFv7PvWFqTV2Mv266OnXRnsQOCUgp4X5MPDn4R4K6qcjYvrzUw+n+nk9UOm8gJyeN/KM7QXkdPseWMF5ATk9b+QZ2wtsNUhNQ/7TEfH29gRW0ICAnBY2ycCfh3vJP/zTFwSePbOEOaf6D0XEO3lbUaljATntuLkdbU1OO2pmx1uR046b29HW1h6kpgF/GvSd6ncUohW2IqeFyAb+PNwl//BnnupP3yr1QkTc81XUvGZ2XElOO25uR1uT046a2fFW5LTj5na0tTUHKaf6HQVn5a3IaSG4gT8Pd+4//Fmn+g/ffMDfEzdbmG6y0/DvQeCUgJzKRwsCctpCl6xRTmWgBYE1Bimn+i0kYd9rlNPC/hj483DP/cOffar/UkRM38p/++GDUfL62WslOe21s33tS0776mevu5HTXjvb176qBymn+n3lZavdyGmhvIE/D/fUP/xVp/p3Vz99hXX61v4HedtSqTMBOe2soZ1uR047bWxn25LTzhra6XaqBimn+p0GZqNtyWkhvIE/D/dQUD8TER+JiEdPXOb1iHgmIl47s5Tp9P7Qqf7tl71yU+utvG2p1JmAnHbW0E63I6edNrazbclpZw3tdDsVg5RT/U7DsuG25LQQ38Cfh3tJUOd8Av/dn9U/tOLpE/qnT0S9n7cdlToVkNNOG9vZtuS0s4Z2uh057bSxnW3rkpweI3Cq31k4drQdOS1shoE/D3dJUJ3q57mrtExATpd5efY2AnK6jburLhOQ02Venr2NwJKcnlqhU/1t+jfKVeW0sNMG/jzcuUF1qp9nrtJyATldbuYV6wvI6frmrrhcQE6Xm3nF+gJzc3psZU711+/ZiFeU08KuG/jzcM8F1al+nrVKlwvI6eV2XrmegJyuZ+1KlwvI6eV2XrmewLmcnlqJU/31+jT6leS0MAEG/jzcU0F1qp/nrNJ1AnJ6nZ9XryMgp+s4u8p1AnJ6nZ9XryNwySDlVH+d3rjKFwXktDANBv483ENB/UJEPO4T+POQVbpaQE6vJlRgBQE5XQHZJa4WkNOrCRVYQWDpIOVUf4WmuMQHBOS0MBQG/jzcQ0H9dERMf37s4RP48/xVmicgp/OcPGtbATnd1t/V5wnI6Twnz9pWYO4g5VR/2z6NfnU5LUyAgT8Pd+k//E9GxEsR8dCJJbwSEc9ExFt5y1RpcAE5HTwAjWx/y5xOX6h9rhEny9xWQE639Xf1eQJzBimn+vMsPatOQE7rbMPAn4c79x9+p/p55iotF5DT5WZesb7AFjn9aES8GBGPRsT0BdnpDbAHgVMCciofLQicGqSc6rfQwTHWKKeFfTbw5+HO+YffqX6et0qXCcjpZW5eta7A2jmdTvWfvbXFBxFxLyKmN8MeBI4JyKlstCBwbJByqt9C98ZZ47U5nb5j+p1xuJbt1MC/zOvSr/Q71c9zVuk6gVNvUOX0OluvzhNYK6e3T/Xvrn56Mzx9kdaDwCUDf+b9VE5l8BqBQ/fTz0bEx64p6rUEkgWuyen0b/ULvlB/vCMG/ry0HnuD+qaf1c9DVulqATm9mlCBFQTWyOndU/1D23oqIu6vsF+XaFNATtvs22irnvOdKKOZ2O/+BC7J6d0vrPpC/ZG+GvjzAn8oqG9ExCMnLjF968nT3lDmNUGlswJyepbIE3YgUJnTU6el72399ZsPTH1tBxaWsF8BOd1vb6zsiwKXDFL8CKwtsDSnx35M2mfwHOicgT8vznM+XfL21XwCf569SvMF5HS+lWduJ1CV0zmn+s/7lP7tGt/YleW0sYYNutylg9SgTLa9scDcnJ77canps3emz+CZPovH40bAwJ8Xhbn/8DvVzzNXabmAnC4384r1BbJz6lR//R6OcEU5HaHL7e9x7iDV/k7toGWBOTn14ecXdtjAfyHcgZfN+YffqX6et0qXCcjpZW5eta5AZk6d6q/bu5GuJqcjdbvdvc4ZpNrdnZX3IrDWh/X24rVoHwb+RVwnn3zqH36n+nnOKl0nIKfX+Xn1OgIZOXWqv06vRr6KnI7c/Xb2buBvp1cjr3SND0Ed1tfAn9f6Y//wO9XPM1bpeoFrczqdlj53/TJUIHDRF1Dn3k+d6gvYGgIZ99NnzyzUZ0qs0cm+r2Hg77u/veyu8kNQezG6eB8G/ovpPvDCQ0F9NSIey7uESgSuFrg0p7dPS30C6tVtUOCMQEZOj13CJ/CLX5aAnGZJqlMpYOCv1FU7S2DOj0jdvtbcA4Cs9TVdx8Cf1z431DxLleoELsnp3dPS6ZNPp09AnT4J1YNAhUBGTg+ty2lpRbfGrSmn4/a+pZ1fktOW9metfQjMHfj9mPQF/TbwX4B25CVuqHmWKtUJLMnpqZ+BfjkippN+DwIVAlk5fW9tTvUruqSmnMpACwJLctrCfqyxT4E5A79T/Qt7b+C/EO7Ay9xQ8yxVqhOYm9M5PwP9VETcr1uqygMLZObUqf7AQSreupwWAyufIjA3pykXU4TAhQIZH4J64aX7f5mBP6/Hbqh5lirVCZzLqU82r7NXeb6AnM638sztBOR0O3tXni9wLqfzK3kmgTqBaz8EtW5lHVQ28Oc10Q01z1KlOoFTOZ1zqu+0tK43Kn9RQE6loQUBOW2hS9bo/akMtCBw6YegtrC3zddo4M9rgRtqnqVKdQKHcvqZiPhIRDx64rJ+BrquJyp/UEBOpaIFATltoUvW6P2pDLQgIKeFXTLw5+EKap6lSnUCcz4U5e7VnerX9UPlwwJyKhktCMhpC12yRu9PZaAFATkt7JKBPw9XUPMsVaoTWPIG1al+XR9UPi0gpxLSgoCcttAla/T+VAZaEJDTwi4Z+PNwBTXPUqU6gblvUJ3q1/VA5fMCcnreyDO2F5DT7XtgBecFvD89b+QZ2wvIaWEPDPx5uIKaZ6lSncC5N6hO9evsVZ4vIKfzrTxzOwE53c7elecLeH8638oztxOQ00J7A38erqDmWapUJ3DqDapT/Tp3lZcJyOkyL8/eRuDanD4UEe9ss3RXHUjA+9OBmt3wVuW0sHkG/jxcQc2zVKlO4FBOvxARj0fEa3WXVZnAIgE5XcTlyRsJXJPTJyPihYi4FxFvb7R+lx1DwPvTMfrc+i7ltLCDBv48XEHNs1SpTkBO62xVzhOQ0zxLleoELsnpwxHxYkQ8cbOslyNiGv49CFQJXJLTqrWoS+CYgJwWZsPAn4crqHmWKtUJyGmdrcp5AnKaZ6lSncDSnE6D/UsRMX0r/+3H9OfT4O9BoEJgaU4r1qAmgXMCcnpO6Iq/N/BfgXfnpYKaZ6lSnYCc1tmqnCcgp3mWKtUJzM3p3VP9uyuavqV/+tb+B3VLVXlggbk5HZjI1ncgIKeFTTDw5+EKap6lSnUCclpnq3KegJzmWapUJzAnp8dO9W+v6pWIeCYi3qpbqsoDC8zJ6cA8tr4TATktbISBPw9XUPMsVaoTkNM6W5XzBOQ0z1KlOoFTOT13qj+tavqE/qcj4n7dElUmEO6nQtCCgJwWdsnAn4crqHmWKtUJyGmdrcp5AnKaZ6lSncCxnL555Gf1b6/EqX5dX1R+v4D7qUS0ICCnhV0y8OfhCmqepUp1AnJaZ6tynoCc5lmqVCdwKKdvRMQjJy7pVL+uHyofFnA/lYwWBOS0sEsG/jxcQc2zVKlOQE7rbFXOE5DTPEuV6gQO5fTU1Zzq1/VC5eMC7qfS0YKAnBZ2ycCfhyuoeZYq1QnIaZ2tynkCcppnqVKdwNyB36l+XQ9UPi/gfnreyDO2F5DTwh4Y+PNwBTXPUqU6ATmts1U5T0BO8yxVqhOYM/A71a/zV3megPvpPCfP2lZATgv9Dfx5uIKaZ6lSnYCc1tmqnCcgp3mWKtUJnBr4nerXuau8TMD9dJmXZ28jIKeF7gb+PFxBzbNUqU5ATutsVc4TkNM8S5XqBI4N/E7168xVXi7gfrrczCvWF5DTQnMDfx6uoOZZqlQnIKd1tirnCchpnqVKdQKHcvpqRDxWd0mVCSwWcD9dTOYFGwjIaSG6gT8PV1DzLFWqE5DTOluV8wTkNM9SpToBOa2zVTlPQE7zLFWqE5DTOtsw8OfhCmqepUp1AnJaZ6tynoCc5lmqVCcgp3W2KucJyGmepUp1AnJaZ2vgT7QV1ERMpcoE5LSMVuFEATlNxFSqTEBOy2gVThSQ00RMpcoE5LSMNgz8ibaCmoipVJmAnJbRKpwoIKeJmEqVCchpGa3CiQJymoipVJmAnJbRGvgzaQU1U1OtKgE5rZJVN1NATjM11aoSkNMqWXUzBeQ0U1OtKgE5rZINA38mraBmaqpVJSCnVbLqZgrIaaamWlUCclolq26mgJxmaqpVJSCnVbIG/lRZQU3lVKxIQE6LYJVNFZDTVE7FigTktAhW2VQBOU3lVKxIQE6LYKeyPqU/D1dQ8yxVqhOQ0zpblfME5DTPUqU6ATmts1U5T0BO8yxVqhOQ0zpbA3+iraAmYipVJiCnZbQKJwrIaSKmUmUCclpGq3CigJwmYipVJiCnZbRO+DNpBTVTU60qATmtklU3U0BOMzXVqhKQ0ypZdTMF5DRTU60qATmtkvUt/amygprKqViRgJwWwSqbKiCnqZyKFQnIaRGssqkCcprKqViRgJwWwU5l/Qx/Hq6g5lmqVCcgp3W2KucJyGmepUp1AnJaZ6tynoCc5lmqVCcgp3W2Bv5EW0FNxFSqTEBOy2gVThSQ00RMpcoE5LSMVuFEATlNxFSqTEBOy2id8GfSCmqmplpVAnJaJatupoCcZmqqVSUgp1Wy6mYKyGmmplpVAnJaJetb+lNlBTWVU7EiATktglU2VUBOUzkVKxKQ0yJYZVMF5DSVU7EiATktgp3K+hn+PFxBzbNUqU5ATutsVc4TkNM8S5XqBOS0zlblPAE5zbNUqU5ATutsDfyJtoKaiKlUmYCcltEqnCggp4mYSpUJyGkZrcKJAnKaiKlUmYCcltE64c+kFdRMTbWqBOS0SlbdTAE5zdRUq0pATqtk1c0UkNNMTbWqBOS0Sta39KfKCmoqp2JFAnJaBKtsqoCcpnIqViQgp0WwyqYKyGkqp2JFAnJaBDuV9TP8ebiCmmepUp2AnNbZqpwnIKd5lirVCchpna3KeQJymmepUp2AnNbZGvgTbQU1EVOpMgE5LaNVOFFAThMxlSoTkNMyWoUTBeQ0EVOpMgE5LaN1wp9JK6iZmmpVCchplay6mQJymqmpVpWAnFbJqpspIKeZmmpVCchplaxv6U+VFdRUTsWKBOS0CFbZVAE5TeVUrEhATotglU0VkNNUTsWKBOS0CHYq62f483AFNc9SpToBOa2zVTlPQE7zLFWqE5DTOluV8wTkNM9SpToBOa2zNfAn2gpqIqZSZQJyWkarcKKAnCZiKlUmIKdltAonCshpIqZSZQJyWkbrhD+TVlAzNdWqEpDTKll1MwXkNFNTrSoBOa2SVTdTQE4zNdWqEpDTKlnf0p8qK6ipnIoVCchpEayyqQJymsqpWJGAnBbBKpsqIKepnIoVCchpEexU1s/w5+EKap6lSnUCclpnq3KegJzmWapUJyCndbYq5wnIaZ6lSnUCclpna+BPtBXUREylygTktIxW4UQBOU3EVKpMQE7LaBVOFJDTREylygTktIzWCX8mraBmaqpVJSCnVbLqZgrIaaamWlUCclolq26mgJxmaqpVJSCnVbK+pT9VVlBTORUrEpDTIlhlUwXkNJVTsSIBOS2CVTZVQE5TORUrEpDTItiprJ/hz8MV1DxLleoE5LTOVuU8ATnNs1SpTkBO62xVzhOQ0zxLleoE5LTO1sCfaCuoiZhKlQnIaRmtwokCcpqIqVSZgJyW0SqcKCCniZhKlQnIaRmtE/5MWkHN1FSrSkBOq2TVzRSQ00xNtaoE5LRKVt1MATnN1FSrSkBOq2R9S3+qrKCmcipWJCCnRbDKpgrIaSqnYkUCcloEq2yqgJymcipWJCCnRbBTWT/Dn4crqHmWKtUJyGmdrcp5AnKaZ6lSnYCc1tmqnCcgp3mWKtUJyGmdrYE/0VZQEzGVKhOQ0zJahRMF5DQRU6kyATkto1U4UUBOEzGVKhOQ0zJaJ/yZtIKaqalWlYCcVsmqmykgp5maalUJyGmVrLqZAnKaqalWlYCcVsn6lv5UWUFN5VSsSEBOi2CVTRWQ01ROxYoE5LQIVtlUATlN5VSsSEBOi2Cnsn6GPw9XUPMsVaoTkNM6W5XzBOQ0z1KlOgE5rbNVOU9ATvMsVaoTkNM6WwN/oq2gJmIqVSYgp2W0CicKyGkiplJlAnJaRqtwooCcJmIqVSYgp2W0TvgzaQU1U1OtKgE5rZJVN1NATjM11aoSkNMqWXUzBeQ0U1OtKgE5rZL1Lf2psoKayqlYkYCcFsEqmyogp6mcihUJyGkRrLKpAnKayqlYkYCcFsFOZf0Mfx6uoOZZqlQnIKd1tirnCchpnqVKdQJyWmercp6AnOZZqlQnIKd1tgb+QlulCRAgQIAAAQIECBAgQIDAZgJO+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYOCvs1WZAAECBAgQIECAAAECBAhsJmDg34zehQkQIECAAAECBAgQIECAQJ2Agb/OVmUCBAgQIECAAAECBAgQILCZgIF/M3oXJkCAAAECBAgQIECAAAECdQIG/jpblQkQIECAAAECBAgQIECAwGYCBv7N6F2YAAECBAgQIECAAAECBAjUCRj462xVJkCAAAECBAgQIECAAAECmwkY+Dejd2ECBAgQIECAAAECBAgQIFAnYODPs/2hiHgur9ziSk9GxMuLX+UFownI6Wgdb3O/ctpm30ZbtZyO1vE29yunbfZttFXLaWHHDfx5uFsFdRryn46It/O2olLHAnLacXM72pqcdtTMjrcipx03t6OtyWlHzex4K3Ja2FwDfx7u2kGdBvxp0Heqn9fDESrJ6Qhdbn+Pctp+D0fYgZyO0OX29yin7fdwhB3IaWGXDfx5uGsG1al+Xt9GqySno3W8zf3KaZt9G23Vcjpax9vcr5y22bfRVi2nhR038OfhrhFUp/p5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AQIECBBIEDDwJyAa+PMQVSoXODRInbqoU/3ylrjAAQEDv1gQIECAAAECBBIEDPwJiAb+PESVygXmDvxO9ctb4QInBAz84kGAAAECBAgQSBAw8CcgGvjzEFUqF5gz8DvVL2+DC5wRMPCLCAECBAgQIEAgQcDAn4Bo4M9DVKlc4NTA71S/nN8FZgoY+GdCeRoBAgQIECBA4JSAgT8vH96g5lmqVCdwbOB3ql9nrvJyAffT5WZeQYAAAQIECBD4gICBPy8U3qDmWapUJ3Aop69GxGN1l1SZwGIB99PFZF5AgAABAgQIEPiggIE/LxXeoOZZqlQnIKd1tirnCchpnqVKBAgQIECAwMACBv685nuDmmepUp2AnNbZqpwnIKd5lioRIECAAAECAwsY+POa7w1qnqVKdQJyWmercp6AnOZZqkSAAAECBAgMLGDgz2u+N6h5lirVCchpna3KeQJymmepEgECBAgQIDCwgIE/r/neoOZZqlQnIKd1tirnCchpnqVKBAgQIECAwMACBv685nuDmmepUp2AnNbZqpwnIKd5lioRIECAAAECAwsY+POa7w1qnqVKdQJyWmercp6AnOZZqkSAAAECBAgMLGDgz2u+N6h5lirVCchpna3KeQJymmepEgECBAgQIDCwgIE/r/neoOZZqlQnIKd1tirnCchpnqVKBAgQIECAwMACBv685nuDmmepUp2AnNbZqpwnIKd5lioRIECAAAECAwsY+POa7w1qnqVKdQJyWmercp6AnOZZqkSAAAECBAgMLGDgz2u+N6h5lirVCchpna3KeQJymmepEgECBAgQIDCwgIE/r/neoOZZqlQnIKd1tirnCchpnqVKBAgQIECAwMACBv685nuDmmepUp2AnNbZqpwnIKd5lioRIECAAAECAwsY+Aduvq0TIECAAAECBAgQIECAQL8CBv5+e2tnBAgQIECAAAECBAgQIDCwgIF/4ObbOgECBAgQIECAAAECBAj0K2Dg77e3dkaAAAECBAgQIECAAAECAwsY+Aduvq0TIECAAAECBAgQIECAQL8CBv5+e2tnBAgQIECAAAECBAgQIDCwgIF/4ObbOgECBAgQIECAAAECBAj0K2Dg77e3dkaAAAECBAgQIECAAAECAwsY+Aduvq0TIECAAAECBAgQIECAQL8CBv5+e2tnBAgQIECAAAECBAgQIDCwgIF/4ObbOgECBAgQIECAAAECBAj0K2Dg77e3dkaAAAECBAgQIECAAAECAwsY+Aduvq0TIECAAAECBAgQIECAQL8CBv5+e2tnBAgQIECAAAECBAgQIDCwgIF/4ObbOgECBAgQIECAAAECBAj0K2Dg77e3dkaAAAECBAgQIECAAAECAwsY+Aduvq0TIECAAAECBAgQIECAQL8CBv5+e2tnBAgQIECAAAECBAgQIDCwgIF/4ObbOgECBAgQIECAAAECBAj0K2Dg77e3dkaAAAECBAgQIECAAAECAwsY+Aduvq0TIECAAAECBAgQIECAQL8CBv5+e2tnBAgQIECAAAECBAgQIDCwgIF/4ObbOgECBAgQIECAAAECBAj0K2Dg77e3dkaAAAECBAgQIECAAAECAwsY+Aduvq0TIECAAAECBAgQIECAQL8CBv5+e2tnBAgQIECAAAECBAgQIPD/t1/HBAAAAAjC+re2hyyC8yIsIPjD55tOgAABAgQIECBAgAABAr8Cgv/3W8sIECBAgAABAgQIECBAICwg+MPnm06AAAECBAgQIECAAAECvwKC//dbywgQIECAAAECBAgQIEAgLCD4w+ebToAAAQIECBAgQIAAAQK/AoL/91vLCBAgQIAAAQIECBAgQCAsIPjD55tOgAABAgQIECBAgAABAr8Cgv/3W8sIECBAgAABAgQIECBAICwg+MPnm06AAAECBAgQIECAAAECvwKC//dbywgQIECAAAECBAgQIEAgLCD4w+ebToAAAQIECBAgQIAAAQK/AgOYR34g/YMI8gAAAABJRU5ErkJggg==", iconMapping: { 0: { x: 0, y: 0, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 1: { x: 170, y: 0, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 2: { x: 340, y: 0, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 3: { x: 510, y: 0, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 4: { x: 680, y: 0, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 5: { x: 850, y: 0, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 6: { x: 0, y: 170, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 7: { x: 170, y: 170, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 8: { x: 340, y: 170, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 9: { x: 510, y: 170, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 10: { x: 680, y: 170, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 11: { x: 850, y: 170, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 12: { x: 0, y: 340, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 13: { x: 170, y: 340, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 14: { x: 340, y: 340, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 15: { x: 510, y: 340, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 16: { x: 680, y: 340, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 17: { x: 850, y: 340, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 18: { x: 0, y: 510, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 19: { x: 170, y: 510, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 }, 20: { x: 340, y: 510, width: 170, height: 170, anchorX: 85, anchorY: 133, mask: !0 } }, iconBounds: [0, 51.444] }]]), it = { image: { type: "object", value: null }, image2: { type: "object", value: null }, imageSmoothing: { type: "number", value: 0 }, imageInterpolation: { type: "object", value: Ze.CUBIC }, imageWeight: { type: "number", value: 0 }, imageType: { type: "object", value: xe.SCALAR }, imageUnscale: { type: "array", value: null }, imageMinValue: { type: "object", value: null }, imageMaxValue: { type: "object", value: null }, bounds: { type: "array", value: [-180, -90, 180, 90], compare: !0 }, minZoom: { type: "object", value: null }, maxZoom: { type: "object", value: null }, style: { type: "object", value: ss.VALUE }, density: { type: "number", value: 0 }, unitFormat: { type: "object", value: null }, textFormatFunction: { type: "function", value: ll }, textFontFamily: { type: "object", value: Cs }, textSize: { type: "number", value: 12 }, textColor: { type: "color", value: Es }, textOutlineWidth: { type: "number", value: 1 }, textOutlineColor: { type: "color", value: ks }, iconBounds: { type: "array", value: null }, iconSize: { type: "object", value: 40 }, iconColor: { type: "color", value: oh }, palette: { type: "object", value: null } };
11130
11112
  class Hn extends je {
11131
11113
  renderLayers() {
11132
- const { viewport: e } = this.context, { props: t, visiblePoints: n } = this.state;
11114
+ const { viewport: e } = this.context, { props: t, points: n } = this.state;
11133
11115
  if (!t || !n) return [];
11134
11116
  const { style: r, unitFormat: s, textFormatFunction: o, textFontFamily: i, textSize: l, textColor: u, textOutlineWidth: c, textOutlineColor: f, iconSize: h, iconColor: p } = he(t, it), { paletteScale: v } = this.state;
11135
11117
  if (Ni.has(r)) {
11136
11118
  const { iconStyle: I, iconAtlasTexture: y } = this.state;
11137
11119
  if (!I || !y) return [];
11138
- const T = Object.keys(I.iconMapping).length, L = t.iconBounds ?? I.iconBounds ?? [0, 0], E = L[1] - L[0], C = (M) => (M - L[0]) / E, Q = Array.isArray(h) ? h[1] - h[0] : 0;
11139
- return [new Ki(this.getSubLayerProps({ id: "icon", data: n, getPosition: (M) => M.geometry.coordinates, getIcon: (M) => `${Math.min(Math.max(Math.floor(C(M.properties.value) * T), 0), T - 1)}`, getSize: (M) => Array.isArray(h) ? h[0] + C(M.properties.value) * Q : h, getColor: (M) => v ? Wn(v(M.properties.value).rgba()) : p, getAngle: (M) => Ye(e, M.properties.direction ? 360 - M.properties.direction : 0), iconAtlas: y, iconMapping: I.iconMapping, sizeBasis: "height", billboard: !1, parameters: { cullMode: "front", depthCompare: "always", ...this.props.parameters } }))];
11120
+ const T = Object.keys(I.iconMapping).length, L = t.iconBounds ?? I.iconBounds ?? [0, 0], E = L[1] - L[0], C = (M) => (M - L[0]) / E, O = Array.isArray(h) ? h[1] - h[0] : 0;
11121
+ return [new Ki(this.getSubLayerProps({ id: "icon", data: n, getPosition: (M) => M.geometry.coordinates, getIcon: (M) => `${Math.min(Math.max(Math.floor(C(M.properties.value) * T), 0), T - 1)}`, getSize: (M) => Array.isArray(h) ? h[0] + C(M.properties.value) * O : h, getColor: (M) => v ? Wn(v(M.properties.value).rgba()) : p, getAngle: (M) => Ye(e, M.properties.direction ? 360 - M.properties.direction : 0), iconAtlas: y, iconMapping: I.iconMapping, sizeBasis: "height", billboard: !1, parameters: { cullMode: "front", depthCompare: "always", ...this.props.parameters } }))];
11140
11122
  }
11141
11123
  return [new In(this.getSubLayerProps({ id: "text", data: n, getPosition: (I) => I.geometry.coordinates, getText: (I) => o(I.properties.value, s), getSize: l, getColor: (I) => v ? Wn(v(I.properties.value).rgba()) : u, getAngle: Ye(e, 0), outlineWidth: c, outlineColor: f, fontFamily: i, fontSettings: { sdf: !0 }, billboard: !1, parameters: { cullMode: "front", depthCompare: "always", ...this.props.parameters } }))];
11142
11124
  }
11125
+ filterSubLayer(e) {
11126
+ const { viewport: t } = e, { minZoom: n, maxZoom: r } = he(this.props, it);
11127
+ return Bt(t, n, r);
11128
+ }
11143
11129
  shouldUpdateState(e) {
11144
11130
  return super.shouldUpdateState(e) || e.changeFlags.viewportChanged;
11145
11131
  }
11146
11132
  updateState(e) {
11147
- const { image: t, image2: n, imageSmoothing: r, imageInterpolation: s, imageWeight: o, imageType: i, imageUnscale: l, imageMinValue: u, imageMaxValue: c, minZoom: f, maxZoom: h, style: p, density: v, unitFormat: I, textFormatFunction: y, textFontFamily: T, textSize: L, textColor: E, textOutlineWidth: C, textOutlineColor: Q, iconSize: M, iconColor: Z, palette: z, visible: N } = e.props;
11148
- super.updateState(e), N ? (this.state.iconStyle && p === e.oldProps.style || this._updateIconStyle(), (v !== e.oldProps.density || e.changeFlags.viewportChanged) && this._updatePositions(), t === e.oldProps.image && n === e.oldProps.image2 && r === e.oldProps.imageSmoothing && s === e.oldProps.imageInterpolation && o === e.oldProps.imageWeight && i === e.oldProps.imageType && l === e.oldProps.imageUnscale && u === e.oldProps.imageMinValue && c === e.oldProps.imageMaxValue && N === e.oldProps.visible || this._updateFeatures(), (f !== e.oldProps.minZoom || h !== e.oldProps.maxZoom || e.changeFlags.viewportChanged) && this._updateVisibleFeatures(), z !== e.oldProps.palette && this._updatePalette(), I === e.oldProps.unitFormat && y === e.oldProps.textFormatFunction && T === e.oldProps.textFontFamily && L === e.oldProps.textSize && E === e.oldProps.textColor && C === e.oldProps.textOutlineWidth && Q === e.oldProps.textOutlineColor && M === e.oldProps.iconSize && Z === e.oldProps.iconColor || this._redrawVisibleFeatures(), this.setState({ props: e.props })) : this.setState({ points: void 0, visiblePoints: void 0 });
11133
+ const { image: t, image2: n, imageSmoothing: r, imageInterpolation: s, imageWeight: o, imageType: i, imageUnscale: l, imageMinValue: u, imageMaxValue: c, style: f, density: h, unitFormat: p, textFormatFunction: v, textFontFamily: I, textSize: y, textColor: T, textOutlineWidth: L, textOutlineColor: E, iconSize: C, iconColor: O, palette: M, visible: H } = e.props;
11134
+ super.updateState(e), H ? (this.state.iconStyle && f === e.oldProps.style || this._updateIconStyle(), (h !== e.oldProps.density || e.changeFlags.viewportChanged) && this._updatePositions(), t === e.oldProps.image && n === e.oldProps.image2 && r === e.oldProps.imageSmoothing && s === e.oldProps.imageInterpolation && o === e.oldProps.imageWeight && i === e.oldProps.imageType && l === e.oldProps.imageUnscale && u === e.oldProps.imageMinValue && c === e.oldProps.imageMaxValue && H === e.oldProps.visible || this._updateFeatures(), M !== e.oldProps.palette && this._updatePalette(), p === e.oldProps.unitFormat && v === e.oldProps.textFormatFunction && I === e.oldProps.textFontFamily && y === e.oldProps.textSize && T === e.oldProps.textColor && L === e.oldProps.textOutlineWidth && E === e.oldProps.textOutlineColor && C === e.oldProps.iconSize && O === e.oldProps.iconColor || this._redrawVisibleFeatures(), this.setState({ props: e.props })) : this.setState({ points: void 0 });
11149
11135
  }
11150
11136
  async _updateIconStyle() {
11151
11137
  const { device: e } = this.context, { style: t } = he(this.props, it), n = Ni.get(t);
@@ -11162,13 +11148,7 @@ class Hn extends je {
11162
11148
  const { image: e, image2: t, imageSmoothing: n, imageInterpolation: r, imageWeight: s, imageType: o, imageUnscale: i, imageMinValue: l, imageMaxValue: u, bounds: c } = he(this.props, it), { positions: f } = this.state;
11163
11149
  if (!e || !f) return;
11164
11150
  const h = vh({ image: e, image2: t, imageSmoothing: n, imageInterpolation: r, imageWeight: s, imageType: o, imageUnscale: i, imageMinValue: l, imageMaxValue: u }, c, f).features.filter(((p) => !isNaN(p.properties.value)));
11165
- this.setState({ points: h }), this._updateVisibleFeatures();
11166
- }
11167
- _updateVisibleFeatures() {
11168
- const { viewport: e } = this.context, { minZoom: t, maxZoom: n } = he(this.props, it), { points: r } = this.state;
11169
- if (!r) return;
11170
- let s;
11171
- s = Bt(e, t, n) ? r : [], this.setState({ visiblePoints: s });
11151
+ this.setState({ points: h });
11172
11152
  }
11173
11153
  _updatePalette() {
11174
11154
  const { palette: e } = he(this.props, it);
@@ -11177,7 +11157,7 @@ class Hn extends je {
11177
11157
  this.setState({ paletteScale: t }), this._redrawVisibleFeatures();
11178
11158
  }
11179
11159
  _redrawVisibleFeatures() {
11180
- this.setState({ visiblePoints: Array.isArray(this.state.visiblePoints) ? Array.from(this.state.visiblePoints) : this.state.visiblePoints });
11160
+ this.setState({ points: Array.isArray(this.state.points) ? Array.from(this.state.points) : this.state.points });
11181
11161
  }
11182
11162
  }
11183
11163
  Hn.layerName = "GridCompositeLayer", Hn.defaultProps = it;
@@ -11246,16 +11226,16 @@ vec4 AG(sampler2D AH,vec2 AI,vec2 AJ,vec2 AK){vec2 uv=(AJ+AK+0.5)/AI;return text
11246
11226
  _runTransformFeedback() {
11247
11227
  const { initialized: e } = this.state;
11248
11228
  if (!e) return;
11249
- const { device: t, viewport: n, timeline: r } = this.context, { imageTexture: s, imageTexture2: o, imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p, bounds: v, color: I, numParticles: y, maxAge: T, speedFactor: L } = he(this.props, qt), { paletteTexture: E, paletteBounds: C, numAgedInstances: Q, sourcePositions: M, targetPositions: Z, sourceColors: z, targetColors: N, transform: G, previousViewportZoom: S, previousTime: q } = this.state;
11250
- if (!(s && typeof Q == "number" && M && Z && z && N && G)) return;
11229
+ const { device: t, viewport: n, timeline: r } = this.context, { imageTexture: s, imageTexture2: o, imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p, bounds: v, color: I, numParticles: y, maxAge: T, speedFactor: L } = he(this.props, qt), { paletteTexture: E, paletteBounds: C, numAgedInstances: O, sourcePositions: M, targetPositions: H, sourceColors: z, targetColors: U, transform: G, previousViewportZoom: S, previousTime: q } = this.state;
11230
+ if (!(s && typeof O == "number" && M && H && z && U && G)) return;
11251
11231
  const Y = r.getTime();
11252
11232
  if (typeof q == "number" && Y < q + 1e3 / 30) return;
11253
11233
  const j = We(n), se = We(n) ? Ts(n) : void 0, ne = We(n) ? dl(n) : void 0, ye = hl(n) ? pl(n) : void 0, Ge = 2 ** (4 * (typeof S == "number" ? S - Zt(n) : 0)), le = L / 2 ** (Zt(n) + 7);
11254
11234
  G.model.shaderInputs.setProps({ [Et.name]: { viewportGlobe: j, bounds: v, _imageCoordinateSystem: jn.LNGLAT }, [kt.name]: { imageTexture: s ?? Ie(t), imageTexture2: o ?? Ie(t), imageSmoothing: i, imageInterpolation: l, imageWeight: u, imageType: c, imageUnscale: f, imageMinValue: h, imageMaxValue: p }, [Tt.name]: { paletteTexture: E ?? Ie(t), paletteBounds: C, paletteColor: I }, [$i.name]: { viewportGlobe: j, viewportGlobeCenter: se, viewportGlobeRadius: ne, viewportBounds: ye, viewportZoomChangeFactor: Ge, numParticles: y, maxAge: T, speedFactor: le, time: Y, seed: Math.random() } }), G.run({ clearColor: !1, clearDepth: !1, clearStencil: !1, depthReadOnly: !0, stencilReadOnly: !0 });
11255
- const Oe = t.createCommandEncoder();
11256
- Oe.copyBufferToBuffer({ sourceBuffer: M, sourceOffset: 0, destinationBuffer: Z, destinationOffset: 4 * y * 3, size: 4 * Q * 3 }), Oe.copyBufferToBuffer({ sourceBuffer: z, sourceOffset: 0, destinationBuffer: N, destinationOffset: 4 * y * 4, size: 4 * Q * 4 });
11257
- const ht = Oe.finish();
11258
- t.submit(ht), Oe.destroy(), this._swapTransformFeedback(), this.state.previousViewportZoom = Zt(n), this.state.previousTime = Y;
11235
+ const Pe = t.createCommandEncoder();
11236
+ Pe.copyBufferToBuffer({ sourceBuffer: M, sourceOffset: 0, destinationBuffer: H, destinationOffset: 4 * y * 3, size: 4 * O * 3 }), Pe.copyBufferToBuffer({ sourceBuffer: z, sourceOffset: 0, destinationBuffer: U, destinationOffset: 4 * y * 4, size: 4 * O * 4 });
11237
+ const ht = Pe.finish();
11238
+ t.submit(ht), Pe.destroy(), this._swapTransformFeedback(), this.state.previousViewportZoom = Zt(n), this.state.previousTime = Y;
11259
11239
  }
11260
11240
  _swapTransformFeedback() {
11261
11241
  const { sourcePositions: e, targetPositions: t, sourceColors: n, targetColors: r, transform: s } = this.state;