@jdultra/threedtiles 13.1.8 → 13.1.10
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/dist/assets/PointsManager.worker-5fpGpVvf.js.map +1 -1
- package/dist/splats/PointsManager.d.ts +2 -2
- package/dist/splats/SplatsColider.d.ts +2 -2
- package/dist/threedtiles.cjs.js +10 -10
- package/dist/threedtiles.cjs.js.map +1 -1
- package/dist/threedtiles.es.js +1227 -1226
- package/dist/threedtiles.es.js.map +1 -1
- package/dist/threedtiles.umd.js +10 -10
- package/dist/threedtiles.umd.js.map +1 -1
- package/dist/tileset/OGC3DTile.d.ts +2 -3
- package/dist/tileset/OcclusionCullingService.d.ts +1 -1
- package/dist/tileset/TileLoader.d.ts +1 -1
- package/dist/tileset/instanced/InstancedOGC3DTile.d.ts +1 -1
- package/dist/tileset/instanced/InstancedTile.d.ts +0 -1
- package/dist/tileset/instanced/InstancedTileLoader.d.ts +2 -2
- package/package.json +13 -13
package/dist/threedtiles.es.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
1
|
+
var Xt = Object.defineProperty;
|
|
2
|
+
var Zt = (h, e, a) => e in h ? Xt(h, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : h[e] = a;
|
|
3
|
+
var le = (h, e, a) => Zt(h, typeof e != "symbol" ? e + "" : e, a);
|
|
4
4
|
import * as E from "three";
|
|
5
|
-
import { Matrix3 as
|
|
6
|
-
class
|
|
5
|
+
import { Matrix3 as Sa, Vector3 as D, Box3 as Da, Matrix4 as xe, Ray as $t, BufferGeometry as Ze, LineBasicMaterial as ut, LineSegments as It, TrianglesDrawMode as eA, TriangleFanDrawMode as pa, TriangleStripDrawMode as mt, BufferAttribute as de, Loader as va, LoaderUtils as He, FileLoader as Be, MeshPhysicalMaterial as ee, Vector2 as Bt, Color as he, LinearSRGBColorSpace as K, SRGBColorSpace as se, SpotLight as aA, PointLight as tA, DirectionalLight as AA, Quaternion as Ct, InstancedMesh as iA, InstancedBufferAttribute as Ea, Object3D as pt, TextureLoader as sA, ImageBitmapLoader as rA, InterleavedBuffer as nA, InterleavedBufferAttribute as oA, LinearMipmapLinearFilter as Xe, NearestMipmapLinearFilter as cA, LinearMipmapNearestFilter as bA, NearestMipmapNearestFilter as dA, LinearFilter as me, NearestFilter as v, RepeatWrapping as Qa, MirroredRepeatWrapping as hA, ClampToEdgeWrapping as lA, PointsMaterial as gA, Material as ea, MeshStandardMaterial as Ta, DoubleSide as fA, MeshBasicMaterial as Me, PropertyBinding as uA, SkinnedMesh as IA, Mesh as ya, Line as mA, LineLoop as BA, Points as CA, Group as aa, PerspectiveCamera as pA, MathUtils as EA, OrthographicCamera as Et, Skeleton as QA, AnimationClip as yA, Bone as wA, InterpolateDiscrete as kA, InterpolateLinear as Qt, Texture as Ua, VectorKeyframeTrack as Ga, NumberKeyframeTrack as Ha, QuaternionKeyframeTrack as Na, ColorManagement as wa, FrontSide as We, Interpolant as xA, Sphere as jA, CompressedCubeTexture as SA, CompressedArrayTexture as DA, CompressedTexture as La, NoColorSpace as vA, RGBA_ASTC_6x6_Format as Oa, RGBA_ASTC_4x4_Format as yt, RedFormat as Te, RGFormat as Ue, RGBAFormat as $, UnsignedByteType as W, HalfFloatType as we, FloatType as R, DataTexture as Ge, Data3DTexture as FA, RGBA_S3TC_DXT1_Format as RA, RGB_PVRTC_4BPPV1_Format as MA, RGB_ETC2_Format as TA, RGB_ETC1_Format as UA, RGBA_S3TC_DXT5_Format as GA, RGBA_PVRTC_4BPPV1_Format as HA, RGBA_ETC2_EAC_Format as NA, RGBA_BPTC_Format as LA, RGB_BPTC_UNSIGNED_Format as OA, WebGL3DRenderTarget as re, ShaderMaterial as ta, InstancedBufferGeometry as Ja, DynamicDrawUsage as Pa, Scene as JA, PlaneGeometry as PA } from "three";
|
|
6
|
+
class Wi {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.cullMap = [], this.cullMaterial = new E.MeshBasicMaterial({ vertexColors: !0 }), this.cullMaterial.side = E.FrontSide, this.cullTarget = this._createCullTarget(), this.cullPixels = new Uint8Array(4 * this.cullTarget.width * this.cullTarget.height);
|
|
9
9
|
}
|
|
@@ -26,10 +26,10 @@ class es {
|
|
|
26
26
|
return this.cullMap[e];
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
const _ = new
|
|
30
|
-
class
|
|
29
|
+
const _ = new Sa(), H = new D(), qa = new D(), _a = new Da(), qe = new xe(), Ka = new xe(), za = new $t();
|
|
30
|
+
class Z {
|
|
31
31
|
constructor(e) {
|
|
32
|
-
this.center = new D(e[0], e[1], e[2]), this.e1 = new D(e[3], e[4], e[5]), this.e2 = new D(e[6], e[7], e[8]), this.e3 = new D(e[9], e[10], e[11]), this.halfSize = new D(this.e1.length(), this.e2.length(), this.e3.length()), this.e1.normalize(), this.e2.normalize(), this.e3.normalize(), this.rotationMatrix = new
|
|
32
|
+
this.center = new D(e[0], e[1], e[2]), this.e1 = new D(e[3], e[4], e[5]), this.e2 = new D(e[6], e[7], e[8]), this.e3 = new D(e[9], e[10], e[11]), this.halfSize = new D(this.e1.length(), this.e2.length(), this.e3.length()), this.e1.normalize(), this.e2.normalize(), this.e3.normalize(), this.rotationMatrix = new Sa(), this.rotationMatrix.set(this.e1.x, this.e2.x, this.e3.x, this.e1.y, this.e2.y, this.e3.y, this.e1.z, this.e2.z, this.e3.z);
|
|
33
33
|
}
|
|
34
34
|
copy(e) {
|
|
35
35
|
this.center.copy(e.center), this.rotationMatrix.copy(e.rotationMatrix), this.halfSize.copy(e.halfSize), this.e1.copy(e.e1), this.e2.copy(e.e2), this.e3.copy(e.e3);
|
|
@@ -42,11 +42,11 @@ class $ {
|
|
|
42
42
|
let t = H.set(a[0], a[1], a[2]).length();
|
|
43
43
|
const A = H.set(a[4], a[5], a[6]).length(), i = H.set(a[8], a[9], a[10]).length();
|
|
44
44
|
e.determinant() < 0 && (t = -t), _.setFromMatrix4(e);
|
|
45
|
-
const s = 1 / t, r = 1 / A,
|
|
46
|
-
return _.elements[0] *= s, _.elements[1] *= s, _.elements[2] *= s, _.elements[3] *= r, _.elements[4] *= r, _.elements[5] *= r, _.elements[6] *=
|
|
45
|
+
const s = 1 / t, r = 1 / A, n = 1 / i;
|
|
46
|
+
return _.elements[0] *= s, _.elements[1] *= s, _.elements[2] *= s, _.elements[3] *= r, _.elements[4] *= r, _.elements[5] *= r, _.elements[6] *= n, _.elements[7] *= n, _.elements[8] *= n, this.rotationMatrix.premultiply(_), this.halfSize.x *= t, this.halfSize.y *= A, this.halfSize.z *= i, this.center.applyMatrix4(e), this.rotationMatrix.extractBasis(this.e1, this.e2, this.e3), this;
|
|
47
47
|
}
|
|
48
48
|
intersectRay(e, a) {
|
|
49
|
-
return this.getSize(
|
|
49
|
+
return this.getSize(qa), _a.setFromCenterAndSize(H.set(0, 0, 0), qa), qe.setFromMatrix3(this.rotationMatrix), qe.setPosition(this.center), Ka.copy(qe).invert(), za.copy(e).applyMatrix4(Ka), za.intersectBox(_a, a) ? a.applyMatrix4(qe) : null;
|
|
50
50
|
}
|
|
51
51
|
intersectsRay(e) {
|
|
52
52
|
return this.intersectRay(e, H) !== null;
|
|
@@ -69,12 +69,12 @@ class $ {
|
|
|
69
69
|
return Math.sqrt(a * a + t * t + A * A);
|
|
70
70
|
}
|
|
71
71
|
helper() {
|
|
72
|
-
const e = this.halfSize, a = this.center, t = this.e1, A = this.e2, i = this.e3, s = [new D().copy(a).add(t.clone().multiplyScalar(e.x)).add(A.clone().multiplyScalar(e.y)).add(i.clone().multiplyScalar(e.z)), new D().copy(a).add(t.clone().multiplyScalar(-e.x)).add(A.clone().multiplyScalar(e.y)).add(i.clone().multiplyScalar(e.z)), new D().copy(a).add(t.clone().multiplyScalar(-e.x)).add(A.clone().multiplyScalar(-e.y)).add(i.clone().multiplyScalar(e.z)), new D().copy(a).add(t.clone().multiplyScalar(e.x)).add(A.clone().multiplyScalar(-e.y)).add(i.clone().multiplyScalar(e.z)), new D().copy(a).add(t.clone().multiplyScalar(e.x)).add(A.clone().multiplyScalar(e.y)).add(i.clone().multiplyScalar(-e.z)), new D().copy(a).add(t.clone().multiplyScalar(-e.x)).add(A.clone().multiplyScalar(e.y)).add(i.clone().multiplyScalar(-e.z)), new D().copy(a).add(t.clone().multiplyScalar(-e.x)).add(A.clone().multiplyScalar(-e.y)).add(i.clone().multiplyScalar(-e.z)), new D().copy(a).add(t.clone().multiplyScalar(e.x)).add(A.clone().multiplyScalar(-e.y)).add(i.clone().multiplyScalar(-e.z))], r = new
|
|
72
|
+
const e = this.halfSize, a = this.center, t = this.e1, A = this.e2, i = this.e3, s = [new D().copy(a).add(t.clone().multiplyScalar(e.x)).add(A.clone().multiplyScalar(e.y)).add(i.clone().multiplyScalar(e.z)), new D().copy(a).add(t.clone().multiplyScalar(-e.x)).add(A.clone().multiplyScalar(e.y)).add(i.clone().multiplyScalar(e.z)), new D().copy(a).add(t.clone().multiplyScalar(-e.x)).add(A.clone().multiplyScalar(-e.y)).add(i.clone().multiplyScalar(e.z)), new D().copy(a).add(t.clone().multiplyScalar(e.x)).add(A.clone().multiplyScalar(-e.y)).add(i.clone().multiplyScalar(e.z)), new D().copy(a).add(t.clone().multiplyScalar(e.x)).add(A.clone().multiplyScalar(e.y)).add(i.clone().multiplyScalar(-e.z)), new D().copy(a).add(t.clone().multiplyScalar(-e.x)).add(A.clone().multiplyScalar(e.y)).add(i.clone().multiplyScalar(-e.z)), new D().copy(a).add(t.clone().multiplyScalar(-e.x)).add(A.clone().multiplyScalar(-e.y)).add(i.clone().multiplyScalar(-e.z)), new D().copy(a).add(t.clone().multiplyScalar(e.x)).add(A.clone().multiplyScalar(-e.y)).add(i.clone().multiplyScalar(-e.z))], r = new Ze().setFromPoints(s);
|
|
73
73
|
r.setIndex([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]), r.computeBoundingSphere();
|
|
74
|
-
const
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
},
|
|
74
|
+
const n = new ut({ color: 16711680 }), o = new It(r, n);
|
|
75
|
+
return o.dispose = () => {
|
|
76
|
+
n.dispose(), r.dispose();
|
|
77
|
+
}, o;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
@@ -83,7 +83,7 @@ class $ {
|
|
|
83
83
|
* Linked hash map data structure
|
|
84
84
|
* @class LinkedHashMap
|
|
85
85
|
*/
|
|
86
|
-
class
|
|
86
|
+
class wt {
|
|
87
87
|
constructor() {
|
|
88
88
|
this._data = /* @__PURE__ */ new Map(), this._link = /* @__PURE__ */ new Map(), this._head = void 0, this._tail = void 0;
|
|
89
89
|
}
|
|
@@ -167,14 +167,14 @@ class kt {
|
|
|
167
167
|
return Array.from(this.keys()).map((a) => ({ key: a, value: this.get(a) }));
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
|
-
const
|
|
171
|
-
class
|
|
170
|
+
const qA = new TextDecoder();
|
|
171
|
+
class kt {
|
|
172
172
|
constructor(e, a, t, A) {
|
|
173
173
|
this.buffer = e, this.binOffset = a + t, this.binLength = A;
|
|
174
174
|
let i = null;
|
|
175
175
|
if (t !== 0) try {
|
|
176
176
|
const s = new Uint8Array(e, a, t);
|
|
177
|
-
i = JSON.parse(
|
|
177
|
+
i = JSON.parse(qA.decode(s));
|
|
178
178
|
} catch {
|
|
179
179
|
i = {};
|
|
180
180
|
}
|
|
@@ -191,10 +191,10 @@ class xt {
|
|
|
191
191
|
if (s instanceof Object) {
|
|
192
192
|
if (Array.isArray(s)) return s;
|
|
193
193
|
{
|
|
194
|
-
const { buffer: r, binOffset:
|
|
194
|
+
const { buffer: r, binOffset: n, binLength: o } = this, c = s.byteOffset || 0, b = s.type || A, g = s.componentType || t;
|
|
195
195
|
if ("type" in s && A && s.type !== A) throw new Error("FeatureTable: Specified type does not match expected type.");
|
|
196
|
-
let l,
|
|
197
|
-
switch (
|
|
196
|
+
let l, d;
|
|
197
|
+
switch (b) {
|
|
198
198
|
case "SCALAR":
|
|
199
199
|
l = 1;
|
|
200
200
|
break;
|
|
@@ -210,43 +210,43 @@ class xt {
|
|
|
210
210
|
default:
|
|
211
211
|
throw new Error(`FeatureTable : Feature type not provided for "${e}".`);
|
|
212
212
|
}
|
|
213
|
-
const f =
|
|
213
|
+
const f = n + c, I = a * l;
|
|
214
214
|
switch (g) {
|
|
215
215
|
case "BYTE":
|
|
216
|
-
|
|
216
|
+
d = new Int8Array(r, f, I);
|
|
217
217
|
break;
|
|
218
218
|
case "UNSIGNED_BYTE":
|
|
219
|
-
|
|
219
|
+
d = new Uint8Array(r, f, I);
|
|
220
220
|
break;
|
|
221
221
|
case "SHORT":
|
|
222
|
-
|
|
222
|
+
d = new Int16Array(r, f, I);
|
|
223
223
|
break;
|
|
224
224
|
case "UNSIGNED_SHORT":
|
|
225
|
-
|
|
225
|
+
d = new Uint16Array(r, f, I);
|
|
226
226
|
break;
|
|
227
227
|
case "INT":
|
|
228
|
-
|
|
228
|
+
d = new Int32Array(r, f, I);
|
|
229
229
|
break;
|
|
230
230
|
case "UNSIGNED_INT":
|
|
231
|
-
|
|
231
|
+
d = new Uint32Array(r, f, I);
|
|
232
232
|
break;
|
|
233
233
|
case "FLOAT":
|
|
234
|
-
|
|
234
|
+
d = new Float32Array(r, f, I);
|
|
235
235
|
break;
|
|
236
236
|
case "DOUBLE":
|
|
237
|
-
|
|
237
|
+
d = new Float64Array(r, f, I);
|
|
238
238
|
break;
|
|
239
239
|
default:
|
|
240
240
|
throw new Error(`FeatureTable : Feature component type not provided for "${e}".`);
|
|
241
241
|
}
|
|
242
|
-
if (f + I *
|
|
243
|
-
return
|
|
242
|
+
if (f + I * d.BYTES_PER_ELEMENT > n + o) throw new Error("FeatureTable: Feature data read outside binary body length.");
|
|
243
|
+
return d;
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
return s;
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
-
class
|
|
249
|
+
class _A extends kt {
|
|
250
250
|
constructor(e, a, t, A, i) {
|
|
251
251
|
super(e, t, A, i), this.batchSize = a;
|
|
252
252
|
}
|
|
@@ -254,53 +254,53 @@ class KA extends xt {
|
|
|
254
254
|
return super.getData(e, this.batchSize, a, t);
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
|
-
function
|
|
257
|
+
function Va(h) {
|
|
258
258
|
let e, a, t, A = -1, i = 0;
|
|
259
|
-
for (let
|
|
260
|
-
const
|
|
261
|
-
if (e === void 0 && (e =
|
|
262
|
-
if (a === void 0 && (a =
|
|
263
|
-
if (t === void 0 && (t =
|
|
264
|
-
if (A === -1 && (A =
|
|
265
|
-
i +=
|
|
266
|
-
}
|
|
267
|
-
const s = new e(i), r = new
|
|
268
|
-
let
|
|
269
|
-
for (let
|
|
270
|
-
const
|
|
271
|
-
if (
|
|
272
|
-
const
|
|
273
|
-
for (let g = 0, l =
|
|
274
|
-
const f =
|
|
275
|
-
r.setComponent(g +
|
|
259
|
+
for (let o = 0; o < h.length; ++o) {
|
|
260
|
+
const c = h[o];
|
|
261
|
+
if (e === void 0 && (e = c.array.constructor), e !== c.array.constructor) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
|
|
262
|
+
if (a === void 0 && (a = c.itemSize), a !== c.itemSize) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
|
|
263
|
+
if (t === void 0 && (t = c.normalized), t !== c.normalized) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
|
|
264
|
+
if (A === -1 && (A = c.gpuType), A !== c.gpuType) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
|
|
265
|
+
i += c.count * a;
|
|
266
|
+
}
|
|
267
|
+
const s = new e(i), r = new de(s, a, t);
|
|
268
|
+
let n = 0;
|
|
269
|
+
for (let o = 0; o < h.length; ++o) {
|
|
270
|
+
const c = h[o];
|
|
271
|
+
if (c.isInterleavedBufferAttribute) {
|
|
272
|
+
const b = n / a;
|
|
273
|
+
for (let g = 0, l = c.count; g < l; g++) for (let d = 0; d < a; d++) {
|
|
274
|
+
const f = c.getComponent(g, d);
|
|
275
|
+
r.setComponent(g + b, d, f);
|
|
276
276
|
}
|
|
277
|
-
} else s.set(
|
|
278
|
-
|
|
277
|
+
} else s.set(c.array, n);
|
|
278
|
+
n += c.count * a;
|
|
279
279
|
}
|
|
280
280
|
return A !== void 0 && (r.gpuType = A), r;
|
|
281
281
|
}
|
|
282
|
-
function
|
|
283
|
-
if (e ===
|
|
284
|
-
if (e ===
|
|
285
|
-
let a =
|
|
282
|
+
function Ya(h, e) {
|
|
283
|
+
if (e === eA) return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), h;
|
|
284
|
+
if (e === pa || e === mt) {
|
|
285
|
+
let a = h.getIndex();
|
|
286
286
|
if (a === null) {
|
|
287
|
-
const s = [], r =
|
|
288
|
-
if (r === void 0) return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),
|
|
289
|
-
for (let
|
|
290
|
-
|
|
287
|
+
const s = [], r = h.getAttribute("position");
|
|
288
|
+
if (r === void 0) return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), h;
|
|
289
|
+
for (let n = 0; n < r.count; n++) s.push(n);
|
|
290
|
+
h.setIndex(s), a = h.getIndex();
|
|
291
291
|
}
|
|
292
292
|
const t = a.count - 2, A = [];
|
|
293
|
-
if (e ===
|
|
293
|
+
if (e === pa) for (let s = 1; s <= t; s++) A.push(a.getX(0)), A.push(a.getX(s)), A.push(a.getX(s + 1));
|
|
294
294
|
else for (let s = 0; s < t; s++) s % 2 == 0 ? (A.push(a.getX(s)), A.push(a.getX(s + 1)), A.push(a.getX(s + 2))) : (A.push(a.getX(s + 2)), A.push(a.getX(s + 1)), A.push(a.getX(s)));
|
|
295
295
|
A.length / 3 !== t && console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");
|
|
296
|
-
const i =
|
|
296
|
+
const i = h.clone();
|
|
297
297
|
return i.setIndex(A), i.clearGroups(), i;
|
|
298
298
|
}
|
|
299
|
-
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", e),
|
|
299
|
+
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", e), h;
|
|
300
300
|
}
|
|
301
|
-
class
|
|
301
|
+
class xt {
|
|
302
302
|
constructor(e) {
|
|
303
|
-
|
|
303
|
+
le(this, "checkLoaderInitialized", async () => new Promise((e) => {
|
|
304
304
|
const a = setInterval(() => {
|
|
305
305
|
this.gltfLoader.hasDracoLoader && !this.gltfLoader.dracoLoader || this.gltfLoader.hasKTX2Loader && !this.gltfLoader.ktx2Loader || (clearInterval(a), e());
|
|
306
306
|
}, 10);
|
|
@@ -310,11 +310,11 @@ class jt {
|
|
|
310
310
|
parseB3DM(e, a, t, A) {
|
|
311
311
|
const i = this, s = new DataView(e), r = String.fromCharCode(s.getUint8(0)) + String.fromCharCode(s.getUint8(1)) + String.fromCharCode(s.getUint8(2)) + String.fromCharCode(s.getUint8(3));
|
|
312
312
|
console.assert(r === "b3dm");
|
|
313
|
-
const
|
|
314
|
-
console.assert(
|
|
315
|
-
const
|
|
316
|
-
new
|
|
317
|
-
const f =
|
|
313
|
+
const n = s.getUint32(8, !0);
|
|
314
|
+
console.assert(n === e.byteLength);
|
|
315
|
+
const o = s.getUint32(12, !0), c = s.getUint32(16, !0), b = s.getUint32(20, !0), g = s.getUint32(24, !0), l = new kt(e, 28, o, c), d = 28 + o + c;
|
|
316
|
+
new _A(e, l.getData("BATCH_LENGTH"), d, b, g);
|
|
317
|
+
const f = d + b + g, I = new Uint8Array(e, f, n - f).slice().buffer;
|
|
318
318
|
return new Promise(async (m, u) => {
|
|
319
319
|
await this.checkLoaderInitialized(), this.gltfLoader.parse(I, null, (C) => {
|
|
320
320
|
const B = l.getData("RTC_CENTER");
|
|
@@ -328,17 +328,17 @@ class jt {
|
|
|
328
328
|
}
|
|
329
329
|
parseB3DMInstanced(e, a, t, A, i) {
|
|
330
330
|
return this.parseB3DM(e, a, A, i).then((s) => {
|
|
331
|
-
let r,
|
|
332
|
-
s.updateWorldMatrix(!1, !0), s.traverse((
|
|
333
|
-
|
|
331
|
+
let r, n = [], o = [];
|
|
332
|
+
s.updateWorldMatrix(!1, !0), s.traverse((b) => {
|
|
333
|
+
b.isMesh && (b.geometry.applyMatrix4(b.matrixWorld), n.push(b.geometry), o.push(b.material));
|
|
334
334
|
});
|
|
335
|
-
let
|
|
335
|
+
let c = function(b) {
|
|
336
336
|
let g = /* @__PURE__ */ new Set();
|
|
337
|
-
return
|
|
338
|
-
for (let f in
|
|
339
|
-
}),
|
|
337
|
+
return b.forEach((d) => {
|
|
338
|
+
for (let f in d.attributes) g.add(f);
|
|
339
|
+
}), b.forEach((d) => {
|
|
340
340
|
g.forEach((f) => {
|
|
341
|
-
if (!
|
|
341
|
+
if (!d.attributes[f]) {
|
|
342
342
|
const I = function(u) {
|
|
343
343
|
switch (u) {
|
|
344
344
|
case "position":
|
|
@@ -351,15 +351,15 @@ class jt {
|
|
|
351
351
|
default:
|
|
352
352
|
throw new Error(`Unknown attribute ${u}`);
|
|
353
353
|
}
|
|
354
|
-
}(f), m = new Float32Array(I *
|
|
355
|
-
|
|
354
|
+
}(f), m = new Float32Array(I * d.getAttribute("position").count).fill(0);
|
|
355
|
+
d.setAttribute(f, new E.BufferAttribute(m, I));
|
|
356
356
|
}
|
|
357
357
|
});
|
|
358
|
-
}), function(
|
|
359
|
-
const I =
|
|
358
|
+
}), function(d, f = !1) {
|
|
359
|
+
const I = d[0].index !== null, m = new Set(Object.keys(d[0].attributes)), u = new Set(Object.keys(d[0].morphAttributes)), C = {}, B = {}, w = d[0].morphTargetsRelative, k = new Ze();
|
|
360
360
|
let y = 0;
|
|
361
|
-
for (let p = 0; p <
|
|
362
|
-
const Q =
|
|
361
|
+
for (let p = 0; p < d.length; ++p) {
|
|
362
|
+
const Q = d[p];
|
|
363
363
|
let x = 0;
|
|
364
364
|
if (I !== (Q.index !== null)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + p + ". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."), null;
|
|
365
365
|
for (const j in Q.attributes) {
|
|
@@ -385,15 +385,15 @@ class jt {
|
|
|
385
385
|
if (I) {
|
|
386
386
|
let p = 0;
|
|
387
387
|
const Q = [];
|
|
388
|
-
for (let x = 0; x <
|
|
389
|
-
const j =
|
|
388
|
+
for (let x = 0; x < d.length; ++x) {
|
|
389
|
+
const j = d[x].index;
|
|
390
390
|
for (let M = 0; M < j.count; ++M) Q.push(j.getX(M) + p);
|
|
391
|
-
p +=
|
|
391
|
+
p += d[x].attributes.position.count;
|
|
392
392
|
}
|
|
393
393
|
k.setIndex(Q);
|
|
394
394
|
}
|
|
395
395
|
for (const p in C) {
|
|
396
|
-
const Q =
|
|
396
|
+
const Q = Va(C[p]);
|
|
397
397
|
if (!Q) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + p + " attribute."), null;
|
|
398
398
|
k.setAttribute(p, Q);
|
|
399
399
|
}
|
|
@@ -404,39 +404,40 @@ class jt {
|
|
|
404
404
|
for (let x = 0; x < Q; ++x) {
|
|
405
405
|
const j = [];
|
|
406
406
|
for (let O = 0; O < B[p].length; ++O) j.push(B[p][O][x]);
|
|
407
|
-
const M =
|
|
407
|
+
const M = Va(j);
|
|
408
408
|
if (!M) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + p + " morphAttribute."), null;
|
|
409
409
|
k.morphAttributes[p].push(M);
|
|
410
410
|
}
|
|
411
411
|
}
|
|
412
412
|
return k;
|
|
413
|
-
}(
|
|
414
|
-
}(
|
|
415
|
-
return r = new E.InstancedMesh(
|
|
413
|
+
}(b, !0);
|
|
414
|
+
}(n);
|
|
415
|
+
return r = new E.InstancedMesh(c, o, t), r.baseMatrix = new E.Matrix4().identity(), r;
|
|
416
416
|
});
|
|
417
417
|
}
|
|
418
418
|
}
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
419
|
+
const T = [];
|
|
420
|
+
for (let h = 0; h < 256; ++h) T.push((h + 256).toString(16).slice(1));
|
|
421
|
+
let Aa;
|
|
422
|
+
const KA = new Uint8Array(16), Wa = { randomUUID: typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
|
|
423
|
+
function jt(h, e, a) {
|
|
424
|
+
var A;
|
|
425
|
+
if (Wa.randomUUID && !h) return Wa.randomUUID();
|
|
426
|
+
const t = (h = h || {}).random ?? ((A = h.rng) == null ? void 0 : A.call(h)) ?? function() {
|
|
427
|
+
if (!Aa) {
|
|
428
|
+
if (typeof crypto > "u" || !crypto.getRandomValues) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
429
|
+
Aa = crypto.getRandomValues.bind(crypto);
|
|
430
|
+
}
|
|
431
|
+
return Aa(KA);
|
|
432
|
+
}();
|
|
433
|
+
if (t.length < 16) throw new Error("Random bytes length must be >= 16");
|
|
434
|
+
return t[6] = 15 & t[6] | 64, t[8] = 63 & t[8] | 128, function(i, s = 0) {
|
|
435
|
+
return (T[i[s + 0]] + T[i[s + 1]] + T[i[s + 2]] + T[i[s + 3]] + "-" + T[i[s + 4]] + T[i[s + 5]] + "-" + T[i[s + 6]] + T[i[s + 7]] + "-" + T[i[s + 8]] + T[i[s + 9]] + "-" + T[i[s + 10]] + T[i[s + 11]] + T[i[s + 12]] + T[i[s + 13]] + T[i[s + 14]] + T[i[s + 15]]).toLowerCase();
|
|
436
|
+
}(t);
|
|
436
437
|
}
|
|
437
|
-
class
|
|
438
|
+
class zA {
|
|
438
439
|
constructor(e, a) {
|
|
439
|
-
|
|
440
|
+
le(this, "checkLoaderInitialized", async () => {
|
|
440
441
|
const e = this;
|
|
441
442
|
return new Promise((a) => {
|
|
442
443
|
const t = setInterval(() => {
|
|
@@ -449,54 +450,54 @@ class XA {
|
|
|
449
450
|
parseSplats(e, a, t, A) {
|
|
450
451
|
const i = this;
|
|
451
452
|
return new Promise(async (s, r) => {
|
|
452
|
-
await i.checkLoaderInitialized(), i.gltfLoader.parse(e, null, (
|
|
453
|
-
|
|
454
|
-
const
|
|
455
|
-
|
|
453
|
+
await i.checkLoaderInitialized(), i.gltfLoader.parse(e, null, (n) => {
|
|
454
|
+
n.scene;
|
|
455
|
+
const o = n.scene.children[0], c = o.geometry.attributes.position, b = o.geometry.attributes.color, g = o.geometry.attributes.cov_0, l = o.geometry.attributes.cov_1, d = A.addSplatsTile(c, b, g, l);
|
|
456
|
+
n.scene.traverse((f) => {
|
|
456
457
|
f.dispose && f.dispose();
|
|
457
|
-
}), s(
|
|
458
|
-
}, (
|
|
459
|
-
console.error(
|
|
458
|
+
}), s(d);
|
|
459
|
+
}, (n) => {
|
|
460
|
+
console.error(n);
|
|
460
461
|
});
|
|
461
462
|
});
|
|
462
463
|
}
|
|
463
464
|
}
|
|
464
|
-
class
|
|
465
|
+
class St extends va {
|
|
465
466
|
constructor(e) {
|
|
466
467
|
super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(a) {
|
|
467
|
-
return new
|
|
468
|
+
return new ZA(a);
|
|
468
469
|
}), this.register(function(a) {
|
|
469
|
-
return new
|
|
470
|
+
return new $A(a);
|
|
470
471
|
}), this.register(function(a) {
|
|
471
|
-
return new
|
|
472
|
+
return new oi(a);
|
|
472
473
|
}), this.register(function(a) {
|
|
473
|
-
return new
|
|
474
|
+
return new ci(a);
|
|
474
475
|
}), this.register(function(a) {
|
|
475
|
-
return new
|
|
476
|
+
return new bi(a);
|
|
476
477
|
}), this.register(function(a) {
|
|
477
|
-
return new
|
|
478
|
+
return new ai(a);
|
|
478
479
|
}), this.register(function(a) {
|
|
479
|
-
return new
|
|
480
|
+
return new ti(a);
|
|
480
481
|
}), this.register(function(a) {
|
|
481
|
-
return new
|
|
482
|
+
return new Ai(a);
|
|
482
483
|
}), this.register(function(a) {
|
|
483
|
-
return new
|
|
484
|
+
return new ii(a);
|
|
484
485
|
}), this.register(function(a) {
|
|
485
|
-
return new
|
|
486
|
+
return new XA(a);
|
|
486
487
|
}), this.register(function(a) {
|
|
487
|
-
return new
|
|
488
|
+
return new si(a);
|
|
488
489
|
}), this.register(function(a) {
|
|
489
|
-
return new
|
|
490
|
+
return new ei(a);
|
|
490
491
|
}), this.register(function(a) {
|
|
491
|
-
return new
|
|
492
|
+
return new ni(a);
|
|
492
493
|
}), this.register(function(a) {
|
|
493
|
-
return new
|
|
494
|
+
return new ri(a);
|
|
494
495
|
}), this.register(function(a) {
|
|
495
|
-
return new
|
|
496
|
+
return new YA(a);
|
|
496
497
|
}), this.register(function(a) {
|
|
497
|
-
return new
|
|
498
|
+
return new di(a);
|
|
498
499
|
}), this.register(function(a) {
|
|
499
|
-
return new
|
|
500
|
+
return new hi(a);
|
|
500
501
|
});
|
|
501
502
|
}
|
|
502
503
|
load(e, a, t, A) {
|
|
@@ -504,20 +505,20 @@ class Dt extends Ma {
|
|
|
504
505
|
let s;
|
|
505
506
|
if (this.resourcePath !== "") s = this.resourcePath;
|
|
506
507
|
else if (this.path !== "") {
|
|
507
|
-
const
|
|
508
|
-
s =
|
|
509
|
-
} else s =
|
|
508
|
+
const o = He.extractUrlBase(e);
|
|
509
|
+
s = He.resolveURL(o, this.path);
|
|
510
|
+
} else s = He.extractUrlBase(e);
|
|
510
511
|
this.manager.itemStart(e);
|
|
511
|
-
const r = function(
|
|
512
|
-
A ? A(
|
|
513
|
-
},
|
|
514
|
-
|
|
512
|
+
const r = function(o) {
|
|
513
|
+
A ? A(o) : console.error(o), i.manager.itemError(e), i.manager.itemEnd(e);
|
|
514
|
+
}, n = new Be(this.manager);
|
|
515
|
+
n.setPath(this.path), n.setResponseType("arraybuffer"), n.setRequestHeader(this.requestHeader), n.setWithCredentials(this.withCredentials), n.load(e, function(o) {
|
|
515
516
|
try {
|
|
516
|
-
i.parse(
|
|
517
|
-
a(
|
|
517
|
+
i.parse(o, s, function(c) {
|
|
518
|
+
a(c), i.manager.itemEnd(e);
|
|
518
519
|
}, r);
|
|
519
|
-
} catch (
|
|
520
|
-
r(
|
|
520
|
+
} catch (c) {
|
|
521
|
+
r(c);
|
|
521
522
|
}
|
|
522
523
|
}, t, r);
|
|
523
524
|
}
|
|
@@ -538,45 +539,45 @@ class Dt extends Ma {
|
|
|
538
539
|
}
|
|
539
540
|
parse(e, a, t, A) {
|
|
540
541
|
let i;
|
|
541
|
-
const s = {}, r = {},
|
|
542
|
+
const s = {}, r = {}, n = new TextDecoder();
|
|
542
543
|
if (typeof e == "string") i = JSON.parse(e);
|
|
543
544
|
else if (e instanceof ArrayBuffer)
|
|
544
|
-
if (
|
|
545
|
+
if (n.decode(new Uint8Array(e, 0, 4)) === Dt) {
|
|
545
546
|
try {
|
|
546
|
-
s[S.KHR_BINARY_GLTF] = new
|
|
547
|
-
} catch (
|
|
548
|
-
return void (A && A(
|
|
547
|
+
s[S.KHR_BINARY_GLTF] = new fi(e);
|
|
548
|
+
} catch (c) {
|
|
549
|
+
return void (A && A(c));
|
|
549
550
|
}
|
|
550
551
|
i = JSON.parse(s[S.KHR_BINARY_GLTF].content);
|
|
551
|
-
} else i = JSON.parse(
|
|
552
|
+
} else i = JSON.parse(n.decode(e));
|
|
552
553
|
else i = e;
|
|
553
554
|
if (i.asset === void 0 || i.asset.version[0] < 2) return void (A && A(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));
|
|
554
|
-
const
|
|
555
|
-
|
|
556
|
-
for (let
|
|
557
|
-
const
|
|
558
|
-
|
|
555
|
+
const o = new ji(i, { path: a || this.resourcePath || "", crossOrigin: this.crossOrigin, requestHeader: this.requestHeader, manager: this.manager, ktx2Loader: this.ktx2Loader, meshoptDecoder: this.meshoptDecoder });
|
|
556
|
+
o.fileLoader.setRequestHeader(this.requestHeader);
|
|
557
|
+
for (let c = 0; c < this.pluginCallbacks.length; c++) {
|
|
558
|
+
const b = this.pluginCallbacks[c](o);
|
|
559
|
+
b.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), r[b.name] = b, s[b.name] = !0;
|
|
559
560
|
}
|
|
560
|
-
if (i.extensionsUsed) for (let
|
|
561
|
-
const
|
|
562
|
-
switch (
|
|
561
|
+
if (i.extensionsUsed) for (let c = 0; c < i.extensionsUsed.length; ++c) {
|
|
562
|
+
const b = i.extensionsUsed[c], g = i.extensionsRequired || [];
|
|
563
|
+
switch (b) {
|
|
563
564
|
case S.KHR_MATERIALS_UNLIT:
|
|
564
|
-
s[
|
|
565
|
+
s[b] = new WA();
|
|
565
566
|
break;
|
|
566
567
|
case S.KHR_DRACO_MESH_COMPRESSION:
|
|
567
|
-
s[
|
|
568
|
+
s[b] = new ui(i, this.dracoLoader);
|
|
568
569
|
break;
|
|
569
570
|
case S.KHR_TEXTURE_TRANSFORM:
|
|
570
|
-
s[
|
|
571
|
+
s[b] = new Ii();
|
|
571
572
|
break;
|
|
572
573
|
case S.KHR_MESH_QUANTIZATION:
|
|
573
|
-
s[
|
|
574
|
+
s[b] = new mi();
|
|
574
575
|
break;
|
|
575
576
|
default:
|
|
576
|
-
g.indexOf(
|
|
577
|
+
g.indexOf(b) >= 0 && r[b] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + b + '".');
|
|
577
578
|
}
|
|
578
579
|
}
|
|
579
|
-
|
|
580
|
+
o.setExtensions(s), o.setPlugins(r), o.parse(t, A);
|
|
580
581
|
}
|
|
581
582
|
parseAsync(e, a) {
|
|
582
583
|
const t = this;
|
|
@@ -585,20 +586,20 @@ class Dt extends Ma {
|
|
|
585
586
|
});
|
|
586
587
|
}
|
|
587
588
|
}
|
|
588
|
-
function
|
|
589
|
-
let
|
|
589
|
+
function VA() {
|
|
590
|
+
let h = {};
|
|
590
591
|
return { get: function(e) {
|
|
591
|
-
return
|
|
592
|
+
return h[e];
|
|
592
593
|
}, add: function(e, a) {
|
|
593
|
-
|
|
594
|
+
h[e] = a;
|
|
594
595
|
}, remove: function(e) {
|
|
595
|
-
delete
|
|
596
|
+
delete h[e];
|
|
596
597
|
}, removeAll: function() {
|
|
597
|
-
|
|
598
|
+
h = {};
|
|
598
599
|
} };
|
|
599
600
|
}
|
|
600
601
|
const S = { KHR_BINARY_GLTF: "KHR_binary_glTF", KHR_DRACO_MESH_COMPRESSION: "KHR_draco_mesh_compression", KHR_LIGHTS_PUNCTUAL: "KHR_lights_punctual", KHR_MATERIALS_CLEARCOAT: "KHR_materials_clearcoat", KHR_MATERIALS_DISPERSION: "KHR_materials_dispersion", KHR_MATERIALS_IOR: "KHR_materials_ior", KHR_MATERIALS_SHEEN: "KHR_materials_sheen", KHR_MATERIALS_SPECULAR: "KHR_materials_specular", KHR_MATERIALS_TRANSMISSION: "KHR_materials_transmission", KHR_MATERIALS_IRIDESCENCE: "KHR_materials_iridescence", KHR_MATERIALS_ANISOTROPY: "KHR_materials_anisotropy", KHR_MATERIALS_UNLIT: "KHR_materials_unlit", KHR_MATERIALS_VOLUME: "KHR_materials_volume", KHR_TEXTURE_BASISU: "KHR_texture_basisu", KHR_TEXTURE_TRANSFORM: "KHR_texture_transform", KHR_MESH_QUANTIZATION: "KHR_mesh_quantization", KHR_MATERIALS_EMISSIVE_STRENGTH: "KHR_materials_emissive_strength", EXT_MATERIALS_BUMP: "EXT_materials_bump", EXT_TEXTURE_WEBP: "EXT_texture_webp", EXT_TEXTURE_AVIF: "EXT_texture_avif", EXT_MESHOPT_COMPRESSION: "EXT_meshopt_compression", EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing" };
|
|
601
|
-
class
|
|
602
|
+
class YA {
|
|
602
603
|
constructor(e) {
|
|
603
604
|
this.parser = e, this.name = S.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
|
|
604
605
|
}
|
|
@@ -615,23 +616,23 @@ class $A {
|
|
|
615
616
|
if (A) return A;
|
|
616
617
|
const i = a.json, s = ((i.extensions && i.extensions[this.name] || {}).lights || [])[e];
|
|
617
618
|
let r;
|
|
618
|
-
const
|
|
619
|
-
s.color !== void 0 &&
|
|
620
|
-
const
|
|
619
|
+
const n = new he(16777215);
|
|
620
|
+
s.color !== void 0 && n.setRGB(s.color[0], s.color[1], s.color[2], K);
|
|
621
|
+
const o = s.range !== void 0 ? s.range : 0;
|
|
621
622
|
switch (s.type) {
|
|
622
623
|
case "directional":
|
|
623
|
-
r = new
|
|
624
|
+
r = new AA(n), r.target.position.set(0, 0, -1), r.add(r.target);
|
|
624
625
|
break;
|
|
625
626
|
case "point":
|
|
626
|
-
r = new
|
|
627
|
+
r = new tA(n), r.distance = o;
|
|
627
628
|
break;
|
|
628
629
|
case "spot":
|
|
629
|
-
r = new
|
|
630
|
+
r = new aA(n), r.distance = o, s.spot = s.spot || {}, s.spot.innerConeAngle = s.spot.innerConeAngle !== void 0 ? s.spot.innerConeAngle : 0, s.spot.outerConeAngle = s.spot.outerConeAngle !== void 0 ? s.spot.outerConeAngle : Math.PI / 4, r.angle = s.spot.outerConeAngle, r.penumbra = 1 - s.spot.innerConeAngle / s.spot.outerConeAngle, r.target.position.set(0, 0, -1), r.add(r.target);
|
|
630
631
|
break;
|
|
631
632
|
default:
|
|
632
633
|
throw new Error("THREE.GLTFLoader: Unexpected light type: " + s.type);
|
|
633
634
|
}
|
|
634
|
-
return r.position.set(0, 0, 0),
|
|
635
|
+
return r.position.set(0, 0, 0), ie(r, s), s.intensity !== void 0 && (r.intensity = s.intensity), r.name = a.createUniqueName(s.name || "light_" + e), A = Promise.resolve(r), a.cache.add(t, A), A;
|
|
635
636
|
}
|
|
636
637
|
getDependency(e, a) {
|
|
637
638
|
if (e === "light") return this._loadLight(a);
|
|
@@ -643,28 +644,28 @@ class $A {
|
|
|
643
644
|
});
|
|
644
645
|
}
|
|
645
646
|
}
|
|
646
|
-
class
|
|
647
|
+
class WA {
|
|
647
648
|
constructor() {
|
|
648
649
|
this.name = S.KHR_MATERIALS_UNLIT;
|
|
649
650
|
}
|
|
650
651
|
getMaterialType() {
|
|
651
|
-
return
|
|
652
|
+
return Me;
|
|
652
653
|
}
|
|
653
654
|
extendParams(e, a, t) {
|
|
654
655
|
const A = [];
|
|
655
|
-
e.color = new
|
|
656
|
+
e.color = new he(1, 1, 1), e.opacity = 1;
|
|
656
657
|
const i = a.pbrMetallicRoughness;
|
|
657
658
|
if (i) {
|
|
658
659
|
if (Array.isArray(i.baseColorFactor)) {
|
|
659
660
|
const s = i.baseColorFactor;
|
|
660
661
|
e.color.setRGB(s[0], s[1], s[2], K), e.opacity = s[3];
|
|
661
662
|
}
|
|
662
|
-
i.baseColorTexture !== void 0 && A.push(t.assignTexture(e, "map", i.baseColorTexture,
|
|
663
|
+
i.baseColorTexture !== void 0 && A.push(t.assignTexture(e, "map", i.baseColorTexture, se));
|
|
663
664
|
}
|
|
664
665
|
return Promise.all(A);
|
|
665
666
|
}
|
|
666
667
|
}
|
|
667
|
-
class
|
|
668
|
+
class XA {
|
|
668
669
|
constructor(e) {
|
|
669
670
|
this.parser = e, this.name = S.KHR_MATERIALS_EMISSIVE_STRENGTH;
|
|
670
671
|
}
|
|
@@ -675,13 +676,13 @@ class ai {
|
|
|
675
676
|
return A !== void 0 && (a.emissiveIntensity = A), Promise.resolve();
|
|
676
677
|
}
|
|
677
678
|
}
|
|
678
|
-
class
|
|
679
|
+
class ZA {
|
|
679
680
|
constructor(e) {
|
|
680
681
|
this.parser = e, this.name = S.KHR_MATERIALS_CLEARCOAT;
|
|
681
682
|
}
|
|
682
683
|
getMaterialType(e) {
|
|
683
684
|
const a = this.parser.json.materials[e];
|
|
684
|
-
return a.extensions && a.extensions[this.name] ?
|
|
685
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
685
686
|
}
|
|
686
687
|
extendMaterialParams(e, a) {
|
|
687
688
|
const t = this.parser, A = t.json.materials[e];
|
|
@@ -689,18 +690,18 @@ class ti {
|
|
|
689
690
|
const i = [], s = A.extensions[this.name];
|
|
690
691
|
if (s.clearcoatFactor !== void 0 && (a.clearcoat = s.clearcoatFactor), s.clearcoatTexture !== void 0 && i.push(t.assignTexture(a, "clearcoatMap", s.clearcoatTexture)), s.clearcoatRoughnessFactor !== void 0 && (a.clearcoatRoughness = s.clearcoatRoughnessFactor), s.clearcoatRoughnessTexture !== void 0 && i.push(t.assignTexture(a, "clearcoatRoughnessMap", s.clearcoatRoughnessTexture)), s.clearcoatNormalTexture !== void 0 && (i.push(t.assignTexture(a, "clearcoatNormalMap", s.clearcoatNormalTexture)), s.clearcoatNormalTexture.scale !== void 0)) {
|
|
691
692
|
const r = s.clearcoatNormalTexture.scale;
|
|
692
|
-
a.clearcoatNormalScale = new
|
|
693
|
+
a.clearcoatNormalScale = new Bt(r, r);
|
|
693
694
|
}
|
|
694
695
|
return Promise.all(i);
|
|
695
696
|
}
|
|
696
697
|
}
|
|
697
|
-
class
|
|
698
|
+
class $A {
|
|
698
699
|
constructor(e) {
|
|
699
700
|
this.parser = e, this.name = S.KHR_MATERIALS_DISPERSION;
|
|
700
701
|
}
|
|
701
702
|
getMaterialType(e) {
|
|
702
703
|
const a = this.parser.json.materials[e];
|
|
703
|
-
return a.extensions && a.extensions[this.name] ?
|
|
704
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
704
705
|
}
|
|
705
706
|
extendMaterialParams(e, a) {
|
|
706
707
|
const t = this.parser.json.materials[e];
|
|
@@ -709,13 +710,13 @@ class Ai {
|
|
|
709
710
|
return a.dispersion = A.dispersion !== void 0 ? A.dispersion : 0, Promise.resolve();
|
|
710
711
|
}
|
|
711
712
|
}
|
|
712
|
-
class
|
|
713
|
+
class ei {
|
|
713
714
|
constructor(e) {
|
|
714
715
|
this.parser = e, this.name = S.KHR_MATERIALS_IRIDESCENCE;
|
|
715
716
|
}
|
|
716
717
|
getMaterialType(e) {
|
|
717
718
|
const a = this.parser.json.materials[e];
|
|
718
|
-
return a.extensions && a.extensions[this.name] ?
|
|
719
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
719
720
|
}
|
|
720
721
|
extendMaterialParams(e, a) {
|
|
721
722
|
const t = this.parser, A = t.json.materials[e];
|
|
@@ -724,34 +725,34 @@ class ii {
|
|
|
724
725
|
return s.iridescenceFactor !== void 0 && (a.iridescence = s.iridescenceFactor), s.iridescenceTexture !== void 0 && i.push(t.assignTexture(a, "iridescenceMap", s.iridescenceTexture)), s.iridescenceIor !== void 0 && (a.iridescenceIOR = s.iridescenceIor), a.iridescenceThicknessRange === void 0 && (a.iridescenceThicknessRange = [100, 400]), s.iridescenceThicknessMinimum !== void 0 && (a.iridescenceThicknessRange[0] = s.iridescenceThicknessMinimum), s.iridescenceThicknessMaximum !== void 0 && (a.iridescenceThicknessRange[1] = s.iridescenceThicknessMaximum), s.iridescenceThicknessTexture !== void 0 && i.push(t.assignTexture(a, "iridescenceThicknessMap", s.iridescenceThicknessTexture)), Promise.all(i);
|
|
725
726
|
}
|
|
726
727
|
}
|
|
727
|
-
class
|
|
728
|
+
class ai {
|
|
728
729
|
constructor(e) {
|
|
729
730
|
this.parser = e, this.name = S.KHR_MATERIALS_SHEEN;
|
|
730
731
|
}
|
|
731
732
|
getMaterialType(e) {
|
|
732
733
|
const a = this.parser.json.materials[e];
|
|
733
|
-
return a.extensions && a.extensions[this.name] ?
|
|
734
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
734
735
|
}
|
|
735
736
|
extendMaterialParams(e, a) {
|
|
736
737
|
const t = this.parser, A = t.json.materials[e];
|
|
737
738
|
if (!A.extensions || !A.extensions[this.name]) return Promise.resolve();
|
|
738
739
|
const i = [];
|
|
739
|
-
a.sheenColor = new
|
|
740
|
+
a.sheenColor = new he(0, 0, 0), a.sheenRoughness = 0, a.sheen = 1;
|
|
740
741
|
const s = A.extensions[this.name];
|
|
741
742
|
if (s.sheenColorFactor !== void 0) {
|
|
742
743
|
const r = s.sheenColorFactor;
|
|
743
744
|
a.sheenColor.setRGB(r[0], r[1], r[2], K);
|
|
744
745
|
}
|
|
745
|
-
return s.sheenRoughnessFactor !== void 0 && (a.sheenRoughness = s.sheenRoughnessFactor), s.sheenColorTexture !== void 0 && i.push(t.assignTexture(a, "sheenColorMap", s.sheenColorTexture,
|
|
746
|
+
return s.sheenRoughnessFactor !== void 0 && (a.sheenRoughness = s.sheenRoughnessFactor), s.sheenColorTexture !== void 0 && i.push(t.assignTexture(a, "sheenColorMap", s.sheenColorTexture, se)), s.sheenRoughnessTexture !== void 0 && i.push(t.assignTexture(a, "sheenRoughnessMap", s.sheenRoughnessTexture)), Promise.all(i);
|
|
746
747
|
}
|
|
747
748
|
}
|
|
748
|
-
class
|
|
749
|
+
class ti {
|
|
749
750
|
constructor(e) {
|
|
750
751
|
this.parser = e, this.name = S.KHR_MATERIALS_TRANSMISSION;
|
|
751
752
|
}
|
|
752
753
|
getMaterialType(e) {
|
|
753
754
|
const a = this.parser.json.materials[e];
|
|
754
|
-
return a.extensions && a.extensions[this.name] ?
|
|
755
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
755
756
|
}
|
|
756
757
|
extendMaterialParams(e, a) {
|
|
757
758
|
const t = this.parser, A = t.json.materials[e];
|
|
@@ -760,13 +761,13 @@ class ri {
|
|
|
760
761
|
return s.transmissionFactor !== void 0 && (a.transmission = s.transmissionFactor), s.transmissionTexture !== void 0 && i.push(t.assignTexture(a, "transmissionMap", s.transmissionTexture)), Promise.all(i);
|
|
761
762
|
}
|
|
762
763
|
}
|
|
763
|
-
class
|
|
764
|
+
class Ai {
|
|
764
765
|
constructor(e) {
|
|
765
766
|
this.parser = e, this.name = S.KHR_MATERIALS_VOLUME;
|
|
766
767
|
}
|
|
767
768
|
getMaterialType(e) {
|
|
768
769
|
const a = this.parser.json.materials[e];
|
|
769
|
-
return a.extensions && a.extensions[this.name] ?
|
|
770
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
770
771
|
}
|
|
771
772
|
extendMaterialParams(e, a) {
|
|
772
773
|
const t = this.parser, A = t.json.materials[e];
|
|
@@ -774,16 +775,16 @@ class ni {
|
|
|
774
775
|
const i = [], s = A.extensions[this.name];
|
|
775
776
|
a.thickness = s.thicknessFactor !== void 0 ? s.thicknessFactor : 0, s.thicknessTexture !== void 0 && i.push(t.assignTexture(a, "thicknessMap", s.thicknessTexture)), a.attenuationDistance = s.attenuationDistance || 1 / 0;
|
|
776
777
|
const r = s.attenuationColor || [1, 1, 1];
|
|
777
|
-
return a.attenuationColor = new
|
|
778
|
+
return a.attenuationColor = new he().setRGB(r[0], r[1], r[2], K), Promise.all(i);
|
|
778
779
|
}
|
|
779
780
|
}
|
|
780
|
-
class
|
|
781
|
+
class ii {
|
|
781
782
|
constructor(e) {
|
|
782
783
|
this.parser = e, this.name = S.KHR_MATERIALS_IOR;
|
|
783
784
|
}
|
|
784
785
|
getMaterialType(e) {
|
|
785
786
|
const a = this.parser.json.materials[e];
|
|
786
|
-
return a.extensions && a.extensions[this.name] ?
|
|
787
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
787
788
|
}
|
|
788
789
|
extendMaterialParams(e, a) {
|
|
789
790
|
const t = this.parser.json.materials[e];
|
|
@@ -792,13 +793,13 @@ class oi {
|
|
|
792
793
|
return a.ior = A.ior !== void 0 ? A.ior : 1.5, Promise.resolve();
|
|
793
794
|
}
|
|
794
795
|
}
|
|
795
|
-
class
|
|
796
|
+
class si {
|
|
796
797
|
constructor(e) {
|
|
797
798
|
this.parser = e, this.name = S.KHR_MATERIALS_SPECULAR;
|
|
798
799
|
}
|
|
799
800
|
getMaterialType(e) {
|
|
800
801
|
const a = this.parser.json.materials[e];
|
|
801
|
-
return a.extensions && a.extensions[this.name] ?
|
|
802
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
802
803
|
}
|
|
803
804
|
extendMaterialParams(e, a) {
|
|
804
805
|
const t = this.parser, A = t.json.materials[e];
|
|
@@ -806,16 +807,16 @@ class ci {
|
|
|
806
807
|
const i = [], s = A.extensions[this.name];
|
|
807
808
|
a.specularIntensity = s.specularFactor !== void 0 ? s.specularFactor : 1, s.specularTexture !== void 0 && i.push(t.assignTexture(a, "specularIntensityMap", s.specularTexture));
|
|
808
809
|
const r = s.specularColorFactor || [1, 1, 1];
|
|
809
|
-
return a.specularColor = new
|
|
810
|
+
return a.specularColor = new he().setRGB(r[0], r[1], r[2], K), s.specularColorTexture !== void 0 && i.push(t.assignTexture(a, "specularColorMap", s.specularColorTexture, se)), Promise.all(i);
|
|
810
811
|
}
|
|
811
812
|
}
|
|
812
|
-
class
|
|
813
|
+
class ri {
|
|
813
814
|
constructor(e) {
|
|
814
815
|
this.parser = e, this.name = S.EXT_MATERIALS_BUMP;
|
|
815
816
|
}
|
|
816
817
|
getMaterialType(e) {
|
|
817
818
|
const a = this.parser.json.materials[e];
|
|
818
|
-
return a.extensions && a.extensions[this.name] ?
|
|
819
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
819
820
|
}
|
|
820
821
|
extendMaterialParams(e, a) {
|
|
821
822
|
const t = this.parser, A = t.json.materials[e];
|
|
@@ -824,13 +825,13 @@ class bi {
|
|
|
824
825
|
return a.bumpScale = s.bumpFactor !== void 0 ? s.bumpFactor : 1, s.bumpTexture !== void 0 && i.push(t.assignTexture(a, "bumpMap", s.bumpTexture)), Promise.all(i);
|
|
825
826
|
}
|
|
826
827
|
}
|
|
827
|
-
class
|
|
828
|
+
class ni {
|
|
828
829
|
constructor(e) {
|
|
829
830
|
this.parser = e, this.name = S.KHR_MATERIALS_ANISOTROPY;
|
|
830
831
|
}
|
|
831
832
|
getMaterialType(e) {
|
|
832
833
|
const a = this.parser.json.materials[e];
|
|
833
|
-
return a.extensions && a.extensions[this.name] ?
|
|
834
|
+
return a.extensions && a.extensions[this.name] ? ee : null;
|
|
834
835
|
}
|
|
835
836
|
extendMaterialParams(e, a) {
|
|
836
837
|
const t = this.parser, A = t.json.materials[e];
|
|
@@ -839,7 +840,7 @@ class di {
|
|
|
839
840
|
return s.anisotropyStrength !== void 0 && (a.anisotropy = s.anisotropyStrength), s.anisotropyRotation !== void 0 && (a.anisotropyRotation = s.anisotropyRotation), s.anisotropyTexture !== void 0 && i.push(t.assignTexture(a, "anisotropyMap", s.anisotropyTexture)), Promise.all(i);
|
|
840
841
|
}
|
|
841
842
|
}
|
|
842
|
-
class
|
|
843
|
+
class oi {
|
|
843
844
|
constructor(e) {
|
|
844
845
|
this.parser = e, this.name = S.KHR_TEXTURE_BASISU;
|
|
845
846
|
}
|
|
@@ -854,7 +855,7 @@ class hi {
|
|
|
854
855
|
return a.loadTextureImage(e, i.source, s);
|
|
855
856
|
}
|
|
856
857
|
}
|
|
857
|
-
class
|
|
858
|
+
class ci {
|
|
858
859
|
constructor(e) {
|
|
859
860
|
this.parser = e, this.name = S.EXT_TEXTURE_WEBP, this.isSupported = null;
|
|
860
861
|
}
|
|
@@ -862,13 +863,13 @@ class li {
|
|
|
862
863
|
const a = this.name, t = this.parser, A = t.json, i = A.textures[e];
|
|
863
864
|
if (!i.extensions || !i.extensions[a]) return null;
|
|
864
865
|
const s = i.extensions[a], r = A.images[s.source];
|
|
865
|
-
let
|
|
866
|
+
let n = t.textureLoader;
|
|
866
867
|
if (r.uri) {
|
|
867
|
-
const
|
|
868
|
-
|
|
868
|
+
const o = t.options.manager.getHandler(r.uri);
|
|
869
|
+
o !== null && (n = o);
|
|
869
870
|
}
|
|
870
|
-
return this.detectSupport().then(function(
|
|
871
|
-
if (
|
|
871
|
+
return this.detectSupport().then(function(o) {
|
|
872
|
+
if (o) return t.loadTextureImage(e, s.source, n);
|
|
872
873
|
if (A.extensionsRequired && A.extensionsRequired.indexOf(a) >= 0) throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");
|
|
873
874
|
return t.loadTexture(e);
|
|
874
875
|
});
|
|
@@ -882,7 +883,7 @@ class li {
|
|
|
882
883
|
})), this.isSupported;
|
|
883
884
|
}
|
|
884
885
|
}
|
|
885
|
-
class
|
|
886
|
+
class bi {
|
|
886
887
|
constructor(e) {
|
|
887
888
|
this.parser = e, this.name = S.EXT_TEXTURE_AVIF, this.isSupported = null;
|
|
888
889
|
}
|
|
@@ -890,13 +891,13 @@ class gi {
|
|
|
890
891
|
const a = this.name, t = this.parser, A = t.json, i = A.textures[e];
|
|
891
892
|
if (!i.extensions || !i.extensions[a]) return null;
|
|
892
893
|
const s = i.extensions[a], r = A.images[s.source];
|
|
893
|
-
let
|
|
894
|
+
let n = t.textureLoader;
|
|
894
895
|
if (r.uri) {
|
|
895
|
-
const
|
|
896
|
-
|
|
896
|
+
const o = t.options.manager.getHandler(r.uri);
|
|
897
|
+
o !== null && (n = o);
|
|
897
898
|
}
|
|
898
|
-
return this.detectSupport().then(function(
|
|
899
|
-
if (
|
|
899
|
+
return this.detectSupport().then(function(o) {
|
|
900
|
+
if (o) return t.loadTextureImage(e, s.source, n);
|
|
900
901
|
if (A.extensionsRequired && A.extensionsRequired.indexOf(a) >= 0) throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");
|
|
901
902
|
return t.loadTexture(e);
|
|
902
903
|
});
|
|
@@ -910,7 +911,7 @@ class gi {
|
|
|
910
911
|
})), this.isSupported;
|
|
911
912
|
}
|
|
912
913
|
}
|
|
913
|
-
class
|
|
914
|
+
class di {
|
|
914
915
|
constructor(e) {
|
|
915
916
|
this.name = S.EXT_MESHOPT_COMPRESSION, this.parser = e;
|
|
916
917
|
}
|
|
@@ -923,19 +924,19 @@ class fi {
|
|
|
923
924
|
return null;
|
|
924
925
|
}
|
|
925
926
|
return i.then(function(r) {
|
|
926
|
-
const
|
|
927
|
-
return s.decodeGltfBufferAsync ? s.decodeGltfBufferAsync(
|
|
927
|
+
const n = A.byteOffset || 0, o = A.byteLength || 0, c = A.count, b = A.byteStride, g = new Uint8Array(r, n, o);
|
|
928
|
+
return s.decodeGltfBufferAsync ? s.decodeGltfBufferAsync(c, b, g, A.mode, A.filter).then(function(l) {
|
|
928
929
|
return l.buffer;
|
|
929
930
|
}) : s.ready.then(function() {
|
|
930
|
-
const l = new ArrayBuffer(
|
|
931
|
-
return s.decodeGltfBuffer(new Uint8Array(l),
|
|
931
|
+
const l = new ArrayBuffer(c * b);
|
|
932
|
+
return s.decodeGltfBuffer(new Uint8Array(l), c, b, g, A.mode, A.filter), l;
|
|
932
933
|
});
|
|
933
934
|
});
|
|
934
935
|
}
|
|
935
936
|
return null;
|
|
936
937
|
}
|
|
937
938
|
}
|
|
938
|
-
class
|
|
939
|
+
class hi {
|
|
939
940
|
constructor(e) {
|
|
940
941
|
this.name = S.EXT_MESH_GPU_INSTANCING, this.parser = e;
|
|
941
942
|
}
|
|
@@ -943,81 +944,81 @@ class ui {
|
|
|
943
944
|
const a = this.parser.json, t = a.nodes[e];
|
|
944
945
|
if (!t.extensions || !t.extensions[this.name] || t.mesh === void 0) return null;
|
|
945
946
|
const A = a.meshes[t.mesh];
|
|
946
|
-
for (const
|
|
947
|
+
for (const n of A.primitives) if (n.mode !== J.TRIANGLES && n.mode !== J.TRIANGLE_STRIP && n.mode !== J.TRIANGLE_FAN && n.mode !== void 0) return null;
|
|
947
948
|
const i = t.extensions[this.name].attributes, s = [], r = {};
|
|
948
|
-
for (const
|
|
949
|
-
return s.length < 1 ? null : (s.push(this.parser.createNodeMesh(e)), Promise.all(s).then((
|
|
950
|
-
const
|
|
951
|
-
for (const l of
|
|
952
|
-
const
|
|
953
|
-
for (let C = 0; C <
|
|
949
|
+
for (const n in i) s.push(this.parser.getDependency("accessor", i[n]).then((o) => (r[n] = o, r[n])));
|
|
950
|
+
return s.length < 1 ? null : (s.push(this.parser.createNodeMesh(e)), Promise.all(s).then((n) => {
|
|
951
|
+
const o = n.pop(), c = o.isGroup ? o.children : [o], b = n[0].count, g = [];
|
|
952
|
+
for (const l of c) {
|
|
953
|
+
const d = new xe(), f = new D(), I = new Ct(), m = new D(1, 1, 1), u = new iA(l.geometry, l.material, b);
|
|
954
|
+
for (let C = 0; C < b; C++) r.TRANSLATION && f.fromBufferAttribute(r.TRANSLATION, C), r.ROTATION && I.fromBufferAttribute(r.ROTATION, C), r.SCALE && m.fromBufferAttribute(r.SCALE, C), u.setMatrixAt(C, d.compose(f, I, m));
|
|
954
955
|
for (const C in r) if (C === "_COLOR_0") {
|
|
955
956
|
const B = r[C];
|
|
956
|
-
u.instanceColor = new
|
|
957
|
+
u.instanceColor = new Ea(B.array, B.itemSize, B.normalized);
|
|
957
958
|
} else C !== "TRANSLATION" && C !== "ROTATION" && C !== "SCALE" && l.geometry.setAttribute(C, r[C]);
|
|
958
|
-
|
|
959
|
+
pt.prototype.copy.call(u, l), this.parser.assignFinalMaterial(u), g.push(u);
|
|
959
960
|
}
|
|
960
|
-
return
|
|
961
|
+
return o.isGroup ? (o.clear(), o.add(...g), o) : g[0];
|
|
961
962
|
}));
|
|
962
963
|
}
|
|
963
964
|
}
|
|
964
|
-
const
|
|
965
|
-
class
|
|
965
|
+
const Dt = "glTF", li = 1313821514, gi = 5130562;
|
|
966
|
+
class fi {
|
|
966
967
|
constructor(e) {
|
|
967
968
|
this.name = S.KHR_BINARY_GLTF, this.content = null, this.body = null;
|
|
968
969
|
const a = new DataView(e, 0, 12), t = new TextDecoder();
|
|
969
|
-
if (this.header = { magic: t.decode(new Uint8Array(e.slice(0, 4))), version: a.getUint32(4, !0), length: a.getUint32(8, !0) }, this.header.magic !==
|
|
970
|
+
if (this.header = { magic: t.decode(new Uint8Array(e.slice(0, 4))), version: a.getUint32(4, !0), length: a.getUint32(8, !0) }, this.header.magic !== Dt) throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");
|
|
970
971
|
if (this.header.version < 2) throw new Error("THREE.GLTFLoader: Legacy binary file detected.");
|
|
971
972
|
const A = this.header.length - 12, i = new DataView(e, 12);
|
|
972
973
|
let s = 0;
|
|
973
974
|
for (; s < A; ) {
|
|
974
975
|
const r = i.getUint32(s, !0);
|
|
975
976
|
s += 4;
|
|
976
|
-
const
|
|
977
|
-
if (s += 4,
|
|
978
|
-
const
|
|
979
|
-
this.content = t.decode(
|
|
980
|
-
} else if (
|
|
981
|
-
const
|
|
982
|
-
this.body = e.slice(
|
|
977
|
+
const n = i.getUint32(s, !0);
|
|
978
|
+
if (s += 4, n === li) {
|
|
979
|
+
const o = new Uint8Array(e, 12 + s, r);
|
|
980
|
+
this.content = t.decode(o);
|
|
981
|
+
} else if (n === gi) {
|
|
982
|
+
const o = 12 + s;
|
|
983
|
+
this.body = e.slice(o, o + r);
|
|
983
984
|
}
|
|
984
985
|
s += r;
|
|
985
986
|
}
|
|
986
987
|
if (this.content === null) throw new Error("THREE.GLTFLoader: JSON content not found.");
|
|
987
988
|
}
|
|
988
989
|
}
|
|
989
|
-
class
|
|
990
|
+
class ui {
|
|
990
991
|
constructor(e, a) {
|
|
991
992
|
if (!a) throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
|
|
992
993
|
this.name = S.KHR_DRACO_MESH_COMPRESSION, this.json = e, this.dracoLoader = a, this.dracoLoader.preload();
|
|
993
994
|
}
|
|
994
995
|
decodePrimitive(e, a) {
|
|
995
|
-
const t = this.json, A = this.dracoLoader, i = e.extensions[this.name].bufferView, s = e.extensions[this.name].attributes, r = {},
|
|
996
|
-
for (const
|
|
997
|
-
const
|
|
998
|
-
r[
|
|
996
|
+
const t = this.json, A = this.dracoLoader, i = e.extensions[this.name].bufferView, s = e.extensions[this.name].attributes, r = {}, n = {}, o = {};
|
|
997
|
+
for (const c in s) {
|
|
998
|
+
const b = ka[c] || c.toLowerCase();
|
|
999
|
+
r[b] = s[c];
|
|
999
1000
|
}
|
|
1000
|
-
for (const
|
|
1001
|
-
const
|
|
1002
|
-
if (s[
|
|
1003
|
-
const g = t.accessors[e.attributes[
|
|
1004
|
-
|
|
1001
|
+
for (const c in e.attributes) {
|
|
1002
|
+
const b = ka[c] || c.toLowerCase();
|
|
1003
|
+
if (s[c] !== void 0) {
|
|
1004
|
+
const g = t.accessors[e.attributes[c]], l = ke[g.componentType];
|
|
1005
|
+
o[b] = l.name, n[b] = g.normalized === !0;
|
|
1005
1006
|
}
|
|
1006
1007
|
}
|
|
1007
|
-
return a.getDependency("bufferView", i).then(function(
|
|
1008
|
-
return new Promise(function(
|
|
1009
|
-
A.decodeDracoFile(
|
|
1010
|
-
for (const
|
|
1011
|
-
const f = l.attributes[
|
|
1008
|
+
return a.getDependency("bufferView", i).then(function(c) {
|
|
1009
|
+
return new Promise(function(b, g) {
|
|
1010
|
+
A.decodeDracoFile(c, function(l) {
|
|
1011
|
+
for (const d in l.attributes) {
|
|
1012
|
+
const f = l.attributes[d], I = n[d];
|
|
1012
1013
|
I !== void 0 && (f.normalized = I);
|
|
1013
1014
|
}
|
|
1014
|
-
|
|
1015
|
-
}, r,
|
|
1015
|
+
b(l);
|
|
1016
|
+
}, r, o, K, g);
|
|
1016
1017
|
});
|
|
1017
1018
|
});
|
|
1018
1019
|
}
|
|
1019
1020
|
}
|
|
1020
|
-
class
|
|
1021
|
+
class Ii {
|
|
1021
1022
|
constructor() {
|
|
1022
1023
|
this.name = S.KHR_TEXTURE_TRANSFORM;
|
|
1023
1024
|
}
|
|
@@ -1025,12 +1026,12 @@ class pi {
|
|
|
1025
1026
|
return (a.texCoord !== void 0 && a.texCoord !== e.channel || a.offset !== void 0 || a.rotation !== void 0 || a.scale !== void 0) && (e = e.clone(), a.texCoord !== void 0 && (e.channel = a.texCoord), a.offset !== void 0 && e.offset.fromArray(a.offset), a.rotation !== void 0 && (e.rotation = a.rotation), a.scale !== void 0 && e.repeat.fromArray(a.scale), e.needsUpdate = !0), e;
|
|
1026
1027
|
}
|
|
1027
1028
|
}
|
|
1028
|
-
class
|
|
1029
|
+
class mi {
|
|
1029
1030
|
constructor() {
|
|
1030
1031
|
this.name = S.KHR_MESH_QUANTIZATION;
|
|
1031
1032
|
}
|
|
1032
1033
|
}
|
|
1033
|
-
class
|
|
1034
|
+
class vt extends xA {
|
|
1034
1035
|
constructor(e, a, t, A) {
|
|
1035
1036
|
super(e, a, t, A);
|
|
1036
1037
|
}
|
|
@@ -1040,52 +1041,52 @@ class Ft extends SA {
|
|
|
1040
1041
|
return a;
|
|
1041
1042
|
}
|
|
1042
1043
|
interpolate_(e, a, t, A) {
|
|
1043
|
-
const i = this.resultBuffer, s = this.sampleValues, r = this.valueSize,
|
|
1044
|
+
const i = this.resultBuffer, s = this.sampleValues, r = this.valueSize, n = 2 * r, o = 3 * r, c = A - a, b = (t - a) / c, g = b * b, l = g * b, d = e * o, f = d - o, I = -2 * l + 3 * g, m = l - g, u = 1 - I, C = m - g + b;
|
|
1044
1045
|
for (let B = 0; B !== r; B++) {
|
|
1045
|
-
const w = s[f + B + r], k = s[f + B +
|
|
1046
|
+
const w = s[f + B + r], k = s[f + B + n] * c, y = s[d + B + r], p = s[d + B] * c;
|
|
1046
1047
|
i[B] = u * w + C * k + I * y + m * p;
|
|
1047
1048
|
}
|
|
1048
1049
|
return i;
|
|
1049
1050
|
}
|
|
1050
1051
|
}
|
|
1051
|
-
const
|
|
1052
|
-
class
|
|
1052
|
+
const Bi = new Ct();
|
|
1053
|
+
class Ci extends vt {
|
|
1053
1054
|
interpolate_(e, a, t, A) {
|
|
1054
1055
|
const i = super.interpolate_(e, a, t, A);
|
|
1055
|
-
return
|
|
1056
|
+
return Bi.fromArray(i).normalize().toArray(i), i;
|
|
1056
1057
|
}
|
|
1057
1058
|
}
|
|
1058
|
-
const J = {
|
|
1059
|
-
function
|
|
1060
|
-
for (const t in a.extensions)
|
|
1059
|
+
const J = { POINTS: 0, LINES: 1, LINE_LOOP: 2, LINE_STRIP: 3, TRIANGLES: 4, TRIANGLE_STRIP: 5, TRIANGLE_FAN: 6 }, ke = { 5120: Int8Array, 5121: Uint8Array, 5122: Int16Array, 5123: Uint16Array, 5125: Uint32Array, 5126: Float32Array }, Xa = { 9728: v, 9729: me, 9984: dA, 9985: bA, 9986: cA, 9987: Xe }, Za = { 33071: lA, 33648: hA, 10497: Qa }, ia = { SCALAR: 1, VEC2: 2, VEC3: 3, VEC4: 4, MAT2: 4, MAT3: 9, MAT4: 16 }, ka = { POSITION: "position", NORMAL: "normal", TANGENT: "tangent", TEXCOORD_0: "uv", TEXCOORD_1: "uv1", TEXCOORD_2: "uv2", TEXCOORD_3: "uv3", COLOR_0: "color", WEIGHTS_0: "skinWeight", JOINTS_0: "skinIndex" }, ne = { scale: "scale", translation: "position", rotation: "quaternion", weights: "morphTargetInfluences" }, pi = { CUBICSPLINE: void 0, LINEAR: Qt, STEP: kA }, Ei = "OPAQUE", Qi = "MASK", yi = "BLEND";
|
|
1060
|
+
function ge(h, e, a) {
|
|
1061
|
+
for (const t in a.extensions) h[t] === void 0 && (e.userData.gltfExtensions = e.userData.gltfExtensions || {}, e.userData.gltfExtensions[t] = a.extensions[t]);
|
|
1061
1062
|
}
|
|
1062
|
-
function
|
|
1063
|
-
e.extras !== void 0 && (typeof e.extras == "object" ? Object.assign(
|
|
1063
|
+
function ie(h, e) {
|
|
1064
|
+
e.extras !== void 0 && (typeof e.extras == "object" ? Object.assign(h.userData, e.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + e.extras));
|
|
1064
1065
|
}
|
|
1065
|
-
function
|
|
1066
|
-
if (
|
|
1066
|
+
function wi(h, e) {
|
|
1067
|
+
if (h.updateMorphTargets(), e.weights !== void 0) for (let a = 0, t = e.weights.length; a < t; a++) h.morphTargetInfluences[a] = e.weights[a];
|
|
1067
1068
|
if (e.extras && Array.isArray(e.extras.targetNames)) {
|
|
1068
1069
|
const a = e.extras.targetNames;
|
|
1069
|
-
if (
|
|
1070
|
-
|
|
1071
|
-
for (let t = 0, A = a.length; t < A; t++)
|
|
1070
|
+
if (h.morphTargetInfluences.length === a.length) {
|
|
1071
|
+
h.morphTargetDictionary = {};
|
|
1072
|
+
for (let t = 0, A = a.length; t < A; t++) h.morphTargetDictionary[a[t]] = t;
|
|
1072
1073
|
} else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
|
|
1073
1074
|
}
|
|
1074
1075
|
}
|
|
1075
|
-
function
|
|
1076
|
+
function ki(h) {
|
|
1076
1077
|
let e;
|
|
1077
|
-
const a =
|
|
1078
|
-
if (e = a ? "draco:" + a.bufferView + ":" + a.indices + ":" +
|
|
1078
|
+
const a = h.extensions && h.extensions[S.KHR_DRACO_MESH_COMPRESSION];
|
|
1079
|
+
if (e = a ? "draco:" + a.bufferView + ":" + a.indices + ":" + sa(a.attributes) : h.indices + ":" + sa(h.attributes) + ":" + h.mode, h.targets !== void 0) for (let t = 0, A = h.targets.length; t < A; t++) e += ":" + sa(h.targets[t]);
|
|
1079
1080
|
return e;
|
|
1080
1081
|
}
|
|
1081
|
-
function
|
|
1082
|
+
function sa(h) {
|
|
1082
1083
|
let e = "";
|
|
1083
|
-
const a = Object.keys(
|
|
1084
|
-
for (let t = 0, A = a.length; t < A; t++) e += a[t] + ":" +
|
|
1084
|
+
const a = Object.keys(h).sort();
|
|
1085
|
+
for (let t = 0, A = a.length; t < A; t++) e += a[t] + ":" + h[a[t]] + ";";
|
|
1085
1086
|
return e;
|
|
1086
1087
|
}
|
|
1087
|
-
function
|
|
1088
|
-
switch (
|
|
1088
|
+
function xa(h) {
|
|
1089
|
+
switch (h) {
|
|
1089
1090
|
case Int8Array:
|
|
1090
1091
|
return 1 / 127;
|
|
1091
1092
|
case Uint8Array:
|
|
@@ -1098,18 +1099,18 @@ function Da(c) {
|
|
|
1098
1099
|
throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
|
|
1099
1100
|
}
|
|
1100
1101
|
}
|
|
1101
|
-
const
|
|
1102
|
-
class
|
|
1102
|
+
const xi = new xe();
|
|
1103
|
+
class ji {
|
|
1103
1104
|
constructor(e = {}, a = {}) {
|
|
1104
|
-
this.json = e, this.extensions = {}, this.plugins = {}, this.options = a, this.cache = new
|
|
1105
|
+
this.json = e, this.extensions = {}, this.plugins = {}, this.options = a, this.cache = new VA(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.nodeCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { refs: {}, uses: {} }, this.lightCache = { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};
|
|
1105
1106
|
let t = !1, A = -1, i = !1, s = -1;
|
|
1106
1107
|
if (typeof navigator < "u") {
|
|
1107
1108
|
const r = navigator.userAgent;
|
|
1108
1109
|
t = /^((?!chrome|android).)*safari/i.test(r) === !0;
|
|
1109
|
-
const
|
|
1110
|
-
A = t &&
|
|
1110
|
+
const n = r.match(/Version\/(\d+)/);
|
|
1111
|
+
A = t && n ? parseInt(n[1], 10) : -1, i = r.indexOf("Firefox") > -1, s = i ? r.match(/Firefox\/([0-9]+)\./)[1] : -1;
|
|
1111
1112
|
}
|
|
1112
|
-
typeof createImageBitmap > "u" || t && A < 17 || i && s < 98 ? this.textureLoader = new
|
|
1113
|
+
typeof createImageBitmap > "u" || t && A < 17 || i && s < 98 ? this.textureLoader = new sA(this.options.manager) : this.textureLoader = new rA(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new Be(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), this.options.crossOrigin === "use-credentials" && this.fileLoader.setWithCredentials(!0);
|
|
1113
1114
|
}
|
|
1114
1115
|
setExtensions(e) {
|
|
1115
1116
|
this.extensions = e;
|
|
@@ -1127,10 +1128,10 @@ class Fi {
|
|
|
1127
1128
|
return Promise.all([t.getDependencies("scene"), t.getDependencies("animation"), t.getDependencies("camera")]);
|
|
1128
1129
|
}).then(function(s) {
|
|
1129
1130
|
const r = { scene: s[0][A.scene || 0], scenes: s[0], animations: s[1], cameras: s[2], asset: A.asset, parser: t, userData: {} };
|
|
1130
|
-
return
|
|
1131
|
-
return
|
|
1131
|
+
return ge(i, r, A), ie(r, A), Promise.all(t._invokeAll(function(n) {
|
|
1132
|
+
return n.afterRoot && n.afterRoot(r);
|
|
1132
1133
|
})).then(function() {
|
|
1133
|
-
for (const
|
|
1134
|
+
for (const n of r.scenes) n.updateMatrixWorld();
|
|
1134
1135
|
e(r);
|
|
1135
1136
|
});
|
|
1136
1137
|
}).catch(a);
|
|
@@ -1139,7 +1140,7 @@ class Fi {
|
|
|
1139
1140
|
const e = this.json.nodes || [], a = this.json.skins || [], t = this.json.meshes || [];
|
|
1140
1141
|
for (let A = 0, i = a.length; A < i; A++) {
|
|
1141
1142
|
const s = a[A].joints;
|
|
1142
|
-
for (let r = 0,
|
|
1143
|
+
for (let r = 0, n = s.length; r < n; r++) e[s[r]].isBone = !0;
|
|
1143
1144
|
}
|
|
1144
1145
|
for (let A = 0, i = e.length; A < i; A++) {
|
|
1145
1146
|
const s = e[A];
|
|
@@ -1152,9 +1153,9 @@ class Fi {
|
|
|
1152
1153
|
_getNodeRef(e, a, t) {
|
|
1153
1154
|
if (e.refs[a] <= 1) return t;
|
|
1154
1155
|
const A = t.clone(), i = (s, r) => {
|
|
1155
|
-
const
|
|
1156
|
-
|
|
1157
|
-
for (const [
|
|
1156
|
+
const n = this.associations.get(s);
|
|
1157
|
+
n != null && this.associations.set(r, n);
|
|
1158
|
+
for (const [o, c] of s.children.entries()) i(c, r.children[o]);
|
|
1158
1159
|
};
|
|
1159
1160
|
return i(t, A), A.name += "_instance_" + e.uses[a]++, A;
|
|
1160
1161
|
}
|
|
@@ -1252,7 +1253,7 @@ class Fi {
|
|
|
1252
1253
|
if (a.uri === void 0 && e === 0) return Promise.resolve(this.extensions[S.KHR_BINARY_GLTF].body);
|
|
1253
1254
|
const A = this.options;
|
|
1254
1255
|
return new Promise(function(i, s) {
|
|
1255
|
-
t.load(
|
|
1256
|
+
t.load(He.resolveURL(a.uri, A.path), i, void 0, function() {
|
|
1256
1257
|
s(new Error('THREE.GLTFLoader: Failed to load buffer "' + a.uri + '".'));
|
|
1257
1258
|
});
|
|
1258
1259
|
});
|
|
@@ -1267,26 +1268,26 @@ class Fi {
|
|
|
1267
1268
|
loadAccessor(e) {
|
|
1268
1269
|
const a = this, t = this.json, A = this.json.accessors[e];
|
|
1269
1270
|
if (A.bufferView === void 0 && A.sparse === void 0) {
|
|
1270
|
-
const s =
|
|
1271
|
-
return Promise.resolve(new
|
|
1271
|
+
const s = ia[A.type], r = ke[A.componentType], n = A.normalized === !0, o = new r(A.count * s);
|
|
1272
|
+
return Promise.resolve(new de(o, s, n));
|
|
1272
1273
|
}
|
|
1273
1274
|
const i = [];
|
|
1274
1275
|
return A.bufferView !== void 0 ? i.push(this.getDependency("bufferView", A.bufferView)) : i.push(null), A.sparse !== void 0 && (i.push(this.getDependency("bufferView", A.sparse.indices.bufferView)), i.push(this.getDependency("bufferView", A.sparse.values.bufferView))), Promise.all(i).then(function(s) {
|
|
1275
|
-
const r = s[0],
|
|
1276
|
+
const r = s[0], n = ia[A.type], o = ke[A.componentType], c = o.BYTES_PER_ELEMENT, b = c * n, g = A.byteOffset || 0, l = A.bufferView !== void 0 ? t.bufferViews[A.bufferView].byteStride : void 0, d = A.normalized === !0;
|
|
1276
1277
|
let f, I;
|
|
1277
|
-
if (l && l !==
|
|
1278
|
+
if (l && l !== b) {
|
|
1278
1279
|
const m = Math.floor(g / l), u = "InterleavedBuffer:" + A.bufferView + ":" + A.componentType + ":" + m + ":" + A.count;
|
|
1279
1280
|
let C = a.cache.get(u);
|
|
1280
|
-
C || (f = new
|
|
1281
|
-
} else f = r === null ? new
|
|
1281
|
+
C || (f = new o(r, m * l, A.count * l / c), C = new nA(f, l / c), a.cache.add(u, C)), I = new oA(C, n, g % l / c, d);
|
|
1282
|
+
} else f = r === null ? new o(A.count * n) : new o(r, g, A.count * n), I = new de(f, n, d);
|
|
1282
1283
|
if (A.sparse !== void 0) {
|
|
1283
|
-
const m =
|
|
1284
|
-
r !== null && (I = new
|
|
1284
|
+
const m = ia.SCALAR, u = ke[A.sparse.indices.componentType], C = A.sparse.indices.byteOffset || 0, B = A.sparse.values.byteOffset || 0, w = new u(s[1], C, A.sparse.count * m), k = new o(s[2], B, A.sparse.count * n);
|
|
1285
|
+
r !== null && (I = new de(I.array.slice(), I.itemSize, I.normalized)), I.normalized = !1;
|
|
1285
1286
|
for (let y = 0, p = w.length; y < p; y++) {
|
|
1286
1287
|
const Q = w[y];
|
|
1287
|
-
if (I.setX(Q, k[y *
|
|
1288
|
+
if (I.setX(Q, k[y * n]), n >= 2 && I.setY(Q, k[y * n + 1]), n >= 3 && I.setZ(Q, k[y * n + 2]), n >= 4 && I.setW(Q, k[y * n + 3]), n >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
|
|
1288
1289
|
}
|
|
1289
|
-
I.normalized =
|
|
1290
|
+
I.normalized = d;
|
|
1290
1291
|
}
|
|
1291
1292
|
return I;
|
|
1292
1293
|
});
|
|
@@ -1301,43 +1302,43 @@ class Fi {
|
|
|
1301
1302
|
return this.loadTextureImage(e, A, s);
|
|
1302
1303
|
}
|
|
1303
1304
|
loadTextureImage(e, a, t) {
|
|
1304
|
-
const A = this, i = this.json, s = i.textures[e], r = i.images[a],
|
|
1305
|
-
if (this.textureCache[
|
|
1306
|
-
const
|
|
1307
|
-
|
|
1308
|
-
const
|
|
1309
|
-
return
|
|
1305
|
+
const A = this, i = this.json, s = i.textures[e], r = i.images[a], n = (r.uri || r.bufferView) + ":" + s.sampler;
|
|
1306
|
+
if (this.textureCache[n]) return this.textureCache[n];
|
|
1307
|
+
const o = this.loadImageSource(a, t).then(function(c) {
|
|
1308
|
+
c.flipY = !1, c.name = s.name || r.name || "", c.name === "" && typeof r.uri == "string" && r.uri.startsWith("data:image/") === !1 && (c.name = r.uri);
|
|
1309
|
+
const b = (i.samplers || {})[s.sampler] || {};
|
|
1310
|
+
return c.magFilter = Xa[b.magFilter] || me, c.minFilter = Xa[b.minFilter] || Xe, c.wrapS = Za[b.wrapS] || Qa, c.wrapT = Za[b.wrapT] || Qa, c.generateMipmaps = !c.isCompressedTexture && c.minFilter !== v && c.minFilter !== me, A.associations.set(c, { textures: e }), c;
|
|
1310
1311
|
}).catch(function() {
|
|
1311
1312
|
return null;
|
|
1312
1313
|
});
|
|
1313
|
-
return this.textureCache[
|
|
1314
|
+
return this.textureCache[n] = o, o;
|
|
1314
1315
|
}
|
|
1315
1316
|
loadImageSource(e, a) {
|
|
1316
1317
|
const t = this, A = this.json, i = this.options;
|
|
1317
|
-
if (this.sourceCache[e] !== void 0) return this.sourceCache[e].then((
|
|
1318
|
+
if (this.sourceCache[e] !== void 0) return this.sourceCache[e].then((b) => b.clone());
|
|
1318
1319
|
const s = A.images[e], r = self.URL || self.webkitURL;
|
|
1319
|
-
let
|
|
1320
|
-
if (s.bufferView !== void 0)
|
|
1321
|
-
|
|
1322
|
-
const g = new Blob([
|
|
1323
|
-
return
|
|
1320
|
+
let n = s.uri || "", o = !1;
|
|
1321
|
+
if (s.bufferView !== void 0) n = t.getDependency("bufferView", s.bufferView).then(function(b) {
|
|
1322
|
+
o = !0;
|
|
1323
|
+
const g = new Blob([b], { type: s.mimeType });
|
|
1324
|
+
return n = r.createObjectURL(g), n;
|
|
1324
1325
|
});
|
|
1325
1326
|
else if (s.uri === void 0) throw new Error("THREE.GLTFLoader: Image " + e + " is missing URI and bufferView");
|
|
1326
|
-
const
|
|
1327
|
+
const c = Promise.resolve(n).then(function(b) {
|
|
1327
1328
|
return new Promise(function(g, l) {
|
|
1328
|
-
let
|
|
1329
|
-
a.isImageBitmapLoader === !0 && (
|
|
1330
|
-
const I = new
|
|
1329
|
+
let d = g;
|
|
1330
|
+
a.isImageBitmapLoader === !0 && (d = function(f) {
|
|
1331
|
+
const I = new Ua(f);
|
|
1331
1332
|
I.needsUpdate = !0, g(I);
|
|
1332
|
-
}), a.load(
|
|
1333
|
+
}), a.load(He.resolveURL(b, i.path), d, void 0, l);
|
|
1333
1334
|
});
|
|
1334
|
-
}).then(function(
|
|
1335
|
+
}).then(function(b) {
|
|
1335
1336
|
var g;
|
|
1336
|
-
return
|
|
1337
|
-
}).catch(function(
|
|
1338
|
-
throw console.error("THREE.GLTFLoader: Couldn't load texture",
|
|
1337
|
+
return o === !0 && r.revokeObjectURL(n), ie(b, s), b.userData.mimeType = s.mimeType || ((g = s.uri).search(/\.jpe?g($|\?)/i) > 0 || g.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : g.search(/\.webp($|\?)/i) > 0 || g.search(/^data\:image\/webp/) === 0 ? "image/webp" : g.search(/\.ktx2($|\?)/i) > 0 || g.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png"), b;
|
|
1338
|
+
}).catch(function(b) {
|
|
1339
|
+
throw console.error("THREE.GLTFLoader: Couldn't load texture", n), b;
|
|
1339
1340
|
});
|
|
1340
|
-
return this.sourceCache[e] =
|
|
1341
|
+
return this.sourceCache[e] = c, c;
|
|
1341
1342
|
}
|
|
1342
1343
|
assignTexture(e, a, t, A) {
|
|
1343
1344
|
const i = this;
|
|
@@ -1346,8 +1347,8 @@ class Fi {
|
|
|
1346
1347
|
if (t.texCoord !== void 0 && t.texCoord > 0 && ((s = s.clone()).channel = t.texCoord), i.extensions[S.KHR_TEXTURE_TRANSFORM]) {
|
|
1347
1348
|
const r = t.extensions !== void 0 ? t.extensions[S.KHR_TEXTURE_TRANSFORM] : void 0;
|
|
1348
1349
|
if (r) {
|
|
1349
|
-
const
|
|
1350
|
-
s = i.extensions[S.KHR_TEXTURE_TRANSFORM].extendTexture(s, r), i.associations.set(s,
|
|
1350
|
+
const n = i.associations.get(s);
|
|
1351
|
+
s = i.extensions[S.KHR_TEXTURE_TRANSFORM].extendTexture(s, r), i.associations.set(s, n);
|
|
1351
1352
|
}
|
|
1352
1353
|
}
|
|
1353
1354
|
return A !== void 0 && (s.colorSpace = A), e[a] = s, s;
|
|
@@ -1359,149 +1360,149 @@ class Fi {
|
|
|
1359
1360
|
const A = a.attributes.tangent === void 0, i = a.attributes.color !== void 0, s = a.attributes.normal === void 0;
|
|
1360
1361
|
if (e.isPoints) {
|
|
1361
1362
|
const r = "PointsMaterial:" + t.uuid;
|
|
1362
|
-
let
|
|
1363
|
-
|
|
1363
|
+
let n = this.cache.get(r);
|
|
1364
|
+
n || (n = new gA(), ea.prototype.copy.call(n, t), n.color.copy(t.color), n.map = t.map, n.sizeAttenuation = !1, this.cache.add(r, n)), t = n;
|
|
1364
1365
|
} else if (e.isLine) {
|
|
1365
1366
|
const r = "LineBasicMaterial:" + t.uuid;
|
|
1366
|
-
let
|
|
1367
|
-
|
|
1367
|
+
let n = this.cache.get(r);
|
|
1368
|
+
n || (n = new ut(), ea.prototype.copy.call(n, t), n.color.copy(t.color), n.map = t.map, this.cache.add(r, n)), t = n;
|
|
1368
1369
|
}
|
|
1369
1370
|
if (A || i || s) {
|
|
1370
1371
|
let r = "ClonedMaterial:" + t.uuid + ":";
|
|
1371
1372
|
A && (r += "derivative-tangents:"), i && (r += "vertex-colors:"), s && (r += "flat-shading:");
|
|
1372
|
-
let
|
|
1373
|
-
|
|
1373
|
+
let n = this.cache.get(r);
|
|
1374
|
+
n || (n = t.clone(), i && (n.vertexColors = !0), s && (n.flatShading = !0), A && (n.normalScale && (n.normalScale.y *= -1), n.clearcoatNormalScale && (n.clearcoatNormalScale.y *= -1)), this.cache.add(r, n), this.associations.set(n, this.associations.get(t))), t = n;
|
|
1374
1375
|
}
|
|
1375
1376
|
e.material = t;
|
|
1376
1377
|
}
|
|
1377
1378
|
getMaterialType() {
|
|
1378
|
-
return
|
|
1379
|
+
return Ta;
|
|
1379
1380
|
}
|
|
1380
1381
|
loadMaterial(e) {
|
|
1381
1382
|
const a = this, t = this.json, A = this.extensions, i = t.materials[e];
|
|
1382
1383
|
let s;
|
|
1383
|
-
const r = {},
|
|
1384
|
+
const r = {}, n = [];
|
|
1384
1385
|
if ((i.extensions || {})[S.KHR_MATERIALS_UNLIT]) {
|
|
1385
|
-
const
|
|
1386
|
-
s =
|
|
1386
|
+
const c = A[S.KHR_MATERIALS_UNLIT];
|
|
1387
|
+
s = c.getMaterialType(), n.push(c.extendParams(r, i, a));
|
|
1387
1388
|
} else {
|
|
1388
|
-
const
|
|
1389
|
-
if (r.color = new
|
|
1390
|
-
const
|
|
1391
|
-
r.color.setRGB(
|
|
1389
|
+
const c = i.pbrMetallicRoughness || {};
|
|
1390
|
+
if (r.color = new he(1, 1, 1), r.opacity = 1, Array.isArray(c.baseColorFactor)) {
|
|
1391
|
+
const b = c.baseColorFactor;
|
|
1392
|
+
r.color.setRGB(b[0], b[1], b[2], K), r.opacity = b[3];
|
|
1392
1393
|
}
|
|
1393
|
-
|
|
1394
|
-
return
|
|
1395
|
-
}),
|
|
1396
|
-
return
|
|
1394
|
+
c.baseColorTexture !== void 0 && n.push(a.assignTexture(r, "map", c.baseColorTexture, se)), r.metalness = c.metallicFactor !== void 0 ? c.metallicFactor : 1, r.roughness = c.roughnessFactor !== void 0 ? c.roughnessFactor : 1, c.metallicRoughnessTexture !== void 0 && (n.push(a.assignTexture(r, "metalnessMap", c.metallicRoughnessTexture)), n.push(a.assignTexture(r, "roughnessMap", c.metallicRoughnessTexture))), s = this._invokeOne(function(b) {
|
|
1395
|
+
return b.getMaterialType && b.getMaterialType(e);
|
|
1396
|
+
}), n.push(Promise.all(this._invokeAll(function(b) {
|
|
1397
|
+
return b.extendMaterialParams && b.extendMaterialParams(e, r);
|
|
1397
1398
|
})));
|
|
1398
1399
|
}
|
|
1399
|
-
i.doubleSided === !0 && (r.side =
|
|
1400
|
-
const
|
|
1401
|
-
if (
|
|
1402
|
-
const
|
|
1403
|
-
r.normalScale.set(
|
|
1400
|
+
i.doubleSided === !0 && (r.side = fA);
|
|
1401
|
+
const o = i.alphaMode || Ei;
|
|
1402
|
+
if (o === yi ? (r.transparent = !0, r.depthWrite = !1) : (r.transparent = !1, o === Qi && (r.alphaTest = i.alphaCutoff !== void 0 ? i.alphaCutoff : 0.5)), i.normalTexture !== void 0 && s !== Me && (n.push(a.assignTexture(r, "normalMap", i.normalTexture)), r.normalScale = new Bt(1, 1), i.normalTexture.scale !== void 0)) {
|
|
1403
|
+
const c = i.normalTexture.scale;
|
|
1404
|
+
r.normalScale.set(c, c);
|
|
1404
1405
|
}
|
|
1405
|
-
if (i.occlusionTexture !== void 0 && s !==
|
|
1406
|
-
const
|
|
1407
|
-
r.emissive = new
|
|
1406
|
+
if (i.occlusionTexture !== void 0 && s !== Me && (n.push(a.assignTexture(r, "aoMap", i.occlusionTexture)), i.occlusionTexture.strength !== void 0 && (r.aoMapIntensity = i.occlusionTexture.strength)), i.emissiveFactor !== void 0 && s !== Me) {
|
|
1407
|
+
const c = i.emissiveFactor;
|
|
1408
|
+
r.emissive = new he().setRGB(c[0], c[1], c[2], K);
|
|
1408
1409
|
}
|
|
1409
|
-
return i.emissiveTexture !== void 0 && s !==
|
|
1410
|
-
const
|
|
1411
|
-
return i.name && (
|
|
1410
|
+
return i.emissiveTexture !== void 0 && s !== Me && n.push(a.assignTexture(r, "emissiveMap", i.emissiveTexture, se)), Promise.all(n).then(function() {
|
|
1411
|
+
const c = new s(r);
|
|
1412
|
+
return i.name && (c.name = i.name), ie(c, i), a.associations.set(c, { materials: e }), i.extensions && ge(A, c, i), c;
|
|
1412
1413
|
});
|
|
1413
1414
|
}
|
|
1414
1415
|
createUniqueName(e) {
|
|
1415
|
-
const a =
|
|
1416
|
+
const a = uA.sanitizeNodeName(e || "");
|
|
1416
1417
|
return a in this.nodeNamesUsed ? a + "_" + ++this.nodeNamesUsed[a] : (this.nodeNamesUsed[a] = 0, a);
|
|
1417
1418
|
}
|
|
1418
1419
|
loadGeometries(e) {
|
|
1419
1420
|
const a = this, t = this.extensions, A = this.primitiveCache;
|
|
1420
1421
|
function i(r) {
|
|
1421
|
-
return t[S.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(r, a).then(function(
|
|
1422
|
-
return
|
|
1422
|
+
return t[S.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(r, a).then(function(n) {
|
|
1423
|
+
return $a(n, r, a);
|
|
1423
1424
|
});
|
|
1424
1425
|
}
|
|
1425
1426
|
const s = [];
|
|
1426
|
-
for (let r = 0,
|
|
1427
|
-
const
|
|
1428
|
-
if (
|
|
1427
|
+
for (let r = 0, n = e.length; r < n; r++) {
|
|
1428
|
+
const o = e[r], c = ki(o), b = A[c];
|
|
1429
|
+
if (b) s.push(b.promise);
|
|
1429
1430
|
else {
|
|
1430
1431
|
let g;
|
|
1431
|
-
g =
|
|
1432
|
+
g = o.extensions && o.extensions[S.KHR_DRACO_MESH_COMPRESSION] ? i(o) : $a(new Ze(), o, a), A[c] = { primitive: o, promise: g }, s.push(g);
|
|
1432
1433
|
}
|
|
1433
1434
|
}
|
|
1434
1435
|
return Promise.all(s);
|
|
1435
1436
|
}
|
|
1436
1437
|
loadMesh(e) {
|
|
1437
1438
|
const a = this, t = this.json, A = this.extensions, i = t.meshes[e], s = i.primitives, r = [];
|
|
1438
|
-
for (let
|
|
1439
|
-
const
|
|
1440
|
-
r.push(
|
|
1439
|
+
for (let o = 0, c = s.length; o < c; o++) {
|
|
1440
|
+
const b = s[o].material === void 0 ? ((n = this.cache).DefaultMaterial === void 0 && (n.DefaultMaterial = new Ta({ color: 16777215, emissive: 0, metalness: 1, roughness: 1, transparent: !1, depthTest: !0, side: We })), n.DefaultMaterial) : this.getDependency("material", s[o].material);
|
|
1441
|
+
r.push(b);
|
|
1441
1442
|
}
|
|
1442
|
-
var
|
|
1443
|
-
return r.push(a.loadGeometries(s)), Promise.all(r).then(function(
|
|
1444
|
-
const
|
|
1445
|
-
for (let
|
|
1446
|
-
const I = d
|
|
1443
|
+
var n;
|
|
1444
|
+
return r.push(a.loadGeometries(s)), Promise.all(r).then(function(o) {
|
|
1445
|
+
const c = o.slice(0, o.length - 1), b = o[o.length - 1], g = [];
|
|
1446
|
+
for (let d = 0, f = b.length; d < f; d++) {
|
|
1447
|
+
const I = b[d], m = s[d];
|
|
1447
1448
|
let u;
|
|
1448
|
-
const C =
|
|
1449
|
-
if (m.mode === J.TRIANGLES || m.mode === J.TRIANGLE_STRIP || m.mode === J.TRIANGLE_FAN || m.mode === void 0) u = i.isSkinnedMesh === !0 ? new
|
|
1450
|
-
else if (m.mode === J.LINES) u = new
|
|
1451
|
-
else if (m.mode === J.LINE_STRIP) u = new
|
|
1452
|
-
else if (m.mode === J.LINE_LOOP) u = new
|
|
1449
|
+
const C = c[d];
|
|
1450
|
+
if (m.mode === J.TRIANGLES || m.mode === J.TRIANGLE_STRIP || m.mode === J.TRIANGLE_FAN || m.mode === void 0) u = i.isSkinnedMesh === !0 ? new IA(I, C) : new ya(I, C), u.isSkinnedMesh === !0 && u.normalizeSkinWeights(), m.mode === J.TRIANGLE_STRIP ? u.geometry = Ya(u.geometry, mt) : m.mode === J.TRIANGLE_FAN && (u.geometry = Ya(u.geometry, pa));
|
|
1451
|
+
else if (m.mode === J.LINES) u = new It(I, C);
|
|
1452
|
+
else if (m.mode === J.LINE_STRIP) u = new mA(I, C);
|
|
1453
|
+
else if (m.mode === J.LINE_LOOP) u = new BA(I, C);
|
|
1453
1454
|
else {
|
|
1454
1455
|
if (m.mode !== J.POINTS) throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + m.mode);
|
|
1455
|
-
u = new
|
|
1456
|
+
u = new CA(I, C);
|
|
1456
1457
|
}
|
|
1457
|
-
Object.keys(u.geometry.morphAttributes).length > 0 &&
|
|
1458
|
+
Object.keys(u.geometry.morphAttributes).length > 0 && wi(u, i), u.name = a.createUniqueName(i.name || "mesh_" + e), ie(u, i), m.extensions && ge(A, u, m), a.assignFinalMaterial(u), g.push(u);
|
|
1458
1459
|
}
|
|
1459
|
-
for (let
|
|
1460
|
-
if (g.length === 1) return i.extensions &&
|
|
1461
|
-
const l = new
|
|
1462
|
-
i.extensions &&
|
|
1463
|
-
for (let
|
|
1460
|
+
for (let d = 0, f = g.length; d < f; d++) a.associations.set(g[d], { meshes: e, primitives: d });
|
|
1461
|
+
if (g.length === 1) return i.extensions && ge(A, g[0], i), g[0];
|
|
1462
|
+
const l = new aa();
|
|
1463
|
+
i.extensions && ge(A, l, i), a.associations.set(l, { meshes: e });
|
|
1464
|
+
for (let d = 0, f = g.length; d < f; d++) l.add(g[d]);
|
|
1464
1465
|
return l;
|
|
1465
1466
|
});
|
|
1466
1467
|
}
|
|
1467
1468
|
loadCamera(e) {
|
|
1468
1469
|
let a;
|
|
1469
1470
|
const t = this.json.cameras[e], A = t[t.type];
|
|
1470
|
-
if (A) return t.type === "perspective" ? a = new
|
|
1471
|
+
if (A) return t.type === "perspective" ? a = new pA(EA.radToDeg(A.yfov), A.aspectRatio || 1, A.znear || 1, A.zfar || 2e6) : t.type === "orthographic" && (a = new Et(-A.xmag, A.xmag, A.ymag, -A.ymag, A.znear, A.zfar)), t.name && (a.name = this.createUniqueName(t.name)), ie(a, t), Promise.resolve(a);
|
|
1471
1472
|
console.warn("THREE.GLTFLoader: Missing camera parameters.");
|
|
1472
1473
|
}
|
|
1473
1474
|
loadSkin(e) {
|
|
1474
1475
|
const a = this.json.skins[e], t = [];
|
|
1475
1476
|
for (let A = 0, i = a.joints.length; A < i; A++) t.push(this._loadNodeShallow(a.joints[A]));
|
|
1476
1477
|
return a.inverseBindMatrices !== void 0 ? t.push(this.getDependency("accessor", a.inverseBindMatrices)) : t.push(null), Promise.all(t).then(function(A) {
|
|
1477
|
-
const i = A.pop(), s = A, r = [],
|
|
1478
|
-
for (let
|
|
1479
|
-
const
|
|
1480
|
-
if (
|
|
1481
|
-
r.push(
|
|
1482
|
-
const g = new
|
|
1483
|
-
i !== null && g.fromArray(i.array, 16 *
|
|
1484
|
-
} else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', a.joints[
|
|
1478
|
+
const i = A.pop(), s = A, r = [], n = [];
|
|
1479
|
+
for (let o = 0, c = s.length; o < c; o++) {
|
|
1480
|
+
const b = s[o];
|
|
1481
|
+
if (b) {
|
|
1482
|
+
r.push(b);
|
|
1483
|
+
const g = new xe();
|
|
1484
|
+
i !== null && g.fromArray(i.array, 16 * o), n.push(g);
|
|
1485
|
+
} else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', a.joints[o]);
|
|
1485
1486
|
}
|
|
1486
|
-
return new
|
|
1487
|
+
return new QA(r, n);
|
|
1487
1488
|
});
|
|
1488
1489
|
}
|
|
1489
1490
|
loadAnimation(e) {
|
|
1490
|
-
const a = this.json, t = this, A = a.animations[e], i = A.name ? A.name : "animation_" + e, s = [], r = [],
|
|
1491
|
-
for (let
|
|
1492
|
-
const l = A.channels[
|
|
1493
|
-
f.node !== void 0 && (s.push(this.getDependency("node", I)), r.push(this.getDependency("accessor", m)),
|
|
1491
|
+
const a = this.json, t = this, A = a.animations[e], i = A.name ? A.name : "animation_" + e, s = [], r = [], n = [], o = [], c = [];
|
|
1492
|
+
for (let b = 0, g = A.channels.length; b < g; b++) {
|
|
1493
|
+
const l = A.channels[b], d = A.samplers[l.sampler], f = l.target, I = f.node, m = A.parameters !== void 0 ? A.parameters[d.input] : d.input, u = A.parameters !== void 0 ? A.parameters[d.output] : d.output;
|
|
1494
|
+
f.node !== void 0 && (s.push(this.getDependency("node", I)), r.push(this.getDependency("accessor", m)), n.push(this.getDependency("accessor", u)), o.push(d), c.push(f));
|
|
1494
1495
|
}
|
|
1495
|
-
return Promise.all([Promise.all(s), Promise.all(r), Promise.all(
|
|
1496
|
-
const g =
|
|
1496
|
+
return Promise.all([Promise.all(s), Promise.all(r), Promise.all(n), Promise.all(o), Promise.all(c)]).then(function(b) {
|
|
1497
|
+
const g = b[0], l = b[1], d = b[2], f = b[3], I = b[4], m = [];
|
|
1497
1498
|
for (let u = 0, C = g.length; u < C; u++) {
|
|
1498
|
-
const B = g[u], w = l[u], k =
|
|
1499
|
+
const B = g[u], w = l[u], k = d[u], y = f[u], p = I[u];
|
|
1499
1500
|
if (B === void 0) continue;
|
|
1500
1501
|
B.updateMatrix && B.updateMatrix();
|
|
1501
1502
|
const Q = t._createAnimationTracks(B, w, k, y, p);
|
|
1502
1503
|
if (Q) for (let x = 0; x < Q.length; x++) m.push(Q[x]);
|
|
1503
1504
|
}
|
|
1504
|
-
return new
|
|
1505
|
+
return new yA(i, void 0, m);
|
|
1505
1506
|
});
|
|
1506
1507
|
}
|
|
1507
1508
|
createNodeMesh(e) {
|
|
@@ -1509,92 +1510,92 @@ class Fi {
|
|
|
1509
1510
|
return A.mesh === void 0 ? null : t.getDependency("mesh", A.mesh).then(function(i) {
|
|
1510
1511
|
const s = t._getNodeRef(t.meshCache, A.mesh, i);
|
|
1511
1512
|
return A.weights !== void 0 && s.traverse(function(r) {
|
|
1512
|
-
if (r.isMesh) for (let
|
|
1513
|
+
if (r.isMesh) for (let n = 0, o = A.weights.length; n < o; n++) r.morphTargetInfluences[n] = A.weights[n];
|
|
1513
1514
|
}), s;
|
|
1514
1515
|
});
|
|
1515
1516
|
}
|
|
1516
1517
|
loadNode(e) {
|
|
1517
1518
|
const a = this, t = this.json.nodes[e], A = a._loadNodeShallow(e), i = [], s = t.children || [];
|
|
1518
|
-
for (let
|
|
1519
|
+
for (let n = 0, o = s.length; n < o; n++) i.push(a.getDependency("node", s[n]));
|
|
1519
1520
|
const r = t.skin === void 0 ? Promise.resolve(null) : a.getDependency("skin", t.skin);
|
|
1520
|
-
return Promise.all([A, Promise.all(i), r]).then(function(
|
|
1521
|
-
const
|
|
1522
|
-
|
|
1523
|
-
g.isSkinnedMesh && g.bind(
|
|
1521
|
+
return Promise.all([A, Promise.all(i), r]).then(function(n) {
|
|
1522
|
+
const o = n[0], c = n[1], b = n[2];
|
|
1523
|
+
b !== null && o.traverse(function(g) {
|
|
1524
|
+
g.isSkinnedMesh && g.bind(b, xi);
|
|
1524
1525
|
});
|
|
1525
|
-
for (let g = 0, l =
|
|
1526
|
-
return
|
|
1526
|
+
for (let g = 0, l = c.length; g < l; g++) o.add(c[g]);
|
|
1527
|
+
return o;
|
|
1527
1528
|
});
|
|
1528
1529
|
}
|
|
1529
1530
|
_loadNodeShallow(e) {
|
|
1530
1531
|
const a = this.json, t = this.extensions, A = this;
|
|
1531
1532
|
if (this.nodeCache[e] !== void 0) return this.nodeCache[e];
|
|
1532
|
-
const i = a.nodes[e], s = i.name ? A.createUniqueName(i.name) : "", r = [],
|
|
1533
|
-
return
|
|
1533
|
+
const i = a.nodes[e], s = i.name ? A.createUniqueName(i.name) : "", r = [], n = A._invokeOne(function(o) {
|
|
1534
|
+
return o.createNodeMesh && o.createNodeMesh(e);
|
|
1534
1535
|
});
|
|
1535
|
-
return
|
|
1536
|
-
return A._getNodeRef(A.cameraCache, i.camera,
|
|
1537
|
-
})), A._invokeAll(function(
|
|
1538
|
-
return
|
|
1539
|
-
}).forEach(function(
|
|
1540
|
-
r.push(
|
|
1541
|
-
}), this.nodeCache[e] = Promise.all(r).then(function(
|
|
1542
|
-
let
|
|
1543
|
-
if (
|
|
1544
|
-
if (i.name && (
|
|
1545
|
-
const
|
|
1546
|
-
|
|
1547
|
-
} else i.translation !== void 0 &&
|
|
1548
|
-
return A.associations.has(
|
|
1536
|
+
return n && r.push(n), i.camera !== void 0 && r.push(A.getDependency("camera", i.camera).then(function(o) {
|
|
1537
|
+
return A._getNodeRef(A.cameraCache, i.camera, o);
|
|
1538
|
+
})), A._invokeAll(function(o) {
|
|
1539
|
+
return o.createNodeAttachment && o.createNodeAttachment(e);
|
|
1540
|
+
}).forEach(function(o) {
|
|
1541
|
+
r.push(o);
|
|
1542
|
+
}), this.nodeCache[e] = Promise.all(r).then(function(o) {
|
|
1543
|
+
let c;
|
|
1544
|
+
if (c = i.isBone === !0 ? new wA() : o.length > 1 ? new aa() : o.length === 1 ? o[0] : new pt(), c !== o[0]) for (let b = 0, g = o.length; b < g; b++) c.add(o[b]);
|
|
1545
|
+
if (i.name && (c.userData.name = i.name, c.name = s), ie(c, i), i.extensions && ge(t, c, i), i.matrix !== void 0) {
|
|
1546
|
+
const b = new xe();
|
|
1547
|
+
b.fromArray(i.matrix), c.applyMatrix4(b);
|
|
1548
|
+
} else i.translation !== void 0 && c.position.fromArray(i.translation), i.rotation !== void 0 && c.quaternion.fromArray(i.rotation), i.scale !== void 0 && c.scale.fromArray(i.scale);
|
|
1549
|
+
return A.associations.has(c) || A.associations.set(c, {}), A.associations.get(c).nodes = e, c;
|
|
1549
1550
|
}), this.nodeCache[e];
|
|
1550
1551
|
}
|
|
1551
1552
|
loadScene(e) {
|
|
1552
|
-
const a = this.extensions, t = this.json.scenes[e], A = this, i = new
|
|
1553
|
-
t.name && (i.name = A.createUniqueName(t.name)),
|
|
1553
|
+
const a = this.extensions, t = this.json.scenes[e], A = this, i = new aa();
|
|
1554
|
+
t.name && (i.name = A.createUniqueName(t.name)), ie(i, t), t.extensions && ge(a, i, t);
|
|
1554
1555
|
const s = t.nodes || [], r = [];
|
|
1555
|
-
for (let
|
|
1556
|
-
return Promise.all(r).then(function(
|
|
1557
|
-
for (let
|
|
1558
|
-
return A.associations = ((
|
|
1559
|
-
const
|
|
1560
|
-
for (const [
|
|
1561
|
-
return
|
|
1562
|
-
const g = A.associations.get(
|
|
1563
|
-
g != null &&
|
|
1564
|
-
}),
|
|
1556
|
+
for (let n = 0, o = s.length; n < o; n++) r.push(A.getDependency("node", s[n]));
|
|
1557
|
+
return Promise.all(r).then(function(n) {
|
|
1558
|
+
for (let o = 0, c = n.length; o < c; o++) i.add(n[o]);
|
|
1559
|
+
return A.associations = ((o) => {
|
|
1560
|
+
const c = /* @__PURE__ */ new Map();
|
|
1561
|
+
for (const [b, g] of A.associations) (b instanceof ea || b instanceof Ua) && c.set(b, g);
|
|
1562
|
+
return o.traverse((b) => {
|
|
1563
|
+
const g = A.associations.get(b);
|
|
1564
|
+
g != null && c.set(b, g);
|
|
1565
|
+
}), c;
|
|
1565
1566
|
})(i), i;
|
|
1566
1567
|
});
|
|
1567
1568
|
}
|
|
1568
1569
|
_createAnimationTracks(e, a, t, A, i) {
|
|
1569
|
-
const s = [], r = e.name ? e.name : e.uuid,
|
|
1570
|
-
let
|
|
1571
|
-
switch (
|
|
1572
|
-
g.morphTargetInfluences &&
|
|
1573
|
-
}) :
|
|
1574
|
-
case
|
|
1575
|
-
|
|
1570
|
+
const s = [], r = e.name ? e.name : e.uuid, n = [];
|
|
1571
|
+
let o;
|
|
1572
|
+
switch (ne[i.path] === ne.weights ? e.traverse(function(g) {
|
|
1573
|
+
g.morphTargetInfluences && n.push(g.name ? g.name : g.uuid);
|
|
1574
|
+
}) : n.push(r), ne[i.path]) {
|
|
1575
|
+
case ne.weights:
|
|
1576
|
+
o = Ha;
|
|
1576
1577
|
break;
|
|
1577
|
-
case
|
|
1578
|
-
|
|
1578
|
+
case ne.rotation:
|
|
1579
|
+
o = Na;
|
|
1579
1580
|
break;
|
|
1580
|
-
case
|
|
1581
|
-
case
|
|
1582
|
-
|
|
1581
|
+
case ne.position:
|
|
1582
|
+
case ne.scale:
|
|
1583
|
+
o = Ga;
|
|
1583
1584
|
break;
|
|
1584
1585
|
default:
|
|
1585
|
-
t.itemSize === 1 ?
|
|
1586
|
+
t.itemSize === 1 ? o = Ha : o = Ga;
|
|
1586
1587
|
}
|
|
1587
|
-
const
|
|
1588
|
-
for (let g = 0, l =
|
|
1589
|
-
const
|
|
1590
|
-
A.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(
|
|
1588
|
+
const c = A.interpolation !== void 0 ? pi[A.interpolation] : Qt, b = this._getArrayFromAccessor(t);
|
|
1589
|
+
for (let g = 0, l = n.length; g < l; g++) {
|
|
1590
|
+
const d = new o(n[g] + "." + ne[i.path], a.array, b, c);
|
|
1591
|
+
A.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(d), s.push(d);
|
|
1591
1592
|
}
|
|
1592
1593
|
return s;
|
|
1593
1594
|
}
|
|
1594
1595
|
_getArrayFromAccessor(e) {
|
|
1595
1596
|
let a = e.array;
|
|
1596
1597
|
if (e.normalized) {
|
|
1597
|
-
const t =
|
|
1598
|
+
const t = xa(a.constructor), A = new Float32Array(a.length);
|
|
1598
1599
|
for (let i = 0, s = a.length; i < s; i++) A[i] = a[i] * t;
|
|
1599
1600
|
a = A;
|
|
1600
1601
|
}
|
|
@@ -1602,92 +1603,92 @@ class Fi {
|
|
|
1602
1603
|
}
|
|
1603
1604
|
_createCubicSplineTrackInterpolant(e) {
|
|
1604
1605
|
e.createInterpolant = function(a) {
|
|
1605
|
-
return new (this instanceof
|
|
1606
|
+
return new (this instanceof Na ? Ci : vt)(this.times, this.values, this.getValueSize() / 3, a);
|
|
1606
1607
|
}, e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
|
|
1607
1608
|
}
|
|
1608
1609
|
}
|
|
1609
|
-
function
|
|
1610
|
+
function $a(h, e, a) {
|
|
1610
1611
|
const t = e.attributes, A = [];
|
|
1611
1612
|
function i(s, r) {
|
|
1612
|
-
return a.getDependency("accessor", s).then(function(
|
|
1613
|
-
|
|
1613
|
+
return a.getDependency("accessor", s).then(function(n) {
|
|
1614
|
+
h.setAttribute(r, n);
|
|
1614
1615
|
});
|
|
1615
1616
|
}
|
|
1616
1617
|
for (const s in t) {
|
|
1617
|
-
const r =
|
|
1618
|
-
r in
|
|
1618
|
+
const r = ka[s] || s.toLowerCase();
|
|
1619
|
+
r in h.attributes || A.push(i(t[s], r));
|
|
1619
1620
|
}
|
|
1620
|
-
if (e.indices !== void 0 && !
|
|
1621
|
+
if (e.indices !== void 0 && !h.index) {
|
|
1621
1622
|
const s = a.getDependency("accessor", e.indices).then(function(r) {
|
|
1622
|
-
|
|
1623
|
+
h.setIndex(r);
|
|
1623
1624
|
});
|
|
1624
1625
|
A.push(s);
|
|
1625
1626
|
}
|
|
1626
|
-
return
|
|
1627
|
-
const
|
|
1628
|
-
if (
|
|
1627
|
+
return wa.workingColorSpace !== K && "COLOR_0" in t && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${wa.workingColorSpace}" not supported.`), ie(h, e), function(s, r, n) {
|
|
1628
|
+
const o = r.attributes, c = new Da();
|
|
1629
|
+
if (o.POSITION === void 0) return;
|
|
1629
1630
|
{
|
|
1630
|
-
const l =
|
|
1631
|
-
if (
|
|
1632
|
-
if (
|
|
1633
|
-
const I =
|
|
1634
|
-
|
|
1631
|
+
const l = n.json.accessors[o.POSITION], d = l.min, f = l.max;
|
|
1632
|
+
if (d === void 0 || f === void 0) return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
|
|
1633
|
+
if (c.set(new D(d[0], d[1], d[2]), new D(f[0], f[1], f[2])), l.normalized) {
|
|
1634
|
+
const I = xa(ke[l.componentType]);
|
|
1635
|
+
c.min.multiplyScalar(I), c.max.multiplyScalar(I);
|
|
1635
1636
|
}
|
|
1636
1637
|
}
|
|
1637
|
-
const
|
|
1638
|
-
if (
|
|
1639
|
-
const l = new D(),
|
|
1640
|
-
for (let f = 0, I =
|
|
1641
|
-
const m =
|
|
1638
|
+
const b = r.targets;
|
|
1639
|
+
if (b !== void 0) {
|
|
1640
|
+
const l = new D(), d = new D();
|
|
1641
|
+
for (let f = 0, I = b.length; f < I; f++) {
|
|
1642
|
+
const m = b[f];
|
|
1642
1643
|
if (m.POSITION !== void 0) {
|
|
1643
|
-
const u =
|
|
1644
|
+
const u = n.json.accessors[m.POSITION], C = u.min, B = u.max;
|
|
1644
1645
|
if (C !== void 0 && B !== void 0) {
|
|
1645
|
-
if (
|
|
1646
|
-
const w =
|
|
1647
|
-
|
|
1646
|
+
if (d.setX(Math.max(Math.abs(C[0]), Math.abs(B[0]))), d.setY(Math.max(Math.abs(C[1]), Math.abs(B[1]))), d.setZ(Math.max(Math.abs(C[2]), Math.abs(B[2]))), u.normalized) {
|
|
1647
|
+
const w = xa(ke[u.componentType]);
|
|
1648
|
+
d.multiplyScalar(w);
|
|
1648
1649
|
}
|
|
1649
|
-
l.max(
|
|
1650
|
+
l.max(d);
|
|
1650
1651
|
} else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
|
|
1651
1652
|
}
|
|
1652
1653
|
}
|
|
1653
|
-
|
|
1654
|
+
c.expandByVector(l);
|
|
1654
1655
|
}
|
|
1655
|
-
s.boundingBox =
|
|
1656
|
+
s.boundingBox = c;
|
|
1656
1657
|
const g = new jA();
|
|
1657
|
-
|
|
1658
|
-
}(
|
|
1659
|
-
return e.targets !== void 0 ? function(s, r,
|
|
1660
|
-
let
|
|
1658
|
+
c.getCenter(g.center), g.radius = c.min.distanceTo(c.max) / 2, s.boundingSphere = g;
|
|
1659
|
+
}(h, e, a), Promise.all(A).then(function() {
|
|
1660
|
+
return e.targets !== void 0 ? function(s, r, n) {
|
|
1661
|
+
let o = !1, c = !1, b = !1;
|
|
1661
1662
|
for (let f = 0, I = r.length; f < I; f++) {
|
|
1662
1663
|
const m = r[f];
|
|
1663
|
-
if (m.POSITION !== void 0 && (
|
|
1664
|
+
if (m.POSITION !== void 0 && (o = !0), m.NORMAL !== void 0 && (c = !0), m.COLOR_0 !== void 0 && (b = !0), o && c && b) break;
|
|
1664
1665
|
}
|
|
1665
|
-
if (!
|
|
1666
|
-
const g = [], l = [],
|
|
1666
|
+
if (!o && !c && !b) return Promise.resolve(s);
|
|
1667
|
+
const g = [], l = [], d = [];
|
|
1667
1668
|
for (let f = 0, I = r.length; f < I; f++) {
|
|
1668
1669
|
const m = r[f];
|
|
1669
|
-
if (
|
|
1670
|
-
const u = m.POSITION !== void 0 ?
|
|
1670
|
+
if (o) {
|
|
1671
|
+
const u = m.POSITION !== void 0 ? n.getDependency("accessor", m.POSITION) : s.attributes.position;
|
|
1671
1672
|
g.push(u);
|
|
1672
1673
|
}
|
|
1673
|
-
if (
|
|
1674
|
-
const u = m.NORMAL !== void 0 ?
|
|
1674
|
+
if (c) {
|
|
1675
|
+
const u = m.NORMAL !== void 0 ? n.getDependency("accessor", m.NORMAL) : s.attributes.normal;
|
|
1675
1676
|
l.push(u);
|
|
1676
1677
|
}
|
|
1677
|
-
if (
|
|
1678
|
-
const u = m.COLOR_0 !== void 0 ?
|
|
1679
|
-
|
|
1678
|
+
if (b) {
|
|
1679
|
+
const u = m.COLOR_0 !== void 0 ? n.getDependency("accessor", m.COLOR_0) : s.attributes.color;
|
|
1680
|
+
d.push(u);
|
|
1680
1681
|
}
|
|
1681
1682
|
}
|
|
1682
|
-
return Promise.all([Promise.all(g), Promise.all(l), Promise.all(
|
|
1683
|
+
return Promise.all([Promise.all(g), Promise.all(l), Promise.all(d)]).then(function(f) {
|
|
1683
1684
|
const I = f[0], m = f[1], u = f[2];
|
|
1684
|
-
return
|
|
1685
|
+
return o && (s.morphAttributes.position = I), c && (s.morphAttributes.normal = m), b && (s.morphAttributes.color = u), s.morphTargetsRelative = !0, s;
|
|
1685
1686
|
});
|
|
1686
|
-
}(
|
|
1687
|
+
}(h, e.targets, a) : h;
|
|
1687
1688
|
});
|
|
1688
1689
|
}
|
|
1689
|
-
const
|
|
1690
|
-
class
|
|
1690
|
+
const ra = /* @__PURE__ */ new WeakMap();
|
|
1691
|
+
class Ft extends va {
|
|
1691
1692
|
constructor(e) {
|
|
1692
1693
|
super(e), this.decoderPath = "", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = "", this.defaultAttributeIDs = { position: "POSITION", normal: "NORMAL", color: "COLOR", uv: "TEX_COORD" }, this.defaultAttributeTypes = { position: "Float32Array", normal: "Float32Array", color: "Float32Array", uv: "Float32Array" };
|
|
1693
1694
|
}
|
|
@@ -1701,14 +1702,14 @@ class Rt extends Ma {
|
|
|
1701
1702
|
return this.workerLimit = e, this;
|
|
1702
1703
|
}
|
|
1703
1704
|
load(e, a, t, A) {
|
|
1704
|
-
const i = new
|
|
1705
|
+
const i = new Be(this.manager);
|
|
1705
1706
|
i.setPath(this.path), i.setResponseType("arraybuffer"), i.setRequestHeader(this.requestHeader), i.setWithCredentials(this.withCredentials), i.load(e, (s) => {
|
|
1706
1707
|
this.parse(s, a, A);
|
|
1707
1708
|
}, t, A);
|
|
1708
1709
|
}
|
|
1709
1710
|
parse(e, a, t = () => {
|
|
1710
1711
|
}) {
|
|
1711
|
-
this.decodeDracoFile(e, a, null, null,
|
|
1712
|
+
this.decodeDracoFile(e, a, null, null, se, t).catch(t);
|
|
1712
1713
|
}
|
|
1713
1714
|
decodeDracoFile(e, a, t, A, i = K, s = () => {
|
|
1714
1715
|
}) {
|
|
@@ -1717,35 +1718,35 @@ class Rt extends Ma {
|
|
|
1717
1718
|
}
|
|
1718
1719
|
decodeGeometry(e, a) {
|
|
1719
1720
|
const t = JSON.stringify(a);
|
|
1720
|
-
if (
|
|
1721
|
-
const
|
|
1722
|
-
if (
|
|
1721
|
+
if (ra.has(e)) {
|
|
1722
|
+
const n = ra.get(e);
|
|
1723
|
+
if (n.key === t) return n.promise;
|
|
1723
1724
|
if (e.byteLength === 0) throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.");
|
|
1724
1725
|
}
|
|
1725
1726
|
let A;
|
|
1726
|
-
const i = this.workerNextTaskID++, s = e.byteLength, r = this._getWorker(i, s).then((
|
|
1727
|
-
A._callbacks[i] = { resolve:
|
|
1728
|
-
}))).then((
|
|
1727
|
+
const i = this.workerNextTaskID++, s = e.byteLength, r = this._getWorker(i, s).then((n) => (A = n, new Promise((o, c) => {
|
|
1728
|
+
A._callbacks[i] = { resolve: o, reject: c }, A.postMessage({ type: "decode", id: i, taskConfig: a, buffer: e }, [e]);
|
|
1729
|
+
}))).then((n) => this._createGeometry(n.geometry));
|
|
1729
1730
|
return r.catch(() => !0).then(() => {
|
|
1730
1731
|
A && i && this._releaseTask(A, i);
|
|
1731
|
-
}),
|
|
1732
|
+
}), ra.set(e, { key: t, promise: r }), r;
|
|
1732
1733
|
}
|
|
1733
1734
|
_createGeometry(e) {
|
|
1734
|
-
const a = new
|
|
1735
|
-
e.index && a.setIndex(new
|
|
1735
|
+
const a = new Ze();
|
|
1736
|
+
e.index && a.setIndex(new de(e.index.array, 1));
|
|
1736
1737
|
for (let t = 0; t < e.attributes.length; t++) {
|
|
1737
|
-
const A = e.attributes[t], i = A.name, s = A.array, r = A.itemSize,
|
|
1738
|
-
i === "color" && (this._assignVertexColorSpace(
|
|
1738
|
+
const A = e.attributes[t], i = A.name, s = A.array, r = A.itemSize, n = new de(s, r);
|
|
1739
|
+
i === "color" && (this._assignVertexColorSpace(n, A.vertexColorSpace), n.normalized = !(s instanceof Float32Array)), a.setAttribute(i, n);
|
|
1739
1740
|
}
|
|
1740
1741
|
return a;
|
|
1741
1742
|
}
|
|
1742
1743
|
_assignVertexColorSpace(e, a) {
|
|
1743
|
-
if (a !==
|
|
1744
|
-
const t = new
|
|
1745
|
-
for (let A = 0, i = e.count; A < i; A++) t.fromBufferAttribute(e, A),
|
|
1744
|
+
if (a !== se) return;
|
|
1745
|
+
const t = new he();
|
|
1746
|
+
for (let A = 0, i = e.count; A < i; A++) t.fromBufferAttribute(e, A), wa.toWorkingColorSpace(t, se), e.setXYZ(A, t.r, t.g, t.b);
|
|
1746
1747
|
}
|
|
1747
1748
|
_loadLibrary(e, a) {
|
|
1748
|
-
const t = new
|
|
1749
|
+
const t = new Be(this.manager);
|
|
1749
1750
|
return t.setPath(this.decoderPath), t.setResponseType(a), t.setWithCredentials(this.withCredentials), new Promise((A, i) => {
|
|
1750
1751
|
t.load(e, A, void 0, i);
|
|
1751
1752
|
});
|
|
@@ -1759,7 +1760,7 @@ class Rt extends Ma {
|
|
|
1759
1760
|
return e ? a.push(this._loadLibrary("draco_decoder.js", "text")) : (a.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), a.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(a).then((t) => {
|
|
1760
1761
|
const A = t[0];
|
|
1761
1762
|
e || (this.decoderConfig.wasmBinary = t[1]);
|
|
1762
|
-
const i =
|
|
1763
|
+
const i = Si.toString(), s = ["/* draco decoder */", A, "", "/* worker */", i.substring(i.indexOf("{") + 1, i.lastIndexOf("}"))].join(`
|
|
1763
1764
|
`);
|
|
1764
1765
|
this.workerSourceURL = URL.createObjectURL(new Blob([s]));
|
|
1765
1766
|
}), this.decoderPending;
|
|
@@ -1799,10 +1800,10 @@ class Rt extends Ma {
|
|
|
1799
1800
|
return this.workerPool.length = 0, this.workerSourceURL !== "" && URL.revokeObjectURL(this.workerSourceURL), this;
|
|
1800
1801
|
}
|
|
1801
1802
|
}
|
|
1802
|
-
function
|
|
1803
|
-
let
|
|
1804
|
-
function a(t, A, i, s, r,
|
|
1805
|
-
const
|
|
1803
|
+
function Si() {
|
|
1804
|
+
let h, e;
|
|
1805
|
+
function a(t, A, i, s, r, n) {
|
|
1806
|
+
const o = n.num_components(), c = i.num_points() * o, b = c * r.BYTES_PER_ELEMENT, g = function(f, I) {
|
|
1806
1807
|
switch (I) {
|
|
1807
1808
|
case Float32Array:
|
|
1808
1809
|
return f.DT_FLOAT32;
|
|
@@ -1819,34 +1820,34 @@ function Ri() {
|
|
|
1819
1820
|
case Uint32Array:
|
|
1820
1821
|
return f.DT_UINT32;
|
|
1821
1822
|
}
|
|
1822
|
-
}(t, r), l = t._malloc(
|
|
1823
|
-
A.GetAttributeDataArrayForAllPoints(i,
|
|
1824
|
-
const
|
|
1825
|
-
return t._free(l), { name: s, array:
|
|
1823
|
+
}(t, r), l = t._malloc(b);
|
|
1824
|
+
A.GetAttributeDataArrayForAllPoints(i, n, g, b, l);
|
|
1825
|
+
const d = new r(t.HEAPF32.buffer, l, c).slice();
|
|
1826
|
+
return t._free(l), { name: s, array: d, itemSize: o };
|
|
1826
1827
|
}
|
|
1827
1828
|
onmessage = function(t) {
|
|
1828
1829
|
const A = t.data;
|
|
1829
1830
|
switch (A.type) {
|
|
1830
1831
|
case "init":
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
r({ draco:
|
|
1834
|
-
}, DracoDecoderModule(
|
|
1832
|
+
h = A.decoderConfig, e = new Promise(function(r) {
|
|
1833
|
+
h.onModuleLoaded = function(n) {
|
|
1834
|
+
r({ draco: n });
|
|
1835
|
+
}, DracoDecoderModule(h);
|
|
1835
1836
|
});
|
|
1836
1837
|
break;
|
|
1837
1838
|
case "decode":
|
|
1838
1839
|
const i = A.buffer, s = A.taskConfig;
|
|
1839
1840
|
e.then((r) => {
|
|
1840
|
-
const
|
|
1841
|
+
const n = r.draco, o = new n.Decoder();
|
|
1841
1842
|
try {
|
|
1842
|
-
const
|
|
1843
|
+
const c = function(g, l, d, f) {
|
|
1843
1844
|
const I = f.attributeIDs, m = f.attributeTypes;
|
|
1844
1845
|
let u, C;
|
|
1845
|
-
const B = l.GetEncodedGeometryType(
|
|
1846
|
-
if (B === g.TRIANGULAR_MESH) u = new g.Mesh(), C = l.DecodeArrayToMesh(
|
|
1846
|
+
const B = l.GetEncodedGeometryType(d);
|
|
1847
|
+
if (B === g.TRIANGULAR_MESH) u = new g.Mesh(), C = l.DecodeArrayToMesh(d, d.byteLength, u);
|
|
1847
1848
|
else {
|
|
1848
1849
|
if (B !== g.POINT_CLOUD) throw new Error("THREE.DRACOLoader: Unexpected geometry type.");
|
|
1849
|
-
u = new g.PointCloud(), C = l.DecodeArrayToPointCloud(
|
|
1850
|
+
u = new g.PointCloud(), C = l.DecodeArrayToPointCloud(d, d.byteLength, u);
|
|
1850
1851
|
}
|
|
1851
1852
|
if (!C.ok() || u.ptr === 0) throw new Error("THREE.DRACOLoader: Decoding failed: " + C.error_msg());
|
|
1852
1853
|
const w = { index: null, attributes: [] };
|
|
@@ -1867,18 +1868,18 @@ function Ri() {
|
|
|
1867
1868
|
const O = new Uint32Array(k.HEAPF32.buffer, M, x).slice();
|
|
1868
1869
|
return k._free(M), { array: O, itemSize: 1 };
|
|
1869
1870
|
}(g, l, u)), g.destroy(u), w;
|
|
1870
|
-
}(
|
|
1871
|
-
|
|
1872
|
-
} catch (
|
|
1873
|
-
console.error(
|
|
1871
|
+
}(n, o, new Int8Array(i), s), b = c.attributes.map((g) => g.array.buffer);
|
|
1872
|
+
c.index && b.push(c.index.array.buffer), self.postMessage({ type: "decode", id: A.id, geometry: c }, b);
|
|
1873
|
+
} catch (c) {
|
|
1874
|
+
console.error(c), self.postMessage({ type: "error", id: A.id, error: c.message });
|
|
1874
1875
|
} finally {
|
|
1875
|
-
|
|
1876
|
+
n.destroy(o);
|
|
1876
1877
|
}
|
|
1877
1878
|
});
|
|
1878
1879
|
}
|
|
1879
1880
|
};
|
|
1880
1881
|
}
|
|
1881
|
-
class
|
|
1882
|
+
class Di {
|
|
1882
1883
|
constructor(e = 4) {
|
|
1883
1884
|
this.pool = e, this.queue = [], this.workers = [], this.workersResolve = [], this.workerStatus = 0;
|
|
1884
1885
|
}
|
|
@@ -1915,13 +1916,13 @@ class Mi {
|
|
|
1915
1916
|
this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
|
|
1916
1917
|
}
|
|
1917
1918
|
}
|
|
1918
|
-
const
|
|
1919
|
-
class
|
|
1919
|
+
const Rt = 9, Mt = 15, Tt = 16, Ut = 22, Gt = 37, Ht = 43, Nt = 76, Lt = 83, Ot = 97, Jt = 100, Pt = 103, qt = 109, _t = 165, Kt = 166, Fa = 1000066e3;
|
|
1920
|
+
class vi {
|
|
1920
1921
|
constructor() {
|
|
1921
1922
|
this.vkFormat = 0, this.typeSize = 1, this.pixelWidth = 0, this.pixelHeight = 0, this.pixelDepth = 0, this.layerCount = 0, this.faceCount = 1, this.supercompressionScheme = 0, this.levels = [], this.dataFormatDescriptor = [{ vendorId: 0, descriptorType: 0, descriptorBlockSize: 0, versionNumber: 2, colorModel: 0, colorPrimaries: 1, transferFunction: 2, flags: 0, texelBlockDimension: [0, 0, 0, 0], bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0], samples: [] }], this.keyValue = {}, this.globalData = null;
|
|
1922
1923
|
}
|
|
1923
1924
|
}
|
|
1924
|
-
class
|
|
1925
|
+
class Fe {
|
|
1925
1926
|
constructor(e, a, t, A) {
|
|
1926
1927
|
this._dataView = void 0, this._littleEndian = void 0, this._offset = void 0, this._dataView = new DataView(e.buffer, e.byteOffset + a, t), this._littleEndian = A, this._offset = 0;
|
|
1927
1928
|
}
|
|
@@ -1961,33 +1962,33 @@ class Me {
|
|
|
1961
1962
|
}
|
|
1962
1963
|
}
|
|
1963
1964
|
const G = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
|
|
1964
|
-
function
|
|
1965
|
-
return new TextDecoder().decode(
|
|
1965
|
+
function et(h) {
|
|
1966
|
+
return new TextDecoder().decode(h);
|
|
1966
1967
|
}
|
|
1967
|
-
let
|
|
1968
|
-
const
|
|
1969
|
-
|
|
1968
|
+
let na, Ae, ja;
|
|
1969
|
+
const oa = { env: { emscripten_notify_memory_growth: function(h) {
|
|
1970
|
+
ja = new Uint8Array(Ae.exports.memory.buffer);
|
|
1970
1971
|
} } };
|
|
1971
|
-
class
|
|
1972
|
+
class Fi {
|
|
1972
1973
|
init() {
|
|
1973
|
-
return
|
|
1974
|
+
return na || (na = typeof fetch < "u" ? fetch("data:application/wasm;base64," + at).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, oa)).then(this._init) : WebAssembly.instantiate(Buffer.from(at, "base64"), oa).then(this._init), na);
|
|
1974
1975
|
}
|
|
1975
1976
|
_init(e) {
|
|
1976
|
-
|
|
1977
|
+
Ae = e.instance, oa.env.emscripten_notify_memory_growth(0);
|
|
1977
1978
|
}
|
|
1978
1979
|
decode(e, a = 0) {
|
|
1979
|
-
if (!
|
|
1980
|
-
const t = e.byteLength, A =
|
|
1981
|
-
|
|
1982
|
-
const i =
|
|
1983
|
-
return
|
|
1980
|
+
if (!Ae) throw new Error("ZSTDDecoder: Await .init() before decoding.");
|
|
1981
|
+
const t = e.byteLength, A = Ae.exports.malloc(t);
|
|
1982
|
+
ja.set(e, A), a = a || Number(Ae.exports.ZSTD_findDecompressedSize(A, t));
|
|
1983
|
+
const i = Ae.exports.malloc(a), s = Ae.exports.ZSTD_decompress(i, a, A, t), r = ja.slice(i, i + s);
|
|
1984
|
+
return Ae.exports.free(A), Ae.exports.free(i), r;
|
|
1984
1985
|
}
|
|
1985
1986
|
}
|
|
1986
|
-
const At = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", ha = /* @__PURE__ */ new WeakMap();
|
|
1987
|
-
let
|
|
1988
|
-
class L extends
|
|
1987
|
+
const at = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", ca = /* @__PURE__ */ new WeakMap();
|
|
1988
|
+
let ba, da = 0;
|
|
1989
|
+
class L extends va {
|
|
1989
1990
|
constructor(e) {
|
|
1990
|
-
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new
|
|
1991
|
+
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new Di(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.');
|
|
1991
1992
|
}
|
|
1992
1993
|
setTranscoderPath(e) {
|
|
1993
1994
|
return this.transcoderPath = e, this;
|
|
@@ -2003,120 +2004,120 @@ class L extends Ma {
|
|
|
2003
2004
|
}
|
|
2004
2005
|
init() {
|
|
2005
2006
|
if (!this.transcoderPending) {
|
|
2006
|
-
const e = new
|
|
2007
|
+
const e = new Be(this.manager);
|
|
2007
2008
|
e.setPath(this.transcoderPath), e.setWithCredentials(this.withCredentials);
|
|
2008
|
-
const a = e.loadAsync("basis_transcoder.js"), t = new
|
|
2009
|
+
const a = e.loadAsync("basis_transcoder.js"), t = new Be(this.manager);
|
|
2009
2010
|
t.setPath(this.transcoderPath), t.setResponseType("arraybuffer"), t.setWithCredentials(this.withCredentials);
|
|
2010
2011
|
const A = t.loadAsync("basis_transcoder.wasm");
|
|
2011
2012
|
this.transcoderPending = Promise.all([a, A]).then(([i, s]) => {
|
|
2012
|
-
const r = L.BasisWorker.toString(),
|
|
2013
|
+
const r = L.BasisWorker.toString(), n = ["/* constants */", "let _EngineFormat = " + JSON.stringify(L.EngineFormat), "let _EngineType = " + JSON.stringify(L.EngineType), "let _TranscoderFormat = " + JSON.stringify(L.TranscoderFormat), "let _BasisFormat = " + JSON.stringify(L.BasisFormat), "/* basis_transcoder.js */", i, "/* worker */", r.substring(r.indexOf("{") + 1, r.lastIndexOf("}"))].join(`
|
|
2013
2014
|
`);
|
|
2014
|
-
this.workerSourceURL = URL.createObjectURL(new Blob([
|
|
2015
|
-
const
|
|
2016
|
-
return
|
|
2015
|
+
this.workerSourceURL = URL.createObjectURL(new Blob([n])), this.transcoderBinary = s, this.workerPool.setWorkerCreator(() => {
|
|
2016
|
+
const o = new Worker(this.workerSourceURL), c = this.transcoderBinary.slice(0);
|
|
2017
|
+
return o.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: c }, [c]), o;
|
|
2017
2018
|
});
|
|
2018
|
-
}),
|
|
2019
|
+
}), da > 0 && console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."), da++;
|
|
2019
2020
|
}
|
|
2020
2021
|
return this.transcoderPending;
|
|
2021
2022
|
}
|
|
2022
2023
|
load(e, a, t, A) {
|
|
2023
2024
|
if (this.workerConfig === null) throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
|
|
2024
|
-
const i = new
|
|
2025
|
+
const i = new Be(this.manager);
|
|
2025
2026
|
i.setResponseType("arraybuffer"), i.setWithCredentials(this.withCredentials), i.load(e, (s) => {
|
|
2026
2027
|
this.parse(s, a, A);
|
|
2027
2028
|
}, t, A);
|
|
2028
2029
|
}
|
|
2029
2030
|
parse(e, a, t) {
|
|
2030
2031
|
if (this.workerConfig === null) throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
|
|
2031
|
-
if (
|
|
2032
|
-
return
|
|
2032
|
+
if (ca.has(e))
|
|
2033
|
+
return ca.get(e).promise.then(a).catch(t);
|
|
2033
2034
|
this._createTexture(e).then((A) => a ? a(A) : null).catch(t);
|
|
2034
2035
|
}
|
|
2035
2036
|
_createTextureFrom(e, a) {
|
|
2036
|
-
const { type: t, error: A, data: { faces: i, width: s, height: r, format:
|
|
2037
|
+
const { type: t, error: A, data: { faces: i, width: s, height: r, format: n, type: o, dfdFlags: c } } = e;
|
|
2037
2038
|
if (t === "error") return Promise.reject(A);
|
|
2038
|
-
let
|
|
2039
|
-
if (a.faceCount === 6)
|
|
2039
|
+
let b;
|
|
2040
|
+
if (a.faceCount === 6) b = new SA(i, n, o);
|
|
2040
2041
|
else {
|
|
2041
2042
|
const g = i[0].mipmaps;
|
|
2042
|
-
|
|
2043
|
+
b = a.layerCount > 1 ? new DA(g, s, r, a.layerCount, n, o) : new La(g, s, r, n, o);
|
|
2043
2044
|
}
|
|
2044
|
-
return
|
|
2045
|
+
return b.minFilter = i[0].mipmaps.length === 1 ? me : Xe, b.magFilter = me, b.generateMipmaps = !1, b.needsUpdate = !0, b.colorSpace = tt(a), b.premultiplyAlpha = !!(1 & c), b;
|
|
2045
2046
|
}
|
|
2046
2047
|
async _createTexture(e, a = {}) {
|
|
2047
2048
|
const t = function(r) {
|
|
2048
|
-
const
|
|
2049
|
-
if (
|
|
2050
|
-
const
|
|
2051
|
-
|
|
2052
|
-
const g =
|
|
2053
|
-
|
|
2054
|
-
const l =
|
|
2055
|
-
for (let F = 0; F < g; F++)
|
|
2056
|
-
const B = new
|
|
2049
|
+
const n = new Uint8Array(r.buffer, r.byteOffset, G.length);
|
|
2050
|
+
if (n[0] !== G[0] || n[1] !== G[1] || n[2] !== G[2] || n[3] !== G[3] || n[4] !== G[4] || n[5] !== G[5] || n[6] !== G[6] || n[7] !== G[7] || n[8] !== G[8] || n[9] !== G[9] || n[10] !== G[10] || n[11] !== G[11]) throw new Error("Missing KTX 2.0 identifier.");
|
|
2051
|
+
const o = new vi(), c = 17 * Uint32Array.BYTES_PER_ELEMENT, b = new Fe(r, G.length, c, !0);
|
|
2052
|
+
o.vkFormat = b._nextUint32(), o.typeSize = b._nextUint32(), o.pixelWidth = b._nextUint32(), o.pixelHeight = b._nextUint32(), o.pixelDepth = b._nextUint32(), o.layerCount = b._nextUint32(), o.faceCount = b._nextUint32();
|
|
2053
|
+
const g = b._nextUint32();
|
|
2054
|
+
o.supercompressionScheme = b._nextUint32();
|
|
2055
|
+
const l = b._nextUint32(), d = b._nextUint32(), f = b._nextUint32(), I = b._nextUint32(), m = b._nextUint64(), u = b._nextUint64(), C = new Fe(r, G.length + c, 3 * g * 8, !0);
|
|
2056
|
+
for (let F = 0; F < g; F++) o.levels.push({ levelData: new Uint8Array(r.buffer, r.byteOffset + C._nextUint64(), C._nextUint64()), uncompressedByteLength: C._nextUint64() });
|
|
2057
|
+
const B = new Fe(r, l, d, !0), w = { vendorId: B._skip(4)._nextUint16(), descriptorType: B._nextUint16(), versionNumber: B._nextUint16(), descriptorBlockSize: B._nextUint16(), colorModel: B._nextUint8(), colorPrimaries: B._nextUint8(), transferFunction: B._nextUint8(), flags: B._nextUint8(), texelBlockDimension: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], bytesPlane: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], samples: [] }, k = (w.descriptorBlockSize / 4 - 6) / 4;
|
|
2057
2058
|
for (let F = 0; F < k; F++) {
|
|
2058
2059
|
const U = { bitOffset: B._nextUint16(), bitLength: B._nextUint8(), channelType: B._nextUint8(), samplePosition: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
|
|
2059
2060
|
64 & U.channelType ? (U.sampleLower = B._nextInt32(), U.sampleUpper = B._nextInt32()) : (U.sampleLower = B._nextUint32(), U.sampleUpper = B._nextUint32()), w.samples[F] = U;
|
|
2060
2061
|
}
|
|
2061
|
-
|
|
2062
|
-
const y = new
|
|
2062
|
+
o.dataFormatDescriptor.length = 0, o.dataFormatDescriptor.push(w);
|
|
2063
|
+
const y = new Fe(r, f, I, !0);
|
|
2063
2064
|
for (; y._offset < I; ) {
|
|
2064
|
-
const F = y._nextUint32(), U = y._scan(F), P =
|
|
2065
|
-
if (
|
|
2066
|
-
const V =
|
|
2067
|
-
|
|
2065
|
+
const F = y._nextUint32(), U = y._scan(F), P = et(U);
|
|
2066
|
+
if (o.keyValue[P] = y._nextUint8Array(F - U.byteLength - 1), P.match(/^ktx/i)) {
|
|
2067
|
+
const V = et(o.keyValue[P]);
|
|
2068
|
+
o.keyValue[P] = V.substring(0, V.lastIndexOf("\0"));
|
|
2068
2069
|
}
|
|
2069
2070
|
y._skip(F % 4 ? 4 - F % 4 : 0);
|
|
2070
2071
|
}
|
|
2071
|
-
if (u <= 0) return
|
|
2072
|
-
const p = new
|
|
2073
|
-
for (let F = 0; F < g; F++)
|
|
2074
|
-
const
|
|
2075
|
-
return
|
|
2076
|
-
}(new Uint8Array(e)), A = t.vkFormat ===
|
|
2072
|
+
if (u <= 0) return o;
|
|
2073
|
+
const p = new Fe(r, m, u, !0), Q = p._nextUint16(), x = p._nextUint16(), j = p._nextUint32(), M = p._nextUint32(), O = p._nextUint32(), $e = p._nextUint32(), je = [];
|
|
2074
|
+
for (let F = 0; F < g; F++) je.push({ imageFlags: p._nextUint32(), rgbSliceByteOffset: p._nextUint32(), rgbSliceByteLength: p._nextUint32(), alphaSliceByteOffset: p._nextUint32(), alphaSliceByteLength: p._nextUint32() });
|
|
2075
|
+
const Oe = m + p._offset, Se = Oe + j, De = Se + M, ve = De + O, Je = new Uint8Array(r.buffer, r.byteOffset + Oe, j), Pe = new Uint8Array(r.buffer, r.byteOffset + Se, M), z = new Uint8Array(r.buffer, r.byteOffset + De, O), Ce = new Uint8Array(r.buffer, r.byteOffset + ve, $e);
|
|
2076
|
+
return o.globalData = { endpointCount: Q, selectorCount: x, imageDescs: je, endpointsData: Je, selectorsData: Pe, tablesData: z, extendedData: Ce }, o;
|
|
2077
|
+
}(new Uint8Array(e)), A = t.vkFormat === Fa && t.dataFormatDescriptor[0].colorModel === 167;
|
|
2077
2078
|
if (!(t.vkFormat === 0 || A && !this.workerConfig.astcHDRSupported)) return async function(r) {
|
|
2078
|
-
const { vkFormat:
|
|
2079
|
-
if (
|
|
2080
|
-
let
|
|
2081
|
-
r.supercompressionScheme === 2 && (
|
|
2082
|
-
const l = new
|
|
2079
|
+
const { vkFormat: n } = r;
|
|
2080
|
+
if (ha[n] === void 0) throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
|
|
2081
|
+
let o;
|
|
2082
|
+
r.supercompressionScheme === 2 && (ba || (ba = new Promise(async (g) => {
|
|
2083
|
+
const l = new Fi();
|
|
2083
2084
|
await l.init(), g(l);
|
|
2084
|
-
})),
|
|
2085
|
-
const
|
|
2085
|
+
})), o = await ba);
|
|
2086
|
+
const c = [];
|
|
2086
2087
|
for (let g = 0; g < r.levels.length; g++) {
|
|
2087
|
-
const l = Math.max(1, r.pixelWidth >> g),
|
|
2088
|
+
const l = Math.max(1, r.pixelWidth >> g), d = Math.max(1, r.pixelHeight >> g), f = r.pixelDepth ? Math.max(1, r.pixelDepth >> g) : 0, I = r.levels[g];
|
|
2088
2089
|
let m, u;
|
|
2089
2090
|
if (r.supercompressionScheme === 0) m = I.levelData;
|
|
2090
2091
|
else {
|
|
2091
2092
|
if (r.supercompressionScheme !== 2) throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
|
|
2092
|
-
m =
|
|
2093
|
+
m = o.decode(I.levelData, I.uncompressedByteLength);
|
|
2093
2094
|
}
|
|
2094
|
-
u =
|
|
2095
|
+
u = la[n] === R ? new Float32Array(m.buffer, m.byteOffset, m.byteLength / Float32Array.BYTES_PER_ELEMENT) : la[n] === we ? new Uint16Array(m.buffer, m.byteOffset, m.byteLength / Uint16Array.BYTES_PER_ELEMENT) : m, c.push({ data: u, width: l, height: d, depth: f });
|
|
2095
2096
|
}
|
|
2096
|
-
let
|
|
2097
|
-
if (
|
|
2097
|
+
let b;
|
|
2098
|
+
if (Ri.has(ha[n])) b = r.pixelDepth === 0 ? new Ge(c[0].data, r.pixelWidth, r.pixelHeight) : new FA(c[0].data, r.pixelWidth, r.pixelHeight, r.pixelDepth);
|
|
2098
2099
|
else {
|
|
2099
2100
|
if (r.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
|
|
2100
|
-
|
|
2101
|
+
b = new La(c, r.pixelWidth, r.pixelHeight), b.minFilter = c.length === 1 ? me : Xe, b.magFilter = me;
|
|
2101
2102
|
}
|
|
2102
|
-
return
|
|
2103
|
+
return b.mipmaps = c, b.type = la[n], b.format = ha[n], b.colorSpace = tt(r), b.needsUpdate = !0, Promise.resolve(b);
|
|
2103
2104
|
}(t);
|
|
2104
2105
|
const i = a, s = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: i }, [e])).then((r) => this._createTextureFrom(r.data, t));
|
|
2105
|
-
return
|
|
2106
|
+
return ca.set(e, { promise: s }), s;
|
|
2106
2107
|
}
|
|
2107
2108
|
dispose() {
|
|
2108
|
-
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL),
|
|
2109
|
+
return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL), da--, this;
|
|
2109
2110
|
}
|
|
2110
2111
|
}
|
|
2111
|
-
L.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, L.TranscoderFormat = { ETC1: 0, ETC2: 1, BC1: 2, BC3: 3, BC4: 4, BC5: 5, BC7_M6_OPAQUE_ONLY: 6, BC7_M5: 7, PVRTC1_4_RGB: 8, PVRTC1_4_RGBA: 9, ASTC_4x4: 10, ATC_RGB: 11, ATC_RGBA_INTERPOLATED_ALPHA: 12, RGBA32: 13, RGB565: 14, BGR565: 15, RGBA4444: 16, BC6H: 22, RGB_HALF: 24, RGBA_HALF: 25 }, L.EngineFormat = { RGBAFormat:
|
|
2112
|
-
let
|
|
2112
|
+
L.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, L.TranscoderFormat = { ETC1: 0, ETC2: 1, BC1: 2, BC3: 3, BC4: 4, BC5: 5, BC7_M6_OPAQUE_ONLY: 6, BC7_M5: 7, PVRTC1_4_RGB: 8, PVRTC1_4_RGBA: 9, ASTC_4x4: 10, ATC_RGB: 11, ATC_RGBA_INTERPOLATED_ALPHA: 12, RGBA32: 13, RGB565: 14, BGR565: 15, RGBA4444: 16, BC6H: 22, RGB_HALF: 24, RGBA_HALF: 25 }, L.EngineFormat = { RGBAFormat: $, RGBA_ASTC_4x4_Format: yt, RGB_BPTC_UNSIGNED_Format: OA, RGBA_BPTC_Format: LA, RGBA_ETC2_EAC_Format: NA, RGBA_PVRTC_4BPPV1_Format: HA, RGBA_S3TC_DXT5_Format: GA, RGB_ETC1_Format: UA, RGB_ETC2_Format: TA, RGB_PVRTC_4BPPV1_Format: MA, RGBA_S3TC_DXT1_Format: RA }, L.EngineType = { UnsignedByteType: W, HalfFloatType: we, FloatType: R }, L.BasisWorker = function() {
|
|
2113
|
+
let h, e, a;
|
|
2113
2114
|
const t = _EngineFormat, A = _EngineType, i = _TranscoderFormat, s = _BasisFormat;
|
|
2114
|
-
self.addEventListener("message", function(
|
|
2115
|
-
const g =
|
|
2115
|
+
self.addEventListener("message", function(b) {
|
|
2116
|
+
const g = b.data;
|
|
2116
2117
|
switch (g.type) {
|
|
2117
2118
|
case "init":
|
|
2118
|
-
|
|
2119
|
-
a = { wasmBinary: l, onRuntimeInitialized:
|
|
2119
|
+
h = g.config, l = g.transcoderBinary, e = new Promise((d) => {
|
|
2120
|
+
a = { wasmBinary: l, onRuntimeInitialized: d }, BASIS(a);
|
|
2120
2121
|
}).then(() => {
|
|
2121
2122
|
a.initializeBasis(), a.KTX2File === void 0 && console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.");
|
|
2122
2123
|
});
|
|
@@ -2124,7 +2125,7 @@ L.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, L.TranscoderFormat = { ETC
|
|
|
2124
2125
|
case "transcode":
|
|
2125
2126
|
e.then(() => {
|
|
2126
2127
|
try {
|
|
2127
|
-
const { faces:
|
|
2128
|
+
const { faces: d, buffers: f, width: I, height: m, hasAlpha: u, format: C, type: B, dfdFlags: w } = function(k) {
|
|
2128
2129
|
const y = new a.KTX2File(new Uint8Array(k));
|
|
2129
2130
|
function p() {
|
|
2130
2131
|
y.close(), y.delete();
|
|
@@ -2137,87 +2138,87 @@ L.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, L.TranscoderFormat = { ETC
|
|
|
2137
2138
|
if (!y.isHDR()) throw new Error("THREE.KTX2Loader: Unknown Basis encoding");
|
|
2138
2139
|
Q = s.UASTC_HDR;
|
|
2139
2140
|
}
|
|
2140
|
-
const x = y.getWidth(), j = y.getHeight(), M = y.getLayers() || 1, O = y.getLevels(),
|
|
2141
|
-
const P =
|
|
2141
|
+
const x = y.getWidth(), j = y.getHeight(), M = y.getLayers() || 1, O = y.getLevels(), $e = y.getFaces(), je = y.getHasAlpha(), Oe = y.getDFDFlags(), { transcoderFormat: Se, engineFormat: De, engineType: ve } = function(z, Ce, F, U) {
|
|
2142
|
+
const P = n[z];
|
|
2142
2143
|
for (let V = 0; V < P.length; V++) {
|
|
2143
2144
|
const q = P[V];
|
|
2144
|
-
if (!(q.if && !
|
|
2145
|
+
if (!(q.if && !h[q.if]) && q.basisFormat.includes(z) && !(U && q.transcoderFormat.length < 2) && !(q.needsPowerOfTwo && (!o(Ce) || !o(F))))
|
|
2145
2146
|
return { transcoderFormat: q.transcoderFormat[U ? 1 : 0], engineFormat: q.engineFormat[U ? 1 : 0], engineType: q.engineType[0] };
|
|
2146
2147
|
}
|
|
2147
2148
|
throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.");
|
|
2148
|
-
}(Q, x, j,
|
|
2149
|
+
}(Q, x, j, je);
|
|
2149
2150
|
if (!x || !j || !O) throw p(), new Error("THREE.KTX2Loader: Invalid texture");
|
|
2150
2151
|
if (!y.startTranscoding()) throw p(), new Error("THREE.KTX2Loader: .startTranscoding failed");
|
|
2151
|
-
const
|
|
2152
|
-
for (let z = 0; z <
|
|
2153
|
-
const
|
|
2152
|
+
const Je = [], Pe = [];
|
|
2153
|
+
for (let z = 0; z < $e; z++) {
|
|
2154
|
+
const Ce = [];
|
|
2154
2155
|
for (let F = 0; F < O; F++) {
|
|
2155
2156
|
const U = [];
|
|
2156
2157
|
let P, V;
|
|
2157
|
-
for (let
|
|
2158
|
-
const
|
|
2159
|
-
z !== 0 || F !== 0 ||
|
|
2160
|
-
let
|
|
2161
|
-
const
|
|
2162
|
-
if (
|
|
2163
|
-
U.push(
|
|
2158
|
+
for (let pe = 0; pe < M; pe++) {
|
|
2159
|
+
const Ee = y.getImageLevelInfo(F, pe, z);
|
|
2160
|
+
z !== 0 || F !== 0 || pe !== 0 || Ee.origWidth % 4 == 0 && Ee.origHeight % 4 == 0 || console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), O > 1 ? (P = Ee.origWidth, V = Ee.origHeight) : (P = Ee.width, V = Ee.height);
|
|
2161
|
+
let Qe = new Uint8Array(y.getImageTranscodedSizeInBytes(F, pe, 0, Se));
|
|
2162
|
+
const Wt = y.transcodeImage(Qe, F, pe, z, Se, 0, -1, -1);
|
|
2163
|
+
if (ve === A.HalfFloatType && (Qe = new Uint16Array(Qe.buffer, Qe.byteOffset, Qe.byteLength / Uint16Array.BYTES_PER_ELEMENT)), !Wt) throw p(), new Error("THREE.KTX2Loader: .transcodeImage failed.");
|
|
2164
|
+
U.push(Qe);
|
|
2164
2165
|
}
|
|
2165
|
-
const q =
|
|
2166
|
-
|
|
2166
|
+
const q = c(U);
|
|
2167
|
+
Ce.push({ data: q, width: P, height: V }), Pe.push(q.buffer);
|
|
2167
2168
|
}
|
|
2168
|
-
|
|
2169
|
+
Je.push({ mipmaps: Ce, width: x, height: j, format: De, type: ve });
|
|
2169
2170
|
}
|
|
2170
|
-
return p(), { faces:
|
|
2171
|
+
return p(), { faces: Je, buffers: Pe, width: x, height: j, hasAlpha: je, dfdFlags: Oe, format: De, type: ve };
|
|
2171
2172
|
}(g.buffer);
|
|
2172
|
-
self.postMessage({ type: "transcode", id: g.id, data: { faces:
|
|
2173
|
-
} catch (
|
|
2174
|
-
console.error(
|
|
2173
|
+
self.postMessage({ type: "transcode", id: g.id, data: { faces: d, width: I, height: m, hasAlpha: u, format: C, type: B, dfdFlags: w } }, f);
|
|
2174
|
+
} catch (d) {
|
|
2175
|
+
console.error(d), self.postMessage({ type: "error", id: g.id, error: d.message });
|
|
2175
2176
|
}
|
|
2176
2177
|
});
|
|
2177
2178
|
}
|
|
2178
2179
|
var l;
|
|
2179
2180
|
});
|
|
2180
|
-
const r = [{ if: "astcSupported", basisFormat: [s.UASTC], transcoderFormat: [i.ASTC_4x4, i.ASTC_4x4], engineFormat: [t.RGBA_ASTC_4x4_Format, t.RGBA_ASTC_4x4_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1 / 0, priorityUASTC: 1, needsPowerOfTwo: !1 }, { if: "bptcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC7_M5, i.BC7_M5], engineFormat: [t.RGBA_BPTC_Format, t.RGBA_BPTC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 3, priorityUASTC: 2, needsPowerOfTwo: !1 }, { if: "dxtSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC1, i.BC3], engineFormat: [t.RGBA_S3TC_DXT1_Format, t.RGBA_S3TC_DXT5_Format], engineType: [A.UnsignedByteType], priorityETC1S: 4, priorityUASTC: 5, needsPowerOfTwo: !1 }, { if: "etc2Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1, i.ETC2], engineFormat: [t.RGB_ETC2_Format, t.RGBA_ETC2_EAC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1, priorityUASTC: 3, needsPowerOfTwo: !1 }, { if: "etc1Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1], engineFormat: [t.RGB_ETC1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 2, priorityUASTC: 4, needsPowerOfTwo: !1 }, { if: "pvrtcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.PVRTC1_4_RGB, i.PVRTC1_4_RGBA], engineFormat: [t.RGB_PVRTC_4BPPV1_Format, t.RGBA_PVRTC_4BPPV1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 5, priorityUASTC: 6, needsPowerOfTwo: !0 }, { if: "bptcSupported", basisFormat: [s.UASTC_HDR], transcoderFormat: [i.BC6H], engineFormat: [t.RGB_BPTC_UNSIGNED_Format], engineType: [A.HalfFloatType], priorityHDR: 1, needsPowerOfTwo: !1 }, { basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.RGBA32, i.RGBA32], engineFormat: [t.RGBAFormat, t.RGBAFormat], engineType: [A.UnsignedByteType, A.UnsignedByteType], priorityETC1S: 100, priorityUASTC: 100, needsPowerOfTwo: !1 }, { basisFormat: [s.UASTC_HDR], transcoderFormat: [i.RGBA_HALF], engineFormat: [t.RGBAFormat], engineType: [A.HalfFloatType], priorityHDR: 100, needsPowerOfTwo: !1 }],
|
|
2181
|
-
function
|
|
2182
|
-
return
|
|
2181
|
+
const r = [{ if: "astcSupported", basisFormat: [s.UASTC], transcoderFormat: [i.ASTC_4x4, i.ASTC_4x4], engineFormat: [t.RGBA_ASTC_4x4_Format, t.RGBA_ASTC_4x4_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1 / 0, priorityUASTC: 1, needsPowerOfTwo: !1 }, { if: "bptcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC7_M5, i.BC7_M5], engineFormat: [t.RGBA_BPTC_Format, t.RGBA_BPTC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 3, priorityUASTC: 2, needsPowerOfTwo: !1 }, { if: "dxtSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC1, i.BC3], engineFormat: [t.RGBA_S3TC_DXT1_Format, t.RGBA_S3TC_DXT5_Format], engineType: [A.UnsignedByteType], priorityETC1S: 4, priorityUASTC: 5, needsPowerOfTwo: !1 }, { if: "etc2Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1, i.ETC2], engineFormat: [t.RGB_ETC2_Format, t.RGBA_ETC2_EAC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1, priorityUASTC: 3, needsPowerOfTwo: !1 }, { if: "etc1Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1], engineFormat: [t.RGB_ETC1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 2, priorityUASTC: 4, needsPowerOfTwo: !1 }, { if: "pvrtcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.PVRTC1_4_RGB, i.PVRTC1_4_RGBA], engineFormat: [t.RGB_PVRTC_4BPPV1_Format, t.RGBA_PVRTC_4BPPV1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 5, priorityUASTC: 6, needsPowerOfTwo: !0 }, { if: "bptcSupported", basisFormat: [s.UASTC_HDR], transcoderFormat: [i.BC6H], engineFormat: [t.RGB_BPTC_UNSIGNED_Format], engineType: [A.HalfFloatType], priorityHDR: 1, needsPowerOfTwo: !1 }, { basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.RGBA32, i.RGBA32], engineFormat: [t.RGBAFormat, t.RGBAFormat], engineType: [A.UnsignedByteType, A.UnsignedByteType], priorityETC1S: 100, priorityUASTC: 100, needsPowerOfTwo: !1 }, { basisFormat: [s.UASTC_HDR], transcoderFormat: [i.RGBA_HALF], engineFormat: [t.RGBAFormat], engineType: [A.HalfFloatType], priorityHDR: 100, needsPowerOfTwo: !1 }], n = { [s.ETC1S]: r.filter((b) => b.basisFormat.includes(s.ETC1S)).sort((b, g) => b.priorityUASTC - g.priorityUASTC), [s.UASTC]: r.filter((b) => b.basisFormat.includes(s.UASTC)).sort((b, g) => b.priorityUASTC - g.priorityUASTC), [s.UASTC_HDR]: r.filter((b) => b.basisFormat.includes(s.UASTC_HDR)).sort((b, g) => b.priorityHDR - g.priorityHDR) };
|
|
2182
|
+
function o(b) {
|
|
2183
|
+
return b <= 2 || !(b & b - 1) && b !== 0;
|
|
2183
2184
|
}
|
|
2184
|
-
function b
|
|
2185
|
-
if (
|
|
2185
|
+
function c(b) {
|
|
2186
|
+
if (b.length === 1) return b[0];
|
|
2186
2187
|
let g = 0;
|
|
2187
|
-
for (let f = 0; f <
|
|
2188
|
-
g +=
|
|
2188
|
+
for (let f = 0; f < b.length; f++)
|
|
2189
|
+
g += b[f].byteLength;
|
|
2189
2190
|
const l = new Uint8Array(g);
|
|
2190
|
-
let
|
|
2191
|
-
for (let f = 0; f <
|
|
2192
|
-
const I =
|
|
2193
|
-
l.set(I,
|
|
2191
|
+
let d = 0;
|
|
2192
|
+
for (let f = 0; f < b.length; f++) {
|
|
2193
|
+
const I = b[f];
|
|
2194
|
+
l.set(I, d), d += I.byteLength;
|
|
2194
2195
|
}
|
|
2195
2196
|
return l;
|
|
2196
2197
|
}
|
|
2197
2198
|
};
|
|
2198
|
-
const
|
|
2199
|
-
function
|
|
2200
|
-
const e =
|
|
2201
|
-
return e.colorPrimaries === 1 ? e.transferFunction === 2 ?
|
|
2199
|
+
const Ri = /* @__PURE__ */ new Set([$, Ue, Te]), ha = { [qt]: $, [Ot]: $, [Gt]: $, [Ht]: $, [Pt]: Ue, [Lt]: Ue, [Tt]: Ue, [Ut]: Ue, [Jt]: Te, [Nt]: Te, [Mt]: Te, [Rt]: Te, [Fa]: yt, [Kt]: Oa, [_t]: Oa }, la = { [qt]: R, [Ot]: we, [Gt]: W, [Ht]: W, [Pt]: R, [Lt]: we, [Tt]: W, [Ut]: W, [Jt]: R, [Nt]: we, [Mt]: W, [Rt]: W, [Fa]: we, [Kt]: W, [_t]: W };
|
|
2200
|
+
function tt(h) {
|
|
2201
|
+
const e = h.dataFormatDescriptor[0];
|
|
2202
|
+
return e.colorPrimaries === 1 ? e.transferFunction === 2 ? se : K : e.colorPrimaries === 10 ? e.transferFunction === 2 ? "display-p3" : "display-p3-linear" : (e.colorPrimaries === 0 || console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), vA);
|
|
2202
2203
|
}
|
|
2203
|
-
async function
|
|
2204
|
-
const e =
|
|
2205
|
-
if (!a.ok) throw new Error(`Failed to fetch ${
|
|
2204
|
+
async function At(h) {
|
|
2205
|
+
const e = h.split("?")[0].split(".").pop(), a = await fetch(h);
|
|
2206
|
+
if (!a.ok) throw new Error(`Failed to fetch ${h}: ${a.statusText}`);
|
|
2206
2207
|
if (e === "json") {
|
|
2207
2208
|
const t = await a.json();
|
|
2208
|
-
return handleJSONSubtree(t,
|
|
2209
|
+
return handleJSONSubtree(t, it(h));
|
|
2209
2210
|
}
|
|
2210
2211
|
if (e === "subtree")
|
|
2211
2212
|
return async function(t, A) {
|
|
2212
|
-
const i = new DataView(t), s = i.getBigUint64(8, !0), r = i.getBigUint64(16, !0),
|
|
2213
|
-
if (!
|
|
2214
|
-
const f =
|
|
2213
|
+
const i = new DataView(t), s = i.getBigUint64(8, !0), r = i.getBigUint64(16, !0), n = 24, o = n + Number(s), c = o + (8 - o % 8) % 8, b = c + Number(r), g = t.slice(n, o), l = new TextDecoder().decode(g).trim(), d = JSON.parse(l);
|
|
2214
|
+
if (!d.buffers) throw new Error("subtree has no buffers");
|
|
2215
|
+
const f = d.buffers.map(async (m) => {
|
|
2215
2216
|
if (m.uri) {
|
|
2216
2217
|
const u = new URL(m.uri, A).href, C = await fetch(u);
|
|
2217
2218
|
if (!C.ok) throw new Error(`Failed to fetch binary file ${u}: ${C.statusText}`);
|
|
2218
2219
|
return new Uint8Array(await C.arrayBuffer());
|
|
2219
2220
|
}
|
|
2220
|
-
return new Uint8Array(t.slice(
|
|
2221
|
+
return new Uint8Array(t.slice(c, b));
|
|
2221
2222
|
}), I = await Promise.all(f);
|
|
2222
2223
|
return /* @__PURE__ */ function(m, u) {
|
|
2223
2224
|
function C(p, Q) {
|
|
@@ -2237,11 +2238,11 @@ async function st(c) {
|
|
|
2237
2238
|
}
|
|
2238
2239
|
function w(p) {
|
|
2239
2240
|
let Q = 0;
|
|
2240
|
-
return Q = p.z == null ?
|
|
2241
|
+
return Q = p.z == null ? ga(p.x, p.y, p.level) : ua(p.x, p.y, p.z, p.level), C(m.tileAvailability, Q);
|
|
2241
2242
|
}
|
|
2242
2243
|
function k(p) {
|
|
2243
2244
|
let Q = 0;
|
|
2244
|
-
Q = p.z == null ?
|
|
2245
|
+
Q = p.z == null ? ga(p.x, p.y, p.level) : ua(p.x, p.y, p.z, p.level);
|
|
2245
2246
|
const x = [];
|
|
2246
2247
|
return m.contentAvailability.forEach((j) => {
|
|
2247
2248
|
x.push(C(j, Q));
|
|
@@ -2249,78 +2250,78 @@ async function st(c) {
|
|
|
2249
2250
|
}
|
|
2250
2251
|
function y(p) {
|
|
2251
2252
|
let Q = 0;
|
|
2252
|
-
return Q = p.z == null ?
|
|
2253
|
+
return Q = p.z == null ? ga(p.x, p.y) : ua(p.x, p.y, p.z), C(m.childSubtreeAvailability, Q);
|
|
2253
2254
|
}
|
|
2254
2255
|
return { isTileAvailable: w, isContentAvailable: k, isChildSubtreeAvailable: y };
|
|
2255
|
-
}(
|
|
2256
|
-
}(await a.arrayBuffer(),
|
|
2256
|
+
}(d, I);
|
|
2257
|
+
}(await a.arrayBuffer(), it(h));
|
|
2257
2258
|
throw new Error(`Unsupported file extension: ${e}`);
|
|
2258
2259
|
}
|
|
2259
|
-
function
|
|
2260
|
-
const e =
|
|
2260
|
+
function it(h) {
|
|
2261
|
+
const e = h.split("?")[0];
|
|
2261
2262
|
return e.substring(0, e.lastIndexOf("/") + 1);
|
|
2262
2263
|
}
|
|
2263
|
-
function
|
|
2264
|
-
return
|
|
2264
|
+
function st(h) {
|
|
2265
|
+
return h = 1431655765 & ((h = 858993459 & ((h = 252645135 & ((h = 16711935 & ((h &= 65535) ^ h << 8)) ^ h << 4)) ^ h << 2)) ^ h << 1);
|
|
2265
2266
|
}
|
|
2266
|
-
function
|
|
2267
|
+
function ga(h, e, a) {
|
|
2267
2268
|
let t = 0;
|
|
2268
|
-
return a && (t = (Math.pow(4, a) - 1) / 3), t + (
|
|
2269
|
+
return a && (t = (Math.pow(4, a) - 1) / 3), t + (st(h) | st(e) << 1);
|
|
2269
2270
|
}
|
|
2270
|
-
function
|
|
2271
|
-
return
|
|
2271
|
+
function fa(h) {
|
|
2272
|
+
return h = 153391689 & ((h = 51130563 & ((h = 50393103 & ((h = 4278190335 & ((h &= 1023) ^ h << 16)) ^ h << 8)) ^ h << 4)) ^ h << 2);
|
|
2272
2273
|
}
|
|
2273
|
-
function
|
|
2274
|
+
function ua(h, e, a, t) {
|
|
2274
2275
|
let A = 0;
|
|
2275
|
-
return t && (A = (Math.pow(8, t) - 1) / 7), A + (
|
|
2276
|
+
return t && (A = (Math.pow(8, t) - 1) / 7), A + (fa(h) | fa(e) << 1 | fa(a) << 2);
|
|
2276
2277
|
}
|
|
2277
|
-
const
|
|
2278
|
-
async function
|
|
2279
|
-
if (!
|
|
2280
|
-
if (!
|
|
2278
|
+
const Re = /* @__PURE__ */ new Map();
|
|
2279
|
+
async function Ra(h, e) {
|
|
2280
|
+
if (!h.root || !h.root.implicitTiling) return h;
|
|
2281
|
+
if (!h.root.content && !h.root.contents) throw new Error("implicit tiling requires a Template URI");
|
|
2281
2282
|
let a = !0;
|
|
2282
|
-
|
|
2283
|
+
h.root.implicitTiling.subdivisionScheme && (a = h.root.implicitTiling.subdivisionScheme.toUpperCase() === "QUADTREE");
|
|
2283
2284
|
let t = "";
|
|
2284
|
-
|
|
2285
|
+
h.root.implicitTiling.subtrees && (h.root.implicitTiling.subtrees.uri ? t = h.root.implicitTiling.subtrees.uri : h.root.implicitTiling.subtrees.url && (t = h.root.implicitTiling.subtrees.url));
|
|
2285
2286
|
let A = [];
|
|
2286
|
-
|
|
2287
|
+
h.root.content ? h.root.content.uri ? A.push(h.root.content.uri) : h.root.content.url && A.push(h.root.content.url) : h.root.contents && h.root.contents.forEach((l) => {
|
|
2287
2288
|
l.uri ? A.push(l.uri) : l.url && A.push(l.url);
|
|
2288
2289
|
});
|
|
2289
2290
|
const i = function(l) {
|
|
2290
|
-
const
|
|
2291
|
-
return
|
|
2291
|
+
const d = l.split("?")[0];
|
|
2292
|
+
return d.substring(0, d.lastIndexOf("/") + 1);
|
|
2292
2293
|
}(e);
|
|
2293
2294
|
let s;
|
|
2294
2295
|
a && (s = t.replace("{level}", 0).replace("{x}", 0).replace("{y}", 0)), a || (s = t.replace("{level}", 0).replace("{x}", 0).replace("{y}", 0).replace("{z}", 0));
|
|
2295
|
-
const r = { level: 0, x: 0, y: 0 },
|
|
2296
|
-
a || (r.z = 0,
|
|
2297
|
-
const
|
|
2298
|
-
|
|
2299
|
-
let
|
|
2300
|
-
a && (
|
|
2296
|
+
const r = { level: 0, x: 0, y: 0 }, n = { level: 0, x: 0, y: 0 };
|
|
2297
|
+
a || (r.z = 0, n.z = 0), Re.set(s, await At(i + s));
|
|
2298
|
+
const o = Re.get(s), c = [];
|
|
2299
|
+
o.isContentAvailable(n) && A.forEach((l) => {
|
|
2300
|
+
let d;
|
|
2301
|
+
a && (d = l.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y)), a || (d = l.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y).replace("{z}", r.z)), c.push({ uri: d });
|
|
2301
2302
|
});
|
|
2302
|
-
const
|
|
2303
|
-
return { root:
|
|
2303
|
+
const b = { geometricError: h.root.geometricError, boundingVolume: h.root.boundingVolume, refine: h.root.refine, globalAddress: r, localAddress: n, subtree: o, contents: c, getChildren: async () => g(b) };
|
|
2304
|
+
return { root: b };
|
|
2304
2305
|
async function g(l) {
|
|
2305
|
-
const
|
|
2306
|
-
if (l.localAddress.level ==
|
|
2307
|
-
if ((l.localAddress.level + 1) %
|
|
2308
|
-
const f =
|
|
2306
|
+
const d = [];
|
|
2307
|
+
if (l.localAddress.level == h.root.implicitTiling.availableLevels - 1) return d;
|
|
2308
|
+
if ((l.localAddress.level + 1) % h.root.implicitTiling.subtreeLevels == 0) {
|
|
2309
|
+
const f = _e(l.localAddress), I = _e(l.globalAddress), m = rt(a, h.root.boundingVolume, I);
|
|
2309
2310
|
for (let u = 0; u < f.length; u++) {
|
|
2310
2311
|
const C = f[u], B = I[u];
|
|
2311
|
-
l.subtree.isChildSubtreeAvailable(C) && (a && t.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y), a || t.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)),
|
|
2312
|
-
const w =
|
|
2312
|
+
l.subtree.isChildSubtreeAvailable(C) && (a && t.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y), a || t.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), Re.has(s) || Re.set(s, await At(i + s));
|
|
2313
|
+
const w = Re.get(s), k = { level: 0, x: 0, y: 0 };
|
|
2313
2314
|
a || (k.z = 0);
|
|
2314
2315
|
const y = [];
|
|
2315
2316
|
w.isContentAvailable(k) && A.forEach((Q) => {
|
|
2316
2317
|
let x;
|
|
2317
2318
|
a && (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y)), a || (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), y.push({ uri: x });
|
|
2318
2319
|
});
|
|
2319
|
-
const p = { geometricError: l.geometricError / 2, boundingVolume: m[u], refine:
|
|
2320
|
-
|
|
2320
|
+
const p = { geometricError: l.geometricError / 2, boundingVolume: m[u], refine: h.root.refine, globalAddress: B, localAddress: k, subtree: w, contents: y, getChildren: async () => g(p) };
|
|
2321
|
+
d.push(p);
|
|
2321
2322
|
}
|
|
2322
2323
|
} else {
|
|
2323
|
-
const f =
|
|
2324
|
+
const f = _e(l.localAddress), I = _e(l.globalAddress), m = rt(a, h.root.boundingVolume, I);
|
|
2324
2325
|
for (let u = 0; u < f.length; u++) {
|
|
2325
2326
|
const C = f[u], B = I[u];
|
|
2326
2327
|
if (!l.subtree.isTileAvailable(C)) continue;
|
|
@@ -2331,158 +2332,158 @@ async function Ua(c, e) {
|
|
|
2331
2332
|
let x;
|
|
2332
2333
|
a && (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y)), a || (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), w.push({ uri: x });
|
|
2333
2334
|
}
|
|
2334
|
-
const y = { geometricError: l.geometricError / 2, boundingVolume: m[u], refine:
|
|
2335
|
-
|
|
2335
|
+
const y = { geometricError: l.geometricError / 2, boundingVolume: m[u], refine: h.root.refine, globalAddress: B, localAddress: C, subtree: l.subtree, contents: w, getChildren: async () => g(y) };
|
|
2336
|
+
d.push(y);
|
|
2336
2337
|
}
|
|
2337
2338
|
}
|
|
2338
|
-
return
|
|
2339
|
+
return d.length > 0 ? d : void 0;
|
|
2339
2340
|
}
|
|
2340
2341
|
}
|
|
2341
|
-
function
|
|
2342
|
-
const { level: e, x: a, y: t, z: A } =
|
|
2342
|
+
function _e(h) {
|
|
2343
|
+
const { level: e, x: a, y: t, z: A } = h, i = e + 1;
|
|
2343
2344
|
let s = [];
|
|
2344
2345
|
return s = A === void 0 ? [{ level: i, x: 2 * a, y: 2 * t }, { level: i, x: 2 * a + 1, y: 2 * t }, { level: i, x: 2 * a, y: 2 * t + 1 }, { level: i, x: 2 * a + 1, y: 2 * t + 1 }] : [{ level: i, x: 2 * a, y: 2 * t, z: 2 * A }, { level: i, x: 2 * a + 1, y: 2 * t, z: 2 * A }, { level: i, x: 2 * a, y: 2 * t + 1, z: 2 * A }, { level: i, x: 2 * a + 1, y: 2 * t + 1, z: 2 * A }, { level: i, x: 2 * a, y: 2 * t, z: 2 * A + 1 }, { level: i, x: 2 * a + 1, y: 2 * t, z: 2 * A + 1 }, { level: i, x: 2 * a, y: 2 * t + 1, z: 2 * A + 1 }, { level: i, x: 2 * a + 1, y: 2 * t + 1, z: 2 * A + 1 }], s;
|
|
2345
2346
|
}
|
|
2346
|
-
function
|
|
2347
|
+
function rt(h, e, a) {
|
|
2347
2348
|
const t = [];
|
|
2348
|
-
for (let A = 0; A < a.length; A++) t.push(
|
|
2349
|
+
for (let A = 0; A < a.length; A++) t.push(Mi(h, e, a[A]));
|
|
2349
2350
|
return t;
|
|
2350
2351
|
}
|
|
2351
|
-
function
|
|
2352
|
+
function Mi(h, e, a) {
|
|
2352
2353
|
if (e.region) return function(t, A, i) {
|
|
2353
|
-
const [s, r, o,
|
|
2354
|
+
const [s, r, n, o, c, b] = A, g = (n - s) / 2 ** i.level, l = (o - r) / 2 ** i.level, d = t ? 0 : (b - c) / 2 ** i.level, f = s + g * i.x, I = r + l * i.y, m = f + g, u = I + l, C = t ? c : c + d * i.z, B = t ? b : C + d;
|
|
2354
2355
|
return { region: [f, I, m, u, C, B] };
|
|
2355
|
-
}(
|
|
2356
|
+
}(h, e.region, a);
|
|
2356
2357
|
if (e.box) return function(t, A, i) {
|
|
2357
|
-
const s = A.slice(0, 3), r = [A.slice(3, 6), A.slice(6, 9), A.slice(9, 12)],
|
|
2358
|
-
return { box: [
|
|
2359
|
-
}(
|
|
2358
|
+
const s = A.slice(0, 3), r = [A.slice(3, 6), A.slice(6, 9), A.slice(9, 12)], n = 1 / Math.pow(2, i.level), o = [n, n, t ? 1 : n], c = r.map((l, d) => l.map((f) => f * o[d])), b = [s[0] - r[0][0] - r[1][0] - r[2][0], s[1] - r[0][1] - r[1][1] - r[2][1], s[2] - r[0][2] - r[1][2] - r[2][2]];
|
|
2359
|
+
return { box: [b[0] + (2 * i.x + 1) * (c[0][0] + c[1][0] + c[2][0]), b[1] + (2 * i.y + 1) * (c[0][1] + c[1][1] + c[2][1]), t ? s[2] : b[2] + (2 * i.z + 1) * (c[0][2] + c[1][2] + c[2][2])].concat(...c) };
|
|
2360
|
+
}(h, e.box, a);
|
|
2360
2361
|
throw new Error("Unsupported bounding volume type");
|
|
2361
2362
|
}
|
|
2362
2363
|
(function() {
|
|
2363
|
-
var
|
|
2364
|
+
var h, e = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
|
|
2364
2365
|
if (typeof WebAssembly != "object") return { supported: !1 };
|
|
2365
|
-
|
|
2366
|
-
for (var b = new Uint8Array(n.length), d = 0; d < n.length; ++d) {
|
|
2367
|
-
var g = n.charCodeAt(d);
|
|
2368
|
-
b[d] = g > 96 ? g - 97 : g > 64 ? g - 39 : g + 4;
|
|
2369
|
-
}
|
|
2370
|
-
var l = 0;
|
|
2371
|
-
for (d = 0; d < n.length; ++d) b[l++] = b[d] < 60 ? e[b[d]] : 64 * (b[d] - 60) + b[++d];
|
|
2372
|
-
return b.buffer.slice(0, l);
|
|
2373
|
-
}("b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:G:Qdkr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq;A9pLdbk;QqeKu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRbN:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9Uc;WFbGgecjdaecjd6Ehqcbhkindndnaiak9nmbaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndnaec9WGgsTmbcbhzaPhHawhOxekdnaxmbalheinaraw9Ram6miawcbamzNjjjbamfhwaecufgembxvkkcbhAaPhOinaDaAfRbbhCaDcjlfheaOhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkaraw9Ram6mdaOcefhOawcbamzNjjjbamfhwaAcefgAal9hmbxlkkindnaxTmbaDazfRbbhCaDcjlfheaHhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkkaraO9Ram6mearaOcbamzNjjjbgLamfgw9RcK6mecbhKaDcjlfhOinaDcjlfaKfhYcwhAczhQceheindndnaegXce9hmbcuhoaYRbbmecbhodninaogecsSmeaecefhoaOaefcefRbbTmbkkcucbaecs6EhoxekaXcethocuaXtc;:bGcFb7hCcbheinaoaCaOaefRbb9nfhoaecefgecz9hmbkkaoaQaoaQ6geEhQaXaAaeEhAaXcetheaXcl6mbkdndndndnaAcufPdiebkaLaKco4fgeaeRbbcdciaAclSEaKci4coGtV86bbaAcw9hmeawaY8Pbb83bbawcwfaYcwf8Pbb83bbawczfhwxdkaLaKco4fgeaeRbbceaKci4coGtV86bbkdncwaA9Tg8Ambinawcb86bbawcefhwxbkkcuaAtcu7hYcbhEaOh3ina3hea8AhCcbhoinaeRbbgQaYcFeGgXaQaX6EaoaAtVhoaecefheaCcufgCmbkawao86bba3a8Afh3awcefhwaEa8AfgEcz6mbkcbheindnaOaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaKczfgKas9pmbaOczfhOaraw9RcL0mekkaKas6meawTmeaHcefhHawhOazcefgzalSmixbkkcbhoxikcbhoaraw9Ralcaalca0E6mddnalc8F0mbawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9RhoxdkaDaPaxcufal2falz:tjjjb8Aaxakfhkawmbkcbhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBdN:kjjbk:zse5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:e:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc:y1jjbfydbcdtfydbh3aLaocN1jjbfydbcdtfydbh8AaLaoc:q1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc:q1jjbfydbcdtfydbgKTaLavcN1jjbfydbcdtfydbg8AceSGaLavc:y1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavcj1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:e:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:e:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b9kEc:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A9kEc:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;HqdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgradcFFFFi0Ecbyd:m:kjjbHjjjjbbgeBd:SeavceBd:mdaeabarz:tjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaeadaiavc:Sefz:njjjbavyd:Gehwadci9UgDcbyd:m:kjjbHjjjjbbhravc:Sefavyd:mdgqcdtfarBdbavaqcefgkBd:mdarcbaDzNjjjbhxavc:SefakcdtfcuaicdtaicFFFFi0Ecbyd:m:kjjbHjjjjbbgmBdbavaqcdfgPBd:mdawhramhkinakalIdbalarydbgscwascw6Ecdtfc;ebfIdbMUdbarclfhrakclfhkaicufgimbkavc:SefaPcdtfcuaDcdtadcFFFF970Ecbyd:m:kjjbHjjjjbbgPBdbdnadci6mbaehraPhkaDhiinakamarydbcdtfIdbamarclfydbcdtfIdbMamarcwfydbcdtfIdbMUdbarcxfhrakclfhkaicufgimbkkaqcifhoavc;qbfhzavhravyd:KehHavyd:OehOcbhscbhkcbhAcehCinarhXcihQaeakci2gLcdtfgrydbhdarclfydbhqabaAcx2fgicwfarcwfydbgKBdbaiclfaqBdbaiadBdbaxakfce86bbazaKBdwazaqBdlazadBdbaPakcdtfcbBdbdnasTmbcihQaXhiinazaQcdtfaiydbgrBdbaQaraK9harad9haraq9hGGfhQaiclfhiascufgsmbkkaAcefhAcbhsinaOaHaeasaLfcdtfydbcdtgifydbcdtfgKhrawaifgqydbgdhidnadTmbdninarydbakSmearclfhraicufgiTmdxbkkaraKadcdtfc98fydbBdbaqaqydbcufBdbkascefgsci9hmbkdndnaQTmbcuhkJbbbbhYcbhqavyd:KehKavyd:OehLindndnawazaqcdtfydbcdtgsfydbgrmbaqcefhqxekaqcs0hiamasfgdIdbh8AadalcbaqcefgqaiEcdtfIdbalarcwarcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEarcdthiaLaKasfydbcdtfhrinaParydbgscdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYasakadEhkarclfhraic98fgimbkkaqaQ9hmbkakcu9hmekaCaD9pmdindnaxaCfRbbmbaChkxdkaDaCcefgC9hmbxikkaQczaQcz6EhsazhraXhzakcu9hmbkkaocdtavc:Seffc98fhrdninaoTmearydbcbyd1:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd:m:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Wkivuo99lu8Jjjjjbc;W;Gb9Rgl8Kjjjjbcbhvalcj;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:m:kjjbHjjjjbbgrBdj9GalceBd;G9GalcFFF;7rBdwal9cFFF;7;3FF:;Fb83dbalcFFF97Bd;S9Gal9cFFF;7FFF:;u83d;K9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;K;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;S9GhDalIdlhkalId;O9GhxalIdbhmalId;K9GhPkdndnadTmbJbbbbJbbjZJbbbbaPam:tgPaPJbbbb9DEgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhHalaocbyd:m:kjjbHjjjjbbgiBd:e9GdnadTmbabhzinazaHBdbazclfhzadaHcefgH9hmbkabhHadhzinalaraHydbgecdtfydbcFrGcx2fgvavydbgvcefBdbaiavcdtfaeBdbaHclfhHazcufgzmbkaihHadhzinalaraHydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaHclfhHazcufgzmbkabhHadhzinalaraHydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwaiavcdtfaeBdbaHclfhHazcufgzmbkcbhHinabaiydbcdtfaHBdbaiclfhiadaHcefgH9hmbkkclhidninaic98Smealcj;Gbfaifydbcbyd1:kjjbH:bjjjbbaic98fhixbkkalc;W;Gbf8Kjjjjbk9teiucbcbyd:q:kjjbgeabcifc98GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:kjjbgeabcrfc94GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:kjjbfgdBd:q:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iddbcjwk:edb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:bc:eqkzebbbebbbdbbba:vbb"), {}).then(function(n) {
|
|
2374
|
-
(c = n.instance).exports.__wasm_call_ctors(), c.exports.meshopt_encodeVertexVersion(0), c.exports.meshopt_encodeIndexVersion(1);
|
|
2375
|
-
});
|
|
2376
|
-
function t(n) {
|
|
2366
|
+
function a(n) {
|
|
2377
2367
|
if (!n) throw new Error("Assertion failed");
|
|
2378
2368
|
}
|
|
2379
|
-
function
|
|
2369
|
+
function t(n) {
|
|
2380
2370
|
return new Uint8Array(n.buffer, n.byteOffset, n.byteLength);
|
|
2381
2371
|
}
|
|
2382
|
-
function
|
|
2383
|
-
var
|
|
2384
|
-
|
|
2385
|
-
var
|
|
2386
|
-
return
|
|
2387
|
-
}
|
|
2388
|
-
function
|
|
2389
|
-
for (var
|
|
2390
|
-
var
|
|
2391
|
-
return
|
|
2392
|
-
}
|
|
2393
|
-
function
|
|
2394
|
-
if (
|
|
2395
|
-
var
|
|
2396
|
-
return new Uint32Array(
|
|
2397
|
-
}
|
|
2398
|
-
function
|
|
2399
|
-
var
|
|
2400
|
-
|
|
2401
|
-
var
|
|
2402
|
-
return
|
|
2403
|
-
}
|
|
2372
|
+
function A(n, o, c, b, g) {
|
|
2373
|
+
var l = h.exports.sbrk, d = l(o), f = l(b * g), I = new Uint8Array(h.exports.memory.buffer);
|
|
2374
|
+
I.set(t(c), f);
|
|
2375
|
+
var m = n(d, o, f, b, g), u = new Uint8Array(m);
|
|
2376
|
+
return u.set(I.subarray(d, d + m)), l(d - l(0)), u;
|
|
2377
|
+
}
|
|
2378
|
+
function i(n) {
|
|
2379
|
+
for (var o = 0, c = 0; c < n.length; ++c)
|
|
2380
|
+
var b = n[c];
|
|
2381
|
+
return o;
|
|
2382
|
+
}
|
|
2383
|
+
function s(n, o) {
|
|
2384
|
+
if (a(o == 2 || o == 4), o == 4) return new Uint32Array(n.buffer, n.byteOffset, n.byteLength / 4);
|
|
2385
|
+
var c = new Uint16Array(n.buffer, n.byteOffset, n.byteLength / 2);
|
|
2386
|
+
return new Uint32Array(c);
|
|
2387
|
+
}
|
|
2388
|
+
function r(n, o, c, b, g, l, d) {
|
|
2389
|
+
var f = h.exports.sbrk, I = f(c * b), m = f(c * l), u = new Uint8Array(h.exports.memory.buffer);
|
|
2390
|
+
u.set(t(o), m), n(I, c, b, g, m, d);
|
|
2391
|
+
var C = new Uint8Array(c * b);
|
|
2392
|
+
return C.set(u.subarray(I, I + c * b)), f(I - f(0)), C;
|
|
2393
|
+
}
|
|
2394
|
+
WebAssembly.instantiate(function(n) {
|
|
2395
|
+
for (var o = new Uint8Array(n.length), c = 0; c < n.length; ++c) {
|
|
2396
|
+
var b = n.charCodeAt(c);
|
|
2397
|
+
o[c] = b > 96 ? b - 97 : b > 64 ? b - 39 : b + 4;
|
|
2398
|
+
}
|
|
2399
|
+
var g = 0;
|
|
2400
|
+
for (c = 0; c < n.length; ++c) o[g++] = o[c] < 60 ? e[o[c]] : 64 * (o[c] - 60) + o[++c];
|
|
2401
|
+
return o.buffer.slice(0, g);
|
|
2402
|
+
}("b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:G:Qdkr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq;A9pLdbk;QqeKu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRbN:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9Uc;WFbGgecjdaecjd6Ehqcbhkindndnaiak9nmbaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndnaec9WGgsTmbcbhzaPhHawhOxekdnaxmbalheinaraw9Ram6miawcbamzNjjjbamfhwaecufgembxvkkcbhAaPhOinaDaAfRbbhCaDcjlfheaOhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkaraw9Ram6mdaOcefhOawcbamzNjjjbamfhwaAcefgAal9hmbxlkkindnaxTmbaDazfRbbhCaDcjlfheaHhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkkaraO9Ram6mearaOcbamzNjjjbgLamfgw9RcK6mecbhKaDcjlfhOinaDcjlfaKfhYcwhAczhQceheindndnaegXce9hmbcuhoaYRbbmecbhodninaogecsSmeaecefhoaOaefcefRbbTmbkkcucbaecs6EhoxekaXcethocuaXtc;:bGcFb7hCcbheinaoaCaOaefRbb9nfhoaecefgecz9hmbkkaoaQaoaQ6geEhQaXaAaeEhAaXcetheaXcl6mbkdndndndnaAcufPdiebkaLaKco4fgeaeRbbcdciaAclSEaKci4coGtV86bbaAcw9hmeawaY8Pbb83bbawcwfaYcwf8Pbb83bbawczfhwxdkaLaKco4fgeaeRbbceaKci4coGtV86bbkdncwaA9Tg8Ambinawcb86bbawcefhwxbkkcuaAtcu7hYcbhEaOh3ina3hea8AhCcbhoinaeRbbgQaYcFeGgXaQaX6EaoaAtVhoaecefheaCcufgCmbkawao86bba3a8Afh3awcefhwaEa8AfgEcz6mbkcbheindnaOaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaKczfgKas9pmbaOczfhOaraw9RcL0mekkaKas6meawTmeaHcefhHawhOazcefgzalSmixbkkcbhoxikcbhoaraw9Ralcaalca0E6mddnalc8F0mbawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9RhoxdkaDaPaxcufal2falz:tjjjb8Aaxakfhkawmbkcbhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBdN:kjjbk:zse5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:e:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc:y1jjbfydbcdtfydbh3aLaocN1jjbfydbcdtfydbh8AaLaoc:q1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc:q1jjbfydbcdtfydbgKTaLavcN1jjbfydbcdtfydbg8AceSGaLavc:y1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavcj1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:e:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:e:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b9kEc:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A9kEc:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;HqdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgradcFFFFi0Ecbyd:m:kjjbHjjjjbbgeBd:SeavceBd:mdaeabarz:tjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaeadaiavc:Sefz:njjjbavyd:Gehwadci9UgDcbyd:m:kjjbHjjjjbbhravc:Sefavyd:mdgqcdtfarBdbavaqcefgkBd:mdarcbaDzNjjjbhxavc:SefakcdtfcuaicdtaicFFFFi0Ecbyd:m:kjjbHjjjjbbgmBdbavaqcdfgPBd:mdawhramhkinakalIdbalarydbgscwascw6Ecdtfc;ebfIdbMUdbarclfhrakclfhkaicufgimbkavc:SefaPcdtfcuaDcdtadcFFFF970Ecbyd:m:kjjbHjjjjbbgPBdbdnadci6mbaehraPhkaDhiinakamarydbcdtfIdbamarclfydbcdtfIdbMamarcwfydbcdtfIdbMUdbarcxfhrakclfhkaicufgimbkkaqcifhoavc;qbfhzavhravyd:KehHavyd:OehOcbhscbhkcbhAcehCinarhXcihQaeakci2gLcdtfgrydbhdarclfydbhqabaAcx2fgicwfarcwfydbgKBdbaiclfaqBdbaiadBdbaxakfce86bbazaKBdwazaqBdlazadBdbaPakcdtfcbBdbdnasTmbcihQaXhiinazaQcdtfaiydbgrBdbaQaraK9harad9haraq9hGGfhQaiclfhiascufgsmbkkaAcefhAcbhsinaOaHaeasaLfcdtfydbcdtgifydbcdtfgKhrawaifgqydbgdhidnadTmbdninarydbakSmearclfhraicufgiTmdxbkkaraKadcdtfc98fydbBdbaqaqydbcufBdbkascefgsci9hmbkdndnaQTmbcuhkJbbbbhYcbhqavyd:KehKavyd:OehLindndnawazaqcdtfydbcdtgsfydbgrmbaqcefhqxekaqcs0hiamasfgdIdbh8AadalcbaqcefgqaiEcdtfIdbalarcwarcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEarcdthiaLaKasfydbcdtfhrinaParydbgscdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYasakadEhkarclfhraic98fgimbkkaqaQ9hmbkakcu9hmekaCaD9pmdindnaxaCfRbbmbaChkxdkaDaCcefgC9hmbxikkaQczaQcz6EhsazhraXhzakcu9hmbkkaocdtavc:Seffc98fhrdninaoTmearydbcbyd1:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd:m:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Wkivuo99lu8Jjjjjbc;W;Gb9Rgl8Kjjjjbcbhvalcj;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:m:kjjbHjjjjbbgrBdj9GalceBd;G9GalcFFF;7rBdwal9cFFF;7;3FF:;Fb83dbalcFFF97Bd;S9Gal9cFFF;7FFF:;u83d;K9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;K;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;S9GhDalIdlhkalId;O9GhxalIdbhmalId;K9GhPkdndnadTmbJbbbbJbbjZJbbbbaPam:tgPaPJbbbb9DEgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhHalaocbyd:m:kjjbHjjjjbbgiBd:e9GdnadTmbabhzinazaHBdbazclfhzadaHcefgH9hmbkabhHadhzinalaraHydbgecdtfydbcFrGcx2fgvavydbgvcefBdbaiavcdtfaeBdbaHclfhHazcufgzmbkaihHadhzinalaraHydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaHclfhHazcufgzmbkabhHadhzinalaraHydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwaiavcdtfaeBdbaHclfhHazcufgzmbkcbhHinabaiydbcdtfaHBdbaiclfhiadaHcefgH9hmbkkclhidninaic98Smealcj;Gbfaifydbcbyd1:kjjbH:bjjjbbaic98fhixbkkalc;W;Gbf8Kjjjjbk9teiucbcbyd:q:kjjbgeabcifc98GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:kjjbgeabcrfc94GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:kjjbfgdBd:q:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iddbcjwk:edb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:bc:eqkzebbbebbbdbbba:vbb"), {}).then(function(n) {
|
|
2403
|
+
(h = n.instance).exports.__wasm_call_ctors(), h.exports.meshopt_encodeVertexVersion(0), h.exports.meshopt_encodeIndexVersion(1);
|
|
2404
|
+
});
|
|
2404
2405
|
})();
|
|
2405
|
-
var
|
|
2406
|
-
var
|
|
2406
|
+
var zt = function() {
|
|
2407
|
+
var h = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 3, 2, 0, 0, 5, 3, 1, 0, 1, 12, 1, 0, 10, 22, 2, 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11]), e = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
|
|
2407
2408
|
if (typeof WebAssembly != "object") return { supported: !1 };
|
|
2408
|
-
var a, t = WebAssembly.validate(c) ? i("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb") : i("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb"), A = WebAssembly.instantiate(t, {}).then(function(l) {
|
|
2409
|
+
var a, t = WebAssembly.validate(h) ? i("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb") : i("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb"), A = WebAssembly.instantiate(t, {}).then(function(l) {
|
|
2409
2410
|
(a = l.instance).exports.__wasm_call_ctors();
|
|
2410
2411
|
});
|
|
2411
2412
|
function i(l) {
|
|
2412
|
-
for (var
|
|
2413
|
+
for (var d = new Uint8Array(l.length), f = 0; f < l.length; ++f) {
|
|
2413
2414
|
var I = l.charCodeAt(f);
|
|
2414
|
-
|
|
2415
|
+
d[f] = I > 96 ? I - 97 : I > 64 ? I - 39 : I + 4;
|
|
2415
2416
|
}
|
|
2416
2417
|
var m = 0;
|
|
2417
|
-
for (f = 0; f < l.length; ++f)
|
|
2418
|
-
return
|
|
2418
|
+
for (f = 0; f < l.length; ++f) d[m++] = d[f] < 60 ? e[d[f]] : 64 * (d[f] - 60) + d[++f];
|
|
2419
|
+
return d.buffer.slice(0, m);
|
|
2419
2420
|
}
|
|
2420
|
-
function s(l,
|
|
2421
|
+
function s(l, d, f, I, m, u, C) {
|
|
2421
2422
|
var B = l.exports.sbrk, w = I + 3 & -4, k = B(w * m), y = B(u.length), p = new Uint8Array(l.exports.memory.buffer);
|
|
2422
2423
|
p.set(u, y);
|
|
2423
|
-
var Q =
|
|
2424
|
+
var Q = d(k, I, m, y, u.length);
|
|
2424
2425
|
if (Q == 0 && C && C(k, w, m), f.set(p.subarray(k, k + I * m)), B(k - B(0)), Q != 0) throw new Error("Malformed buffer data: " + Q);
|
|
2425
2426
|
}
|
|
2426
|
-
var r = { NONE: "", OCTAHEDRAL: "meshopt_decodeFilterOct", QUATERNION: "meshopt_decodeFilterQuat", EXPONENTIAL: "meshopt_decodeFilterExp" },
|
|
2427
|
-
function
|
|
2428
|
-
var
|
|
2429
|
-
return
|
|
2427
|
+
var r = { NONE: "", OCTAHEDRAL: "meshopt_decodeFilterOct", QUATERNION: "meshopt_decodeFilterQuat", EXPONENTIAL: "meshopt_decodeFilterExp" }, n = { ATTRIBUTES: "meshopt_decodeVertexBuffer", TRIANGLES: "meshopt_decodeIndexBuffer", INDICES: "meshopt_decodeIndexSequence" }, o = [], c = 0;
|
|
2428
|
+
function b(l) {
|
|
2429
|
+
var d = { object: new Worker(l), pending: 0, requests: {} };
|
|
2430
|
+
return d.object.onmessage = function(f) {
|
|
2430
2431
|
var I = f.data;
|
|
2431
|
-
|
|
2432
|
-
},
|
|
2432
|
+
d.pending -= I.count, d.requests[I.id][I.action](I.value), delete d.requests[I.id];
|
|
2433
|
+
}, d;
|
|
2433
2434
|
}
|
|
2434
2435
|
function g(l) {
|
|
2435
|
-
var
|
|
2436
|
-
if (!
|
|
2436
|
+
var d = l.data;
|
|
2437
|
+
if (!d.id) return self.close();
|
|
2437
2438
|
self.ready.then(function(f) {
|
|
2438
2439
|
try {
|
|
2439
|
-
var I = new Uint8Array(
|
|
2440
|
-
s(f, f.exports[
|
|
2440
|
+
var I = new Uint8Array(d.count * d.size);
|
|
2441
|
+
s(f, f.exports[d.mode], I, d.count, d.size, d.source, f.exports[d.filter]), self.postMessage({ id: d.id, count: d.count, action: "resolve", value: I }, [I.buffer]);
|
|
2441
2442
|
} catch (m) {
|
|
2442
|
-
self.postMessage({ id:
|
|
2443
|
+
self.postMessage({ id: d.id, count: d.count, action: "reject", value: m });
|
|
2443
2444
|
}
|
|
2444
2445
|
});
|
|
2445
2446
|
}
|
|
2446
2447
|
return { ready: A, supported: !0, useWorkers: function(l) {
|
|
2447
|
-
(function(
|
|
2448
|
-
for (var f = "self.ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(t) + "]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = " + g.name + ";" + s.toString() + g.toString(), I = new Blob([f], { type: "text/javascript" }), m = URL.createObjectURL(I), u =
|
|
2449
|
-
for (u =
|
|
2450
|
-
|
|
2448
|
+
(function(d) {
|
|
2449
|
+
for (var f = "self.ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(t) + "]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = " + g.name + ";" + s.toString() + g.toString(), I = new Blob([f], { type: "text/javascript" }), m = URL.createObjectURL(I), u = o.length; u < d; ++u) o[u] = b(m);
|
|
2450
|
+
for (u = d; u < o.length; ++u) o[u].object.postMessage({});
|
|
2451
|
+
o.length = d, URL.revokeObjectURL(m);
|
|
2451
2452
|
})(l);
|
|
2452
|
-
}, decodeVertexBuffer: function(l,
|
|
2453
|
-
s(a, a.exports.meshopt_decodeVertexBuffer, l,
|
|
2454
|
-
}, decodeIndexBuffer: function(l,
|
|
2455
|
-
s(a, a.exports.meshopt_decodeIndexBuffer, l,
|
|
2456
|
-
}, decodeIndexSequence: function(l,
|
|
2457
|
-
s(a, a.exports.meshopt_decodeIndexSequence, l,
|
|
2458
|
-
}, decodeGltfBuffer: function(l,
|
|
2459
|
-
s(a, a.exports[
|
|
2460
|
-
}, decodeGltfBufferAsync: function(l,
|
|
2461
|
-
return
|
|
2462
|
-
for (var y =
|
|
2453
|
+
}, decodeVertexBuffer: function(l, d, f, I, m) {
|
|
2454
|
+
s(a, a.exports.meshopt_decodeVertexBuffer, l, d, f, I, a.exports[r[m]]);
|
|
2455
|
+
}, decodeIndexBuffer: function(l, d, f, I) {
|
|
2456
|
+
s(a, a.exports.meshopt_decodeIndexBuffer, l, d, f, I);
|
|
2457
|
+
}, decodeIndexSequence: function(l, d, f, I) {
|
|
2458
|
+
s(a, a.exports.meshopt_decodeIndexSequence, l, d, f, I);
|
|
2459
|
+
}, decodeGltfBuffer: function(l, d, f, I, m, u) {
|
|
2460
|
+
s(a, a.exports[n[m]], l, d, f, I, a.exports[r[u]]);
|
|
2461
|
+
}, decodeGltfBufferAsync: function(l, d, f, I, m) {
|
|
2462
|
+
return o.length > 0 ? function(u, C, B, w, k) {
|
|
2463
|
+
for (var y = o[0], p = 1; p < o.length; ++p) o[p].pending < y.pending && (y = o[p]);
|
|
2463
2464
|
return new Promise(function(Q, x) {
|
|
2464
|
-
var j = new Uint8Array(B), M = ++
|
|
2465
|
+
var j = new Uint8Array(B), M = ++c;
|
|
2465
2466
|
y.pending += u, y.requests[M] = { resolve: Q, reject: x }, y.object.postMessage({ id: M, count: u, size: C, source: j, mode: w, filter: k }, [j.buffer]);
|
|
2466
2467
|
});
|
|
2467
|
-
}(l,
|
|
2468
|
-
var u = new Uint8Array(l *
|
|
2469
|
-
return s(a, a.exports[
|
|
2468
|
+
}(l, d, f, n[I], r[m]) : A.then(function() {
|
|
2469
|
+
var u = new Uint8Array(l * d);
|
|
2470
|
+
return s(a, a.exports[n[I]], u, l, d, f, a.exports[r[m]]), u;
|
|
2470
2471
|
});
|
|
2471
2472
|
} };
|
|
2472
2473
|
}();
|
|
2473
2474
|
(function() {
|
|
2474
|
-
var
|
|
2475
|
+
var h, e = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
|
|
2475
2476
|
if (typeof WebAssembly != "object") return { supported: !1 };
|
|
2476
2477
|
var a = WebAssembly.instantiate(function(r) {
|
|
2477
|
-
for (var
|
|
2478
|
-
var
|
|
2479
|
-
o
|
|
2478
|
+
for (var n = new Uint8Array(r.length), o = 0; o < r.length; ++o) {
|
|
2479
|
+
var c = r.charCodeAt(o);
|
|
2480
|
+
n[o] = c > 96 ? c - 97 : c > 64 ? c - 39 : c + 4;
|
|
2480
2481
|
}
|
|
2481
|
-
var
|
|
2482
|
-
for (
|
|
2483
|
-
return
|
|
2482
|
+
var b = 0;
|
|
2483
|
+
for (o = 0; o < r.length; ++o) n[b++] = n[o] < 60 ? e[n[o]] : 64 * (n[o] - 60) + n[++o];
|
|
2484
|
+
return n.buffer.slice(0, b);
|
|
2484
2485
|
}("b9H79Tebbbe9Hk9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gvuuuuue999Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuecj:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdmxq;UMesdbk:kfvKue99euY99Qu8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ljjjb8AdnabaeSmbabaeadcdtz:kjjjb8AkdnamcdGTmbalcrfci4gHcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd;S1jjbHjjjjbbhzascxfasyd2gecdtfazBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhQdnadTmbaecufhCcbhLinabaXcdtfgKydbgAc:v;t;h;Ev2hOcbhedndninaQaOaCGgOcdtfgYydbgHcuSmeazaHcdtfydbaASmdaecefgeaOfhOaeaC9nmbxdkkazaLcdtfaABdbaYaLBdbaLhHaLcefhLkaKaHBdbaXcefgXad9hmbkkaQcbyd;O1jjbH:bjjjbbasasyd2cufBd2kcualcefgecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbh8Aascxfasyd2gecdtfa8ABdbasa8ABdlasaecefBd2cuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbhEascxfasyd2gecdtfaEBdbasaEBdwasaecefBd2asclfabadalcbz:cjjjbcualcdtg3alcFFFFi0Eg5cbyd;S1jjbHjjjjbbhQascxfasyd2gecdtfaQBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Eascxfasyd2gecdtfa8EBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhLcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhXdnalTmbavcd4hCaecufhHinaLhednazTmbazaLcdtfydbhekaiaeaC2cdtfgeydlgOcH4aO7c:F:b:DD2aeydbgOcH4aO7c;D;O:B8J27aeydwgecH4ae7c:3F;N8N27aHGheaLcdth8FdndndndndnazTmbaza8FfhKcbhOinaXaecdtfgYydbgAcuSmlaiazaAcdtfydbaC2cdtfaiaKydbaC2cdtfcxz:ojjjbTmiaOcefgOaefaHGheaOaH9nmbxdkkaiaLaC2cdtfhKcbhOinaXaecdtfgYydbgAcuSmiaiaAaC2cdtfaKcxz:ojjjbTmdaOcefgOaefaHGheaOaH9nmbkkcbhYkaYydbgecu9hmekaYaLBdbaLhekaQa8FfaeBdbaLcefgLal9hmbkcbhea8EhHinaHaeBdbaHclfhHalaecefge9hmbkcbheaQhHa8EhOindnaeaHydbgCSmbaOa8EaCcdtfgCydbBdbaCaeBdbkaHclfhHaOclfhOalaecefge9hmbkkcbhaaXcbyd;O1jjbH:bjjjbbasasyd2cufBd2alcbyd;S1jjbHjjjjbbhXascxfasyd2gecdtfaXBdbasaecefBd2a5cbyd;S1jjbHjjjjbbheascxfasyd2gHcdtfaeBdbasaHcefBd2a5cbyd;S1jjbHjjjjbbhHascxfasyd2gOcdtfaHBdbasaOcefBd2aecFea3z:ljjjbhhaHcFea3z:ljjjbhgdnalTmbaEcwfh8Jindna8AaagOcefgacdtfydbgCa8AaOcdtgefydbgHSmbaCaH9Rh8FaEaHcitfh3agaefh8KahaefhLcbhAindndna3aAcitfydbgYaO9hmbaLaOBdba8KaOBdbxekdna8AaYcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgCfydbaOSmeaHae9Rh8Maecu7aHfhKa8JaCfhHcbheinaKaeSmeaecefheaHydbhCaHcwfhHaCaO9hmbkaea8M6mekaga8LfgeaOaYaeydbcuSEBdbaLaYaOaLydbcuSEBdbkaAcefgAa8F9hmbkkaaal9hmbkaQhHa8EhOaghCahhAcbheindndnaeaHydbgY9hmbdnaeaOydbgY9hmbaAydbhYdnaCydbgKcu9hmbaYcu9hmbaXaefcb86bbxikaXaefhLdnaeaKSmbaeaYSmbaLce86bbxikaLcl86bbxdkdnaea8EaYcdtgKfydb9hmbdnaCydbgLcuSmbaeaLSmbaAydbg8FcuSmbaea8FSmbagaKfydbg3cuSmba3aYSmbahaKfydbgKcuSmbaKaYSmbdnaQaLcdtfydbgYaQaKcdtfydb9hmbaYaQa8FcdtfydbgKSmbaKaQa3cdtfydb9hmbaXaefcd86bbxlkaXaefcl86bbxikaXaefcl86bbxdkaXaefcl86bbxekaXaefaXaYfRbb86bbkaHclfhHaOclfhOaCclfhCaAclfhAalaecefge9hmbkdnaqTmbdndnazTmbazheaQhHalhOindnaqaeydbfRbbTmbaXaHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaQhealhHindnaqRbbTmbaXaeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaQhealhOaXhHindnaXaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmbaXhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaascxfasyd2gecdtfaaBdbasaecefBd2aaaialavazz:djjjbh8NdndnaDmbcbhycbh8Jxekcbh8JawhecbhHindnaeIdbJbbbb9ETmbasc;Wbfa8JcdtfaHBdba8Jcefh8JkaeclfheaDaHcefgH9hmbkcua8Jal2gecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbhyascxfasyd2gecdtfayBdbasaecefBd2alTmba8JTmbarcd4hLdnazTmba8JcdthicbhYayhKinaoazaYcdtfydbaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbxdkka8JcdthicbhYayhKinaoaYaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbkkcualc8S2gHalc;D;O;f8U0EgCcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhqdndndndna8JTmbaCcbyd;S1jjbHjjjjbbhvascxfasyd2gecdtfavBdbcehOasaecefBd2avcbaHz:ljjjb8Acua8Jal2gecltgHaecFFFFb0Ecbyd;S1jjbHjjjjbbhrascxfasyd2gecdtfarBdbasaecefBd2arcbaHz:ljjjb8AadmexikcbhvadTmecbhrkcbhAabhHindnaaaHclfydbgYcx2fgeIdbaaaHydbgKcx2fgOIdbg8P:tgIaaaHcwfydbgLcx2fgCIdlaOIdlg8R:tg8SNaCIdba8P:tgRaeIdla8R:tg8UN:tg8Va8VNa8UaCIdwaOIdwg8W:tg8XNa8SaeIdwa8W:tg8UN:tg8Sa8SNa8UaRNa8XaIN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaKcdtfydbc8S2fgea8SaR:rgRa8SNNg8UaeIdbMUdbaeaIaRaINg8YNg8XaeIdlMUdlaea8VaRa8VNg8ZNg80aeIdwMUdwaea8Ya8SNg8YaeIdxMUdxaea8Za8SNg81aeIdzMUdzaea8ZaINg8ZaeIdCMUdCaea8SaRa8Va8WNa8Sa8PNa8RaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaYcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaLcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaHcxfhHaAcifgAad6mbkcbhiabhKinabaicdtfhYcbhHinaXaYaHc:G1jjbfydbcdtfydbgOfRbbhedndnaXaKaHfydbgCfRbbgAc99fcFeGcpe0mbaeceSmbaecd9hmekdnaAcufcFeGce0mbahaCcdtfydbaO9hmekdnaecufcFeGce0mbagaOcdtfydbaC9hmekdnaAcv2aefcj1jjbfRbbTmbaQaOcdtfydbaQaCcdtfydb0mekJbbacJbbacJbbjZaeceSEaAceSEh8ZdnaaaYaHc:K1jjbfydbcdtfydbcx2fgeIdwaaaCcx2fgAIdwg8R:tg8VaaaOcx2fgLIdwa8R:tg8Sa8SNaLIdbaAIdbg8W:tgIaINaLIdlaAIdlg8U:tgRaRNMMg8PNa8Va8SNaeIdba8W:tg80aINaRaeIdla8U:tg8YNMMg8Xa8SN:tg8Va8VNa80a8PNa8XaIN:tg8Sa8SNa8Ya8PNa8XaRN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaCcdtfydbc8S2fgea8Sa8Za8P:rNgRa8SNNg8XaeIdbMUdbaeaIaRaINg8ZNg80aeIdlMUdlaea8VaRa8VNg8PNg8YaeIdwMUdwaea8Za8SNg8ZaeIdxMUdxaea8Pa8SNg81aeIdzMUdzaea8PaINgBaeIdCMUdCaea8SaRa8Va8RNa8Sa8WNa8UaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaOcdtfydbc8S2fgea8XaeIdbMUdbaea80aeIdlMUdlaea8YaeIdwMUdwaea8ZaeIdxMUdxaea81aeIdzMUdzaeaBaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaicifgiad6mbkdna8JTmbcbhKinJbbbbh8WaaabaKcdtfgeclfydbgLcx2fgHIdwaaaeydbgicx2fgOIdwg8Y:tgIaINaHIdbaOIdbg81:tg8Va8VNaHIdlaOIdlgB:tgRaRNMMg8Zaaaecwfydbg8Fcx2fgeIdwa8Y:tg8PNaIaIa8PNa8VaeIdba81:tg8RNaRaeIdlaB:tg8UNMMg8SN:tJbbbbJbbjZa8Za8Pa8PNa8Ra8RNa8Ua8UNMMg80Na8Sa8SN:tg8X:va8XJbbbb9BEg8XNh83a80aINa8Pa8SN:ta8XNhUa8Za8UNaRa8SN:ta8XNh85a80aRNa8Ua8SN:ta8XNh86a8Za8RNa8Va8SN:ta8XNh87a80a8VNa8Ra8SN:ta8XNh88a8Va8UNa8RaRN:tg8Sa8SNaRa8PNa8UaIN:tg8Sa8SNaIa8RNa8Pa8VN:tg8Sa8SNMM:rJbbbZNh8Sayaia8J2g3cdtfhHaya8Fa8J2gwcdtfhOayaLa8J2g8LcdtfhCa8Y:mh89aB:mh8:a81:mhZcbhAa8JhYJbbbbh8UJbbbbh8XJbbbbh8ZJbbbbh80Jbbbbh8YJbbbbh81JbbbbhBJbbbbhnJbbbbhcinasc;WbfaAfgecwfa8SaUaCIdbaHIdbg8P:tgRNa83aOIdba8P:tg8RNMgINUdbaeclfa8Sa86aRNa85a8RNMg8VNUdbaea8Sa88aRNa87a8RNMgRNUdbaecxfa8Sa89aINa8:a8VNa8PaZaRNMMMg8PNUdba8SaIa8VNNa80Mh80a8SaIaRNNa8YMh8Ya8Sa8VaRNNa81Mh81a8Sa8Pa8PNNa8WMh8Wa8SaIa8PNNa8UMh8Ua8Sa8Va8PNNa8XMh8Xa8SaRa8PNNa8ZMh8Za8SaIaINNaBMhBa8Sa8Va8VNNanMhna8SaRaRNNacMhcaHclfhHaCclfhCaOclfhOaAczfhAaYcufgYmbkavaic8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyavaLc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyava8Fc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyara3cltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkara8LcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkarawcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkaKcifgKad6mbkkcbhOxekcehOcbhrkcbh8FdndnamcwGg9cmbJbbbbh8ZcbhJcbhocbhCxekcbhea5cbyd;S1jjbHjjjjbbhCascxfasyd2gHcdtfaCBdbasaHcefBd2dnalTmbaChHinaHaeBdbaHclfhHalaecefge9hmbkkdnaOmbcbhiinabaicdtfhLcbhKinaQaLaKcdtgec:G1jjbfydbcdtfydbcdtfydbhHdnaCaQaLaefydbcdtfydbgOcdtfgAydbgeaOSmbinaAaCaegOcdtfgYydbgeBdbaYhAaOae9hmbkkdnaCaHcdtfgAydbgeaHSmbinaAaCaegHcdtfgYydbgeBdbaYhAaHae9hmbkkdnaOaHSmbaCaOaHaOaH0EcdtfaOaHaOaH6EBdbkaKcefgKci9hmbkaicifgiad6mbkkcbhJdnalTmbcbhYindnaQaYcdtgefydbaY9hmbaYhHdnaCaefgKydbgeaYSmbaKhOinaOaCaegHcdtfgAydbgeBdbaAhOaHae9hmbkkaKaHBdbkaYcefgYal9hmbkcbheaQhOaChHcbhJindndnaeaOydbgA9hmbdnaeaHydbgA9hmbaHaJBdbaJcefhJxdkaHaCaAcdtfydbBdbxekaHaCaAcdtfydbBdbkaOclfhOaHclfhHalaecefge9hmbkkcuaJcltgeaJcjjjjiGEcbyd;S1jjbHjjjjbbhoascxfasyd2gHcdtfaoBdbasaHcefBd2aocbaez:ljjjbhAdnalTmbaChOaahealhYinaecwfIdbh8SaeclfIdbhIaAaOydbcltfgHaeIdbaHIdbMUdbaHclfgKaIaKIdbMUdbaHcwfgKa8SaKIdbMUdbaHcxfgHaHIdbJbbjZMUdbaOclfhOaecxfheaYcufgYmbkkdnaJTmbaAheaJhHinaecxfgOIdbh8SaOcbBdbaeaeIdbJbbbbJbbjZa8S:va8SJbbbb9BEg8SNUdbaeclfgOa8SaOIdbNUdbaecwfgOa8SaOIdbNUdbaeczfheaHcufgHmbkkdnalTmbaChOaahealhYinaAaOydbcltfgHcxfgKaecwfIdbaHcwfIdb:tg8Sa8SNaeIdbaHIdb:tg8Sa8SNaeclfIdbaHclfIdb:tg8Sa8SNMMg8SaKIdbgIaIa8S9DEUdbaOclfhOaecxfheaYcufgYmbkkdnaJmbcbhJJFFuuh8ZxekaAcxfheaAhHaJhOinaHaeIdbUdbaeczfheaHclfhHaOcufgOmbkJFFuuh8ZaAheaJhHinaeIdbg8Sa8Za8Za8S9EEh8ZaeclfheaHcufgHmbkkasydlh9ednalTmba9eclfhea9eydbhAaXhHalhYcbhOincbaeydbgKaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaKhAaYcufgYmbkaOce4h8Fkcuada8F9RcifgTcx2aTc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhDascxfasyd2gecdtfaDBdbasaecefBd2cuaTcdtaTcFFFFi0Ecbyd;S1jjbHjjjjbbhSascxfasyd2gecdtfaSBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Mascxfasyd2gecdtfa8MBdbasaecefBd2alcbyd;S1jjbHjjjjbbh9hascxfasyd2gecdtfa9hBdbasaecefBd2axaxNa8NJbbjZamclGEg83a83N:vhcJbbbbhndnadak9nmbdnaTci6mba8Jclth9iaDcwfh6JbbbbhBJbbbbhninasclfabadalaQz:cjjjbabh8FcbhEcbh5inaba5cdtfh3cbheindnaQa8FaefydbgOcdtgifydbgYaQa3aec:W1jjbfydbcdtfydbgHcdtgwfydbgKSmbaXaHfRbbgLcv2aXaOfRbbgAfc;a1jjbfRbbg8AaAcv2aLfg8Lc;a1jjbfRbbg8KVcFeGTmbdnaKaY9nmba8Lcj1jjbfRbbcFeGmekaAcufhYdnaAaL9hmbaYcFeGce0mbahaifydbaH9hmekdndnaAclSmbaLcl9hmekdnaYcFeGce0mbahaifydbaH9hmdkaLcufcFeGce0mbagawfydbaO9hmekaDaEcx2fgAaHaOa8KcFeGgYEBdlaAaOaHaYEBdbaAaYa8AGcb9hBdwaEcefhEkaeclfgecx9hmbkdna5cifg5ad9pmba8Fcxfh8FaEcifaT9nmekkaETmdcbhiinJbbbbJbbjZaqaQaDaicx2fgAydlgKaAydbgYaAydwgHEgLcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaYaKaHEg8Fcx2fgHIdwgRNaeIdzaHIdbg8PNaeIdaMg8Sa8SMMaRNaeIdlaHIdlg8RNaeIdCaRNaeId3Mg8Sa8SMMa8RNaeIdba8PNaeIdxa8RNaeIdKMg8Sa8SMMa8PNaeId8KMMM:lNh80JbbbbJbbjZaqaQaYcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaKcx2fgHIdwg8VNaeIdzaHIdbg8WNaeIdaMg8Sa8SMMa8VNaeIdlaHIdlg8UNaeIdCa8VNaeId3Mg8Sa8SMMa8UNaeIdba8WNaeIdxa8UNaeIdKMg8Sa8SMMa8WNaeId8KMMM:lNh8YaAcwfh3aAclfhwdna8JTmbavaYc8S2fgOIdwa8VNaOIdza8WNaOIdaMg8Sa8SMMa8VNaOIdla8UNaOIdCa8VNaOId3Mg8Sa8SMMa8UNaOIdba8WNaOIdxa8UNaOIdKMg8Sa8SMMa8WNaOId8KMMMh8SayaKa8J2cdtfhHaraYa8J2cltfheaOIdyh8Xa8JhOinaHIdbgIaIa8XNaecxfIdba8VaecwfIdbNa8WaeIdbNa8UaeclfIdbNMMMgIaIM:tNa8SMh8SaHclfhHaeczfheaOcufgOmbkavaLc8S2fgOIdwaRNaOIdza8PNaOIdaMgIaIMMaRNaOIdla8RNaOIdCaRNaOId3MgIaIMMa8RNaOIdba8PNaOIdxa8RNaOIdKMgIaIMMa8PNaOId8KMMMhIaya8Fa8J2cdtfhHaraLa8J2cltfheaOIdyh8Wa8JhOinaHIdbg8Va8Va8WNaecxfIdbaRaecwfIdbNa8PaeIdbNa8RaeclfIdbNMMMg8Va8VM:tNaIMhIaHclfhHaeczfheaOcufgOmbka80aI:lMh80a8Ya8S:lMh8YkawaKa8Fa8Ya809FgeEBdbaAaYaLaeEBdba3a8Ya80aeEUdbaicefgiaE9hmbkasc;Wbfcbcj;qbz:ljjjb8Aa6heaEhHinasc;WbfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinasc;WbfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea6hHinasc;WbfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdbaSaOcdtfaeBdbaHcxfhHaEaecefge9hmbkadak9RgOci9Uh9kdnalTmbcbhea8MhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh0a9hcbalz:ljjjbh9maOcO9Uh9na9kce4h9oasydwh9pcbh8KcbhwdninaDaSawcdtfydbcx2fg3Idwg8Sac9Emea8Ka9k9pmeJFFuuhIdna9oaE9pmbaDaSa9ocdtfydbcx2fIdwJbb;aZNhIkdna8SaI9ETmba8San9ETmba8Ka9n0mdkdna9maQa3ydlgicdtg9qfydbgAfg9rRbba9maQa3ydbgLcdtg9sfydbgHfg9tRbbVmbaXaLfRbbh9udna9eaHcdtfgeclfydbgOaeydbgeSmbaOae9RhKa9paecitfheaaaAcx2fg8Lcwfh5a8Lclfh9vaaaHcx2fg8Acwfh9wa8Aclfh9xcbhHceh8Fdnindna8MaeydbcdtfydbgOaASmba8MaeclfydbcdtfydbgYaASmbaOaYSmbaaaYcx2fgYIdbaaaOcx2fgOIdbg8V:tg8Sa9xIdbaOIdlgR:tg8WNa8AIdba8V:tg8UaYIdlaR:tgIN:tg8Pa8Sa9vIdbaR:tg8XNa8LIdba8V:tg80aIN:tgRNaIa9wIdbaOIdwg8R:tg8YNa8WaYIdwa8R:tg8VN:tg8WaIa5Idba8R:tg81Na8Xa8VN:tgINa8Va8UNa8Ya8SN:tg8Ra8Va80Na81a8SN:tg8SNMMa8Pa8PNa8Wa8WNa8Ra8RNMMaRaRNaIaINa8Sa8SNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaK6h8FaKaH9hmbkka8FceGTmba9ocefh9oxeka3cwfhHdndndndna9uc9:fPdebdkaLheina8MaecdtgefaiBdba8EaefydbgeaL9hmbxikkdnagahaha9sfydbaiSEa8Ea9sfydbgLcdtfydbgecu9hmba8Ea9qfydbheka8Ma9sfaiBdbaehika8MaLcdtfaiBdbka9tce86bba9rce86bbaHIdbg8Sanana8S9DEhna0cefh0cecda9uceSEa8Kfh8KkawcefgwaE9hmbkka0TmddnalTmbcbhKcbhiindna8MaicdtgefydbgOaiSmbaQaOcdtfydbh8FdnaiaQaefydb9hg3mbaqa8Fc8S2fgeaqaic8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyka8JTmbavaOc8S2fgeavaic8S2gwfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9iaO2hLarhHa8JhAinaHaLfgeaHaKfgOIdbaeIdbMUdbaeclfgYaOclfIdbaYIdbMUdbaecwfgYaOcwfIdbaYIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbka3mbJbbbbJbbjZaqawfgeIdyg8S:va8SJbbbb9BEaeIdwaaa8Fcx2fgHIdwg8SNaeIdzaHIdbgINaeIdaMg8Va8VMMa8SNaeIdlaHIdlg8VNaeIdCa8SNaeId3Mg8Sa8SMMa8VNaeIdbaINaeIdxa8VNaeIdKMg8Sa8SMMaINaeId8KMMM:lNg8SaBaBa8S9DEhBkaKa9ifhKaicefgial9hmbkcbhHahheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOahaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHagheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOagaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkkaBana8JEhBcbhYabhecbhKindna8MaeydbcdtfydbgHa8MaeclfydbcdtfydbgOSmbaHa8MaecwfydbcdtfydbgASmbaOaASmbabaYcdtfgLaHBdbaLcwfaABdbaLclfaOBdbaYcifhYkaecxfheaKcifgKad6mbkdndna9cTmbaYak9nmba8ZaB9FTmbcbhdabhecbhHindnaoaCaeydbgOcdtfydbcdtfIdbaB9ETmbabadcdtfgAaOBdbaAclfaeclfydbBdbaAcwfaecwfydbBdbadcifhdkaecxfheaHcifgHaY6mbkJFFuuh8ZaJTmeaoheaJhHJFFuuh8SinaeIdbgIa8Sa8SaI9EEg8Va8SaIaB9EgOEh8Sa8Va8ZaOEh8ZaeclfheaHcufgHmbxdkkaYhdkadak0mbxdkkasclfabadalaQz:cjjjbkdndnadak0mbadhOxekdna9cmbadhOxekdna8Zac9FmbadhOxekina8ZJbb;aZNg8Saca8Sac9DEh8VJbbbbh8SdnaJTmbaoheaJhHinaeIdbgIa8SaIa8V9FEa8SaIa8S9EEh8SaeclfheaHcufgHmbkkcbhOabhecbhHindnaoaCaeydbgAcdtfydbcdtfIdba8V9ETmbabaOcdtfgYaABdbaYclfaeclfydbBdbaYcwfaecwfydbBdbaOcifhOkaecxfheaHcifgHad6mbkJFFuuh8ZdnaJTmbaoheaJhHJFFuuhIinaeIdbgRaIaIaR9EEg8PaIaRa8V9EgAEhIa8Pa8ZaAEh8ZaeclfheaHcufgHmbkkdnaOad9hmbadhOxdka8Sanana8S9DEhnaOak9nmeaOhda8Zac9FmbkkdnamcjjjjlGTmbazmbaOTmbcbhQabheinaXaeydbgAfRbbc3thKaecwfgLydbhHdndnahaAcdtg8FfydbaeclfgiydbgCSmbcbhYagaCcdtfydbaA9hmekcjjjj94hYkaeaKaYVaAVBdbaXaCfRbbc3thKdndnahaCcdtfydbaHSmbcbhYagaHcdtfydbaC9hmekcjjjj94hYkaiaKaYVaCVBdbaXaHfRbbc3thYdndnahaHcdtfydbaASmbcbhCaga8FfydbaH9hmekcjjjj94hCkaLaYaCVaHVBdbaecxfheaQcifgQaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa83an:rNUdbkasyd2gecdtascxffc98fhHdninaeTmeaHydbcbyd;O1jjbH:bjjjbbaHc98fhHaecufhexbkkasc;W;qbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk;Podvuv998Jjjjjbca9RgvcFFF;7rBd3av9cFFF;7;3FF:;Fb83dCavcFFF97Bdzav9cFFF;7FFF:;u83dwdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavcCfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdwavIdCgk:tgqaqJbbbb9DEgqavIdxavIdKgx:tgmamaq9DEgqavIdzavId3gm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:nCoDud99rue99lul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbgqBdxawceBd2aqaeadaicbz:djjjb8AawcuadcdtadcFFFFi0Egkcbyd;S1jjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd;S1jjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbh5cbh8Eindna3axa8EcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:ljjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8FaD:Y:tgaa8FaK:Y:tgha5:ZggaH:tNNNaOaH:tahNa8Aag:tNa8AaH:taaNagaO:tNM:va8FMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd;S1jjbHjjjjbbg8EBdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbhDcbh5inaxa5cdtgYfydbgCcm4aC7c:v;t;h;Ev2gics4ai7hecbhidndnina3aeaAGgmcdtfgEydbgecuSmednaxaecdtgEfydbaCSmbaicefgiamfheaiaA9nmekka8EaEfydbhixekaEa5BdbaDhiaDcefhDka8EaYfaiBdba5cefg5ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ljjjb8AcbhDcbhekawaecbyd;S1jjbHjjjjbbgeBd3awcvBd2aecbaiz:ljjjbhEavcd4hxdnadTmbdnalTmbaxcdth3a8EhCalheaqhmadhAinaEaCydbc32fgiamIdbaiIdbMUdbaiamclfIdbaiIdlMUdlaiamcwfIdbaiIdwMUdwaiaeIdbaiIdxMUdxaiaeclfIdbaiIdzMUdzaiaecwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaea3fheamcxfhmaAcufgAmbxdkka8EhmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd;S1jjbHjjjjbbgeBdaawcoBd2awaicbyd;S1jjbHjjjjbbg3Bd8KaecFeaYz:ljjjbh5dnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8Aaxcdthxalheina8Aaec;C1jjbalEgmIdwaEa8EydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka8Eclfh8EaeaxfheaqcxfhqadaCcefgC9hmbkkaba5aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd;O1jjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Odieui99iu8Jjjjjbca9RgicFFF;7rBd3ai9cFFF;7;3FF:;Fb83dCaicFFF97Bdzai9cFFF;7FFF:;u83dwdndnaembJbbjFhlJbbjFhvJbbjFhoxekadcd4cdthrcbhwincbhdinaicCfadfgDabadfIdbglaDIdbgvaval9EEUdbaicwfadfgDalaDIdbgvaval9DEUdbadclfgdcx9hmbkabarfhbawcefgwae9hmbkaiIdzaiId3:thoaiIdxaiIdK:thvaiIdwaiIdC:thlkJbbbbalalJbbbb9DEglavaval9DEglaoaoal9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcifc98GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcrfc94GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;W1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;W1jjbfgdBd;W1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:bedbcjwk9Oeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc;OwkxebbbdbbbjNbb"), {}).then(function(r) {
|
|
2485
|
-
(
|
|
2486
|
+
(h = r.instance).exports.__wasm_call_ctors();
|
|
2486
2487
|
});
|
|
2487
2488
|
function t(r) {
|
|
2488
2489
|
if (!r) throw new Error("Assertion failed");
|
|
@@ -2490,28 +2491,28 @@ var Vt = function() {
|
|
|
2490
2491
|
function A(r) {
|
|
2491
2492
|
return new Uint8Array(r.buffer, r.byteOffset, r.byteLength);
|
|
2492
2493
|
}
|
|
2493
|
-
function i(r, o,
|
|
2494
|
-
var f =
|
|
2495
|
-
C.set(A(
|
|
2496
|
-
var B = r(I, m,
|
|
2497
|
-
new Uint8Array(
|
|
2494
|
+
function i(r, n, o, c, b, g, l, d) {
|
|
2495
|
+
var f = h.exports.sbrk, I = f(4 * d), m = f(o * c), u = f(o * g), C = new Uint8Array(h.exports.memory.buffer);
|
|
2496
|
+
C.set(A(n), m), b && C.set(A(b), u);
|
|
2497
|
+
var B = r(I, m, o, c, u, g, l, d);
|
|
2498
|
+
new Uint8Array(h.exports.memory.buffer);
|
|
2498
2499
|
var w = new Uint32Array(B);
|
|
2499
2500
|
return A(w).set(C.subarray(I, I + 4 * B)), f(I - f(0)), w;
|
|
2500
2501
|
}
|
|
2501
2502
|
var s = { LockBorder: 1, Sparse: 2, ErrorAbsolute: 4, Prune: 8, _InternalDebug: 1 << 30 };
|
|
2502
2503
|
})(), function() {
|
|
2503
|
-
var
|
|
2504
|
+
var h, e = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
|
|
2504
2505
|
if (typeof WebAssembly != "object") return { supported: !1 };
|
|
2505
2506
|
var a = WebAssembly.instantiate(function(s) {
|
|
2506
|
-
for (var r = new Uint8Array(s.length),
|
|
2507
|
-
var
|
|
2508
|
-
r[
|
|
2507
|
+
for (var r = new Uint8Array(s.length), n = 0; n < s.length; ++n) {
|
|
2508
|
+
var o = s.charCodeAt(n);
|
|
2509
|
+
r[n] = o > 96 ? o - 97 : o > 64 ? o - 39 : o + 4;
|
|
2509
2510
|
}
|
|
2510
|
-
var
|
|
2511
|
-
for (
|
|
2512
|
-
return r.buffer.slice(0,
|
|
2511
|
+
var c = 0;
|
|
2512
|
+
for (n = 0; n < s.length; ++n) r[c++] = r[n] < 60 ? e[r[n]] : 64 * (r[n] - 60) + r[++n];
|
|
2513
|
+
return r.buffer.slice(0, c);
|
|
2513
2514
|
}("b9H79Tebbbefx9Geueu9Geub9Gbb9Giuuueu9Gkuuuuuuuuuu99eu9Gvuuuuueu9Gkuuuuuuuuu9999eu9Gruuuuuuub9Gkuuuuuuuuuuueu9Gouuuuuub9Giuuub9GluuuubiOHdilvorwDqrkbiibeilve9Weiiviebeoweuec:q:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bd39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;L9kHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:oAlPue99eux998Jjjjjbc:We9Rgk8Kjjjjbakc;mbfcbc;Kbz:njjjb8AakcuaocdtgxaocFFFFi0Egmcbyd:e1jjbHjjjjbbgPBd9makceBd:SeakaPBdnakamcbyd:e1jjbHjjjjbbgsBd9qakcdBd:SeakasBd9eakcualcdtalcFFFFi0Ecbyd:e1jjbHjjjjbbgzBd9uakazBd9iakciBd:SeaPcbaxz:njjjbhHalci9UhOdnalTmbaihPalhAinaHaPydbcdtfgCaCydbcefBdbaPclfhPaAcufgAmbkkdnaoTmbcbhPashAaHhCaohXinaAaPBdbaAclfhAaCydbaPfhPaCclfhCaXcufgXmbkkdnalci6mbcbhPaihAinaAcwfydbhCaAclfydbhXasaAydbcdtfgQaQydbgQcefBdbazaQcdtfaPBdbasaXcdtfgXaXydbgXcefBdbazaXcdtfaPBdbasaCcdtfgCaCydbgCcefBdbazaCcdtfaPBdbaAcxfhAaOaPcefgP9hmbkkdnaoTmbaHhAashPaohCinaPaPydbaAydb9RBdbaAclfhAaPclfhPaCcufgCmbkkakamcbyd:e1jjbHjjjjbbgPBd9yakclBd:SeaPaHaxz:mjjjbhmakaOcbyd:e1jjbHjjjjbbgPBd9CakcvBd:SeaPcbaOz:njjjbhLakcuaOcK2alcjjjjd0Ecbyd:e1jjbHjjjjbbgKBd9GakcoBd:SeJbbbbhYdnalci6g8Ambarcd4hxaihAaKhPaOhrJbbbbhEinavaAclfydbax2cdtfgCIdlh3avaAydbax2cdtfgXIdlhYavaAcwfydbax2cdtfgQIdlh5aCIdwh8EaXIdwh8FaQIdwhaaPaCIdbghaXIdbggMaQIdbg8JMJbbnn:vUdbaPclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8KaCIdwh8LaXIdwh8MaPcxfa3aY:tg3aaa8F:tgaNa5aY:tg5a8Ea8F:tg8EN:tgYJbbbbJbbjZahag:tgha5Na8Jag:tgga3N:tg8Fa8FNaYaYNa8EagNaaahN:tgYaYNMM:rgg:vagJbbbb9BEg3NUdbaPczfaYa3NUdbaPcCfa8Fa3NUdbaPcwfa8Ka8Ma8LMMJbbnn:vUdbaEagMhEaAcxfhAaPcKfhParcufgrmbkaEaO:Z:vJbbbZNhYkakcuaOcdtalcFFFF970Ecbyd:e1jjbHjjjjbbgCBd9KakcrBd:SeaYaD:ZN:rhYdna8AmbcbhPaChAinaAaPBdbaAclfhAaOaPcefgP9hmbkkaYJbbbZNh8MakcuaOcltalcFFFFd0Ecbyd:e1jjbHjjjjbbg8ABd9OakcwBd:Secba8AaKaCaOz:djjjb8Aakaocbyd:e1jjbHjjjjbbgPBd2aPcFeaoz:njjjbhrakc8Wfcwf9cb83ibak9cb83i8WcbhPJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgcbhlinJbbbbh3dnaPTmbJbbjZaP:Z:vh3kaka8Ea3NgaUdaaka5a3NghUd3akaEa3Ng8JUdKJbbbbh3dnagagNaYaYNa8Fa8FNMMg8KJbbbb9BmbJbbjZa8K:r:vh3kakaga3NUd8Saka8Fa3NUdyakaYa3NUd8Kdndndnakyd8WgQakydUgAakcKfaeaiakc;abfaKamara8Maqz:ejjjbgCcuSmbdnaPaD9pmbaAaraiaCcx2fgXydbfRbbcFeSfaraXclfydbfRbbcFeSfaraXcwfydbfRbbcFeSfaw9nmdkaQaAcbaeaiakc;abfaKamara8MJbbbbz:ejjjbgCcu9hmekakaaUdCakahUdzaka8JUdxakcuBdwakcFFF;7rBdla8AcbaKaLakcxfakcwfakclfz:fjjjbakydwgCcuSmekdnakc8WfaiaCcx2fgOydbgPaOclfydbgAaOcwfydbgXarabaeadalawaDz:gjjjbTmbalcefhlJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgkamaPcdtfgPaPydbcufBdbamaAcdtfgPaPydbcufBdbamaXcdtfgPaPydbcufBdbcbhXinazasaOaXcdtfydbcdtgAfydbcdtfgxhPaHaAfgvydbgQhAdnaQTmbdninaPydbaCSmeaPclfhPaAcufgATmdxbkkaPaxaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbkaKaCcK2fgPIdbh3aPIdlhaaPIdwhhaPIdxh8JaPIdzh8KaPIdCh8LaLaCfce86bbaga8LMhga8Fa8KMh8FaYa8JMhYa8EahMh8Ea5aaMh5aEa3MhEakyd88hPxekkdnaPTmbdnakyd80gAaPci2fgCciGTmbadaCfcbaPaAcu7fciGcefz:njjjb8AkabalcltfgPak8Pi8W83dbaPcwfakc8Wfcwf8Pib83dbalcefhlkcahPdninaPc98Smeakc;mbfaPfydbcbydj1jjbH:bjjjbbaPc98fhPxbkkakc:Wef8Kjjjjbalk;3vivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbaeabcitfgrarydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark;Bloeue99vue99Due99dndnaembcuhkxekJbbjZaq:thxaiabcdtfhmavydbhPavydlhsavydwhzcbhHJFFuuhOcvhbcuhkindnaPamaHcdtfydbcdtgvfydbgATmbazasavfydbcdtfhiindndnawalaiydbgCcx2fgvclfydbgXfRbbcFeSawavydbgQfRbbcFeSfawavcwfydbgLfRbbcFeSfgKmbcbhvxekcehvaraQcdtfydbgYceSmbcehvaraXcdtfydbg8AceSmbcehvaraLcdtfydbgEceSmbdna8AcdSaYcdSfaEcdSfcd6mbaKcefhvxekaKcdfhvkdnavab9kmbdndnadTmbaoaCcK2fgQIdwadIdw:tg3a3NaQIdbadIdb:tg3a3NaQIdladIdl:tg3a3NMM:raD:vaxNJbbjZMJ9VO:d86JbbjZaQIdCadIdCNaQIdxadIdxNaQIdzadIdzNMMaqN:tg3a3J9VO:d869DENh3xekaraQcdtfydbaraXcdtfydbfaraLcdtfydbfc99f:Zh3kaCakavab6a3aO9DVgQEhkavabaQEhba3aOaQEhOkaiclfhiaAcufgAmbkkaHcefgHae9hmbkkakk;bddlue99dndndnabaecitfgrydlgwciGgDci9hmbarclfhqxekinabcbawcd4gwalaDcdtfIdbabaecitfIdb:tgkJbbbb9FEgDaecefgefadaialavaoz:fjjjbak:laoIdb9FTmdabaDaw7aefgecitfgrydlgwciGgDci9hmbkarclfhqkabaecitfhecuhbindnaiaeydbgDfRbbmbadaDcK2fgrIdwalIdw:tgkakNarIdbalIdb:tgkakNarIdlalIdl:tgkakNMM:rgkaoIdb9DTmbaoakUdbavaDBdbaqydbhwkaecwfheabcefgbawcd46mbkkk;yleoudnaladfgkRbbcFeSalaefgxRbbgmcFeSfabydwgPfalaifgsRbbcFeSfaD0abydxaq9pVgzce9hmbavawcltfgmab8Pdb83dbamcwfabcwfgm8Pdb83dbdndnamydbmbcbhqxekcbhDaohminalamabydbcdtfydbfcFe86bbamclfhmaDcefgDabydwgq6mbkkdnabydxglci2gDabydlgmfgPciGTmbaraPfcbalamcu7fciGcefz:njjjb8Aabydxci2hDabydlhmabydwhqkab9cb83dwababydbaqfBdbabaDcifc98GamfBdlaxRbbhmcbhPkdnamcFeGcFe9hmbaxaP86bbababydwgmcefBdwaoabydbcdtfamcdtfaeBdbkdnakRbbcFe9hmbakabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfadBdbkdnasRbbcFe9hmbasabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfaiBdbkarabydlfabydxci2faxRbb86bbarabydlfabydxci2fcefakRbb86bbarabydlfabydxci2fcdfasRbb86bbababydxcefBdxazk;Ckovud99euv99eul998Jjjjjbc:G;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:G:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaocafawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeao9cb83iKao9cb83izaoczfaocafawci2z1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:G:qefawz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:G:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:G:qefheaocafhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabazUd3abc8KfaxUdbabcafasUdbabcKfaCaxaPN:tUdbabcCfaXasaPN:tUdbabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabc8Ufae86bbdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabcRfav86bbdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:G;aef8Kjjjjbk:mvdouq99cbhi8Jjjjjbca9RglczfcwfcbBdbal9cb83izalcwfcbBdbal9cb83ibdnadTmbcbhvinaeaifhocbhrinalczfarfgwavawydbgwaoarfIdbgDaearawcx2ffIdb9DEBdbalarfgwavawydbgwaDaearawcx2ffIdb9EEBdbarclfgrcx9hmbkaicxfhiavcefgvad9hmbkkJbbbbhDcbhrcbhicbhvinaealarfydbcx2fgwIdwaealczfarfydbcx2fgoIdw:tgqaqNawIdbaoIdb:tgqaqNawIdlaoIdl:tgqaqNMMgqaDaqaD9EgwEhDavaiawEhiarclfhravcefgvci9hmbkaealczfaicdtgvfydbcx2fgrIdwaealavfydbcx2fglIdwMJbbbZNhqarIdlalIdlMJbbbZNhkarIdbalIdbMJbbbZNhxaD:rJbbbZNhDdnadTmbindnaecwfIdbgmaq:tgPaPNaeIdbgsax:tgPaPNaeclfIdbgzak:tgPaPNMMgPaDaDN9ETmbaqaDaP:rgH:vJbbbZNJbbbZMgPNamJbbjZaP:tgONMhqakaPNazaONMhkaxaPNasaONMhxaDaHMJbbbZNhDkaecxfheadcufgdmbkkabaDUdxabaqUdwabakUdlabaxUdbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Ylequ8Jjjjjbcjx9Rgl8Kjjjjbcbhvalcjqfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjqfaDcefRbbfRbb9RcFeGci6aoalcjqfaDRbbfRbb9RcFeGci6faoalcjqfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjqffaocefgo86bbaxalcjqffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjqffao86bbarcifhravcefgvad9hmbkalcFeaiz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkfgwRbbgDcFe9hmbawax86bbaocjdfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjdfaDz:mjjjb8Aalcjxf8Kjjjjbk9teiucbcbyd11jjbgeabcifc98GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd11jjbgeabcrfc94GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd11jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd11jjbfgdBd11jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkkAebcjwkxebbbdbbbzNbb"), {}).then(function(s) {
|
|
2514
|
-
(
|
|
2515
|
+
(h = s.instance).exports.__wasm_call_ctors();
|
|
2515
2516
|
});
|
|
2516
2517
|
function t(s) {
|
|
2517
2518
|
if (!s) throw new Error("Assertion failed");
|
|
@@ -2520,16 +2521,16 @@ var Vt = function() {
|
|
|
2520
2521
|
return new Uint8Array(s.buffer, s.byteOffset, s.byteLength);
|
|
2521
2522
|
}
|
|
2522
2523
|
function i(s) {
|
|
2523
|
-
var r = new Float32Array(
|
|
2524
|
+
var r = new Float32Array(h.exports.memory.buffer, s, 12);
|
|
2524
2525
|
return { centerX: r[0], centerY: r[1], centerZ: r[2], radius: r[3], coneApexX: r[4], coneApexY: r[5], coneApexZ: r[6], coneAxisX: r[7], coneAxisY: r[8], coneAxisZ: r[9], coneCutoff: r[10] };
|
|
2525
2526
|
}
|
|
2526
2527
|
}();
|
|
2527
|
-
let
|
|
2528
|
-
class
|
|
2528
|
+
let ae = 0;
|
|
2529
|
+
class Ti {
|
|
2529
2530
|
constructor(e) {
|
|
2530
|
-
if (this.downloadParallelism = e.downloadParallelism == null ? 8 : e.downloadParallelism, this.timeout = e.timeout != null ? e.timeout : 5e3, this.renderer = e.renderer, this.zUpToYUpMatrix = new E.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.proxy = e.proxy, e && (this.meshCallback = e.meshCallback, this.pointsCallback = e.pointsCallback, e.maxCachedItems != null && (this.maxCachedItems = e.maxCachedItems)), this.gltfLoader = new
|
|
2531
|
+
if (this.downloadParallelism = e.downloadParallelism == null ? 8 : e.downloadParallelism, this.timeout = e.timeout != null ? e.timeout : 5e3, this.renderer = e.renderer, this.zUpToYUpMatrix = new E.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.proxy = e.proxy, e && (this.meshCallback = e.meshCallback, this.pointsCallback = e.pointsCallback, e.maxCachedItems != null && (this.maxCachedItems = e.maxCachedItems)), this.gltfLoader = new St(), e && e.dracoLoader) this.gltfLoader.setDRACOLoader(e.dracoLoader), this.hasDracoLoader = !0;
|
|
2531
2532
|
else {
|
|
2532
|
-
const a = new
|
|
2533
|
+
const a = new Ft();
|
|
2533
2534
|
a.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"), this.dracoLoader = a, this.gltfLoader.setDRACOLoader(a), this.gltfLoader.hasDracoLoader = !0;
|
|
2534
2535
|
}
|
|
2535
2536
|
if (e && e.ktx2Loader) this.gltfLoader.setKTX2Loader(e.ktx2Loader), this.hasKTX2Loader = !0;
|
|
@@ -2537,11 +2538,11 @@ class Ni {
|
|
|
2537
2538
|
const a = new L();
|
|
2538
2539
|
a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(e.renderer), this.ktx2loader = a, this.gltfLoader.setKTX2Loader(a), this.gltfLoader.hasKTX2Loader = !0;
|
|
2539
2540
|
}
|
|
2540
|
-
this.gltfLoader.setMeshoptDecoder(
|
|
2541
|
+
this.gltfLoader.setMeshoptDecoder(zt), this.hasMeshOptDecoder = !0, this.b3dmDecoder = new xt(this.gltfLoader), this.splatsDecoder = new zA(this.gltfLoader, this.renderer), this.cache = new wt(), this.register = {}, this.ready = [], this.downloads = [], this.nextReady = [], this.nextDownloads = [];
|
|
2541
2542
|
}
|
|
2542
2543
|
update() {
|
|
2543
2544
|
const e = this;
|
|
2544
|
-
|
|
2545
|
+
ae < e.downloadParallelism && e._download(), e._loadBatch();
|
|
2545
2546
|
}
|
|
2546
2547
|
_scheduleDownload(e) {
|
|
2547
2548
|
this.downloads.unshift(e);
|
|
@@ -2568,17 +2569,17 @@ class Ni {
|
|
|
2568
2569
|
}
|
|
2569
2570
|
_getNextDownloads() {
|
|
2570
2571
|
let e = Number.POSITIVE_INFINITY, a = -1;
|
|
2571
|
-
for (let r = this.downloads.length - 1; r >= 0; r--) this.downloads[r].distanceFunction || this.nextDownloads.push(this.downloads.splice(r, 1)[0]);
|
|
2572
|
+
for (let r = this.downloads.length - 1; r >= 0; r--) this.downloads[r].shouldDoDownload() ? this.downloads[r].distanceFunction || this.nextDownloads.push(this.downloads.splice(r, 1)[0]) : this.downloads.splice(r, 1);
|
|
2572
2573
|
if (this.nextDownloads.length > 0) return;
|
|
2573
2574
|
let t, A = 0, i = Number.MAX_SAFE_INTEGER, s = -1;
|
|
2574
2575
|
for (let r = this.downloads.length - 1; r >= 0; r--) {
|
|
2575
|
-
const
|
|
2576
|
-
|
|
2576
|
+
const n = this.downloads[r].distanceFunction();
|
|
2577
|
+
n <= e && (e = n, a = r), A = Math.max(this.downloads[r].level), this.downloads[r].loadingStrategy != "IMMEDIATE" && this.downloads[r].level < i && (i = this.downloads[r].level, s = r);
|
|
2577
2578
|
}
|
|
2578
2579
|
if (A > i + 4 ? t = this.downloads.splice(s, 1).pop() : a >= 0 && (t = this.downloads.splice(a, 1).pop()), t) {
|
|
2579
2580
|
this.nextDownloads.push(t);
|
|
2580
2581
|
const r = t.getSiblings();
|
|
2581
|
-
for (let
|
|
2582
|
+
for (let n = this.downloads.length - 1; n >= 0; n--) r.map((o) => o.uuid).includes(this.downloads[n].uuid) && this.nextDownloads.push(this.downloads.splice(n, 1).pop());
|
|
2582
2583
|
}
|
|
2583
2584
|
}
|
|
2584
2585
|
_getNextReady() {
|
|
@@ -2597,41 +2598,41 @@ class Ni {
|
|
|
2597
2598
|
}
|
|
2598
2599
|
}
|
|
2599
2600
|
}
|
|
2600
|
-
get(e, a, t, A, i, s, r, o,
|
|
2601
|
-
const l = this,
|
|
2601
|
+
get(e, a, t, A, i, s, r, n, o, c, b, g) {
|
|
2602
|
+
const l = this, d = nt(t), f = new AbortController();
|
|
2602
2603
|
if (e.signal.addEventListener("abort", () => {
|
|
2603
|
-
l.register[
|
|
2604
|
+
l.register[d] && Object.keys(l.register[d]).length != 0 || f.abort("user abort");
|
|
2604
2605
|
}), !(t.includes(".b3dm") || t.includes(".json") || t.includes(".gltf") || t.includes(".glb"))) return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");
|
|
2605
|
-
if (l.register[
|
|
2606
|
-
else
|
|
2606
|
+
if (l.register[d] || (l.register[d] = {}), l.register[d][a] && console.error(" a tile should only be loaded once"), l.register[d][a] = A, l.cache.get(d)) this._meshReceived(l.cache, l.register, d, i, s, r, a);
|
|
2607
|
+
else {
|
|
2607
2608
|
let I;
|
|
2608
2609
|
t.includes(".b3dm") ? I = () => {
|
|
2609
2610
|
var m;
|
|
2610
|
-
m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }),
|
|
2611
|
+
m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), ae++, m().then((u) => {
|
|
2611
2612
|
if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
|
|
2612
2613
|
return u.arrayBuffer();
|
|
2613
2614
|
}).then((u) => this.b3dmDecoder.parseB3DM(u, (C) => {
|
|
2614
|
-
l.meshCallback(C,
|
|
2615
|
-
},
|
|
2616
|
-
l.cache.put(
|
|
2615
|
+
l.meshCallback(C, b);
|
|
2616
|
+
}, o, c)).then((u) => {
|
|
2617
|
+
l.cache.put(d, u), this._meshReceived(l.cache, l.register, d, i, s, r, a), l._checkSize();
|
|
2617
2618
|
}).catch((u) => {
|
|
2618
2619
|
}).finally(() => {
|
|
2619
|
-
|
|
2620
|
+
ae--;
|
|
2620
2621
|
});
|
|
2621
2622
|
} : t.includes(".glb") || t.includes(".gltf") ? I = g ? () => {
|
|
2622
2623
|
var m;
|
|
2623
|
-
m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }),
|
|
2624
|
+
m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), ae++, m().then((u) => {
|
|
2624
2625
|
if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
|
|
2625
2626
|
return u.arrayBuffer();
|
|
2626
|
-
}).then((u) => this.splatsDecoder.parseSplats(u,
|
|
2627
|
-
l.cache.put(
|
|
2627
|
+
}).then((u) => this.splatsDecoder.parseSplats(u, o, c, g)).then((u) => {
|
|
2628
|
+
l.cache.put(d, u), l._meshReceived(l.cache, l.register, d, i, s, r, a), l._checkSize();
|
|
2628
2629
|
}).catch((u) => {
|
|
2629
2630
|
}).finally(() => {
|
|
2630
|
-
|
|
2631
|
+
ae--;
|
|
2631
2632
|
});
|
|
2632
2633
|
} : () => {
|
|
2633
2634
|
var m;
|
|
2634
|
-
m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }),
|
|
2635
|
+
m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), ae++, m().then((u) => {
|
|
2635
2636
|
if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
|
|
2636
2637
|
return u.arrayBuffer();
|
|
2637
2638
|
}).then(async (u) => {
|
|
@@ -2642,36 +2643,28 @@ class Ni {
|
|
|
2642
2643
|
}, 10);
|
|
2643
2644
|
});
|
|
2644
2645
|
}(this.gltfLoader), this.gltfLoader.parse(u, null, (C) => {
|
|
2645
|
-
C.scene.asset = C.asset,
|
|
2646
|
-
B.isMesh && (
|
|
2647
|
-
}), l.cache.put(
|
|
2646
|
+
C.scene.asset = C.asset, o && C.scene.applyMatrix4(this.zUpToYUpMatrix), C.scene.traverse((B) => {
|
|
2647
|
+
B.isMesh && (c && B.applyMatrix4(this.zUpToYUpMatrix), l.meshCallback && l.meshCallback(B, b)), B.isPoints && l.pointsCallback && l.pointsCallback(B, b);
|
|
2648
|
+
}), l.cache.put(d, C.scene), l._meshReceived(l.cache, l.register, d, i, s, r, a), l._checkSize();
|
|
2648
2649
|
});
|
|
2649
2650
|
}).catch((u) => {
|
|
2650
2651
|
u !== "user abort" && u.code;
|
|
2651
2652
|
}).finally(() => {
|
|
2652
|
-
|
|
2653
|
+
ae--;
|
|
2653
2654
|
});
|
|
2654
2655
|
} : t.includes(".json") && (I = () => {
|
|
2655
2656
|
var m;
|
|
2656
|
-
m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }),
|
|
2657
|
+
m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), ae++, m().then((u) => {
|
|
2657
2658
|
if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
|
|
2658
2659
|
return u.json();
|
|
2659
|
-
}).then((u) =>
|
|
2660
|
-
l.cache.put(
|
|
2660
|
+
}).then((u) => Ra(u, t)).then((u) => {
|
|
2661
|
+
l.cache.put(d, u), l._meshReceived(l.cache, l.register, d), l._checkSize();
|
|
2661
2662
|
}).catch((u) => {
|
|
2662
2663
|
console.error(u);
|
|
2663
2664
|
}).finally(() => {
|
|
2664
|
-
|
|
2665
|
+
ae--;
|
|
2665
2666
|
});
|
|
2666
|
-
}), this._scheduleDownload({
|
|
2667
|
-
shouldDoDownload: () => !0,
|
|
2668
|
-
doDownload: I,
|
|
2669
|
-
distanceFunction: i,
|
|
2670
|
-
getSiblings: s,
|
|
2671
|
-
level: r,
|
|
2672
|
-
loadingStrategy: o,
|
|
2673
|
-
uuid: a
|
|
2674
|
-
});
|
|
2667
|
+
}), this._scheduleDownload({ shouldDoDownload: () => !e.signal.aborted && !!l.register[d] && Object.keys(l.register[d]).length > 0 && !l.cache.get(d), doDownload: I, distanceFunction: i, getSiblings: s, level: r, loadingStrategy: n, uuid: a });
|
|
2675
2668
|
}
|
|
2676
2669
|
}
|
|
2677
2670
|
clear() {
|
|
@@ -2679,10 +2672,10 @@ class Ni {
|
|
|
2679
2672
|
this.maxCachedItems = 0, this._checkSize(), this.maxCachedItems = e;
|
|
2680
2673
|
}
|
|
2681
2674
|
invalidate(e, a) {
|
|
2682
|
-
const t =
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
},
|
|
2675
|
+
const t = nt(e), A = this;
|
|
2676
|
+
A.register[t] && setTimeout(() => {
|
|
2677
|
+
A.register && A.register[t] && (delete A.register[t][a], A._checkSize());
|
|
2678
|
+
}, A.timeout);
|
|
2686
2679
|
}
|
|
2687
2680
|
dispose() {
|
|
2688
2681
|
let e = this.cache.head();
|
|
@@ -2706,8 +2699,8 @@ class Ni {
|
|
|
2706
2699
|
}));
|
|
2707
2700
|
}
|
|
2708
2701
|
}
|
|
2709
|
-
function
|
|
2710
|
-
for (var e =
|
|
2702
|
+
function nt(h) {
|
|
2703
|
+
for (var e = h.split("/"), a = [], t = 0, A = 0; A < e.length; A++) {
|
|
2711
2704
|
var i = e[A];
|
|
2712
2705
|
i !== "." && i !== "" && i !== ".." ? a[t++] = i : i === ".." && t > 0 && t--;
|
|
2713
2706
|
}
|
|
@@ -2716,146 +2709,149 @@ function ct(c) {
|
|
|
2716
2709
|
for (A = 0; A < t; A++) s += "/" + a[A];
|
|
2717
2710
|
return s;
|
|
2718
2711
|
}
|
|
2719
|
-
function
|
|
2720
|
-
if (
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
if (
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
if (
|
|
2735
|
-
|
|
2712
|
+
var ot, ct, bt, be = function() {
|
|
2713
|
+
if (ct) return ot;
|
|
2714
|
+
function h(t) {
|
|
2715
|
+
if (typeof t != "string") throw new TypeError("Path must be a string. Received " + JSON.stringify(t));
|
|
2716
|
+
}
|
|
2717
|
+
function e(t, A) {
|
|
2718
|
+
for (var i, s = "", r = 0, n = -1, o = 0, c = 0; c <= t.length; ++c) {
|
|
2719
|
+
if (c < t.length) i = t.charCodeAt(c);
|
|
2720
|
+
else {
|
|
2721
|
+
if (i === 47) break;
|
|
2722
|
+
i = 47;
|
|
2723
|
+
}
|
|
2724
|
+
if (i === 47) {
|
|
2725
|
+
if (!(n === c - 1 || o === 1)) if (n !== c - 1 && o === 2) {
|
|
2726
|
+
if (s.length < 2 || r !== 2 || s.charCodeAt(s.length - 1) !== 46 || s.charCodeAt(s.length - 2) !== 46) {
|
|
2727
|
+
if (s.length > 2) {
|
|
2728
|
+
var b = s.lastIndexOf("/");
|
|
2729
|
+
if (b !== s.length - 1) {
|
|
2730
|
+
b === -1 ? (s = "", r = 0) : r = (s = s.slice(0, b)).length - 1 - s.lastIndexOf("/"), n = c, o = 0;
|
|
2731
|
+
continue;
|
|
2732
|
+
}
|
|
2733
|
+
} else if (s.length === 2 || s.length === 1) {
|
|
2734
|
+
s = "", r = 0, n = c, o = 0;
|
|
2736
2735
|
continue;
|
|
2737
2736
|
}
|
|
2738
|
-
} else if (t.length === 2 || t.length === 1) {
|
|
2739
|
-
t = "", A = 0, i = r, s = 0;
|
|
2740
|
-
continue;
|
|
2741
2737
|
}
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
i
|
|
2746
|
-
}
|
|
2738
|
+
A && (s.length > 0 ? s += "/.." : s = "..", r = 2);
|
|
2739
|
+
} else s.length > 0 ? s += "/" + t.slice(n + 1, c) : s = t.slice(n + 1, c), r = c - n - 1;
|
|
2740
|
+
n = c, o = 0;
|
|
2741
|
+
} else i === 46 && o !== -1 ? ++o : o = -1;
|
|
2742
|
+
}
|
|
2743
|
+
return s;
|
|
2747
2744
|
}
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
var
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
t >= 0 ? A = arguments[t] : (c === void 0 && (c = process.cwd()), A = c), Y(A), A.length !== 0 && (e = A + "/" + e, a = A.charCodeAt(0) === 47);
|
|
2754
|
-
}
|
|
2755
|
-
return e = bt(e, !a), a ? e.length > 0 ? "/" + e : "/" : e.length > 0 ? e : ".";
|
|
2756
|
-
}, normalize: function(c) {
|
|
2757
|
-
if (Y(c), c.length === 0) return ".";
|
|
2758
|
-
var e = c.charCodeAt(0) === 47, a = c.charCodeAt(c.length - 1) === 47;
|
|
2759
|
-
return (c = bt(c, !e)).length !== 0 || e || (c = "."), c.length > 0 && a && (c += "/"), e ? "/" + c : c;
|
|
2760
|
-
}, isAbsolute: function(c) {
|
|
2761
|
-
return Y(c), c.length > 0 && c.charCodeAt(0) === 47;
|
|
2762
|
-
}, join: function() {
|
|
2763
|
-
if (arguments.length === 0) return ".";
|
|
2764
|
-
for (var c, e = 0; e < arguments.length; ++e) {
|
|
2765
|
-
var a = arguments[e];
|
|
2766
|
-
Y(a), a.length > 0 && (c === void 0 ? c = a : c += "/" + a);
|
|
2767
|
-
}
|
|
2768
|
-
return c === void 0 ? "." : je.normalize(c);
|
|
2769
|
-
}, relative: function(c, e) {
|
|
2770
|
-
if (Y(c), Y(e), c === e || (c = je.resolve(c)) === (e = je.resolve(e))) return "";
|
|
2771
|
-
for (var a = 1; a < c.length && c.charCodeAt(a) === 47; ++a) ;
|
|
2772
|
-
for (var t = c.length, A = t - a, i = 1; i < e.length && e.charCodeAt(i) === 47; ++i) ;
|
|
2773
|
-
for (var s = e.length - i, r = A < s ? A : s, o = -1, n = 0; n <= r; ++n) {
|
|
2774
|
-
if (n === r) {
|
|
2775
|
-
if (s > r) {
|
|
2776
|
-
if (e.charCodeAt(i + n) === 47) return e.slice(i + n + 1);
|
|
2777
|
-
if (n === 0) return e.slice(i + n);
|
|
2778
|
-
} else A > r && (c.charCodeAt(a + n) === 47 ? o = n : n === 0 && (o = 0));
|
|
2779
|
-
break;
|
|
2745
|
+
ct = 1;
|
|
2746
|
+
var a = { resolve: function() {
|
|
2747
|
+
for (var t, A = "", i = !1, s = arguments.length - 1; s >= -1 && !i; s--) {
|
|
2748
|
+
var r;
|
|
2749
|
+
s >= 0 ? r = arguments[s] : (t === void 0 && (t = process.cwd()), r = t), h(r), r.length !== 0 && (A = r + "/" + A, i = r.charCodeAt(0) === 47);
|
|
2780
2750
|
}
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
},
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
if (!A) {
|
|
2794
|
-
t = i;
|
|
2795
|
-
break;
|
|
2751
|
+
return A = e(A, !i), i ? A.length > 0 ? "/" + A : "/" : A.length > 0 ? A : ".";
|
|
2752
|
+
}, normalize: function(t) {
|
|
2753
|
+
if (h(t), t.length === 0) return ".";
|
|
2754
|
+
var A = t.charCodeAt(0) === 47, i = t.charCodeAt(t.length - 1) === 47;
|
|
2755
|
+
return (t = e(t, !A)).length !== 0 || A || (t = "."), t.length > 0 && i && (t += "/"), A ? "/" + t : t;
|
|
2756
|
+
}, isAbsolute: function(t) {
|
|
2757
|
+
return h(t), t.length > 0 && t.charCodeAt(0) === 47;
|
|
2758
|
+
}, join: function() {
|
|
2759
|
+
if (arguments.length === 0) return ".";
|
|
2760
|
+
for (var t, A = 0; A < arguments.length; ++A) {
|
|
2761
|
+
var i = arguments[A];
|
|
2762
|
+
h(i), i.length > 0 && (t === void 0 ? t = i : t += "/" + i);
|
|
2796
2763
|
}
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
} else r === -1 && (i = !1, r = a + 1), s >= 0 && (o === e.charCodeAt(s) ? --s == -1 && (A = a) : (s = -1, A = r));
|
|
2764
|
+
return t === void 0 ? "." : a.normalize(t);
|
|
2765
|
+
}, relative: function(t, A) {
|
|
2766
|
+
if (h(t), h(A), t === A || (t = a.resolve(t)) === (A = a.resolve(A))) return "";
|
|
2767
|
+
for (var i = 1; i < t.length && t.charCodeAt(i) === 47; ++i) ;
|
|
2768
|
+
for (var s = t.length, r = s - i, n = 1; n < A.length && A.charCodeAt(n) === 47; ++n) ;
|
|
2769
|
+
for (var o = A.length - n, c = r < o ? r : o, b = -1, g = 0; g <= c; ++g) {
|
|
2770
|
+
if (g === c) {
|
|
2771
|
+
if (o > c) {
|
|
2772
|
+
if (A.charCodeAt(n + g) === 47) return A.slice(n + g + 1);
|
|
2773
|
+
if (g === 0) return A.slice(n + g);
|
|
2774
|
+
} else r > c && (t.charCodeAt(i + g) === 47 ? b = g : g === 0 && (b = 0));
|
|
2775
|
+
break;
|
|
2776
|
+
}
|
|
2777
|
+
var l = t.charCodeAt(i + g);
|
|
2778
|
+
if (l !== A.charCodeAt(n + g)) break;
|
|
2779
|
+
l === 47 && (b = g);
|
|
2814
2780
|
}
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2781
|
+
var d = "";
|
|
2782
|
+
for (g = i + b + 1; g <= s; ++g) g !== s && t.charCodeAt(g) !== 47 || (d.length === 0 ? d += ".." : d += "/..");
|
|
2783
|
+
return d.length > 0 ? d + A.slice(n + b) : (n += b, A.charCodeAt(n) === 47 && ++n, A.slice(n));
|
|
2784
|
+
}, _makeLong: function(t) {
|
|
2785
|
+
return t;
|
|
2786
|
+
}, dirname: function(t) {
|
|
2787
|
+
if (h(t), t.length === 0) return ".";
|
|
2788
|
+
for (var A = t.charCodeAt(0), i = A === 47, s = -1, r = !0, n = t.length - 1; n >= 1; --n) if ((A = t.charCodeAt(n)) === 47) {
|
|
2789
|
+
if (!r) {
|
|
2790
|
+
s = n;
|
|
2791
|
+
break;
|
|
2792
|
+
}
|
|
2793
|
+
} else r = !1;
|
|
2794
|
+
return s === -1 ? i ? "/" : "." : i && s === 1 ? "//" : t.slice(0, s);
|
|
2795
|
+
}, basename: function(t, A) {
|
|
2796
|
+
if (A !== void 0 && typeof A != "string") throw new TypeError('"ext" argument must be a string');
|
|
2797
|
+
h(t);
|
|
2798
|
+
var i, s = 0, r = -1, n = !0;
|
|
2799
|
+
if (A !== void 0 && A.length > 0 && A.length <= t.length) {
|
|
2800
|
+
if (A.length === t.length && A === t) return "";
|
|
2801
|
+
var o = A.length - 1, c = -1;
|
|
2802
|
+
for (i = t.length - 1; i >= 0; --i) {
|
|
2803
|
+
var b = t.charCodeAt(i);
|
|
2804
|
+
if (b === 47) {
|
|
2805
|
+
if (!n) {
|
|
2806
|
+
s = i + 1;
|
|
2807
|
+
break;
|
|
2808
|
+
}
|
|
2809
|
+
} else c === -1 && (n = !1, c = i + 1), o >= 0 && (b === A.charCodeAt(o) ? --o == -1 && (r = i) : (o = -1, r = c));
|
|
2810
|
+
}
|
|
2811
|
+
return s === r ? r = c : r === -1 && (r = t.length), t.slice(s, r);
|
|
2812
|
+
}
|
|
2813
|
+
for (i = t.length - 1; i >= 0; --i) if (t.charCodeAt(i) === 47) {
|
|
2814
|
+
if (!n) {
|
|
2815
|
+
s = i + 1;
|
|
2816
|
+
break;
|
|
2817
|
+
}
|
|
2818
|
+
} else r === -1 && (n = !1, r = i + 1);
|
|
2819
|
+
return r === -1 ? "" : t.slice(s, r);
|
|
2820
|
+
}, extname: function(t) {
|
|
2821
|
+
h(t);
|
|
2822
|
+
for (var A = -1, i = 0, s = -1, r = !0, n = 0, o = t.length - 1; o >= 0; --o) {
|
|
2823
|
+
var c = t.charCodeAt(o);
|
|
2824
|
+
if (c !== 47) s === -1 && (r = !1, s = o + 1), c === 46 ? A === -1 ? A = o : n !== 1 && (n = 1) : A !== -1 && (n = -1);
|
|
2825
|
+
else if (!r) {
|
|
2826
|
+
i = o + 1;
|
|
2827
|
+
break;
|
|
2828
|
+
}
|
|
2821
2829
|
}
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2830
|
+
return A === -1 || s === -1 || n === 0 || n === 1 && A === s - 1 && A === i + 1 ? "" : t.slice(A, s);
|
|
2831
|
+
}, format: function(t) {
|
|
2832
|
+
if (t === null || typeof t != "object") throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t);
|
|
2833
|
+
return function(A, i) {
|
|
2834
|
+
var s = i.dir || i.root, r = i.base || (i.name || "") + (i.ext || "");
|
|
2835
|
+
return s ? s === i.root ? s + r : s + A + r : r;
|
|
2836
|
+
}("/", t);
|
|
2837
|
+
}, parse: function(t) {
|
|
2838
|
+
h(t);
|
|
2839
|
+
var A = { root: "", dir: "", base: "", ext: "", name: "" };
|
|
2840
|
+
if (t.length === 0) return A;
|
|
2841
|
+
var i, s = t.charCodeAt(0), r = s === 47;
|
|
2842
|
+
r ? (A.root = "/", i = 1) : i = 0;
|
|
2843
|
+
for (var n = -1, o = 0, c = -1, b = !0, g = t.length - 1, l = 0; g >= i; --g) if ((s = t.charCodeAt(g)) !== 47) c === -1 && (b = !1, c = g + 1), s === 46 ? n === -1 ? n = g : l !== 1 && (l = 1) : n !== -1 && (l = -1);
|
|
2844
|
+
else if (!b) {
|
|
2845
|
+
o = g + 1;
|
|
2831
2846
|
break;
|
|
2832
2847
|
}
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
var t = a.dir || a.root, A = a.base || (a.name || "") + (a.ext || "");
|
|
2839
|
-
return t ? t === a.root ? t + A : t + e + A : A;
|
|
2840
|
-
}("/", c);
|
|
2841
|
-
}, parse: function(c) {
|
|
2842
|
-
Y(c);
|
|
2843
|
-
var e = { root: "", dir: "", base: "", ext: "", name: "" };
|
|
2844
|
-
if (c.length === 0) return e;
|
|
2845
|
-
var a, t = c.charCodeAt(0), A = t === 47;
|
|
2846
|
-
A ? (e.root = "/", a = 1) : a = 0;
|
|
2847
|
-
for (var i = -1, s = 0, r = -1, o = !0, n = c.length - 1, b = 0; n >= a; --n) if ((t = c.charCodeAt(n)) !== 47) r === -1 && (o = !1, r = n + 1), t === 46 ? i === -1 ? i = n : b !== 1 && (b = 1) : i !== -1 && (b = -1);
|
|
2848
|
-
else if (!o) {
|
|
2849
|
-
s = n + 1;
|
|
2850
|
-
break;
|
|
2851
|
-
}
|
|
2852
|
-
return i === -1 || r === -1 || b === 0 || b === 1 && i === r - 1 && i === s + 1 ? r !== -1 && (e.base = e.name = s === 0 && A ? c.slice(1, r) : c.slice(s, r)) : (s === 0 && A ? (e.name = c.slice(1, i), e.base = c.slice(1, r)) : (e.name = c.slice(s, i), e.base = c.slice(s, r)), e.ext = c.slice(i, r)), s > 0 ? e.dir = c.slice(0, s - 1) : A && (e.dir = "/"), e;
|
|
2853
|
-
}, sep: "/", delimiter: ":", win32: null, posix: null };
|
|
2854
|
-
je.posix = je;
|
|
2855
|
-
var dt, de = je;
|
|
2856
|
-
class Li {
|
|
2848
|
+
return n === -1 || c === -1 || l === 0 || l === 1 && n === c - 1 && n === o + 1 ? c !== -1 && (A.base = A.name = o === 0 && r ? t.slice(1, c) : t.slice(o, c)) : (o === 0 && r ? (A.name = t.slice(1, n), A.base = t.slice(1, c)) : (A.name = t.slice(o, n), A.base = t.slice(o, c)), A.ext = t.slice(n, c)), o > 0 ? A.dir = t.slice(0, o - 1) : r && (A.dir = "/"), A;
|
|
2849
|
+
}, sep: "/", delimiter: ":", win32: null, posix: null };
|
|
2850
|
+
return a.posix = a, ot = a;
|
|
2851
|
+
}();
|
|
2852
|
+
class Ui {
|
|
2857
2853
|
constructor(e) {
|
|
2858
|
-
|
|
2854
|
+
le(this, "_toElementFn");
|
|
2859
2855
|
if (e) {
|
|
2860
2856
|
const { toElementFn: a } = e;
|
|
2861
2857
|
if (typeof a == "function") this._toElementFn = a;
|
|
@@ -2894,10 +2890,13 @@ class Li {
|
|
|
2894
2890
|
return !1;
|
|
2895
2891
|
}
|
|
2896
2892
|
reduce(e, a) {
|
|
2897
|
-
let t = a, A = 0;
|
|
2893
|
+
let t = a ?? 0, A = 0;
|
|
2898
2894
|
for (const i of this) t = e(t, i, A++, this);
|
|
2899
2895
|
return t;
|
|
2900
2896
|
}
|
|
2897
|
+
toArray() {
|
|
2898
|
+
return [...this];
|
|
2899
|
+
}
|
|
2901
2900
|
toVisual() {
|
|
2902
2901
|
return [...this];
|
|
2903
2902
|
}
|
|
@@ -2911,20 +2910,20 @@ class Li {
|
|
|
2911
2910
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
2912
2911
|
* @license MIT License
|
|
2913
2912
|
*/
|
|
2914
|
-
class
|
|
2913
|
+
class Ie extends Ui {
|
|
2915
2914
|
constructor(a = [], t) {
|
|
2916
2915
|
super(t);
|
|
2917
|
-
|
|
2918
|
-
|
|
2916
|
+
le(this, "_elements", []);
|
|
2917
|
+
le(this, "_DEFAULT_COMPARATOR", (a, t) => {
|
|
2919
2918
|
if (typeof a == "object" || typeof t == "object") throw TypeError("When comparing object types, a custom comparator must be defined in the constructor's options parameter.");
|
|
2920
2919
|
return a > t ? 1 : a < t ? -1 : 0;
|
|
2921
2920
|
});
|
|
2922
|
-
|
|
2921
|
+
le(this, "_comparator", this._DEFAULT_COMPARATOR);
|
|
2923
2922
|
if (t) {
|
|
2924
2923
|
const { comparator: A } = t;
|
|
2925
2924
|
A && (this._comparator = A);
|
|
2926
2925
|
}
|
|
2927
|
-
|
|
2926
|
+
this.addMany(a);
|
|
2928
2927
|
}
|
|
2929
2928
|
get elements() {
|
|
2930
2929
|
return this._elements;
|
|
@@ -2936,11 +2935,16 @@ class me extends Li {
|
|
|
2936
2935
|
return this.elements[this.size - 1] ?? void 0;
|
|
2937
2936
|
}
|
|
2938
2937
|
static heapify(a, t) {
|
|
2939
|
-
return new
|
|
2938
|
+
return new Ie(a, t);
|
|
2940
2939
|
}
|
|
2941
2940
|
add(a) {
|
|
2942
2941
|
return this._elements.push(a), this._bubbleUp(this.elements.length - 1);
|
|
2943
2942
|
}
|
|
2943
|
+
addMany(a) {
|
|
2944
|
+
const t = [];
|
|
2945
|
+
for (const A of a) this._toElementFn ? t.push(this.add(this._toElementFn(A))) : t.push(this.add(A));
|
|
2946
|
+
return t;
|
|
2947
|
+
}
|
|
2944
2948
|
poll() {
|
|
2945
2949
|
if (this.elements.length === 0) return;
|
|
2946
2950
|
const a = this.elements[0], t = this.elements.pop();
|
|
@@ -2972,14 +2976,11 @@ class me extends Li {
|
|
|
2972
2976
|
};
|
|
2973
2977
|
return A(0), t;
|
|
2974
2978
|
}
|
|
2975
|
-
toArray() {
|
|
2976
|
-
return [...this.elements];
|
|
2977
|
-
}
|
|
2978
2979
|
clone() {
|
|
2979
|
-
return new
|
|
2980
|
+
return new Ie(this, { comparator: this.comparator, toElementFn: this.toElementFn });
|
|
2980
2981
|
}
|
|
2981
2982
|
sort() {
|
|
2982
|
-
const a = [], t = new
|
|
2983
|
+
const a = [], t = new Ie(this, { comparator: this.comparator });
|
|
2983
2984
|
for (; t.size !== 0; ) {
|
|
2984
2985
|
const A = t.poll();
|
|
2985
2986
|
A !== void 0 && a.push(A);
|
|
@@ -2992,15 +2993,15 @@ class me extends Li {
|
|
|
2992
2993
|
return a;
|
|
2993
2994
|
}
|
|
2994
2995
|
filter(a, t) {
|
|
2995
|
-
const A = new
|
|
2996
|
+
const A = new Ie([], { toElementFn: this.toElementFn, comparator: this.comparator });
|
|
2996
2997
|
let i = 0;
|
|
2997
2998
|
for (const s of this) a.call(t, s, i, this) && A.add(s), i++;
|
|
2998
2999
|
return A;
|
|
2999
3000
|
}
|
|
3000
3001
|
map(a, t, A, i) {
|
|
3001
|
-
const s = new
|
|
3002
|
+
const s = new Ie([], { comparator: t, toElementFn: A });
|
|
3002
3003
|
let r = 0;
|
|
3003
|
-
for (const
|
|
3004
|
+
for (const n of this) s.add(a.call(i, n, r, this)), r++;
|
|
3004
3005
|
return s;
|
|
3005
3006
|
}
|
|
3006
3007
|
get comparator() {
|
|
@@ -3030,85 +3031,85 @@ class me extends Li {
|
|
|
3030
3031
|
return this.elements[a] = A, !0;
|
|
3031
3032
|
}
|
|
3032
3033
|
}
|
|
3033
|
-
(function(
|
|
3034
|
-
|
|
3035
|
-
})(
|
|
3036
|
-
class
|
|
3034
|
+
(function(h) {
|
|
3035
|
+
h[h.VISIT = 0] = "VISIT", h[h.PROCESS = 1] = "PROCESS";
|
|
3036
|
+
})(bt || (bt = {}));
|
|
3037
|
+
class Ne extends Ie {
|
|
3037
3038
|
constructor(e = [], a) {
|
|
3038
3039
|
super(e, a);
|
|
3039
3040
|
}
|
|
3040
3041
|
clone() {
|
|
3041
|
-
return new
|
|
3042
|
+
return new Ne(this, { comparator: this.comparator, toElementFn: this.toElementFn });
|
|
3042
3043
|
}
|
|
3043
3044
|
filter(e, a) {
|
|
3044
|
-
const t = new
|
|
3045
|
+
const t = new Ne([], { toElementFn: this.toElementFn, comparator: this.comparator });
|
|
3045
3046
|
let A = 0;
|
|
3046
3047
|
for (const i of this) e.call(a, i, A, this) && t.add(i), A++;
|
|
3047
3048
|
return t;
|
|
3048
3049
|
}
|
|
3049
3050
|
map(e, a, t, A) {
|
|
3050
|
-
const i = new
|
|
3051
|
+
const i = new Ne([], { comparator: a, toElementFn: t });
|
|
3051
3052
|
let s = 0;
|
|
3052
3053
|
for (const r of this) i.add(e.call(A, r, s, this)), s++;
|
|
3053
3054
|
return i;
|
|
3054
3055
|
}
|
|
3055
3056
|
}
|
|
3056
|
-
class
|
|
3057
|
+
class Le extends Ne {
|
|
3057
3058
|
constructor(e = [], a) {
|
|
3058
3059
|
super(e, a);
|
|
3059
3060
|
}
|
|
3060
3061
|
clone() {
|
|
3061
|
-
return new
|
|
3062
|
+
return new Le(this, { comparator: this.comparator, toElementFn: this.toElementFn });
|
|
3062
3063
|
}
|
|
3063
3064
|
filter(e, a) {
|
|
3064
|
-
const t = new
|
|
3065
|
+
const t = new Le([], { toElementFn: this.toElementFn, comparator: this.comparator });
|
|
3065
3066
|
let A = 0;
|
|
3066
3067
|
for (const i of this) e.call(a, i, A, this) && t.add(i), A++;
|
|
3067
3068
|
return t;
|
|
3068
3069
|
}
|
|
3069
3070
|
map(e, a, t, A) {
|
|
3070
|
-
const i = new
|
|
3071
|
+
const i = new Le([], { comparator: a, toElementFn: t });
|
|
3071
3072
|
let s = 0;
|
|
3072
3073
|
for (const r of this) i.add(e.call(A, r, s, this)), s++;
|
|
3073
3074
|
return i;
|
|
3074
3075
|
}
|
|
3075
3076
|
}
|
|
3076
|
-
function
|
|
3077
|
-
return new Worker("" + new URL("assets/PointsManager.worker-5fpGpVvf.js", import.meta.url).href, { type: "module", name:
|
|
3077
|
+
function Gi(h) {
|
|
3078
|
+
return new Worker("" + new URL("assets/PointsManager.worker-5fpGpVvf.js", import.meta.url).href, { type: "module", name: h == null ? void 0 : h.name });
|
|
3078
3079
|
}
|
|
3079
|
-
new
|
|
3080
|
-
const
|
|
3081
|
-
|
|
3082
|
-
class
|
|
3080
|
+
new Da(), new D(), new D(), new D(), new D();
|
|
3081
|
+
const Ke = new D(), Hi = new D(), Vt = new Sa();
|
|
3082
|
+
Vt.set(1, 0, 0, 0, 0, 1, 0, -1, 0);
|
|
3083
|
+
class Ni extends ya {
|
|
3083
3084
|
constructor(e, a, t) {
|
|
3084
3085
|
const i = Math.min(Math.ceil(8) * 512, Math.pow(512, 2));
|
|
3085
3086
|
let s = 1 * Math.pow(512, 2);
|
|
3086
3087
|
s = Math.floor(s / i) * i;
|
|
3087
|
-
const r = new
|
|
3088
|
+
const r = new re(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3088
3089
|
e.initRenderTarget(r);
|
|
3089
|
-
const
|
|
3090
|
-
o.texture.type = R, e.initRenderTarget(o);
|
|
3091
|
-
const n = new ne(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3090
|
+
const n = new re(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3092
3091
|
n.texture.type = R, e.initRenderTarget(n);
|
|
3093
|
-
const
|
|
3094
|
-
|
|
3095
|
-
const
|
|
3096
|
-
|
|
3097
|
-
const
|
|
3098
|
-
|
|
3092
|
+
const o = new re(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3093
|
+
o.texture.type = R, e.initRenderTarget(o);
|
|
3094
|
+
const c = new re(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3095
|
+
c.texture.type = R, e.initRenderTarget(c);
|
|
3096
|
+
const b = new ta({ uniforms: { textureSize: { value: 512 }, numSlices: { value: 1 }, cov1Texture: { value: o.texture }, cov2Texture: { value: c.texture }, colorTexture: { value: r.texture }, positionTexture: { value: n.texture }, zUpToYUpMatrix3x3: { value: Vt }, sizeMultiplier: { value: 1 }, cropRadius: { value: Number.MAX_VALUE }, cameraNear: { value: 0.01 }, cameraFar: { value: 10 }, computeLinearDepth: { value: !0 } }, vertexShader: Li(), fragmentShader: t || Oi(), transparent: !0, side: We, depthTest: !1, depthWrite: !1 }), g = new Ja(), l = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]);
|
|
3097
|
+
g.setIndex([0, 2, 1, 2, 3, 1]), g.setAttribute("position", new de(l, 3));
|
|
3098
|
+
const d = new Uint32Array(s), f = new Ea(d, 1, !1);
|
|
3099
|
+
f.needsUpdate = !0, f.setUsage(Pa), g.setAttribute("order", f), g.instanceCount = 0, super(g, b), this.matrixAutoUpdate = !1, this.numBatches = 0, this.numVisibleBatches = 0, this.orderAttribute = f, this.textureSize = 512, this.numTextures = 1, this.batchSize = i, this.maxSplats = s, this.numSplatsRendered = 0, this.colorRenderTarget = r, this.positionRenderTarget = n, this.cov1RenderTarget = o, this.cov2RenderTarget = c, this.renderer = e, this.sortID = 0, this.freeAddresses = new Le();
|
|
3099
3100
|
for (let m = 0; m < this.maxSplats; m += i) this.freeAddresses.add(m);
|
|
3100
|
-
this.worker = new
|
|
3101
|
+
this.worker = new Gi({}), this.sortListeners = [], this.worker.onmessage = (m) => {
|
|
3101
3102
|
const u = new Uint32Array(m.data.order);
|
|
3102
3103
|
if (this.numSplatsRendered = u.length, u.length > this.orderAttribute.count) {
|
|
3103
|
-
const C = new
|
|
3104
|
-
C.setIndex(w), C.setAttribute("position", new
|
|
3105
|
-
const k = new Uint32Array(this.maxSplats), y = new
|
|
3106
|
-
y.needsUpdate = !0, y.setUsage(
|
|
3104
|
+
const C = new Ja(), B = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]), w = [0, 2, 1, 2, 3, 1];
|
|
3105
|
+
C.setIndex(w), C.setAttribute("position", new de(B, 3));
|
|
3106
|
+
const k = new Uint32Array(this.maxSplats), y = new Ea(k, 1, !1);
|
|
3107
|
+
y.needsUpdate = !0, y.setUsage(Pa), C.setAttribute("order", y), C.instanceCount = 0, this.geometry.dispose(), this.geometry = C, this.orderAttribute = y;
|
|
3107
3108
|
}
|
|
3108
3109
|
this.orderAttribute.clearUpdateRanges(), this.orderAttribute.set(u), this.orderAttribute.addUpdateRange(0, u.length), this.orderAttribute.needsUpdate = !0, this.geometry.instanceCount = m.data.count, this.geometry.needsUpdate = !0;
|
|
3109
3110
|
for (let C = this.sortListeners.length - 1; C >= 0; C--)
|
|
3110
3111
|
this.sortListeners[C](m.data.id) && this.sortListeners.splice(C, 1);
|
|
3111
|
-
}, this.cameraPosition = new D(0, 0, 0), this.rotateOnAxis(new D(1, 0, 0), 0.5 * Math.PI), this.frustumCulled = !1, this.copyMaterial2D = new
|
|
3112
|
+
}, this.cameraPosition = new D(0, 0, 0), this.rotateOnAxis(new D(1, 0, 0), 0.5 * Math.PI), this.frustumCulled = !1, this.copyMaterial2D = new ta({ uniforms: { sourceTexture: {} }, vertexShader: dt(), fragmentShader: `
|
|
3112
3113
|
precision highp float;
|
|
3113
3114
|
|
|
3114
3115
|
uniform sampler2D sourceTexture;
|
|
@@ -3117,7 +3118,7 @@ in vec2 vUv;
|
|
|
3117
3118
|
|
|
3118
3119
|
void main() {
|
|
3119
3120
|
gl_FragColor = texture( sourceTexture, vUv );
|
|
3120
|
-
}`, transparent: !1, side:
|
|
3121
|
+
}`, transparent: !1, side: We, depthTest: !1, depthWrite: !1 }), this.copyMaterial3D = new ta({ uniforms: { sourceTexture: {}, w: { value: 0 } }, vertexShader: dt(), fragmentShader: `
|
|
3121
3122
|
precision highp float;
|
|
3122
3123
|
|
|
3123
3124
|
uniform sampler3D sourceTexture;
|
|
@@ -3127,9 +3128,9 @@ in vec2 vUv;
|
|
|
3127
3128
|
|
|
3128
3129
|
void main() {
|
|
3129
3130
|
gl_FragColor = texture( sourceTexture, vec3(vUv, w) );
|
|
3130
|
-
}`, transparent: !1, side:
|
|
3131
|
-
const I = new
|
|
3132
|
-
this.copyQuad = new
|
|
3131
|
+
}`, transparent: !1, side: We, depthTest: !1, depthWrite: !1 }), this.copyCamera = new Et(-0.5, 0.5, 0.5, -0.5, 0.1, 10), this.copyCamera.position.z = 1, this.copyScene = new JA();
|
|
3132
|
+
const I = new PA(1, 1);
|
|
3133
|
+
this.copyQuad = new ya(I, this.copyMaterial2D), this.copyScene.add(this.copyQuad), this.copyScene.matrixAutoUpdate = !1, this.copyQuad.matrixAutoUpdate = !1;
|
|
3133
3134
|
}
|
|
3134
3135
|
dispose() {
|
|
3135
3136
|
this.material.dispose(), this.copyMaterial2D.dispose(), this.copyMaterial3D.dispose(), this.cov1RenderTarget.dispose(), this.cov2RenderTarget.dispose(), this.positionRenderTarget.dispose(), this.colorRenderTarget.dispose(), this.worker.terminate(), this.worker = null, this.orderAttribute.array = void 0, this.geometry.dispose();
|
|
@@ -3138,8 +3139,8 @@ void main() {
|
|
|
3138
3139
|
this.copyMaterial2D.uniforms.sourceTexture.value = e;
|
|
3139
3140
|
const i = this.renderer.autoClear, s = this.renderer.getRenderTarget();
|
|
3140
3141
|
this.renderer.autoClear = !1;
|
|
3141
|
-
const r = t[2] - t[0],
|
|
3142
|
-
a.viewport.set(t[0], t[1], r,
|
|
3142
|
+
const r = t[2] - t[0], n = t[3] - t[1];
|
|
3143
|
+
a.viewport.set(t[0], t[1], r, n), this.renderer.setRenderTarget(a, A), this.renderer.render(this.copyScene, this.copyCamera), this.renderer.setRenderTarget(s), this.renderer.autoClear = i;
|
|
3143
3144
|
}
|
|
3144
3145
|
copyTex3D(e, a, t) {
|
|
3145
3146
|
this.copyMaterial3D.uniforms.sourceTexture.value = e;
|
|
@@ -3161,71 +3162,71 @@ void main() {
|
|
|
3161
3162
|
}
|
|
3162
3163
|
addSplatsTile(e, a, t, A) {
|
|
3163
3164
|
if (!this.worker) return;
|
|
3164
|
-
const i = this, s = e.data ? e.data.array : e.array, r = e.data && e.data.isInterleavedBuffer ? e.data.stride : 3,
|
|
3165
|
+
const i = this, s = e.data ? e.data.array : e.array, r = e.data && e.data.isInterleavedBuffer ? e.data.stride : 3, n = e.data && e.data.isInterleavedBuffer ? e.offset : 0, o = Math.ceil(s.length / (this.batchSize * r)), c = [], b = [];
|
|
3165
3166
|
let g = () => {
|
|
3166
3167
|
};
|
|
3167
3168
|
const l = new Float32Array(s.length / r * 3);
|
|
3168
|
-
for (let f = 0; f < s.length / 3; f++) l[3 * f] = s[f * r +
|
|
3169
|
+
for (let f = 0; f < s.length / 3; f++) l[3 * f] = s[f * r + n], l[3 * f + 1] = s[f * r + n + 1], l[3 * f + 2] = s[f * r + n + 2];
|
|
3169
3170
|
g = (f, I, m) => {
|
|
3170
3171
|
const u = m * m;
|
|
3171
3172
|
for (let C = 0; C < l.length; C += 3) {
|
|
3172
|
-
|
|
3173
|
-
const B =
|
|
3174
|
-
B > 0 && f.distanceSqToPoint(
|
|
3173
|
+
Ke.set(l[C], -l[C + 2], l[C + 1]);
|
|
3174
|
+
const B = Hi.copy(Ke).sub(f.origin).dot(f.direction);
|
|
3175
|
+
B > 0 && f.distanceSqToPoint(Ke) < u && I.push({ distance: B, point: Ke.clone(), type: "splat" });
|
|
3175
3176
|
}
|
|
3176
|
-
},
|
|
3177
|
-
for (let f = 0; f <
|
|
3177
|
+
}, o > this.freeAddresses.size && this.growTextures();
|
|
3178
|
+
for (let f = 0; f < o; f++) {
|
|
3178
3179
|
const I = this.freeAddresses.poll();
|
|
3179
|
-
isNaN(I) && console.log("insuficient texture size to store splats info"),
|
|
3180
|
+
isNaN(I) && console.log("insuficient texture size to store splats info"), c.push(I), b.push(3 * I);
|
|
3180
3181
|
const m = f * this.batchSize;
|
|
3181
3182
|
this.addSplatsBatch(m, I, e, a, t, A);
|
|
3182
3183
|
}
|
|
3183
|
-
i.worker.postMessage({ method: "addBatches", insertionIndexes:
|
|
3184
|
-
let
|
|
3184
|
+
i.worker.postMessage({ method: "addBatches", insertionIndexes: b, positions: s.buffer, offset: n, stride: r, batchSize: i.batchSize }, [s.buffer]);
|
|
3185
|
+
let d = !1;
|
|
3185
3186
|
return { hide: () => {
|
|
3186
|
-
|
|
3187
|
+
d == 1 && i.worker && (i.numVisibleBatches--, d = !1, i.worker.postMessage({ method: "hideBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }));
|
|
3187
3188
|
}, show: (f) => {
|
|
3188
|
-
if (
|
|
3189
|
-
i.numVisibleBatches--,
|
|
3189
|
+
if (d == 0 && i.worker) {
|
|
3190
|
+
i.numVisibleBatches--, d = !0;
|
|
3190
3191
|
const I = i.sortID, m = (u) => u >= I && (f(), !0);
|
|
3191
|
-
i.sortListeners.push(m), i.worker.postMessage({ method: "showBatches", insertionIndexes:
|
|
3192
|
+
i.sortListeners.push(m), i.worker.postMessage({ method: "showBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ });
|
|
3192
3193
|
}
|
|
3193
3194
|
}, remove: () => {
|
|
3194
|
-
i.worker && (g = void 0, i.worker.postMessage({ method: "removeBatches", insertionIndexes:
|
|
3195
|
+
i.worker && (g = void 0, i.worker.postMessage({ method: "removeBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }), c.forEach((f) => i.freeAddresses.add(f)));
|
|
3195
3196
|
}, sort: this.sort, raycast: g, isSplatsBatch: !0 };
|
|
3196
3197
|
}
|
|
3197
3198
|
addSplatsBatch(e, a, t, A, i, s) {
|
|
3198
|
-
const r = new Float32Array(4 * this.batchSize),
|
|
3199
|
+
const r = new Float32Array(4 * this.batchSize), n = new Uint8Array(4 * this.batchSize), o = new Float32Array(4 * this.batchSize), c = new Float32Array(4 * this.batchSize);
|
|
3199
3200
|
for (let u = a; u < a + this.batchSize; u++) {
|
|
3200
3201
|
const C = u - a, B = 4 * C, w = e + C;
|
|
3201
3202
|
if (w >= t.count) break;
|
|
3202
|
-
r[B] = t.getX(w), r[B + 1] = t.getY(w), r[B + 2] = t.getZ(w), Math.floor(255 * A.getX(w)), Math.floor(255 * A.getY(w)), Math.floor(255 * A.getZ(w)), Math.floor(255 * A.getW(w)),
|
|
3203
|
+
r[B] = t.getX(w), r[B + 1] = t.getY(w), r[B + 2] = t.getZ(w), Math.floor(255 * A.getX(w)), Math.floor(255 * A.getY(w)), Math.floor(255 * A.getZ(w)), Math.floor(255 * A.getW(w)), n[B] = Math.floor(255 * A.getX(w)), n[B + 1] = Math.floor(255 * A.getY(w)), n[B + 2] = Math.floor(255 * A.getZ(w)), n[B + 3] = Math.floor(255 * A.getW(w)), o[B] = i.getX(w), o[B + 1] = i.getY(w), o[B + 2] = i.getZ(w), c[B] = s.getX(w), c[B + 1] = s.getY(w), c[B + 2] = s.getZ(w);
|
|
3203
3204
|
}
|
|
3204
|
-
const
|
|
3205
|
+
const b = Math.floor(a / Math.pow(this.textureSize, 2)), g = Math.ceil(this.batchSize / this.textureSize), l = [0, a / this.textureSize - b * this.textureSize, this.textureSize];
|
|
3205
3206
|
l.push(l[1] + g);
|
|
3206
|
-
const
|
|
3207
|
-
|
|
3208
|
-
const f = new Ge(
|
|
3209
|
-
f.generateMipmaps = !1, f.magFilter = v, f.minFilter = v, f.anisotropy = 0, f.needsUpdate = !0, this.renderer.initTexture(f), this.copyTex2D(f, this.colorRenderTarget, l,
|
|
3210
|
-
const I = new Ge(
|
|
3211
|
-
I.generateMipmaps = !1, I.magFilter = v, I.minFilter = v, I.anisotropy = 0, I.needsUpdate = !0, this.renderer.initTexture(I), this.copyTex2D(I, this.cov1RenderTarget, l,
|
|
3212
|
-
const m = new Ge(
|
|
3213
|
-
m.generateMipmaps = !1, m.magFilter = v, m.minFilter = v, m.anisotropy = 0, m.needsUpdate = !0, this.renderer.initTexture(m), this.copyTex2D(m, this.cov2RenderTarget, l,
|
|
3207
|
+
const d = new Ge(r, this.textureSize, g, $, R);
|
|
3208
|
+
d.generateMipmaps = !1, d.magFilter = v, d.minFilter = v, d.anisotropy = 0, d.needsUpdate = !0, this.renderer.initTexture(d), this.renderer.initRenderTarget(this.positionRenderTarget), this.copyTex2D(d, this.positionRenderTarget, l, b), d.dispose();
|
|
3209
|
+
const f = new Ge(n, this.textureSize, g, $, W);
|
|
3210
|
+
f.generateMipmaps = !1, f.magFilter = v, f.minFilter = v, f.anisotropy = 0, f.needsUpdate = !0, this.renderer.initTexture(f), this.copyTex2D(f, this.colorRenderTarget, l, b), f.dispose();
|
|
3211
|
+
const I = new Ge(o, this.textureSize, g, $, R);
|
|
3212
|
+
I.generateMipmaps = !1, I.magFilter = v, I.minFilter = v, I.anisotropy = 0, I.needsUpdate = !0, this.renderer.initTexture(I), this.copyTex2D(I, this.cov1RenderTarget, l, b), I.dispose();
|
|
3213
|
+
const m = new Ge(c, this.textureSize, g, $, R);
|
|
3214
|
+
m.generateMipmaps = !1, m.magFilter = v, m.minFilter = v, m.anisotropy = 0, m.needsUpdate = !0, this.renderer.initTexture(m), this.copyTex2D(m, this.cov2RenderTarget, l, b), m.dispose();
|
|
3214
3215
|
}
|
|
3215
3216
|
growTextures() {
|
|
3216
3217
|
for (let s = this.maxSplats; s < this.maxSplats + this.textureSize * this.textureSize; s += this.batchSize) this.freeAddresses.add(s);
|
|
3217
3218
|
this.maxSplats += this.textureSize * this.textureSize;
|
|
3218
|
-
const e = this.numTextures + 1, a = new
|
|
3219
|
+
const e = this.numTextures + 1, a = new re(this.textureSize, this.textureSize, e, { magFilter: v, minFilter: v, anisotropy: 0, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3219
3220
|
this.renderer.initRenderTarget(a), this.copyTex3D(this.colorRenderTarget.texture, a, this.numTextures), this.colorRenderTarget.dispose(), this.colorRenderTarget = a, this.material.uniforms.colorTexture.value = this.colorRenderTarget.texture;
|
|
3220
|
-
const t = new
|
|
3221
|
+
const t = new re(this.textureSize, this.textureSize, e, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3221
3222
|
t.texture.type = R, this.renderer.initRenderTarget(t), this.copyTex3D(this.positionRenderTarget.texture, t, this.numTextures), this.positionRenderTarget.dispose(), this.positionRenderTarget = t, this.material.uniforms.positionTexture.value = this.positionRenderTarget.texture;
|
|
3222
|
-
const A = new
|
|
3223
|
+
const A = new re(this.textureSize, this.textureSize, e, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3223
3224
|
A.texture.type = R, this.renderer.initRenderTarget(A), this.copyTex3D(this.cov1RenderTarget.texture, A, this.numTextures), this.cov1RenderTarget.dispose(), this.cov1RenderTarget = A, this.material.uniforms.cov1Texture.value = this.cov1RenderTarget.texture;
|
|
3224
|
-
const i = new
|
|
3225
|
+
const i = new re(this.textureSize, this.textureSize, e, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3225
3226
|
i.texture.type = R, this.renderer.initRenderTarget(i), this.copyTex3D(this.cov2RenderTarget.texture, i, this.numTextures), this.cov2RenderTarget.dispose(), this.cov2RenderTarget = i, this.material.uniforms.cov2Texture.value = this.cov2RenderTarget.texture, this.numTextures = e, this.material.uniforms.numSlices.value = this.numTextures;
|
|
3226
3227
|
}
|
|
3227
3228
|
}
|
|
3228
|
-
function
|
|
3229
|
+
function Li() {
|
|
3229
3230
|
return `
|
|
3230
3231
|
precision highp float;
|
|
3231
3232
|
precision highp int;
|
|
@@ -3385,7 +3386,7 @@ void main() {
|
|
|
3385
3386
|
}
|
|
3386
3387
|
`;
|
|
3387
3388
|
}
|
|
3388
|
-
function
|
|
3389
|
+
function Oi() {
|
|
3389
3390
|
return `
|
|
3390
3391
|
precision highp float;
|
|
3391
3392
|
|
|
@@ -3416,7 +3417,7 @@ void main() {
|
|
|
3416
3417
|
|
|
3417
3418
|
}`;
|
|
3418
3419
|
}
|
|
3419
|
-
function
|
|
3420
|
+
function dt() {
|
|
3420
3421
|
return `
|
|
3421
3422
|
|
|
3422
3423
|
out vec2 vUv;
|
|
@@ -3426,30 +3427,32 @@ void main() {
|
|
|
3426
3427
|
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
3427
3428
|
}`;
|
|
3428
3429
|
}
|
|
3429
|
-
var
|
|
3430
|
-
const
|
|
3430
|
+
var Y;
|
|
3431
|
+
const te = new E.Sphere(new E.Vector3(0, 0, 0), 1), fe = new Z([0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1]);
|
|
3431
3432
|
new E.Box3();
|
|
3432
|
-
const
|
|
3433
|
+
const oe = new E.Vector3(0, 0, 0), ye = new E.Vector3(0, 0, 0), Ji = new E.Vector3(0, 1, 0), ze = new E.Ray(), Ve = new E.Matrix4();
|
|
3433
3434
|
new E.Matrix4(), new E.Frustum();
|
|
3434
|
-
const
|
|
3435
|
-
function
|
|
3436
|
-
var
|
|
3437
|
-
for (let e in
|
|
3438
|
-
return
|
|
3435
|
+
const Ia = new E.Vector3(), Ye = [], ht = new E.Quaternion(), X = {};
|
|
3436
|
+
function Pi() {
|
|
3437
|
+
var h = [];
|
|
3438
|
+
for (let e in X) X.hasOwnProperty(e) && X[e] > 0 && h.push(e);
|
|
3439
|
+
return h;
|
|
3439
3440
|
}
|
|
3440
|
-
class
|
|
3441
|
+
class Yt extends E.Object3D {
|
|
3441
3442
|
constructor(e) {
|
|
3442
3443
|
super();
|
|
3443
3444
|
const a = this;
|
|
3444
|
-
if (a.splatsMesh = e.splatsMesh, this.contentURL = [], e.domWidth && e.domHeight ? this.rendererSize = new E.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new E.Vector2(1e3, 1e3), this.loadingStrategy = e.loadingStrategy ? e.loadingStrategy.toUpperCase() : "INCREMENTAL", this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.proxy = e.proxy, this.drawBoundingVolume = !!e.drawBoundingVolume && e.drawBoundingVolume, this.displayErrors = e.displayErrors, this.displayCopyright = e.displayCopyright, e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid =
|
|
3445
|
+
if (a.splatsMesh = e.splatsMesh, this.contentURL = [], e.domWidth && e.domHeight ? this.rendererSize = new E.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new E.Vector2(1e3, 1e3), this.loadingStrategy = e.loadingStrategy ? e.loadingStrategy.toUpperCase() : "INCREMENTAL", this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.proxy = e.proxy, this.drawBoundingVolume = !!e.drawBoundingVolume && e.drawBoundingVolume, this.displayErrors = e.displayErrors, this.displayCopyright = e.displayCopyright, e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid = jt(), e.tileLoader) this.tileLoader = e.tileLoader;
|
|
3445
3446
|
else {
|
|
3446
3447
|
const i = {};
|
|
3447
|
-
i.meshCallback = e.meshCallback ? e.meshCallback : (
|
|
3448
|
-
|
|
3449
|
-
}, i.pointsCallback = e.pointsCallback ? e.pointsCallback : (
|
|
3450
|
-
|
|
3451
|
-
}, i.proxy = this.proxy, i.renderer = e.renderer, i.dracoLoader = e.dracoLoader, i.ktx2Loader = e.ktx2Loader,
|
|
3452
|
-
|
|
3448
|
+
i.meshCallback = e.meshCallback ? e.meshCallback : (r, n) => {
|
|
3449
|
+
r.material.wireframe = !1, r.material.side = E.DoubleSide;
|
|
3450
|
+
}, i.pointsCallback = e.pointsCallback ? e.pointsCallback : (r, n) => {
|
|
3451
|
+
r.material.size = Math.pow(n, 0.33), r.material.sizeAttenuation = !0;
|
|
3452
|
+
}, i.proxy = this.proxy, i.renderer = e.renderer, i.dracoLoader = e.dracoLoader, i.ktx2Loader = e.ktx2Loader, a.tileLoader = new Ti(i);
|
|
3453
|
+
const s = this.update;
|
|
3454
|
+
this.update = (r) => {
|
|
3455
|
+
s.call(a, r), a.tileLoader.update();
|
|
3453
3456
|
};
|
|
3454
3457
|
}
|
|
3455
3458
|
if (this.displayCopyright = !!e.displayCopyright, this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.splatsCropRadius = Number.MAX_VALUE, this.splatsSizeMultiplier = 1, this.renderer = e.renderer, this.meshCallback = e.meshCallback, this.loadOutsideView = e.loadOutsideView, this.cameraOnLoad = e.cameraOnLoad, this.parentTile = e.parentTile, this.occlusionCullingService = e.occlusionCullingService, this.static = e.static, this.occlusionCullingService && (this.color = new E.Color(), this.color.setHex(16777215 * Math.random()), this.colorID = E.MathUtils.clamp(255 * a.color.r, 0, 255) << 16 ^ E.MathUtils.clamp(255 * a.color.g, 0, 255) << 8 ^ E.MathUtils.clamp(255 * a.color.b, 0, 255)), this.static && (this.matrixAutoUpdate = !1, this.matrixWorldAutoUpdate = !1), this.childrenTiles = [], this.meshContent = [], this.tileContent, this.refine, this.rootPath, this.geometricError, this.boundingVolume, this.json, this.materialVisibility = !1, this.level = e.level ? e.level : 0, this.hasMeshContent = 0, this.hasUnloadedJSONContent = 0, this.centerModel = e.centerModel, this.abortController = new AbortController(), this.onLoadCallback = e.onLoadCallback, e.json) a._setup(e);
|
|
@@ -3462,11 +3465,11 @@ class Wt extends E.Object3D {
|
|
|
3462
3465
|
}
|
|
3463
3466
|
(a.proxy ? () => fetch(a.proxy, { method: "POST", body: t, signal: a.abortController.signal }) : () => fetch(t, { signal: a.abortController.signal }))().then((i) => {
|
|
3464
3467
|
if (!i.ok) throw new Error(`couldn't load "${e.url}". Request failed with status ${i.status} : ${i.statusText}`);
|
|
3465
|
-
i.json().then((s) =>
|
|
3466
|
-
a._setup({ rootPath:
|
|
3468
|
+
i.json().then((s) => Ra(s, t)).then((s) => {
|
|
3469
|
+
a._setup({ rootPath: be.dirname(e.url), json: s });
|
|
3467
3470
|
});
|
|
3468
3471
|
}).catch((i) => {
|
|
3469
|
-
a.displayErrors &&
|
|
3472
|
+
a.displayErrors && lt(i);
|
|
3470
3473
|
});
|
|
3471
3474
|
}
|
|
3472
3475
|
}
|
|
@@ -3488,14 +3491,14 @@ class Wt extends E.Object3D {
|
|
|
3488
3491
|
}
|
|
3489
3492
|
async _setup(e) {
|
|
3490
3493
|
const a = this;
|
|
3491
|
-
if (e.json.extensionsRequired && (e.json.extensionsRequired.includes("JDULTRA_gaussian_splats") || e.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2")) && (a.splatsMesh = new
|
|
3494
|
+
if (e.json.extensionsRequired && (e.json.extensionsRequired.includes("JDULTRA_gaussian_splats") || e.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2")) && (a.splatsMesh = new Ni(a.tileLoader.renderer), a.splatsMesh.setSplatsCropRadius(a.splatsCropRadius), a.splatsMesh.setSplatsSizeMultiplier(a.splatsSizeMultiplier), a.static && (a.splatsMesh.matrixWorldAutoUpdate = !1), a.add(a.splatsMesh), a.updateMatrices()), e.json.root ? (a.json = e.json.root, a.json.refine || (a.json.refine = e.json.refine), a.json.geometricError || (a.json.geometricError = e.json.geometricError), a.json.transform || (a.json.transform = e.json.transform), a.json.boundingVolume || (a.json.boundingVolume = e.json.boundingVolume)) : a.json = e.json, a.json.children || (a.json.getChildren ? a.json.children = await a.json.getChildren() : a.json.children = []), a.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, a.json.refine ? a.refine = a.json.refine : a.refine = e.parentRefine, a.json.geometricError ? a.geometricError = a.json.geometricError : a.geometricError = e.parentGeometricError, a.json.transform) {
|
|
3492
3495
|
let A = new E.Matrix4();
|
|
3493
3496
|
A.elements = a.json.transform, a.applyMatrix4(A);
|
|
3494
3497
|
}
|
|
3495
|
-
if (a.json.boundingVolume) if (a.json.boundingVolume.box) a.boundingVolume = new
|
|
3498
|
+
if (a.json.boundingVolume) if (a.json.boundingVolume.box) a.boundingVolume = new Z(a.json.boundingVolume.box);
|
|
3496
3499
|
else if (a.json.boundingVolume.region) {
|
|
3497
3500
|
const A = a.json.boundingVolume.region;
|
|
3498
|
-
a._transformWGS84ToCartesian(A[0], A[1], A[4],
|
|
3501
|
+
a._transformWGS84ToCartesian(A[0], A[1], A[4], oe), a._transformWGS84ToCartesian(A[2], A[3], A[5], ye), oe.lerp(ye, 0.5), a.boundingVolume = new E.Sphere(new E.Vector3(oe.x, oe.y, oe.z), oe.distanceTo(ye));
|
|
3499
3502
|
} else if (a.json.boundingVolume.sphere) {
|
|
3500
3503
|
const A = a.json.boundingVolume.sphere;
|
|
3501
3504
|
a.boundingVolume = new E.Sphere(new E.Vector3(A[0], A[1], A[2]), A[3]);
|
|
@@ -3504,10 +3507,10 @@ class Wt extends E.Object3D {
|
|
|
3504
3507
|
function t(A) {
|
|
3505
3508
|
A.uri && A.uri.includes("json") || A.url && A.url.includes("json") ? a.hasUnloadedJSONContent++ : a.hasMeshContent++;
|
|
3506
3509
|
}
|
|
3507
|
-
if (a.json.content ? (t(a.json.content), a.hasMeshContent == 0 && (a.level = Math.max(0, a.parentTile ? a.parentTile.level + 0.01 : 0)), a._load()) : a.json.contents && (a.json.contents.forEach((A) => t(A)), a.hasMeshContent == 0 && (a.level = Math.max(0, a.parentTile ? a.parentTile.level + 0.01 : 0))), a.centerModel && (
|
|
3510
|
+
if (a.json.content ? (t(a.json.content), a.hasMeshContent == 0 && (a.level = Math.max(0, a.parentTile ? a.parentTile.level + 0.01 : 0)), a._load()) : a.json.contents && (a.json.contents.forEach((A) => t(A)), a.hasMeshContent == 0 && (a.level = Math.max(0, a.parentTile ? a.parentTile.level + 0.01 : 0))), a.centerModel && (ye.copy(a.boundingVolume.center), this.json.boundingVolume.region && (this._transformWGS84ToCartesian(0.5 * (this.json.boundingVolume.region[0] + this.json.boundingVolume.region[2]), 0.5 * (this.json.boundingVolume.region[1] + this.json.boundingVolume.region[3]), 0.5 * (this.json.boundingVolume.region[4] + this.json.boundingVolume.region[5]), oe), ht.setFromUnitVectors(oe.normalize(), Ji.normalize()), a.applyQuaternion(ht)), ye.applyMatrix4(a.matrix), a.position.sub(ye), a.updateMatrices()), a.onLoadCallback && a.onLoadCallback(a), a.isSetup = !0, a.level > 0 && a.drawBoundingVolume) if (a.bbox && console.log("double setup"), this.boundingVolume.aabb) {
|
|
3508
3511
|
let A = this.boundingVolume.aabb.clone();
|
|
3509
3512
|
A.applyMatrix4(this.matrixWorld), a.bbox = new E.Box3Helper(A, new E.Color(Math.random(), Math.random(), Math.random())), a.add(a.bbox), a.bbox.material.visible = !1;
|
|
3510
|
-
} else a.boundingVolume instanceof
|
|
3513
|
+
} else a.boundingVolume instanceof Z && (a.bbox = a.boundingVolume.helper(), a.add(a.bbox), a.bbox.material.visible = !1);
|
|
3511
3514
|
}
|
|
3512
3515
|
_assembleURL(e, a) {
|
|
3513
3516
|
e.endsWith("/") || (e += "/");
|
|
@@ -3535,32 +3538,32 @@ class Wt extends E.Object3D {
|
|
|
3535
3538
|
Promise.all(i);
|
|
3536
3539
|
}
|
|
3537
3540
|
}
|
|
3538
|
-
async function A(i, s, r,
|
|
3539
|
-
let
|
|
3540
|
-
i.uri ?
|
|
3541
|
-
const
|
|
3542
|
-
if (
|
|
3543
|
-
var
|
|
3544
|
-
for (let g in t.queryParams) t.queryParams.hasOwnProperty(g) && (
|
|
3545
|
-
|
|
3541
|
+
async function A(i, s, r, n) {
|
|
3542
|
+
let o;
|
|
3543
|
+
i.uri ? o = i.uri : i.url && (o = i.url);
|
|
3544
|
+
const c = /^(?:http|https|ftp|tcp|udp):\/\/\S+/;
|
|
3545
|
+
if (c.test(t.rootPath) ? c.test(o) || (o = t._assembleURL(t.rootPath, o)) : be.isAbsolute(t.rootPath) && (o = t.rootPath + be.sep + o), o = t._extractQueryParams(o, t.queryParams), t.queryParams) {
|
|
3546
|
+
var b = "";
|
|
3547
|
+
for (let g in t.queryParams) t.queryParams.hasOwnProperty(g) && (b += "&" + g + "=" + t.queryParams[g]);
|
|
3548
|
+
o.includes("?") ? o += b : o += "?" + b.substring(1);
|
|
3546
3549
|
}
|
|
3547
|
-
if (
|
|
3548
|
-
t.tileLoader.get(t.abortController, t.uuid,
|
|
3550
|
+
if (o) if (t.contentURL.push(o), n && (o.includes(".b3dm") || o.includes(".glb") || o.includes(".gltf"))) try {
|
|
3551
|
+
t.tileLoader.get(t.abortController, t.uuid, o, (g) => {
|
|
3549
3552
|
t.deleted || (g.asset && g.asset.copyright && (g.asset.copyright.split(";").forEach((l) => {
|
|
3550
|
-
|
|
3551
|
-
}), t.displayCopyright &&
|
|
3553
|
+
X[l] ? X[l]++ : X[l] = 1;
|
|
3554
|
+
}), t.displayCopyright && ma()), t.meshContent.push(g), t.splatsMesh || (g.traverse((l) => {
|
|
3552
3555
|
if ((l.isMesh || l.isPoints) && l.layers.disable(0), l.isMesh && t.occlusionCullingService) {
|
|
3553
|
-
const
|
|
3554
|
-
for (let I = 0; I <
|
|
3556
|
+
const d = l.geometry.attributes.position, f = [];
|
|
3557
|
+
for (let I = 0; I < d.count; I++) f.push(t.color.r, t.color.g, t.color.b);
|
|
3555
3558
|
l.geometry.setAttribute("color", new E.Float32BufferAttribute(f, 3));
|
|
3556
3559
|
}
|
|
3557
3560
|
}), t.add(g), t.updateMatrices()));
|
|
3558
3561
|
}, t.cameraOnLoad ? () => t.loadingStrategy == "IMMEDIATE" ? t._calculateDistanceToCamera(t.cameraOnLoad) : t.loadingStrategy == "INCREMENTAL" ? t.parentTile ? t.parentTile._calculateDistanceToCamera(t.cameraOnLoad) / Math.max(1, t.parentTile.level) : t._calculateDistanceToCamera(t.cameraOnLoad) / Math.max(1, t.level) : t.loadingStrategy == "PERLEVEL" ? t.parentTile ? t.level + t.parentTile._calculateDistanceToCamera(t.cameraOnLoad) : t.level + t._calculateDistanceToCamera(t.cameraOnLoad) : 0 : () => 0, () => t._getSiblings(), t.level, t.loadingStrategy, !t.json.boundingVolume.region, !!t.json.boundingVolume.region, t.geometricError, t.splatsMesh);
|
|
3559
3562
|
} catch (g) {
|
|
3560
|
-
t.displayErrors &&
|
|
3563
|
+
t.displayErrors && lt(g);
|
|
3561
3564
|
}
|
|
3562
|
-
else r &&
|
|
3563
|
-
t.jsonReceived = !0, t.deleted || (g.rootPath =
|
|
3565
|
+
else r && o.includes(".json") && (t.jsonRequested = o, t.tileLoader.get(t.abortController, t.uuid, o, async (g) => {
|
|
3566
|
+
t.jsonReceived = !0, t.deleted || (g.rootPath = be.dirname(o), t.json.children.push(g), s == null ? delete t.json.content : t.json.contents.splice(s, 1), t.hasUnloadedJSONContent--);
|
|
3564
3567
|
}));
|
|
3565
3568
|
}
|
|
3566
3569
|
}
|
|
@@ -3568,8 +3571,8 @@ class Wt extends E.Object3D {
|
|
|
3568
3571
|
const e = this;
|
|
3569
3572
|
e.meshContent.forEach((a) => {
|
|
3570
3573
|
a && a.asset && a.asset.copyright && (a.asset.copyright.split(";").forEach((t) => {
|
|
3571
|
-
|
|
3572
|
-
}), e.displayCopyright &&
|
|
3574
|
+
X[t] && X[t]--;
|
|
3575
|
+
}), e.displayCopyright && ma());
|
|
3573
3576
|
}), e.childrenTiles.forEach((a) => a.dispose()), e.deleted = !0, e.splatsMesh && (e.meshContent.forEach((a) => a.hide()), e.parentTile || (e.splatsMesh.dispose(), e.splatsMesh = void 0)), e.contentURL && (e.contentURL.forEach((a) => {
|
|
3574
3577
|
e.tileLoader.invalidate(a, e.uuid);
|
|
3575
3578
|
}), e.contentURL = []), e.abortController && !e.jsonRequested && e.abortController.abort("tile not needed"), this.parent = null, e.meshContent = [], e.bbox && e.bbox.dispose(), this.dispatchEvent({ type: "removed" });
|
|
@@ -3581,8 +3584,8 @@ class Wt extends E.Object3D {
|
|
|
3581
3584
|
for (let a = e.meshContent.length - 1; a >= 0; a--) {
|
|
3582
3585
|
const t = e.meshContent[a];
|
|
3583
3586
|
t && t.asset && t.asset.copyright && (t.asset.copyright.split(";").forEach((A) => {
|
|
3584
|
-
|
|
3585
|
-
}), e.displayCopyright &&
|
|
3587
|
+
X[A] && X[A]--;
|
|
3588
|
+
}), e.displayCopyright && ma()), e.remove(t);
|
|
3586
3589
|
}
|
|
3587
3590
|
e.splatsMesh && e.meshContent.forEach((a) => a.hide()), e.meshContent = [], e.contentURL.forEach((a) => {
|
|
3588
3591
|
e.tileLoader.invalidate(a, e.uuid);
|
|
@@ -3597,17 +3600,17 @@ class Wt extends E.Object3D {
|
|
|
3597
3600
|
}
|
|
3598
3601
|
raycast(e, a) {
|
|
3599
3602
|
if (this.splatsMesh) {
|
|
3600
|
-
|
|
3603
|
+
ze.copy(e.ray), Ve.copy(this.matrixWorld).invert(), ze.applyMatrix4(Ve);
|
|
3601
3604
|
let t = !1;
|
|
3602
|
-
if (this.boundingVolume instanceof
|
|
3605
|
+
if (this.boundingVolume instanceof Z) t = this.boundingVolume.intersectsRay(ze);
|
|
3603
3606
|
else {
|
|
3604
3607
|
if (!(this.boundingVolume instanceof E.Sphere)) return !1;
|
|
3605
3608
|
t = ray.intersectsSphere(this.boundingVolume);
|
|
3606
3609
|
}
|
|
3607
|
-
return t && this.materialVisibility && this.splatsReady && (
|
|
3608
|
-
A.isSplatsBatch && (A.raycast(
|
|
3610
|
+
return t && this.materialVisibility && this.splatsReady && (Ye.length = 0, this.meshContent.forEach((A) => {
|
|
3611
|
+
A.isSplatsBatch && (A.raycast(ze, Ye, e.params.Points.threshold), Ye.forEach((i) => {
|
|
3609
3612
|
i.point.applyMatrix4(this.matrixWorld);
|
|
3610
|
-
}), a.push(...
|
|
3613
|
+
}), a.push(...Ye));
|
|
3611
3614
|
})), t;
|
|
3612
3615
|
}
|
|
3613
3616
|
return super.raycast(e, a);
|
|
@@ -3616,7 +3619,7 @@ class Wt extends E.Object3D {
|
|
|
3616
3619
|
const a = new E.Frustum();
|
|
3617
3620
|
a.setFromProjectionMatrix(new E.Matrix4().multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse));
|
|
3618
3621
|
let t = [0], A = [0], i = [0], s = [0];
|
|
3619
|
-
return this.refine == "REPLACE" ? this.loadingStrategy === "IMMEDIATE" ? (this._updateImmediate(e, a), this._statsImmediate(i, t, s, A)) : (this._update(e, a), this._stats(i, t, s, A)) : (this._update(e, a), this._stats(i, t, s, A)), t > 0 && (s[0] /= t[0]), this.splatsMesh && (
|
|
3622
|
+
return this.refine == "REPLACE" ? this.loadingStrategy === "IMMEDIATE" ? (this._updateImmediate(e, a), this._statsImmediate(i, t, s, A)) : (this._update(e, a), this._stats(i, t, s, A)) : (this._update(e, a), this._stats(i, t, s, A)), t > 0 && (s[0] /= t[0]), this.splatsMesh && (Ia.copy(e.position), Ve.copy(this.matrixWorld).invert(), Ia.applyMatrix4(Ve), this.splatsMesh.sort(Ia)), { numTilesLoaded: t[0], numTilesRendered: A[0], maxLOD: i[0], percentageLoaded: s[0] };
|
|
3620
3623
|
}
|
|
3621
3624
|
_updateImmediate(e, a) {
|
|
3622
3625
|
this._computeMetricRecursive(e, a), this._updateNodeVisibilityImmediate(), this._expandTreeImmediate(e), this.shouldBeVisible = this.metric > 0 || !!this.loadOutsideView, this._shouldBeVisibleUpdateImmediate(), this._trimTreeImmediate(), this._loadMeshImmediate();
|
|
@@ -3734,7 +3737,7 @@ class Wt extends E.Object3D {
|
|
|
3734
3737
|
const a = this;
|
|
3735
3738
|
for (let t = a.json.children.length - 1; t >= 0; t--) a.json.children[t].root || a.json.children[t].children || a.json.children[t].getChildren || a.json.children[t].content || a.json.children[t].contents || a.json.children.splice(t, 1);
|
|
3736
3739
|
a.json.children.forEach((t) => {
|
|
3737
|
-
let A = new
|
|
3740
|
+
let A = new Yt({ parentTile: a, queryParams: a.queryParams, parentGeometricError: a.geometricError, parentBoundingVolume: a.boundingVolume, parentRefine: a.refine, json: t, rootPath: a.rootPath, geometricErrorMultiplier: a.geometricErrorMultiplier, loadOutsideView: a.loadOutsideView, level: Math.floor(a.level) + 1, tileLoader: a.tileLoader, cameraOnLoad: e, occlusionCullingService: a.occlusionCullingService, renderer: a.renderer, static: a.static, centerModel: !1, displayErrors: a.displayErrors, displayCopyright: a.displayCopyright, distanceBias: a.distanceBias, loadingStrategy: a.loadingStrategy, drawBoundingVolume: a.drawBoundingVolume, splatsMesh: a.splatsMesh });
|
|
3738
3741
|
a.childrenTiles.push(A), a.add(A);
|
|
3739
3742
|
}), a.updateMatrices(!0);
|
|
3740
3743
|
}
|
|
@@ -3794,21 +3797,19 @@ class Wt extends E.Object3D {
|
|
|
3794
3797
|
}
|
|
3795
3798
|
_calculateUpdateMetric(e, a) {
|
|
3796
3799
|
let t = 0;
|
|
3797
|
-
if (this.boundingVolume instanceof
|
|
3798
|
-
if (
|
|
3799
|
-
t = Math.max(0,
|
|
3800
|
+
if (this.boundingVolume instanceof Z) {
|
|
3801
|
+
if (fe.copy(this.boundingVolume), fe.applyMatrix4(this.matrixWorld), !fe.inFrustum(a)) return -1;
|
|
3802
|
+
t = Math.max(0, fe.distanceToPoint(e.position) - e.near);
|
|
3800
3803
|
} else {
|
|
3801
3804
|
if (!(this.boundingVolume instanceof E.Sphere)) return console.error("unsupported shape"), -1;
|
|
3802
|
-
if (
|
|
3803
|
-
t = Math.max(0, e.position.distanceTo(
|
|
3805
|
+
if (te.copy(this.boundingVolume), te.applyMatrix4(this.matrixWorld), !a.intersectsSphere(te)) return -1;
|
|
3806
|
+
t = Math.max(0, e.position.distanceTo(te.center) - te.radius - e.near);
|
|
3804
3807
|
}
|
|
3805
3808
|
if (t = Math.pow(t, this.distanceBias), t == 0) return 0;
|
|
3806
3809
|
const A = this.matrixWorld.getMaxScaleOnAxis();
|
|
3807
3810
|
this.renderer && this.renderer.getDrawingBufferSize(this.rendererSize);
|
|
3808
3811
|
let i = this.rendererSize.y, s = e.fov;
|
|
3809
|
-
e.aspect < 1 && (s *= e.aspect, i = this.rendererSize.x);
|
|
3810
|
-
let r = 2 * Math.tan(0.5 * s * 0.017453292519943295) * t;
|
|
3811
|
-
return 16 * window.devicePixelRatio * r / (i * A);
|
|
3812
|
+
return e.aspect < 1 && (s *= e.aspect, i = this.rendererSize.x), 16 * (2 * Math.tan(0.5 * s * 0.017453292519943295) * t) / (i * A);
|
|
3812
3813
|
}
|
|
3813
3814
|
_getSiblings() {
|
|
3814
3815
|
const e = this, a = [];
|
|
@@ -3823,7 +3824,7 @@ class Wt extends E.Object3D {
|
|
|
3823
3824
|
}), a;
|
|
3824
3825
|
}
|
|
3825
3826
|
_calculateDistanceToCamera(e) {
|
|
3826
|
-
return this.boundingVolume instanceof
|
|
3827
|
+
return this.boundingVolume instanceof Z ? (fe.copy(this.boundingVolume), fe.applyMatrix4(this.matrixWorld), Math.max(0, fe.distanceToPoint(e.position))) : this.boundingVolume instanceof E.Sphere ? (te.copy(this.boundingVolume), te.applyMatrix4(this.matrixWorld), Math.max(0, e.position.distanceTo(te.center) - te.radius)) : (console.error("unsupported shape"), -1);
|
|
3827
3828
|
}
|
|
3828
3829
|
setGeometricErrorMultiplier(e) {
|
|
3829
3830
|
this.geometricErrorMultiplier = e, this.childrenTiles.forEach((a) => a.setGeometricErrorMultiplier(e));
|
|
@@ -3832,33 +3833,33 @@ class Wt extends E.Object3D {
|
|
|
3832
3833
|
this.distanceBias = e, this.childrenTiles.forEach((a) => a.setDistanceBias(e));
|
|
3833
3834
|
}
|
|
3834
3835
|
_transformWGS84ToCartesian(e, a, t, A) {
|
|
3835
|
-
const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e),
|
|
3836
|
-
A.set(
|
|
3836
|
+
const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), n = Math.sin(a), o = i + t, c = o * s * r, b = o * s * Math.sin(e), g = (0.993305615557957 * i + t) * n;
|
|
3837
|
+
A.set(c, b, g);
|
|
3837
3838
|
}
|
|
3838
3839
|
}
|
|
3839
|
-
function
|
|
3840
|
+
function lt(h) {
|
|
3840
3841
|
var e = document.createElement("div");
|
|
3841
|
-
e.textContent =
|
|
3842
|
+
e.textContent = h, e.style.position = "fixed", e.style.top = "10px", e.style.left = "50%", e.style.transform = "translateX(-50%)", e.style.padding = "10px", e.style.backgroundColor = "#ff8800", e.style.color = "#ffffff", e.style.zIndex = "9999", document.body.appendChild(e), setTimeout(function() {
|
|
3842
3843
|
e.remove();
|
|
3843
3844
|
}, 8e3);
|
|
3844
3845
|
}
|
|
3845
|
-
function
|
|
3846
|
-
|
|
3847
|
-
const
|
|
3846
|
+
function ma() {
|
|
3847
|
+
Y || ((Y = document.createElement("div")).style.position = "fixed", Y.style.bottom = "20px", Y.style.left = "20px", Y.style.color = "white", Y.style.textShadow = "2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000", Y.style.padding = "10px", Y.style.backgroundColor = "rgba(0, 0, 0, 0.1)", document.body.appendChild(Y));
|
|
3848
|
+
const h = Pi();
|
|
3848
3849
|
let e = "";
|
|
3849
|
-
|
|
3850
|
+
h.forEach((a) => {
|
|
3850
3851
|
e += a + ", ";
|
|
3851
|
-
}), e = e.slice(0, -2),
|
|
3852
|
+
}), e = e.slice(0, -2), Y.textContent = e;
|
|
3852
3853
|
}
|
|
3853
|
-
const N = new E.Sphere(new E.Vector3(0, 0, 0), 1),
|
|
3854
|
-
class
|
|
3854
|
+
const N = new E.Sphere(new E.Vector3(0, 0, 0), 1), ce = new E.Vector3(0, 0, 0), Ba = new E.Vector3(0, 0, 0), qi = new E.Vector3(0, 1, 0), Ca = new E.Vector2(), gt = new E.Quaternion(), ft = new E.Matrix4();
|
|
3855
|
+
class Ma extends E.Object3D {
|
|
3855
3856
|
constructor(e) {
|
|
3856
3857
|
super();
|
|
3857
3858
|
const a = this;
|
|
3858
|
-
if (e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid =
|
|
3859
|
+
if (e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid = jt(), e.tileLoader ? this.tileLoader = e.tileLoader : console.error("an instanced tileset must be provided an InstancedTilesetLoader"), this.master = e.master, this.loadOutsideView = e.loadOutsideView, this.cameraOnLoad = e.cameraOnLoad, this.parentTile = e.parentTile, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.childrenTiles = [], this.jsonChildren = [], this.meshContent = /* @__PURE__ */ new Set(), this.static = e.static, this.static && (this.matrixAutoUpdate = !1, this.matrixWorldAutoUpdate = !1), this.tileContent, this.refinement, this.rootPath, this.geometricError, this.boundingVolume, this.json, this.materialVisibility = !1, this.inFrustum = !0, this.level = e.level ? e.level : 0, this.hasMeshContent = 0, this.hasUnloadedJSONContent = 0, this.centerModel = e.centerModel, this.deleted = !1, this.abortController = new AbortController(), e.json) this.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, e.json.children && (this.jsonChildren = e.json.children), a.setup(e);
|
|
3859
3860
|
else if (e.url) {
|
|
3860
3861
|
this.loadJson = (i, s) => {
|
|
3861
|
-
const r =
|
|
3862
|
+
const r = be.dirname(s);
|
|
3862
3863
|
a.setup({ rootPath: r, json: i, onLoadCallback: e.onLoadCallback });
|
|
3863
3864
|
};
|
|
3864
3865
|
var t = e.url;
|
|
@@ -3874,10 +3875,10 @@ class Ga extends E.Object3D {
|
|
|
3874
3875
|
const a = this;
|
|
3875
3876
|
e.json.root ? (a.json = e.json.root, !a.json.children && a.json.getChildren && (a.json.children = await a.json.getChildren()), a.jsonChildren = a.json.children, a.json.refinement || (a.json.refinement = e.json.refinement), a.json.geometricError || (a.json.geometricError = e.json.geometricError), a.json.transform || (a.json.transform = e.json.transform), a.json.boundingVolume || (a.json.boundingVolume = e.json.boundingVolume)) : (a.json = e.json, !a.json.children && a.json.getChildren && (a.json.children = await a.json.getChildren(), a.jsonChildren = a.json.children)), a.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, a.json.refinement ? a.refinement = a.json.refinement : a.refinement = e.parentRefinement, a.json.geometricError ? a.geometricError = a.json.geometricError : a.geometricError = e.parentGeometricError;
|
|
3876
3877
|
let t = new E.Matrix4();
|
|
3877
|
-
if (a.json.transform && !a.centerModel && (t.elements = a.json.transform), a.applyMatrix4(t), a.parentTile && a.parentTile.matrix && (a.matrix.premultiply(a.parentTile.matrix), a.matrix.decompose(a.position, a.quaternion, a.scale)), a.matrixWorldNeedsUpdate = !0, a.updateWorldMatrix(!0, !0), a.json.boundingVolume) if (a.json.boundingVolume.box) a.boundingVolume = new
|
|
3878
|
+
if (a.json.transform && !a.centerModel && (t.elements = a.json.transform), a.applyMatrix4(t), a.parentTile && a.parentTile.matrix && (a.matrix.premultiply(a.parentTile.matrix), a.matrix.decompose(a.position, a.quaternion, a.scale)), a.matrixWorldNeedsUpdate = !0, a.updateWorldMatrix(!0, !0), a.json.boundingVolume) if (a.json.boundingVolume.box) a.boundingVolume = new Z(a.json.boundingVolume.box);
|
|
3878
3879
|
else if (a.json.boundingVolume.region) {
|
|
3879
3880
|
const i = a.json.boundingVolume.region;
|
|
3880
|
-
a.transformWGS84ToCartesian(i[0], i[1], i[4],
|
|
3881
|
+
a.transformWGS84ToCartesian(i[0], i[1], i[4], ce), a.transformWGS84ToCartesian(i[2], i[3], i[5], Ba), ce.lerp(Ba, 0.5), a.boundingVolume = new E.Sphere(new E.Vector3(ce.x, ce.y, ce.z), ce.distanceTo(Ba));
|
|
3881
3882
|
} else if (a.json.boundingVolume.sphere) {
|
|
3882
3883
|
const i = a.json.boundingVolume.sphere;
|
|
3883
3884
|
a.boundingVolume = new E.Sphere(new E.Vector3(i[0], i[1], i[2]), i[3]);
|
|
@@ -3888,7 +3889,7 @@ class Ga extends E.Object3D {
|
|
|
3888
3889
|
}
|
|
3889
3890
|
if (a.json.content ? (A(a.json.content), a.load()) : a.json.contents && (a.json.contents.forEach((i) => A(i)), a.load()), a.centerModel) {
|
|
3890
3891
|
const i = new E.Sphere();
|
|
3891
|
-
a.boundingVolume instanceof
|
|
3892
|
+
a.boundingVolume instanceof Z ? i.copy(a.boundingVolume.sphere) : a.boundingVolume instanceof E.Sphere && i.copy(a.boundingVolume), this.json.boundingVolume.region && (a.transformWGS84ToCartesian(0.5 * (a.json.boundingVolume.region[0] + a.json.boundingVolume.region[2]), 0.5 * (a.json.boundingVolume.region[1] + a.json.boundingVolume.region[3]), 0.5 * (a.json.boundingVolume.region[4] + a.json.boundingVolume.region[5]), ce), gt.setFromUnitVectors(ce.normalize(), qi.normalize()), a.master.applyQuaternion(gt), a.master.updateWorldMatrix(!1, !1)), ft.makeTranslation(-i.center.x * a.scale.x, -i.center.y * a.scale.y, -i.center.z * a.scale.z), a.master.matrix.multiply(ft), a.master.matrix.decompose(a.master.position, a.master.quaternion, a.master.scale);
|
|
3892
3893
|
}
|
|
3893
3894
|
a.isSetup = !0, e.onLoadCallback && e.onLoadCallback(a);
|
|
3894
3895
|
}
|
|
@@ -3919,7 +3920,7 @@ class Ga extends E.Object3D {
|
|
|
3919
3920
|
let A;
|
|
3920
3921
|
t.uri ? A = t.uri : t.url && (A = t.url);
|
|
3921
3922
|
const i = /^(?:http|https|ftp|tcp|udp):\/\/\S+/;
|
|
3922
|
-
if (i.test(e.rootPath) ? i.test(A) || (A = e.assembleURL(e.rootPath, A)) :
|
|
3923
|
+
if (i.test(e.rootPath) ? i.test(A) || (A = e.assembleURL(e.rootPath, A)) : be.isAbsolute(e.rootPath) && (A = e.rootPath + be.sep + A), A = e.extractQueryParams(A, e.queryParams), e.queryParams) {
|
|
3923
3924
|
var s = "";
|
|
3924
3925
|
for (let r in e.queryParams) e.queryParams.hasOwnProperty(r) && (s += "&" + r + "=" + e.queryParams[r]);
|
|
3925
3926
|
A.includes("?") ? A += s : A += "?" + s.substring(1);
|
|
@@ -3932,7 +3933,7 @@ class Ga extends E.Object3D {
|
|
|
3932
3933
|
this.deleted || this.meshContent.add(e);
|
|
3933
3934
|
}
|
|
3934
3935
|
loadJson(e, a) {
|
|
3935
|
-
this.deleted || (this.json.children && (this.jsonChildren = this.json.children), e.rootPath =
|
|
3936
|
+
this.deleted || (this.json.children && (this.jsonChildren = this.json.children), e.rootPath = be.dirname(a), this.jsonChildren.push(e), this.hasUnloadedJSONContent--);
|
|
3936
3937
|
}
|
|
3937
3938
|
dispose() {
|
|
3938
3939
|
const e = this;
|
|
@@ -3958,7 +3959,7 @@ class Ga extends E.Object3D {
|
|
|
3958
3959
|
t.isSetup && (t.materialVisibility, t.boundingVolume && t.geometricError && (t.metric = t.calculateUpdateMetric(e, a)), t.childrenTiles.forEach((i) => i._update(e, a)), A(t.metric), function(i) {
|
|
3959
3960
|
i < 0 && t.hasMeshContent || (!t.hasMeshContent && t.rootPath || i < t.master.geometricErrorMultiplier * t.geometricError && t.meshContent.size > 0) && t.json && t.jsonChildren && t.childrenTiles.length != t.jsonChildren.length && t.jsonChildren.forEach((s) => {
|
|
3960
3961
|
if (!(s.root || s.children || s.getChildren || s.content || s.contents)) return;
|
|
3961
|
-
let r = new
|
|
3962
|
+
let r = new Ma({ parentTile: t, queryParams: t.queryParams, parentGeometricError: t.geometricError, parentBoundingVolume: t.boundingVolume, parentRefinement: t.refinement, json: s, rootPath: t.rootPath, loadOutsideView: t.loadOutsideView, level: t.level + 1, tileLoader: t.tileLoader, cameraOnLoad: e, master: t.master, centerModel: !1 });
|
|
3962
3963
|
t.childrenTiles.push(r);
|
|
3963
3964
|
});
|
|
3964
3965
|
}(t.metric), function(i) {
|
|
@@ -3995,7 +3996,7 @@ class Ga extends E.Object3D {
|
|
|
3995
3996
|
this.materialVisibility = e;
|
|
3996
3997
|
}
|
|
3997
3998
|
calculateUpdateMetric(e, a) {
|
|
3998
|
-
if (this.boundingVolume instanceof
|
|
3999
|
+
if (this.boundingVolume instanceof Z) {
|
|
3999
4000
|
if (N.copy(this.boundingVolume.sphere), N.applyMatrix4(this.matrixWorld), !a.intersectsSphere(N)) return -1;
|
|
4000
4001
|
} else {
|
|
4001
4002
|
if (!(this.boundingVolume instanceof E.Sphere)) return console.error("unsupported shape"), -1;
|
|
@@ -4004,9 +4005,9 @@ class Ga extends E.Object3D {
|
|
|
4004
4005
|
let t = Math.max(0, e.position.distanceTo(N.center) - N.radius);
|
|
4005
4006
|
if (t = Math.pow(t, this.distanceBias), t == 0) return 0;
|
|
4006
4007
|
const A = this.matrixWorld.getMaxScaleOnAxis();
|
|
4007
|
-
this.master._renderSize(
|
|
4008
|
-
let i =
|
|
4009
|
-
e.aspect < 1 && (s *= e.aspect, i =
|
|
4008
|
+
this.master._renderSize(Ca);
|
|
4009
|
+
let i = Ca.y, s = e.fov;
|
|
4010
|
+
e.aspect < 1 && (s *= e.aspect, i = Ca.x);
|
|
4010
4011
|
let r = 2 * Math.tan(0.5 * s * 0.017453292519943295) * t;
|
|
4011
4012
|
return 16 * window.devicePixelRatio * r / (i * A);
|
|
4012
4013
|
}
|
|
@@ -4023,19 +4024,19 @@ class Ga extends E.Object3D {
|
|
|
4023
4024
|
}), a;
|
|
4024
4025
|
}
|
|
4025
4026
|
calculateDistanceToCamera(e) {
|
|
4026
|
-
return this.boundingVolume instanceof
|
|
4027
|
+
return this.boundingVolume instanceof Z ? (N.copy(this.boundingVolume.sphere), N.applyMatrix4(this.matrixWorld)) : this.boundingVolume instanceof E.Sphere ? (N.copy(this.boundingVolume), N.applyMatrix4(this.matrixWorld)) : console.error("unsupported shape"), Math.max(0, e.position.distanceTo(N.center) - N.radius);
|
|
4027
4028
|
}
|
|
4028
4029
|
getWorldMatrix() {
|
|
4029
4030
|
return this.matrixWorld;
|
|
4030
4031
|
}
|
|
4031
4032
|
transformWGS84ToCartesian(e, a, t, A) {
|
|
4032
|
-
const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e),
|
|
4033
|
-
A.set(
|
|
4033
|
+
const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), n = Math.sin(a), o = i + t, c = o * s * r, b = o * s * Math.sin(e), g = (0.993305615557957 * i + t) * n;
|
|
4034
|
+
A.set(c, b, g);
|
|
4034
4035
|
}
|
|
4035
4036
|
}
|
|
4036
|
-
class
|
|
4037
|
+
class Xi extends E.Object3D {
|
|
4037
4038
|
constructor(e) {
|
|
4038
|
-
super(), e.master = this, e.domWidth && e.domHeight ? this.rendererSize = new E.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new E.Vector2(1e3, 1e3), this.renderer = e.renderer, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.tileset = new
|
|
4039
|
+
super(), e.master = this, e.domWidth && e.domHeight ? this.rendererSize = new E.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new E.Vector2(1e3, 1e3), this.renderer = e.renderer, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.tileset = new Ma(e), e.static && (this.matrixAutoUpdate = !1), this.tileLoader = e.tileLoader;
|
|
4039
4040
|
}
|
|
4040
4041
|
_renderSize(e) {
|
|
4041
4042
|
this.renderer ? this.renderer.getDrawingBufferSize(e) : e.copy(this.rendererSize);
|
|
@@ -4054,7 +4055,7 @@ class as extends E.Object3D {
|
|
|
4054
4055
|
this.geometricErrorMultiplier = e || 1;
|
|
4055
4056
|
}
|
|
4056
4057
|
}
|
|
4057
|
-
class
|
|
4058
|
+
class _i {
|
|
4058
4059
|
constructor(e) {
|
|
4059
4060
|
const a = this;
|
|
4060
4061
|
a.scene = e, a.instancedTiles = [], a.instancedMesh, a.reuseableMatrix = new E.Matrix4();
|
|
@@ -4095,7 +4096,7 @@ class Yi {
|
|
|
4095
4096
|
}), e.instancedMesh.dispose(), !0);
|
|
4096
4097
|
}
|
|
4097
4098
|
}
|
|
4098
|
-
class
|
|
4099
|
+
class Ki {
|
|
4099
4100
|
constructor() {
|
|
4100
4101
|
const e = this;
|
|
4101
4102
|
e.count = 0, e.json, e.instancedTiles = [];
|
|
@@ -4119,12 +4120,12 @@ class Wi {
|
|
|
4119
4120
|
return !(!this.json || this.instancedTiles.length != 0);
|
|
4120
4121
|
}
|
|
4121
4122
|
}
|
|
4122
|
-
let
|
|
4123
|
-
class
|
|
4123
|
+
let ue = 0;
|
|
4124
|
+
class Zi {
|
|
4124
4125
|
constructor(e, a) {
|
|
4125
|
-
if (this.zUpToYUpMatrix = new E.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.maxInstances = 1, this.proxy = a.proxy, a && (this.meshCallback = a.meshCallback, this.pointsCallback = a.pointsCallback, a.maxCachedItems && (this.maxCachedItems = a.maxCachedItems), a.maxInstances && (this.maxInstances = a.maxInstances)), this.gltfLoader = new
|
|
4126
|
+
if (this.zUpToYUpMatrix = new E.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.maxInstances = 1, this.proxy = a.proxy, a && (this.meshCallback = a.meshCallback, this.pointsCallback = a.pointsCallback, a.maxCachedItems && (this.maxCachedItems = a.maxCachedItems), a.maxInstances && (this.maxInstances = a.maxInstances)), this.gltfLoader = new St(), a && a.dracoLoader) this.gltfLoader.setDRACOLoader(a.dracoLoader), this.hasDracoLoader = !0;
|
|
4126
4127
|
else {
|
|
4127
|
-
const t = new
|
|
4128
|
+
const t = new Ft();
|
|
4128
4129
|
t.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"), this.gltfLoader.setDRACOLoader(t), this.gltfLoader.hasDracoLoader = !0;
|
|
4129
4130
|
}
|
|
4130
4131
|
if (a && a.ktx2Loader) this.gltfLoader.setKTX2Loader(a.ktx2Loader), this.hasKTX2Loader = !0;
|
|
@@ -4132,20 +4133,20 @@ class ts {
|
|
|
4132
4133
|
const t = new L();
|
|
4133
4134
|
t.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(a.renderer), this.gltfLoader.setKTX2Loader(t), this.gltfLoader.hasKTX2Loader = !0;
|
|
4134
4135
|
}
|
|
4135
|
-
this.gltfLoader.setMeshoptDecoder(
|
|
4136
|
+
this.gltfLoader.setMeshoptDecoder(zt), this.hasMeshOptDecoder = !0, this.b3dmDecoder = new xt(this.gltfLoader), this.cache = new wt(), this.scene = e, this.ready = [], this.downloads = [], this.nextReady = [], this.nextDownloads = [];
|
|
4136
4137
|
}
|
|
4137
4138
|
update() {
|
|
4138
4139
|
const e = this;
|
|
4139
4140
|
e._checkSize(), e.cache._data.forEach((a) => {
|
|
4140
4141
|
a.update();
|
|
4141
|
-
}),
|
|
4142
|
+
}), ue < 8 && e._download(), e._loadBatch();
|
|
4142
4143
|
}
|
|
4143
4144
|
_download() {
|
|
4144
4145
|
const e = this;
|
|
4145
4146
|
if (e.nextDownloads.length != 0 || (e._getNextDownloads(), e.nextDownloads.length != 0)) for (; e.nextDownloads.length > 0; ) {
|
|
4146
4147
|
const t = e.nextDownloads.shift();
|
|
4147
4148
|
if (t) {
|
|
4148
|
-
if (t.path.includes(".b3dm") && (a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path),
|
|
4149
|
+
if (t.path.includes(".b3dm") && (a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), ue++, a().then((A) => {
|
|
4149
4150
|
if (!A.ok) throw console.error("could not load tile with path : " + t.path), new Error(`couldn't load "${t.path}". Request failed with status ${A.status} : ${A.statusText}`);
|
|
4150
4151
|
return A.arrayBuffer();
|
|
4151
4152
|
}).then((A) => this.b3dmDecoder.parseB3DMInstanced(A, (i) => {
|
|
@@ -4153,12 +4154,12 @@ class ts {
|
|
|
4153
4154
|
}, e.maxInstances, t.sceneZupToYup, t.meshZupToYup)).then((A) => {
|
|
4154
4155
|
A.frustumCulled = !1, t.tile.setObject(A), e.ready.unshift(t);
|
|
4155
4156
|
}).catch((A) => console.error(A)).finally(() => {
|
|
4156
|
-
|
|
4157
|
-
})), t.path.includes(".glb") || t.path.includes(".gltf")) a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path),
|
|
4157
|
+
ue--;
|
|
4158
|
+
})), t.path.includes(".glb") || t.path.includes(".gltf")) a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), ue++, a().then((A) => {
|
|
4158
4159
|
if (!A.ok) throw new Error("missing content");
|
|
4159
4160
|
return A.arrayBuffer();
|
|
4160
4161
|
}).then(async (A) => {
|
|
4161
|
-
await
|
|
4162
|
+
await zi(this.gltfLoader), this.gltfLoader.parse(A, null, (i) => {
|
|
4162
4163
|
let s;
|
|
4163
4164
|
i.scene.asset = i.asset, t.sceneZupToYup && i.scene.applyMatrix4(this.zUpToYUpMatrix), i.scene.traverse((r) => {
|
|
4164
4165
|
r.geometricError = t.geometricError, r.isMesh && (t.meshZupToYup && r.applyMatrix4(this.zUpToYUpMatrix), e.meshCallback && e.meshCallback(r, r.geometricError)), r.isPoints && console.error("instanced point cloud is not supported");
|
|
@@ -4171,17 +4172,17 @@ class ts {
|
|
|
4171
4172
|
}, (A) => {
|
|
4172
4173
|
console.error("could not load tile : " + t.path);
|
|
4173
4174
|
}).finally(() => {
|
|
4174
|
-
|
|
4175
|
+
ue--;
|
|
4175
4176
|
});
|
|
4176
4177
|
else if (t.path.includes(".json")) {
|
|
4177
4178
|
var a;
|
|
4178
|
-
a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path),
|
|
4179
|
+
a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), ue++, a().then((A) => {
|
|
4179
4180
|
if (!A.ok) throw console.error("could not load tile with path : " + t.path), new Error(`couldn't load "${t.path}". Request failed with status ${A.status} : ${A.statusText}`);
|
|
4180
4181
|
return A.json();
|
|
4181
|
-
}).then((A) =>
|
|
4182
|
+
}).then((A) => Ra(A, t.path)).then((A) => {
|
|
4182
4183
|
t.tile.setObject(A, t.path), e.ready.unshift(t);
|
|
4183
4184
|
}).catch((A) => console.error(A)).finally(() => {
|
|
4184
|
-
|
|
4185
|
+
ue--;
|
|
4185
4186
|
});
|
|
4186
4187
|
}
|
|
4187
4188
|
}
|
|
@@ -4206,9 +4207,9 @@ class ts {
|
|
|
4206
4207
|
}
|
|
4207
4208
|
}
|
|
4208
4209
|
}
|
|
4209
|
-
get(e, a, t, A, i, s, r,
|
|
4210
|
-
const
|
|
4211
|
-
for (var f =
|
|
4210
|
+
get(e, a, t, A, i, s, r, n, o, c) {
|
|
4211
|
+
const b = this, g = function(d) {
|
|
4212
|
+
for (var f = d.split("/"), I = [], m = 0, u = 0; u < f.length; u++) {
|
|
4212
4213
|
var C = f[u];
|
|
4213
4214
|
C !== "." && C !== "" && C !== ".." ? I[m++] = C : C === ".." && m > 0 && m--;
|
|
4214
4215
|
}
|
|
@@ -4218,22 +4219,22 @@ class ts {
|
|
|
4218
4219
|
return B;
|
|
4219
4220
|
}(a);
|
|
4220
4221
|
if (!(a.includes(".b3dm") || a.includes(".json") || a.includes(".glb") || a.includes(".gltf"))) return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");
|
|
4221
|
-
const l =
|
|
4222
|
+
const l = b.cache.get(g);
|
|
4222
4223
|
if (l) l.addInstance(A);
|
|
4223
4224
|
else if (a.includes(".b3dm") || a.includes(".glb") || a.includes(".gltf")) {
|
|
4224
|
-
const
|
|
4225
|
-
|
|
4225
|
+
const d = new _i(b.scene);
|
|
4226
|
+
d.addInstance(A), b.cache.put(g, d);
|
|
4226
4227
|
const f = new AbortController();
|
|
4227
4228
|
e.signal.addEventListener("abort", () => {
|
|
4228
|
-
|
|
4229
|
-
}), this.downloads.push({ abortController: f, tile:
|
|
4229
|
+
d.getCount() == 0 && f.abort();
|
|
4230
|
+
}), this.downloads.push({ abortController: f, tile: d, key: g, path: a, distanceFunction: i, getSiblings: s, level: r, uuid: t, sceneZupToYup: n, meshZupToYup: o, geometricError: c, shouldDoDownload: () => !0 });
|
|
4230
4231
|
} else if (a.includes(".json")) {
|
|
4231
|
-
const
|
|
4232
|
-
|
|
4232
|
+
const d = new Ki();
|
|
4233
|
+
d.addInstance(A), b.cache.put(g, d);
|
|
4233
4234
|
const f = new AbortController();
|
|
4234
4235
|
e.signal.addEventListener("abort", () => {
|
|
4235
|
-
|
|
4236
|
-
}), this.downloads.push({ abortController: f, tile:
|
|
4236
|
+
d.getCount() == 0 && f.abort();
|
|
4237
|
+
}), this.downloads.push({ abortController: f, tile: d, key: g, path: a, distanceFunction: i, getSiblings: s, level: r, shouldDoDownload: () => !0 });
|
|
4237
4238
|
}
|
|
4238
4239
|
}
|
|
4239
4240
|
_getNextDownloads() {
|
|
@@ -4265,21 +4266,21 @@ class ts {
|
|
|
4265
4266
|
}
|
|
4266
4267
|
}
|
|
4267
4268
|
}
|
|
4268
|
-
async function
|
|
4269
|
+
async function zi(h) {
|
|
4269
4270
|
return new Promise((e) => {
|
|
4270
4271
|
const a = setInterval(() => {
|
|
4271
|
-
|
|
4272
|
+
h.hasDracoLoader && !h.dracoLoader || h.hasKTX2Loader && !h.ktx2Loader || (clearInterval(a), e());
|
|
4272
4273
|
}, 10);
|
|
4273
4274
|
});
|
|
4274
4275
|
}
|
|
4275
4276
|
export {
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
|
|
4282
|
-
|
|
4283
|
-
|
|
4277
|
+
Xi as InstancedOGC3DTile,
|
|
4278
|
+
Zi as InstancedTileLoader,
|
|
4279
|
+
Yt as OGC3DTile,
|
|
4280
|
+
Wi as OcclusionCullingService,
|
|
4281
|
+
Ti as TileLoader,
|
|
4282
|
+
Pi as getOGC3DTilesCopyrightInfo,
|
|
4283
|
+
Oi as splatsFragmentShader,
|
|
4284
|
+
Li as splatsVertexShader
|
|
4284
4285
|
};
|
|
4285
4286
|
//# sourceMappingURL=threedtiles.es.js.map
|