@galacean/engine-loader 1.2.0-alpha.0 → 1.2.0-alpha.1

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.
@@ -6,7 +6,6 @@ var miniprogram = require('@galacean/engine-core/dist/miniprogram');
6
6
  var miniprogram$1 = require('@galacean/engine-math/dist/miniprogram');
7
7
  var engineMiniprogramAdapter = require('@galacean/engine-miniprogram-adapter');
8
8
  var miniprogram$2 = require('@galacean/engine-rhi-webgl/dist/miniprogram');
9
- var miniprogram$3 = require('@galacean/engine-draco/dist/miniprogram');
10
9
 
11
10
  function _extends() {
12
11
  _extends = Object.assign || function assign(target) {
@@ -539,6 +538,8 @@ var ReflectionParser = /*#__PURE__*/ function() {
539
538
  if (position) entity.transform.position.copyFrom(position);
540
539
  if (rotation) entity.transform.rotation.copyFrom(rotation);
541
540
  if (scale) entity.transform.scale.copyFrom(scale);
541
+ var _entityConfig_layer;
542
+ entity.layer = (_entityConfig_layer = entityConfig.layer) != null ? _entityConfig_layer : entity.layer;
542
543
  return entity;
543
544
  });
544
545
  };
@@ -1535,7 +1536,7 @@ FontLoader = __decorate([
1535
1536
  * Float
1536
1537
  */ "FLOAT"] = 5126] = "FLOAT";
1537
1538
  })(AccessorComponentType || (AccessorComponentType = {}));
1538
- var AccessorType;
1539
+ exports.AccessorType = void 0;
1539
1540
  (function(AccessorType) {
1540
1541
  AccessorType[/**
1541
1542
  * Scalar
@@ -1558,7 +1559,7 @@ var AccessorType;
1558
1559
  AccessorType[/**
1559
1560
  * Matrix4x4
1560
1561
  */ "MAT4"] = "MAT4";
1561
- })(AccessorType || (AccessorType = {}));
1562
+ })(exports.AccessorType || (exports.AccessorType = {}));
1562
1563
  var AnimationChannelTargetPath;
1563
1564
  (function(AnimationChannelTargetPath) {
1564
1565
  AnimationChannelTargetPath[/**
@@ -1707,7 +1708,7 @@ var TextureWrapMode;
1707
1708
  var glTFItems = this.glTF[glTFSchemaMap[type]];
1708
1709
  if (glTFItems && (index === undefined || glTFItems[index])) {
1709
1710
  if (index === undefined) {
1710
- resource = type === 7 ? glTFItems.map(function(_, index) {
1711
+ resource = type === 8 ? glTFItems.map(function(_, index) {
1711
1712
  return _this.get(type, index);
1712
1713
  }) : Promise.all(glTFItems.map(function(_, index) {
1713
1714
  return _this.get(type, index);
@@ -1729,11 +1730,11 @@ var TextureWrapMode;
1729
1730
  _this.glTF = json;
1730
1731
  return Promise.all([
1731
1732
  _this.get(1),
1732
- _this.get(4),
1733
1733
  _this.get(5),
1734
1734
  _this.get(6),
1735
- _this.get(8),
1735
+ _this.get(7),
1736
1736
  _this.get(9),
1737
+ _this.get(10),
1737
1738
  _this.get(2)
1738
1739
  ]).then(function() {
1739
1740
  var glTFResource = _this.glTFResource;
@@ -1783,7 +1784,7 @@ var TextureWrapMode;
1783
1784
  var _this = this;
1784
1785
  var glTFResourceKey = glTFResourceMap[type];
1785
1786
  if (!glTFResourceKey) return;
1786
- if (type === 7) {
1787
+ if (type === 8) {
1787
1788
  var _this_glTFResource, _glTFResourceKey;
1788
1789
  ((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
1789
1790
  } else {
@@ -1791,7 +1792,7 @@ var TextureWrapMode;
1791
1792
  resource.then(function(item) {
1792
1793
  var _this_glTFResource, _glTFResourceKey;
1793
1794
  ((_this_glTFResource = _this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = item;
1794
- if (type === 6) {
1795
+ if (type === 7) {
1795
1796
  for(var i = 0, length = item.length; i < length; i++){
1796
1797
  var mesh = item[i];
1797
1798
  // @ts-ignore
@@ -1831,17 +1832,18 @@ exports.GLTFParserType = void 0;
1831
1832
  GLTFParserType[GLTFParserType["Validator"] = 1] = "Validator";
1832
1833
  GLTFParserType[GLTFParserType["Scene"] = 2] = "Scene";
1833
1834
  GLTFParserType[GLTFParserType["Buffer"] = 3] = "Buffer";
1834
- GLTFParserType[GLTFParserType["Texture"] = 4] = "Texture";
1835
- GLTFParserType[GLTFParserType["Material"] = 5] = "Material";
1836
- GLTFParserType[GLTFParserType["Mesh"] = 6] = "Mesh";
1837
- GLTFParserType[GLTFParserType["Entity"] = 7] = "Entity";
1838
- GLTFParserType[GLTFParserType["Skin"] = 8] = "Skin";
1839
- GLTFParserType[GLTFParserType["Animation"] = 9] = "Animation";
1835
+ GLTFParserType[GLTFParserType["BufferView"] = 4] = "BufferView";
1836
+ GLTFParserType[GLTFParserType["Texture"] = 5] = "Texture";
1837
+ GLTFParserType[GLTFParserType["Material"] = 6] = "Material";
1838
+ GLTFParserType[GLTFParserType["Mesh"] = 7] = "Mesh";
1839
+ GLTFParserType[GLTFParserType["Entity"] = 8] = "Entity";
1840
+ GLTFParserType[GLTFParserType["Skin"] = 9] = "Skin";
1841
+ GLTFParserType[GLTFParserType["Animation"] = 10] = "Animation";
1840
1842
  })(exports.GLTFParserType || (exports.GLTFParserType = {}));
1841
1843
  var _obj;
1842
- var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[4] = "textures", _obj[5] = "materials", _obj[6] = "meshes", _obj[7] = "nodes", _obj[8] = "skins", _obj[9] = "animations", _obj);
1844
+ var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[5] = "textures", _obj[6] = "materials", _obj[7] = "meshes", _obj[8] = "nodes", _obj[9] = "skins", _obj[10] = "animations", _obj[4] = "bufferViews", _obj);
1843
1845
  var _obj1;
1844
- var glTFResourceMap = (_obj1 = {}, _obj1[2] = "_sceneRoots", _obj1[4] = "textures", _obj1[5] = "materials", _obj1[6] = "meshes", _obj1[7] = "entities", _obj1[8] = "skins", _obj1[9] = "animations", _obj1);
1846
+ var glTFResourceMap = (_obj1 = {}, _obj1[2] = "_sceneRoots", _obj1[5] = "textures", _obj1[6] = "materials", _obj1[7] = "meshes", _obj1[8] = "entities", _obj1[9] = "skins", _obj1[10] = "animations", _obj1);
1845
1847
  function registerGLTFParser(pipeline) {
1846
1848
  return function(Parser) {
1847
1849
  var parser = new Parser();
@@ -1895,19 +1897,19 @@ function registerGLTFParser(pipeline) {
1895
1897
  * Get the number of bytes occupied by accessor type.
1896
1898
  */ GLTFUtils.getAccessorTypeSize = function getAccessorTypeSize(accessorType) {
1897
1899
  switch(accessorType){
1898
- case AccessorType.SCALAR:
1900
+ case exports.AccessorType.SCALAR:
1899
1901
  return 1;
1900
- case AccessorType.VEC2:
1902
+ case exports.AccessorType.VEC2:
1901
1903
  return 2;
1902
- case AccessorType.VEC3:
1904
+ case exports.AccessorType.VEC3:
1903
1905
  return 3;
1904
- case AccessorType.VEC4:
1906
+ case exports.AccessorType.VEC4:
1905
1907
  return 4;
1906
- case AccessorType.MAT2:
1908
+ case exports.AccessorType.MAT2:
1907
1909
  return 4;
1908
- case AccessorType.MAT3:
1910
+ case exports.AccessorType.MAT3:
1909
1911
  return 9;
1910
- case AccessorType.MAT4:
1912
+ case exports.AccessorType.MAT4:
1911
1913
  return 16;
1912
1914
  }
1913
1915
  };
@@ -1947,11 +1949,10 @@ function registerGLTFParser(pipeline) {
1947
1949
  GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
1948
1950
  var componentType = accessor.componentType;
1949
1951
  var bufferView = bufferViews[accessor.bufferView];
1950
- return context.get(exports.GLTFParserType.Buffer).then(function(buffers) {
1952
+ return context.get(exports.GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
1951
1953
  var bufferIndex = bufferView.buffer;
1952
- var buffer = buffers[bufferIndex];
1953
- var _bufferView_byteOffset;
1954
- var bufferByteOffset = (_bufferView_byteOffset = bufferView.byteOffset) != null ? _bufferView_byteOffset : 0;
1954
+ var _bufferViewData_byteOffset;
1955
+ var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
1955
1956
  var _accessor_byteOffset;
1956
1957
  var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
1957
1958
  var TypedArray = GLTFUtils.getComponentType(componentType);
@@ -1970,19 +1971,21 @@ function registerGLTFParser(pipeline) {
1970
1971
  if (!bufferInfo) {
1971
1972
  var offset = bufferByteOffset + bufferSlice * bufferStride;
1972
1973
  var count = accessorCount * (bufferStride / dataElementBytes);
1973
- var data = new TypedArray(buffer, offset, count);
1974
+ var data = new TypedArray(bufferViewData.buffer, offset, count);
1974
1975
  accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
1975
1976
  bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
1976
1977
  }
1977
1978
  } else {
1978
1979
  var offset1 = bufferByteOffset + byteOffset;
1979
1980
  var count1 = accessorCount * dataElementSize;
1980
- var data1 = new TypedArray(buffer, offset1, count1);
1981
+ var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
1981
1982
  bufferInfo = new BufferInfo(data1, false, elementStride);
1982
1983
  bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
1983
1984
  }
1984
1985
  if (accessor.sparse) {
1985
- GLTFUtils.processingSparseData(bufferViews, accessor, buffers, bufferInfo);
1986
+ return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
1987
+ return bufferInfo;
1988
+ });
1986
1989
  }
1987
1990
  return bufferInfo;
1988
1991
  });
@@ -2058,40 +2061,43 @@ function registerGLTFParser(pipeline) {
2058
2061
  };
2059
2062
  /**
2060
2063
  * Get accessor data.
2061
- */ GLTFUtils.processingSparseData = function processingSparseData(bufferViews, accessor, buffers, bufferInfo) {
2064
+ */ GLTFUtils.processingSparseData = function processingSparseData(context, accessor, bufferInfo) {
2062
2065
  var restoreInfo = bufferInfo.restoreInfo;
2066
+ var bufferViews = context.glTF.bufferViews;
2063
2067
  var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
2064
2068
  var TypedArray = GLTFUtils.getComponentType(accessor.componentType);
2065
2069
  var data = bufferInfo.data.slice();
2066
2070
  var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
2067
2071
  var indicesBufferView = bufferViews[indices.bufferView];
2068
2072
  var valuesBufferView = bufferViews[values.bufferView];
2069
- var indicesBufferIndex = indicesBufferView.buffer;
2070
- var valuesBufferIndex = valuesBufferView.buffer;
2071
- var indicesArrayBuffer = buffers[indicesBufferIndex];
2072
- var valuesArrayBuffer = buffers[valuesBufferIndex];
2073
- var _indices_byteOffset, _indicesBufferView_byteOffset;
2074
- var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
2075
- var indicesByteLength = indicesBufferView.byteLength;
2076
- var _values_byteOffset, _valuesBufferView_byteOffset;
2077
- var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
2078
- var valuesByteLength = valuesBufferView.byteLength;
2079
- restoreInfo.typeSize = accessorTypeSize;
2080
- restoreInfo.sparseCount = count;
2081
- var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
2082
- var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
2083
- var indicesArray = new IndexTypeArray(indicesArrayBuffer, indicesByteOffset, indexLength);
2084
- restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferIndex, IndexTypeArray, indicesByteOffset, indexLength);
2085
- var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
2086
- var valuesArray = new TypedArray(valuesArrayBuffer, valuesByteOffset, valueLength);
2087
- restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferIndex, TypedArray, valuesByteOffset, valueLength);
2088
- for(var i = 0; i < count; i++){
2089
- var replaceIndex = indicesArray[i];
2090
- for(var j = 0; j < accessorTypeSize; j++){
2091
- data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
2073
+ return Promise.all([
2074
+ context.get(exports.GLTFParserType.BufferView, indices.bufferView),
2075
+ context.get(exports.GLTFParserType.BufferView, values.bufferView)
2076
+ ]).then(function(param) {
2077
+ var indicesUint8Array = param[0], valuesUin8Array = param[1];
2078
+ var _indices_byteOffset, _indicesUint8Array_byteOffset;
2079
+ var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesUint8Array_byteOffset = indicesUint8Array.byteOffset) != null ? _indicesUint8Array_byteOffset : 0);
2080
+ var indicesByteLength = indicesUint8Array.byteLength;
2081
+ var _values_byteOffset, _valuesUin8Array_byteOffset;
2082
+ var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesUin8Array_byteOffset = valuesUin8Array.byteOffset) != null ? _valuesUin8Array_byteOffset : 0);
2083
+ var valuesByteLength = valuesUin8Array.byteLength;
2084
+ restoreInfo.typeSize = accessorTypeSize;
2085
+ restoreInfo.sparseCount = count;
2086
+ var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
2087
+ var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
2088
+ var indicesArray = new IndexTypeArray(indicesUint8Array.buffer, indicesByteOffset, indexLength);
2089
+ restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferView.buffer, IndexTypeArray, indicesByteOffset, indexLength);
2090
+ var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
2091
+ var valuesArray = new TypedArray(valuesUin8Array.buffer, valuesByteOffset, valueLength);
2092
+ restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferView.buffer, TypedArray, valuesByteOffset, valueLength);
2093
+ for(var i = 0; i < count; i++){
2094
+ var replaceIndex = indicesArray[i];
2095
+ for(var j = 0; j < accessorTypeSize; j++){
2096
+ data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
2097
+ }
2092
2098
  }
2093
- }
2094
- bufferInfo.data = data;
2099
+ bufferInfo.data = data;
2100
+ });
2095
2101
  };
2096
2102
  GLTFUtils.getIndexFormat = function getIndexFormat(type) {
2097
2103
  switch(type){
@@ -3113,8 +3119,9 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
3113
3119
  });
3114
3120
  };
3115
3121
  /**
3116
- * Destroy ktx2 transcoder worker.
3117
- */ KTX2Loader1.destroy = function destroy() {
3122
+ * Release ktx2 transcoder worker.
3123
+ * @remarks If use loader after releasing, we should release again.
3124
+ */ KTX2Loader1.release = function release() {
3118
3125
  if (this._binomialLLCTranscoder) this._binomialLLCTranscoder.destroy();
3119
3126
  if (this._khronosTranscoder) this._khronosTranscoder.destroy();
3120
3127
  this._binomialLLCTranscoder = null;
@@ -4644,12 +4651,255 @@ exports.GLTFValidator = __decorate([
4644
4651
  registerGLTFParser(exports.GLTFParserType.Validator)
4645
4652
  ], exports.GLTFValidator);
4646
4653
 
4647
- var GLTFLoader = /*#__PURE__*/ function(Loader1) {
4654
+ exports.GLTFBufferViewParser = /*#__PURE__*/ function(GLTFParser1) {
4655
+ _inherits(GLTFBufferViewParser, GLTFParser1);
4656
+ function GLTFBufferViewParser() {
4657
+ return GLTFParser1.apply(this, arguments);
4658
+ }
4659
+ var _proto = GLTFBufferViewParser.prototype;
4660
+ _proto.parse = function parse(context, index) {
4661
+ var bufferView = context.glTF.bufferViews[index];
4662
+ var extensions = bufferView.extensions, _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset, byteLength = bufferView.byteLength, bufferIndex = bufferView.buffer;
4663
+ return extensions ? GLTFParser.executeExtensionsCreateAndParse(extensions, context, bufferView) : context.get(exports.GLTFParserType.Buffer, bufferIndex).then(function(buffer) {
4664
+ return new Uint8Array(buffer, byteOffset, byteLength);
4665
+ });
4666
+ };
4667
+ return GLTFBufferViewParser;
4668
+ }(GLTFParser);
4669
+ exports.GLTFBufferViewParser = __decorate([
4670
+ registerGLTFParser(exports.GLTFParserType.BufferView)
4671
+ ], exports.GLTFBufferViewParser);
4672
+
4673
+ var MeshoptDecoder = function() {
4674
+ var unpack = function unpack(data) {
4675
+ var result = new Uint8Array(data.length);
4676
+ for(var i = 0; i < data.length; ++i){
4677
+ var ch = data.charCodeAt(i);
4678
+ result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
4679
+ }
4680
+ var write = 0;
4681
+ for(var i1 = 0; i1 < data.length; ++i1){
4682
+ result[write++] = result[i1] < 60 ? wasmpack[result[i1]] : (result[i1] - 60) * 64 + result[++i1];
4683
+ }
4684
+ return result.buffer.slice(0, write);
4685
+ };
4686
+ var decode = function decode(fun, target, count, size, source, filter) {
4687
+ var sbrk = instance.exports.sbrk;
4688
+ var count4 = count + 3 & ~3;
4689
+ var tp = sbrk(count4 * size);
4690
+ var sp = sbrk(source.length);
4691
+ var heap = new Uint8Array(instance.exports.memory.buffer);
4692
+ heap.set(source, sp);
4693
+ var res = fun(tp, count, size, sp, source.length);
4694
+ if (res == 0 && filter) {
4695
+ filter(tp, count4, size);
4696
+ }
4697
+ target.set(heap.subarray(tp, tp + count * size));
4698
+ sbrk(tp - sbrk(0));
4699
+ if (res != 0) {
4700
+ throw new Error("Malformed buffer data: " + res);
4701
+ }
4702
+ };
4703
+ var createWorker = function createWorker(url) {
4704
+ var worker = {
4705
+ object: new Worker(url),
4706
+ pending: 0,
4707
+ requests: {}
4708
+ };
4709
+ worker.object.onmessage = function(event) {
4710
+ var data = event.data;
4711
+ worker.pending -= data.count;
4712
+ worker.requests[data.id][data.action](data.value);
4713
+ delete worker.requests[data.id];
4714
+ };
4715
+ return worker;
4716
+ };
4717
+ var initWorkers = function initWorkers(count) {
4718
+ 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();});" + "self.onmessage = workerProcess;" + decode.toString() + workerProcess.toString();
4719
+ var blob = new engineMiniprogramAdapter.Blob([
4720
+ source
4721
+ ], {
4722
+ type: "text/javascript"
4723
+ });
4724
+ var url = engineMiniprogramAdapter.URL.createObjectURL(blob);
4725
+ for(var i = 0; i < count; ++i){
4726
+ workers[i] = createWorker(url);
4727
+ }
4728
+ engineMiniprogramAdapter.URL.revokeObjectURL(url);
4729
+ };
4730
+ var decodeWorker = function decodeWorker(count, size, source, mode, filter) {
4731
+ var worker = workers[0];
4732
+ for(var i = 1; i < workers.length; ++i){
4733
+ if (workers[i].pending < worker.pending) {
4734
+ worker = workers[i];
4735
+ }
4736
+ }
4737
+ return new Promise(function(resolve, reject) {
4738
+ var data = new Uint8Array(source);
4739
+ var id = requestId++;
4740
+ worker.pending += count;
4741
+ worker.requests[id] = {
4742
+ resolve: resolve,
4743
+ reject: reject
4744
+ };
4745
+ worker.object.postMessage({
4746
+ id: id,
4747
+ count: count,
4748
+ size: size,
4749
+ source: data,
4750
+ mode: mode,
4751
+ filter: filter
4752
+ }, [
4753
+ data.buffer
4754
+ ]);
4755
+ });
4756
+ };
4757
+ var workerProcess = function workerProcess(event) {
4758
+ ready.then(function() {
4759
+ var data = event.data;
4760
+ try {
4761
+ var target = new Uint8Array(data.count * data.size);
4762
+ decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
4763
+ self.postMessage({
4764
+ id: data.id,
4765
+ count: data.count,
4766
+ action: "resolve",
4767
+ value: target
4768
+ }, [
4769
+ target.buffer
4770
+ ]);
4771
+ } catch (error) {
4772
+ self.postMessage({
4773
+ id: data.id,
4774
+ count: data.count,
4775
+ action: "reject",
4776
+ value: error
4777
+ });
4778
+ }
4779
+ });
4780
+ };
4781
+ 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";
4782
+ 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";
4783
+ var wasmpack = new Uint8Array([
4784
+ 32,
4785
+ 0,
4786
+ 65,
4787
+ 2,
4788
+ 1,
4789
+ 106,
4790
+ 34,
4791
+ 33,
4792
+ 3,
4793
+ 128,
4794
+ 11,
4795
+ 4,
4796
+ 13,
4797
+ 64,
4798
+ 6,
4799
+ 253,
4800
+ 10,
4801
+ 7,
4802
+ 15,
4803
+ 116,
4804
+ 127,
4805
+ 5,
4806
+ 8,
4807
+ 12,
4808
+ 40,
4809
+ 16,
4810
+ 19,
4811
+ 54,
4812
+ 20,
4813
+ 9,
4814
+ 27,
4815
+ 255,
4816
+ 113,
4817
+ 17,
4818
+ 42,
4819
+ 67,
4820
+ 24,
4821
+ 23,
4822
+ 146,
4823
+ 148,
4824
+ 18,
4825
+ 14,
4826
+ 22,
4827
+ 45,
4828
+ 70,
4829
+ 69,
4830
+ 56,
4831
+ 114,
4832
+ 101,
4833
+ 21,
4834
+ 25,
4835
+ 63,
4836
+ 75,
4837
+ 136,
4838
+ 108,
4839
+ 28,
4840
+ 118,
4841
+ 29,
4842
+ 73,
4843
+ 115
4844
+ ]);
4845
+ // @ts-ignore
4846
+ var wasm = miniprogram.SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
4847
+ var instance;
4848
+ var ready = WebAssembly.instantiate(unpack(wasm), {}).then(function(result) {
4849
+ instance = result.instance;
4850
+ instance.exports.__wasm_call_ctors();
4851
+ });
4852
+ var filters = {
4853
+ NONE: "",
4854
+ OCTAHEDRAL: "meshopt_decodeFilterOct",
4855
+ QUATERNION: "meshopt_decodeFilterQuat",
4856
+ EXPONENTIAL: "meshopt_decodeFilterExp"
4857
+ };
4858
+ var decoders = {
4859
+ ATTRIBUTES: "meshopt_decodeVertexBuffer",
4860
+ TRIANGLES: "meshopt_decodeIndexBuffer",
4861
+ INDICES: "meshopt_decodeIndexSequence"
4862
+ };
4863
+ var workers = [];
4864
+ var requestId = 0;
4865
+ return {
4866
+ workerCount: 4,
4867
+ ready: ready,
4868
+ useWorkers: function useWorkers() {
4869
+ initWorkers(this.workerCount);
4870
+ },
4871
+ decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
4872
+ if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
4873
+ if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
4874
+ return ready.then(function() {
4875
+ var target = new Uint8Array(count * stride);
4876
+ decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
4877
+ return target;
4878
+ });
4879
+ },
4880
+ release: function release() {
4881
+ for(var i = 0; i < workers.length; i++){
4882
+ workers[i].object.terminate();
4883
+ }
4884
+ }
4885
+ };
4886
+ }();
4887
+
4888
+ exports.GLTFLoader = /*#__PURE__*/ function(Loader1) {
4648
4889
  _inherits(GLTFLoader, Loader1);
4649
4890
  function GLTFLoader() {
4650
4891
  return Loader1.apply(this, arguments);
4651
4892
  }
4652
4893
  var _proto = GLTFLoader.prototype;
4894
+ _proto.initialize = function initialize(_, configuration) {
4895
+ var _configuration_glTF;
4896
+ var meshOptOptions = (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
4897
+ if (meshOptOptions) {
4898
+ MeshoptDecoder.workerCount = meshOptOptions.workerCount;
4899
+ MeshoptDecoder.useWorkers();
4900
+ }
4901
+ return Promise.resolve();
4902
+ };
4653
4903
  _proto.load = function load(item, resourceManager) {
4654
4904
  var url = item.url;
4655
4905
  var params = item.params;
@@ -4663,14 +4913,20 @@ var GLTFLoader = /*#__PURE__*/ function(Loader1) {
4663
4913
  context.parse().then(resolve).catch(reject);
4664
4914
  });
4665
4915
  };
4916
+ /**
4917
+ * Release glTF loader memory(includes meshopt workers).
4918
+ * @remarks If use loader after releasing, we should release again.
4919
+ */ GLTFLoader.release = function release() {
4920
+ MeshoptDecoder.release();
4921
+ };
4666
4922
  return GLTFLoader;
4667
4923
  }(miniprogram.Loader);
4668
- GLTFLoader = __decorate([
4924
+ exports.GLTFLoader = __decorate([
4669
4925
  miniprogram.resourceLoader(miniprogram.AssetType.GLTF, [
4670
4926
  "gltf",
4671
4927
  "glb"
4672
4928
  ])
4673
- ], GLTFLoader);
4929
+ ], exports.GLTFLoader);
4674
4930
 
4675
4931
  var _HDRLoader;
4676
4932
  var PI = Math.PI;
@@ -5492,7 +5748,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
5492
5748
  };
5493
5749
  _proto._makeSprite = function _makeSprite(engine, config, texture) {
5494
5750
  // Generate a SpriteAtlas object.
5495
- var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border;
5751
+ var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border, width = config.width, height = config.height;
5496
5752
  var sprite = new miniprogram.Sprite(engine, texture, region ? this._tempRect.set(region.x, region.y, region.w, region.h) : undefined, pivot ? this._tempVec2.set(pivot.x, pivot.y) : undefined, border ? this._tempVec4.set(border.x, border.y, border.z, border.w) : undefined, config.name);
5497
5753
  if (texture) {
5498
5754
  var invW = 1 / texture.width;
@@ -5504,6 +5760,8 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
5504
5760
  }
5505
5761
  config.atlasRotated && (sprite.atlasRotated = true);
5506
5762
  }
5763
+ isNaN(width) || (sprite.width = width);
5764
+ isNaN(height) || (sprite.height = height);
5507
5765
  return sprite;
5508
5766
  };
5509
5767
  return SpriteAtlasLoader;
@@ -5522,26 +5780,39 @@ var SpriteLoader = /*#__PURE__*/ function(Loader1) {
5522
5780
  var _proto = SpriteLoader.prototype;
5523
5781
  _proto.load = function load(item, resourceManager) {
5524
5782
  var _this = this;
5525
- return new miniprogram.AssetPromise(function(resolve, reject) {
5526
- _this.request(item.url, _extends({}, item, {
5527
- type: "json"
5528
- })).then(function(data) {
5529
- if (data.belongToAtlas) {
5530
- resourceManager// @ts-ignore
5531
- .getResourceByRef(data.belongToAtlas).then(function(atlas) {
5532
- resolve(atlas.getSprite(data.fullPath));
5533
- }).catch(reject);
5534
- } else if (data.texture) {
5535
- resourceManager// @ts-ignore
5536
- .getResourceByRef(data.texture).then(function(texture) {
5537
- resolve(new miniprogram.Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border));
5538
- }).catch(reject);
5539
- } else {
5540
- resolve(new miniprogram.Sprite(resourceManager.engine, null, data.region, data.pivot, data.border));
5541
- }
5542
- }).catch(reject);
5783
+ return this.request(item.url, _extends({}, item, {
5784
+ type: "json"
5785
+ })).then(function(data) {
5786
+ return data.belongToAtlas ? _this._loadFromAtlas(resourceManager, data) : _this._loadFromTexture(resourceManager, data);
5787
+ });
5788
+ };
5789
+ _proto._loadFromAtlas = function _loadFromAtlas(resourceManager, data) {
5790
+ var _this = this;
5791
+ return resourceManager// @ts-ignore
5792
+ .getResourceByRef(data.belongToAtlas).then(function(atlas) {
5793
+ return atlas.getSprite(data.fullPath) || _this._loadFromTexture(resourceManager, data);
5543
5794
  });
5544
5795
  };
5796
+ _proto._loadFromTexture = function _loadFromTexture(resourceManager, data) {
5797
+ if (data.texture) {
5798
+ return resourceManager// @ts-ignore
5799
+ .getResourceByRef(data.texture).then(function(texture) {
5800
+ var sprite = new miniprogram.Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border);
5801
+ var width = data.width, height = data.height;
5802
+ isNaN(width) || (sprite.width = width);
5803
+ isNaN(height) || (sprite.height = height);
5804
+ return sprite;
5805
+ });
5806
+ } else {
5807
+ return new miniprogram.AssetPromise(function(resolve) {
5808
+ var sprite = new miniprogram.Sprite(resourceManager.engine, null, data.region, data.pivot, data.border);
5809
+ var width = data.width, height = data.height;
5810
+ isNaN(width) || (sprite.width = width);
5811
+ isNaN(height) || (sprite.height = height);
5812
+ resolve(sprite);
5813
+ });
5814
+ }
5815
+ };
5545
5816
  return SpriteLoader;
5546
5817
  }(miniprogram.Loader);
5547
5818
  SpriteLoader = __decorate([
@@ -5844,170 +6115,6 @@ ReflectionParser.registerCustomParseComponent("TextRenderer", /*#__PURE__*/ _asy
5844
6115
  });
5845
6116
  }));
5846
6117
 
5847
- var _KHR_draco_mesh_compression;
5848
- var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
5849
- _inherits(KHR_draco_mesh_compression1, GLTFExtensionParser1);
5850
- function KHR_draco_mesh_compression1() {
5851
- return GLTFExtensionParser1.apply(this, arguments);
5852
- }
5853
- var _proto = KHR_draco_mesh_compression1.prototype;
5854
- _proto.createAndParse = function createAndParse(context, schema, glTFPrimitive, glTFMesh) {
5855
- var _this = this;
5856
- this._initialize();
5857
- var glTF = context.glTF, engine = context.glTFResource.engine;
5858
- var bufferViews = glTF.bufferViews, accessors = glTF.accessors;
5859
- var bufferViewIndex = schema.bufferView, gltfAttributeMap = schema.attributes;
5860
- var attributeMap = {};
5861
- var attributeTypeMap = {};
5862
- for(var attributeName in gltfAttributeMap){
5863
- attributeMap[attributeName] = gltfAttributeMap[attributeName];
5864
- }
5865
- for(var attributeName1 in glTFPrimitive.attributes){
5866
- if (gltfAttributeMap[attributeName1] !== undefined) {
5867
- var accessorDef = accessors[glTFPrimitive.attributes[attributeName1]];
5868
- attributeTypeMap[attributeName1] = GLTFUtils.getComponentType(accessorDef.componentType).name;
5869
- }
5870
- }
5871
- var indexAccessor = accessors[glTFPrimitive.indices];
5872
- var indexType = GLTFUtils.getComponentType(indexAccessor.componentType).name;
5873
- var taskConfig = {
5874
- attributeIDs: attributeMap,
5875
- attributeTypes: attributeTypeMap,
5876
- useUniqueIDs: true,
5877
- indexType: indexType
5878
- };
5879
- return context.get(exports.GLTFParserType.Buffer).then(function(buffers) {
5880
- var buffer = GLTFUtils.getBufferViewData(bufferViews[bufferViewIndex], buffers);
5881
- return KHR_draco_mesh_compression._decoder.decode(buffer, taskConfig).then(function(decodedGeometry) {
5882
- var mesh = new miniprogram.ModelMesh(engine, glTFMesh.name);
5883
- return _this._parseMeshFromGLTFPrimitiveDraco(mesh, glTFMesh, glTFPrimitive, glTF, function(attributeSemantic) {
5884
- for(var j = 0; j < decodedGeometry.attributes.length; j++){
5885
- if (decodedGeometry.attributes[j].name === attributeSemantic) {
5886
- return decodedGeometry.attributes[j].array;
5887
- }
5888
- }
5889
- return null;
5890
- }, function(attributeSemantic, shapeIndex) {
5891
- throw "BlendShape animation is not supported when using draco.";
5892
- }, function() {
5893
- return decodedGeometry.index.array;
5894
- }, context.params.keepMeshData);
5895
- });
5896
- });
5897
- };
5898
- _proto._initialize = function _initialize() {
5899
- if (!KHR_draco_mesh_compression._decoder) {
5900
- KHR_draco_mesh_compression._decoder = new miniprogram$3.DRACODecoder();
5901
- }
5902
- };
5903
- _proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(mesh, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
5904
- var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
5905
- var vertexCount;
5906
- var accessors = gltf.accessors;
5907
- var accessor = accessors[attributes["POSITION"]];
5908
- var positionBuffer = getVertexBufferData("POSITION");
5909
- var positions = GLTFUtils.floatBufferToVector3Array(positionBuffer);
5910
- mesh.setPositions(positions);
5911
- var bounds = mesh.bounds;
5912
- vertexCount = accessor.count;
5913
- if (accessor.min && accessor.max) {
5914
- bounds.min.copyFromArray(accessor.min);
5915
- bounds.max.copyFromArray(accessor.max);
5916
- } else {
5917
- var position = KHR_draco_mesh_compression._tempVector3;
5918
- var min = bounds.min, max = bounds.max;
5919
- min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
5920
- max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
5921
- var stride = positionBuffer.length / vertexCount;
5922
- for(var j = 0; j < vertexCount; j++){
5923
- var offset = j * stride;
5924
- position.copyFromArray(positionBuffer, offset);
5925
- miniprogram$1.Vector3.min(min, position, min);
5926
- miniprogram$1.Vector3.max(max, position, max);
5927
- }
5928
- }
5929
- for(var attributeSemantic in attributes){
5930
- if (attributeSemantic === "POSITION") {
5931
- continue;
5932
- }
5933
- var bufferData = getVertexBufferData(attributeSemantic);
5934
- switch(attributeSemantic){
5935
- case "NORMAL":
5936
- var normals = GLTFUtils.floatBufferToVector3Array(bufferData);
5937
- mesh.setNormals(normals);
5938
- break;
5939
- case "TEXCOORD_0":
5940
- var texturecoords = GLTFUtils.floatBufferToVector2Array(bufferData);
5941
- mesh.setUVs(texturecoords, 0);
5942
- break;
5943
- case "TEXCOORD_1":
5944
- var texturecoords1 = GLTFUtils.floatBufferToVector2Array(bufferData);
5945
- mesh.setUVs(texturecoords1, 1);
5946
- break;
5947
- case "TEXCOORD_2":
5948
- var texturecoords2 = GLTFUtils.floatBufferToVector2Array(bufferData);
5949
- mesh.setUVs(texturecoords2, 2);
5950
- break;
5951
- case "TEXCOORD_3":
5952
- var texturecoords3 = GLTFUtils.floatBufferToVector2Array(bufferData);
5953
- mesh.setUVs(texturecoords3, 3);
5954
- break;
5955
- case "TEXCOORD_4":
5956
- var texturecoords4 = GLTFUtils.floatBufferToVector2Array(bufferData);
5957
- mesh.setUVs(texturecoords4, 4);
5958
- break;
5959
- case "TEXCOORD_5":
5960
- var texturecoords5 = GLTFUtils.floatBufferToVector2Array(bufferData);
5961
- mesh.setUVs(texturecoords5, 5);
5962
- break;
5963
- case "TEXCOORD_6":
5964
- var texturecoords6 = GLTFUtils.floatBufferToVector2Array(bufferData);
5965
- mesh.setUVs(texturecoords6, 6);
5966
- break;
5967
- case "TEXCOORD_7":
5968
- var texturecoords7 = GLTFUtils.floatBufferToVector2Array(bufferData);
5969
- mesh.setUVs(texturecoords7, 7);
5970
- break;
5971
- case "COLOR_0":
5972
- var colors = GLTFUtils.floatBufferToColorArray(bufferData, accessors[attributes["COLOR_0"]].type === AccessorType.VEC3);
5973
- mesh.setColors(colors);
5974
- break;
5975
- case "TANGENT":
5976
- var tangents = GLTFUtils.floatBufferToVector4Array(bufferData);
5977
- mesh.setTangents(tangents);
5978
- break;
5979
- case "JOINTS_0":
5980
- var joints = GLTFUtils.floatBufferToVector4Array(bufferData);
5981
- mesh.setBoneIndices(joints);
5982
- break;
5983
- case "WEIGHTS_0":
5984
- var weights = GLTFUtils.floatBufferToVector4Array(bufferData);
5985
- mesh.setBoneWeights(weights);
5986
- break;
5987
- }
5988
- }
5989
- // Indices
5990
- if (indices !== undefined) {
5991
- var indexAccessor = gltf.accessors[indices];
5992
- var indexData = getIndexBufferData();
5993
- mesh.setIndices(indexData);
5994
- mesh.addSubMesh(0, indexAccessor.count, mode);
5995
- } else {
5996
- mesh.addSubMesh(0, vertexCount, mode);
5997
- }
5998
- // BlendShapes
5999
- targets && exports.GLTFMeshParser._createBlendShape(mesh, null, gltfMesh, accessors, targets, getBlendShapeData);
6000
- mesh.uploadData(!keepMeshData);
6001
- return Promise.resolve(mesh);
6002
- };
6003
- return KHR_draco_mesh_compression1;
6004
- }(GLTFExtensionParser), function() {
6005
- _KHR_draco_mesh_compression._tempVector3 = new miniprogram$1.Vector3();
6006
- }(), _KHR_draco_mesh_compression);
6007
- KHR_draco_mesh_compression = __decorate([
6008
- registerGLTFExtension("KHR_draco_mesh_compression", exports.GLTFExtensionMode.CreateAndParse)
6009
- ], KHR_draco_mesh_compression);
6010
-
6011
6118
  var KHR_lights_punctual = /*#__PURE__*/ function(GLTFExtensionParser1) {
6012
6119
  _inherits(KHR_lights_punctual, GLTFExtensionParser1);
6013
6120
  function KHR_lights_punctual() {
@@ -6340,6 +6447,23 @@ GALACEAN_animation_event = __decorate([
6340
6447
  registerGLTFExtension("GALACEAN_animation_event", exports.GLTFExtensionMode.AdditiveParse)
6341
6448
  ], GALACEAN_animation_event);
6342
6449
 
6450
+ var EXT_meshopt_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
6451
+ _inherits(EXT_meshopt_compression, GLTFExtensionParser1);
6452
+ function EXT_meshopt_compression() {
6453
+ return GLTFExtensionParser1.apply(this, arguments);
6454
+ }
6455
+ var _proto = EXT_meshopt_compression.prototype;
6456
+ _proto.createAndParse = function createAndParse(context, schema) {
6457
+ return context.get(exports.GLTFParserType.Buffer, schema.buffer).then(function(arrayBuffer) {
6458
+ return MeshoptDecoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
6459
+ });
6460
+ };
6461
+ return EXT_meshopt_compression;
6462
+ }(GLTFExtensionParser);
6463
+ EXT_meshopt_compression = __decorate([
6464
+ registerGLTFExtension("EXT_meshopt_compression", exports.GLTFExtensionMode.CreateAndParse)
6465
+ ], EXT_meshopt_compression);
6466
+
6343
6467
  var KHR_materials_anisotropy = /*#__PURE__*/ function(GLTFExtensionParser1) {
6344
6468
  _inherits(KHR_materials_anisotropy, GLTFExtensionParser1);
6345
6469
  function KHR_materials_anisotropy() {
@@ -6363,6 +6487,7 @@ KHR_materials_anisotropy = __decorate([
6363
6487
  registerGLTFExtension("KHR_materials_anisotropy", exports.GLTFExtensionMode.AdditiveParse)
6364
6488
  ], KHR_materials_anisotropy);
6365
6489
 
6490
+ exports.BufferInfo = BufferInfo;
6366
6491
  exports.ComponentMap = ComponentMap;
6367
6492
  exports.GLTFExtensionParser = GLTFExtensionParser;
6368
6493
  exports.GLTFParser = GLTFParser;