@galacean/engine-loader 1.3.26 → 1.3.28

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/module.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, ReferResource, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, Animator, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, Transform, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Camera, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, AnimatorStateMachine, SystemInfo, Shader, Material, PrimitiveMesh, SpriteAtlas, Sprite, ShaderFactory, ShaderLib, BackgroundMode, DirectLight, PointLight, SpotLight, UnlitMaterial } from '@galacean/engine-core';
1
+ import { Utils, AssetPromise, ModelMesh, BlendShape, Texture2D, Loader, Entity, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, ReferResource, Scene, resourceLoader, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, SystemInfo, Animator, Logger, IndexFormat, VertexElementFormat, GLCapabilityType, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, Transform, PBRMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Camera, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, AnimatorStateMachine, Shader, Material, PrimitiveMesh, SpriteAtlas, Sprite, ShaderFactory, ShaderLib, BackgroundMode, DirectLight, PointLight, SpotLight, UnlitMaterial } from '@galacean/engine-core';
2
2
  import { Color, Vector4, Vector3, Vector2, Quaternion, SphericalHarmonics3, MathUtil, BoundingBox, Matrix, Rect } from '@galacean/engine-math';
3
3
  import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
4
4
 
@@ -282,7 +282,7 @@ var FileHeader = /*#__PURE__*/ function() {
282
282
  var MeshDecoder = /*#__PURE__*/ function() {
283
283
  function MeshDecoder() {}
284
284
  MeshDecoder.decode = function decode(engine, bufferReader) {
285
- return new Promise(function(resolve) {
285
+ return new AssetPromise(function(resolve) {
286
286
  var modelMesh = new ModelMesh(engine);
287
287
  var jsonDataString = bufferReader.nextStr();
288
288
  var encodedMeshData = JSON.parse(jsonDataString);
@@ -416,7 +416,8 @@ function float32ArrayToVector2(float32Array, vertexCount) {
416
416
  var Texture2DDecoder = /*#__PURE__*/ function() {
417
417
  function Texture2DDecoder() {}
418
418
  Texture2DDecoder.decode = function decode(engine, bufferReader) {
419
- return new Promise(function(resolve, reject) {
419
+ var _this = this;
420
+ return new AssetPromise(function(resolve, reject) {
420
421
  var objectId = bufferReader.nextStr();
421
422
  var mipmap = !!bufferReader.nextUint8();
422
423
  var filterMode = bufferReader.nextUint8();
@@ -448,40 +449,52 @@ var Texture2DDecoder = /*#__PURE__*/ function() {
448
449
  engine.resourceManager._objectPool[objectId] = texture2D;
449
450
  resolve(texture2D);
450
451
  } else {
451
- var blob = new window.Blob([
452
- imagesData[0]
453
- ]);
454
- var img = new Image();
455
- img.onload = function() {
456
- texture2D.setImageSource(img);
457
- var completedCount = 0;
458
- var onComplete = function() {
459
- completedCount++;
460
- if (completedCount >= mipCount) {
461
- resolve(texture2D);
462
- }
463
- };
464
- onComplete();
465
- if (mipmap) {
466
- var _loop = function(i) {
467
- var blob = new window.Blob([
468
- imagesData[i]
469
- ]);
470
- var img = new Image();
471
- img.onload = function() {
472
- texture2D.setImageSource(img, i);
473
- onComplete();
474
- };
475
- img.src = URL.createObjectURL(blob);
476
- };
477
- texture2D.generateMipmaps();
478
- for(var i = 1; i < mipCount; i++)_loop(i);
452
+ var completedCount = 0;
453
+ var onComplete = function() {
454
+ completedCount++;
455
+ if (completedCount >= mipCount) {
456
+ resolve(texture2D);
479
457
  }
480
458
  };
481
- img.src = URL.createObjectURL(blob);
459
+ _this._loadImageBuffer(imagesData[0]).then(function(img) {
460
+ texture2D.setImageSource(img);
461
+ onComplete();
462
+ }, reject);
463
+ if (mipmap) {
464
+ var _loop = function(i1) {
465
+ _this._loadImageBuffer(imagesData[i1]).then(function(img) {
466
+ texture2D.setImageSource(img, i1);
467
+ onComplete();
468
+ }, reject);
469
+ };
470
+ texture2D.generateMipmaps();
471
+ for(var i1 = 1; i1 < mipCount; i1++)_loop(i1);
472
+ }
482
473
  }
483
474
  });
484
475
  };
476
+ Texture2DDecoder._loadImageBuffer = function _loadImageBuffer(imageBuffer) {
477
+ return new Promise(function(resolve, reject) {
478
+ var blob = new window.Blob([
479
+ imageBuffer
480
+ ]);
481
+ var img = new Image();
482
+ img.onerror = function() {
483
+ reject(new Error("Failed to load image buffer"));
484
+ };
485
+ img.onload = function() {
486
+ // Call requestAnimationFrame to avoid iOS's bug.
487
+ requestAnimationFrame(function() {
488
+ resolve(img);
489
+ img.onload = null;
490
+ img.onerror = null;
491
+ img.onabort = null;
492
+ });
493
+ };
494
+ img.crossOrigin = "anonymous";
495
+ img.src = URL.createObjectURL(blob);
496
+ });
497
+ };
485
498
  return Texture2DDecoder;
486
499
  }();
487
500
  Texture2DDecoder = __decorate([
@@ -740,7 +753,7 @@ var InterpolableValueType;
740
753
  var AnimationClipDecoder = /*#__PURE__*/ function() {
741
754
  function AnimationClipDecoder() {}
742
755
  AnimationClipDecoder.decode = function decode(engine, bufferReader) {
743
- return new Promise(function(resolve) {
756
+ return new AssetPromise(function(resolve) {
744
757
  var name = bufferReader.nextStr();
745
758
  var clip = new AnimationClip(name);
746
759
  var eventsLen = bufferReader.nextUint16();
@@ -1332,15 +1345,11 @@ var EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
1332
1345
  }
1333
1346
  var _proto = EditorTextureLoader.prototype;
1334
1347
  _proto.load = function load(item, resourceManager) {
1335
- return new AssetPromise(function(resolve, reject) {
1336
- resourceManager// @ts-ignore
1337
- ._request(item.url, _extends({}, item, {
1338
- type: "arraybuffer"
1339
- })).then(function(data) {
1340
- decode(data, resourceManager.engine).then(function(texture) {
1341
- resolve(texture);
1342
- });
1343
- }).catch(reject);
1348
+ return resourceManager// @ts-ignore
1349
+ ._request(item.url, _extends({}, item, {
1350
+ type: "arraybuffer"
1351
+ })).then(function(data) {
1352
+ return decode(data, resourceManager.engine);
1344
1353
  });
1345
1354
  };
1346
1355
  return EditorTextureLoader;
@@ -1426,79 +1435,77 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
1426
1435
  var _proto = AnimatorControllerLoader.prototype;
1427
1436
  _proto.load = function load(item, resourceManager) {
1428
1437
  var _this = this;
1429
- return new AssetPromise(function(resolve, reject) {
1430
- resourceManager// @ts-ignore
1431
- ._request(item.url, _extends({}, item, {
1432
- type: "json"
1433
- })).then(function(data) {
1434
- var animatorController = new AnimatorController(resourceManager.engine);
1435
- var layers = data.layers, parameters = data.parameters;
1436
- var promises = [];
1437
- layers.forEach(function(layerData, layerIndex) {
1438
- var name = layerData.name, blendingMode = layerData.blendingMode, weight = layerData.weight, stateMachineData = layerData.stateMachine;
1439
- var layer = new AnimatorControllerLayer(name);
1440
- layer.blendingMode = blendingMode;
1441
- layer.weight = weight;
1442
- if (stateMachineData) {
1443
- var states = stateMachineData.states, transitions = stateMachineData.transitions, entryTransitions = stateMachineData.entryTransitions, anyTransitions = stateMachineData.anyTransitions;
1444
- var stateMachine = layer.stateMachine;
1445
- var statesMap = {};
1446
- var transitionsMap = {};
1447
- states.forEach(function(stateData, stateIndex) {
1448
- var id = stateData.id, name = stateData.name, speed = stateData.speed, wrapMode = stateData.wrapMode, clipStartNormalizedTime = stateData.clipStartNormalizedTime, clipEndNormalizedTime = stateData.clipEndNormalizedTime, clipData = stateData.clip, scripts = stateData.scripts;
1449
- var state = stateMachine.addState(name);
1450
- state.speed = speed;
1451
- state.wrapMode = wrapMode;
1452
- state.clipStartTime = clipStartNormalizedTime;
1453
- state.clipEndTime = clipEndNormalizedTime;
1454
- scripts.forEach(function(script) {
1455
- state.addStateMachineScript(Loader.getClass(script));
1456
- });
1457
- statesMap[id] = state;
1458
- if (clipData) {
1459
- promises.push(new Promise(function(resolve) {
1460
- //@ts-ignore
1461
- resourceManager.getResourceByRef(clipData).then(function(clip) {
1462
- resolve({
1463
- layerIndex: layerIndex,
1464
- stateIndex: stateIndex,
1465
- clip: clip
1466
- });
1467
- });
1468
- }));
1469
- }
1470
- });
1471
- transitions.forEach(function(transitionData) {
1472
- var transition = _this._createTransition(transitionData, statesMap[transitionData.destinationStateId]);
1473
- transitionsMap[transitionData.id] = transition;
1474
- });
1475
- states.forEach(function(stateData) {
1476
- var id = stateData.id, transitions = stateData.transitions;
1477
- transitions.forEach(function(transitionId) {
1478
- var transition = transitionsMap[transitionId];
1479
- transition && statesMap[id].addTransition(transition);
1480
- });
1481
- });
1482
- entryTransitions.forEach(function(entryTransitionData) {
1483
- stateMachine.addEntryStateTransition(_this._createTransition(entryTransitionData, statesMap[entryTransitionData.destinationStateId]));
1438
+ return resourceManager// @ts-ignore
1439
+ ._request(item.url, _extends({}, item, {
1440
+ type: "json"
1441
+ })).then(function(data) {
1442
+ var animatorController = new AnimatorController(resourceManager.engine);
1443
+ var layers = data.layers, parameters = data.parameters;
1444
+ var promises = [];
1445
+ layers.forEach(function(layerData, layerIndex) {
1446
+ var name = layerData.name, blendingMode = layerData.blendingMode, weight = layerData.weight, stateMachineData = layerData.stateMachine;
1447
+ var layer = new AnimatorControllerLayer(name);
1448
+ layer.blendingMode = blendingMode;
1449
+ layer.weight = weight;
1450
+ if (stateMachineData) {
1451
+ var states = stateMachineData.states, transitions = stateMachineData.transitions, entryTransitions = stateMachineData.entryTransitions, anyTransitions = stateMachineData.anyTransitions;
1452
+ var stateMachine = layer.stateMachine;
1453
+ var statesMap = {};
1454
+ var transitionsMap = {};
1455
+ states.forEach(function(stateData, stateIndex) {
1456
+ var id = stateData.id, name = stateData.name, speed = stateData.speed, wrapMode = stateData.wrapMode, clipStartNormalizedTime = stateData.clipStartNormalizedTime, clipEndNormalizedTime = stateData.clipEndNormalizedTime, clipData = stateData.clip, scripts = stateData.scripts;
1457
+ var state = stateMachine.addState(name);
1458
+ state.speed = speed;
1459
+ state.wrapMode = wrapMode;
1460
+ state.clipStartTime = clipStartNormalizedTime;
1461
+ state.clipEndTime = clipEndNormalizedTime;
1462
+ scripts.forEach(function(script) {
1463
+ state.addStateMachineScript(Loader.getClass(script));
1484
1464
  });
1485
- anyTransitions.forEach(function(anyTransitionData) {
1486
- stateMachine.addAnyStateTransition(_this._createTransition(anyTransitionData, statesMap[anyTransitionData.destinationStateId]));
1465
+ statesMap[id] = state;
1466
+ if (clipData) {
1467
+ promises.push(//@ts-ignore
1468
+ resourceManager.getResourceByRef(clipData).then(function(clip) {
1469
+ return {
1470
+ layerIndex: layerIndex,
1471
+ stateIndex: stateIndex,
1472
+ clip: clip
1473
+ };
1474
+ }));
1475
+ }
1476
+ });
1477
+ transitions.forEach(function(transitionData) {
1478
+ var transition = _this._createTransition(transitionData, statesMap[transitionData.destinationStateId]);
1479
+ transitionsMap[transitionData.id] = transition;
1480
+ });
1481
+ states.forEach(function(stateData) {
1482
+ var id = stateData.id, transitions = stateData.transitions;
1483
+ transitions.forEach(function(transitionId) {
1484
+ var transition = transitionsMap[transitionId];
1485
+ transition && statesMap[id].addTransition(transition);
1487
1486
  });
1488
- }
1489
- animatorController.addLayer(layer);
1490
- });
1491
- parameters.forEach(function(parameterData) {
1492
- animatorController.addParameter(parameterData.name, parameterData.defaultValue);
1493
- });
1494
- Promise.all(promises).then(function(clipData) {
1487
+ });
1488
+ entryTransitions.forEach(function(entryTransitionData) {
1489
+ stateMachine.addEntryStateTransition(_this._createTransition(entryTransitionData, statesMap[entryTransitionData.destinationStateId]));
1490
+ });
1491
+ anyTransitions.forEach(function(anyTransitionData) {
1492
+ stateMachine.addAnyStateTransition(_this._createTransition(anyTransitionData, statesMap[anyTransitionData.destinationStateId]));
1493
+ });
1494
+ }
1495
+ animatorController.addLayer(layer);
1496
+ });
1497
+ parameters.forEach(function(parameterData) {
1498
+ animatorController.addParameter(parameterData.name, parameterData.defaultValue);
1499
+ });
1500
+ return new AssetPromise(function(resolve, reject) {
1501
+ AssetPromise.all(promises).then(function(clipData) {
1495
1502
  clipData.forEach(function(data) {
1496
1503
  var layerIndex = data.layerIndex, stateIndex = data.stateIndex, clip = data.clip;
1497
1504
  animatorController.layers[layerIndex].stateMachine.states[stateIndex].clip = clip;
1498
1505
  });
1499
1506
  resolve(animatorController);
1500
- });
1501
- }).catch(reject);
1507
+ }, reject).catch(reject);
1508
+ });
1502
1509
  });
1503
1510
  };
1504
1511
  _proto._createTransition = function _createTransition(transitionData, destinationState) {
@@ -1699,6 +1706,203 @@ FontLoader = __decorate([
1699
1706
  ], false)
1700
1707
  ], FontLoader);
1701
1708
 
1709
+ // Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
1710
+ var ready;
1711
+ function getMeshoptDecoder() {
1712
+ var unpack = function unpack(data) {
1713
+ var result = new Uint8Array(data.length);
1714
+ for(var i = 0; i < data.length; ++i){
1715
+ var ch = data.charCodeAt(i);
1716
+ result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
1717
+ }
1718
+ var write = 0;
1719
+ for(var i1 = 0; i1 < data.length; ++i1){
1720
+ result[write++] = result[i1] < 60 ? wasmpack[result[i1]] : (result[i1] - 60) * 64 + result[++i1];
1721
+ }
1722
+ return result.buffer.slice(0, write);
1723
+ };
1724
+ var decode = function decode(fun, target, count, size, source, filter) {
1725
+ var sbrk = instance.exports.sbrk;
1726
+ var count4 = count + 3 & ~3;
1727
+ var tp = sbrk(count4 * size);
1728
+ var sp = sbrk(source.length);
1729
+ var heap = new Uint8Array(instance.exports.memory.buffer);
1730
+ heap.set(source, sp);
1731
+ var res = fun(tp, count, size, sp, source.length);
1732
+ if (res == 0 && filter) {
1733
+ filter(tp, count4, size);
1734
+ }
1735
+ target.set(heap.subarray(tp, tp + count * size));
1736
+ sbrk(tp - sbrk(0));
1737
+ if (res != 0) {
1738
+ throw new Error("Malformed buffer data: " + res);
1739
+ }
1740
+ };
1741
+ var createWorker = function createWorker(url) {
1742
+ var worker = {
1743
+ object: new Worker(url),
1744
+ pending: 0,
1745
+ requests: {}
1746
+ };
1747
+ worker.object.onmessage = function(event) {
1748
+ var data = event.data;
1749
+ worker.pending -= data.count;
1750
+ worker.requests[data.id][data.action](data.value);
1751
+ delete worker.requests[data.id];
1752
+ };
1753
+ return worker;
1754
+ };
1755
+ var initWorkers = function initWorkers(count) {
1756
+ var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});\n" + "self.onmessage = workerProcess;\n" + 'function decode(fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3;\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res == 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res != 0) {\n throw new Error("Malformed buffer data: " + res);\n }\n }\n' + 'function workerProcess(event) {\n ready.then(function () {\n const data = event.data;\n try {\n const target = new Uint8Array(data.count * data.size);\n decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);\n self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);\n } catch (error) {\n self.postMessage({\n id: data.id,\n count: data.count,\n action: "reject",\n value: error\n });\n }\n });\n }';
1757
+ var blob = new Blob([
1758
+ source
1759
+ ], {
1760
+ type: "text/javascript"
1761
+ });
1762
+ var url = URL.createObjectURL(blob);
1763
+ for(var i = 0; i < count; ++i){
1764
+ workers[i] = createWorker(url);
1765
+ }
1766
+ URL.revokeObjectURL(url);
1767
+ };
1768
+ var decodeWorker = function decodeWorker(count, size, source, mode, filter) {
1769
+ var worker = workers[0];
1770
+ for(var i = 1; i < workers.length; ++i){
1771
+ if (workers[i].pending < worker.pending) {
1772
+ worker = workers[i];
1773
+ }
1774
+ }
1775
+ return new Promise(function(resolve, reject) {
1776
+ var data = new Uint8Array(source);
1777
+ var id = requestId++;
1778
+ worker.pending += count;
1779
+ worker.requests[id] = {
1780
+ resolve: resolve,
1781
+ reject: reject
1782
+ };
1783
+ worker.object.postMessage({
1784
+ id: id,
1785
+ count: count,
1786
+ size: size,
1787
+ source: data,
1788
+ mode: mode,
1789
+ filter: filter
1790
+ }, [
1791
+ data.buffer
1792
+ ]);
1793
+ });
1794
+ };
1795
+ if (ready) return ready;
1796
+ var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok: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;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
1797
+ var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;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:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;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:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
1798
+ var wasmpack = new Uint8Array([
1799
+ 32,
1800
+ 0,
1801
+ 65,
1802
+ 2,
1803
+ 1,
1804
+ 106,
1805
+ 34,
1806
+ 33,
1807
+ 3,
1808
+ 128,
1809
+ 11,
1810
+ 4,
1811
+ 13,
1812
+ 64,
1813
+ 6,
1814
+ 253,
1815
+ 10,
1816
+ 7,
1817
+ 15,
1818
+ 116,
1819
+ 127,
1820
+ 5,
1821
+ 8,
1822
+ 12,
1823
+ 40,
1824
+ 16,
1825
+ 19,
1826
+ 54,
1827
+ 20,
1828
+ 9,
1829
+ 27,
1830
+ 255,
1831
+ 113,
1832
+ 17,
1833
+ 42,
1834
+ 67,
1835
+ 24,
1836
+ 23,
1837
+ 146,
1838
+ 148,
1839
+ 18,
1840
+ 14,
1841
+ 22,
1842
+ 45,
1843
+ 70,
1844
+ 69,
1845
+ 56,
1846
+ 114,
1847
+ 101,
1848
+ 21,
1849
+ 25,
1850
+ 63,
1851
+ 75,
1852
+ 136,
1853
+ 108,
1854
+ 28,
1855
+ 118,
1856
+ 29,
1857
+ 73,
1858
+ 115
1859
+ ]);
1860
+ // @ts-ignore
1861
+ var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
1862
+ var instance;
1863
+ ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
1864
+ instance = result.instance;
1865
+ instance.exports.__wasm_call_ctors();
1866
+ }).then(function() {
1867
+ return {
1868
+ workerCount: 4,
1869
+ ready: ready,
1870
+ useWorkers: function useWorkers(workerCount) {
1871
+ this.workerCount = workerCount != null ? workerCount : this.workerCount;
1872
+ initWorkers(this.workerCount);
1873
+ },
1874
+ decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
1875
+ if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
1876
+ if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
1877
+ return ready.then(function() {
1878
+ var target = new Uint8Array(count * stride);
1879
+ decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
1880
+ return target;
1881
+ });
1882
+ },
1883
+ release: function release() {
1884
+ for(var i = 0; i < workers.length; i++){
1885
+ workers[i].object.terminate();
1886
+ }
1887
+ }
1888
+ };
1889
+ });
1890
+ var filters = {
1891
+ NONE: "",
1892
+ OCTAHEDRAL: "meshopt_decodeFilterOct",
1893
+ QUATERNION: "meshopt_decodeFilterQuat",
1894
+ EXPONENTIAL: "meshopt_decodeFilterExp"
1895
+ };
1896
+ var decoders = {
1897
+ ATTRIBUTES: "meshopt_decodeVertexBuffer",
1898
+ TRIANGLES: "meshopt_decodeIndexBuffer",
1899
+ INDICES: "meshopt_decodeIndexSequence"
1900
+ };
1901
+ var workers = [];
1902
+ var requestId = 0;
1903
+ return ready;
1904
+ }
1905
+
1702
1906
  /**
1703
1907
  * The glTF resource.
1704
1908
  */ var GLTFResource = /*#__PURE__*/ function(ReferResource1) {
@@ -1725,14 +1929,16 @@ FontLoader = __decorate([
1725
1929
  materials && this._disassociationSuperResource(materials);
1726
1930
  if (meshes) {
1727
1931
  for(var i = 0, n = meshes.length; i < n; i++){
1728
- this._disassociationSuperResource(meshes[i]);
1932
+ var meshArr = meshes[i];
1933
+ meshArr && this._disassociationSuperResource(meshArr);
1729
1934
  }
1730
1935
  }
1731
1936
  };
1732
1937
  _proto._disassociationSuperResource = function _disassociationSuperResource(resources) {
1733
1938
  for(var i = 0, n = resources.length; i < n; i++){
1734
- // @ts-ignore
1735
- resources[i]._disassociationSuperResource(this);
1939
+ var // @ts-ignore
1940
+ _resources_i;
1941
+ (_resources_i = resources[i]) == null ? void 0 : _resources_i._disassociationSuperResource(this);
1736
1942
  }
1737
1943
  };
1738
1944
  _create_class(GLTFResource, [
@@ -1923,6 +2129,7 @@ var TextureWrapMode;
1923
2129
  this.params = params;
1924
2130
  this.accessorBufferCache = {};
1925
2131
  this.needAnimatorController = false;
2132
+ this./** @internal */ _getPromises = [];
1926
2133
  this._resourceCache = new Map();
1927
2134
  this._progress = {
1928
2135
  taskDetail: {},
@@ -1947,7 +2154,7 @@ var TextureWrapMode;
1947
2154
  var _this = this;
1948
2155
  var parser = GLTFParserContext._parsers[type];
1949
2156
  if (!parser) {
1950
- return Promise.resolve(null);
2157
+ return AssetPromise.resolve(null);
1951
2158
  }
1952
2159
  var cache = this._resourceCache;
1953
2160
  var cacheKey = index === undefined ? "" + type : type + ":" + index;
@@ -1963,7 +2170,7 @@ var TextureWrapMode;
1963
2170
  if (index === undefined) {
1964
2171
  resource = type === 8 ? glTFItems.map(function(_, index) {
1965
2172
  return _this.get(type, index);
1966
- }) : Promise.all(glTFItems.map(function(_, index) {
2173
+ }) : AssetPromise.all(glTFItems.map(function(_, index) {
1967
2174
  return _this.get(type, index);
1968
2175
  }));
1969
2176
  } else {
@@ -1971,12 +2178,15 @@ var TextureWrapMode;
1971
2178
  isSubAsset && this._handleSubAsset(resource, type, index);
1972
2179
  }
1973
2180
  } else {
1974
- resource = Promise.resolve(null);
2181
+ resource = AssetPromise.resolve(null);
1975
2182
  }
1976
2183
  } else {
1977
2184
  resource = parser.parse(this, index);
1978
2185
  isSubAsset && this._handleSubAsset(resource, type, index);
1979
2186
  }
2187
+ if (_instanceof(resource, AssetPromise)) {
2188
+ this._getPromises.push(resource);
2189
+ }
1980
2190
  cache.set(cacheKey, resource);
1981
2191
  return resource;
1982
2192
  };
@@ -1985,7 +2195,7 @@ var TextureWrapMode;
1985
2195
  var promise = this.get(0).then(function(json) {
1986
2196
  _this.glTF = json;
1987
2197
  _this.needAnimatorController = !!(json.skins || json.animations);
1988
- return Promise.all([
2198
+ return AssetPromise.all([
1989
2199
  _this.get(1),
1990
2200
  _this.get(5),
1991
2201
  _this.get(6),
@@ -2016,6 +2226,8 @@ var TextureWrapMode;
2016
2226
  task.total += 1;
2017
2227
  taskPromise.then(function() {
2018
2228
  _this._setTaskCompleteProgress(++task.loaded, task.total);
2229
+ }, function(e) {
2230
+ Logger.error("Failed to complete task", e);
2019
2231
  });
2020
2232
  };
2021
2233
  _proto._handleSubAsset = function _handleSubAsset(resource, type, index) {
@@ -2048,6 +2260,8 @@ var TextureWrapMode;
2048
2260
  _this.resourceManager._onSubAssetSuccess(url, "defaultSceneRoot", item);
2049
2261
  }
2050
2262
  }
2263
+ }).catch(function(e) {
2264
+ Logger.error("GLTFParserContext", "Failed to load " + glTFResourceKey + " " + index + ": " + e);
2051
2265
  });
2052
2266
  }
2053
2267
  };
@@ -2228,13 +2442,15 @@ function registerGLTFParser(pipeline) {
2228
2442
  bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
2229
2443
  }
2230
2444
  return bufferInfo;
2445
+ }).catch(function(e) {
2446
+ Logger.error("GLTFUtil getAccessorBuffer error", e);
2231
2447
  });
2232
2448
  } else {
2233
2449
  var count = accessorCount * dataElementSize;
2234
2450
  var data = new TypedArray(count);
2235
2451
  var bufferInfo = new BufferInfo(data, false, elementStride);
2236
2452
  bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
2237
- promise = Promise.resolve(bufferInfo);
2453
+ promise = AssetPromise.resolve(bufferInfo);
2238
2454
  }
2239
2455
  return accessor.sparse ? promise.then(function(bufferInfo) {
2240
2456
  return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
@@ -2269,7 +2485,7 @@ function registerGLTFParser(pipeline) {
2269
2485
  var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
2270
2486
  var indicesBufferView = bufferViews[indices.bufferView];
2271
2487
  var valuesBufferView = bufferViews[values.bufferView];
2272
- return Promise.all([
2488
+ return AssetPromise.all([
2273
2489
  context.get(GLTFParserType.BufferView, indices.bufferView),
2274
2490
  context.get(GLTFParserType.BufferView, values.bufferView)
2275
2491
  ]).then(function(param) {
@@ -2296,6 +2512,8 @@ function registerGLTFParser(pipeline) {
2296
2512
  }
2297
2513
  }
2298
2514
  bufferInfo.data = data;
2515
+ }).catch(function(e) {
2516
+ Logger.error("GLTFUtil processingSparseData error", e);
2299
2517
  });
2300
2518
  };
2301
2519
  GLTFUtils.getIndexFormat = function getIndexFormat(type) {
@@ -3813,11 +4031,10 @@ var GLTFExtensionMode;
3813
4031
  for(var _len = arguments.length, extra = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++){
3814
4032
  extra[_key - 5] = arguments[_key];
3815
4033
  }
4034
+ var _parser;
4035
+ var _parser1;
3816
4036
  var parser = GLTFParser.getExtensionParser(extensionName, GLTFExtensionMode.AdditiveParse);
3817
- if (parser) {
3818
- var _parser;
3819
- (_parser = parser).additiveParse.apply(_parser, [].concat(context, parseResource, extensionSchema, ownerSchema, extra));
3820
- }
4037
+ (_parser1 = parser) == null ? void 0 : (_parser = _parser1).additiveParse.apply(_parser, [].concat(context, parseResource, extensionSchema, ownerSchema, extra));
3821
4038
  };
3822
4039
  return GLTFParser;
3823
4040
  }();
@@ -3887,7 +4104,7 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
3887
4104
  var animationInfo = context.glTF.animations[index];
3888
4105
  var _animationInfo_name = animationInfo.name, name = _animationInfo_name === void 0 ? "AnimationClip" + index : _animationInfo_name;
3889
4106
  var animationClipPromise = GLTFParser.executeExtensionsCreateAndParse(animationInfo.extensions, context, animationInfo) || GLTFAnimationParser._parseStandardProperty(context, new AnimationClip(name), animationInfo);
3890
- return Promise.resolve(animationClipPromise).then(function(animationClip) {
4107
+ return AssetPromise.resolve(animationClipPromise).then(function(animationClip) {
3891
4108
  GLTFParser.executeExtensionsAdditiveAndParse(animationInfo.extensions, context, animationClip, animationInfo);
3892
4109
  return animationClip;
3893
4110
  });
@@ -3899,7 +4116,7 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
3899
4116
  var glTFSampler = samplers[j];
3900
4117
  var inputAccessor = accessors[glTFSampler.input];
3901
4118
  var outputAccessor = accessors[glTFSampler.output];
3902
- var promise = Promise.all([
4119
+ var promise = AssetPromise.all([
3903
4120
  GLTFUtils.getAccessorBuffer(context, bufferViews, inputAccessor),
3904
4121
  GLTFUtils.getAccessorBuffer(context, bufferViews, outputAccessor)
3905
4122
  ]).then(function(bufferInfos) {
@@ -3950,7 +4167,7 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
3950
4167
  // parse samplers
3951
4168
  for(var j = 0, m = len; j < m; j++)_loop(j);
3952
4169
  promises.push(context.get(GLTFParserType.Scene));
3953
- return Promise.all(promises).then(function() {
4170
+ return AssetPromise.all(promises).then(function() {
3954
4171
  for(var j = 0, m = channels.length; j < m; j++){
3955
4172
  var glTFChannel = channels[j];
3956
4173
  var target = glTFChannel.target;
@@ -4080,7 +4297,7 @@ var GLTFBufferParser = /*#__PURE__*/ function(GLTFParser1) {
4080
4297
  var _proto = GLTFBufferParser.prototype;
4081
4298
  _proto.parse = function parse(context, index) {
4082
4299
  var buffers = context.glTF.buffers;
4083
- return context.buffers ? Promise.resolve(context.buffers[index]) : this._parseSingleBuffer(context, buffers[index]);
4300
+ return context.buffers ? AssetPromise.resolve(context.buffers[index]) : this._parseSingleBuffer(context, buffers[index]);
4084
4301
  };
4085
4302
  _proto._parseSingleBuffer = function _parseSingleBuffer(context, bufferInfo) {
4086
4303
  var glTFResource = context.glTFResource, contentRestorer = context.contentRestorer, resourceManager = context.resourceManager;
@@ -4167,18 +4384,15 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4167
4384
  material.name = materialInfo.name;
4168
4385
  GLTFMaterialParser._parseStandardProperty(context, material, materialInfo);
4169
4386
  }
4170
- return Promise.resolve(material).then(function(material) {
4171
- material || (material = GLTFMaterialParser._getDefaultMaterial(engine));
4387
+ return AssetPromise.resolve(material).then(function(material) {
4388
+ // @ts-ignore
4389
+ material || (material = engine._basicResources._getBlinnPhongMaterial());
4172
4390
  GLTFParser.executeExtensionsAdditiveAndParse(materialInfo.extensions, context, material, materialInfo);
4173
4391
  // @ts-ignore
4174
4392
  material._associationSuperResource(glTFResource);
4175
4393
  return material;
4176
4394
  });
4177
4395
  };
4178
- /** @internal */ GLTFMaterialParser1._getDefaultMaterial = function _getDefaultMaterial(engine) {
4179
- var _GLTFMaterialParser;
4180
- return (_GLTFMaterialParser = GLTFMaterialParser)._defaultMaterial || (_GLTFMaterialParser._defaultMaterial = new BlinnPhongMaterial(engine));
4181
- };
4182
4396
  /**
4183
4397
  * @internal
4184
4398
  */ GLTFMaterialParser1._checkOtherTextureTransform = function _checkOtherTextureTransform(texture, textureName) {
@@ -4200,6 +4414,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4200
4414
  context.get(GLTFParserType.Texture, baseColorTexture.index).then(function(texture) {
4201
4415
  material.baseTexture = texture;
4202
4416
  GLTFParser.executeExtensionsAdditiveAndParse(baseColorTexture.extensions, context, material, baseColorTexture);
4417
+ }).catch(function(e) {
4418
+ Logger.error("GLTFMaterialParser: baseColorTexture error", e);
4203
4419
  });
4204
4420
  }
4205
4421
  if (material.constructor === PBRMaterial) {
@@ -4209,6 +4425,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4209
4425
  GLTFMaterialParser._checkOtherTextureTransform(metallicRoughnessTexture, "Roughness metallic");
4210
4426
  context.get(GLTFParserType.Texture, metallicRoughnessTexture.index).then(function(texture) {
4211
4427
  material.roughnessMetallicTexture = texture;
4428
+ }).catch(function(e) {
4429
+ Logger.error("GLTFMaterialParser: metallicRoughnessTexture error", e);
4212
4430
  });
4213
4431
  }
4214
4432
  }
@@ -4218,6 +4436,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4218
4436
  GLTFMaterialParser._checkOtherTextureTransform(emissiveTexture, "Emissive");
4219
4437
  context.get(GLTFParserType.Texture, emissiveTexture.index).then(function(texture) {
4220
4438
  material.emissiveTexture = texture;
4439
+ }).catch(function(e) {
4440
+ Logger.error("GLTFMaterialParser: emissiveTexture error", e);
4221
4441
  });
4222
4442
  }
4223
4443
  if (emissiveFactor) {
@@ -4228,6 +4448,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4228
4448
  GLTFMaterialParser._checkOtherTextureTransform(normalTexture, "Normal");
4229
4449
  context.get(GLTFParserType.Texture, index).then(function(texture) {
4230
4450
  material.normalTexture = texture;
4451
+ }).catch(function(e) {
4452
+ Logger.error("GLTFMaterialParser: emissiveTexture error", e);
4231
4453
  });
4232
4454
  if (scale !== undefined) {
4233
4455
  material.normalTextureIntensity = scale;
@@ -4238,6 +4460,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4238
4460
  GLTFMaterialParser._checkOtherTextureTransform(occlusionTexture, "Occlusion");
4239
4461
  context.get(GLTFParserType.Texture, index1).then(function(texture) {
4240
4462
  material.occlusionTexture = texture;
4463
+ }).catch(function(e) {
4464
+ Logger.error("GLTFMaterialParser: occlusionTexture error", e);
4241
4465
  });
4242
4466
  if (strength !== undefined) {
4243
4467
  material.occlusionTextureIntensity = strength;
@@ -4282,7 +4506,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4282
4506
  _proto.parse = function parse(context, index) {
4283
4507
  var _loop = function(i, length) {
4284
4508
  var gltfPrimitive = meshInfo.primitives[i];
4285
- primitivePromises[i] = new Promise(function(resolve) {
4509
+ primitivePromises[i] = new AssetPromise(function(resolve, reject) {
4286
4510
  var mesh = GLTFParser.executeExtensionsCreateAndParse(gltfPrimitive.extensions, context, gltfPrimitive, meshInfo);
4287
4511
  if (mesh) {
4288
4512
  if (_instanceof(mesh, ModelMesh)) {
@@ -4303,7 +4527,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4303
4527
  var meshRestoreInfo = new ModelMeshRestoreInfo();
4304
4528
  meshRestoreInfo.mesh = mesh1;
4305
4529
  context.contentRestorer.meshes.push(meshRestoreInfo);
4306
- GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
4530
+ GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve, reject);
4307
4531
  }
4308
4532
  });
4309
4533
  };
@@ -4312,7 +4536,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4312
4536
  var engine = glTFResource.engine;
4313
4537
  var primitivePromises = new Array();
4314
4538
  for(var i = 0, length = meshInfo.primitives.length; i < length; i++)_loop(i);
4315
- return Promise.all(primitivePromises);
4539
+ return AssetPromise.all(primitivePromises);
4316
4540
  };
4317
4541
  /**
4318
4542
  * @internal
@@ -4395,7 +4619,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4395
4619
  var bufferBindIndex = 0;
4396
4620
  var promises = new Array();
4397
4621
  for(var attribute in attributes)_loop(attribute);
4398
- return Promise.all(promises).then(function() {
4622
+ return AssetPromise.all(promises).then(function() {
4399
4623
  mesh.setVertexElements(vertexElements);
4400
4624
  // Indices
4401
4625
  if (indices !== undefined) {
@@ -4445,7 +4669,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4445
4669
  var tangentTarget = targets["TANGENT"];
4446
4670
  var hasNormal = normalTarget !== undefined;
4447
4671
  var hasTangent = tangentTarget !== undefined;
4448
- var promise = Promise.all([
4672
+ var promise = AssetPromise.all([
4449
4673
  _this._getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
4450
4674
  hasNormal ? _this._getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
4451
4675
  hasTangent ? _this._getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
@@ -4466,7 +4690,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4466
4690
  var blendShapeCount = glTFTargets.length;
4467
4691
  var blendShapeCollection = new Array(blendShapeCount);
4468
4692
  for(var i = 0; i < blendShapeCount; i++)_loop(i);
4469
- return Promise.all(promises).then(function() {
4693
+ return AssetPromise.all(promises).then(function() {
4470
4694
  for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
4471
4695
  var blendShape = _step.value;
4472
4696
  mesh.addBlendShape(blendShape.blendShape);
@@ -4514,7 +4738,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4514
4738
  for(var i1 = 0; i1 < sceneNodes.length; i1++){
4515
4739
  promises.push(this._parseEntityComponent(context, sceneNodes[i1]));
4516
4740
  }
4517
- return Promise.all(promises).then(function() {
4741
+ return AssetPromise.all(promises).then(function() {
4518
4742
  GLTFParser.executeExtensionsAdditiveAndParse(sceneExtensions, context, sceneRoot, sceneInfo);
4519
4743
  return sceneRoot;
4520
4744
  });
@@ -4532,7 +4756,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4532
4756
  if (meshID !== undefined) {
4533
4757
  promise = this._createRenderer(context, entityInfo, entity);
4534
4758
  }
4535
- return Promise.resolve(promise).then(function() {
4759
+ return AssetPromise.resolve(promise).then(function() {
4536
4760
  var promises = [];
4537
4761
  var children = entityInfo.children;
4538
4762
  if (children) {
@@ -4540,7 +4764,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4540
4764
  promises.push(_this._parseEntityComponent(context, children[i]));
4541
4765
  }
4542
4766
  }
4543
- return Promise.all(promises);
4767
+ return AssetPromise.all(promises);
4544
4768
  });
4545
4769
  };
4546
4770
  _proto._createCamera = function _createCamera(resource, cameraSchema, entity) {
@@ -4589,13 +4813,14 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4589
4813
  var _glTFMeshPrimitives_i_material;
4590
4814
  materialPromises[i] = context.get(GLTFParserType.Material, (_glTFMeshPrimitives_i_material = glTFMeshPrimitives[i].material) != null ? _glTFMeshPrimitives_i_material : -1);
4591
4815
  }
4592
- return Promise.all([
4816
+ return AssetPromise.all([
4593
4817
  context.get(GLTFParserType.Mesh, meshID),
4594
4818
  skinID !== undefined && context.get(GLTFParserType.Skin, skinID),
4595
- Promise.all(materialPromises)
4819
+ AssetPromise.all(materialPromises)
4596
4820
  ]).then(function(param) {
4597
4821
  var _loop = function(i) {
4598
- var material = materials[i] || GLTFMaterialParser._getDefaultMaterial(context.glTFResource.engine);
4822
+ // @ts-ignore
4823
+ var material = materials[i] || context.glTFResource.engine._basicResources._getBlinnPhongMaterial();
4599
4824
  var glTFPrimitive = glTFMeshPrimitives[i];
4600
4825
  var mesh = meshes[i];
4601
4826
  var renderer = void 0;
@@ -4625,6 +4850,8 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4625
4850
  };
4626
4851
  var meshes = param[0], skin = param[1], materials = param[2];
4627
4852
  for(var i = 0; i < rendererCount; i++)_loop(i);
4853
+ }).catch(function(e) {
4854
+ Logger.error("GLTFSceneParser: create renderer error", e);
4628
4855
  });
4629
4856
  };
4630
4857
  _proto._computeLocalBounds = function _computeLocalBounds(skinnedMeshRenderer, mesh, bones, rootBone, inverseBindMatrices) {
@@ -4709,7 +4936,7 @@ var GLTFSkinParser = /*#__PURE__*/ function(GLTFParser1) {
4709
4936
  }
4710
4937
  return skin;
4711
4938
  });
4712
- return Promise.resolve(skinPromise);
4939
+ return AssetPromise.resolve(skinPromise);
4713
4940
  };
4714
4941
  _proto._findSkeletonRootBone = function _findSkeletonRootBone(joints, entities) {
4715
4942
  var paths = {};
@@ -4760,7 +4987,7 @@ var GLTFTextureParser = (_GLTFTextureParser = /*#__PURE__*/ function(GLTFParser1
4760
4987
  if (!texture) {
4761
4988
  texture = GLTFTextureParser._parseTexture(context, imageIndex, textureIndex, sampler, textureName);
4762
4989
  }
4763
- return Promise.resolve(texture).then(function(texture) {
4990
+ return AssetPromise.resolve(texture).then(function(texture) {
4764
4991
  GLTFParser.executeExtensionsAdditiveAndParse(extensions, context, texture, textureInfo);
4765
4992
  // @ts-ignore
4766
4993
  texture._associationSuperResource(glTFResource);
@@ -4807,6 +5034,8 @@ var GLTFTextureParser = (_GLTFTextureParser = /*#__PURE__*/ function(GLTFParser1
4807
5034
  context.contentRestorer.bufferTextures.push(bufferTextureRestoreInfo);
4808
5035
  return texture;
4809
5036
  });
5037
+ }).catch(function(e) {
5038
+ Logger.error("GLTFTextureParser: image buffer error", e);
4810
5039
  });
4811
5040
  }
4812
5041
  return texture;
@@ -4850,7 +5079,7 @@ var GLTFValidator = /*#__PURE__*/ function(GLTFParser1) {
4850
5079
  }
4851
5080
  }
4852
5081
  }
4853
- return Promise.resolve(null);
5082
+ return AssetPromise.resolve(null);
4854
5083
  };
4855
5084
  return GLTFValidator;
4856
5085
  }(GLTFParser);
@@ -4869,6 +5098,8 @@ var GLTFBufferViewParser = /*#__PURE__*/ function(GLTFParser1) {
4869
5098
  var extensions = bufferView.extensions, _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset, byteLength = bufferView.byteLength, bufferIndex = bufferView.buffer;
4870
5099
  return extensions ? GLTFParser.executeExtensionsCreateAndParse(extensions, context, bufferView) : context.get(GLTFParserType.Buffer, bufferIndex).then(function(buffer) {
4871
5100
  return new Uint8Array(buffer, byteOffset, byteLength);
5101
+ }).catch(function(e) {
5102
+ Logger.error("GLTFBufferViewParser: buffer error", e);
4872
5103
  });
4873
5104
  };
4874
5105
  return GLTFBufferViewParser;
@@ -4886,11 +5117,13 @@ var GLTFAnimatorControllerParser = /*#__PURE__*/ function(GLTFParser1) {
4886
5117
  _proto.parse = function parse(context) {
4887
5118
  var _this = this;
4888
5119
  if (!context.needAnimatorController) {
4889
- return Promise.resolve(null);
5120
+ return AssetPromise.resolve(null);
4890
5121
  }
4891
5122
  return context.get(GLTFParserType.Animation).then(function(animations) {
4892
5123
  var animatorController = _this._createAnimatorController(context, animations);
4893
- return Promise.resolve(animatorController);
5124
+ return AssetPromise.resolve(animatorController);
5125
+ }).catch(function(e) {
5126
+ Logger.error("GLTFAnimatorControllerParser: animator controller error", e);
4894
5127
  });
4895
5128
  };
4896
5129
  _proto._createAnimatorController = function _createAnimatorController(context, animations) {
@@ -4921,203 +5154,6 @@ GLTFAnimatorControllerParser = __decorate([
4921
5154
  registerGLTFParser(GLTFParserType.AnimatorController)
4922
5155
  ], GLTFAnimatorControllerParser);
4923
5156
 
4924
- // Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
4925
- var ready;
4926
- function getMeshoptDecoder() {
4927
- var unpack = function unpack(data) {
4928
- var result = new Uint8Array(data.length);
4929
- for(var i = 0; i < data.length; ++i){
4930
- var ch = data.charCodeAt(i);
4931
- result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
4932
- }
4933
- var write = 0;
4934
- for(var i1 = 0; i1 < data.length; ++i1){
4935
- result[write++] = result[i1] < 60 ? wasmpack[result[i1]] : (result[i1] - 60) * 64 + result[++i1];
4936
- }
4937
- return result.buffer.slice(0, write);
4938
- };
4939
- var decode = function decode(fun, target, count, size, source, filter) {
4940
- var sbrk = instance.exports.sbrk;
4941
- var count4 = count + 3 & ~3;
4942
- var tp = sbrk(count4 * size);
4943
- var sp = sbrk(source.length);
4944
- var heap = new Uint8Array(instance.exports.memory.buffer);
4945
- heap.set(source, sp);
4946
- var res = fun(tp, count, size, sp, source.length);
4947
- if (res == 0 && filter) {
4948
- filter(tp, count4, size);
4949
- }
4950
- target.set(heap.subarray(tp, tp + count * size));
4951
- sbrk(tp - sbrk(0));
4952
- if (res != 0) {
4953
- throw new Error("Malformed buffer data: " + res);
4954
- }
4955
- };
4956
- var createWorker = function createWorker(url) {
4957
- var worker = {
4958
- object: new Worker(url),
4959
- pending: 0,
4960
- requests: {}
4961
- };
4962
- worker.object.onmessage = function(event) {
4963
- var data = event.data;
4964
- worker.pending -= data.count;
4965
- worker.requests[data.id][data.action](data.value);
4966
- delete worker.requests[data.id];
4967
- };
4968
- return worker;
4969
- };
4970
- var initWorkers = function initWorkers(count) {
4971
- var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});\n" + "self.onmessage = workerProcess;\n" + 'function decode(fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3;\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res == 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res != 0) {\n throw new Error("Malformed buffer data: " + res);\n }\n }\n' + 'function workerProcess(event) {\n ready.then(function () {\n const data = event.data;\n try {\n const target = new Uint8Array(data.count * data.size);\n decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);\n self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);\n } catch (error) {\n self.postMessage({\n id: data.id,\n count: data.count,\n action: "reject",\n value: error\n });\n }\n });\n }';
4972
- var blob = new Blob([
4973
- source
4974
- ], {
4975
- type: "text/javascript"
4976
- });
4977
- var url = URL.createObjectURL(blob);
4978
- for(var i = 0; i < count; ++i){
4979
- workers[i] = createWorker(url);
4980
- }
4981
- URL.revokeObjectURL(url);
4982
- };
4983
- var decodeWorker = function decodeWorker(count, size, source, mode, filter) {
4984
- var worker = workers[0];
4985
- for(var i = 1; i < workers.length; ++i){
4986
- if (workers[i].pending < worker.pending) {
4987
- worker = workers[i];
4988
- }
4989
- }
4990
- return new Promise(function(resolve, reject) {
4991
- var data = new Uint8Array(source);
4992
- var id = requestId++;
4993
- worker.pending += count;
4994
- worker.requests[id] = {
4995
- resolve: resolve,
4996
- reject: reject
4997
- };
4998
- worker.object.postMessage({
4999
- id: id,
5000
- count: count,
5001
- size: size,
5002
- source: data,
5003
- mode: mode,
5004
- filter: filter
5005
- }, [
5006
- data.buffer
5007
- ]);
5008
- });
5009
- };
5010
- if (ready) return ready;
5011
- var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok: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;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
5012
- var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;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:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;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:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
5013
- var wasmpack = new Uint8Array([
5014
- 32,
5015
- 0,
5016
- 65,
5017
- 2,
5018
- 1,
5019
- 106,
5020
- 34,
5021
- 33,
5022
- 3,
5023
- 128,
5024
- 11,
5025
- 4,
5026
- 13,
5027
- 64,
5028
- 6,
5029
- 253,
5030
- 10,
5031
- 7,
5032
- 15,
5033
- 116,
5034
- 127,
5035
- 5,
5036
- 8,
5037
- 12,
5038
- 40,
5039
- 16,
5040
- 19,
5041
- 54,
5042
- 20,
5043
- 9,
5044
- 27,
5045
- 255,
5046
- 113,
5047
- 17,
5048
- 42,
5049
- 67,
5050
- 24,
5051
- 23,
5052
- 146,
5053
- 148,
5054
- 18,
5055
- 14,
5056
- 22,
5057
- 45,
5058
- 70,
5059
- 69,
5060
- 56,
5061
- 114,
5062
- 101,
5063
- 21,
5064
- 25,
5065
- 63,
5066
- 75,
5067
- 136,
5068
- 108,
5069
- 28,
5070
- 118,
5071
- 29,
5072
- 73,
5073
- 115
5074
- ]);
5075
- // @ts-ignore
5076
- var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
5077
- var instance;
5078
- ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
5079
- instance = result.instance;
5080
- instance.exports.__wasm_call_ctors();
5081
- }).then(function() {
5082
- return {
5083
- workerCount: 4,
5084
- ready: ready,
5085
- useWorkers: function useWorkers(workerCount) {
5086
- this.workerCount = workerCount != null ? workerCount : this.workerCount;
5087
- initWorkers(this.workerCount);
5088
- },
5089
- decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
5090
- if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
5091
- if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
5092
- return ready.then(function() {
5093
- var target = new Uint8Array(count * stride);
5094
- decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
5095
- return target;
5096
- });
5097
- },
5098
- release: function release() {
5099
- for(var i = 0; i < workers.length; i++){
5100
- workers[i].object.terminate();
5101
- }
5102
- }
5103
- };
5104
- });
5105
- var filters = {
5106
- NONE: "",
5107
- OCTAHEDRAL: "meshopt_decodeFilterOct",
5108
- QUATERNION: "meshopt_decodeFilterQuat",
5109
- EXPONENTIAL: "meshopt_decodeFilterExp"
5110
- };
5111
- var decoders = {
5112
- ATTRIBUTES: "meshopt_decodeVertexBuffer",
5113
- TRIANGLES: "meshopt_decodeIndexBuffer",
5114
- INDICES: "meshopt_decodeIndexSequence"
5115
- };
5116
- var workers = [];
5117
- var requestId = 0;
5118
- return ready;
5119
- }
5120
-
5121
5157
  var GLTFLoader = /*#__PURE__*/ function(Loader1) {
5122
5158
  _inherits(GLTFLoader, Loader1);
5123
5159
  function GLTFLoader() {
@@ -5141,10 +5177,19 @@ var GLTFLoader = /*#__PURE__*/ function(Loader1) {
5141
5177
  var context = new GLTFParserContext(glTFResource, resourceManager, _extends({
5142
5178
  keepMeshData: false
5143
5179
  }, params));
5144
- return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
5180
+ return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress, onTaskCancel) {
5145
5181
  context._setTaskCompleteProgress = setTaskCompleteProgress;
5146
5182
  context._setTaskDetailProgress = setTaskDetailProgress;
5147
- context.parse().then(resolve).catch(reject);
5183
+ onTaskCancel(function() {
5184
+ var getPromises = context._getPromises;
5185
+ for(var i = 0, n = getPromises.length; i < n; i++){
5186
+ getPromises[i].cancel();
5187
+ }
5188
+ });
5189
+ context.parse().then(resolve).catch(function(e) {
5190
+ glTFResource.destroy();
5191
+ reject(e);
5192
+ });
5148
5193
  });
5149
5194
  };
5150
5195
  /**
@@ -6693,18 +6738,24 @@ var KHR_materials_clearcoat = /*#__PURE__*/ function(GLTFExtensionParser1) {
6693
6738
  GLTFMaterialParser._checkOtherTextureTransform(clearcoatTexture, "Clear coat");
6694
6739
  context.get(GLTFParserType.Texture, clearcoatTexture.index).then(function(texture) {
6695
6740
  material.clearCoatTexture = texture;
6741
+ }).catch(function(e) {
6742
+ Logger.error("KHR_materials_clearcoat: clearcoat texture error", e);
6696
6743
  });
6697
6744
  }
6698
6745
  if (clearcoatRoughnessTexture) {
6699
6746
  GLTFMaterialParser._checkOtherTextureTransform(clearcoatRoughnessTexture, "Clear coat roughness");
6700
6747
  context.get(GLTFParserType.Texture, clearcoatRoughnessTexture.index).then(function(texture) {
6701
6748
  material.clearCoatRoughnessTexture = texture;
6749
+ }).catch(function(e) {
6750
+ Logger.error("KHR_materials_clearcoat: clearcoat roughness texture error", e);
6702
6751
  });
6703
6752
  }
6704
6753
  if (clearcoatNormalTexture) {
6705
6754
  GLTFMaterialParser._checkOtherTextureTransform(clearcoatNormalTexture, "Clear coat normal");
6706
6755
  context.get(GLTFParserType.Texture, clearcoatNormalTexture.index).then(function(texture) {
6707
6756
  material.clearCoatNormalTexture = texture;
6757
+ }).catch(function(e) {
6758
+ Logger.error("KHR_materials_clearcoat: clearcoat normal texture error", e);
6708
6759
  });
6709
6760
  }
6710
6761
  };
@@ -6747,6 +6798,8 @@ var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionPa
6747
6798
  context.get(GLTFParserType.Texture, diffuseTexture.index).then(function(texture) {
6748
6799
  material.baseTexture = texture;
6749
6800
  GLTFParser.executeExtensionsAdditiveAndParse(diffuseTexture.extensions, context, material, diffuseTexture);
6801
+ }).catch(function(e) {
6802
+ Logger.error("KHR_materials_pbrSpecularGlossiness: diffuse texture error", e);
6750
6803
  });
6751
6804
  }
6752
6805
  if (specularFactor) {
@@ -6759,6 +6812,8 @@ var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionPa
6759
6812
  GLTFMaterialParser._checkOtherTextureTransform(specularGlossinessTexture, "Specular glossiness");
6760
6813
  context.get(GLTFParserType.Texture, specularGlossinessTexture.index).then(function(texture) {
6761
6814
  material.specularGlossinessTexture = texture;
6815
+ }).catch(function(e) {
6816
+ Logger.error("KHR_materials_pbrSpecularGlossiness: specular glossiness texture error", e);
6762
6817
  });
6763
6818
  }
6764
6819
  material.name = ownerSchema.name;
@@ -6807,6 +6862,8 @@ var KHR_materials_variants = /*#__PURE__*/ function(GLTFExtensionParser1) {
6807
6862
  return variantNames[index].name;
6808
6863
  })
6809
6864
  });
6865
+ }).catch(function(e) {
6866
+ Logger.error("KHR_materials_variants: material error", e);
6810
6867
  });
6811
6868
  };
6812
6869
  var _glTFResource;
@@ -6841,57 +6898,49 @@ var KHR_texture_basisu = /*#__PURE__*/ function(GLTFExtensionParser1) {
6841
6898
  }
6842
6899
  var _proto = KHR_texture_basisu.prototype;
6843
6900
  _proto.createAndParse = function createAndParse(context, schema, textureInfo) {
6844
- return _async_to_generator(function() {
6845
- var glTF, glTFResource, engine, url, sampler, textureName, source, _glTF_images_source, uri, bufferViewIndex, mimeType, imageName, samplerInfo, index, promise, bufferView;
6846
- return __generator(this, function(_state) {
6847
- glTF = context.glTF, glTFResource = context.glTFResource;
6848
- engine = glTFResource.engine, url = glTFResource.url;
6849
- sampler = textureInfo.sampler, textureName = textureInfo.name;
6850
- source = schema.source;
6851
- _glTF_images_source = glTF.images[source], uri = _glTF_images_source.uri, bufferViewIndex = _glTF_images_source.bufferView, mimeType = _glTF_images_source.mimeType, imageName = _glTF_images_source.name;
6852
- samplerInfo = sampler !== undefined && GLTFUtils.getSamplerInfo(glTF.samplers[sampler]);
6853
- if (uri) {
6854
- index = uri.lastIndexOf(".");
6855
- promise = engine.resourceManager.load({
6856
- url: Utils.resolveAbsoluteUrl(url, uri),
6857
- type: AssetType.KTX2
6858
- }).onProgress(undefined, context._onTaskDetail).then(function(texture) {
6859
- if (!texture.name) {
6860
- texture.name = textureName || imageName || "texture_" + index;
6861
- }
6901
+ var glTF = context.glTF, glTFResource = context.glTFResource;
6902
+ var engine = glTFResource.engine, url = glTFResource.url;
6903
+ var sampler = textureInfo.sampler, textureName = textureInfo.name;
6904
+ var source = schema.source;
6905
+ var _glTF_images_source = glTF.images[source], uri = _glTF_images_source.uri, bufferViewIndex = _glTF_images_source.bufferView, mimeType = _glTF_images_source.mimeType, imageName = _glTF_images_source.name;
6906
+ var samplerInfo = sampler !== undefined && GLTFUtils.getSamplerInfo(glTF.samplers[sampler]);
6907
+ if (uri) {
6908
+ var index = uri.lastIndexOf(".");
6909
+ var promise = engine.resourceManager.load({
6910
+ url: Utils.resolveAbsoluteUrl(url, uri),
6911
+ type: AssetType.KTX2
6912
+ }).onProgress(undefined, context._onTaskDetail).then(function(texture) {
6913
+ if (!texture.name) {
6914
+ texture.name = textureName || imageName || "texture_" + index;
6915
+ }
6916
+ if (sampler !== undefined) {
6917
+ GLTFUtils.parseSampler(texture, samplerInfo);
6918
+ }
6919
+ return texture;
6920
+ });
6921
+ context._addTaskCompletePromise(promise);
6922
+ return promise;
6923
+ } else {
6924
+ var bufferView = glTF.bufferViews[bufferViewIndex];
6925
+ return new AssetPromise(function(resolve, reject) {
6926
+ context.get(GLTFParserType.Buffer, bufferView.buffer).then(function(buffer) {
6927
+ var imageBuffer = new Uint8Array(buffer, bufferView.byteOffset, bufferView.byteLength);
6928
+ KTX2Loader._parseBuffer(imageBuffer, engine).then(function(param) {
6929
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
6930
+ var texture = KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
6931
+ texture.name = textureName || imageName || "texture_" + bufferViewIndex;
6862
6932
  if (sampler !== undefined) {
6863
6933
  GLTFUtils.parseSampler(texture, samplerInfo);
6864
6934
  }
6865
- return texture;
6866
- });
6867
- context._addTaskCompletePromise(promise);
6868
- return [
6869
- 2,
6870
- promise
6871
- ];
6872
- } else {
6873
- bufferView = glTF.bufferViews[bufferViewIndex];
6874
- return [
6875
- 2,
6876
- context.get(GLTFParserType.Buffer, bufferView.buffer).then(function(buffer) {
6877
- var imageBuffer = new Uint8Array(buffer, bufferView.byteOffset, bufferView.byteLength);
6878
- return KTX2Loader._parseBuffer(imageBuffer, engine).then(function(param) {
6879
- var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
6880
- return KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
6881
- }).then(function(texture) {
6882
- texture.name = textureName || imageName || "texture_" + bufferViewIndex;
6883
- if (sampler !== undefined) {
6884
- GLTFUtils.parseSampler(texture, samplerInfo);
6885
- }
6886
- var bufferTextureRestoreInfo = new BufferTextureRestoreInfo(texture, bufferView, mimeType);
6887
- context.contentRestorer.bufferTextures.push(bufferTextureRestoreInfo);
6888
- return texture;
6889
- });
6890
- })
6891
- ];
6892
- }
6935
+ var bufferTextureRestoreInfo = new BufferTextureRestoreInfo(texture, bufferView, mimeType);
6936
+ context.contentRestorer.bufferTextures.push(bufferTextureRestoreInfo);
6937
+ resolve(texture);
6938
+ }).catch(reject);
6939
+ }).catch(function(e) {
6940
+ Logger.error("KHR_texture_basisu: buffer error", e);
6941
+ });
6893
6942
  });
6894
- })();
6943
+ }
6895
6944
  };
6896
6945
  return KHR_texture_basisu;
6897
6946
  }(GLTFExtensionParser);
@@ -6981,6 +7030,8 @@ var EXT_meshopt_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
6981
7030
  return getMeshoptDecoder().then(function(decoder) {
6982
7031
  return decoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
6983
7032
  });
7033
+ }).catch(function(e) {
7034
+ Logger.error("EXT_meshopt_compression: buffer error", e);
6984
7035
  });
6985
7036
  };
6986
7037
  return EXT_meshopt_compression;
@@ -7003,6 +7054,8 @@ var KHR_materials_anisotropy = /*#__PURE__*/ function(GLTFExtensionParser1) {
7003
7054
  GLTFMaterialParser._checkOtherTextureTransform(anisotropyTexture, "Anisotropy texture");
7004
7055
  context.get(GLTFParserType.Texture, anisotropyTexture.index).then(function(texture) {
7005
7056
  material.anisotropyTexture = texture;
7057
+ }).catch(function(e) {
7058
+ Logger.error("KHR_materials_anisotropy: anisotropy texture error", e);
7006
7059
  });
7007
7060
  }
7008
7061
  };
@@ -7030,19 +7083,10 @@ var EXT_texture_webp = /*#__PURE__*/ function(GLTFExtensionParser1) {
7030
7083
  }
7031
7084
  var _proto = EXT_texture_webp.prototype;
7032
7085
  _proto.createAndParse = function createAndParse(context, schema, textureInfo, textureIndex) {
7033
- var _this = this;
7034
- return _async_to_generator(function() {
7035
- var webPIndex, sampler, tmp, fallbackIndex, textureName, texture;
7036
- return __generator(this, function(_state) {
7037
- webPIndex = schema.source;
7038
- sampler = textureInfo.sampler, tmp = textureInfo.source, fallbackIndex = tmp === void 0 ? 0 : tmp, textureName = textureInfo.name;
7039
- texture = GLTFTextureParser._parseTexture(context, _this._supportWebP ? webPIndex : fallbackIndex, textureIndex, sampler, textureName);
7040
- return [
7041
- 2,
7042
- texture
7043
- ];
7044
- });
7045
- })();
7086
+ var webPIndex = schema.source;
7087
+ var sampler = textureInfo.sampler, tmp = textureInfo.source, fallbackIndex = tmp === void 0 ? 0 : tmp, textureName = textureInfo.name;
7088
+ var texture = GLTFTextureParser._parseTexture(context, this._supportWebP ? webPIndex : fallbackIndex, textureIndex, sampler, textureName);
7089
+ return texture;
7046
7090
  };
7047
7091
  return EXT_texture_webp;
7048
7092
  }(GLTFExtensionParser);