@navaramap/worker 0.0.7 → 0.1.0
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.
- package/LICENSE +1 -1
- package/README.md +11 -1
- package/dist/index.js +152 -151
- package/dist/index.umd.cjs +3 -3
- package/package.json +3 -3
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
# @navaramap/worker
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The Web Worker infrastructure for Navara's web packages. It provides a worker pool and task manager that run heavy GIS processing (vector tile parsing, polygon/polyline geometry construction, terrain mesh construction and upsampling, image decoding) off the main thread using Navara's WASM worker module, transferring the results back as transferable buffers.
|
|
4
|
+
|
|
5
|
+
This is an internal building block: applications normally get background processing through [`@navaramap/three`](https://github.com/reearth/navara/tree/main/web/navara_three), which sets up the worker pool as part of `view.init()`, rather than using this package directly.
|
|
6
|
+
|
|
7
|
+
## Documentation
|
|
8
|
+
|
|
9
|
+
See https://navara-docs.reearth.workers.dev/ for the full Navara documentation.
|
|
10
|
+
|
|
11
|
+
## License
|
|
12
|
+
|
|
13
|
+
MIT OR Apache-2.0
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ var b = Object.create, x = Object.defineProperty, S = Object.getOwnPropertyDescr
|
|
|
7
7
|
enumerable: !(r = S(t, s)) || r.enumerable
|
|
8
8
|
});
|
|
9
9
|
return e;
|
|
10
|
-
}, te = (e, t, n) => (n = e == null ? {} : b(w(e)), ee(t || !e || !e.__esModule ? x(n, "default", {
|
|
10
|
+
}, te = (e, t, n) => (n = e == null ? {} : b(w(e)), ee(t || !e || !e.__esModule || !T.call(e, "default") ? x(n, "default", {
|
|
11
11
|
value: e,
|
|
12
12
|
enumerable: !0
|
|
13
13
|
}) : n, e)), ne = "Invariant failed";
|
|
@@ -185,7 +185,8 @@ var D = /* @__PURE__ */ E(((e, t) => {
|
|
|
185
185
|
if (!window.URL || typeof window.URL.createObjectURL != "function") throw Error("URL.createObjectURL not supported by the browser");
|
|
186
186
|
var e = new Blob([se()], { type: "text/javascript" });
|
|
187
187
|
return window.URL.createObjectURL(e);
|
|
188
|
-
}
|
|
188
|
+
}
|
|
189
|
+
return __dirname + "/worker.js";
|
|
189
190
|
}
|
|
190
191
|
function m(e, t) {
|
|
191
192
|
if (t.workerType === "web") return d(), h(e, t.workerOpts, Worker);
|
|
@@ -255,17 +256,19 @@ var D = /* @__PURE__ */ E(((e, t) => {
|
|
|
255
256
|
}), this.worker.on("stderr", function(e) {
|
|
256
257
|
b(n, { stderr: e.toString() });
|
|
257
258
|
}), this.worker.on("message", function(e) {
|
|
258
|
-
if (!n.terminated)
|
|
259
|
-
|
|
260
|
-
var t = e.id, r = n.processing[t];
|
|
261
|
-
if (r !== void 0) e.isEvent ? r.options && typeof r.options.on == "function" && r.options.on(e.payload) : (delete n.processing[t], n.terminating === !0 && n.terminate(), e.error ? r.resolver.reject(y(e.error)) : r.resolver.resolve(e.result));
|
|
259
|
+
if (!n.terminated) {
|
|
260
|
+
if (typeof e == "string" && e === "ready") n.worker.ready = !0, a();
|
|
262
261
|
else {
|
|
263
|
-
var r = n.
|
|
264
|
-
r !== void 0
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
262
|
+
var t = e.id, r = n.processing[t];
|
|
263
|
+
if (r !== void 0) e.isEvent ? r.options && typeof r.options.on == "function" && r.options.on(e.payload) : (delete n.processing[t], n.terminating === !0 && n.terminate(), e.error ? r.resolver.reject(y(e.error)) : r.resolver.resolve(e.result));
|
|
264
|
+
else {
|
|
265
|
+
var r = n.tracking[t];
|
|
266
|
+
r !== void 0 && e.isEvent && r.options && typeof r.options.on == "function" && r.options.on(e.payload);
|
|
267
|
+
}
|
|
268
|
+
if (e.method === l) {
|
|
269
|
+
var i = n.tracking[e.id];
|
|
270
|
+
i !== void 0 && (e.error ? (clearTimeout(i.timeoutId), i.resolver.reject(y(e.error))) : (n.tracking && clearTimeout(i.timeoutId), i.resolver.reject(new S(i.error)))), delete n.tracking[t];
|
|
271
|
+
}
|
|
269
272
|
}
|
|
270
273
|
}
|
|
271
274
|
});
|
|
@@ -340,20 +343,23 @@ var D = /* @__PURE__ */ E(((e, t) => {
|
|
|
340
343
|
if (n.terminated = !0, n.cleaning = !1, n.worker != null && n.worker.removeAllListeners && n.worker.removeAllListeners("message"), n.worker = null, n.terminating = !1, n.terminationHandler) n.terminationHandler(e, n);
|
|
341
344
|
else if (e) throw e;
|
|
342
345
|
};
|
|
343
|
-
if (this.worker)
|
|
344
|
-
if (this.worker.
|
|
345
|
-
|
|
346
|
+
if (this.worker) {
|
|
347
|
+
if (typeof this.worker.kill == "function") {
|
|
348
|
+
if (this.worker.killed) {
|
|
349
|
+
a(/* @__PURE__ */ Error("worker already killed!"));
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
var o = setTimeout(function() {
|
|
353
|
+
n.worker && n.worker.kill();
|
|
354
|
+
}, this.workerTerminateTimeout);
|
|
355
|
+
this.worker.once("exit", function() {
|
|
356
|
+
clearTimeout(o), n.worker && (n.worker.killed = !0), a();
|
|
357
|
+
}), this.worker.ready ? this.worker.send(c) : this.requestQueue.push({ message: c }), this.cleaning = !0;
|
|
346
358
|
return;
|
|
347
359
|
}
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
this.worker.once("exit", function() {
|
|
352
|
-
clearTimeout(o), n.worker && (n.worker.killed = !0), a();
|
|
353
|
-
}), this.worker.ready ? this.worker.send(c) : this.requestQueue.push({ message: c }), this.cleaning = !0;
|
|
354
|
-
return;
|
|
355
|
-
} else if (typeof this.worker.terminate == "function") this.worker.terminate(), this.worker.killed = !0;
|
|
356
|
-
else throw Error("Failed to terminate worker");
|
|
360
|
+
if (typeof this.worker.terminate == "function") this.worker.terminate(), this.worker.killed = !0;
|
|
361
|
+
else throw Error("Failed to terminate worker");
|
|
362
|
+
}
|
|
357
363
|
a();
|
|
358
364
|
}
|
|
359
365
|
}, x.prototype.terminateAndNotify = function(e, t) {
|
|
@@ -437,8 +443,9 @@ var D = /* @__PURE__ */ E(((e, t) => {
|
|
|
437
443
|
return i.promise.timeout = function(e) {
|
|
438
444
|
return s.contains(a) ? (a.timeout = e, i.promise) : o.call(i.promise, e);
|
|
439
445
|
}, this._next(), i.promise;
|
|
440
|
-
}
|
|
441
|
-
|
|
446
|
+
}
|
|
447
|
+
if (typeof e == "function") return this.exec("run", [String(e), t], r);
|
|
448
|
+
throw TypeError("Function or string expected as argument \"method\"");
|
|
442
449
|
}, c.prototype.proxy = function() {
|
|
443
450
|
if (arguments.length > 0) throw Error("No arguments expected");
|
|
444
451
|
var e = this;
|
|
@@ -2559,7 +2566,7 @@ function Xi(e) {
|
|
|
2559
2566
|
return this.tween(t, Yi(e));
|
|
2560
2567
|
}
|
|
2561
2568
|
function Zi() {
|
|
2562
|
-
for (var e = this._name, t = this._id, n =
|
|
2569
|
+
for (var e = this._name, t = this._id, n = ea(), r = this._groups, i = r.length, a = 0; a < i; ++a) for (var o = r[a], s = o.length, c, l = 0; l < s; ++l) if (c = o[l]) {
|
|
2563
2570
|
var u = q(c, t);
|
|
2564
2571
|
qr(c, e, n, l, o, {
|
|
2565
2572
|
time: u.time + u.delay + u.duration,
|
|
@@ -2586,14 +2593,11 @@ var $i = 0;
|
|
|
2586
2593
|
function J(e, t, n, r) {
|
|
2587
2594
|
this._groups = e, this._parents = t, this._name = n, this._id = r;
|
|
2588
2595
|
}
|
|
2589
|
-
function ea(
|
|
2590
|
-
return A().transition(e);
|
|
2591
|
-
}
|
|
2592
|
-
function ta() {
|
|
2596
|
+
function ea() {
|
|
2593
2597
|
return ++$i;
|
|
2594
2598
|
}
|
|
2595
2599
|
var Y = A.prototype;
|
|
2596
|
-
J.prototype =
|
|
2600
|
+
J.prototype = {
|
|
2597
2601
|
constructor: J,
|
|
2598
2602
|
select: Mi,
|
|
2599
2603
|
selectAll: Ni,
|
|
@@ -2625,28 +2629,28 @@ J.prototype = ea.prototype = {
|
|
|
2625
2629
|
end: Qi,
|
|
2626
2630
|
[Symbol.iterator]: Y[Symbol.iterator]
|
|
2627
2631
|
};
|
|
2628
|
-
function
|
|
2632
|
+
function ta(e) {
|
|
2629
2633
|
return ((e *= 2) <= 1 ? e * e * e : (e -= 2) * e * e + 2) / 2;
|
|
2630
2634
|
}
|
|
2631
|
-
var
|
|
2635
|
+
var na = {
|
|
2632
2636
|
time: null,
|
|
2633
2637
|
delay: 0,
|
|
2634
2638
|
duration: 250,
|
|
2635
|
-
ease:
|
|
2639
|
+
ease: ta
|
|
2636
2640
|
};
|
|
2637
|
-
function
|
|
2641
|
+
function ra(e, t) {
|
|
2638
2642
|
for (var n; !(n = e.__transition) || !(n = n[t]);) if (!(e = e.parentNode)) throw Error(`transition ${t} not found`);
|
|
2639
2643
|
return n;
|
|
2640
2644
|
}
|
|
2641
|
-
function
|
|
2645
|
+
function ia(e) {
|
|
2642
2646
|
var t, n;
|
|
2643
|
-
e instanceof J ? (t = e._id, e = e._name) : (t =
|
|
2644
|
-
for (var r = this._groups, i = r.length, a = 0; a < i; ++a) for (var o = r[a], s = o.length, c, l = 0; l < s; ++l) (c = o[l]) && qr(c, e, t, l, o, n ||
|
|
2647
|
+
e instanceof J ? (t = e._id, e = e._name) : (t = ea(), (n = na).time = Fr(), e = e == null ? null : e + "");
|
|
2648
|
+
for (var r = this._groups, i = r.length, a = 0; a < i; ++a) for (var o = r[a], s = o.length, c, l = 0; l < s; ++l) (c = o[l]) && qr(c, e, t, l, o, n || ra(c, t));
|
|
2645
2649
|
return new J(r, this._parents, e, t);
|
|
2646
2650
|
}
|
|
2647
|
-
A.prototype.interrupt = Zr, A.prototype.transition =
|
|
2648
|
-
var { abs:
|
|
2649
|
-
["w", "e"].map(
|
|
2651
|
+
A.prototype.interrupt = Zr, A.prototype.transition = ia;
|
|
2652
|
+
var { abs: aa, max: oa, min: sa } = Math;
|
|
2653
|
+
["w", "e"].map(ca), ["n", "s"].map(ca), [
|
|
2650
2654
|
"n",
|
|
2651
2655
|
"w",
|
|
2652
2656
|
"e",
|
|
@@ -2655,39 +2659,39 @@ var { abs: oa, max: sa, min: ca } = Math;
|
|
|
2655
2659
|
"ne",
|
|
2656
2660
|
"sw",
|
|
2657
2661
|
"se"
|
|
2658
|
-
].map(
|
|
2659
|
-
function
|
|
2662
|
+
].map(ca);
|
|
2663
|
+
function ca(e) {
|
|
2660
2664
|
return { type: e };
|
|
2661
2665
|
}
|
|
2662
|
-
function
|
|
2666
|
+
function la(e) {
|
|
2663
2667
|
return Math.abs(e = Math.round(e)) >= 1e21 ? e.toLocaleString("en").replace(/,/g, "") : e.toString(10);
|
|
2664
2668
|
}
|
|
2665
|
-
function
|
|
2669
|
+
function ua(e, t) {
|
|
2666
2670
|
if (!isFinite(e) || e === 0) return null;
|
|
2667
2671
|
var n = (e = t ? e.toExponential(t - 1) : e.toExponential()).indexOf("e"), r = e.slice(0, n);
|
|
2668
2672
|
return [r.length > 1 ? r[0] + r.slice(2) : r, +e.slice(n + 1)];
|
|
2669
2673
|
}
|
|
2670
|
-
function
|
|
2671
|
-
return e =
|
|
2674
|
+
function da(e) {
|
|
2675
|
+
return e = ua(Math.abs(e)), e ? e[1] : NaN;
|
|
2672
2676
|
}
|
|
2673
|
-
function
|
|
2677
|
+
function fa(e, t) {
|
|
2674
2678
|
return function(n, r) {
|
|
2675
2679
|
for (var i = n.length, a = [], o = 0, s = e[0], c = 0; i > 0 && s > 0 && (c + s + 1 > r && (s = Math.max(1, r - c)), a.push(n.substring(i -= s, i + s)), !((c += s + 1) > r));) s = e[o = (o + 1) % e.length];
|
|
2676
2680
|
return a.reverse().join(t);
|
|
2677
2681
|
};
|
|
2678
2682
|
}
|
|
2679
|
-
function
|
|
2683
|
+
function pa(e) {
|
|
2680
2684
|
return function(t) {
|
|
2681
2685
|
return t.replace(/[0-9]/g, function(t) {
|
|
2682
2686
|
return e[+t];
|
|
2683
2687
|
});
|
|
2684
2688
|
};
|
|
2685
2689
|
}
|
|
2686
|
-
var
|
|
2687
|
-
function
|
|
2688
|
-
if (!(t =
|
|
2690
|
+
var ma = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
|
|
2691
|
+
function ha(e) {
|
|
2692
|
+
if (!(t = ma.exec(e))) throw Error("invalid format: " + e);
|
|
2689
2693
|
var t;
|
|
2690
|
-
return new
|
|
2694
|
+
return new ga({
|
|
2691
2695
|
fill: t[1],
|
|
2692
2696
|
align: t[2],
|
|
2693
2697
|
sign: t[3],
|
|
@@ -2700,14 +2704,14 @@ function ga(e) {
|
|
|
2700
2704
|
type: t[10]
|
|
2701
2705
|
});
|
|
2702
2706
|
}
|
|
2703
|
-
|
|
2704
|
-
function
|
|
2707
|
+
ha.prototype = ga.prototype;
|
|
2708
|
+
function ga(e) {
|
|
2705
2709
|
this.fill = e.fill === void 0 ? " " : e.fill + "", this.align = e.align === void 0 ? ">" : e.align + "", this.sign = e.sign === void 0 ? "-" : e.sign + "", this.symbol = e.symbol === void 0 ? "" : e.symbol + "", this.zero = !!e.zero, this.width = e.width === void 0 ? void 0 : +e.width, this.comma = !!e.comma, this.precision = e.precision === void 0 ? void 0 : +e.precision, this.trim = !!e.trim, this.type = e.type === void 0 ? "" : e.type + "";
|
|
2706
2710
|
}
|
|
2707
|
-
|
|
2711
|
+
ga.prototype.toString = function() {
|
|
2708
2712
|
return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
|
|
2709
2713
|
};
|
|
2710
|
-
function
|
|
2714
|
+
function _a(e) {
|
|
2711
2715
|
out: for (var t = e.length, n = 1, r = -1, i; n < t; ++n) switch (e[n]) {
|
|
2712
2716
|
case ".":
|
|
2713
2717
|
r = i = n;
|
|
@@ -2718,42 +2722,41 @@ function va(e) {
|
|
|
2718
2722
|
default:
|
|
2719
2723
|
if (!+e[n]) break out;
|
|
2720
2724
|
r > 0 && (r = 0);
|
|
2721
|
-
break;
|
|
2722
2725
|
}
|
|
2723
2726
|
return r > 0 ? e.slice(0, r) + e.slice(i + 1) : e;
|
|
2724
2727
|
}
|
|
2725
|
-
var
|
|
2726
|
-
function
|
|
2727
|
-
var n =
|
|
2728
|
-
if (!n) return
|
|
2729
|
-
var r = n[0], i = n[1], a = i - (
|
|
2730
|
-
return a === o ? r : a > o ? r + Array(a - o + 1).join("0") : a > 0 ? r.slice(0, a) + "." + r.slice(a) : "0." + Array(1 - a).join("0") +
|
|
2728
|
+
var va;
|
|
2729
|
+
function ya(e, t) {
|
|
2730
|
+
var n = ua(e, t);
|
|
2731
|
+
if (!n) return va = void 0, e.toPrecision(t);
|
|
2732
|
+
var r = n[0], i = n[1], a = i - (va = Math.max(-8, Math.min(8, Math.floor(i / 3))) * 3) + 1, o = r.length;
|
|
2733
|
+
return a === o ? r : a > o ? r + Array(a - o + 1).join("0") : a > 0 ? r.slice(0, a) + "." + r.slice(a) : "0." + Array(1 - a).join("0") + ua(e, Math.max(0, t + a - 1))[0];
|
|
2731
2734
|
}
|
|
2732
|
-
function
|
|
2733
|
-
var n =
|
|
2735
|
+
function ba(e, t) {
|
|
2736
|
+
var n = ua(e, t);
|
|
2734
2737
|
if (!n) return e + "";
|
|
2735
2738
|
var r = n[0], i = n[1];
|
|
2736
2739
|
return i < 0 ? "0." + Array(-i).join("0") + r : r.length > i + 1 ? r.slice(0, i + 1) + "." + r.slice(i + 1) : r + Array(i - r.length + 2).join("0");
|
|
2737
2740
|
}
|
|
2738
|
-
var
|
|
2741
|
+
var xa = {
|
|
2739
2742
|
"%": (e, t) => (e * 100).toFixed(t),
|
|
2740
2743
|
b: (e) => Math.round(e).toString(2),
|
|
2741
2744
|
c: (e) => e + "",
|
|
2742
|
-
d:
|
|
2745
|
+
d: la,
|
|
2743
2746
|
e: (e, t) => e.toExponential(t),
|
|
2744
2747
|
f: (e, t) => e.toFixed(t),
|
|
2745
2748
|
g: (e, t) => e.toPrecision(t),
|
|
2746
2749
|
o: (e) => Math.round(e).toString(8),
|
|
2747
|
-
p: (e, t) =>
|
|
2748
|
-
r:
|
|
2749
|
-
s:
|
|
2750
|
+
p: (e, t) => ba(e * 100, t),
|
|
2751
|
+
r: ba,
|
|
2752
|
+
s: ya,
|
|
2750
2753
|
X: (e) => Math.round(e).toString(16).toUpperCase(),
|
|
2751
2754
|
x: (e) => Math.round(e).toString(16)
|
|
2752
2755
|
};
|
|
2753
|
-
function
|
|
2756
|
+
function Sa(e) {
|
|
2754
2757
|
return e;
|
|
2755
2758
|
}
|
|
2756
|
-
var
|
|
2759
|
+
var Ca = Array.prototype.map, wa = [
|
|
2757
2760
|
"y",
|
|
2758
2761
|
"z",
|
|
2759
2762
|
"a",
|
|
@@ -2772,13 +2775,13 @@ var wa = Array.prototype.map, Ta = [
|
|
|
2772
2775
|
"Z",
|
|
2773
2776
|
"Y"
|
|
2774
2777
|
];
|
|
2775
|
-
function
|
|
2776
|
-
var t = e.grouping === void 0 || e.thousands === void 0 ?
|
|
2778
|
+
function Ta(e) {
|
|
2779
|
+
var t = e.grouping === void 0 || e.thousands === void 0 ? Sa : fa(Ca.call(e.grouping, Number), e.thousands + ""), n = e.currency === void 0 ? "" : e.currency[0] + "", r = e.currency === void 0 ? "" : e.currency[1] + "", i = e.decimal === void 0 ? "." : e.decimal + "", a = e.numerals === void 0 ? Sa : pa(Ca.call(e.numerals, String)), o = e.percent === void 0 ? "%" : e.percent + "", s = e.minus === void 0 ? "−" : e.minus + "", c = e.nan === void 0 ? "NaN" : e.nan + "";
|
|
2777
2780
|
function l(e, l) {
|
|
2778
|
-
e =
|
|
2781
|
+
e = ha(e);
|
|
2779
2782
|
var u = e.fill, d = e.align, f = e.sign, p = e.symbol, m = e.zero, h = e.width, g = e.comma, _ = e.precision, v = e.trim, y = e.type;
|
|
2780
|
-
y === "n" ? (g = !0, y = "g") :
|
|
2781
|
-
var b = (l && l.prefix !== void 0 ? l.prefix : "") + (p === "$" ? n : p === "#" && /[boxX]/.test(y) ? "0" + y.toLowerCase() : ""), x = (p === "$" ? r : /[%p]/.test(y) ? o : "") + (l && l.suffix !== void 0 ? l.suffix : ""), S =
|
|
2783
|
+
y === "n" ? (g = !0, y = "g") : xa[y] || (_ === void 0 && (_ = 12), v = !0, y = "g"), (m || u === "0" && d === "=") && (m = !0, u = "0", d = "=");
|
|
2784
|
+
var b = (l && l.prefix !== void 0 ? l.prefix : "") + (p === "$" ? n : p === "#" && /[boxX]/.test(y) ? "0" + y.toLowerCase() : ""), x = (p === "$" ? r : /[%p]/.test(y) ? o : "") + (l && l.suffix !== void 0 ? l.suffix : ""), S = xa[y], C = /[defgprs%]/.test(y);
|
|
2782
2785
|
_ = _ === void 0 ? 6 : /[gprs]/.test(y) ? Math.max(1, Math.min(21, _)) : Math.max(0, Math.min(20, _));
|
|
2783
2786
|
function w(e) {
|
|
2784
2787
|
var n = b, r = x, o, l, p;
|
|
@@ -2786,7 +2789,7 @@ function Ea(e) {
|
|
|
2786
2789
|
else {
|
|
2787
2790
|
e = +e;
|
|
2788
2791
|
var w = e < 0 || 1 / e < 0;
|
|
2789
|
-
if (e = isNaN(e) ? c : S(Math.abs(e), _), v && (e =
|
|
2792
|
+
if (e = isNaN(e) ? c : S(Math.abs(e), _), v && (e = _a(e)), w && +e == 0 && f !== "+" && (w = !1), n = (w ? f === "(" ? f : s : f === "-" || f === "(" ? "" : f) + n, r = (y === "s" && !isNaN(e) && va !== void 0 ? wa[8 + va / 3] : "") + r + (w && f === "(" ? ")" : ""), C) {
|
|
2790
2793
|
for (o = -1, l = e.length; ++o < l;) if (p = e.charCodeAt(o), 48 > p || p > 57) {
|
|
2791
2794
|
r = (p === 46 ? i + e.slice(o + 1) : e.slice(o)) + r, e = e.slice(0, o);
|
|
2792
2795
|
break;
|
|
@@ -2805,9 +2808,7 @@ function Ea(e) {
|
|
|
2805
2808
|
case "^":
|
|
2806
2809
|
e = E.slice(0, T = E.length >> 1) + n + e + r + E.slice(T);
|
|
2807
2810
|
break;
|
|
2808
|
-
default:
|
|
2809
|
-
e = E + n + e + r;
|
|
2810
|
-
break;
|
|
2811
|
+
default: e = E + n + e + r;
|
|
2811
2812
|
}
|
|
2812
2813
|
return a(e);
|
|
2813
2814
|
}
|
|
@@ -2816,7 +2817,7 @@ function Ea(e) {
|
|
|
2816
2817
|
}, w;
|
|
2817
2818
|
}
|
|
2818
2819
|
function u(e, t) {
|
|
2819
|
-
var n = Math.max(-8, Math.min(8, Math.floor(
|
|
2820
|
+
var n = Math.max(-8, Math.min(8, Math.floor(da(t) / 3))) * 3, r = 10 ** -n, i = l((e = ha(e), e.type = "f", e), { suffix: wa[8 + n / 3] });
|
|
2820
2821
|
return function(e) {
|
|
2821
2822
|
return i(r * e);
|
|
2822
2823
|
};
|
|
@@ -2826,14 +2827,14 @@ function Ea(e) {
|
|
|
2826
2827
|
formatPrefix: u
|
|
2827
2828
|
};
|
|
2828
2829
|
}
|
|
2829
|
-
var
|
|
2830
|
-
|
|
2830
|
+
var Ea;
|
|
2831
|
+
Da({
|
|
2831
2832
|
thousands: ",",
|
|
2832
2833
|
grouping: [3],
|
|
2833
2834
|
currency: ["$", ""]
|
|
2834
2835
|
});
|
|
2835
|
-
function
|
|
2836
|
-
return
|
|
2836
|
+
function Da(e) {
|
|
2837
|
+
return Ea = Ta(e), Ea.format, Ea.formatPrefix, Ea;
|
|
2837
2838
|
}
|
|
2838
2839
|
function X(e, t, n) {
|
|
2839
2840
|
this.k = e, this.x = t, this.y = n;
|
|
@@ -2874,15 +2875,15 @@ X.prototype = {
|
|
|
2874
2875
|
return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
|
|
2875
2876
|
}
|
|
2876
2877
|
};
|
|
2877
|
-
var
|
|
2878
|
-
|
|
2879
|
-
function
|
|
2880
|
-
for (; !e.__zoom;) if (!(e = e.parentNode)) return
|
|
2878
|
+
var Oa = new X(1, 0, 0);
|
|
2879
|
+
ka.prototype = X.prototype;
|
|
2880
|
+
function ka(e) {
|
|
2881
|
+
for (; !e.__zoom;) if (!(e = e.parentNode)) return Oa;
|
|
2881
2882
|
return e.__zoom;
|
|
2882
2883
|
}
|
|
2883
2884
|
//#endregion
|
|
2884
2885
|
//#region src/helpers/transferConstructedPolygonGeometry.ts
|
|
2885
|
-
function
|
|
2886
|
+
function Aa(e) {
|
|
2886
2887
|
let t = new Ce(e);
|
|
2887
2888
|
return {
|
|
2888
2889
|
result: t,
|
|
@@ -2907,32 +2908,32 @@ function ja(e) {
|
|
|
2907
2908
|
//#endregion
|
|
2908
2909
|
//#region src/utils/toTransferableTileLike.ts
|
|
2909
2910
|
function Z(e) {
|
|
2910
|
-
return new d(
|
|
2911
|
+
return new d(ja(e.coords), e.max_height, e.min_height, e.cached_mesh_handle ? Ma(e.cached_mesh_handle) : void 0);
|
|
2911
2912
|
}
|
|
2912
|
-
function
|
|
2913
|
+
function ja(e) {
|
|
2913
2914
|
return new o(e.x, e.y, e.z);
|
|
2914
2915
|
}
|
|
2915
|
-
function
|
|
2916
|
+
function Ma(e) {
|
|
2916
2917
|
return new t(e.vertices, e.indices, e.uvs, e.heights);
|
|
2917
2918
|
}
|
|
2918
2919
|
//#endregion
|
|
2919
2920
|
//#region src/utils/toUpsamplableTerrainGeometryLike.ts
|
|
2920
|
-
function
|
|
2921
|
+
function Na(e) {
|
|
2921
2922
|
return new f(e.uvs, e.indices, e.heights, e.normals, e.watermask);
|
|
2922
2923
|
}
|
|
2923
2924
|
//#endregion
|
|
2924
2925
|
//#region src/utils/toExtentRadianF32Like.ts
|
|
2925
|
-
function
|
|
2926
|
+
function Pa(e) {
|
|
2926
2927
|
return new r(e.west, e.south, e.east, e.north);
|
|
2927
2928
|
}
|
|
2928
2929
|
//#endregion
|
|
2929
2930
|
//#region src/utils/toPolygonMaterialLike.ts
|
|
2930
|
-
function
|
|
2931
|
+
function Fa(e) {
|
|
2931
2932
|
return new i(e.show, e.castShadow, e.receiveShadow, e.color, e.clampToGround, e.tiled, e.height, e.extrudedHeight, e.wireframe, e.outline, e.perPositionHeight, e.__internal__);
|
|
2932
2933
|
}
|
|
2933
2934
|
//#endregion
|
|
2934
2935
|
//#region src/utils/toTransferablePolygonBatchedFeatureLike.ts
|
|
2935
|
-
function
|
|
2936
|
+
function Ia(e) {
|
|
2936
2937
|
let t = new c(e.crs, e.length);
|
|
2937
2938
|
return t.setOuterRing(e.outer_ring.length, (t) => {
|
|
2938
2939
|
t.set(e.outer_ring);
|
|
@@ -2956,27 +2957,27 @@ function La(e) {
|
|
|
2956
2957
|
}
|
|
2957
2958
|
//#endregion
|
|
2958
2959
|
//#region src/tasks/waitWasm.ts
|
|
2959
|
-
var
|
|
2960
|
+
var La;
|
|
2960
2961
|
async function Q() {
|
|
2961
|
-
return
|
|
2962
|
+
return La ??= e(), La;
|
|
2962
2963
|
}
|
|
2963
|
-
async function
|
|
2964
|
-
if (!
|
|
2965
|
-
let { memory: e } = await
|
|
2964
|
+
async function Ra() {
|
|
2965
|
+
if (!La) return 0;
|
|
2966
|
+
let { memory: e } = await La;
|
|
2966
2967
|
return e.buffer.byteLength;
|
|
2967
2968
|
}
|
|
2968
2969
|
//#endregion
|
|
2969
2970
|
//#region src/tasks/constructPolygonBatchedFeature.ts
|
|
2970
|
-
async function
|
|
2971
|
+
async function za(e, t, n, r) {
|
|
2971
2972
|
await Q();
|
|
2972
|
-
let i = p(
|
|
2973
|
+
let i = p(Ia(e), Fa(t), n, r ? Pa(r) : void 0);
|
|
2973
2974
|
if (!i) return;
|
|
2974
|
-
let { result: a, transfers: o } =
|
|
2975
|
+
let { result: a, transfers: o } = Aa(i);
|
|
2975
2976
|
return i.free(), $(a, o);
|
|
2976
2977
|
}
|
|
2977
2978
|
//#endregion
|
|
2978
2979
|
//#region src/helpers/transferConstructedPolylineGeometry.ts
|
|
2979
|
-
function
|
|
2980
|
+
function Ba(e) {
|
|
2980
2981
|
let t = new we(e);
|
|
2981
2982
|
return {
|
|
2982
2983
|
result: t,
|
|
@@ -3001,12 +3002,12 @@ function Va(e) {
|
|
|
3001
3002
|
}
|
|
3002
3003
|
//#endregion
|
|
3003
3004
|
//#region src/utils/toPolylineMaterialLike.ts
|
|
3004
|
-
function
|
|
3005
|
+
function Va(e) {
|
|
3005
3006
|
return new a(e.show, e.castShadow, e.receiveShadow, e.color, e.clampToGround, e.tiled, e.height, e.width, e.maxWidth, e.__internal__);
|
|
3006
3007
|
}
|
|
3007
3008
|
//#endregion
|
|
3008
3009
|
//#region src/utils/toTransferablePolylineBatchedFeatureLike.ts
|
|
3009
|
-
function
|
|
3010
|
+
function Ha(e) {
|
|
3010
3011
|
let t = new l(e.crs, e.length);
|
|
3011
3012
|
return t.setPoints(e.points.length, (t) => {
|
|
3012
3013
|
t.set(e.points);
|
|
@@ -3020,16 +3021,16 @@ function Ua(e) {
|
|
|
3020
3021
|
}
|
|
3021
3022
|
//#endregion
|
|
3022
3023
|
//#region src/tasks/constructPolylineBatchedFeature.ts
|
|
3023
|
-
async function
|
|
3024
|
+
async function Ua(e, t, n) {
|
|
3024
3025
|
await Q();
|
|
3025
|
-
let r = m(
|
|
3026
|
+
let r = m(Ha(e), Va(t), n);
|
|
3026
3027
|
if (!r) return;
|
|
3027
|
-
let { result: i, transfers: a } =
|
|
3028
|
+
let { result: i, transfers: a } = Ba(r);
|
|
3028
3029
|
return r.free(), $(i, a);
|
|
3029
3030
|
}
|
|
3030
3031
|
//#endregion
|
|
3031
3032
|
//#region src/helpers/transferReturnedConstructedTerrainMesh.ts
|
|
3032
|
-
function
|
|
3033
|
+
function Wa(e) {
|
|
3033
3034
|
let t = new xe(e), n = [
|
|
3034
3035
|
t.vertices.buffer,
|
|
3035
3036
|
t.uvs.buffer,
|
|
@@ -3043,26 +3044,26 @@ function Ga(e) {
|
|
|
3043
3044
|
}
|
|
3044
3045
|
//#endregion
|
|
3045
3046
|
//#region src/tasks/constructQuantizedMeshTerrainMesh.ts
|
|
3046
|
-
async function
|
|
3047
|
+
async function Ga(e, t, n, r, i, a) {
|
|
3047
3048
|
await Q();
|
|
3048
|
-
let o = h(e, Z(t), n, r, i, a), { result: s, transfers: c } =
|
|
3049
|
+
let o = h(e, Z(t), n, r, i, a), { result: s, transfers: c } = Wa(o);
|
|
3049
3050
|
return o.free(), $({ result: s }, [...c]);
|
|
3050
3051
|
}
|
|
3051
3052
|
//#endregion
|
|
3052
3053
|
//#region src/utils/toTransferableRasterDEMDataLike.ts
|
|
3053
|
-
function
|
|
3054
|
+
function Ka(e) {
|
|
3054
3055
|
return new u(new n(e.decoder.r_scaler, e.decoder.g_scaler, e.decoder.b_scaler, e.decoder.offset, e.decoder.max_offset, e.decoder.min_offset, e.decoder.boundary, e.decoder.epsilon));
|
|
3055
3056
|
}
|
|
3056
3057
|
//#endregion
|
|
3057
3058
|
//#region src/tasks/constructTerrainMesh.ts
|
|
3058
|
-
async function
|
|
3059
|
+
async function qa(e, t, n, r, i, a) {
|
|
3059
3060
|
await Q();
|
|
3060
|
-
let o = r + 1, c = s.fromSize(o), l = g(e, Z(t),
|
|
3061
|
+
let o = r + 1, c = s.fromSize(o), l = g(e, Z(t), Ka(n), c, i, a), { result: u, transfers: d } = Wa(l);
|
|
3061
3062
|
return l.free(), $({ result: u }, [...d]);
|
|
3062
3063
|
}
|
|
3063
3064
|
//#endregion
|
|
3064
3065
|
//#region src/tasks/getImageDataFromBlob.ts
|
|
3065
|
-
async function
|
|
3066
|
+
async function Ja(e) {
|
|
3066
3067
|
let t = await createImageBitmap(e);
|
|
3067
3068
|
try {
|
|
3068
3069
|
let e = new OffscreenCanvas(t.width, t.height).getContext("2d");
|
|
@@ -3076,7 +3077,7 @@ async function Ya(e) {
|
|
|
3076
3077
|
}
|
|
3077
3078
|
//#endregion
|
|
3078
3079
|
//#region src/tasks/getImageDataFromImageBitmap.ts
|
|
3079
|
-
async function
|
|
3080
|
+
async function Ya(e, t) {
|
|
3080
3081
|
try {
|
|
3081
3082
|
let n = t.getContext("2d");
|
|
3082
3083
|
if (n === null) throw Error("failed to get context of canvas");
|
|
@@ -3087,9 +3088,9 @@ async function Xa(e, t) {
|
|
|
3087
3088
|
}
|
|
3088
3089
|
//#endregion
|
|
3089
3090
|
//#region src/tasks/parseMvtTile.ts
|
|
3090
|
-
async function
|
|
3091
|
+
async function Xa(e, t, n, r, i, a, o) {
|
|
3091
3092
|
await Q();
|
|
3092
|
-
let s = _(e, t, n, r, i ?
|
|
3093
|
+
let s = _(e, t, n, r, i ? Pa(i) : void 0, a, o), c, l, u, d, f;
|
|
3093
3094
|
try {
|
|
3094
3095
|
c = s.f64_stream(), l = s.f32_stream(), u = s.u32_stream(), d = s.u8_stream(), f = s.meta();
|
|
3095
3096
|
} finally {
|
|
@@ -3110,42 +3111,42 @@ async function Za(e, t, n, r, i, a, o) {
|
|
|
3110
3111
|
}
|
|
3111
3112
|
//#endregion
|
|
3112
3113
|
//#region src/tasks/upsampleQuantizedMeshTerrainMesh.ts
|
|
3113
|
-
async function
|
|
3114
|
+
async function Za(e, t, n, r, i, a, o) {
|
|
3114
3115
|
await Q();
|
|
3115
|
-
let s = v(Z(e), Z(t),
|
|
3116
|
+
let s = v(Z(e), Z(t), Na(n), r, i, a, o), { result: c, transfers: l } = Wa(s);
|
|
3116
3117
|
return s.free(), $(c, l);
|
|
3117
3118
|
}
|
|
3118
3119
|
//#endregion
|
|
3119
3120
|
//#region src/tasks/upsampleTerrainMesh.ts
|
|
3120
|
-
async function
|
|
3121
|
+
async function Qa(e, t, n, r, i, a, o) {
|
|
3121
3122
|
await Q();
|
|
3122
|
-
let s = y(Z(e), Z(t),
|
|
3123
|
+
let s = y(Z(e), Z(t), Ka(n), Na(r), i, a, o), { result: c, transfers: l } = Wa(s);
|
|
3123
3124
|
return s.free(), $(c, l);
|
|
3124
3125
|
}
|
|
3125
3126
|
//#endregion
|
|
3126
3127
|
//#region src/tasks/index.ts
|
|
3127
|
-
async function
|
|
3128
|
+
async function $a() {
|
|
3128
3129
|
await Q();
|
|
3129
3130
|
}
|
|
3130
|
-
var
|
|
3131
|
-
constructTerrainMesh:
|
|
3132
|
-
constructQuantizedMeshTerrainMesh:
|
|
3133
|
-
upsampleTerrainMesh:
|
|
3134
|
-
upsampleQuantizedMeshTerrainMesh:
|
|
3135
|
-
getImageDataFromImageBitmap:
|
|
3136
|
-
getImageDataFromBlob:
|
|
3137
|
-
constructPolygonBatchedFeature:
|
|
3138
|
-
constructPolylineBatchedFeature:
|
|
3139
|
-
parseMvtTile:
|
|
3140
|
-
warmUp:
|
|
3141
|
-
getWasmMemoryUsage:
|
|
3142
|
-
}, $ = (e, t) => new me.Transfer(e, t),
|
|
3143
|
-
function
|
|
3144
|
-
|
|
3131
|
+
var eo = {
|
|
3132
|
+
constructTerrainMesh: qa,
|
|
3133
|
+
constructQuantizedMeshTerrainMesh: Ga,
|
|
3134
|
+
upsampleTerrainMesh: Qa,
|
|
3135
|
+
upsampleQuantizedMeshTerrainMesh: Za,
|
|
3136
|
+
getImageDataFromImageBitmap: Ya,
|
|
3137
|
+
getImageDataFromBlob: Ja,
|
|
3138
|
+
constructPolygonBatchedFeature: za,
|
|
3139
|
+
constructPolylineBatchedFeature: Ua,
|
|
3140
|
+
parseMvtTile: Xa,
|
|
3141
|
+
warmUp: $a,
|
|
3142
|
+
getWasmMemoryUsage: Ra
|
|
3143
|
+
}, $ = (e, t) => new me.Transfer(e, t), to = !1, no = (...e) => (to ||= (me.worker(eo), ro(), !0), me.worker(...e));
|
|
3144
|
+
function ro() {
|
|
3145
|
+
eo.warmUp.worker?.addAbortListener(async () => {});
|
|
3145
3146
|
}
|
|
3146
3147
|
//#endregion
|
|
3147
3148
|
//#region src/pool.ts
|
|
3148
|
-
var { initializeWorkerPool:
|
|
3149
|
+
var { initializeWorkerPool: io, terminateWorkerPool: ao, warmUpWorkerPool: oo, worker: so, workerPoolStats: co, workerPoolHeapStats: lo, probeWorkerPoolHeap: uo } = (() => {
|
|
3149
3150
|
let e;
|
|
3150
3151
|
return {
|
|
3151
3152
|
initializeWorkerPool: (t, n, r) => {
|
|
@@ -3167,12 +3168,12 @@ var { initializeWorkerPool: ao, terminateWorkerPool: oo, warmUpWorkerPool: so, w
|
|
|
3167
3168
|
workerPoolHeapStats: () => e?.pool.heapStats(),
|
|
3168
3169
|
probeWorkerPoolHeap: () => e?.pool.probeHeap()
|
|
3169
3170
|
};
|
|
3170
|
-
})(),
|
|
3171
|
-
let { pool: e, manager: t } =
|
|
3171
|
+
})(), fo = () => {
|
|
3172
|
+
let { pool: e, manager: t } = so();
|
|
3172
3173
|
return t.canIncrement() && e.canAcceptTasks();
|
|
3173
3174
|
};
|
|
3174
|
-
function
|
|
3175
|
-
let { pool: r, manager: i } =
|
|
3175
|
+
function po(e, t, n) {
|
|
3176
|
+
let { pool: r, manager: i } = so();
|
|
3176
3177
|
i.increment();
|
|
3177
3178
|
try {
|
|
3178
3179
|
return r.exec(e, t, n).then((e) => (i.decrement(), e)).catch((e) => {
|
|
@@ -3184,7 +3185,7 @@ function mo(e, t, n) {
|
|
|
3184
3185
|
}
|
|
3185
3186
|
//#endregion
|
|
3186
3187
|
//#region src/manager.ts
|
|
3187
|
-
var
|
|
3188
|
+
var mo = (e) => {
|
|
3188
3189
|
let t = 0, n = () => t !== e, r = () => t !== 0;
|
|
3189
3190
|
return {
|
|
3190
3191
|
total: e,
|
|
@@ -3204,4 +3205,4 @@ var ho = (e) => {
|
|
|
3204
3205
|
};
|
|
3205
3206
|
};
|
|
3206
3207
|
//#endregion
|
|
3207
|
-
export {
|
|
3208
|
+
export { fo as canWorkerProcessImmediately, mo as createConcurrencyManager, io as initializeWorkerPool, uo as probeWorkerPoolHeap, po as queueTask, no as registerTasks, ao as terminateWorkerPool, $ as transfer, oo as warmUpWorkerPool, lo as workerPoolHeapStats, co as workerPoolStats };
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@navaramap/engine"),require("@navaramap/engine-worker")):typeof define==`function`&&define.amd?define([`exports`,`@navaramap/engine`,`@navaramap/engine-worker`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.NavaraWorker={},e._navaramap_engine,e._navaramap_engine_worker))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var s=o(t),l=0,u=s.length,d;l<u;l++)d=s[l],!c.call(e,d)&&d!==n&&i(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=a(t,d))||r.enumerable});return e},d=(e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule?i(n,`default`,{value:e,enumerable:!0}):n,e));n=d(n,1);var f=`Invariant failed`;function p(e,t){if(!e)throw Error(f)}var m=l(((e,t)=>{t.exports={}})),h=l(((e,t)=>{var n=function(e){return e!==void 0&&e.versions!=null&&e.versions.node!=null&&e+``==`[object process]`};t.exports.isNode=n,t.exports.platform=typeof process<`u`&&n(process)?`node`:`browser`;var r=t.exports.platform===`node`&&m();t.exports.isMainThread=t.exports.platform===`node`?(!r||r.isMainThread)&&!process.connected:typeof Window<`u`,t.exports.cpus=t.exports.platform===`browser`?self.navigator.hardwareConcurrency:m().cpus().length})),g=l((e=>{function t(e,a){var o=this;if(!(this instanceof t))throw SyntaxError(`Constructor must be called with the new operator`);if(typeof e!=`function`)throw SyntaxError(`Function parameter handler(resolve, reject) missing`);var s=[],c=[];this.resolved=!1,this.rejected=!1,this.pending=!0,this[Symbol.toStringTag]=`Promise`;var l=function(e,t){s.push(e),c.push(t)};this.then=function(e,r){return new t(function(t,i){var a=e?n(e,t,i):t,o=r?n(r,t,i):i;l(a,o)},o)};var u=function(e){return o.resolved=!0,o.rejected=!1,o.pending=!1,s.forEach(function(t){t(e)}),l=function(t,n){t(e)},u=d=function(){},o},d=function(e){return o.resolved=!1,o.rejected=!0,o.pending=!1,c.forEach(function(t){t(e)}),l=function(t,n){n(e)},u=d=function(){},o};this.cancel=function(){return a?a.cancel():d(new r),o},this.timeout=function(e){if(a)a.timeout(e);else{var t=setTimeout(function(){d(new i(`Promise timed out after `+e+` ms`))},e);o.always(function(){clearTimeout(t)})}return o},e(function(e){u(e)},function(e){d(e)})}function n(e,t,n){return function(r){try{var i=e(r);i&&typeof i.then==`function`&&typeof i.catch==`function`?i.then(t,n):t(i)}catch(e){n(e)}}}t.prototype.catch=function(e){return this.then(null,e)},t.prototype.always=function(e){return this.then(e,e)},t.prototype.finally=function(e){let n=this,r=function(){return new t(e=>e()).then(e).then(()=>n)};return this.then(r,r)},t.all=function(e){return new t(function(t,n){var r=e.length,i=[];r?e.forEach(function(e,a){e.then(function(e){i[a]=e,r--,r==0&&t(i)},function(e){r=0,n(e)})}):t(i)})},t.defer=function(){var e={};return e.promise=new t(function(t,n){e.resolve=t,e.reject=n}),e};function r(e){this.message=e||`promise cancelled`,this.stack=Error().stack}r.prototype=Error(),r.prototype.constructor=Error,r.prototype.name=`CancellationError`,t.CancellationError=r;function i(e){this.message=e||`timeout exceeded`,this.stack=Error().stack}i.prototype=Error(),i.prototype.constructor=Error,i.prototype.name=`TimeoutError`,t.TimeoutError=i,e.Promise=t})),_=l((e=>{e.validateOptions=function(e,t,n){if(e){var r=e?Object.keys(e):[],i=r.find(e=>!t.includes(e));if(i)throw Error(`Object "`+n+`" contains an unknown option "`+i+`"`);var a=t.find(e=>Object.prototype[e]&&!r.includes(e));if(a)throw Error(`Object "`+n+`" contains an inherited option "`+a+`" which is not defined in the object itself but in its prototype. Only plain objects are allowed. Please remove the option from the prototype or override it with a value "undefined".`);return e}},e.workerOptsNames=[`credentials`,`name`,`type`],e.forkOptsNames=[`cwd`,`detached`,`env`,`execPath`,`execArgv`,`gid`,`serialization`,`signal`,`killSignal`,`silent`,`stdio`,`uid`,`windowsVerbatimArguments`,`timeout`],e.workerThreadOptsNames=[`argv`,`env`,`eval`,`execArgv`,`stdin`,`stdout`,`stderr`,`workerData`,`trackUnmanagedFds`,`transferList`,`resourceLimits`,`name`]})),v=l(((e,t)=>{t.exports=`!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).worker=n()}(this,function(){"use strict";function e(n){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(n)}function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t={};var r=function(e,n){this.message=e,this.transfer=n},o={};function i(e,n){var t=this;if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if("function"!=typeof e)throw new SyntaxError("Function parameter handler(resolve, reject) missing");var r=[],o=[];this.resolved=!1,this.rejected=!1,this.pending=!0,this[Symbol.toStringTag]="Promise";var a=function(e,n){r.push(e),o.push(n)};this.then=function(e,n){return new i(function(t,r){var o=e?s(e,t,r):t,i=n?s(n,t,r):r;a(o,i)},t)};var f=function(e){return t.resolved=!0,t.rejected=!1,t.pending=!1,r.forEach(function(n){n(e)}),a=function(n,t){n(e)},f=d=function(){},t},d=function(e){return t.resolved=!1,t.rejected=!0,t.pending=!1,o.forEach(function(n){n(e)}),a=function(n,t){t(e)},f=d=function(){},t};this.cancel=function(){return n?n.cancel():d(new u),t},this.timeout=function(e){if(n)n.timeout(e);else{var r=setTimeout(function(){d(new c("Promise timed out after "+e+" ms"))},e);t.always(function(){clearTimeout(r)})}return t},e(function(e){f(e)},function(e){d(e)})}function s(e,n,t){return function(r){try{var o=e(r);o&&"function"==typeof o.then&&"function"==typeof o.catch?o.then(n,t):n(o)}catch(e){t(e)}}}function u(e){this.message=e||"promise cancelled",this.stack=(new Error).stack}function c(e){this.message=e||"timeout exceeded",this.stack=(new Error).stack}return i.prototype.catch=function(e){return this.then(null,e)},i.prototype.always=function(e){return this.then(e,e)},i.prototype.finally=function(e){var n=this,t=function(){return new i(function(e){return e()}).then(e).then(function(){return n})};return this.then(t,t)},i.all=function(e){return new i(function(n,t){var r=e.length,o=[];r?e.forEach(function(e,i){e.then(function(e){o[i]=e,0==--r&&n(o)},function(e){r=0,t(e)})}):n(o)})},i.defer=function(){var e={};return e.promise=new i(function(n,t){e.resolve=n,e.reject=t}),e},u.prototype=new Error,u.prototype.constructor=Error,u.prototype.name="CancellationError",i.CancellationError=u,c.prototype=new Error,c.prototype.constructor=Error,c.prototype.name="TimeoutError",i.TimeoutError=c,o.Promise=i,function(n){var t=r,i=o.Promise,s="__workerpool-cleanup__",u={exit:function(){}},c={addAbortListener:function(e){u.abortListeners.push(e)},emit:u.emit};if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)u.on=function(e,n){addEventListener(e,function(e){n(e.data)})},u.send=function(e,n){n?postMessage(e,n):postMessage(e)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");var a;try{a=require("worker_threads")}catch(n){if("object"!==e(n)||null===n||"MODULE_NOT_FOUND"!==n.code)throw n}if(a&&null!==a.parentPort){var f=a.parentPort;u.send=f.postMessage.bind(f),u.on=f.on.bind(f),u.exit=process.exit.bind(process)}else u.on=process.on.bind(process),u.send=function(e){process.send(e)},u.on("disconnect",function(){process.exit(1)}),u.exit=process.exit.bind(process)}function d(e){return e&&e.toJSON?JSON.parse(JSON.stringify(e)):JSON.parse(JSON.stringify(e,Object.getOwnPropertyNames(e)))}function l(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch}u.methods={},u.methods.run=function(e,n){var t=new Function("return ("+e+").apply(this, arguments);");return t.worker=c,t.apply(t,n)},u.methods.methods=function(){return Object.keys(u.methods)},u.terminationHandler=void 0,u.abortListenerTimeout=1e3,u.abortListeners=[],u.terminateAndExit=function(e){var n=function(){u.exit(e)};if(!u.terminationHandler)return n();var t=u.terminationHandler(e);return l(t)?(t.then(n,n),t):(n(),new i(function(e,n){n(new Error("Worker terminating"))}))},u.cleanup=function(e){if(!u.abortListeners.length)return u.send({id:e,method:s,error:d(new Error("Worker terminating"))}),new i(function(e){e()});var n,t=u.abortListeners.map(function(e){return e()}),r=new i(function(e,t){n=setTimeout(function(){t(new Error("Timeout occurred waiting for abort handler, killing worker"))},u.abortListenerTimeout)}),o=i.all(t).then(function(){clearTimeout(n),u.abortListeners.length&&(u.abortListeners=[])},function(){clearTimeout(n),u.exit()});return new i(function(e,n){o.then(e,n),r.then(e,n)}).then(function(){u.send({id:e,method:s,error:null})},function(n){u.send({id:e,method:s,error:n?d(n):null})})};var p=null;u.on("message",function(e){if("__workerpool-terminate__"===e)return u.terminateAndExit(0);if(e.method===s)return u.cleanup(e.id);try{var n=u.methods[e.method];if(!n)throw new Error('Unknown method "'+e.method+'"');p=e.id;var r=n.apply(n,e.params);l(r)?r.then(function(n){n instanceof t?u.send({id:e.id,result:n.message,error:null},n.transfer):u.send({id:e.id,result:n,error:null}),p=null}).catch(function(n){u.send({id:e.id,result:null,error:d(n)}),p=null}):(r instanceof t?u.send({id:e.id,result:r.message,error:null},r.transfer):u.send({id:e.id,result:r,error:null}),p=null)}catch(n){u.send({id:e.id,result:null,error:d(n)})}}),u.register=function(e,n){if(e)for(var t in e)e.hasOwnProperty(t)&&(u.methods[t]=e[t],u.methods[t].worker=c);n&&(u.terminationHandler=n.onTerminate,u.abortListenerTimeout=n.abortListenerTimeout||1e3),u.send("ready")},u.emit=function(e){if(p){if(e instanceof t)return void u.send({id:p,isEvent:!0,payload:e.message},e.transfer);u.send({id:p,isEvent:!0,payload:e})}},n.add=u.register,n.emit=u.emit}(t),n(t)});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@navaramap/engine"),require("@navaramap/engine-worker")):typeof define==`function`&&define.amd?define([`exports`,`@navaramap/engine`,`@navaramap/engine-worker`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.NavaraWorker={},e._navaramap_engine,e._navaramap_engine_worker))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var s=o(t),l=0,u=s.length,d;l<u;l++)d=s[l],!c.call(e,d)&&d!==n&&i(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=a(t,d))||r.enumerable});return e},d=(e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule||!c.call(e,`default`)?i(n,`default`,{value:e,enumerable:!0}):n,e));n=d(n,1);var f=`Invariant failed`;function p(e,t){if(!e)throw Error(f)}var m=l(((e,t)=>{t.exports={}})),h=l(((e,t)=>{var n=function(e){return e!==void 0&&e.versions!=null&&e.versions.node!=null&&e+``==`[object process]`};t.exports.isNode=n,t.exports.platform=typeof process<`u`&&n(process)?`node`:`browser`;var r=t.exports.platform===`node`&&m();t.exports.isMainThread=t.exports.platform===`node`?(!r||r.isMainThread)&&!process.connected:typeof Window<`u`,t.exports.cpus=t.exports.platform===`browser`?self.navigator.hardwareConcurrency:m().cpus().length})),g=l((e=>{function t(e,a){var o=this;if(!(this instanceof t))throw SyntaxError(`Constructor must be called with the new operator`);if(typeof e!=`function`)throw SyntaxError(`Function parameter handler(resolve, reject) missing`);var s=[],c=[];this.resolved=!1,this.rejected=!1,this.pending=!0,this[Symbol.toStringTag]=`Promise`;var l=function(e,t){s.push(e),c.push(t)};this.then=function(e,r){return new t(function(t,i){var a=e?n(e,t,i):t,o=r?n(r,t,i):i;l(a,o)},o)};var u=function(e){return o.resolved=!0,o.rejected=!1,o.pending=!1,s.forEach(function(t){t(e)}),l=function(t,n){t(e)},u=d=function(){},o},d=function(e){return o.resolved=!1,o.rejected=!0,o.pending=!1,c.forEach(function(t){t(e)}),l=function(t,n){n(e)},u=d=function(){},o};this.cancel=function(){return a?a.cancel():d(new r),o},this.timeout=function(e){if(a)a.timeout(e);else{var t=setTimeout(function(){d(new i(`Promise timed out after `+e+` ms`))},e);o.always(function(){clearTimeout(t)})}return o},e(function(e){u(e)},function(e){d(e)})}function n(e,t,n){return function(r){try{var i=e(r);i&&typeof i.then==`function`&&typeof i.catch==`function`?i.then(t,n):t(i)}catch(e){n(e)}}}t.prototype.catch=function(e){return this.then(null,e)},t.prototype.always=function(e){return this.then(e,e)},t.prototype.finally=function(e){let n=this,r=function(){return new t(e=>e()).then(e).then(()=>n)};return this.then(r,r)},t.all=function(e){return new t(function(t,n){var r=e.length,i=[];r?e.forEach(function(e,a){e.then(function(e){i[a]=e,r--,r==0&&t(i)},function(e){r=0,n(e)})}):t(i)})},t.defer=function(){var e={};return e.promise=new t(function(t,n){e.resolve=t,e.reject=n}),e};function r(e){this.message=e||`promise cancelled`,this.stack=Error().stack}r.prototype=Error(),r.prototype.constructor=Error,r.prototype.name=`CancellationError`,t.CancellationError=r;function i(e){this.message=e||`timeout exceeded`,this.stack=Error().stack}i.prototype=Error(),i.prototype.constructor=Error,i.prototype.name=`TimeoutError`,t.TimeoutError=i,e.Promise=t})),_=l((e=>{e.validateOptions=function(e,t,n){if(e){var r=e?Object.keys(e):[],i=r.find(e=>!t.includes(e));if(i)throw Error(`Object "`+n+`" contains an unknown option "`+i+`"`);var a=t.find(e=>Object.prototype[e]&&!r.includes(e));if(a)throw Error(`Object "`+n+`" contains an inherited option "`+a+`" which is not defined in the object itself but in its prototype. Only plain objects are allowed. Please remove the option from the prototype or override it with a value "undefined".`);return e}},e.workerOptsNames=[`credentials`,`name`,`type`],e.forkOptsNames=[`cwd`,`detached`,`env`,`execPath`,`execArgv`,`gid`,`serialization`,`signal`,`killSignal`,`silent`,`stdio`,`uid`,`windowsVerbatimArguments`,`timeout`],e.workerThreadOptsNames=[`argv`,`env`,`eval`,`execArgv`,`stdin`,`stdout`,`stderr`,`workerData`,`trackUnmanagedFds`,`transferList`,`resourceLimits`,`name`]})),v=l(((e,t)=>{t.exports=`!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).worker=n()}(this,function(){"use strict";function e(n){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(n)}function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t={};var r=function(e,n){this.message=e,this.transfer=n},o={};function i(e,n){var t=this;if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if("function"!=typeof e)throw new SyntaxError("Function parameter handler(resolve, reject) missing");var r=[],o=[];this.resolved=!1,this.rejected=!1,this.pending=!0,this[Symbol.toStringTag]="Promise";var a=function(e,n){r.push(e),o.push(n)};this.then=function(e,n){return new i(function(t,r){var o=e?s(e,t,r):t,i=n?s(n,t,r):r;a(o,i)},t)};var f=function(e){return t.resolved=!0,t.rejected=!1,t.pending=!1,r.forEach(function(n){n(e)}),a=function(n,t){n(e)},f=d=function(){},t},d=function(e){return t.resolved=!1,t.rejected=!0,t.pending=!1,o.forEach(function(n){n(e)}),a=function(n,t){t(e)},f=d=function(){},t};this.cancel=function(){return n?n.cancel():d(new u),t},this.timeout=function(e){if(n)n.timeout(e);else{var r=setTimeout(function(){d(new c("Promise timed out after "+e+" ms"))},e);t.always(function(){clearTimeout(r)})}return t},e(function(e){f(e)},function(e){d(e)})}function s(e,n,t){return function(r){try{var o=e(r);o&&"function"==typeof o.then&&"function"==typeof o.catch?o.then(n,t):n(o)}catch(e){t(e)}}}function u(e){this.message=e||"promise cancelled",this.stack=(new Error).stack}function c(e){this.message=e||"timeout exceeded",this.stack=(new Error).stack}return i.prototype.catch=function(e){return this.then(null,e)},i.prototype.always=function(e){return this.then(e,e)},i.prototype.finally=function(e){var n=this,t=function(){return new i(function(e){return e()}).then(e).then(function(){return n})};return this.then(t,t)},i.all=function(e){return new i(function(n,t){var r=e.length,o=[];r?e.forEach(function(e,i){e.then(function(e){o[i]=e,0==--r&&n(o)},function(e){r=0,t(e)})}):n(o)})},i.defer=function(){var e={};return e.promise=new i(function(n,t){e.resolve=n,e.reject=t}),e},u.prototype=new Error,u.prototype.constructor=Error,u.prototype.name="CancellationError",i.CancellationError=u,c.prototype=new Error,c.prototype.constructor=Error,c.prototype.name="TimeoutError",i.TimeoutError=c,o.Promise=i,function(n){var t=r,i=o.Promise,s="__workerpool-cleanup__",u={exit:function(){}},c={addAbortListener:function(e){u.abortListeners.push(e)},emit:u.emit};if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)u.on=function(e,n){addEventListener(e,function(e){n(e.data)})},u.send=function(e,n){n?postMessage(e,n):postMessage(e)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");var a;try{a=require("worker_threads")}catch(n){if("object"!==e(n)||null===n||"MODULE_NOT_FOUND"!==n.code)throw n}if(a&&null!==a.parentPort){var f=a.parentPort;u.send=f.postMessage.bind(f),u.on=f.on.bind(f),u.exit=process.exit.bind(process)}else u.on=process.on.bind(process),u.send=function(e){process.send(e)},u.on("disconnect",function(){process.exit(1)}),u.exit=process.exit.bind(process)}function d(e){return e&&e.toJSON?JSON.parse(JSON.stringify(e)):JSON.parse(JSON.stringify(e,Object.getOwnPropertyNames(e)))}function l(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch}u.methods={},u.methods.run=function(e,n){var t=new Function("return ("+e+").apply(this, arguments);");return t.worker=c,t.apply(t,n)},u.methods.methods=function(){return Object.keys(u.methods)},u.terminationHandler=void 0,u.abortListenerTimeout=1e3,u.abortListeners=[],u.terminateAndExit=function(e){var n=function(){u.exit(e)};if(!u.terminationHandler)return n();var t=u.terminationHandler(e);return l(t)?(t.then(n,n),t):(n(),new i(function(e,n){n(new Error("Worker terminating"))}))},u.cleanup=function(e){if(!u.abortListeners.length)return u.send({id:e,method:s,error:d(new Error("Worker terminating"))}),new i(function(e){e()});var n,t=u.abortListeners.map(function(e){return e()}),r=new i(function(e,t){n=setTimeout(function(){t(new Error("Timeout occurred waiting for abort handler, killing worker"))},u.abortListenerTimeout)}),o=i.all(t).then(function(){clearTimeout(n),u.abortListeners.length&&(u.abortListeners=[])},function(){clearTimeout(n),u.exit()});return new i(function(e,n){o.then(e,n),r.then(e,n)}).then(function(){u.send({id:e,method:s,error:null})},function(n){u.send({id:e,method:s,error:n?d(n):null})})};var p=null;u.on("message",function(e){if("__workerpool-terminate__"===e)return u.terminateAndExit(0);if(e.method===s)return u.cleanup(e.id);try{var n=u.methods[e.method];if(!n)throw new Error('Unknown method "'+e.method+'"');p=e.id;var r=n.apply(n,e.params);l(r)?r.then(function(n){n instanceof t?u.send({id:e.id,result:n.message,error:null},n.transfer):u.send({id:e.id,result:n,error:null}),p=null}).catch(function(n){u.send({id:e.id,result:null,error:d(n)}),p=null}):(r instanceof t?u.send({id:e.id,result:r.message,error:null},r.transfer):u.send({id:e.id,result:r,error:null}),p=null)}catch(n){u.send({id:e.id,result:null,error:d(n)})}}),u.register=function(e,n){if(e)for(var t in e)e.hasOwnProperty(t)&&(u.methods[t]=e[t],u.methods[t].worker=c);n&&(u.terminationHandler=n.onTerminate,u.abortListenerTimeout=n.abortListenerTimeout||1e3),u.send("ready")},u.emit=function(e){if(p){if(e instanceof t)return void u.send({id:p,isEvent:!0,payload:e.message},e.transfer);u.send({id:p,isEvent:!0,payload:e})}},n.add=u.register,n.emit=u.emit}(t),n(t)});
|
|
2
2
|
//# sourceMappingURL=worker.min.js.map
|
|
3
|
-
`})),y=l(((e,t)=>{var{Promise:n}=g(),r=h(),{validateOptions:i,forkOptsNames:a,workerThreadOptsNames:o,workerOptsNames:s}=_(),c=`__workerpool-terminate__`,l=`__workerpool-cleanup__`;function u(){var e=f();if(!e)throw Error(`WorkerPool: workerType = 'thread' is not supported, Node >= 11.7.0 required`);return e}function d(){if(typeof Worker!=`function`&&(typeof Worker!=`object`||typeof Worker.prototype.constructor!=`function`))throw Error(`WorkerPool: Web Workers not supported`)}function f(){try{return m()}catch(e){if(typeof e==`object`&&e&&e.code===`MODULE_NOT_FOUND`)return null;throw e}}function p(){if(r.platform===`browser`){if(typeof Blob>`u`)throw Error(`Blob not supported by the browser`);if(!window.URL||typeof window.URL.createObjectURL!=`function`)throw Error(`URL.createObjectURL not supported by the browser`);var e=new Blob([v()],{type:`text/javascript`});return window.URL.createObjectURL(e)}
|
|
3
|
+
`})),y=l(((e,t)=>{var{Promise:n}=g(),r=h(),{validateOptions:i,forkOptsNames:a,workerThreadOptsNames:o,workerOptsNames:s}=_(),c=`__workerpool-terminate__`,l=`__workerpool-cleanup__`;function u(){var e=f();if(!e)throw Error(`WorkerPool: workerType = 'thread' is not supported, Node >= 11.7.0 required`);return e}function d(){if(typeof Worker!=`function`&&(typeof Worker!=`object`||typeof Worker.prototype.constructor!=`function`))throw Error(`WorkerPool: Web Workers not supported`)}function f(){try{return m()}catch(e){if(typeof e==`object`&&e&&e.code===`MODULE_NOT_FOUND`)return null;throw e}}function p(){if(r.platform===`browser`){if(typeof Blob>`u`)throw Error(`Blob not supported by the browser`);if(!window.URL||typeof window.URL.createObjectURL!=`function`)throw Error(`URL.createObjectURL not supported by the browser`);var e=new Blob([v()],{type:`text/javascript`});return window.URL.createObjectURL(e)}return __dirname+`/worker.js`}function y(e,t){if(t.workerType===`web`)return d(),b(e,t.workerOpts,Worker);if(t.workerType===`thread`)return n=u(),x(e,n,t);if(t.workerType===`process`||!t.workerType)return S(e,C(t),m());if(r.platform===`browser`)return d(),b(e,t.workerOpts,Worker);var n=f();return n?x(e,n,t):S(e,C(t),m())}function b(e,t,n){i(t,s,`workerOpts`);var r=new n(e,t);return r.isBrowserWorker=!0,r.on=function(e,t){this.addEventListener(e,function(e){t(e.data)})},r.send=function(e,t){this.postMessage(e,t)},r}function x(e,t,n){i(n?.workerThreadOpts,o,`workerThreadOpts`);var r=new t.Worker(e,{stdout:n?.emitStdStreams??!1,stderr:n?.emitStdStreams??!1,...n?.workerThreadOpts});return r.isWorkerThread=!0,r.send=function(e,t){this.postMessage(e,t)},r.kill=function(){return this.terminate(),!0},r.disconnect=function(){this.terminate()},n?.emitStdStreams&&(r.stdout.on(`data`,e=>r.emit(`stdout`,e)),r.stderr.on(`data`,e=>r.emit(`stderr`,e))),r}function S(e,t,n){i(t.forkOpts,a,`forkOpts`);var r=n.fork(e,t.forkArgs,t.forkOpts),o=r.send;return r.send=function(e){return o.call(r,e)},t.emitStdStreams&&(r.stdout.on(`data`,e=>r.emit(`stdout`,e)),r.stderr.on(`data`,e=>r.emit(`stderr`,e))),r.isChildProcess=!0,r}function C(e){e||={};var t=process.execArgv.join(` `),n=t.indexOf(`--inspect`)!==-1,r=t.indexOf(`--debug-brk`)!==-1,i=[];return n&&(i.push(`--inspect=`+e.debugPort),r&&i.push(`--debug-brk`)),process.execArgv.forEach(function(e){e.indexOf(`--max-old-space-size`)>-1&&i.push(e)}),Object.assign({},e,{forkArgs:e.forkArgs,forkOpts:Object.assign({},e.forkOpts,{execArgv:(e.forkOpts&&e.forkOpts.execArgv||[]).concat(i),stdio:e.emitStdStreams?`pipe`:void 0})})}function w(e){for(var t=Error(``),n=Object.keys(e),r=0;r<n.length;r++)t[n[r]]=e[n[r]];return t}function T(e,t){Object.values(e.processing).forEach(e=>e?.options?.on(t)),Object.values(e.tracking).forEach(e=>e?.options?.on(t))}function E(e,t){var n=this,r=t||{};this.script=e||p(),this.worker=y(this.script,r),this.debugPort=r.debugPort,this.forkOpts=r.forkOpts,this.forkArgs=r.forkArgs,this.workerOpts=r.workerOpts,this.workerThreadOpts=r.workerThreadOpts,this.workerTerminateTimeout=r.workerTerminateTimeout,e||(this.worker.ready=!0),this.requestQueue=[],this.worker.on(`stdout`,function(e){T(n,{stdout:e.toString()})}),this.worker.on(`stderr`,function(e){T(n,{stderr:e.toString()})}),this.worker.on(`message`,function(e){if(!n.terminated){if(typeof e==`string`&&e===`ready`)n.worker.ready=!0,a();else{var t=e.id,r=n.processing[t];if(r!==void 0)e.isEvent?r.options&&typeof r.options.on==`function`&&r.options.on(e.payload):(delete n.processing[t],n.terminating===!0&&n.terminate(),e.error?r.resolver.reject(w(e.error)):r.resolver.resolve(e.result));else{var r=n.tracking[t];r!==void 0&&e.isEvent&&r.options&&typeof r.options.on==`function`&&r.options.on(e.payload)}if(e.method===l){var i=n.tracking[e.id];i!==void 0&&(e.error?(clearTimeout(i.timeoutId),i.resolver.reject(w(e.error))):(n.tracking&&clearTimeout(i.timeoutId),i.resolver.reject(new ee(i.error)))),delete n.tracking[t]}}}});function i(e){for(var t in n.terminated=!0,n.processing)n.processing[t]!==void 0&&n.processing[t].resolver.reject(e);n.processing=Object.create(null)}function a(){for(let e of n.requestQueue.splice(0))n.worker.send(e.message,e.transfer)}var o=this.worker;this.worker.on(`error`,function(e){i(new D(`Workerpool Worker error: `+(e&&e.message?e.message:String(e||`Unknown worker error`)),e))}),this.worker.on(`exit`,function(e,t){var r=`Workerpool Worker terminated Unexpectedly
|
|
4
4
|
`;r+=" exitCode: `"+e+`\`
|
|
5
5
|
`,r+=" signalCode: `"+t+`\`
|
|
6
6
|
`,r+=" workerpool.script: `"+n.script+`\`
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
`,r+=" spawnfile: `"+o.spawnfile+`\`
|
|
9
9
|
`,r+=" stdout: `"+o.stdout+`\`
|
|
10
10
|
`,r+=" stderr: `"+o.stderr+`\`
|
|
11
|
-
`,i(new D(r))}),this.processing=Object.create(null),this.tracking=Object.create(null),this.terminating=!1,this.terminated=!1,this.cleaning=!1,this.terminationHandler=null,this.lastId=0}E.prototype.methods=function(){return this.exec(`methods`)},E.prototype.exec=function(e,t,r,i){r||=n.defer();var a=++this.lastId;this.processing[a]={id:a,resolver:r,options:i};var o={message:{id:a,method:e,params:t},transfer:i&&i.transfer};this.terminated?r.reject(new D(`Worker is terminated`)):this.worker.ready?this.worker.send(o.message,o.transfer):this.requestQueue.push(o);var s=this;return r.promise.catch(function(e){if(e instanceof n.CancellationError||e instanceof n.TimeoutError)return s.tracking[a]={id:a,resolver:n.defer(),options:i,error:e},delete s.processing[a],s.tracking[a].resolver.promise=s.tracking[a].resolver.promise.catch(function(e){if(delete s.tracking[a],e instanceof ee)throw e.error;return s.terminateAndNotify(!0).then(function(){throw e},function(e){throw e})}),s.worker.send({id:a,method:l}),s.tracking[a].timeoutId=setTimeout(function(){s.tracking[a].resolver.reject(e)},s.workerTerminateTimeout),s.tracking[a].resolver.promise;throw e})},E.prototype.busy=function(){return this.cleaning||Object.keys(this.processing).length>0||Object.keys(this.tracking).length>0},E.prototype.terminate=function(e,t){var n=this;if(e){for(var r in this.processing)this.processing[r]!==void 0&&this.processing[r].resolver.reject(Error(`Worker terminated`));this.processing=Object.create(null)}for(var i of Object.values(n.tracking))clearTimeout(i.timeoutId),i.resolver.reject(Error(`Worker Terminating`));if(n.tracking=Object.create(null),typeof t==`function`&&(this.terminationHandler=t),this.busy())this.terminating=!0;else{var a=function(e){if(n.terminated=!0,n.cleaning=!1,n.worker!=null&&n.worker.removeAllListeners&&n.worker.removeAllListeners(`message`),n.worker=null,n.terminating=!1,n.terminationHandler)n.terminationHandler(e,n);else if(e)throw e};if(this.worker)if(typeof this.worker.kill==`function`){if(this.worker.killed){a(Error(`worker already killed!`));return}var o=setTimeout(function(){n.worker&&n.worker.kill()},this.workerTerminateTimeout);this.worker.once(`exit`,function(){clearTimeout(o),n.worker&&(n.worker.killed=!0),a()}),this.worker.ready?this.worker.send(c):this.requestQueue.push({message:c}),this.cleaning=!0;return}else if(typeof this.worker.terminate==`function`)this.worker.terminate(),this.worker.killed=!0;else throw Error(`Failed to terminate worker`);a()}},E.prototype.terminateAndNotify=function(e,t){var r=n.defer();return t&&r.promise.timeout(t),this.terminate(e,function(e,t){e?r.reject(e):r.resolve(t)}),r.promise};function ee(e){this.error=e,this.stack=Error().stack}var D=class extends Error{constructor(e,t){super(e||`worker terminated`),this.cause=t}};t.exports=E,t.exports._tryRequireWorkerThreads=f,t.exports._setupProcessWorker=S,t.exports._setupBrowserWorker=b,t.exports._setupWorkerThreadWorker=x,t.exports.ensureWorkerThreads=u,t.exports.TerminateError=D})),b=l(((e,t)=>{function n(){this.tasks=[]}n.prototype.push=function(e){this.tasks.push(e)},n.prototype.pop=function(){return this.tasks.shift()},n.prototype.size=function(){return this.tasks.length},n.prototype.contains=function(e){return this.tasks.includes(e)},n.prototype.clear=function(){this.tasks.length=0};function r(){this.tasks=[]}r.prototype.push=function(e){this.tasks.push(e)},r.prototype.pop=function(){return this.tasks.pop()},r.prototype.size=function(){return this.tasks.length},r.prototype.contains=function(e){return this.tasks.includes(e)},r.prototype.clear=function(){this.tasks.length=0},t.exports={FIFOQueue:n,LIFOQueue:r}})),x=l(((e,t)=>{t.exports=n;function n(){this.ports=Object.create(null),this.length=0}n.prototype.nextAvailableStartingAt=function(e){for(;this.ports[e]===!0;)e++;if(e>=65535)throw Error(`WorkerPool debug port limit reached: `+e+`>= 65535`);return this.ports[e]=!0,this.length++,e},n.prototype.releasePort=function(e){delete this.ports[e],this.length--}})),S=l(((e,t)=>{var{Promise:n}=g(),r=y(),i=h(),{FIFOQueue:a,LIFOQueue:o}=b(),s=new(x());function c(e,t){typeof e==`string`?this.script=e||null:(this.script=null,t=e),this.workers=[],this.taskQueue=this._createQueue(t&&t.queueStrategy||`fifo`),t||={},this.forkArgs=Object.freeze(t.forkArgs||[]),this.forkOpts=Object.freeze(t.forkOpts||{}),this.workerOpts=Object.freeze(t.workerOpts||{}),this.workerThreadOpts=Object.freeze(t.workerThreadOpts||{}),this.debugPortStart=t.debugPortStart||43210,this.nodeWorker=t.nodeWorker,this.workerType=t.workerType||t.nodeWorker||`auto`,this.maxQueueSize=t.maxQueueSize||1/0,this.workerTerminateTimeout=t.workerTerminateTimeout||1e3,this.onCreateWorker=t.onCreateWorker||(()=>null),this.onTerminateWorker=t.onTerminateWorker||(()=>null),this.emitStdStreams=t.emitStdStreams||!1,t&&`maxWorkers`in t?(l(t.maxWorkers),this.maxWorkers=t.maxWorkers):this.maxWorkers=Math.max((i.cpus||4)-1,1),t&&`minWorkers`in t&&(t.minWorkers===`max`?this.minWorkers=this.maxWorkers:(u(t.minWorkers),this.minWorkers=t.minWorkers,this.maxWorkers=Math.max(this.minWorkers,this.maxWorkers)),this._ensureMinWorkers()),this._boundNext=this._next.bind(this),this.workerType===`thread`&&r.ensureWorkerThreads()}c.prototype.exec=function(e,t,r){if(t&&!Array.isArray(t))throw TypeError(`Array expected as argument "params"`);if(typeof e==`string`){var i=n.defer();if(this.taskQueue.size()>=this.maxQueueSize)throw Error(`Max queue size of `+this.maxQueueSize+` reached`);var a={method:e,params:t,resolver:i,timeout:null,options:r};this.taskQueue.push(a);var o=i.promise.timeout,s=this.taskQueue;return i.promise.timeout=function(e){return s.contains(a)?(a.timeout=e,i.promise):o.call(i.promise,e)},this._next(),i.promise}else if(typeof e==`function`)return this.exec(`run`,[String(e),t],r);else throw TypeError(`Function or string expected as argument "method"`)},c.prototype.proxy=function(){if(arguments.length>0)throw Error(`No arguments expected`);var e=this;return this.exec(`methods`).then(function(t){var n={};return t.forEach(function(t){n[t]=function(){return e.exec(t,Array.prototype.slice.call(arguments))}}),n})},c.prototype._next=function(){if(this.taskQueue.size()>0){var e=this._getWorker();if(e){var t=this,n=this.taskQueue.pop();if(n.resolver.promise.pending){var r=e.exec(n.method,n.params,n.resolver,n.options).then(t._boundNext).catch(function(){if(e.terminated)return t._removeWorker(e)}).then(function(){t._next()});typeof n.timeout==`number`&&r.timeout(n.timeout)}else t._next()}}},c.prototype._getWorker=function(){for(var e=this.workers,t=0;t<e.length;t++){var n=e[t];if(n.busy()===!1)return n}return e.length<this.maxWorkers?(n=this._createWorkerHandler(),e.push(n),n):null},c.prototype._removeWorker=function(e){var t=this;return s.releasePort(e.debugPort),this._removeWorkerFromList(e),this._ensureMinWorkers(),new n(function(n,r){e.terminate(!1,function(i){t.onTerminateWorker({forkArgs:e.forkArgs,forkOpts:e.forkOpts,workerThreadOpts:e.workerThreadOpts,script:e.script}),i?r(i):n(e)})})},c.prototype._removeWorkerFromList=function(e){var t=this.workers.indexOf(e);t!==-1&&this.workers.splice(t,1)},c.prototype.terminate=function(e,t){for(var r=this,i=this.taskQueue;i.size()>0;){var a=i.pop();if(a)a.resolver.reject(Error(`Pool terminated`));else break}i.clear();var o=function(e){s.releasePort(e.debugPort),this._removeWorkerFromList(e)}.bind(this),c=[];return this.workers.slice().forEach(function(n){var i=n.terminateAndNotify(e,t).then(o).always(function(){r.onTerminateWorker({forkArgs:n.forkArgs,forkOpts:n.forkOpts,workerThreadOpts:n.workerThreadOpts,script:n.script})});c.push(i)}),n.all(c)},c.prototype.stats=function(){var e=this.workers.length,t=this.workers.filter(function(e){return e.busy()}).length;return{totalWorkers:e,busyWorkers:t,idleWorkers:e-t,pendingTasks:this.taskQueue.size(),activeTasks:t}},c.prototype._ensureMinWorkers=function(){if(this.minWorkers)for(var e=this.workers.length;e<this.minWorkers;e++)this.workers.push(this._createWorkerHandler())},c.prototype._createWorkerHandler=function(){let e=this.onCreateWorker({forkArgs:this.forkArgs,forkOpts:this.forkOpts,workerOpts:this.workerOpts,workerThreadOpts:this.workerThreadOpts,script:this.script})||{};return new r(e.script||this.script,{forkArgs:e.forkArgs||this.forkArgs,forkOpts:e.forkOpts||this.forkOpts,workerOpts:e.workerOpts||this.workerOpts,workerThreadOpts:e.workerThreadOpts||this.workerThreadOpts,debugPort:s.nextAvailableStartingAt(this.debugPortStart),workerType:this.workerType,workerTerminateTimeout:this.workerTerminateTimeout,emitStdStreams:this.emitStdStreams})},c.prototype._createQueue=function(e){if(typeof e==`string`)switch(e){case`fifo`:return new a;case`lifo`:return new o;default:throw Error(`Unknown queue strategy: `+e)}if(!e)throw Error(`Queue strategy cannot be null or undefined`);for(var t=[`push`,`pop`,`size`,`contains`,`clear`],n=0;n<t.length;n++){var r=t[n];if(typeof e[r]!=`function`)throw Error(`Queue strategy must implement method: `+r)}return e};function l(e){if(!d(e)||!f(e)||e<1)throw TypeError(`Option maxWorkers must be an integer number >= 1`)}function u(e){if(!d(e)||!f(e)||e<0)throw TypeError(`Option minWorkers must be an integer number >= 0`)}function d(e){return typeof e==`number`}function f(e){return Math.round(e)==e}t.exports=c})),C=l(((e,t)=>{function n(e,t){this.message=e,this.transfer=t}t.exports=n})),w=l((e=>{var t=C(),n=g().Promise,r=`__workerpool-terminate__`,i=`__workerpool-cleanup__`,a=1e3,o={exit:function(){}},s={addAbortListener:function(e){o.abortListeners.push(e)},emit:o.emit};if(typeof self<`u`&&typeof postMessage==`function`&&typeof addEventListener==`function`)o.on=function(e,t){addEventListener(e,function(e){t(e.data)})},o.send=function(e,t){t?postMessage(e,t):postMessage(e)};else if(typeof process<`u`){var c;try{c=m()}catch(e){if(!(typeof e==`object`&&e&&e.code===`MODULE_NOT_FOUND`))throw e}if(c&&c.parentPort!==null){var l=c.parentPort;o.send=l.postMessage.bind(l),o.on=l.on.bind(l),o.exit=process.exit.bind(process)}else o.on=process.on.bind(process),o.send=function(e){process.send(e)},o.on(`disconnect`,function(){process.exit(1)}),o.exit=process.exit.bind(process)}else throw Error(`Script must be executed as a worker`);function u(e){return e&&e.toJSON?JSON.parse(JSON.stringify(e)):JSON.parse(JSON.stringify(e,Object.getOwnPropertyNames(e)))}function d(e){return e&&typeof e.then==`function`&&typeof e.catch==`function`}o.methods={},o.methods.run=function(e,t){var n=Function(`return (`+e+`).apply(this, arguments);`);return n.worker=s,n.apply(n,t)},o.methods.methods=function(){return Object.keys(o.methods)},o.terminationHandler=void 0,o.abortListenerTimeout=a,o.abortListeners=[],o.terminateAndExit=function(e){var t=function(){o.exit(e)};if(!o.terminationHandler)return t();var r=o.terminationHandler(e);return d(r)?(r.then(t,t),r):(t(),new n(function(e,t){t(Error(`Worker terminating`))}))},o.cleanup=function(e){if(!o.abortListeners.length)return o.send({id:e,method:i,error:u(Error(`Worker terminating`))}),new n(function(e){e()});var t=function(){o.exit()},r=function(){o.abortListeners.length&&(o.abortListeners=[])};let a=o.abortListeners.map(e=>e()),s,c=new n((e,t)=>{s=setTimeout(function(){t(Error(`Timeout occurred waiting for abort handler, killing worker`))},o.abortListenerTimeout)}),l=n.all(a).then(function(){clearTimeout(s),r()},function(){clearTimeout(s),t()});return new n(function(e,t){l.then(e,t),c.then(e,t)}).then(function(){o.send({id:e,method:i,error:null})},function(t){o.send({id:e,method:i,error:t?u(t):null})})};var f=null;o.on(`message`,function(e){if(e===r)return o.terminateAndExit(0);if(e.method===i)return o.cleanup(e.id);try{var n=o.methods[e.method];if(n){f=e.id;var a=n.apply(n,e.params);d(a)?a.then(function(n){n instanceof t?o.send({id:e.id,result:n.message,error:null},n.transfer):o.send({id:e.id,result:n,error:null}),f=null}).catch(function(t){o.send({id:e.id,result:null,error:u(t)}),f=null}):(a instanceof t?o.send({id:e.id,result:a.message,error:null},a.transfer):o.send({id:e.id,result:a,error:null}),f=null)}else throw Error(`Unknown method "`+e.method+`"`)}catch(t){o.send({id:e.id,result:null,error:u(t)})}}),o.register=function(e,t){if(e)for(var n in e)e.hasOwnProperty(n)&&(o.methods[n]=e[n],o.methods[n].worker=s);t&&(o.terminationHandler=t.onTerminate,o.abortListenerTimeout=t.abortListenerTimeout||a),o.send(`ready`)},o.emit=function(e){if(f){if(e instanceof t){o.send({id:f,isEvent:!0,payload:e.message},e.transfer);return}o.send({id:f,isEvent:!0,payload:e})}},e!==void 0&&(e.add=o.register,e.emit=o.emit)})),T=d(l((e=>{var{platform:t,isMainThread:n,cpus:r}=h(),{TerminateError:i}=y();function a(e,t){return new(S())(e,t)}e.pool=a;function o(e,t){w().add(e,t)}e.worker=o;var{Promise:s}=g();e.Transfer=C()}))(),1),E=5e3,ee=3e4,D=e=>T.pool(e,{maxWorkers:1,minWorkers:0,workerTerminateTimeout:ee,workerOpts:{type:void 0}}),te=class{url;maxWorkerHeapBytes;slots;idleSweepTimer;terminated=!1;constructor(e,t,n){p(t>0,`maxWorkers must be a positive number.`),this.url=e,this.maxWorkerHeapBytes=n?.maxWorkerHeapBytes??268435456,this.slots=Array.from({length:t},()=>({pool:D(e),tasksSinceSpawn:0,inflight:0,draining:!1,probing:!1,lastHeapBytes:void 0}))}exec(e,t,n){let r=this.pickSlot();r.inflight++;try{return r.pool.exec(e,t,n).then(e=>(this.onSettled(r),e)).catch(e=>{throw this.onSettled(r),e})}catch(e){throw this.onSettled(r),e}}warmUp(){let[e,...t]=this.slots;return this.warmSlot(e).then(()=>{for(let e of t)this.warmSlot(e).catch(()=>void 0)},e=>{if(t.length===0)throw e;return Promise.any(t.map(e=>this.warmSlot(e))).then(()=>void 0)})}canAcceptTasks(){return this.slots.some(e=>!e.draining)}stats(){let e={totalWorkers:0,busyWorkers:0,idleWorkers:0,pendingTasks:0,activeTasks:0,tasksSinceSpawn:0};for(let t of this.slots){let n=t.pool.stats();e.totalWorkers+=n.totalWorkers,e.busyWorkers+=n.busyWorkers,e.idleWorkers+=n.idleWorkers,e.pendingTasks+=n.pendingTasks,e.activeTasks+=n.activeTasks,e.tasksSinceSpawn+=t.tasksSinceSpawn}return e}heapStats(){let e=this.slots.map(e=>e.lastHeapBytes);return{perSlot:e,totalBytes:e.reduce((e,t)=>e+(t??0),0),maxWorkerHeapBytes:this.maxWorkerHeapBytes}}probeHeap(){if(!this.terminated)for(let e of this.slots)e.draining||this.probeSlot(e)}terminate(){this.idleSweepTimer!==void 0&&(clearTimeout(this.idleSweepTimer),this.idleSweepTimer=void 0),this.terminated=!0;for(let e of this.slots)e.pool.terminate()}pickSlot(){let e=this.slots.filter(e=>!e.draining);return(e.length>0?e:this.slots).reduce((e,t)=>t.inflight<e.inflight?t:e)}onSettled(e){e.inflight--,!this.terminated&&(e.tasksSinceSpawn++,e.tasksSinceSpawn>=128&&(e.draining=!0),e.draining&&e.inflight===0?this.recycleSlot(e):e.draining||this.probeSlot(e),this.armIdleSweep())}recycleSlot(e){e.pool.terminate(),e.pool=D(this.url),e.tasksSinceSpawn=0,e.draining=!1,e.lastHeapBytes=void 0,this.warmSlot(e).catch(()=>void 0)}warmSlot(e){e.inflight++;let t=()=>{e.inflight--,!this.terminated&&e.draining&&e.inflight===0&&this.recycleSlot(e)};return new Promise((n,r)=>{try{e.pool.exec(`warmUp`).then(()=>{t(),n()}).catch(e=>{t(),r(e)})}catch(e){t(),r(e)}})}probeSlot(e){if(e.probing)return;e.probing=!0,e.inflight++;let t=t=>{e.probing=!1,e.inflight--,!this.terminated&&(t&&(e.draining=!0),e.draining&&e.inflight===0&&this.recycleSlot(e))};try{e.pool.exec(`getWasmMemoryUsage`).then(n=>{typeof n==`number`&&(e.lastHeapBytes=n),t(typeof n==`number`&&n>=this.maxWorkerHeapBytes)}).catch(()=>{t(!0)})}catch{t(!0)}}armIdleSweep(){this.idleSweepTimer!==void 0&&clearTimeout(this.idleSweepTimer),this.idleSweepTimer=setTimeout(()=>{this.idleSweepTimer=void 0;for(let e of this.slots)e.tasksSinceSpawn>0&&e.inflight===0&&this.recycleSlot(e)},E)}};function ne(e){return e!=null}var re=class{x;y;z;constructor(e){this.x=e.x,this.y=e.y,this.z=e.z}},ie=class{vertices;uvs;indices;heights;max_height;min_height;rtc_translation;normals;skirt_vertices;skirt_uvs;skirt_indices;skirt_normals;watermask;constructor(e){this.vertices=e.transferVertices(),this.uvs=e.transferUvs(),this.indices=e.transferIndices(),this.heights=e.transferHeights(),this.max_height=e.max_height,this.min_height=e.min_height,this.rtc_translation=e.rtc_translation?new re(e.rtc_translation):void 0,e.hasNormals()&&(this.normals=e.transferNormals()),e.hasSkirt()&&(this.skirt_vertices=e.transferSkirtVertices(),this.skirt_uvs=e.transferSkirtUvs(),this.skirt_indices=e.transferSkirtIndices(),this.skirt_normals=e.transferSkirtNormals()),e.hasWatermask()&&(this.watermask=e.transferWatermask())}transferVertices(){throw Error()}transferUvs(){throw Error()}transferIndices(){throw Error()}transferHeights(){throw Error()}transferNormals(){throw Error()}transferSkirtVertices(){throw Error()}transferSkirtUvs(){throw Error()}transferSkirtIndices(){throw Error()}transferSkirtNormals(){throw Error()}transferWatermask(){throw Error()}hasSkirt(){return this.skirt_vertices!==void 0&&this.skirt_uvs!==void 0&&this.skirt_indices!==void 0}hasNormals(){return this.normals!==void 0}hasWatermask(){return this.watermask!==void 0}},ae=class{east;north;south;west;constructor(e){this.east=e.east,this.north=e.north,this.south=e.south,this.west=e.west}},oe=class{extent;position_3d_high;position_3d_high_size;position_3d_low;position_3d_low_size;position;position_size;normal;normal_size;scale_normal_and_cap;scale_normal_and_cap_size;batch_id;batch_id_size;batch_index;batch_index_size;indices;rtc_translation;outline_position;outline_position_size;outline_position_3d_high;outline_position_3d_high_size;outline_position_3d_low;outline_position_3d_low_size;outline_scale_normal_and_cap;outline_scale_normal_and_cap_size;outline_skip_indices;outline_batch_index;outline_batch_index_size;constructor(e){let t=e.extent;this.extent=t?new ae(t):void 0,this.position_3d_high=e.position_3d_high()?.slice(),this.position_3d_high_size=e.position_3d_high_size(),this.position_3d_low=e.position_3d_low()?.slice(),this.position_3d_low_size=e.position_3d_low_size(),this.position=e.position()?.slice(),this.position_size=e.position_size(),this.normal=e.normal()?.slice(),this.normal_size=e.normal_size(),this.scale_normal_and_cap=e.scale_normal_and_cap()?.slice(),this.scale_normal_and_cap_size=e.scale_normal_and_cap_size(),this.batch_id=e.batch_id()?.slice(),this.batch_id_size=e.batch_id_size(),this.batch_index=e.batch_index()?.slice(),this.batch_index_size=e.batch_index_size(),this.indices=e.indices().slice(),this.rtc_translation=e.rtc_translation?new re(e.rtc_translation):void 0;let n=e.outline();n&&(this.outline_position=n.position()?.slice(),this.outline_position_size=n.position_size(),this.outline_position_3d_high=n.position_3d_high()?.slice(),this.outline_position_3d_high_size=n.position_3d_high_size(),this.outline_position_3d_low=n.position_3d_low()?.slice(),this.outline_position_3d_low_size=n.position_3d_low_size(),this.outline_scale_normal_and_cap=n.scale_normal_and_cap()?.slice(),this.outline_scale_normal_and_cap_size=n.scale_normal_and_cap_size(),this.outline_skip_indices=n.skip_indices()?.slice(),this.outline_batch_index=n.batch_index()?.slice(),this.outline_batch_index_size=n.batch_index_size(),n.free())}},se=class{extent;position;position_size;position_high;position_high_size;position_low;position_low_size;start;start_size;start_high;start_high_size;start_low;start_low_size;forward_offset;forward_offset_size;end_high;end_high_size;end_low;end_low_size;start_normals;start_normals_size;end_normal_and_texture_coordinate_normalization_x;end_normal_and_texture_coordinate_normalization_x_size;right_normal_and_texture_coordinate_normalization_y;right_normal_and_texture_coordinate_normalization_y_size;batch_id;batch_id_size;batch_index;batch_index_size;indices;constructor(e){let t=e.extent;this.extent=t?new ae(t):void 0,this.position=e.position().slice(),this.position_size=e.position_size(),this.position_high=e.position_high()?.slice(),this.position_high_size=e.position_high_size(),this.position_low=e.position_low()?.slice(),this.position_low_size=e.position_low_size(),this.start=e.start()?.slice(),this.start_size=e.start_size(),this.start_high=e.start_high()?.slice(),this.start_high_size=e.start_high_size(),this.start_low=e.start_low()?.slice(),this.start_low_size=e.start_low_size(),this.forward_offset=e.forward_offset()?.slice(),this.forward_offset_size=e.forward_offset_size(),this.end_high=e.end_high()?.slice(),this.end_high_size=e.end_high_size(),this.end_low=e.end_low()?.slice(),this.end_low_size=e.end_low_size(),this.start_normals=e.start_normals()?.slice(),this.start_normals_size=e.start_normals_size(),this.end_normal_and_texture_coordinate_normalization_x=e.end_normal_and_texture_coordinate_normalization_x()?.slice(),this.end_normal_and_texture_coordinate_normalization_x_size=e.end_normal_and_texture_coordinate_normalization_x_size(),this.right_normal_and_texture_coordinate_normalization_y=e.right_normal_and_texture_coordinate_normalization_y().slice(),this.right_normal_and_texture_coordinate_normalization_y_size=e.right_normal_and_texture_coordinate_normalization_y_size(),this.batch_id=e.batch_id()?.slice(),this.batch_id_size=e.batch_id_size(),this.batch_index=e.batch_index()?.slice(),this.batch_index_size=e.batch_index_size(),this.indices=e.indices().slice()}};function ce(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function le(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ue(e){let t,n,r;e.length===2?(t=e===ce||e===le?e:de,n=e,r=e):(t=ce,n=(t,n)=>ce(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}function a(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}function o(e,t,n=0,a=e.length){let o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function de(){return 0}function fe(e){return e===null?NaN:+e}var pe=ue(ce);pe.right,pe.left,ue(fe).center;var me={value:()=>{}};function he(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new ge(n)}function ge(e){this._=e}function _e(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}ge.prototype=he.prototype={constructor:ge,on:function(e,t){var n=this._,r=_e(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=ve(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=ye(n[i],e.name,t);else if(t==null)for(i in n)n[i]=ye(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ge(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function ve(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function ye(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=me,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var be={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function xe(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),be.hasOwnProperty(t)?{space:be[t],local:e}:e}function Se(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function Ce(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function we(e){var t=xe(e);return(t.local?Ce:Se)(t)}function Te(){}function Ee(e){return e==null?Te:function(){return this.querySelector(e)}}function De(e){typeof e!=`function`&&(e=Ee(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new k(r,this._parents)}function Oe(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ke(){return[]}function Ae(e){return e==null?ke:function(){return this.querySelectorAll(e)}}function je(e){return function(){return Oe(e.apply(this,arguments))}}function Me(e){e=typeof e==`function`?je(e):Ae(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new k(r,i)}function Ne(e){return function(){return this.matches(e)}}function Pe(e){return function(t){return t.matches(e)}}var Fe=Array.prototype.find;function Ie(e){return function(){return Fe.call(this.children,e)}}function Le(){return this.firstElementChild}function Re(e){return this.select(e==null?Le:Ie(typeof e==`function`?e:Pe(e)))}var ze=Array.prototype.filter;function Be(){return Array.from(this.children)}function Ve(e){return function(){return ze.call(this.children,e)}}function He(e){return this.selectAll(e==null?Be:Ve(typeof e==`function`?e:Pe(e)))}function Ue(e){typeof e!=`function`&&(e=Ne(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new k(r,this._parents)}function We(e){return Array(e.length)}function Ge(){return new k(this._enter||this._groups.map(We),this._parents)}function Ke(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ke.prototype={constructor:Ke,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function qe(e){return function(){return e}}function Je(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Ke(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Ye(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Ke(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Xe(e){return e.__data__}function Ze(e,t){if(!arguments.length)return Array.from(this,Xe);var n=t?Ye:Je,r=this._parents,i=this._groups;typeof e!=`function`&&(e=qe(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=Qe(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new k(o,r),o._enter=s,o._exit=c,o}function Qe(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function $e(){return new k(this._exit||this._groups.map(We),this._parents)}function et(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function tt(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new k(s,this._parents)}function nt(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function rt(e){e||=it;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new k(i,this._parents).order()}function it(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function at(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function ot(){return Array.from(this)}function st(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function ct(){let e=0;for(let t of this)++e;return e}function lt(){return!this.node()}function ut(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function dt(e){return function(){this.removeAttribute(e)}}function ft(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pt(e,t){return function(){this.setAttribute(e,t)}}function mt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function ht(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function gt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function _t(e,t){var n=xe(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?ft:dt:typeof t==`function`?n.local?gt:ht:n.local?mt:pt)(n,t))}function vt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function yt(e){return function(){this.style.removeProperty(e)}}function bt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function xt(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function St(e,t,n){return arguments.length>1?this.each((t==null?yt:typeof t==`function`?xt:bt)(e,t,n??``)):O(this.node(),e)}function O(e,t){return e.style.getPropertyValue(t)||vt(e).getComputedStyle(e,null).getPropertyValue(t)}function Ct(e){return function(){delete this[e]}}function wt(e,t){return function(){this[e]=t}}function Tt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Et(e,t){return arguments.length>1?this.each((t==null?Ct:typeof t==`function`?Tt:wt)(e,t)):this.node()[e]}function Dt(e){return e.trim().split(/^|\s+/)}function Ot(e){return e.classList||new kt(e)}function kt(e){this._node=e,this._names=Dt(e.getAttribute(`class`)||``)}kt.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function At(e,t){for(var n=Ot(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function jt(e,t){for(var n=Ot(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Mt(e){return function(){At(this,e)}}function Nt(e){return function(){jt(this,e)}}function Pt(e,t){return function(){(t.apply(this,arguments)?At:jt)(this,e)}}function Ft(e,t){var n=Dt(e+``);if(arguments.length<2){for(var r=Ot(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Pt:t?Mt:Nt)(n,t))}function It(){this.textContent=``}function Lt(e){return function(){this.textContent=e}}function Rt(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function zt(e){return arguments.length?this.each(e==null?It:(typeof e==`function`?Rt:Lt)(e)):this.node().textContent}function Bt(){this.innerHTML=``}function Vt(e){return function(){this.innerHTML=e}}function Ht(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function Ut(e){return arguments.length?this.each(e==null?Bt:(typeof e==`function`?Ht:Vt)(e)):this.node().innerHTML}function Wt(){this.nextSibling&&this.parentNode.appendChild(this)}function Gt(){return this.each(Wt)}function Kt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function qt(){return this.each(Kt)}function Jt(e){var t=typeof e==`function`?e:we(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Yt(){return null}function Xt(e,t){var n=typeof e==`function`?e:we(e),r=t==null?Yt:typeof t==`function`?t:Ee(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Zt(){var e=this.parentNode;e&&e.removeChild(this)}function Qt(){return this.each(Zt)}function $t(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function en(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function tn(e){return this.select(e?en:$t)}function nn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function rn(e){return function(t){e.call(this,t,this.__data__)}}function an(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function on(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function sn(e,t,n){return function(){var r=this.__on,i,a=rn(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function cn(e,t,n){var r=an(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?sn:on,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function ln(e,t,n){var r=vt(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function un(e,t){return function(){return ln(this,e,t)}}function dn(e,t){return function(){return ln(this,e,t.apply(this,arguments))}}function fn(e,t){return this.each((typeof t==`function`?dn:un)(e,t))}function*pn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var mn=[null];function k(e,t){this._groups=e,this._parents=t}function A(){return new k([[document.documentElement]],mn)}function hn(){return this}k.prototype=A.prototype={constructor:k,select:De,selectAll:Me,selectChild:Re,selectChildren:He,filter:Ue,data:Ze,enter:Ge,exit:$e,join:et,merge:tt,selection:hn,order:nt,sort:rt,call:at,nodes:ot,node:st,size:ct,empty:lt,each:ut,attr:_t,style:St,property:Et,classed:Ft,text:zt,html:Ut,raise:Gt,lower:qt,append:Jt,insert:Xt,remove:Qt,clone:tn,datum:nn,on:cn,dispatch:fn,[Symbol.iterator]:pn};function gn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function _n(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function j(){}var M=.7,vn=1/M,N=`\\s*([+-]?\\d+)\\s*`,P=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,F=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,yn=/^#([0-9a-f]{3,8})$/,bn=RegExp(`^rgb\\(${N},${N},${N}\\)$`),xn=RegExp(`^rgb\\(${F},${F},${F}\\)$`),Sn=RegExp(`^rgba\\(${N},${N},${N},${P}\\)$`),Cn=RegExp(`^rgba\\(${F},${F},${F},${P}\\)$`),wn=RegExp(`^hsl\\(${P},${F},${F}\\)$`),Tn=RegExp(`^hsla\\(${P},${F},${F},${P}\\)$`),En={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};gn(j,I,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Dn,formatHex:Dn,formatHex8:On,formatHsl:kn,formatRgb:An,toString:An});function Dn(){return this.rgb().formatHex()}function On(){return this.rgb().formatHex8()}function kn(){return Bn(this).formatHsl()}function An(){return this.rgb().formatRgb()}function I(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=yn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?jn(t):n===3?new L(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Mn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Mn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=bn.exec(e))?new L(t[1],t[2],t[3],1):(t=xn.exec(e))?new L(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Sn.exec(e))?Mn(t[1],t[2],t[3],t[4]):(t=Cn.exec(e))?Mn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=wn.exec(e))?zn(t[1],t[2]/100,t[3]/100,1):(t=Tn.exec(e))?zn(t[1],t[2]/100,t[3]/100,t[4]):En.hasOwnProperty(e)?jn(En[e]):e===`transparent`?new L(NaN,NaN,NaN,0):null}function jn(e){return new L(e>>16&255,e>>8&255,e&255,1)}function Mn(e,t,n,r){return r<=0&&(e=t=n=NaN),new L(e,t,n,r)}function Nn(e){return e instanceof j||(e=I(e)),e?(e=e.rgb(),new L(e.r,e.g,e.b,e.opacity)):new L}function Pn(e,t,n,r){return arguments.length===1?Nn(e):new L(e,t,n,r??1)}function L(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}gn(L,Pn,_n(j,{brighter(e){return e=e==null?vn:vn**+e,new L(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?M:M**+e,new L(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new L(R(this.r),R(this.g),R(this.b),Rn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fn,formatHex:Fn,formatHex8:In,formatRgb:Ln,toString:Ln}));function Fn(){return`#${z(this.r)}${z(this.g)}${z(this.b)}`}function In(){return`#${z(this.r)}${z(this.g)}${z(this.b)}${z((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ln(){let e=Rn(this.opacity);return`${e===1?`rgb(`:`rgba(`}${R(this.r)}, ${R(this.g)}, ${R(this.b)}${e===1?`)`:`, ${e})`}`}function Rn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function R(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function z(e){return e=R(e),(e<16?`0`:``)+e.toString(16)}function zn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new B(e,t,n,r)}function Bn(e){if(e instanceof B)return new B(e.h,e.s,e.l,e.opacity);if(e instanceof j||(e=I(e)),!e)return new B;if(e instanceof B)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new B(o,s,c,e.opacity)}function Vn(e,t,n,r){return arguments.length===1?Bn(e):new B(e,t,n,r??1)}function B(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}gn(B,Vn,_n(j,{brighter(e){return e=e==null?vn:vn**+e,new B(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?M:M**+e,new B(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new L(Wn(e>=240?e-240:e+120,i,r),Wn(e,i,r),Wn(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new B(Hn(this.h),Un(this.s),Un(this.l),Rn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Rn(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Hn(this.h)}, ${Un(this.s)*100}%, ${Un(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Hn(e){return e=(e||0)%360,e<0?e+360:e}function Un(e){return Math.max(0,Math.min(1,e||0))}function Wn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Gn=e=>()=>e;function Kn(e,t){return function(n){return e+n*t}}function qn(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Jn(e){return(e=+e)==1?Yn:function(t,n){return n-t?qn(t,n,e):Gn(isNaN(t)?n:t)}}function Yn(e,t){var n=t-e;return n?Kn(e,n):Gn(isNaN(e)?t:e)}var Xn=(function e(t){var n=Jn(t);function r(e,t){var r=n((e=Pn(e)).r,(t=Pn(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Yn(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function V(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Zn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qn=new RegExp(Zn.source,`g`);function $n(e){return function(){return e}}function er(e){return function(t){return e(t)+``}}function tr(e,t){var n=Zn.lastIndex=Qn.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Zn.exec(e))&&(i=Qn.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:V(r,i)})),n=Qn.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?er(c[0].x):$n(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}var nr=180/Math.PI,rr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ir(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*nr,skewX:Math.atan(c)*nr,scaleX:o,scaleY:s}}var ar;function or(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?rr:ir(t.a,t.b,t.c,t.d,t.e,t.f)}function sr(e){return e==null||(ar||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),ar.setAttribute(`transform`,e),!(e=ar.transform.baseVal.consolidate()))?rr:(e=e.matrix,ir(e.a,e.b,e.c,e.d,e.e,e.f))}function cr(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:V(e,i)},{i:c-2,x:V(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:V(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:V(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:V(e,n)},{i:s-2,x:V(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var lr=cr(or,`px, `,`px)`,`deg)`),ur=cr(sr,`, `,`)`,`)`),H=0,dr=0,fr=0,pr=1e3,mr,U,hr=0,W=0,gr=0,G=typeof performance==`object`&&performance.now?performance:Date,_r=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function vr(){return W||=(_r(yr),G.now()+gr)}function yr(){W=0}function br(){this._call=this._time=this._next=null}br.prototype=xr.prototype={constructor:br,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?vr():+n)+(t==null?0:+t),!this._next&&U!==this&&(U?U._next=this:mr=this,U=this),this._call=e,this._time=n,Er()},stop:function(){this._call&&(this._call=null,this._time=1/0,Er())}};function xr(e,t,n){var r=new br;return r.restart(e,t,n),r}function Sr(){vr(),++H;for(var e=mr,t;e;)(t=W-e._time)>=0&&e._call.call(void 0,t),e=e._next;--H}function Cr(){W=(hr=G.now())+gr,H=dr=0;try{Sr()}finally{H=0,Tr(),W=0}}function wr(){var e=G.now(),t=e-hr;t>pr&&(gr-=t,hr=e)}function Tr(){for(var e,t=mr,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:mr=n);U=e,Er(r)}function Er(e){H||(dr&&=clearTimeout(dr),e-W>24?(e<1/0&&(dr=setTimeout(Cr,e-G.now()-gr)),fr&&=clearInterval(fr)):(fr||=(hr=G.now(),setInterval(wr,pr)),H=1,_r(Cr)))}function Dr(e,t,n){var r=new br;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Or=he(`start`,`end`,`cancel`,`interrupt`),kr=[];function Ar(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Mr(e,n,{name:t,index:r,group:i,on:Or,tween:kr,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function jr(e,t){var n=q(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function K(e,t){var n=q(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function q(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Mr(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=xr(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Dr(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(Dr(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function Nr(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Pr(e){return this.each(function(){Nr(this,e)})}function Fr(e,t){var n,r;return function(){var i=K(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Ir(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=K(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function Lr(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=q(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Fr:Ir)(n,e,t))}function Rr(e,t,n){var r=e._id;return e.each(function(){var e=K(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return q(e,r).value[t]}}function zr(e,t){var n;return(typeof t==`number`?V:t instanceof I?Xn:(n=I(t))?(t=n,Xn):tr)(e,t)}function Br(e){return function(){this.removeAttribute(e)}}function Vr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Hr(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function Ur(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function Wr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Gr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Kr(e,t){var n=xe(e),r=n===`transform`?ur:zr;return this.attrTween(e,typeof t==`function`?(n.local?Gr:Wr)(n,r,Rr(this,`attr.`+e,t)):t==null?(n.local?Vr:Br)(n):(n.local?Ur:Hr)(n,r,t))}function qr(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Jr(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Yr(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Jr(e,i)),n}return i._value=t,i}function Xr(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&qr(e,i)),n}return i._value=t,i}function Zr(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=xe(e);return this.tween(n,(r.local?Yr:Xr)(r,t))}function Qr(e,t){return function(){jr(this,e).delay=+t.apply(this,arguments)}}function $r(e,t){return t=+t,function(){jr(this,e).delay=t}}function ei(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Qr:$r)(t,e)):q(this.node(),t).delay}function ti(e,t){return function(){K(this,e).duration=+t.apply(this,arguments)}}function ni(e,t){return t=+t,function(){K(this,e).duration=t}}function ri(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?ti:ni)(t,e)):q(this.node(),t).duration}function ii(e,t){if(typeof t!=`function`)throw Error();return function(){K(this,e).ease=t}}function ai(e){var t=this._id;return arguments.length?this.each(ii(t,e)):q(this.node(),t).ease}function oi(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();K(this,e).ease=n}}function si(e){if(typeof e!=`function`)throw Error();return this.each(oi(this._id,e))}function ci(e){typeof e!=`function`&&(e=Ne(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new J(r,this._parents,this._name,this._id)}function li(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new J(o,this._parents,this._name,this._id)}function ui(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function di(e,t,n){var r,i,a=ui(t)?jr:K;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function fi(e,t){var n=this._id;return arguments.length<2?q(this.node(),n).on.on(e):this.each(di(n,e,t))}function pi(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function mi(){return this.on(`end.remove`,pi(this._id))}function hi(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ee(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,Ar(l[f],t,n,f,l,q(u,n)));return new J(a,this._parents,t,n)}function gi(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ae(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=q(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Ar(p,t,n,h,f,m);a.push(f),o.push(u)}return new J(a,o,t,n)}var _i=A.prototype.constructor;function vi(){return new _i(this._groups,this._parents)}function yi(e,t){var n,r,i;return function(){var a=O(this,e),o=(this.style.removeProperty(e),O(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function bi(e){return function(){this.style.removeProperty(e)}}function xi(e,t,n){var r,i=n+``,a;return function(){var o=O(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Si(e,t,n){var r,i,a;return function(){var o=O(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),O(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Ci(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=K(this,e),l=c.on,u=c.value[a]==null?s||=bi(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function wi(e,t,n){var r=(e+=``)==`transform`?lr:zr;return t==null?this.styleTween(e,yi(e,r)).on(`end.style.`+e,bi(e)):typeof t==`function`?this.styleTween(e,Si(e,r,Rr(this,`style.`+e,t))).each(Ci(this._id,e)):this.styleTween(e,xi(e,r,t),n).on(`end.style.`+e,null)}function Ti(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Ei(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Ti(e,a,n)),r}return a._value=t,a}function Di(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,Ei(e,t,n??``))}function Oi(e){return function(){this.textContent=e}}function ki(e){return function(){var t=e(this);this.textContent=t??``}}function Ai(e){return this.tween(`text`,typeof e==`function`?ki(Rr(this,`text`,e)):Oi(e==null?``:e+``))}function ji(e){return function(t){this.textContent=e.call(this,t)}}function Mi(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&ji(r)),t}return r._value=e,r}function Ni(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,Mi(e))}function Pi(){for(var e=this._name,t=this._id,n=Ri(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=q(c,t);Ar(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new J(r,this._parents,e,n)}function Fi(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=K(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var Ii=0;function J(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Li(e){return A().transition(e)}function Ri(){return++Ii}var Y=A.prototype;J.prototype=Li.prototype={constructor:J,select:hi,selectAll:gi,selectChild:Y.selectChild,selectChildren:Y.selectChildren,filter:ci,merge:li,selection:vi,transition:Pi,call:Y.call,nodes:Y.nodes,node:Y.node,size:Y.size,empty:Y.empty,each:Y.each,on:fi,attr:Kr,attrTween:Zr,style:wi,styleTween:Di,text:Ai,textTween:Ni,remove:mi,tween:Lr,delay:ei,duration:ri,ease:ai,easeVarying:si,end:Fi,[Symbol.iterator]:Y[Symbol.iterator]};function zi(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Bi={time:null,delay:0,duration:250,ease:zi};function Vi(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function Hi(e){var t,n;e instanceof J?(t=e._id,e=e._name):(t=Ri(),(n=Bi).time=vr(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&Ar(c,e,t,l,o,n||Vi(c,t));return new J(r,this._parents,e,t)}A.prototype.interrupt=Pr,A.prototype.transition=Hi;var{abs:Ui,max:Wi,min:Gi}=Math;[`w`,`e`].map(Ki),[`n`,`s`].map(Ki),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(Ki);function Ki(e){return{type:e}}function qi(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function Ji(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Yi(e){return e=Ji(Math.abs(e)),e?e[1]:NaN}function Xi(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function Zi(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var Qi=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function $i(e){if(!(t=Qi.exec(e)))throw Error(`invalid format: `+e);var t;return new ea({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}$i.prototype=ea.prototype;function ea(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}ea.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function ta(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var na;function ra(e,t){var n=Ji(e,t);if(!n)return na=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(na=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+Ji(e,Math.max(0,t+a-1))[0]}function ia(e,t){var n=Ji(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var aa={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:qi,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>ia(e*100,t),r:ia,s:ra,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function oa(e){return e}var sa=Array.prototype.map,ca=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function la(e){var t=e.grouping===void 0||e.thousands===void 0?oa:Xi(sa.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?oa:Zi(sa.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=$i(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):aa[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=aa[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=ta(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&na!==void 0?ca[8+na/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T<h?Array(h-T+1).join(u):``;switch(g&&m&&(e=t(E+e,E.length?h-r.length:1/0),E=``),d){case`<`:e=n+e+r+E;break;case`=`:e=n+E+e+r;break;case`^`:e=E.slice(0,T=E.length>>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r;break}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(Yi(t)/3)))*3,r=10**-n,i=l((e=$i(e),e.type=`f`,e),{suffix:ca[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var ua;da({thousands:`,`,grouping:[3],currency:[`$`,``]});function da(e){return ua=la(e),ua.format,ua.formatPrefix,ua}function X(e,t,n){this.k=e,this.x=t,this.y=n}X.prototype={constructor:X,scale:function(e){return e===1?this:new X(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new X(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var fa=new X(1,0,0);pa.prototype=X.prototype;function pa(e){for(;!e.__zoom;)if(!(e=e.parentNode))return fa;return e.__zoom}function ma(e){let t=new oe(e);return{result:t,transfers:[t.batch_id?.buffer,t.batch_index?.buffer,t.normal?.buffer,t.position_3d_high?.buffer,t.position_3d_low?.buffer,t.position?.buffer,t.scale_normal_and_cap?.buffer,t.indices.buffer,t.outline_position?.buffer,t.outline_position_3d_high?.buffer,t.outline_position_3d_low?.buffer,t.outline_scale_normal_and_cap?.buffer,t.outline_skip_indices?.buffer,t.outline_batch_index?.buffer].filter(ne)}}function Z(e){return new n.TransferableTile(ha(e.coords),e.max_height,e.min_height,e.cached_mesh_handle?ga(e.cached_mesh_handle):void 0)}function ha(e){return new n.TileXYZ(e.x,e.y,e.z)}function ga(e){return new n.CachedMeshHandle(e.vertices,e.indices,e.uvs,e.heights)}function _a(e){return new n.UpsamplableTerrainGeometry(e.uvs,e.indices,e.heights,e.normals,e.watermask)}function va(e){return new n.ExtentRadianF32(e.west,e.south,e.east,e.north)}function ya(e){return new n.PolygonMaterial(e.show,e.castShadow,e.receiveShadow,e.color,e.clampToGround,e.tiled,e.height,e.extrudedHeight,e.wireframe,e.outline,e.perPositionHeight,e.__internal__)}function ba(e){let t=new n.TransferablePolygonBatchedFeature(e.crs,e.length);return t.setOuterRing(e.outer_ring.length,t=>{t.set(e.outer_ring)}),t.setOuterRingSizes(e.outer_ring_sizes.length,t=>{t.set(e.outer_ring_sizes)}),t.setHoles(e.holes.length,t=>{t.set(e.holes)}),t.setHolesSizes(e.holes_sizes.length,t=>{t.set(e.holes_sizes)}),t.setHolesTotalSizes(e.holes_total_sizes.length,t=>{t.set(e.holes_total_sizes)}),t.setHolesBoundaries(e.holes_boundaries.length,t=>{t.set(e.holes_boundaries)}),t.setExpectedWindingOrders(e.expected_winding_orders.length,t=>{t.set(e.expected_winding_orders)}),t.setBatchIds(e.batch_ids.length,t=>{t.set(e.batch_ids)}),t.setBatchIndices(e.batch_indices.length,t=>{t.set(e.batch_indices)}),t}var xa;async function Q(){return xa??=(0,n.default)(),xa}async function Sa(){if(!xa)return 0;let{memory:e}=await xa;return e.buffer.byteLength}async function Ca(e,t,r,i){await Q();let a=(0,n.constructPolygonBatchedFeature)(ba(e),ya(t),r,i?va(i):void 0);if(!a)return;let{result:o,transfers:s}=ma(a);return a.free(),$(o,s)}function wa(e){let t=new se(e);return{result:t,transfers:[t.position.buffer,t.position_high?.buffer,t.position_low?.buffer,t.start?.buffer,t.start_high?.buffer,t.start_low?.buffer,t.end_high?.buffer,t.end_low?.buffer,t.start_normals?.buffer,t.forward_offset?.buffer,t.end_normal_and_texture_coordinate_normalization_x?.buffer,t.right_normal_and_texture_coordinate_normalization_y.buffer,t.batch_id?.buffer,t.batch_index?.buffer,t.indices.buffer].filter(ne)}}function Ta(e){return new n.PolylineMaterial(e.show,e.castShadow,e.receiveShadow,e.color,e.clampToGround,e.tiled,e.height,e.width,e.maxWidth,e.__internal__)}function Ea(e){let t=new n.TransferablePolylineBatchedFeature(e.crs,e.length);return t.setPoints(e.points.length,t=>{t.set(e.points)}),t.setPointsSizes(e.points_sizes.length,t=>{t.set(e.points_sizes)}),t.setBatchIds(e.batch_ids.length,t=>{t.set(e.batch_ids)}),t.setBatchIndices(e.batch_indices.length,t=>{t.set(e.batch_indices)}),t}async function Da(e,t,r){await Q();let i=(0,n.constructPolylineBatchedFeature)(Ea(e),Ta(t),r);if(!i)return;let{result:a,transfers:o}=wa(i);return i.free(),$(a,o)}function Oa(e){let t=new ie(e),n=[t.vertices.buffer,t.uvs.buffer,t.indices.buffer,t.heights.buffer];return t.normals&&n.push(t.normals.buffer),t.skirt_vertices&&n.push(t.skirt_vertices.buffer),t.skirt_uvs&&n.push(t.skirt_uvs.buffer),t.skirt_indices&&n.push(t.skirt_indices.buffer),t.skirt_normals&&n.push(t.skirt_normals.buffer),t.watermask&&n.push(t.watermask.buffer),{result:t,transfers:n}}async function ka(e,t,r,i,a,o){await Q();let s=(0,n.constructQuantizedMeshTerrainMesh)(e,Z(t),r,i,a,o),{result:c,transfers:l}=Oa(s);return s.free(),$({result:c},[...l])}function Aa(e){return new n.TransferableRasterDEMData(new n.ElevationDecoder(e.decoder.r_scaler,e.decoder.g_scaler,e.decoder.b_scaler,e.decoder.offset,e.decoder.max_offset,e.decoder.min_offset,e.decoder.boundary,e.decoder.epsilon))}async function ja(e,t,r,i,a,o){await Q();let s=i+1,c=n.TransferableMartini.fromSize(s),l=(0,n.constructTerrainMesh)(e,Z(t),Aa(r),c,a,o),{result:u,transfers:d}=Oa(l);return l.free(),$({result:u},[...d])}async function Ma(e){let t=await createImageBitmap(e);try{let e=new OffscreenCanvas(t.width,t.height).getContext(`2d`);if(e===null)throw Error(`failed to get context of canvas`);e.drawImage(t,0,0);let n=e.getImageData(0,0,t.width,t.height).data;return $(n,[n.buffer])}finally{t.close()}}async function Na(e,t){try{let n=t.getContext(`2d`);if(n===null)throw Error(`failed to get context of canvas`);return n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height).data}finally{e.close()}}async function Pa(e,t,r,i,a,o,s){await Q();let c=(0,n.parseMvtTile)(e,t,r,i,a?va(a):void 0,o,s),l,u,d,f,p;try{l=c.f64_stream(),u=c.f32_stream(),d=c.u32_stream(),f=c.u8_stream(),p=c.meta()}finally{c.free()}return $({f64_stream:l,f32_stream:u,u32_stream:d,u8_stream:f,meta:p},[l.buffer,u.buffer,d.buffer,f.buffer])}async function Fa(e,t,r,i,a,o,s){await Q();let c=(0,n.upsampleQuantizedMeshTerrainMesh)(Z(e),Z(t),_a(r),i,a,o,s),{result:l,transfers:u}=Oa(c);return c.free(),$(l,u)}async function Ia(e,t,r,i,a,o,s){await Q();let c=(0,n.upsampleTerrainMesh)(Z(e),Z(t),Aa(r),_a(i),a,o,s),{result:l,transfers:u}=Oa(c);return c.free(),$(l,u)}async function La(){await Q()}var Ra={constructTerrainMesh:ja,constructQuantizedMeshTerrainMesh:ka,upsampleTerrainMesh:Ia,upsampleQuantizedMeshTerrainMesh:Fa,getImageDataFromImageBitmap:Na,getImageDataFromBlob:Ma,constructPolygonBatchedFeature:Ca,constructPolylineBatchedFeature:Da,parseMvtTile:Pa,warmUp:La,getWasmMemoryUsage:Sa},$=(e,t)=>new T.Transfer(e,t),za=!1,Ba=(...e)=>(za||=(T.worker(Ra),Va(),!0),T.worker(...e));function Va(){Ra.warmUp.worker?.addAbortListener(async()=>{})}var{initializeWorkerPool:Ha,terminateWorkerPool:Ua,warmUpWorkerPool:Wa,worker:Ga,workerPoolStats:Ka,workerPoolHeapStats:qa,probeWorkerPoolHeap:Ja}=(()=>{let e;return{initializeWorkerPool:(t,n,r)=>{if(e)throw Error(`Worker pool has already been initialized.`);e={pool:new te(t,n.total,r),manager:n}},terminateWorkerPool:()=>{e&&=(e.pool.terminate(),void 0)},warmUpWorkerPool:()=>(p(e,`initializeWorkerPool() must be invoked first.`),e.pool.warmUp()),worker:()=>(p(e,`initializeWorkerPool() must be invoked first.`),{pool:e.pool,manager:e.manager}),workerPoolStats:()=>e?.pool.stats(),workerPoolHeapStats:()=>e?.pool.heapStats(),probeWorkerPoolHeap:()=>e?.pool.probeHeap()}})(),Ya=()=>{let{pool:e,manager:t}=Ga();return t.canIncrement()&&e.canAcceptTasks()};function Xa(e,t,n){let{pool:r,manager:i}=Ga();i.increment();try{return r.exec(e,t,n).then(e=>(i.decrement(),e)).catch(e=>{throw i.decrement(),e})}catch(e){throw i.decrement(),e}}e.canWorkerProcessImmediately=Ya,e.createConcurrencyManager=e=>{let t=0,n=()=>t!==e,r=()=>t!==0;return{total:e,actives:()=>t,idles:()=>e-t,increment:()=>{n()&&t++},decrement:()=>{r()&&t--},canIncrement:n,canDecrement:r,reset:()=>{t=0}}},e.initializeWorkerPool=Ha,e.probeWorkerPoolHeap=Ja,e.queueTask=Xa,e.registerTasks=Ba,e.terminateWorkerPool=Ua,e.transfer=$,e.warmUpWorkerPool=Wa,e.workerPoolHeapStats=qa,e.workerPoolStats=Ka});
|
|
11
|
+
`,i(new D(r))}),this.processing=Object.create(null),this.tracking=Object.create(null),this.terminating=!1,this.terminated=!1,this.cleaning=!1,this.terminationHandler=null,this.lastId=0}E.prototype.methods=function(){return this.exec(`methods`)},E.prototype.exec=function(e,t,r,i){r||=n.defer();var a=++this.lastId;this.processing[a]={id:a,resolver:r,options:i};var o={message:{id:a,method:e,params:t},transfer:i&&i.transfer};this.terminated?r.reject(new D(`Worker is terminated`)):this.worker.ready?this.worker.send(o.message,o.transfer):this.requestQueue.push(o);var s=this;return r.promise.catch(function(e){if(e instanceof n.CancellationError||e instanceof n.TimeoutError)return s.tracking[a]={id:a,resolver:n.defer(),options:i,error:e},delete s.processing[a],s.tracking[a].resolver.promise=s.tracking[a].resolver.promise.catch(function(e){if(delete s.tracking[a],e instanceof ee)throw e.error;return s.terminateAndNotify(!0).then(function(){throw e},function(e){throw e})}),s.worker.send({id:a,method:l}),s.tracking[a].timeoutId=setTimeout(function(){s.tracking[a].resolver.reject(e)},s.workerTerminateTimeout),s.tracking[a].resolver.promise;throw e})},E.prototype.busy=function(){return this.cleaning||Object.keys(this.processing).length>0||Object.keys(this.tracking).length>0},E.prototype.terminate=function(e,t){var n=this;if(e){for(var r in this.processing)this.processing[r]!==void 0&&this.processing[r].resolver.reject(Error(`Worker terminated`));this.processing=Object.create(null)}for(var i of Object.values(n.tracking))clearTimeout(i.timeoutId),i.resolver.reject(Error(`Worker Terminating`));if(n.tracking=Object.create(null),typeof t==`function`&&(this.terminationHandler=t),this.busy())this.terminating=!0;else{var a=function(e){if(n.terminated=!0,n.cleaning=!1,n.worker!=null&&n.worker.removeAllListeners&&n.worker.removeAllListeners(`message`),n.worker=null,n.terminating=!1,n.terminationHandler)n.terminationHandler(e,n);else if(e)throw e};if(this.worker){if(typeof this.worker.kill==`function`){if(this.worker.killed){a(Error(`worker already killed!`));return}var o=setTimeout(function(){n.worker&&n.worker.kill()},this.workerTerminateTimeout);this.worker.once(`exit`,function(){clearTimeout(o),n.worker&&(n.worker.killed=!0),a()}),this.worker.ready?this.worker.send(c):this.requestQueue.push({message:c}),this.cleaning=!0;return}if(typeof this.worker.terminate==`function`)this.worker.terminate(),this.worker.killed=!0;else throw Error(`Failed to terminate worker`)}a()}},E.prototype.terminateAndNotify=function(e,t){var r=n.defer();return t&&r.promise.timeout(t),this.terminate(e,function(e,t){e?r.reject(e):r.resolve(t)}),r.promise};function ee(e){this.error=e,this.stack=Error().stack}var D=class extends Error{constructor(e,t){super(e||`worker terminated`),this.cause=t}};t.exports=E,t.exports._tryRequireWorkerThreads=f,t.exports._setupProcessWorker=S,t.exports._setupBrowserWorker=b,t.exports._setupWorkerThreadWorker=x,t.exports.ensureWorkerThreads=u,t.exports.TerminateError=D})),b=l(((e,t)=>{function n(){this.tasks=[]}n.prototype.push=function(e){this.tasks.push(e)},n.prototype.pop=function(){return this.tasks.shift()},n.prototype.size=function(){return this.tasks.length},n.prototype.contains=function(e){return this.tasks.includes(e)},n.prototype.clear=function(){this.tasks.length=0};function r(){this.tasks=[]}r.prototype.push=function(e){this.tasks.push(e)},r.prototype.pop=function(){return this.tasks.pop()},r.prototype.size=function(){return this.tasks.length},r.prototype.contains=function(e){return this.tasks.includes(e)},r.prototype.clear=function(){this.tasks.length=0},t.exports={FIFOQueue:n,LIFOQueue:r}})),x=l(((e,t)=>{t.exports=n;function n(){this.ports=Object.create(null),this.length=0}n.prototype.nextAvailableStartingAt=function(e){for(;this.ports[e]===!0;)e++;if(e>=65535)throw Error(`WorkerPool debug port limit reached: `+e+`>= 65535`);return this.ports[e]=!0,this.length++,e},n.prototype.releasePort=function(e){delete this.ports[e],this.length--}})),S=l(((e,t)=>{var{Promise:n}=g(),r=y(),i=h(),{FIFOQueue:a,LIFOQueue:o}=b(),s=new(x());function c(e,t){typeof e==`string`?this.script=e||null:(this.script=null,t=e),this.workers=[],this.taskQueue=this._createQueue(t&&t.queueStrategy||`fifo`),t||={},this.forkArgs=Object.freeze(t.forkArgs||[]),this.forkOpts=Object.freeze(t.forkOpts||{}),this.workerOpts=Object.freeze(t.workerOpts||{}),this.workerThreadOpts=Object.freeze(t.workerThreadOpts||{}),this.debugPortStart=t.debugPortStart||43210,this.nodeWorker=t.nodeWorker,this.workerType=t.workerType||t.nodeWorker||`auto`,this.maxQueueSize=t.maxQueueSize||1/0,this.workerTerminateTimeout=t.workerTerminateTimeout||1e3,this.onCreateWorker=t.onCreateWorker||(()=>null),this.onTerminateWorker=t.onTerminateWorker||(()=>null),this.emitStdStreams=t.emitStdStreams||!1,t&&`maxWorkers`in t?(l(t.maxWorkers),this.maxWorkers=t.maxWorkers):this.maxWorkers=Math.max((i.cpus||4)-1,1),t&&`minWorkers`in t&&(t.minWorkers===`max`?this.minWorkers=this.maxWorkers:(u(t.minWorkers),this.minWorkers=t.minWorkers,this.maxWorkers=Math.max(this.minWorkers,this.maxWorkers)),this._ensureMinWorkers()),this._boundNext=this._next.bind(this),this.workerType===`thread`&&r.ensureWorkerThreads()}c.prototype.exec=function(e,t,r){if(t&&!Array.isArray(t))throw TypeError(`Array expected as argument "params"`);if(typeof e==`string`){var i=n.defer();if(this.taskQueue.size()>=this.maxQueueSize)throw Error(`Max queue size of `+this.maxQueueSize+` reached`);var a={method:e,params:t,resolver:i,timeout:null,options:r};this.taskQueue.push(a);var o=i.promise.timeout,s=this.taskQueue;return i.promise.timeout=function(e){return s.contains(a)?(a.timeout=e,i.promise):o.call(i.promise,e)},this._next(),i.promise}if(typeof e==`function`)return this.exec(`run`,[String(e),t],r);throw TypeError(`Function or string expected as argument "method"`)},c.prototype.proxy=function(){if(arguments.length>0)throw Error(`No arguments expected`);var e=this;return this.exec(`methods`).then(function(t){var n={};return t.forEach(function(t){n[t]=function(){return e.exec(t,Array.prototype.slice.call(arguments))}}),n})},c.prototype._next=function(){if(this.taskQueue.size()>0){var e=this._getWorker();if(e){var t=this,n=this.taskQueue.pop();if(n.resolver.promise.pending){var r=e.exec(n.method,n.params,n.resolver,n.options).then(t._boundNext).catch(function(){if(e.terminated)return t._removeWorker(e)}).then(function(){t._next()});typeof n.timeout==`number`&&r.timeout(n.timeout)}else t._next()}}},c.prototype._getWorker=function(){for(var e=this.workers,t=0;t<e.length;t++){var n=e[t];if(n.busy()===!1)return n}return e.length<this.maxWorkers?(n=this._createWorkerHandler(),e.push(n),n):null},c.prototype._removeWorker=function(e){var t=this;return s.releasePort(e.debugPort),this._removeWorkerFromList(e),this._ensureMinWorkers(),new n(function(n,r){e.terminate(!1,function(i){t.onTerminateWorker({forkArgs:e.forkArgs,forkOpts:e.forkOpts,workerThreadOpts:e.workerThreadOpts,script:e.script}),i?r(i):n(e)})})},c.prototype._removeWorkerFromList=function(e){var t=this.workers.indexOf(e);t!==-1&&this.workers.splice(t,1)},c.prototype.terminate=function(e,t){for(var r=this,i=this.taskQueue;i.size()>0;){var a=i.pop();if(a)a.resolver.reject(Error(`Pool terminated`));else break}i.clear();var o=function(e){s.releasePort(e.debugPort),this._removeWorkerFromList(e)}.bind(this),c=[];return this.workers.slice().forEach(function(n){var i=n.terminateAndNotify(e,t).then(o).always(function(){r.onTerminateWorker({forkArgs:n.forkArgs,forkOpts:n.forkOpts,workerThreadOpts:n.workerThreadOpts,script:n.script})});c.push(i)}),n.all(c)},c.prototype.stats=function(){var e=this.workers.length,t=this.workers.filter(function(e){return e.busy()}).length;return{totalWorkers:e,busyWorkers:t,idleWorkers:e-t,pendingTasks:this.taskQueue.size(),activeTasks:t}},c.prototype._ensureMinWorkers=function(){if(this.minWorkers)for(var e=this.workers.length;e<this.minWorkers;e++)this.workers.push(this._createWorkerHandler())},c.prototype._createWorkerHandler=function(){let e=this.onCreateWorker({forkArgs:this.forkArgs,forkOpts:this.forkOpts,workerOpts:this.workerOpts,workerThreadOpts:this.workerThreadOpts,script:this.script})||{};return new r(e.script||this.script,{forkArgs:e.forkArgs||this.forkArgs,forkOpts:e.forkOpts||this.forkOpts,workerOpts:e.workerOpts||this.workerOpts,workerThreadOpts:e.workerThreadOpts||this.workerThreadOpts,debugPort:s.nextAvailableStartingAt(this.debugPortStart),workerType:this.workerType,workerTerminateTimeout:this.workerTerminateTimeout,emitStdStreams:this.emitStdStreams})},c.prototype._createQueue=function(e){if(typeof e==`string`)switch(e){case`fifo`:return new a;case`lifo`:return new o;default:throw Error(`Unknown queue strategy: `+e)}if(!e)throw Error(`Queue strategy cannot be null or undefined`);for(var t=[`push`,`pop`,`size`,`contains`,`clear`],n=0;n<t.length;n++){var r=t[n];if(typeof e[r]!=`function`)throw Error(`Queue strategy must implement method: `+r)}return e};function l(e){if(!d(e)||!f(e)||e<1)throw TypeError(`Option maxWorkers must be an integer number >= 1`)}function u(e){if(!d(e)||!f(e)||e<0)throw TypeError(`Option minWorkers must be an integer number >= 0`)}function d(e){return typeof e==`number`}function f(e){return Math.round(e)==e}t.exports=c})),C=l(((e,t)=>{function n(e,t){this.message=e,this.transfer=t}t.exports=n})),w=l((e=>{var t=C(),n=g().Promise,r=`__workerpool-terminate__`,i=`__workerpool-cleanup__`,a=1e3,o={exit:function(){}},s={addAbortListener:function(e){o.abortListeners.push(e)},emit:o.emit};if(typeof self<`u`&&typeof postMessage==`function`&&typeof addEventListener==`function`)o.on=function(e,t){addEventListener(e,function(e){t(e.data)})},o.send=function(e,t){t?postMessage(e,t):postMessage(e)};else if(typeof process<`u`){var c;try{c=m()}catch(e){if(!(typeof e==`object`&&e&&e.code===`MODULE_NOT_FOUND`))throw e}if(c&&c.parentPort!==null){var l=c.parentPort;o.send=l.postMessage.bind(l),o.on=l.on.bind(l),o.exit=process.exit.bind(process)}else o.on=process.on.bind(process),o.send=function(e){process.send(e)},o.on(`disconnect`,function(){process.exit(1)}),o.exit=process.exit.bind(process)}else throw Error(`Script must be executed as a worker`);function u(e){return e&&e.toJSON?JSON.parse(JSON.stringify(e)):JSON.parse(JSON.stringify(e,Object.getOwnPropertyNames(e)))}function d(e){return e&&typeof e.then==`function`&&typeof e.catch==`function`}o.methods={},o.methods.run=function(e,t){var n=Function(`return (`+e+`).apply(this, arguments);`);return n.worker=s,n.apply(n,t)},o.methods.methods=function(){return Object.keys(o.methods)},o.terminationHandler=void 0,o.abortListenerTimeout=a,o.abortListeners=[],o.terminateAndExit=function(e){var t=function(){o.exit(e)};if(!o.terminationHandler)return t();var r=o.terminationHandler(e);return d(r)?(r.then(t,t),r):(t(),new n(function(e,t){t(Error(`Worker terminating`))}))},o.cleanup=function(e){if(!o.abortListeners.length)return o.send({id:e,method:i,error:u(Error(`Worker terminating`))}),new n(function(e){e()});var t=function(){o.exit()},r=function(){o.abortListeners.length&&(o.abortListeners=[])};let a=o.abortListeners.map(e=>e()),s,c=new n((e,t)=>{s=setTimeout(function(){t(Error(`Timeout occurred waiting for abort handler, killing worker`))},o.abortListenerTimeout)}),l=n.all(a).then(function(){clearTimeout(s),r()},function(){clearTimeout(s),t()});return new n(function(e,t){l.then(e,t),c.then(e,t)}).then(function(){o.send({id:e,method:i,error:null})},function(t){o.send({id:e,method:i,error:t?u(t):null})})};var f=null;o.on(`message`,function(e){if(e===r)return o.terminateAndExit(0);if(e.method===i)return o.cleanup(e.id);try{var n=o.methods[e.method];if(n){f=e.id;var a=n.apply(n,e.params);d(a)?a.then(function(n){n instanceof t?o.send({id:e.id,result:n.message,error:null},n.transfer):o.send({id:e.id,result:n,error:null}),f=null}).catch(function(t){o.send({id:e.id,result:null,error:u(t)}),f=null}):(a instanceof t?o.send({id:e.id,result:a.message,error:null},a.transfer):o.send({id:e.id,result:a,error:null}),f=null)}else throw Error(`Unknown method "`+e.method+`"`)}catch(t){o.send({id:e.id,result:null,error:u(t)})}}),o.register=function(e,t){if(e)for(var n in e)e.hasOwnProperty(n)&&(o.methods[n]=e[n],o.methods[n].worker=s);t&&(o.terminationHandler=t.onTerminate,o.abortListenerTimeout=t.abortListenerTimeout||a),o.send(`ready`)},o.emit=function(e){if(f){if(e instanceof t){o.send({id:f,isEvent:!0,payload:e.message},e.transfer);return}o.send({id:f,isEvent:!0,payload:e})}},e!==void 0&&(e.add=o.register,e.emit=o.emit)})),T=d(l((e=>{var{platform:t,isMainThread:n,cpus:r}=h(),{TerminateError:i}=y();function a(e,t){return new(S())(e,t)}e.pool=a;function o(e,t){w().add(e,t)}e.worker=o;var{Promise:s}=g();e.Transfer=C()}))(),1),E=5e3,ee=3e4,D=e=>T.pool(e,{maxWorkers:1,minWorkers:0,workerTerminateTimeout:ee,workerOpts:{type:void 0}}),te=class{url;maxWorkerHeapBytes;slots;idleSweepTimer;terminated=!1;constructor(e,t,n){p(t>0,`maxWorkers must be a positive number.`),this.url=e,this.maxWorkerHeapBytes=n?.maxWorkerHeapBytes??268435456,this.slots=Array.from({length:t},()=>({pool:D(e),tasksSinceSpawn:0,inflight:0,draining:!1,probing:!1,lastHeapBytes:void 0}))}exec(e,t,n){let r=this.pickSlot();r.inflight++;try{return r.pool.exec(e,t,n).then(e=>(this.onSettled(r),e)).catch(e=>{throw this.onSettled(r),e})}catch(e){throw this.onSettled(r),e}}warmUp(){let[e,...t]=this.slots;return this.warmSlot(e).then(()=>{for(let e of t)this.warmSlot(e).catch(()=>void 0)},e=>{if(t.length===0)throw e;return Promise.any(t.map(e=>this.warmSlot(e))).then(()=>void 0)})}canAcceptTasks(){return this.slots.some(e=>!e.draining)}stats(){let e={totalWorkers:0,busyWorkers:0,idleWorkers:0,pendingTasks:0,activeTasks:0,tasksSinceSpawn:0};for(let t of this.slots){let n=t.pool.stats();e.totalWorkers+=n.totalWorkers,e.busyWorkers+=n.busyWorkers,e.idleWorkers+=n.idleWorkers,e.pendingTasks+=n.pendingTasks,e.activeTasks+=n.activeTasks,e.tasksSinceSpawn+=t.tasksSinceSpawn}return e}heapStats(){let e=this.slots.map(e=>e.lastHeapBytes);return{perSlot:e,totalBytes:e.reduce((e,t)=>e+(t??0),0),maxWorkerHeapBytes:this.maxWorkerHeapBytes}}probeHeap(){if(!this.terminated)for(let e of this.slots)e.draining||this.probeSlot(e)}terminate(){this.idleSweepTimer!==void 0&&(clearTimeout(this.idleSweepTimer),this.idleSweepTimer=void 0),this.terminated=!0;for(let e of this.slots)e.pool.terminate()}pickSlot(){let e=this.slots.filter(e=>!e.draining);return(e.length>0?e:this.slots).reduce((e,t)=>t.inflight<e.inflight?t:e)}onSettled(e){e.inflight--,!this.terminated&&(e.tasksSinceSpawn++,e.tasksSinceSpawn>=128&&(e.draining=!0),e.draining&&e.inflight===0?this.recycleSlot(e):e.draining||this.probeSlot(e),this.armIdleSweep())}recycleSlot(e){e.pool.terminate(),e.pool=D(this.url),e.tasksSinceSpawn=0,e.draining=!1,e.lastHeapBytes=void 0,this.warmSlot(e).catch(()=>void 0)}warmSlot(e){e.inflight++;let t=()=>{e.inflight--,!this.terminated&&e.draining&&e.inflight===0&&this.recycleSlot(e)};return new Promise((n,r)=>{try{e.pool.exec(`warmUp`).then(()=>{t(),n()}).catch(e=>{t(),r(e)})}catch(e){t(),r(e)}})}probeSlot(e){if(e.probing)return;e.probing=!0,e.inflight++;let t=t=>{e.probing=!1,e.inflight--,!this.terminated&&(t&&(e.draining=!0),e.draining&&e.inflight===0&&this.recycleSlot(e))};try{e.pool.exec(`getWasmMemoryUsage`).then(n=>{typeof n==`number`&&(e.lastHeapBytes=n),t(typeof n==`number`&&n>=this.maxWorkerHeapBytes)}).catch(()=>{t(!0)})}catch{t(!0)}}armIdleSweep(){this.idleSweepTimer!==void 0&&clearTimeout(this.idleSweepTimer),this.idleSweepTimer=setTimeout(()=>{this.idleSweepTimer=void 0;for(let e of this.slots)e.tasksSinceSpawn>0&&e.inflight===0&&this.recycleSlot(e)},E)}};function ne(e){return e!=null}var re=class{x;y;z;constructor(e){this.x=e.x,this.y=e.y,this.z=e.z}},ie=class{vertices;uvs;indices;heights;max_height;min_height;rtc_translation;normals;skirt_vertices;skirt_uvs;skirt_indices;skirt_normals;watermask;constructor(e){this.vertices=e.transferVertices(),this.uvs=e.transferUvs(),this.indices=e.transferIndices(),this.heights=e.transferHeights(),this.max_height=e.max_height,this.min_height=e.min_height,this.rtc_translation=e.rtc_translation?new re(e.rtc_translation):void 0,e.hasNormals()&&(this.normals=e.transferNormals()),e.hasSkirt()&&(this.skirt_vertices=e.transferSkirtVertices(),this.skirt_uvs=e.transferSkirtUvs(),this.skirt_indices=e.transferSkirtIndices(),this.skirt_normals=e.transferSkirtNormals()),e.hasWatermask()&&(this.watermask=e.transferWatermask())}transferVertices(){throw Error()}transferUvs(){throw Error()}transferIndices(){throw Error()}transferHeights(){throw Error()}transferNormals(){throw Error()}transferSkirtVertices(){throw Error()}transferSkirtUvs(){throw Error()}transferSkirtIndices(){throw Error()}transferSkirtNormals(){throw Error()}transferWatermask(){throw Error()}hasSkirt(){return this.skirt_vertices!==void 0&&this.skirt_uvs!==void 0&&this.skirt_indices!==void 0}hasNormals(){return this.normals!==void 0}hasWatermask(){return this.watermask!==void 0}},ae=class{east;north;south;west;constructor(e){this.east=e.east,this.north=e.north,this.south=e.south,this.west=e.west}},oe=class{extent;position_3d_high;position_3d_high_size;position_3d_low;position_3d_low_size;position;position_size;normal;normal_size;scale_normal_and_cap;scale_normal_and_cap_size;batch_id;batch_id_size;batch_index;batch_index_size;indices;rtc_translation;outline_position;outline_position_size;outline_position_3d_high;outline_position_3d_high_size;outline_position_3d_low;outline_position_3d_low_size;outline_scale_normal_and_cap;outline_scale_normal_and_cap_size;outline_skip_indices;outline_batch_index;outline_batch_index_size;constructor(e){let t=e.extent;this.extent=t?new ae(t):void 0,this.position_3d_high=e.position_3d_high()?.slice(),this.position_3d_high_size=e.position_3d_high_size(),this.position_3d_low=e.position_3d_low()?.slice(),this.position_3d_low_size=e.position_3d_low_size(),this.position=e.position()?.slice(),this.position_size=e.position_size(),this.normal=e.normal()?.slice(),this.normal_size=e.normal_size(),this.scale_normal_and_cap=e.scale_normal_and_cap()?.slice(),this.scale_normal_and_cap_size=e.scale_normal_and_cap_size(),this.batch_id=e.batch_id()?.slice(),this.batch_id_size=e.batch_id_size(),this.batch_index=e.batch_index()?.slice(),this.batch_index_size=e.batch_index_size(),this.indices=e.indices().slice(),this.rtc_translation=e.rtc_translation?new re(e.rtc_translation):void 0;let n=e.outline();n&&(this.outline_position=n.position()?.slice(),this.outline_position_size=n.position_size(),this.outline_position_3d_high=n.position_3d_high()?.slice(),this.outline_position_3d_high_size=n.position_3d_high_size(),this.outline_position_3d_low=n.position_3d_low()?.slice(),this.outline_position_3d_low_size=n.position_3d_low_size(),this.outline_scale_normal_and_cap=n.scale_normal_and_cap()?.slice(),this.outline_scale_normal_and_cap_size=n.scale_normal_and_cap_size(),this.outline_skip_indices=n.skip_indices()?.slice(),this.outline_batch_index=n.batch_index()?.slice(),this.outline_batch_index_size=n.batch_index_size(),n.free())}},se=class{extent;position;position_size;position_high;position_high_size;position_low;position_low_size;start;start_size;start_high;start_high_size;start_low;start_low_size;forward_offset;forward_offset_size;end_high;end_high_size;end_low;end_low_size;start_normals;start_normals_size;end_normal_and_texture_coordinate_normalization_x;end_normal_and_texture_coordinate_normalization_x_size;right_normal_and_texture_coordinate_normalization_y;right_normal_and_texture_coordinate_normalization_y_size;batch_id;batch_id_size;batch_index;batch_index_size;indices;constructor(e){let t=e.extent;this.extent=t?new ae(t):void 0,this.position=e.position().slice(),this.position_size=e.position_size(),this.position_high=e.position_high()?.slice(),this.position_high_size=e.position_high_size(),this.position_low=e.position_low()?.slice(),this.position_low_size=e.position_low_size(),this.start=e.start()?.slice(),this.start_size=e.start_size(),this.start_high=e.start_high()?.slice(),this.start_high_size=e.start_high_size(),this.start_low=e.start_low()?.slice(),this.start_low_size=e.start_low_size(),this.forward_offset=e.forward_offset()?.slice(),this.forward_offset_size=e.forward_offset_size(),this.end_high=e.end_high()?.slice(),this.end_high_size=e.end_high_size(),this.end_low=e.end_low()?.slice(),this.end_low_size=e.end_low_size(),this.start_normals=e.start_normals()?.slice(),this.start_normals_size=e.start_normals_size(),this.end_normal_and_texture_coordinate_normalization_x=e.end_normal_and_texture_coordinate_normalization_x()?.slice(),this.end_normal_and_texture_coordinate_normalization_x_size=e.end_normal_and_texture_coordinate_normalization_x_size(),this.right_normal_and_texture_coordinate_normalization_y=e.right_normal_and_texture_coordinate_normalization_y().slice(),this.right_normal_and_texture_coordinate_normalization_y_size=e.right_normal_and_texture_coordinate_normalization_y_size(),this.batch_id=e.batch_id()?.slice(),this.batch_id_size=e.batch_id_size(),this.batch_index=e.batch_index()?.slice(),this.batch_index_size=e.batch_index_size(),this.indices=e.indices().slice()}};function ce(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function le(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ue(e){let t,n,r;e.length===2?(t=e===ce||e===le?e:de,n=e,r=e):(t=ce,n=(t,n)=>ce(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}function a(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}function o(e,t,n=0,a=e.length){let o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function de(){return 0}function fe(e){return e===null?NaN:+e}var pe=ue(ce);pe.right,pe.left,ue(fe).center;var me={value:()=>{}};function he(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new ge(n)}function ge(e){this._=e}function _e(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}ge.prototype=he.prototype={constructor:ge,on:function(e,t){var n=this._,r=_e(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=ve(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=ye(n[i],e.name,t);else if(t==null)for(i in n)n[i]=ye(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ge(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function ve(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function ye(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=me,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var be={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function xe(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),be.hasOwnProperty(t)?{space:be[t],local:e}:e}function Se(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function Ce(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function we(e){var t=xe(e);return(t.local?Ce:Se)(t)}function Te(){}function Ee(e){return e==null?Te:function(){return this.querySelector(e)}}function De(e){typeof e!=`function`&&(e=Ee(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new k(r,this._parents)}function Oe(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ke(){return[]}function Ae(e){return e==null?ke:function(){return this.querySelectorAll(e)}}function je(e){return function(){return Oe(e.apply(this,arguments))}}function Me(e){e=typeof e==`function`?je(e):Ae(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new k(r,i)}function Ne(e){return function(){return this.matches(e)}}function Pe(e){return function(t){return t.matches(e)}}var Fe=Array.prototype.find;function Ie(e){return function(){return Fe.call(this.children,e)}}function Le(){return this.firstElementChild}function Re(e){return this.select(e==null?Le:Ie(typeof e==`function`?e:Pe(e)))}var ze=Array.prototype.filter;function Be(){return Array.from(this.children)}function Ve(e){return function(){return ze.call(this.children,e)}}function He(e){return this.selectAll(e==null?Be:Ve(typeof e==`function`?e:Pe(e)))}function Ue(e){typeof e!=`function`&&(e=Ne(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new k(r,this._parents)}function We(e){return Array(e.length)}function Ge(){return new k(this._enter||this._groups.map(We),this._parents)}function Ke(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ke.prototype={constructor:Ke,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function qe(e){return function(){return e}}function Je(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Ke(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Ye(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Ke(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Xe(e){return e.__data__}function Ze(e,t){if(!arguments.length)return Array.from(this,Xe);var n=t?Ye:Je,r=this._parents,i=this._groups;typeof e!=`function`&&(e=qe(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=Qe(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new k(o,r),o._enter=s,o._exit=c,o}function Qe(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function $e(){return new k(this._exit||this._groups.map(We),this._parents)}function et(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function tt(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new k(s,this._parents)}function nt(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function rt(e){e||=it;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new k(i,this._parents).order()}function it(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function at(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function ot(){return Array.from(this)}function st(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function ct(){let e=0;for(let t of this)++e;return e}function lt(){return!this.node()}function ut(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function dt(e){return function(){this.removeAttribute(e)}}function ft(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pt(e,t){return function(){this.setAttribute(e,t)}}function mt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function ht(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function gt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function _t(e,t){var n=xe(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?ft:dt:typeof t==`function`?n.local?gt:ht:n.local?mt:pt)(n,t))}function vt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function yt(e){return function(){this.style.removeProperty(e)}}function bt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function xt(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function St(e,t,n){return arguments.length>1?this.each((t==null?yt:typeof t==`function`?xt:bt)(e,t,n??``)):O(this.node(),e)}function O(e,t){return e.style.getPropertyValue(t)||vt(e).getComputedStyle(e,null).getPropertyValue(t)}function Ct(e){return function(){delete this[e]}}function wt(e,t){return function(){this[e]=t}}function Tt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Et(e,t){return arguments.length>1?this.each((t==null?Ct:typeof t==`function`?Tt:wt)(e,t)):this.node()[e]}function Dt(e){return e.trim().split(/^|\s+/)}function Ot(e){return e.classList||new kt(e)}function kt(e){this._node=e,this._names=Dt(e.getAttribute(`class`)||``)}kt.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function At(e,t){for(var n=Ot(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function jt(e,t){for(var n=Ot(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Mt(e){return function(){At(this,e)}}function Nt(e){return function(){jt(this,e)}}function Pt(e,t){return function(){(t.apply(this,arguments)?At:jt)(this,e)}}function Ft(e,t){var n=Dt(e+``);if(arguments.length<2){for(var r=Ot(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Pt:t?Mt:Nt)(n,t))}function It(){this.textContent=``}function Lt(e){return function(){this.textContent=e}}function Rt(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function zt(e){return arguments.length?this.each(e==null?It:(typeof e==`function`?Rt:Lt)(e)):this.node().textContent}function Bt(){this.innerHTML=``}function Vt(e){return function(){this.innerHTML=e}}function Ht(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function Ut(e){return arguments.length?this.each(e==null?Bt:(typeof e==`function`?Ht:Vt)(e)):this.node().innerHTML}function Wt(){this.nextSibling&&this.parentNode.appendChild(this)}function Gt(){return this.each(Wt)}function Kt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function qt(){return this.each(Kt)}function Jt(e){var t=typeof e==`function`?e:we(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Yt(){return null}function Xt(e,t){var n=typeof e==`function`?e:we(e),r=t==null?Yt:typeof t==`function`?t:Ee(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Zt(){var e=this.parentNode;e&&e.removeChild(this)}function Qt(){return this.each(Zt)}function $t(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function en(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function tn(e){return this.select(e?en:$t)}function nn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function rn(e){return function(t){e.call(this,t,this.__data__)}}function an(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function on(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function sn(e,t,n){return function(){var r=this.__on,i,a=rn(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function cn(e,t,n){var r=an(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?sn:on,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function ln(e,t,n){var r=vt(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function un(e,t){return function(){return ln(this,e,t)}}function dn(e,t){return function(){return ln(this,e,t.apply(this,arguments))}}function fn(e,t){return this.each((typeof t==`function`?dn:un)(e,t))}function*pn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var mn=[null];function k(e,t){this._groups=e,this._parents=t}function A(){return new k([[document.documentElement]],mn)}function hn(){return this}k.prototype=A.prototype={constructor:k,select:De,selectAll:Me,selectChild:Re,selectChildren:He,filter:Ue,data:Ze,enter:Ge,exit:$e,join:et,merge:tt,selection:hn,order:nt,sort:rt,call:at,nodes:ot,node:st,size:ct,empty:lt,each:ut,attr:_t,style:St,property:Et,classed:Ft,text:zt,html:Ut,raise:Gt,lower:qt,append:Jt,insert:Xt,remove:Qt,clone:tn,datum:nn,on:cn,dispatch:fn,[Symbol.iterator]:pn};function gn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function _n(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function j(){}var M=.7,vn=1/M,N=`\\s*([+-]?\\d+)\\s*`,P=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,F=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,yn=/^#([0-9a-f]{3,8})$/,bn=RegExp(`^rgb\\(${N},${N},${N}\\)$`),xn=RegExp(`^rgb\\(${F},${F},${F}\\)$`),Sn=RegExp(`^rgba\\(${N},${N},${N},${P}\\)$`),Cn=RegExp(`^rgba\\(${F},${F},${F},${P}\\)$`),wn=RegExp(`^hsl\\(${P},${F},${F}\\)$`),Tn=RegExp(`^hsla\\(${P},${F},${F},${P}\\)$`),En={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};gn(j,I,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Dn,formatHex:Dn,formatHex8:On,formatHsl:kn,formatRgb:An,toString:An});function Dn(){return this.rgb().formatHex()}function On(){return this.rgb().formatHex8()}function kn(){return Bn(this).formatHsl()}function An(){return this.rgb().formatRgb()}function I(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=yn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?jn(t):n===3?new L(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Mn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Mn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=bn.exec(e))?new L(t[1],t[2],t[3],1):(t=xn.exec(e))?new L(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Sn.exec(e))?Mn(t[1],t[2],t[3],t[4]):(t=Cn.exec(e))?Mn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=wn.exec(e))?zn(t[1],t[2]/100,t[3]/100,1):(t=Tn.exec(e))?zn(t[1],t[2]/100,t[3]/100,t[4]):En.hasOwnProperty(e)?jn(En[e]):e===`transparent`?new L(NaN,NaN,NaN,0):null}function jn(e){return new L(e>>16&255,e>>8&255,e&255,1)}function Mn(e,t,n,r){return r<=0&&(e=t=n=NaN),new L(e,t,n,r)}function Nn(e){return e instanceof j||(e=I(e)),e?(e=e.rgb(),new L(e.r,e.g,e.b,e.opacity)):new L}function Pn(e,t,n,r){return arguments.length===1?Nn(e):new L(e,t,n,r??1)}function L(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}gn(L,Pn,_n(j,{brighter(e){return e=e==null?vn:vn**+e,new L(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?M:M**+e,new L(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new L(R(this.r),R(this.g),R(this.b),Rn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fn,formatHex:Fn,formatHex8:In,formatRgb:Ln,toString:Ln}));function Fn(){return`#${z(this.r)}${z(this.g)}${z(this.b)}`}function In(){return`#${z(this.r)}${z(this.g)}${z(this.b)}${z((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ln(){let e=Rn(this.opacity);return`${e===1?`rgb(`:`rgba(`}${R(this.r)}, ${R(this.g)}, ${R(this.b)}${e===1?`)`:`, ${e})`}`}function Rn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function R(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function z(e){return e=R(e),(e<16?`0`:``)+e.toString(16)}function zn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new B(e,t,n,r)}function Bn(e){if(e instanceof B)return new B(e.h,e.s,e.l,e.opacity);if(e instanceof j||(e=I(e)),!e)return new B;if(e instanceof B)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new B(o,s,c,e.opacity)}function Vn(e,t,n,r){return arguments.length===1?Bn(e):new B(e,t,n,r??1)}function B(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}gn(B,Vn,_n(j,{brighter(e){return e=e==null?vn:vn**+e,new B(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?M:M**+e,new B(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new L(Wn(e>=240?e-240:e+120,i,r),Wn(e,i,r),Wn(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new B(Hn(this.h),Un(this.s),Un(this.l),Rn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Rn(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Hn(this.h)}, ${Un(this.s)*100}%, ${Un(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Hn(e){return e=(e||0)%360,e<0?e+360:e}function Un(e){return Math.max(0,Math.min(1,e||0))}function Wn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Gn=e=>()=>e;function Kn(e,t){return function(n){return e+n*t}}function qn(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Jn(e){return(e=+e)==1?Yn:function(t,n){return n-t?qn(t,n,e):Gn(isNaN(t)?n:t)}}function Yn(e,t){var n=t-e;return n?Kn(e,n):Gn(isNaN(e)?t:e)}var Xn=(function e(t){var n=Jn(t);function r(e,t){var r=n((e=Pn(e)).r,(t=Pn(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Yn(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function V(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Zn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qn=new RegExp(Zn.source,`g`);function $n(e){return function(){return e}}function er(e){return function(t){return e(t)+``}}function tr(e,t){var n=Zn.lastIndex=Qn.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Zn.exec(e))&&(i=Qn.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:V(r,i)})),n=Qn.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?er(c[0].x):$n(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}var nr=180/Math.PI,rr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ir(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*nr,skewX:Math.atan(c)*nr,scaleX:o,scaleY:s}}var ar;function or(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?rr:ir(t.a,t.b,t.c,t.d,t.e,t.f)}function sr(e){return e==null||(ar||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),ar.setAttribute(`transform`,e),!(e=ar.transform.baseVal.consolidate()))?rr:(e=e.matrix,ir(e.a,e.b,e.c,e.d,e.e,e.f))}function cr(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:V(e,i)},{i:c-2,x:V(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:V(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:V(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:V(e,n)},{i:s-2,x:V(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var lr=cr(or,`px, `,`px)`,`deg)`),ur=cr(sr,`, `,`)`,`)`),H=0,dr=0,fr=0,pr=1e3,mr,U,hr=0,W=0,gr=0,G=typeof performance==`object`&&performance.now?performance:Date,_r=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function vr(){return W||=(_r(yr),G.now()+gr)}function yr(){W=0}function br(){this._call=this._time=this._next=null}br.prototype=xr.prototype={constructor:br,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?vr():+n)+(t==null?0:+t),!this._next&&U!==this&&(U?U._next=this:mr=this,U=this),this._call=e,this._time=n,Er()},stop:function(){this._call&&(this._call=null,this._time=1/0,Er())}};function xr(e,t,n){var r=new br;return r.restart(e,t,n),r}function Sr(){vr(),++H;for(var e=mr,t;e;)(t=W-e._time)>=0&&e._call.call(void 0,t),e=e._next;--H}function Cr(){W=(hr=G.now())+gr,H=dr=0;try{Sr()}finally{H=0,Tr(),W=0}}function wr(){var e=G.now(),t=e-hr;t>pr&&(gr-=t,hr=e)}function Tr(){for(var e,t=mr,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:mr=n);U=e,Er(r)}function Er(e){H||(dr&&=clearTimeout(dr),e-W>24?(e<1/0&&(dr=setTimeout(Cr,e-G.now()-gr)),fr&&=clearInterval(fr)):(fr||=(hr=G.now(),setInterval(wr,pr)),H=1,_r(Cr)))}function Dr(e,t,n){var r=new br;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Or=he(`start`,`end`,`cancel`,`interrupt`),kr=[];function Ar(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Mr(e,n,{name:t,index:r,group:i,on:Or,tween:kr,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function jr(e,t){var n=q(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function K(e,t){var n=q(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function q(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Mr(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=xr(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Dr(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(Dr(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function Nr(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Pr(e){return this.each(function(){Nr(this,e)})}function Fr(e,t){var n,r;return function(){var i=K(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Ir(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=K(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function Lr(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=q(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Fr:Ir)(n,e,t))}function Rr(e,t,n){var r=e._id;return e.each(function(){var e=K(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return q(e,r).value[t]}}function zr(e,t){var n;return(typeof t==`number`?V:t instanceof I?Xn:(n=I(t))?(t=n,Xn):tr)(e,t)}function Br(e){return function(){this.removeAttribute(e)}}function Vr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Hr(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function Ur(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function Wr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Gr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Kr(e,t){var n=xe(e),r=n===`transform`?ur:zr;return this.attrTween(e,typeof t==`function`?(n.local?Gr:Wr)(n,r,Rr(this,`attr.`+e,t)):t==null?(n.local?Vr:Br)(n):(n.local?Ur:Hr)(n,r,t))}function qr(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Jr(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Yr(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Jr(e,i)),n}return i._value=t,i}function Xr(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&qr(e,i)),n}return i._value=t,i}function Zr(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=xe(e);return this.tween(n,(r.local?Yr:Xr)(r,t))}function Qr(e,t){return function(){jr(this,e).delay=+t.apply(this,arguments)}}function $r(e,t){return t=+t,function(){jr(this,e).delay=t}}function ei(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Qr:$r)(t,e)):q(this.node(),t).delay}function ti(e,t){return function(){K(this,e).duration=+t.apply(this,arguments)}}function ni(e,t){return t=+t,function(){K(this,e).duration=t}}function ri(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?ti:ni)(t,e)):q(this.node(),t).duration}function ii(e,t){if(typeof t!=`function`)throw Error();return function(){K(this,e).ease=t}}function ai(e){var t=this._id;return arguments.length?this.each(ii(t,e)):q(this.node(),t).ease}function oi(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();K(this,e).ease=n}}function si(e){if(typeof e!=`function`)throw Error();return this.each(oi(this._id,e))}function ci(e){typeof e!=`function`&&(e=Ne(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new J(r,this._parents,this._name,this._id)}function li(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new J(o,this._parents,this._name,this._id)}function ui(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function di(e,t,n){var r,i,a=ui(t)?jr:K;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function fi(e,t){var n=this._id;return arguments.length<2?q(this.node(),n).on.on(e):this.each(di(n,e,t))}function pi(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function mi(){return this.on(`end.remove`,pi(this._id))}function hi(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ee(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,Ar(l[f],t,n,f,l,q(u,n)));return new J(a,this._parents,t,n)}function gi(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ae(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=q(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Ar(p,t,n,h,f,m);a.push(f),o.push(u)}return new J(a,o,t,n)}var _i=A.prototype.constructor;function vi(){return new _i(this._groups,this._parents)}function yi(e,t){var n,r,i;return function(){var a=O(this,e),o=(this.style.removeProperty(e),O(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function bi(e){return function(){this.style.removeProperty(e)}}function xi(e,t,n){var r,i=n+``,a;return function(){var o=O(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Si(e,t,n){var r,i,a;return function(){var o=O(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),O(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Ci(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=K(this,e),l=c.on,u=c.value[a]==null?s||=bi(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function wi(e,t,n){var r=(e+=``)==`transform`?lr:zr;return t==null?this.styleTween(e,yi(e,r)).on(`end.style.`+e,bi(e)):typeof t==`function`?this.styleTween(e,Si(e,r,Rr(this,`style.`+e,t))).each(Ci(this._id,e)):this.styleTween(e,xi(e,r,t),n).on(`end.style.`+e,null)}function Ti(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Ei(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Ti(e,a,n)),r}return a._value=t,a}function Di(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,Ei(e,t,n??``))}function Oi(e){return function(){this.textContent=e}}function ki(e){return function(){var t=e(this);this.textContent=t??``}}function Ai(e){return this.tween(`text`,typeof e==`function`?ki(Rr(this,`text`,e)):Oi(e==null?``:e+``))}function ji(e){return function(t){this.textContent=e.call(this,t)}}function Mi(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&ji(r)),t}return r._value=e,r}function Ni(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,Mi(e))}function Pi(){for(var e=this._name,t=this._id,n=Li(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=q(c,t);Ar(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new J(r,this._parents,e,n)}function Fi(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=K(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var Ii=0;function J(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Li(){return++Ii}var Y=A.prototype;J.prototype={constructor:J,select:hi,selectAll:gi,selectChild:Y.selectChild,selectChildren:Y.selectChildren,filter:ci,merge:li,selection:vi,transition:Pi,call:Y.call,nodes:Y.nodes,node:Y.node,size:Y.size,empty:Y.empty,each:Y.each,on:fi,attr:Kr,attrTween:Zr,style:wi,styleTween:Di,text:Ai,textTween:Ni,remove:mi,tween:Lr,delay:ei,duration:ri,ease:ai,easeVarying:si,end:Fi,[Symbol.iterator]:Y[Symbol.iterator]};function Ri(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var zi={time:null,delay:0,duration:250,ease:Ri};function Bi(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function Vi(e){var t,n;e instanceof J?(t=e._id,e=e._name):(t=Li(),(n=zi).time=vr(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&Ar(c,e,t,l,o,n||Bi(c,t));return new J(r,this._parents,e,t)}A.prototype.interrupt=Pr,A.prototype.transition=Vi;var{abs:Hi,max:Ui,min:Wi}=Math;[`w`,`e`].map(Gi),[`n`,`s`].map(Gi),[`n`,`w`,`e`,`s`,`nw`,`ne`,`sw`,`se`].map(Gi);function Gi(e){return{type:e}}function Ki(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function qi(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Ji(e){return e=qi(Math.abs(e)),e?e[1]:NaN}function Yi(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function Xi(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var Zi=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Qi(e){if(!(t=Zi.exec(e)))throw Error(`invalid format: `+e);var t;return new $i({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Qi.prototype=$i.prototype;function $i(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}$i.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function ea(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(i+1):e}var ta;function na(e,t){var n=qi(e,t);if(!n)return ta=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(ta=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+qi(e,Math.max(0,t+a-1))[0]}function ra(e,t){var n=qi(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var ia={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:Ki,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>ra(e*100,t),r:ra,s:na,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function aa(e){return e}var oa=Array.prototype.map,sa=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function ca(e){var t=e.grouping===void 0||e.thousands===void 0?aa:Yi(oa.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?aa:Xi(oa.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=Qi(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):ia[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=ia[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=ea(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&ta!==void 0?sa[8+ta/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T<h?Array(h-T+1).join(u):``;switch(g&&m&&(e=t(E+e,E.length?h-r.length:1/0),E=``),d){case`<`:e=n+e+r+E;break;case`=`:e=n+E+e+r;break;case`^`:e=E.slice(0,T=E.length>>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(Ji(t)/3)))*3,r=10**-n,i=l((e=Qi(e),e.type=`f`,e),{suffix:sa[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var la;ua({thousands:`,`,grouping:[3],currency:[`$`,``]});function ua(e){return la=ca(e),la.format,la.formatPrefix,la}function X(e,t,n){this.k=e,this.x=t,this.y=n}X.prototype={constructor:X,scale:function(e){return e===1?this:new X(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new X(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var da=new X(1,0,0);fa.prototype=X.prototype;function fa(e){for(;!e.__zoom;)if(!(e=e.parentNode))return da;return e.__zoom}function pa(e){let t=new oe(e);return{result:t,transfers:[t.batch_id?.buffer,t.batch_index?.buffer,t.normal?.buffer,t.position_3d_high?.buffer,t.position_3d_low?.buffer,t.position?.buffer,t.scale_normal_and_cap?.buffer,t.indices.buffer,t.outline_position?.buffer,t.outline_position_3d_high?.buffer,t.outline_position_3d_low?.buffer,t.outline_scale_normal_and_cap?.buffer,t.outline_skip_indices?.buffer,t.outline_batch_index?.buffer].filter(ne)}}function Z(e){return new n.TransferableTile(ma(e.coords),e.max_height,e.min_height,e.cached_mesh_handle?ha(e.cached_mesh_handle):void 0)}function ma(e){return new n.TileXYZ(e.x,e.y,e.z)}function ha(e){return new n.CachedMeshHandle(e.vertices,e.indices,e.uvs,e.heights)}function ga(e){return new n.UpsamplableTerrainGeometry(e.uvs,e.indices,e.heights,e.normals,e.watermask)}function _a(e){return new n.ExtentRadianF32(e.west,e.south,e.east,e.north)}function va(e){return new n.PolygonMaterial(e.show,e.castShadow,e.receiveShadow,e.color,e.clampToGround,e.tiled,e.height,e.extrudedHeight,e.wireframe,e.outline,e.perPositionHeight,e.__internal__)}function ya(e){let t=new n.TransferablePolygonBatchedFeature(e.crs,e.length);return t.setOuterRing(e.outer_ring.length,t=>{t.set(e.outer_ring)}),t.setOuterRingSizes(e.outer_ring_sizes.length,t=>{t.set(e.outer_ring_sizes)}),t.setHoles(e.holes.length,t=>{t.set(e.holes)}),t.setHolesSizes(e.holes_sizes.length,t=>{t.set(e.holes_sizes)}),t.setHolesTotalSizes(e.holes_total_sizes.length,t=>{t.set(e.holes_total_sizes)}),t.setHolesBoundaries(e.holes_boundaries.length,t=>{t.set(e.holes_boundaries)}),t.setExpectedWindingOrders(e.expected_winding_orders.length,t=>{t.set(e.expected_winding_orders)}),t.setBatchIds(e.batch_ids.length,t=>{t.set(e.batch_ids)}),t.setBatchIndices(e.batch_indices.length,t=>{t.set(e.batch_indices)}),t}var ba;async function Q(){return ba??=(0,n.default)(),ba}async function xa(){if(!ba)return 0;let{memory:e}=await ba;return e.buffer.byteLength}async function Sa(e,t,r,i){await Q();let a=(0,n.constructPolygonBatchedFeature)(ya(e),va(t),r,i?_a(i):void 0);if(!a)return;let{result:o,transfers:s}=pa(a);return a.free(),$(o,s)}function Ca(e){let t=new se(e);return{result:t,transfers:[t.position.buffer,t.position_high?.buffer,t.position_low?.buffer,t.start?.buffer,t.start_high?.buffer,t.start_low?.buffer,t.end_high?.buffer,t.end_low?.buffer,t.start_normals?.buffer,t.forward_offset?.buffer,t.end_normal_and_texture_coordinate_normalization_x?.buffer,t.right_normal_and_texture_coordinate_normalization_y.buffer,t.batch_id?.buffer,t.batch_index?.buffer,t.indices.buffer].filter(ne)}}function wa(e){return new n.PolylineMaterial(e.show,e.castShadow,e.receiveShadow,e.color,e.clampToGround,e.tiled,e.height,e.width,e.maxWidth,e.__internal__)}function Ta(e){let t=new n.TransferablePolylineBatchedFeature(e.crs,e.length);return t.setPoints(e.points.length,t=>{t.set(e.points)}),t.setPointsSizes(e.points_sizes.length,t=>{t.set(e.points_sizes)}),t.setBatchIds(e.batch_ids.length,t=>{t.set(e.batch_ids)}),t.setBatchIndices(e.batch_indices.length,t=>{t.set(e.batch_indices)}),t}async function Ea(e,t,r){await Q();let i=(0,n.constructPolylineBatchedFeature)(Ta(e),wa(t),r);if(!i)return;let{result:a,transfers:o}=Ca(i);return i.free(),$(a,o)}function Da(e){let t=new ie(e),n=[t.vertices.buffer,t.uvs.buffer,t.indices.buffer,t.heights.buffer];return t.normals&&n.push(t.normals.buffer),t.skirt_vertices&&n.push(t.skirt_vertices.buffer),t.skirt_uvs&&n.push(t.skirt_uvs.buffer),t.skirt_indices&&n.push(t.skirt_indices.buffer),t.skirt_normals&&n.push(t.skirt_normals.buffer),t.watermask&&n.push(t.watermask.buffer),{result:t,transfers:n}}async function Oa(e,t,r,i,a,o){await Q();let s=(0,n.constructQuantizedMeshTerrainMesh)(e,Z(t),r,i,a,o),{result:c,transfers:l}=Da(s);return s.free(),$({result:c},[...l])}function ka(e){return new n.TransferableRasterDEMData(new n.ElevationDecoder(e.decoder.r_scaler,e.decoder.g_scaler,e.decoder.b_scaler,e.decoder.offset,e.decoder.max_offset,e.decoder.min_offset,e.decoder.boundary,e.decoder.epsilon))}async function Aa(e,t,r,i,a,o){await Q();let s=i+1,c=n.TransferableMartini.fromSize(s),l=(0,n.constructTerrainMesh)(e,Z(t),ka(r),c,a,o),{result:u,transfers:d}=Da(l);return l.free(),$({result:u},[...d])}async function ja(e){let t=await createImageBitmap(e);try{let e=new OffscreenCanvas(t.width,t.height).getContext(`2d`);if(e===null)throw Error(`failed to get context of canvas`);e.drawImage(t,0,0);let n=e.getImageData(0,0,t.width,t.height).data;return $(n,[n.buffer])}finally{t.close()}}async function Ma(e,t){try{let n=t.getContext(`2d`);if(n===null)throw Error(`failed to get context of canvas`);return n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height).data}finally{e.close()}}async function Na(e,t,r,i,a,o,s){await Q();let c=(0,n.parseMvtTile)(e,t,r,i,a?_a(a):void 0,o,s),l,u,d,f,p;try{l=c.f64_stream(),u=c.f32_stream(),d=c.u32_stream(),f=c.u8_stream(),p=c.meta()}finally{c.free()}return $({f64_stream:l,f32_stream:u,u32_stream:d,u8_stream:f,meta:p},[l.buffer,u.buffer,d.buffer,f.buffer])}async function Pa(e,t,r,i,a,o,s){await Q();let c=(0,n.upsampleQuantizedMeshTerrainMesh)(Z(e),Z(t),ga(r),i,a,o,s),{result:l,transfers:u}=Da(c);return c.free(),$(l,u)}async function Fa(e,t,r,i,a,o,s){await Q();let c=(0,n.upsampleTerrainMesh)(Z(e),Z(t),ka(r),ga(i),a,o,s),{result:l,transfers:u}=Da(c);return c.free(),$(l,u)}async function Ia(){await Q()}var La={constructTerrainMesh:Aa,constructQuantizedMeshTerrainMesh:Oa,upsampleTerrainMesh:Fa,upsampleQuantizedMeshTerrainMesh:Pa,getImageDataFromImageBitmap:Ma,getImageDataFromBlob:ja,constructPolygonBatchedFeature:Sa,constructPolylineBatchedFeature:Ea,parseMvtTile:Na,warmUp:Ia,getWasmMemoryUsage:xa},$=(e,t)=>new T.Transfer(e,t),Ra=!1,za=(...e)=>(Ra||=(T.worker(La),Ba(),!0),T.worker(...e));function Ba(){La.warmUp.worker?.addAbortListener(async()=>{})}var{initializeWorkerPool:Va,terminateWorkerPool:Ha,warmUpWorkerPool:Ua,worker:Wa,workerPoolStats:Ga,workerPoolHeapStats:Ka,probeWorkerPoolHeap:qa}=(()=>{let e;return{initializeWorkerPool:(t,n,r)=>{if(e)throw Error(`Worker pool has already been initialized.`);e={pool:new te(t,n.total,r),manager:n}},terminateWorkerPool:()=>{e&&=(e.pool.terminate(),void 0)},warmUpWorkerPool:()=>(p(e,`initializeWorkerPool() must be invoked first.`),e.pool.warmUp()),worker:()=>(p(e,`initializeWorkerPool() must be invoked first.`),{pool:e.pool,manager:e.manager}),workerPoolStats:()=>e?.pool.stats(),workerPoolHeapStats:()=>e?.pool.heapStats(),probeWorkerPoolHeap:()=>e?.pool.probeHeap()}})(),Ja=()=>{let{pool:e,manager:t}=Wa();return t.canIncrement()&&e.canAcceptTasks()};function Ya(e,t,n){let{pool:r,manager:i}=Wa();i.increment();try{return r.exec(e,t,n).then(e=>(i.decrement(),e)).catch(e=>{throw i.decrement(),e})}catch(e){throw i.decrement(),e}}e.canWorkerProcessImmediately=Ja,e.createConcurrencyManager=e=>{let t=0,n=()=>t!==e,r=()=>t!==0;return{total:e,actives:()=>t,idles:()=>e-t,increment:()=>{n()&&t++},decrement:()=>{r()&&t--},canIncrement:n,canDecrement:r,reset:()=>{t=0}}},e.initializeWorkerPool=Va,e.probeWorkerPoolHeap=qa,e.queueTask=Ya,e.registerTasks=za,e.terminateWorkerPool=Ha,e.transfer=$,e.warmUpWorkerPool=Ua,e.workerPoolHeapStats=Ka,e.workerPoolStats=Ga});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navaramap/worker",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "0.1.0",
|
|
5
5
|
"main": "dist/index.umd.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"workerpool": "10.0.3",
|
|
23
|
-
"@navaramap/core": "0.0
|
|
24
|
-
"@navaramap/engine-worker": "0.0
|
|
23
|
+
"@navaramap/core": "0.1.0",
|
|
24
|
+
"@navaramap/engine-worker": "0.1.0"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
27
|
"type-check": "tsc && tsc -p tsconfig.node.json",
|