@jdultra/threedtiles 13.3.6 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/SPZ.worker-d-ZlUCr9.js +878 -0
- package/dist/assets/SPZ.worker-d-ZlUCr9.js.map +1 -0
- package/dist/decoder/GLTFTileDecoder.d.ts +10 -0
- package/dist/decoder/SPZ.worker.d.ts +1 -0
- package/dist/entry.d.ts +1 -1
- package/dist/threedtiles.cjs.js +32 -286
- package/dist/threedtiles.cjs.js.map +1 -1
- package/dist/threedtiles.es.js +7012 -6561
- package/dist/threedtiles.es.js.map +1 -1
- package/dist/threedtiles.umd.js +32 -286
- package/dist/threedtiles.umd.js.map +1 -1
- package/dist/tileset/OGC3DTile.d.ts +2 -3
- package/dist/tileset/TileLoader.d.ts +1 -1
- package/dist/utils/OneMesh.d.ts +1 -0
- package/package.json +9 -7
package/dist/threedtiles.umd.js
CHANGED
|
@@ -1,32 +1,44 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(aa,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("three")):typeof define=="function"&&define.amd?define(["exports","three"],f):f((aa=typeof globalThis<"u"?globalThis:aa||self).threedtiles={},aa.THREE)})(this,function(aa,f){"use strict";var Ce=typeof document<"u"?document.currentScript:null;function ir(t){const A=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const e=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(A,a,e.get?e:{enumerable:!0,get:()=>t[a]})}}return A.default=t,Object.freeze(A)}const P=ir(f),fa=new f.Matrix3,NA=new f.Vector3,Jg=new f.Vector3,Hg=new f.Box3,Pe=new f.Matrix4,Yg=new f.Matrix4,Kg=new f.Ray;class Ba{constructor(A){this.isOBB=!0,this.center=new f.Vector3(A[0],A[1],A[2]),this.e1=new f.Vector3(A[3],A[4],A[5]),this.e2=new f.Vector3(A[6],A[7],A[8]),this.e3=new f.Vector3(A[9],A[10],A[11]),this.halfSize=new f.Vector3(this.e1.length(),this.e2.length(),this.e3.length()),this.e1.normalize(),this.e2.normalize(),this.e3.normalize(),this.rotationMatrix=new f.Matrix3,this.rotationMatrix.set(this.e1.x,this.e2.x,this.e3.x,this.e1.y,this.e2.y,this.e3.y,this.e1.z,this.e2.z,this.e3.z)}copy(A){this.center.copy(A.center),this.rotationMatrix.copy(A.rotationMatrix),this.halfSize.copy(A.halfSize),this.e1.copy(A.e1),this.e2.copy(A.e2),this.e3.copy(A.e3)}getSize(A){return A.copy(this.halfSize).multiplyScalar(2)}applyMatrix4(A){const a=A.elements;let e=NA.set(a[0],a[1],a[2]).length();const g=NA.set(a[4],a[5],a[6]).length(),i=NA.set(a[8],a[9],a[10]).length();A.determinant()<0&&(e=-e),fa.setFromMatrix4(A);const I=1/e,r=1/g,o=1/i;return fa.elements[0]*=I,fa.elements[1]*=I,fa.elements[2]*=I,fa.elements[3]*=r,fa.elements[4]*=r,fa.elements[5]*=r,fa.elements[6]*=o,fa.elements[7]*=o,fa.elements[8]*=o,this.rotationMatrix.premultiply(fa),this.halfSize.x*=e,this.halfSize.y*=g,this.halfSize.z*=i,this.center.applyMatrix4(A),this.rotationMatrix.extractBasis(this.e1,this.e2,this.e3),this}intersectRay(A,a){return this.getSize(Jg),Hg.setFromCenterAndSize(NA.set(0,0,0),Jg),Pe.setFromMatrix3(this.rotationMatrix),Pe.setPosition(this.center),Yg.copy(Pe).invert(),Kg.copy(A).applyMatrix4(Yg),Kg.intersectBox(Hg,a)?a.applyMatrix4(Pe):null}clampPoint(A,a){NA.copy(A).sub(this.center);const e=NA.dot(this.e1),g=NA.dot(this.e2),i=NA.dot(this.e3),I=Math.max(-this.halfSize.x,Math.min(this.halfSize.x,e)),r=Math.max(-this.halfSize.y,Math.min(this.halfSize.y,g)),o=Math.max(-this.halfSize.z,Math.min(this.halfSize.z,i));return a.copy(this.center).addScaledVector(this.e1,I).addScaledVector(this.e2,r).addScaledVector(this.e3,o)}intersectsSphere(A){return this.clampPoint(A.center,NA),NA.distanceToSquared(A.center)<=A.radius*A.radius}intersectsOBB(A,a=Number.EPSILON){const e=[this.e1,this.e2,this.e3],g=[A.e1,A.e2,A.e3],i=[this.halfSize.x,this.halfSize.y,this.halfSize.z],I=[A.halfSize.x,A.halfSize.y,A.halfSize.z],r=[[0,0,0],[0,0,0],[0,0,0]],o=[[0,0,0],[0,0,0],[0,0,0]];for(let E=0;E<3;++E)for(let C=0;C<3;++C)r[E][C]=e[E].dot(g[C]),o[E][C]=Math.abs(r[E][C])+a;NA.subVectors(A.center,this.center);const B=[NA.dot(e[0]),NA.dot(e[1]),NA.dot(e[2])];let n,s;for(let E=0;E<3;++E)if(n=i[E],s=I[0]*o[E][0]+I[1]*o[E][1]+I[2]*o[E][2],Math.abs(B[E])>n+s)return!1;for(let E=0;E<3;++E)if(n=i[0]*o[0][E]+i[1]*o[1][E]+i[2]*o[2][E],s=I[E],Math.abs(B[0]*r[0][E]+B[1]*r[1][E]+B[2]*r[2][E])>n+s)return!1;return n=i[1]*o[2][0]+i[2]*o[1][0],s=I[1]*o[0][2]+I[2]*o[0][1],!(Math.abs(B[2]*r[1][0]-B[1]*r[2][0])>n+s)&&(n=i[1]*o[2][1]+i[2]*o[1][1],s=I[0]*o[0][2]+I[2]*o[0][0],!(Math.abs(B[2]*r[1][1]-B[1]*r[2][1])>n+s)&&(n=i[1]*o[2][2]+i[2]*o[1][2],s=I[0]*o[0][1]+I[1]*o[0][0],!(Math.abs(B[2]*r[1][2]-B[1]*r[2][2])>n+s)&&(n=i[0]*o[2][0]+i[2]*o[0][0],s=I[1]*o[1][2]+I[2]*o[1][1],!(Math.abs(B[0]*r[2][0]-B[2]*r[0][0])>n+s)&&(n=i[0]*o[2][1]+i[2]*o[0][1],s=I[0]*o[1][2]+I[2]*o[1][0],!(Math.abs(B[0]*r[2][1]-B[2]*r[0][1])>n+s)&&(n=i[0]*o[2][2]+i[2]*o[0][2],s=I[0]*o[1][1]+I[1]*o[1][0],!(Math.abs(B[0]*r[2][2]-B[2]*r[0][2])>n+s)&&(n=i[0]*o[1][0]+i[1]*o[0][0],s=I[1]*o[2][2]+I[2]*o[2][1],!(Math.abs(B[1]*r[0][0]-B[0]*r[1][0])>n+s)&&(n=i[0]*o[1][1]+i[1]*o[0][1],s=I[0]*o[2][2]+I[2]*o[2][0],!(Math.abs(B[1]*r[0][1]-B[0]*r[1][1])>n+s)&&(n=i[0]*o[1][2]+i[1]*o[0][2],s=I[0]*o[2][1]+I[1]*o[2][0],!(Math.abs(B[1]*r[0][2]-B[0]*r[1][2])>n+s)))))))))}intersectsRay(A){return this.intersectRay(A,NA)!==null}insidePlane(A){A.normal.normalize();const a=this.halfSize.x*Math.abs(A.normal.dot(this.e1))+this.halfSize.y*Math.abs(A.normal.dot(this.e2))+this.halfSize.z*Math.abs(A.normal.dot(this.e3));return A.distanceToPoint(this.center)>-a}inFrustum(A){for(let a=0;a<6;a++){const e=A.planes[a];if(!this.insidePlane(e))return!1}return!0}distanceToPoint(A){NA.copy(A),NA.sub(this.center),NA.applyMatrix3(this.rotationMatrix);let a=Math.max(0,Math.max(-this.halfSize.x-NA.x,NA.x-this.halfSize.x)),e=Math.max(0,Math.max(-this.halfSize.y-NA.y,NA.y-this.halfSize.y)),g=Math.max(0,Math.max(-this.halfSize.z-NA.z,NA.z-this.halfSize.z));return Math.sqrt(a*a+e*e+g*g)}helper(){const A=this.halfSize,a=this.center,e=this.e1,g=this.e2,i=this.e3,I=[new f.Vector3().copy(a).add(e.clone().multiplyScalar(A.x)).add(g.clone().multiplyScalar(A.y)).add(i.clone().multiplyScalar(A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(-A.x)).add(g.clone().multiplyScalar(A.y)).add(i.clone().multiplyScalar(A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(-A.x)).add(g.clone().multiplyScalar(-A.y)).add(i.clone().multiplyScalar(A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(A.x)).add(g.clone().multiplyScalar(-A.y)).add(i.clone().multiplyScalar(A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(A.x)).add(g.clone().multiplyScalar(A.y)).add(i.clone().multiplyScalar(-A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(-A.x)).add(g.clone().multiplyScalar(A.y)).add(i.clone().multiplyScalar(-A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(-A.x)).add(g.clone().multiplyScalar(-A.y)).add(i.clone().multiplyScalar(-A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(A.x)).add(g.clone().multiplyScalar(-A.y)).add(i.clone().multiplyScalar(-A.z))],r=new f.BufferGeometry().setFromPoints(I);r.setIndex([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r.computeBoundingSphere();const o=new f.LineBasicMaterial({color:16711680}),B=new f.LineSegments(r,o);return B.dispose=()=>{o.dispose(),r.dispose()},B}}/**
|
|
2
2
|
* @copyright 2021 Aaron Zhao <yujianzhao2013@gmail.com>
|
|
3
3
|
* @license MIT
|
|
4
4
|
* Linked hash map data structure
|
|
5
5
|
* @class LinkedHashMap
|
|
6
|
-
*/class Lr{constructor(){this._data=new Map,this._link=new Map,this._head=void 0,this._tail=void 0}put(e,a,t=!1){this.has(e)?this._data.set(e,a):(this._data.set(e,a),this._link.set(e,{previous:void 0,next:void 0}),this._head==null?(this._head=e,this._tail=e):t?(this._link.get(this._head).previous=e,this._link.get(e).next=this._head,this._head=e):(this._link.get(this._tail).next=e,this._link.get(e).previous=this._tail,this._tail=e))}head(){return{key:this._head,value:this.get(this._head),next:()=>this.next(this._head),previous:()=>null}}tail(){return{key:this._tail,value:this.get(this._tail),next:()=>null,previous:()=>this.previous(this._tail)}}get(e){return this._data.get(e)}previousKey(e){const a=this._link.get(e);return a?.previous}previousValue(e){return this.get(this.previousKey(e))}previous(e){const a=this.previousKey(e);return{key:a,value:this.get(a),next:()=>this.next(a),previous:()=>this.previous(a)}}nextKey(e){const a=this._link.get(e);return a?.next}nextValue(e){return this.get(this.nextKey(e))}next(e){const a=this.nextKey(e);return{key:a,value:this.get(a),next:()=>this.next(a),previous:()=>this.previous(a)}}remove(e){const a=this._data.get(e);if(a!=null)if(this.size()===1)this.reset();else{if(e===this._head){const t=this._link.get(this._head);this._link.get(t.next).previous=null,this._head=t.next}else if(e===this._tail){const t=this._link.get(this._tail);this._link.get(t.previous).next=null,this._tail=t.previous}else{const t=this._link.get(e),i=this._link.get(t.previous),n=this._link.get(t.next);i.next=t.next,n.previous=t.previous}this._link.delete(e),this._data.delete(e)}return a}has(e){return this._data.has(e)}size(){return this._data.size}reset(){this._data.clear(),this._link.clear(),this._head=void 0,this._tail=void 0}keys(){return this._data.keys()}values(){return this._data.values()}entries(){return this._data.entries()}toArray(e="orderByInsert"){if(e!=="orderByInsert"){const a=[];let t=this._head;for(;t!=null;)a.push({key:t,value:this.get(t)}),t=this.nextKey(t);return a}return Array.from(this.keys()).map(a=>({key:a,value:this.get(a)}))}}const ro=new TextDecoder;class Gr{constructor(e,a,t,i){this.buffer=e,this.binOffset=a+t,this.binLength=i;let n=null;if(t!==0)try{const o=new Uint8Array(e,a,t);n=JSON.parse(ro.decode(o))}catch{n={}}else n={};this.header=n}getKeys(){return Object.keys(this.header)}getData(e,a,t=null,i=null){const n=this.header;if(!(e in n))return null;const o=n[e];if(o instanceof Object){if(Array.isArray(o))return o;{const{buffer:s,binOffset:c,binLength:u}=this,A=o.byteOffset||0,d=o.type||i,b=o.componentType||t;if("type"in o&&i&&o.type!==i)throw new Error("FeatureTable: Specified type does not match expected type.");let h,l;switch(d){case"SCALAR":h=1;break;case"VEC2":h=2;break;case"VEC3":h=3;break;case"VEC4":h=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${e}".`)}const g=c+A,m=a*h;switch(b){case"BYTE":l=new Int8Array(s,g,m);break;case"UNSIGNED_BYTE":l=new Uint8Array(s,g,m);break;case"SHORT":l=new Int16Array(s,g,m);break;case"UNSIGNED_SHORT":l=new Uint16Array(s,g,m);break;case"INT":l=new Int32Array(s,g,m);break;case"UNSIGNED_INT":l=new Uint32Array(s,g,m);break;case"FLOAT":l=new Float32Array(s,g,m);break;case"DOUBLE":l=new Float64Array(s,g,m);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${e}".`)}if(g+m*l.BYTES_PER_ELEMENT>c+u)throw new Error("FeatureTable: Feature data read outside binary body length.");return l}}return o}}class io extends Gr{constructor(e,a,t,i,n){super(e,t,i,n),this.batchSize=a}getData(e,a=null,t=null){return super.getData(e,this.batchSize,a,t)}}function _r(r){let e,a,t,i=-1,n=0;for(let u=0;u<r.length;++u){const A=r[u];if(e===void 0&&(e=A.array.constructor),e!==A.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(a===void 0&&(a=A.itemSize),a!==A.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(t===void 0&&(t=A.normalized),t!==A.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(i===-1&&(i=A.gpuType),i!==A.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;n+=A.count*a}const o=new e(n),s=new f.BufferAttribute(o,a,t);let c=0;for(let u=0;u<r.length;++u){const A=r[u];if(A.isInterleavedBufferAttribute){const d=c/a;for(let b=0,h=A.count;b<h;b++)for(let l=0;l<a;l++){const g=A.getComponent(b,l);s.setComponent(b+d,l,g)}}else o.set(A.array,c);c+=A.count*a}return i!==void 0&&(s.gpuType=i),s}function zr(r,e){if(e===f.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),r;if(e===f.TriangleFanDrawMode||e===f.TriangleStripDrawMode){let a=r.getIndex();if(a===null){const o=[],s=r.getAttribute("position");if(s===void 0)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),r;for(let c=0;c<s.count;c++)o.push(c);r.setIndex(o),a=r.getIndex()}const t=a.count-2,i=[];if(e===f.TriangleFanDrawMode)for(let o=1;o<=t;o++)i.push(a.getX(0)),i.push(a.getX(o)),i.push(a.getX(o+1));else for(let o=0;o<t;o++)o%2==0?(i.push(a.getX(o)),i.push(a.getX(o+1)),i.push(a.getX(o+2))):(i.push(a.getX(o+2)),i.push(a.getX(o+1)),i.push(a.getX(o)));i.length/3!==t&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const n=r.clone();return n.setIndex(i),n.clearGroups(),n}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),r}class Pr{constructor(e){this.gltfLoader=e,this.tempMatrix=new G.Matrix4,this.zUpToYUpMatrix=new G.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1)}parseB3DM(e,a,t,i){const n=this,o=new DataView(e),s=String.fromCharCode(o.getUint8(0))+String.fromCharCode(o.getUint8(1))+String.fromCharCode(o.getUint8(2))+String.fromCharCode(o.getUint8(3));console.assert(s==="b3dm");const c=o.getUint32(8,!0);console.assert(c===e.byteLength);const u=o.getUint32(12,!0),A=o.getUint32(16,!0),d=o.getUint32(20,!0),b=o.getUint32(24,!0),h=new Gr(e,28,u,A),l=28+u+A;new io(e,h.getData("BATCH_LENGTH"),l,d,b);const g=l+d+b,m=new Uint8Array(e,g,c-g).slice().buffer;return new Promise(async(E,p)=>{await this.checkLoaderInitialized(),this.gltfLoader.parse(m,null,C=>{const I=h.getData("RTC_CENTER");I?(this.tempMatrix.makeTranslation(I[0],I[1],I[2]),C.scene.applyMatrix4(this.tempMatrix)):C.userData.gltfExtensions&&C.userData.gltfExtensions.CESIUM_RTC&&(this.tempMatrix.makeTranslation(C.userData.gltfExtensions.CESIUM_RTC.center[0],C.userData.gltfExtensions.CESIUM_RTC.center[1],C.userData.gltfExtensions.CESIUM_RTC.center[2]),C.scene.applyMatrix4(this.tempMatrix)),t&&C.scene.applyMatrix4(n.zUpToYUpMatrix),C.scene.asset=C.asset,C.scene.traverse(x=>{x.isMesh&&(i&&x.applyMatrix4(n.zUpToYUpMatrix),a&&a(x))}),E(C.scene)},C=>{console.error(C)})})}checkLoaderInitialized=async()=>new Promise(e=>{const a=setInterval(()=>{this.gltfLoader.hasDracoLoader&&!this.gltfLoader.dracoLoader||this.gltfLoader.hasKTX2Loader&&!this.gltfLoader.ktx2Loader||(clearInterval(a),e())},10)});parseB3DMInstanced(e,a,t,i,n){return this.parseB3DM(e,a,i,n).then(o=>{let s,c=[],u=[];o.updateWorldMatrix(!1,!0),o.traverse(d=>{d.isMesh&&(d.geometry.applyMatrix4(d.matrixWorld),c.push(d.geometry),u.push(d.material))});let A=function(d){let b=new Set;return d.forEach(l=>{for(let g in l.attributes)b.add(g)}),d.forEach(l=>{b.forEach(g=>{if(!l.attributes[g]){const m=function(p){switch(p){case"position":case"normal":case"color":return 3;case"uv":case"uv2":return 2;default:throw new Error(`Unknown attribute ${p}`)}}(g),E=new Float32Array(m*l.getAttribute("position").count).fill(0);l.setAttribute(g,new G.BufferAttribute(E,m))}})}),function(l,g=!1){const m=l[0].index!==null,E=new Set(Object.keys(l[0].attributes)),p=new Set(Object.keys(l[0].morphAttributes)),C={},I={},x=l[0].morphTargetsRelative,y=new f.BufferGeometry;let w=0;for(let D=0;D<l.length;++D){const F=l[D];let j=0;if(m!==(F.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const M in F.attributes){if(!E.has(M))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+'. All geometries must have compatible attributes; make sure "'+M+'" attribute exists among all geometries, or in none of them.'),null;C[M]===void 0&&(C[M]=[]),C[M].push(F.attributes[M]),j++}if(j!==E.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". Make sure all geometries have the same number of attributes."),null;if(x!==F.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const M in F.morphAttributes){if(!p.has(M))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". .morphAttributes must be consistent throughout all geometries."),null;I[M]===void 0&&(I[M]=[]),I[M].push(F.morphAttributes[M])}if(g){let M;if(m)M=F.index.count;else{if(F.attributes.position===void 0)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". The geometry must have either an index or a position attribute"),null;M=F.attributes.position.count}y.addGroup(w,M,D),w+=M}}if(m){let D=0;const F=[];for(let j=0;j<l.length;++j){const M=l[j].index;for(let _=0;_<M.count;++_)F.push(M.getX(_)+D);D+=l[j].attributes.position.count}y.setIndex(F)}for(const D in C){const F=_r(C[D]);if(!F)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+D+" attribute."),null;y.setAttribute(D,F)}for(const D in I){const F=I[D][0].length;if(F===0)break;y.morphAttributes=y.morphAttributes||{},y.morphAttributes[D]=[];for(let j=0;j<F;++j){const M=[];for(let q=0;q<I[D].length;++q)M.push(I[D][q][j]);const _=_r(M);if(!_)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+D+" morphAttribute."),null;y.morphAttributes[D].push(_)}}return y}(d,!0)}(c);return s=new G.InstancedMesh(A,u,t),s.baseMatrix=new G.Matrix4().identity(),s})}}const Me=[];for(let r=0;r<256;++r)Me.push((r+256).toString(16).slice(1));let Nt;const no=new Uint8Array(16),qr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Kr(r,e,a){if(qr.randomUUID&&!r)return qr.randomUUID();const t=(r=r||{}).random??r.rng?.()??function(){if(!Nt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Nt=crypto.getRandomValues.bind(crypto)}return Nt(no)}();if(t.length<16)throw new Error("Random bytes length must be >= 16");return t[6]=15&t[6]|64,t[8]=63&t[8]|128,function(i,n=0){return(Me[i[n+0]]+Me[i[n+1]]+Me[i[n+2]]+Me[i[n+3]]+"-"+Me[i[n+4]]+Me[i[n+5]]+"-"+Me[i[n+6]]+Me[i[n+7]]+"-"+Me[i[n+8]]+Me[i[n+9]]+"-"+Me[i[n+10]]+Me[i[n+11]]+Me[i[n+12]]+Me[i[n+13]]+Me[i[n+14]]+Me[i[n+15]]).toLowerCase()}(t)}class oo{constructor(e,a){this.renderer=a,this.gltfLoader=e}parseSplats(e,a,t,i){const n=this;return new Promise(async(o,s)=>{await n.checkLoaderInitialized(),n.gltfLoader.parse(e,null,c=>{c.scene;const u=c.scene.children[0],A=u.geometry.attributes.position,d=u.geometry.attributes.color,b=u.geometry.attributes.cov_0,h=u.geometry.attributes.cov_1,l=i.addSplatsTile(A,d,b,h);c.scene.traverse(g=>{g.dispose&&g.dispose()}),o(l)},c=>{console.error(c)})})}checkLoaderInitialized=async()=>{const e=this;return new Promise(a=>{const t=setInterval(()=>{e.gltfLoader.hasDracoLoader&&!e.gltfLoader.dracoLoader||e.gltfLoader.hasKTX2Loader&&!e.gltfLoader.ktx2Loader||(clearInterval(t),a())},10)})}}class Or extends f.Loader{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(a){return new ho(a)}),this.register(function(a){return new lo(a)}),this.register(function(a){return new Bo(a)}),this.register(function(a){return new Do(a)}),this.register(function(a){return new yo(a)}),this.register(function(a){return new go(a)}),this.register(function(a){return new fo(a)}),this.register(function(a){return new po(a)}),this.register(function(a){return new mo(a)}),this.register(function(a){return new uo(a)}),this.register(function(a){return new Eo(a)}),this.register(function(a){return new bo(a)}),this.register(function(a){return new Io(a)}),this.register(function(a){return new Co(a)}),this.register(function(a){return new Ao(a)}),this.register(function(a){return new wo(a)}),this.register(function(a){return new xo(a)})}load(e,a,t,i){const n=this;let o;if(this.resourcePath!=="")o=this.resourcePath;else if(this.path!==""){const u=f.LoaderUtils.extractUrlBase(e);o=f.LoaderUtils.resolveURL(u,this.path)}else o=f.LoaderUtils.extractUrlBase(e);this.manager.itemStart(e);const s=function(u){i?i(u):console.error(u),n.manager.itemError(e),n.manager.itemEnd(e)},c=new f.FileLoader(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(e,function(u){try{n.parse(u,o,function(A){a(A),n.manager.itemEnd(e)},s)}catch(A){s(A)}},t,s)}setDRACOLoader(e){return this.dracoLoader=e,this}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,a,t,i){let n;const o={},s={},c=new TextDecoder;if(typeof e=="string")n=JSON.parse(e);else if(e instanceof ArrayBuffer)if(c.decode(new Uint8Array(e,0,4))===Jr){try{o[ae.KHR_BINARY_GLTF]=new Qo(e)}catch(A){return void(i&&i(A))}n=JSON.parse(o[ae.KHR_BINARY_GLTF].content)}else n=JSON.parse(c.decode(e));else n=e;if(n.asset===void 0||n.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const u=new Po(n,{path:a||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});u.fileLoader.setRequestHeader(this.requestHeader);for(let A=0;A<this.pluginCallbacks.length;A++){const d=this.pluginCallbacks[A](u);d.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),s[d.name]=d,o[d.name]=!0}if(n.extensionsUsed)for(let A=0;A<n.extensionsUsed.length;++A){const d=n.extensionsUsed[A],b=n.extensionsRequired||[];switch(d){case ae.KHR_MATERIALS_UNLIT:o[d]=new co;break;case ae.KHR_DRACO_MESH_COMPRESSION:o[d]=new ko(n,this.dracoLoader);break;case ae.KHR_TEXTURE_TRANSFORM:o[d]=new jo;break;case ae.KHR_MESH_QUANTIZATION:o[d]=new Mo;break;default:b.indexOf(d)>=0&&s[d]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+d+'".')}}u.setExtensions(o),u.setPlugins(s),u.parse(t,i)}parseAsync(e,a){const t=this;return new Promise(function(i,n){t.parse(e,a,i,n)})}}function so(){let r={};return{get:function(e){return r[e]},add:function(e,a){r[e]=a},remove:function(e){delete r[e]},removeAll:function(){r={}}}}const ae={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Ao{constructor(e){this.parser=e,this.name=ae.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,a=this.parser.json.nodes||[];for(let t=0,i=a.length;t<i;t++){const n=a[t];n.extensions&&n.extensions[this.name]&&n.extensions[this.name].light!==void 0&&e._addNodeRef(this.cache,n.extensions[this.name].light)}}_loadLight(e){const a=this.parser,t="light:"+e;let i=a.cache.get(t);if(i)return i;const n=a.json,o=((n.extensions&&n.extensions[this.name]||{}).lights||[])[e];let s;const c=new f.Color(16777215);o.color!==void 0&&c.setRGB(o.color[0],o.color[1],o.color[2],f.LinearSRGBColorSpace);const u=o.range!==void 0?o.range:0;switch(o.type){case"directional":s=new f.DirectionalLight(c),s.target.position.set(0,0,-1),s.add(s.target);break;case"point":s=new f.PointLight(c),s.distance=u;break;case"spot":s=new f.SpotLight(c),s.distance=u,o.spot=o.spot||{},o.spot.innerConeAngle=o.spot.innerConeAngle!==void 0?o.spot.innerConeAngle:0,o.spot.outerConeAngle=o.spot.outerConeAngle!==void 0?o.spot.outerConeAngle:Math.PI/4,s.angle=o.spot.outerConeAngle,s.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,s.target.position.set(0,0,-1),s.add(s.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return s.position.set(0,0,0),ca(s,o),o.intensity!==void 0&&(s.intensity=o.intensity),s.name=a.createUniqueName(o.name||"light_"+e),i=Promise.resolve(s),a.cache.add(t,i),i}getDependency(e,a){if(e==="light")return this._loadLight(a)}createNodeAttachment(e){const a=this,t=this.parser,i=t.json.nodes[e],n=(i.extensions&&i.extensions[this.name]||{}).light;return n===void 0?null:this._loadLight(n).then(function(o){return t._getNodeRef(a.cache,n,o)})}}class co{constructor(){this.name=ae.KHR_MATERIALS_UNLIT}getMaterialType(){return f.MeshBasicMaterial}extendParams(e,a,t){const i=[];e.color=new f.Color(1,1,1),e.opacity=1;const n=a.pbrMetallicRoughness;if(n){if(Array.isArray(n.baseColorFactor)){const o=n.baseColorFactor;e.color.setRGB(o[0],o[1],o[2],f.LinearSRGBColorSpace),e.opacity=o[3]}n.baseColorTexture!==void 0&&i.push(t.assignTexture(e,"map",n.baseColorTexture,f.SRGBColorSpace))}return Promise.all(i)}}class uo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,a){const t=this.parser.json.materials[e];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=t.extensions[this.name].emissiveStrength;return i!==void 0&&(a.emissiveIntensity=i),Promise.resolve()}}class ho{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];if(o.clearcoatFactor!==void 0&&(a.clearcoat=o.clearcoatFactor),o.clearcoatTexture!==void 0&&n.push(t.assignTexture(a,"clearcoatMap",o.clearcoatTexture)),o.clearcoatRoughnessFactor!==void 0&&(a.clearcoatRoughness=o.clearcoatRoughnessFactor),o.clearcoatRoughnessTexture!==void 0&&n.push(t.assignTexture(a,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),o.clearcoatNormalTexture!==void 0&&(n.push(t.assignTexture(a,"clearcoatNormalMap",o.clearcoatNormalTexture)),o.clearcoatNormalTexture.scale!==void 0)){const s=o.clearcoatNormalTexture.scale;a.clearcoatNormalScale=new f.Vector2(s,s)}return Promise.all(n)}}class lo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_DISPERSION}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser.json.materials[e];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=t.extensions[this.name];return a.dispersion=i.dispersion!==void 0?i.dispersion:0,Promise.resolve()}}class bo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];return o.iridescenceFactor!==void 0&&(a.iridescence=o.iridescenceFactor),o.iridescenceTexture!==void 0&&n.push(t.assignTexture(a,"iridescenceMap",o.iridescenceTexture)),o.iridescenceIor!==void 0&&(a.iridescenceIOR=o.iridescenceIor),a.iridescenceThicknessRange===void 0&&(a.iridescenceThicknessRange=[100,400]),o.iridescenceThicknessMinimum!==void 0&&(a.iridescenceThicknessRange[0]=o.iridescenceThicknessMinimum),o.iridescenceThicknessMaximum!==void 0&&(a.iridescenceThicknessRange[1]=o.iridescenceThicknessMaximum),o.iridescenceThicknessTexture!==void 0&&n.push(t.assignTexture(a,"iridescenceThicknessMap",o.iridescenceThicknessTexture)),Promise.all(n)}}class go{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_SHEEN}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[];a.sheenColor=new f.Color(0,0,0),a.sheenRoughness=0,a.sheen=1;const o=i.extensions[this.name];if(o.sheenColorFactor!==void 0){const s=o.sheenColorFactor;a.sheenColor.setRGB(s[0],s[1],s[2],f.LinearSRGBColorSpace)}return o.sheenRoughnessFactor!==void 0&&(a.sheenRoughness=o.sheenRoughnessFactor),o.sheenColorTexture!==void 0&&n.push(t.assignTexture(a,"sheenColorMap",o.sheenColorTexture,f.SRGBColorSpace)),o.sheenRoughnessTexture!==void 0&&n.push(t.assignTexture(a,"sheenRoughnessMap",o.sheenRoughnessTexture)),Promise.all(n)}}class fo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];return o.transmissionFactor!==void 0&&(a.transmission=o.transmissionFactor),o.transmissionTexture!==void 0&&n.push(t.assignTexture(a,"transmissionMap",o.transmissionTexture)),Promise.all(n)}}class po{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_VOLUME}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];a.thickness=o.thicknessFactor!==void 0?o.thicknessFactor:0,o.thicknessTexture!==void 0&&n.push(t.assignTexture(a,"thicknessMap",o.thicknessTexture)),a.attenuationDistance=o.attenuationDistance||1/0;const s=o.attenuationColor||[1,1,1];return a.attenuationColor=new f.Color().setRGB(s[0],s[1],s[2],f.LinearSRGBColorSpace),Promise.all(n)}}class mo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_IOR}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser.json.materials[e];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=t.extensions[this.name];return a.ior=i.ior!==void 0?i.ior:1.5,Promise.resolve()}}class Eo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_SPECULAR}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];a.specularIntensity=o.specularFactor!==void 0?o.specularFactor:1,o.specularTexture!==void 0&&n.push(t.assignTexture(a,"specularIntensityMap",o.specularTexture));const s=o.specularColorFactor||[1,1,1];return a.specularColor=new f.Color().setRGB(s[0],s[1],s[2],f.LinearSRGBColorSpace),o.specularColorTexture!==void 0&&n.push(t.assignTexture(a,"specularColorMap",o.specularColorTexture,f.SRGBColorSpace)),Promise.all(n)}}class Co{constructor(e){this.parser=e,this.name=ae.EXT_MATERIALS_BUMP}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];return a.bumpScale=o.bumpFactor!==void 0?o.bumpFactor:1,o.bumpTexture!==void 0&&n.push(t.assignTexture(a,"bumpMap",o.bumpTexture)),Promise.all(n)}}class Io{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];return o.anisotropyStrength!==void 0&&(a.anisotropy=o.anisotropyStrength),o.anisotropyRotation!==void 0&&(a.anisotropyRotation=o.anisotropyRotation),o.anisotropyTexture!==void 0&&n.push(t.assignTexture(a,"anisotropyMap",o.anisotropyTexture)),Promise.all(n)}}class Bo{constructor(e){this.parser=e,this.name=ae.KHR_TEXTURE_BASISU}loadTexture(e){const a=this.parser,t=a.json,i=t.textures[e];if(!i.extensions||!i.extensions[this.name])return null;const n=i.extensions[this.name],o=a.options.ktx2Loader;if(!o){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return a.loadTextureImage(e,n.source,o)}}class Do{constructor(e){this.parser=e,this.name=ae.EXT_TEXTURE_WEBP}loadTexture(e){const a=this.name,t=this.parser,i=t.json,n=i.textures[e];if(!n.extensions||!n.extensions[a])return null;const o=n.extensions[a],s=i.images[o.source];let c=t.textureLoader;if(s.uri){const u=t.options.manager.getHandler(s.uri);u!==null&&(c=u)}return t.loadTextureImage(e,o.source,c)}}class yo{constructor(e){this.parser=e,this.name=ae.EXT_TEXTURE_AVIF}loadTexture(e){const a=this.name,t=this.parser,i=t.json,n=i.textures[e];if(!n.extensions||!n.extensions[a])return null;const o=n.extensions[a],s=i.images[o.source];let c=t.textureLoader;if(s.uri){const u=t.options.manager.getHandler(s.uri);u!==null&&(c=u)}return t.loadTextureImage(e,o.source,c)}}class wo{constructor(e){this.name=ae.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const a=this.parser.json,t=a.bufferViews[e];if(t.extensions&&t.extensions[this.name]){const i=t.extensions[this.name],n=this.parser.getDependency("buffer",i.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(a.extensionsRequired&&a.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return n.then(function(s){const c=i.byteOffset||0,u=i.byteLength||0,A=i.count,d=i.byteStride,b=new Uint8Array(s,c,u);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(A,d,b,i.mode,i.filter).then(function(h){return h.buffer}):o.ready.then(function(){const h=new ArrayBuffer(A*d);return o.decodeGltfBuffer(new Uint8Array(h),A,d,b,i.mode,i.filter),h})})}return null}}class xo{constructor(e){this.name=ae.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const a=this.parser.json,t=a.nodes[e];if(!t.extensions||!t.extensions[this.name]||t.mesh===void 0)return null;const i=a.meshes[t.mesh];for(const c of i.primitives)if(c.mode!==He.TRIANGLES&&c.mode!==He.TRIANGLE_STRIP&&c.mode!==He.TRIANGLE_FAN&&c.mode!==void 0)return null;const n=t.extensions[this.name].attributes,o=[],s={};for(const c in n)o.push(this.parser.getDependency("accessor",n[c]).then(u=>(s[c]=u,s[c])));return o.length<1?null:(o.push(this.parser.createNodeMesh(e)),Promise.all(o).then(c=>{const u=c.pop(),A=u.isGroup?u.children:[u],d=c[0].count,b=[];for(const h of A){const l=new f.Matrix4,g=new f.Vector3,m=new f.Quaternion,E=new f.Vector3(1,1,1),p=new f.InstancedMesh(h.geometry,h.material,d);for(let C=0;C<d;C++)s.TRANSLATION&&g.fromBufferAttribute(s.TRANSLATION,C),s.ROTATION&&m.fromBufferAttribute(s.ROTATION,C),s.SCALE&&E.fromBufferAttribute(s.SCALE,C),p.setMatrixAt(C,l.compose(g,m,E));for(const C in s)if(C==="_COLOR_0"){const I=s[C];p.instanceColor=new f.InstancedBufferAttribute(I.array,I.itemSize,I.normalized)}else C!=="TRANSLATION"&&C!=="ROTATION"&&C!=="SCALE"&&h.geometry.setAttribute(C,s[C]);f.Object3D.prototype.copy.call(p,h),this.parser.assignFinalMaterial(p),b.push(p)}return u.isGroup?(u.clear(),u.add(...b),u):b[0]}))}}const Jr="glTF",vo=1313821514,Fo=5130562;class Qo{constructor(e){this.name=ae.KHR_BINARY_GLTF,this.content=null,this.body=null;const a=new DataView(e,0,12),t=new TextDecoder;if(this.header={magic:t.decode(new Uint8Array(e.slice(0,4))),version:a.getUint32(4,!0),length:a.getUint32(8,!0)},this.header.magic!==Jr)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const i=this.header.length-12,n=new DataView(e,12);let o=0;for(;o<i;){const s=n.getUint32(o,!0);o+=4;const c=n.getUint32(o,!0);if(o+=4,c===vo){const u=new Uint8Array(e,12+o,s);this.content=t.decode(u)}else if(c===Fo){const u=12+o;this.body=e.slice(u,u+s)}o+=s}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class ko{constructor(e,a){if(!a)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=ae.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=a,this.dracoLoader.preload()}decodePrimitive(e,a){const t=this.json,i=this.dracoLoader,n=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,s={},c={},u={};for(const A in o){const d=Lt[A]||A.toLowerCase();s[d]=o[A]}for(const A in e.attributes){const d=Lt[A]||A.toLowerCase();if(o[A]!==void 0){const b=t.accessors[e.attributes[A]],h=Ra[b.componentType];u[d]=h.name,c[d]=b.normalized===!0}}return a.getDependency("bufferView",n).then(function(A){return new Promise(function(d,b){i.decodeDracoFile(A,function(h){for(const l in h.attributes){const g=h.attributes[l],m=c[l];m!==void 0&&(g.normalized=m)}d(h)},s,u,f.LinearSRGBColorSpace,b)})})}}class jo{constructor(){this.name=ae.KHR_TEXTURE_TRANSFORM}extendTexture(e,a){return(a.texCoord!==void 0&&a.texCoord!==e.channel||a.offset!==void 0||a.rotation!==void 0||a.scale!==void 0)&&(e=e.clone(),a.texCoord!==void 0&&(e.channel=a.texCoord),a.offset!==void 0&&e.offset.fromArray(a.offset),a.rotation!==void 0&&(e.rotation=a.rotation),a.scale!==void 0&&e.repeat.fromArray(a.scale),e.needsUpdate=!0),e}}class Mo{constructor(){this.name=ae.KHR_MESH_QUANTIZATION}}class Vr extends f.Interpolant{constructor(e,a,t,i){super(e,a,t,i)}copySampleValue_(e){const a=this.resultBuffer,t=this.sampleValues,i=this.valueSize,n=e*i*3+i;for(let o=0;o!==i;o++)a[o]=t[n+o];return a}interpolate_(e,a,t,i){const n=this.resultBuffer,o=this.sampleValues,s=this.valueSize,c=2*s,u=3*s,A=i-a,d=(t-a)/A,b=d*d,h=b*d,l=e*u,g=l-u,m=-2*h+3*b,E=h-b,p=1-m,C=E-b+d;for(let I=0;I!==s;I++){const x=o[g+I+s],y=o[g+I+c]*A,w=o[l+I+s],D=o[l+I]*A;n[I]=p*x+C*y+m*w+E*D}return n}}const Ro=new f.Quaternion;class So extends Vr{interpolate_(e,a,t,i){const n=super.interpolate_(e,a,t,i);return Ro.fromArray(n).normalize().toArray(n),n}}const He={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Ra={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Hr={9728:f.NearestFilter,9729:f.LinearFilter,9984:f.NearestMipmapNearestFilter,9985:f.LinearMipmapNearestFilter,9986:f.NearestMipmapLinearFilter,9987:f.LinearMipmapLinearFilter},Wr={33071:f.ClampToEdgeWrapping,33648:f.MirroredRepeatWrapping,10497:f.RepeatWrapping},Ut={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Lt={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},fa={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},To={CUBICSPLINE:void 0,LINEAR:f.InterpolateLinear,STEP:f.InterpolateDiscrete},No="OPAQUE",Uo="MASK",Lo="BLEND";function xa(r,e,a){for(const t in a.extensions)r[t]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[t]=a.extensions[t])}function ca(r,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(r.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function Go(r,e){if(r.updateMorphTargets(),e.weights!==void 0)for(let a=0,t=e.weights.length;a<t;a++)r.morphTargetInfluences[a]=e.weights[a];if(e.extras&&Array.isArray(e.extras.targetNames)){const a=e.extras.targetNames;if(r.morphTargetInfluences.length===a.length){r.morphTargetDictionary={};for(let t=0,i=a.length;t<i;t++)r.morphTargetDictionary[a[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function _o(r){let e;const a=r.extensions&&r.extensions[ae.KHR_DRACO_MESH_COMPRESSION];if(e=a?"draco:"+a.bufferView+":"+a.indices+":"+Gt(a.attributes):r.indices+":"+Gt(r.attributes)+":"+r.mode,r.targets!==void 0)for(let t=0,i=r.targets.length;t<i;t++)e+=":"+Gt(r.targets[t]);return e}function Gt(r){let e="";const a=Object.keys(r).sort();for(let t=0,i=a.length;t<i;t++)e+=a[t]+":"+r[a[t]]+";";return e}function _t(r){switch(r){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const zo=new f.Matrix4;class Po{constructor(e={},a={}){this.json=e,this.extensions={},this.plugins={},this.options=a,this.cache=new so,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let t=!1,i=-1,n=!1,o=-1;if(typeof navigator<"u"){const s=navigator.userAgent;t=/^((?!chrome|android).)*safari/i.test(s)===!0;const c=s.match(/Version\/(\d+)/);i=t&&c?parseInt(c[1],10):-1,n=s.indexOf("Firefox")>-1,o=n?s.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||t&&i<17||n&&o<98?this.textureLoader=new f.TextureLoader(this.options.manager):this.textureLoader=new f.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new f.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,a){const t=this,i=this.json,n=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()})).then(function(){return Promise.all([t.getDependencies("scene"),t.getDependencies("animation"),t.getDependencies("camera")])}).then(function(o){const s={scene:o[0][i.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:i.asset,parser:t,userData:{}};return xa(n,s,i),ca(s,i),Promise.all(t._invokeAll(function(c){return c.afterRoot&&c.afterRoot(s)})).then(function(){for(const c of s.scenes)c.updateMatrixWorld();e(s)})}).catch(a)}_markDefs(){const e=this.json.nodes||[],a=this.json.skins||[],t=this.json.meshes||[];for(let i=0,n=a.length;i<n;i++){const o=a[i].joints;for(let s=0,c=o.length;s<c;s++)e[o[s]].isBone=!0}for(let i=0,n=e.length;i<n;i++){const o=e[i];o.mesh!==void 0&&(this._addNodeRef(this.meshCache,o.mesh),o.skin!==void 0&&(t[o.mesh].isSkinnedMesh=!0)),o.camera!==void 0&&this._addNodeRef(this.cameraCache,o.camera)}}_addNodeRef(e,a){a!==void 0&&(e.refs[a]===void 0&&(e.refs[a]=e.uses[a]=0),e.refs[a]++)}_getNodeRef(e,a,t){if(e.refs[a]<=1)return t;const i=t.clone(),n=(o,s)=>{const c=this.associations.get(o);c!=null&&this.associations.set(s,c);for(const[u,A]of o.children.entries())n(A,s.children[u])};return n(t,i),i.name+="_instance_"+e.uses[a]++,i}_invokeOne(e){const a=Object.values(this.plugins);a.push(this);for(let t=0;t<a.length;t++){const i=e(a[t]);if(i)return i}return null}_invokeAll(e){const a=Object.values(this.plugins);a.unshift(this);const t=[];for(let i=0;i<a.length;i++){const n=e(a[i]);n&&t.push(n)}return t}getDependency(e,a){const t=e+":"+a;let i=this.cache.get(t);if(!i){switch(e){case"scene":i=this.loadScene(a);break;case"node":i=this._invokeOne(function(n){return n.loadNode&&n.loadNode(a)});break;case"mesh":i=this._invokeOne(function(n){return n.loadMesh&&n.loadMesh(a)});break;case"accessor":i=this.loadAccessor(a);break;case"bufferView":i=this._invokeOne(function(n){return n.loadBufferView&&n.loadBufferView(a)});break;case"buffer":i=this.loadBuffer(a);break;case"material":i=this._invokeOne(function(n){return n.loadMaterial&&n.loadMaterial(a)});break;case"texture":i=this._invokeOne(function(n){return n.loadTexture&&n.loadTexture(a)});break;case"skin":i=this.loadSkin(a);break;case"animation":i=this._invokeOne(function(n){return n.loadAnimation&&n.loadAnimation(a)});break;case"camera":i=this.loadCamera(a);break;default:if(i=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(e,a)}),!i)throw new Error("Unknown type: "+e)}this.cache.add(t,i)}return i}getDependencies(e){let a=this.cache.get(e);if(!a){const t=this,i=this.json[e+(e==="mesh"?"es":"s")]||[];a=Promise.all(i.map(function(n,o){return t.getDependency(e,o)})),this.cache.add(e,a)}return a}loadBuffer(e){const a=this.json.buffers[e],t=this.fileLoader;if(a.type&&a.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+a.type+" buffer type is not supported.");if(a.uri===void 0&&e===0)return Promise.resolve(this.extensions[ae.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(n,o){t.load(f.LoaderUtils.resolveURL(a.uri,i.path),n,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+a.uri+'".'))})})}loadBufferView(e){const a=this.json.bufferViews[e];return this.getDependency("buffer",a.buffer).then(function(t){const i=a.byteLength||0,n=a.byteOffset||0;return t.slice(n,n+i)})}loadAccessor(e){const a=this,t=this.json,i=this.json.accessors[e];if(i.bufferView===void 0&&i.sparse===void 0){const o=Ut[i.type],s=Ra[i.componentType],c=i.normalized===!0,u=new s(i.count*o);return Promise.resolve(new f.BufferAttribute(u,o,c))}const n=[];return i.bufferView!==void 0?n.push(this.getDependency("bufferView",i.bufferView)):n.push(null),i.sparse!==void 0&&(n.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),n.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(n).then(function(o){const s=o[0],c=Ut[i.type],u=Ra[i.componentType],A=u.BYTES_PER_ELEMENT,d=A*c,b=i.byteOffset||0,h=i.bufferView!==void 0?t.bufferViews[i.bufferView].byteStride:void 0,l=i.normalized===!0;let g,m;if(h&&h!==d){const E=Math.floor(b/h),p="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+E+":"+i.count;let C=a.cache.get(p);C||(g=new u(s,E*h,i.count*h/A),C=new f.InterleavedBuffer(g,h/A),a.cache.add(p,C)),m=new f.InterleavedBufferAttribute(C,c,b%h/A,l)}else g=s===null?new u(i.count*c):new u(s,b,i.count*c),m=new f.BufferAttribute(g,c,l);if(i.sparse!==void 0){const E=Ut.SCALAR,p=Ra[i.sparse.indices.componentType],C=i.sparse.indices.byteOffset||0,I=i.sparse.values.byteOffset||0,x=new p(o[1],C,i.sparse.count*E),y=new u(o[2],I,i.sparse.count*c);s!==null&&(m=new f.BufferAttribute(m.array.slice(),m.itemSize,m.normalized)),m.normalized=!1;for(let w=0,D=x.length;w<D;w++){const F=x[w];if(m.setX(F,y[w*c]),c>=2&&m.setY(F,y[w*c+1]),c>=3&&m.setZ(F,y[w*c+2]),c>=4&&m.setW(F,y[w*c+3]),c>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}m.normalized=l}return m})}loadTexture(e){const a=this.json,t=this.options,i=a.textures[e].source,n=a.images[i];let o=this.textureLoader;if(n.uri){const s=t.manager.getHandler(n.uri);s!==null&&(o=s)}return this.loadTextureImage(e,i,o)}loadTextureImage(e,a,t){const i=this,n=this.json,o=n.textures[e],s=n.images[a],c=(s.uri||s.bufferView)+":"+o.sampler;if(this.textureCache[c])return this.textureCache[c];const u=this.loadImageSource(a,t).then(function(A){A.flipY=!1,A.name=o.name||s.name||"",A.name===""&&typeof s.uri=="string"&&s.uri.startsWith("data:image/")===!1&&(A.name=s.uri);const d=(n.samplers||{})[o.sampler]||{};return A.magFilter=Hr[d.magFilter]||f.LinearFilter,A.minFilter=Hr[d.minFilter]||f.LinearMipmapLinearFilter,A.wrapS=Wr[d.wrapS]||f.RepeatWrapping,A.wrapT=Wr[d.wrapT]||f.RepeatWrapping,A.generateMipmaps=!A.isCompressedTexture&&A.minFilter!==f.NearestFilter&&A.minFilter!==f.LinearFilter,i.associations.set(A,{textures:e}),A}).catch(function(){return null});return this.textureCache[c]=u,u}loadImageSource(e,a){const t=this,i=this.json,n=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(d=>d.clone());const o=i.images[e],s=self.URL||self.webkitURL;let c=o.uri||"",u=!1;if(o.bufferView!==void 0)c=t.getDependency("bufferView",o.bufferView).then(function(d){u=!0;const b=new Blob([d],{type:o.mimeType});return c=s.createObjectURL(b),c});else if(o.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const A=Promise.resolve(c).then(function(d){return new Promise(function(b,h){let l=b;a.isImageBitmapLoader===!0&&(l=function(g){const m=new f.Texture(g);m.needsUpdate=!0,b(m)}),a.load(f.LoaderUtils.resolveURL(d,n.path),l,void 0,h)})}).then(function(d){var b;return u===!0&&s.revokeObjectURL(c),ca(d,o),d.userData.mimeType=o.mimeType||((b=o.uri).search(/\.jpe?g($|\?)/i)>0||b.search(/^data\:image\/jpeg/)===0?"image/jpeg":b.search(/\.webp($|\?)/i)>0||b.search(/^data\:image\/webp/)===0?"image/webp":b.search(/\.ktx2($|\?)/i)>0||b.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"),d}).catch(function(d){throw console.error("THREE.GLTFLoader: Couldn't load texture",c),d});return this.sourceCache[e]=A,A}assignTexture(e,a,t,i){const n=this;return this.getDependency("texture",t.index).then(function(o){if(!o)return null;if(t.texCoord!==void 0&&t.texCoord>0&&((o=o.clone()).channel=t.texCoord),n.extensions[ae.KHR_TEXTURE_TRANSFORM]){const s=t.extensions!==void 0?t.extensions[ae.KHR_TEXTURE_TRANSFORM]:void 0;if(s){const c=n.associations.get(o);o=n.extensions[ae.KHR_TEXTURE_TRANSFORM].extendTexture(o,s),n.associations.set(o,c)}}return i!==void 0&&(o.colorSpace=i),e[a]=o,o})}assignFinalMaterial(e){const a=e.geometry;let t=e.material;const i=a.attributes.tangent===void 0,n=a.attributes.color!==void 0,o=a.attributes.normal===void 0;if(e.isPoints){const s="PointsMaterial:"+t.uuid;let c=this.cache.get(s);c||(c=new f.PointsMaterial,f.Material.prototype.copy.call(c,t),c.color.copy(t.color),c.map=t.map,c.sizeAttenuation=!1,this.cache.add(s,c)),t=c}else if(e.isLine){const s="LineBasicMaterial:"+t.uuid;let c=this.cache.get(s);c||(c=new f.LineBasicMaterial,f.Material.prototype.copy.call(c,t),c.color.copy(t.color),c.map=t.map,this.cache.add(s,c)),t=c}if(i||n||o){let s="ClonedMaterial:"+t.uuid+":";i&&(s+="derivative-tangents:"),n&&(s+="vertex-colors:"),o&&(s+="flat-shading:");let c=this.cache.get(s);c||(c=t.clone(),n&&(c.vertexColors=!0),o&&(c.flatShading=!0),i&&(c.normalScale&&(c.normalScale.y*=-1),c.clearcoatNormalScale&&(c.clearcoatNormalScale.y*=-1)),this.cache.add(s,c),this.associations.set(c,this.associations.get(t))),t=c}e.material=t}getMaterialType(){return f.MeshStandardMaterial}loadMaterial(e){const a=this,t=this.json,i=this.extensions,n=t.materials[e];let o;const s={},c=[];if((n.extensions||{})[ae.KHR_MATERIALS_UNLIT]){const A=i[ae.KHR_MATERIALS_UNLIT];o=A.getMaterialType(),c.push(A.extendParams(s,n,a))}else{const A=n.pbrMetallicRoughness||{};if(s.color=new f.Color(1,1,1),s.opacity=1,Array.isArray(A.baseColorFactor)){const d=A.baseColorFactor;s.color.setRGB(d[0],d[1],d[2],f.LinearSRGBColorSpace),s.opacity=d[3]}A.baseColorTexture!==void 0&&c.push(a.assignTexture(s,"map",A.baseColorTexture,f.SRGBColorSpace)),s.metalness=A.metallicFactor!==void 0?A.metallicFactor:1,s.roughness=A.roughnessFactor!==void 0?A.roughnessFactor:1,A.metallicRoughnessTexture!==void 0&&(c.push(a.assignTexture(s,"metalnessMap",A.metallicRoughnessTexture)),c.push(a.assignTexture(s,"roughnessMap",A.metallicRoughnessTexture))),o=this._invokeOne(function(d){return d.getMaterialType&&d.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(d){return d.extendMaterialParams&&d.extendMaterialParams(e,s)})))}n.doubleSided===!0&&(s.side=f.DoubleSide);const u=n.alphaMode||No;if(u===Lo?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,u===Uo&&(s.alphaTest=n.alphaCutoff!==void 0?n.alphaCutoff:.5)),n.normalTexture!==void 0&&o!==f.MeshBasicMaterial&&(c.push(a.assignTexture(s,"normalMap",n.normalTexture)),s.normalScale=new f.Vector2(1,1),n.normalTexture.scale!==void 0)){const A=n.normalTexture.scale;s.normalScale.set(A,A)}if(n.occlusionTexture!==void 0&&o!==f.MeshBasicMaterial&&(c.push(a.assignTexture(s,"aoMap",n.occlusionTexture)),n.occlusionTexture.strength!==void 0&&(s.aoMapIntensity=n.occlusionTexture.strength)),n.emissiveFactor!==void 0&&o!==f.MeshBasicMaterial){const A=n.emissiveFactor;s.emissive=new f.Color().setRGB(A[0],A[1],A[2],f.LinearSRGBColorSpace)}return n.emissiveTexture!==void 0&&o!==f.MeshBasicMaterial&&c.push(a.assignTexture(s,"emissiveMap",n.emissiveTexture,f.SRGBColorSpace)),Promise.all(c).then(function(){const A=new o(s);return n.name&&(A.name=n.name),ca(A,n),a.associations.set(A,{materials:e}),n.extensions&&xa(i,A,n),A})}createUniqueName(e){const a=f.PropertyBinding.sanitizeNodeName(e||"");return a in this.nodeNamesUsed?a+"_"+ ++this.nodeNamesUsed[a]:(this.nodeNamesUsed[a]=0,a)}loadGeometries(e){const a=this,t=this.extensions,i=this.primitiveCache;function n(s){return t[ae.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(s,a).then(function(c){return Xr(c,s,a)})}const o=[];for(let s=0,c=e.length;s<c;s++){const u=e[s],A=_o(u),d=i[A];if(d)o.push(d.promise);else{let b;b=u.extensions&&u.extensions[ae.KHR_DRACO_MESH_COMPRESSION]?n(u):Xr(new f.BufferGeometry,u,a),i[A]={primitive:u,promise:b},o.push(b)}}return Promise.all(o)}loadMesh(e){const a=this,t=this.json,i=this.extensions,n=t.meshes[e],o=n.primitives,s=[];for(let u=0,A=o.length;u<A;u++){const d=o[u].material===void 0?((c=this.cache).DefaultMaterial===void 0&&(c.DefaultMaterial=new f.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:f.FrontSide})),c.DefaultMaterial):this.getDependency("material",o[u].material);s.push(d)}var c;return s.push(a.loadGeometries(o)),Promise.all(s).then(function(u){const A=u.slice(0,u.length-1),d=u[u.length-1],b=[];for(let l=0,g=d.length;l<g;l++){const m=d[l],E=o[l];let p;const C=A[l];if(E.mode===He.TRIANGLES||E.mode===He.TRIANGLE_STRIP||E.mode===He.TRIANGLE_FAN||E.mode===void 0)p=n.isSkinnedMesh===!0?new f.SkinnedMesh(m,C):new f.Mesh(m,C),p.isSkinnedMesh===!0&&p.normalizeSkinWeights(),E.mode===He.TRIANGLE_STRIP?p.geometry=zr(p.geometry,f.TriangleStripDrawMode):E.mode===He.TRIANGLE_FAN&&(p.geometry=zr(p.geometry,f.TriangleFanDrawMode));else if(E.mode===He.LINES)p=new f.LineSegments(m,C);else if(E.mode===He.LINE_STRIP)p=new f.Line(m,C);else if(E.mode===He.LINE_LOOP)p=new f.LineLoop(m,C);else{if(E.mode!==He.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+E.mode);p=new f.Points(m,C)}Object.keys(p.geometry.morphAttributes).length>0&&Go(p,n),p.name=a.createUniqueName(n.name||"mesh_"+e),ca(p,n),E.extensions&&xa(i,p,E),a.assignFinalMaterial(p),b.push(p)}for(let l=0,g=b.length;l<g;l++)a.associations.set(b[l],{meshes:e,primitives:l});if(b.length===1)return n.extensions&&xa(i,b[0],n),b[0];const h=new f.Group;n.extensions&&xa(i,h,n),a.associations.set(h,{meshes:e});for(let l=0,g=b.length;l<g;l++)h.add(b[l]);return h})}loadCamera(e){let a;const t=this.json.cameras[e],i=t[t.type];if(i)return t.type==="perspective"?a=new f.PerspectiveCamera(f.MathUtils.radToDeg(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):t.type==="orthographic"&&(a=new f.OrthographicCamera(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),t.name&&(a.name=this.createUniqueName(t.name)),ca(a,t),Promise.resolve(a);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const a=this.json.skins[e],t=[];for(let i=0,n=a.joints.length;i<n;i++)t.push(this._loadNodeShallow(a.joints[i]));return a.inverseBindMatrices!==void 0?t.push(this.getDependency("accessor",a.inverseBindMatrices)):t.push(null),Promise.all(t).then(function(i){const n=i.pop(),o=i,s=[],c=[];for(let u=0,A=o.length;u<A;u++){const d=o[u];if(d){s.push(d);const b=new f.Matrix4;n!==null&&b.fromArray(n.array,16*u),c.push(b)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',a.joints[u])}return new f.Skeleton(s,c)})}loadAnimation(e){const a=this.json,t=this,i=a.animations[e],n=i.name?i.name:"animation_"+e,o=[],s=[],c=[],u=[],A=[];for(let d=0,b=i.channels.length;d<b;d++){const h=i.channels[d],l=i.samplers[h.sampler],g=h.target,m=g.node,E=i.parameters!==void 0?i.parameters[l.input]:l.input,p=i.parameters!==void 0?i.parameters[l.output]:l.output;g.node!==void 0&&(o.push(this.getDependency("node",m)),s.push(this.getDependency("accessor",E)),c.push(this.getDependency("accessor",p)),u.push(l),A.push(g))}return Promise.all([Promise.all(o),Promise.all(s),Promise.all(c),Promise.all(u),Promise.all(A)]).then(function(d){const b=d[0],h=d[1],l=d[2],g=d[3],m=d[4],E=[];for(let p=0,C=b.length;p<C;p++){const I=b[p],x=h[p],y=l[p],w=g[p],D=m[p];if(I===void 0)continue;I.updateMatrix&&I.updateMatrix();const F=t._createAnimationTracks(I,x,y,w,D);if(F)for(let j=0;j<F.length;j++)E.push(F[j])}return new f.AnimationClip(n,void 0,E)})}createNodeMesh(e){const a=this.json,t=this,i=a.nodes[e];return i.mesh===void 0?null:t.getDependency("mesh",i.mesh).then(function(n){const o=t._getNodeRef(t.meshCache,i.mesh,n);return i.weights!==void 0&&o.traverse(function(s){if(s.isMesh)for(let c=0,u=i.weights.length;c<u;c++)s.morphTargetInfluences[c]=i.weights[c]}),o})}loadNode(e){const a=this,t=this.json.nodes[e],i=a._loadNodeShallow(e),n=[],o=t.children||[];for(let c=0,u=o.length;c<u;c++)n.push(a.getDependency("node",o[c]));const s=t.skin===void 0?Promise.resolve(null):a.getDependency("skin",t.skin);return Promise.all([i,Promise.all(n),s]).then(function(c){const u=c[0],A=c[1],d=c[2];d!==null&&u.traverse(function(b){b.isSkinnedMesh&&b.bind(d,zo)});for(let b=0,h=A.length;b<h;b++)u.add(A[b]);return u})}_loadNodeShallow(e){const a=this.json,t=this.extensions,i=this;if(this.nodeCache[e]!==void 0)return this.nodeCache[e];const n=a.nodes[e],o=n.name?i.createUniqueName(n.name):"",s=[],c=i._invokeOne(function(u){return u.createNodeMesh&&u.createNodeMesh(e)});return c&&s.push(c),n.camera!==void 0&&s.push(i.getDependency("camera",n.camera).then(function(u){return i._getNodeRef(i.cameraCache,n.camera,u)})),i._invokeAll(function(u){return u.createNodeAttachment&&u.createNodeAttachment(e)}).forEach(function(u){s.push(u)}),this.nodeCache[e]=Promise.all(s).then(function(u){let A;if(A=n.isBone===!0?new f.Bone:u.length>1?new f.Group:u.length===1?u[0]:new f.Object3D,A!==u[0])for(let d=0,b=u.length;d<b;d++)A.add(u[d]);if(n.name&&(A.userData.name=n.name,A.name=o),ca(A,n),n.extensions&&xa(t,A,n),n.matrix!==void 0){const d=new f.Matrix4;d.fromArray(n.matrix),A.applyMatrix4(d)}else n.translation!==void 0&&A.position.fromArray(n.translation),n.rotation!==void 0&&A.quaternion.fromArray(n.rotation),n.scale!==void 0&&A.scale.fromArray(n.scale);if(i.associations.has(A)){if(n.mesh!==void 0&&i.meshCache.refs[n.mesh]>1){const d=i.associations.get(A);i.associations.set(A,{...d})}}else i.associations.set(A,{});return i.associations.get(A).nodes=e,A}),this.nodeCache[e]}loadScene(e){const a=this.extensions,t=this.json.scenes[e],i=this,n=new f.Group;t.name&&(n.name=i.createUniqueName(t.name)),ca(n,t),t.extensions&&xa(a,n,t);const o=t.nodes||[],s=[];for(let c=0,u=o.length;c<u;c++)s.push(i.getDependency("node",o[c]));return Promise.all(s).then(function(c){for(let u=0,A=c.length;u<A;u++)n.add(c[u]);return i.associations=(u=>{const A=new Map;for(const[d,b]of i.associations)(d instanceof f.Material||d instanceof f.Texture)&&A.set(d,b);return u.traverse(d=>{const b=i.associations.get(d);b!=null&&A.set(d,b)}),A})(n),n})}_createAnimationTracks(e,a,t,i,n){const o=[],s=e.name?e.name:e.uuid,c=[];let u;switch(fa[n.path]===fa.weights?e.traverse(function(b){b.morphTargetInfluences&&c.push(b.name?b.name:b.uuid)}):c.push(s),fa[n.path]){case fa.weights:u=f.NumberKeyframeTrack;break;case fa.rotation:u=f.QuaternionKeyframeTrack;break;case fa.translation:case fa.scale:u=f.VectorKeyframeTrack;break;default:t.itemSize===1?u=f.NumberKeyframeTrack:u=f.VectorKeyframeTrack}const A=i.interpolation!==void 0?To[i.interpolation]:f.InterpolateLinear,d=this._getArrayFromAccessor(t);for(let b=0,h=c.length;b<h;b++){const l=new u(c[b]+"."+fa[n.path],a.array,d,A);i.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(l),o.push(l)}return o}_getArrayFromAccessor(e){let a=e.array;if(e.normalized){const t=_t(a.constructor),i=new Float32Array(a.length);for(let n=0,o=a.length;n<o;n++)i[n]=a[n]*t;a=i}return a}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(a){return new(this instanceof f.QuaternionKeyframeTrack?So:Vr)(this.times,this.values,this.getValueSize()/3,a)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function Xr(r,e,a){const t=e.attributes,i=[];function n(o,s){return a.getDependency("accessor",o).then(function(c){r.setAttribute(s,c)})}for(const o in t){const s=Lt[o]||o.toLowerCase();s in r.attributes||i.push(n(t[o],s))}if(e.indices!==void 0&&!r.index){const o=a.getDependency("accessor",e.indices).then(function(s){r.setIndex(s)});i.push(o)}return f.ColorManagement.workingColorSpace!==f.LinearSRGBColorSpace&&"COLOR_0"in t&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${f.ColorManagement.workingColorSpace}" not supported.`),ca(r,e),function(o,s,c){const u=s.attributes,A=new f.Box3;if(u.POSITION===void 0)return;{const h=c.json.accessors[u.POSITION],l=h.min,g=h.max;if(l===void 0||g===void 0)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(A.set(new f.Vector3(l[0],l[1],l[2]),new f.Vector3(g[0],g[1],g[2])),h.normalized){const m=_t(Ra[h.componentType]);A.min.multiplyScalar(m),A.max.multiplyScalar(m)}}const d=s.targets;if(d!==void 0){const h=new f.Vector3,l=new f.Vector3;for(let g=0,m=d.length;g<m;g++){const E=d[g];if(E.POSITION!==void 0){const p=c.json.accessors[E.POSITION],C=p.min,I=p.max;if(C!==void 0&&I!==void 0){if(l.setX(Math.max(Math.abs(C[0]),Math.abs(I[0]))),l.setY(Math.max(Math.abs(C[1]),Math.abs(I[1]))),l.setZ(Math.max(Math.abs(C[2]),Math.abs(I[2]))),p.normalized){const x=_t(Ra[p.componentType]);l.multiplyScalar(x)}h.max(l)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}A.expandByVector(h)}o.boundingBox=A;const b=new f.Sphere;A.getCenter(b.center),b.radius=A.min.distanceTo(A.max)/2,o.boundingSphere=b}(r,e,a),Promise.all(i).then(function(){return e.targets!==void 0?function(o,s,c){let u=!1,A=!1,d=!1;for(let g=0,m=s.length;g<m;g++){const E=s[g];if(E.POSITION!==void 0&&(u=!0),E.NORMAL!==void 0&&(A=!0),E.COLOR_0!==void 0&&(d=!0),u&&A&&d)break}if(!u&&!A&&!d)return Promise.resolve(o);const b=[],h=[],l=[];for(let g=0,m=s.length;g<m;g++){const E=s[g];if(u){const p=E.POSITION!==void 0?c.getDependency("accessor",E.POSITION):o.attributes.position;b.push(p)}if(A){const p=E.NORMAL!==void 0?c.getDependency("accessor",E.NORMAL):o.attributes.normal;h.push(p)}if(d){const p=E.COLOR_0!==void 0?c.getDependency("accessor",E.COLOR_0):o.attributes.color;l.push(p)}}return Promise.all([Promise.all(b),Promise.all(h),Promise.all(l)]).then(function(g){const m=g[0],E=g[1],p=g[2];return u&&(o.morphAttributes.position=m),A&&(o.morphAttributes.normal=E),d&&(o.morphAttributes.color=p),o.morphTargetsRelative=!0,o})}(r,e.targets,a):r})}const zt=new WeakMap;class Yr extends f.Loader{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,a,t,i){const n=new f.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),n.load(e,o=>{this.parse(o,a,i)},t,i)}parse(e,a,t=()=>{}){this.decodeDracoFile(e,a,null,null,f.SRGBColorSpace,t).catch(t)}decodeDracoFile(e,a,t,i,n=f.LinearSRGBColorSpace,o=()=>{}){const s={attributeIDs:t||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!t,vertexColorSpace:n};return this.decodeGeometry(e,s).then(a).catch(o)}decodeGeometry(e,a){const t=JSON.stringify(a);if(zt.has(e)){const c=zt.get(e);if(c.key===t)return c.promise;if(e.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i;const n=this.workerNextTaskID++,o=e.byteLength,s=this._getWorker(n,o).then(c=>(i=c,new Promise((u,A)=>{i._callbacks[n]={resolve:u,reject:A},i.postMessage({type:"decode",id:n,taskConfig:a,buffer:e},[e])}))).then(c=>this._createGeometry(c.geometry));return s.catch(()=>!0).then(()=>{i&&n&&this._releaseTask(i,n)}),zt.set(e,{key:t,promise:s}),s}_createGeometry(e){const a=new f.BufferGeometry;e.index&&a.setIndex(new f.BufferAttribute(e.index.array,1));for(let t=0;t<e.attributes.length;t++){const i=e.attributes[t],n=i.name,o=i.array,s=i.itemSize,c=new f.BufferAttribute(o,s);n==="color"&&(this._assignVertexColorSpace(c,i.vertexColorSpace),c.normalized=!(o instanceof Float32Array)),a.setAttribute(n,c)}return a}_assignVertexColorSpace(e,a){if(a!==f.SRGBColorSpace)return;const t=new f.Color;for(let i=0,n=e.count;i<n;i++)t.fromBufferAttribute(e,i),f.ColorManagement.colorSpaceToWorking(t,f.SRGBColorSpace),e.setXYZ(i,t.r,t.g,t.b)}_loadLibrary(e,a){const t=new f.FileLoader(this.manager);return t.setPath(this.decoderPath),t.setResponseType(a),t.setWithCredentials(this.withCredentials),new Promise((i,n)=>{t.load(e,i,void 0,n)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e=typeof WebAssembly!="object"||this.decoderConfig.type==="js",a=[];return e?a.push(this._loadLibrary("draco_decoder.js","text")):(a.push(this._loadLibrary("draco_wasm_wrapper.js","text")),a.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(a).then(t=>{const i=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const n=qo.toString(),o=["/* draco decoder */",i,"","/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join(`
|
|
7
|
-
`);this.workerSourceURL=URL.createObjectURL(new Blob([o]))}),this.decoderPending}_getWorker(e,a){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const i=new Worker(this.workerSourceURL);i._callbacks={},i._taskCosts={},i._taskLoad=0,i.postMessage({type:"init",decoderConfig:this.decoderConfig}),i.onmessage=function(n){const o=n.data;switch(o.type){case"decode":i._callbacks[o.id].resolve(o);break;case"error":i._callbacks[o.id].reject(o);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+o.type+'"')}},this.workerPool.push(i)}else this.workerPool.sort(function(i,n){return i._taskLoad>n._taskLoad?-1:1});const t=this.workerPool[this.workerPool.length-1];return t._taskCosts[e]=a,t._taskLoad+=a,t})}_releaseTask(e,a){e._taskLoad-=e._taskCosts[a],delete e._callbacks[a],delete e._taskCosts[a]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function qo(){let r,e;function a(t,i,n,o,s,c){const u=c.num_components(),A=n.num_points()*u,d=A*s.BYTES_PER_ELEMENT,b=function(g,m){switch(m){case Float32Array:return g.DT_FLOAT32;case Int8Array:return g.DT_INT8;case Int16Array:return g.DT_INT16;case Int32Array:return g.DT_INT32;case Uint8Array:return g.DT_UINT8;case Uint16Array:return g.DT_UINT16;case Uint32Array:return g.DT_UINT32}}(t,s),h=t._malloc(d);i.GetAttributeDataArrayForAllPoints(n,c,b,d,h);const l=new s(t.HEAPF32.buffer,h,A).slice();return t._free(h),{name:o,array:l,itemSize:u}}onmessage=function(t){const i=t.data;switch(i.type){case"init":r=i.decoderConfig,e=new Promise(function(s){r.onModuleLoaded=function(c){s({draco:c})},DracoDecoderModule(r)});break;case"decode":const n=i.buffer,o=i.taskConfig;e.then(s=>{const c=s.draco,u=new c.Decoder;try{const A=function(b,h,l,g){const m=g.attributeIDs,E=g.attributeTypes;let p,C;const I=h.GetEncodedGeometryType(l);if(I===b.TRIANGULAR_MESH)p=new b.Mesh,C=h.DecodeArrayToMesh(l,l.byteLength,p);else{if(I!==b.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");p=new b.PointCloud,C=h.DecodeArrayToPointCloud(l,l.byteLength,p)}if(!C.ok()||p.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+C.error_msg());const x={index:null,attributes:[]};for(const y in m){const w=self[E[y]];let D,F;if(g.useUniqueIDs)F=m[y],D=h.GetAttributeByUniqueId(p,F);else{if(F=h.GetAttributeId(p,b[m[y]]),F===-1)continue;D=h.GetAttribute(p,F)}const j=a(b,h,p,y,w,D);y==="color"&&(j.vertexColorSpace=g.vertexColorSpace),x.attributes.push(j)}return I===b.TRIANGULAR_MESH&&(x.index=function(y,w,D){const F=D.num_faces(),j=3*F,M=4*j,_=y._malloc(M);w.GetTrianglesUInt32Array(D,M,_);const q=new Uint32Array(y.HEAPF32.buffer,_,j).slice();return y._free(_),{array:q,itemSize:1}}(b,h,p)),b.destroy(p),x}(c,u,new Int8Array(n),o),d=A.attributes.map(b=>b.array.buffer);A.index&&d.push(A.index.array.buffer),self.postMessage({type:"decode",id:i.id,geometry:A},d)}catch(A){console.error(A),self.postMessage({type:"error",id:i.id,error:A.message})}finally{c.destroy(u)}})}}}class Ko{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(e){if(!this.workers[e]){const a=this.workerCreator();a.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=a}}_getIdleWorker(){for(let e=0;e<this.pool;e++)if(!(this.workerStatus&1<<e))return e;return-1}_onMessage(e,a){const t=this.workersResolve[e];if(t&&t(a),this.queue.length){const{resolve:i,msg:n,transfer:o}=this.queue.shift();this.workersResolve[e]=i,this.workers[e].postMessage(n,o)}else this.workerStatus^=1<<e}setWorkerCreator(e){this.workerCreator=e}setWorkerLimit(e){this.pool=e}postMessage(e,a){return new Promise(t=>{const i=this._getIdleWorker();i!==-1?(this._initWorker(i),this.workerStatus|=1<<i,this.workersResolve[i]=t,this.workers[i].postMessage(e,a)):this.queue.push({resolve:t,msg:e,transfer:a})})}dispose(){this.workers.forEach(e=>e.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const Zr=9,$r=15,ei=16,ai=22,ti=37,ri=43,ii=76,ni=83,oi=97,si=100,Ai=103,ci=109,Oo=131,Jo=132,Vo=133,Ho=134,Wo=137,Xo=138,Yo=141,Zo=142,$o=145,es=146,ui=148,di=152,as=157,ts=158,hi=165,li=166,Pt=1000066e3;class rs{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Wa{constructor(e,a,t,i){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(e.buffer,e.byteOffset+a,t),this._littleEndian=i,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint8Array(e){const a=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,e);return this._offset+=e,a}_skip(e){return this._offset+=e,this}_scan(e,a){a===void 0&&(a=0);const t=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==a&&i<e;)i++,this._offset++;return i<e&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+t,i)}}const Ue=[171,75,84,88,32,50,48,187,13,10,26,10];function bi(r){return new TextDecoder().decode(r)}let qt,ua,Kt;const Ot={env:{emscripten_notify_memory_growth:function(r){Kt=new Uint8Array(ua.exports.memory.buffer)}}};class is{init(){return qt||(qt=typeof fetch<"u"?fetch("data:application/wasm;base64,"+gi).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,Ot)).then(this._init):WebAssembly.instantiate(Buffer.from(gi,"base64"),Ot).then(this._init),qt)}_init(e){ua=e.instance,Ot.env.emscripten_notify_memory_growth(0)}decode(e,a=0){if(!ua)throw new Error("ZSTDDecoder: Await .init() before decoding.");const t=e.byteLength,i=ua.exports.malloc(t);Kt.set(e,i),a=a||Number(ua.exports.ZSTD_findDecompressedSize(i,t));const n=ua.exports.malloc(a),o=ua.exports.ZSTD_decompress(n,a,i,t),s=Kt.slice(n,n+o);return ua.exports.free(i),ua.exports.free(n),s}}const gi="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Jt=new WeakMap;let Vt,Ht=0;class Oe extends f.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new Ko,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}async detectSupportAsync(e){return this.workerConfig={astcSupported:await e.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await e.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await e.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await e.hasFeatureAsync("texture-compression-bc"),bptcSupported:await e.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await e.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(e){return e.isWebGPURenderer===!0?this.workerConfig={astcSupported:e.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:e.hasFeature("texture-compression-etc1"),etc2Supported:e.hasFeature("texture-compression-etc2"),dxtSupported:e.hasFeature("texture-compression-bc"),bptcSupported:e.hasFeature("texture-compression-bptc"),pvrtcSupported:e.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:e.extensions.has("WEBGL_compressed_texture_astc")&&e.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const e=new f.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const a=e.loadAsync("basis_transcoder.js"),t=new f.FileLoader(this.manager);t.setPath(this.transcoderPath),t.setResponseType("arraybuffer"),t.setWithCredentials(this.withCredentials);const i=t.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([a,i]).then(([n,o])=>{const s=Oe.BasisWorker.toString(),c=["/* constants */","let _EngineFormat = "+JSON.stringify(Oe.EngineFormat),"let _EngineType = "+JSON.stringify(Oe.EngineType),"let _TranscoderFormat = "+JSON.stringify(Oe.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Oe.BasisFormat),"/* basis_transcoder.js */",n,"/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join(`
|
|
8
|
-
`);this.workerSourceURL=URL.createObjectURL(new Blob([c])),this.transcoderBinary=o,this.workerPool.setWorkerCreator(()=>{const u=new Worker(this.workerSourceURL),A=this.transcoderBinary.slice(0);return u.postMessage({type:"init",config:this.workerConfig,transcoderBinary:A},[A]),u})}),Ht>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),Ht++}return this.transcoderPending}load(e,a,t,i){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const n=new f.FileLoader(this.manager);n.setPath(this.path),n.setCrossOrigin(this.crossOrigin),n.setWithCredentials(this.withCredentials),n.setResponseType("arraybuffer"),n.load(e,o=>{this.parse(o,a,i)},t,i)}parse(e,a,t){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(Jt.has(e))return Jt.get(e).promise.then(a).catch(t);this._createTexture(e).then(i=>a?a(i):null).catch(t)}_createTextureFrom(e,a){const{type:t,error:i,data:{faces:n,width:o,height:s,format:c,type:u,dfdFlags:A}}=e;if(t==="error")return Promise.reject(i);let d;if(a.faceCount===6)d=new f.CompressedCubeTexture(n,c,u);else{const b=n[0].mipmaps;d=a.layerCount>1?new f.CompressedArrayTexture(b,o,s,a.layerCount,c,u):new f.CompressedTexture(b,o,s,c,u)}return d.minFilter=n[0].mipmaps.length===1?f.LinearFilter:f.LinearMipmapLinearFilter,d.magFilter=f.LinearFilter,d.generateMipmaps=!1,d.needsUpdate=!0,d.colorSpace=fi(a),d.premultiplyAlpha=!!(1&A),d}async _createTexture(e,a={}){const t=function(s){const c=new Uint8Array(s.buffer,s.byteOffset,Ue.length);if(c[0]!==Ue[0]||c[1]!==Ue[1]||c[2]!==Ue[2]||c[3]!==Ue[3]||c[4]!==Ue[4]||c[5]!==Ue[5]||c[6]!==Ue[6]||c[7]!==Ue[7]||c[8]!==Ue[8]||c[9]!==Ue[9]||c[10]!==Ue[10]||c[11]!==Ue[11])throw new Error("Missing KTX 2.0 identifier.");const u=new rs,A=17*Uint32Array.BYTES_PER_ELEMENT,d=new Wa(s,Ue.length,A,!0);u.vkFormat=d._nextUint32(),u.typeSize=d._nextUint32(),u.pixelWidth=d._nextUint32(),u.pixelHeight=d._nextUint32(),u.pixelDepth=d._nextUint32(),u.layerCount=d._nextUint32(),u.faceCount=d._nextUint32();const b=d._nextUint32();u.supercompressionScheme=d._nextUint32();const h=d._nextUint32(),l=d._nextUint32(),g=d._nextUint32(),m=d._nextUint32(),E=d._nextUint64(),p=d._nextUint64(),C=new Wa(s,Ue.length+A,3*b*8,!0);for(let X=0;X<b;X++)u.levels.push({levelData:new Uint8Array(s.buffer,s.byteOffset+C._nextUint64(),C._nextUint64()),uncompressedByteLength:C._nextUint64()});const I=new Wa(s,h,l,!0),x={vendorId:I._skip(4)._nextUint16(),descriptorType:I._nextUint16(),versionNumber:I._nextUint16(),descriptorBlockSize:I._nextUint16(),colorModel:I._nextUint8(),colorPrimaries:I._nextUint8(),transferFunction:I._nextUint8(),flags:I._nextUint8(),texelBlockDimension:[I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8()],bytesPlane:[I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8()],samples:[]},y=(x.descriptorBlockSize/4-6)/4;for(let X=0;X<y;X++){const ee={bitOffset:I._nextUint16(),bitLength:I._nextUint8(),channelType:I._nextUint8(),samplePosition:[I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&ee.channelType?(ee.sampleLower=I._nextInt32(),ee.sampleUpper=I._nextInt32()):(ee.sampleLower=I._nextUint32(),ee.sampleUpper=I._nextUint32()),x.samples[X]=ee}u.dataFormatDescriptor.length=0,u.dataFormatDescriptor.push(x);const w=new Wa(s,g,m,!0);for(;w._offset<m;){const X=w._nextUint32(),ee=w._scan(X),Ae=bi(ee);if(u.keyValue[Ae]=w._nextUint8Array(X-ee.byteLength-1),Ae.match(/^ktx/i)){const Ce=bi(u.keyValue[Ae]);u.keyValue[Ae]=Ce.substring(0,Ce.lastIndexOf("\0"))}w._skip(X%4?4-X%4:0)}if(p<=0)return u;const D=new Wa(s,E,p,!0),F=D._nextUint16(),j=D._nextUint16(),M=D._nextUint32(),_=D._nextUint32(),q=D._nextUint32(),V=D._nextUint32(),J=[];for(let X=0;X<b;X++)J.push({imageFlags:D._nextUint32(),rgbSliceByteOffset:D._nextUint32(),rgbSliceByteLength:D._nextUint32(),alphaSliceByteOffset:D._nextUint32(),alphaSliceByteLength:D._nextUint32()});const O=E+D._offset,se=O+M,ue=se+_,re=ue+q,le=new Uint8Array(s.buffer,s.byteOffset+O,M),de=new Uint8Array(s.buffer,s.byteOffset+se,_),$=new Uint8Array(s.buffer,s.byteOffset+ue,q),me=new Uint8Array(s.buffer,s.byteOffset+re,V);return u.globalData={endpointCount:F,selectorCount:j,imageDescs:J,endpointsData:le,selectorsData:de,tablesData:$,extendedData:me},u}(new Uint8Array(e)),i=t.vkFormat===Pt&&t.dataFormatDescriptor[0].colorModel===167;if(!(t.vkFormat===0||i&&!this.workerConfig.astcHDRSupported))return async function(s){const{vkFormat:c}=s;if(Wt[c]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let u;s.supercompressionScheme===2&&(Vt||(Vt=new Promise(async b=>{const h=new is;await h.init(),b(h)})),u=await Vt);const A=[];for(let b=0;b<s.levels.length;b++){const h=Math.max(1,s.pixelWidth>>b),l=Math.max(1,s.pixelHeight>>b),g=s.pixelDepth?Math.max(1,s.pixelDepth>>b):0,m=s.levels[b];let E,p;if(s.supercompressionScheme===0)E=m.levelData;else{if(s.supercompressionScheme!==2)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");E=u.decode(m.levelData,m.uncompressedByteLength)}p=Xt[c]===f.FloatType?new Float32Array(E.buffer,E.byteOffset,E.byteLength/Float32Array.BYTES_PER_ELEMENT):Xt[c]===f.HalfFloatType?new Uint16Array(E.buffer,E.byteOffset,E.byteLength/Uint16Array.BYTES_PER_ELEMENT):E,A.push({data:p,width:h,height:l,depth:g})}let d;if(ns.has(Wt[c]))d=s.pixelDepth===0?new f.DataTexture(A[0].data,s.pixelWidth,s.pixelHeight):new f.Data3DTexture(A[0].data,s.pixelWidth,s.pixelHeight,s.pixelDepth);else{if(s.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");d=new f.CompressedTexture(A,s.pixelWidth,s.pixelHeight),d.minFilter=A.length===1?f.LinearFilter:f.LinearMipmapLinearFilter,d.magFilter=f.LinearFilter}return d.mipmaps=A,d.type=Xt[c],d.format=Wt[c],d.colorSpace=fi(s),d.needsUpdate=!0,Promise.resolve(d)}(t);const n=a,o=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:n},[e])).then(s=>this._createTextureFrom(s.data,t));return Jt.set(e,{promise:o}),o}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),Ht--}}Oe.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},Oe.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},Oe.EngineFormat={RGBAFormat:f.RGBAFormat,RGBA_ASTC_4x4_Format:f.RGBA_ASTC_4x4_Format,RGB_BPTC_UNSIGNED_Format:f.RGB_BPTC_UNSIGNED_Format,RGBA_BPTC_Format:f.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:f.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:f.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:f.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:f.RGB_ETC1_Format,RGB_ETC2_Format:f.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:f.RGB_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:f.RGBA_S3TC_DXT1_Format},Oe.EngineType={UnsignedByteType:f.UnsignedByteType,HalfFloatType:f.HalfFloatType,FloatType:f.FloatType},Oe.BasisWorker=function(){let r,e,a;const t=_EngineFormat,i=_EngineType,n=_TranscoderFormat,o=_BasisFormat;self.addEventListener("message",function(d){const b=d.data;switch(b.type){case"init":r=b.config,h=b.transcoderBinary,e=new Promise(l=>{a={wasmBinary:h,onRuntimeInitialized:l},BASIS(a)}).then(()=>{a.initializeBasis(),a.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":e.then(()=>{try{const{faces:l,buffers:g,width:m,height:E,hasAlpha:p,format:C,type:I,dfdFlags:x}=function(y){const w=new a.KTX2File(new Uint8Array(y));function D(){w.close(),w.delete()}if(!w.isValid())throw D(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let F;if(w.isUASTC())F=o.UASTC;else if(w.isETC1S())F=o.ETC1S;else{if(!w.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");F=o.UASTC_HDR}const j=w.getWidth(),M=w.getHeight(),_=w.getLayers()||1,q=w.getLevels(),V=w.getFaces(),J=w.getHasAlpha(),O=w.getDFDFlags(),{transcoderFormat:se,engineFormat:ue,engineType:re}=function($,me,X,ee){const Ae=c[$];for(let Ce=0;Ce<Ae.length;Ce++){const we=Ae[Ce];if(!(we.if&&!r[we.if])&&we.basisFormat.includes($)&&!(ee&&we.transcoderFormat.length<2)&&!(we.needsPowerOfTwo&&(!u(me)||!u(X))))return{transcoderFormat:we.transcoderFormat[ee?1:0],engineFormat:we.engineFormat[ee?1:0],engineType:we.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(F,j,M,J);if(!j||!M||!q)throw D(),new Error("THREE.KTX2Loader: Invalid texture");if(!w.startTranscoding())throw D(),new Error("THREE.KTX2Loader: .startTranscoding failed");const le=[],de=[];for(let $=0;$<V;$++){const me=[];for(let X=0;X<q;X++){const ee=[];let Ae,Ce;for(let Ne=0;Ne<_;Ne++){const Je=w.getImageLevelInfo(X,Ne,$);$!==0||X!==0||Ne!==0||Je.origWidth%4==0&&Je.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),q>1?(Ae=Je.origWidth,Ce=Je.origHeight):(Ae=Je.width,Ce=Je.height);let Ve=new Uint8Array(w.getImageTranscodedSizeInBytes(X,Ne,0,se));const et=w.transcodeImage(Ve,X,Ne,$,se,0,-1,-1);if(re===i.HalfFloatType&&(Ve=new Uint16Array(Ve.buffer,Ve.byteOffset,Ve.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!et)throw D(),new Error("THREE.KTX2Loader: .transcodeImage failed.");ee.push(Ve)}const we=A(ee);me.push({data:we,width:Ae,height:Ce}),de.push(we.buffer)}le.push({mipmaps:me,width:j,height:M,format:ue,type:re})}return D(),{faces:le,buffers:de,width:j,height:M,hasAlpha:J,dfdFlags:O,format:ue,type:re}}(b.buffer);self.postMessage({type:"transcode",id:b.id,data:{faces:l,width:m,height:E,hasAlpha:p,format:C,type:I,dfdFlags:x}},g)}catch(l){console.error(l),self.postMessage({type:"error",id:b.id,error:l.message})}})}var h});const s=[{if:"astcSupported",basisFormat:[o.UASTC],transcoderFormat:[n.ASTC_4x4,n.ASTC_4x4],engineFormat:[t.RGBA_ASTC_4x4_Format,t.RGBA_ASTC_4x4_Format],engineType:[i.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.BC7_M5,n.BC7_M5],engineFormat:[t.RGBA_BPTC_Format,t.RGBA_BPTC_Format],engineType:[i.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.BC1,n.BC3],engineFormat:[t.RGBA_S3TC_DXT1_Format,t.RGBA_S3TC_DXT5_Format],engineType:[i.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.ETC1,n.ETC2],engineFormat:[t.RGB_ETC2_Format,t.RGBA_ETC2_EAC_Format],engineType:[i.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.ETC1],engineFormat:[t.RGB_ETC1_Format],engineType:[i.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.PVRTC1_4_RGB,n.PVRTC1_4_RGBA],engineFormat:[t.RGB_PVRTC_4BPPV1_Format,t.RGBA_PVRTC_4BPPV1_Format],engineType:[i.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[o.UASTC_HDR],transcoderFormat:[n.BC6H],engineFormat:[t.RGB_BPTC_UNSIGNED_Format],engineType:[i.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.RGBA32,n.RGBA32],engineFormat:[t.RGBAFormat,t.RGBAFormat],engineType:[i.UnsignedByteType,i.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[o.UASTC_HDR],transcoderFormat:[n.RGBA_HALF],engineFormat:[t.RGBAFormat],engineType:[i.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],c={[o.ETC1S]:s.filter(d=>d.basisFormat.includes(o.ETC1S)).sort((d,b)=>d.priorityUASTC-b.priorityUASTC),[o.UASTC]:s.filter(d=>d.basisFormat.includes(o.UASTC)).sort((d,b)=>d.priorityUASTC-b.priorityUASTC),[o.UASTC_HDR]:s.filter(d=>d.basisFormat.includes(o.UASTC_HDR)).sort((d,b)=>d.priorityHDR-b.priorityHDR)};function u(d){return d<=2||!(d&d-1)&&d!==0}function A(d){if(d.length===1)return d[0];let b=0;for(let g=0;g<d.length;g++)b+=d[g].byteLength;const h=new Uint8Array(b);let l=0;for(let g=0;g<d.length;g++){const m=d[g];h.set(m,l),l+=m.byteLength}return h}};const ns=new Set([f.RGBAFormat,f.RGFormat,f.RedFormat]),Wt={[ci]:f.RGBAFormat,[oi]:f.RGBAFormat,[ti]:f.RGBAFormat,[ri]:f.RGBAFormat,[Ai]:f.RGFormat,[ni]:f.RGFormat,[ei]:f.RGFormat,[ai]:f.RGFormat,[si]:f.RedFormat,[ii]:f.RedFormat,[$r]:f.RedFormat,[Zr]:f.RedFormat,[ui]:f.RGB_ETC2_Format,[di]:f.RGBA_ETC2_EAC_Format,[Pt]:f.RGBA_ASTC_4x4_Format,[ts]:f.RGBA_ASTC_4x4_Format,[as]:f.RGBA_ASTC_4x4_Format,[li]:f.RGBA_ASTC_6x6_Format,[hi]:f.RGBA_ASTC_6x6_Format,[Vo]:f.RGBA_S3TC_DXT1_Format,[Ho]:f.RGBA_S3TC_DXT1_Format,[Oo]:f.RGB_S3TC_DXT1_Format,[Jo]:f.RGB_S3TC_DXT1_Format,[Xo]:f.RGBA_S3TC_DXT3_Format,[Wo]:f.RGBA_S3TC_DXT3_Format,[Zo]:f.RGBA_S3TC_DXT5_Format,[Yo]:f.RGBA_S3TC_DXT5_Format,[es]:f.RGBA_BPTC_Format,[$o]:f.RGBA_BPTC_Format},Xt={[ci]:f.FloatType,[oi]:f.HalfFloatType,[ti]:f.UnsignedByteType,[ri]:f.UnsignedByteType,[Ai]:f.FloatType,[ni]:f.HalfFloatType,[ei]:f.UnsignedByteType,[ai]:f.UnsignedByteType,[si]:f.FloatType,[ii]:f.HalfFloatType,[$r]:f.UnsignedByteType,[Zr]:f.UnsignedByteType,[ui]:f.UnsignedByteType,[di]:f.UnsignedByteType,[Pt]:f.HalfFloatType,[li]:f.UnsignedByteType,[hi]:f.UnsignedByteType};function fi(r){const e=r.dataFormatDescriptor[0];return e.colorPrimaries===1?e.transferFunction===2?f.SRGBColorSpace:f.LinearSRGBColorSpace:e.colorPrimaries===10?e.transferFunction===2?"display-p3":"display-p3-linear":(e.colorPrimaries===0||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`),f.NoColorSpace)}async function pi(r){const e=r.split("?")[0].split(".").pop(),a=await fetch(r);if(!a.ok)throw new Error(`Failed to fetch ${r}: ${a.statusText}`);if(e==="json"){const t=await a.json();return handleJSONSubtree(t,mi(r))}if(e==="subtree")return async function(t,i){const n=new DataView(t),o=n.getBigUint64(8,!0),s=n.getBigUint64(16,!0),c=24,u=c+Number(o),A=u+(8-u%8)%8,d=A+Number(s),b=t.slice(c,u),h=new TextDecoder().decode(b).trim(),l=JSON.parse(h);if(!l.buffers)throw new Error("subtree has no buffers");const g=l.buffers.map(async E=>{if(E.uri){const p=new URL(E.uri,i).href,C=await fetch(p);if(!C.ok)throw new Error(`Failed to fetch binary file ${p}: ${C.statusText}`);return new Uint8Array(await C.arrayBuffer())}return new Uint8Array(t.slice(A,d))}),m=await Promise.all(g);return function(E,p){function C(D,F){if(!D)throw new Error("incomplete json subtree");if(D.constant){if(D.constant==0)return!1;if(D.constant==1)return!0}if(D.bitstream==null)throw new Error('json subtree "tileAvailability" does not specify a bitstream');if(!E.bufferViews||!E.bufferViews[D.bitstream])throw new Error('json subtree "bufferViews" does not specify a bitstream');const j=E.bufferViews[D.bitstream];return I(p[j.buffer],j.byteOffset,F)}function I(D,F,j){const M=j%8;return D[F+Math.floor(j/8)]>>M&!0}function x(D){let F=0;return F=D.z==null?Yt(D.x,D.y,D.level):$t(D.x,D.y,D.z,D.level),C(E.tileAvailability,F)}function y(D){let F=0;F=D.z==null?Yt(D.x,D.y,D.level):$t(D.x,D.y,D.z,D.level);const j=[];return E.contentAvailability.forEach(M=>{j.push(C(M,F))}),j}function w(D){let F=0;return F=D.z==null?Yt(D.x,D.y):$t(D.x,D.y,D.z),C(E.childSubtreeAvailability,F)}return{isTileAvailable:x,isContentAvailable:y,isChildSubtreeAvailable:w}}(l,m)}(await a.arrayBuffer(),mi(r));throw new Error(`Unsupported file extension: ${e}`)}function mi(r){const e=r.split("?")[0];return e.substring(0,e.lastIndexOf("/")+1)}function Ei(r){return r=1431655765&((r=858993459&((r=252645135&((r=16711935&((r&=65535)^r<<8))^r<<4))^r<<2))^r<<1)}function Yt(r,e,a){let t=0;return a&&(t=(Math.pow(4,a)-1)/3),t+(Ei(r)|Ei(e)<<1)}function Zt(r){return r=153391689&((r=51130563&((r=50393103&((r=4278190335&((r&=1023)^r<<16))^r<<8))^r<<4))^r<<2)}function $t(r,e,a,t){let i=0;return t&&(i=(Math.pow(8,t)-1)/7),i+(Zt(r)|Zt(e)<<1|Zt(a)<<2)}const Xa=new Map;async function er(r,e){if(!r.root||!r.root.implicitTiling)return r;if(!r.root.content&&!r.root.contents)throw new Error("implicit tiling requires a Template URI");let a=!0;r.root.implicitTiling.subdivisionScheme&&(a=r.root.implicitTiling.subdivisionScheme.toUpperCase()==="QUADTREE");let t="";r.root.implicitTiling.subtrees&&(r.root.implicitTiling.subtrees.uri?t=r.root.implicitTiling.subtrees.uri:r.root.implicitTiling.subtrees.url&&(t=r.root.implicitTiling.subtrees.url));let i=[];r.root.content?r.root.content.uri?i.push(r.root.content.uri):r.root.content.url&&i.push(r.root.content.url):r.root.contents&&r.root.contents.forEach(h=>{h.uri?i.push(h.uri):h.url&&i.push(h.url)});const n=function(h){const l=h.split("?")[0];return l.substring(0,l.lastIndexOf("/")+1)}(e);let o;a&&(o=t.replace("{level}",0).replace("{x}",0).replace("{y}",0)),a||(o=t.replace("{level}",0).replace("{x}",0).replace("{y}",0).replace("{z}",0));const s={level:0,x:0,y:0},c={level:0,x:0,y:0};a||(s.z=0,c.z=0),Xa.set(o,await pi(n+o));const u=Xa.get(o),A=[];u.isContentAvailable(c)&&i.forEach(h=>{let l;a&&(l=h.replace("{level}",s.level).replace("{x}",s.x).replace("{y}",s.y)),a||(l=h.replace("{level}",s.level).replace("{x}",s.x).replace("{y}",s.y).replace("{z}",s.z)),A.push({uri:l})});const d={geometricError:r.root.geometricError,boundingVolume:r.root.boundingVolume,refine:r.root.refine,globalAddress:s,localAddress:c,subtree:u,contents:A,getChildren:async()=>b(d)};return{root:d};async function b(h){const l=[];if(h.localAddress.level==r.root.implicitTiling.availableLevels-1)return l;if((h.localAddress.level+1)%r.root.implicitTiling.subtreeLevels==0){const g=it(h.localAddress),m=it(h.globalAddress),E=Ci(a,r.root.boundingVolume,m);for(let p=0;p<g.length;p++){const C=g[p],I=m[p];h.subtree.isChildSubtreeAvailable(C)&&(a&&t.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y),a||t.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y).replace("{z}",I.z)),Xa.has(o)||Xa.set(o,await pi(n+o));const x=Xa.get(o),y={level:0,x:0,y:0};a||(y.z=0);const w=[];x.isContentAvailable(y)&&i.forEach(F=>{let j;a&&(j=F.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y)),a||(j=F.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y).replace("{z}",I.z)),w.push({uri:j})});const D={geometricError:h.geometricError/2,boundingVolume:E[p],refine:r.root.refine,globalAddress:I,localAddress:y,subtree:x,contents:w,getChildren:async()=>b(D)};l.push(D)}}else{const g=it(h.localAddress),m=it(h.globalAddress),E=Ci(a,r.root.boundingVolume,m);for(let p=0;p<g.length;p++){const C=g[p],I=m[p];if(!h.subtree.isTileAvailable(C))continue;const x=[],y=h.subtree.isContentAvailable(C);for(let D=0;D<i.length;D++){if(!y[D])continue;const F=i[D];let j;a&&(j=F.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y)),a||(j=F.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y).replace("{z}",I.z)),x.push({uri:j})}const w={geometricError:h.geometricError/2,boundingVolume:E[p],refine:r.root.refine,globalAddress:I,localAddress:C,subtree:h.subtree,contents:x,getChildren:async()=>b(w)};l.push(w)}}return l.length>0?l:void 0}}function it(r){const{level:e,x:a,y:t,z:i}=r,n=e+1;let o=[];return o=i===void 0?[{level:n,x:2*a,y:2*t},{level:n,x:2*a+1,y:2*t},{level:n,x:2*a,y:2*t+1},{level:n,x:2*a+1,y:2*t+1}]:[{level:n,x:2*a,y:2*t,z:2*i},{level:n,x:2*a+1,y:2*t,z:2*i},{level:n,x:2*a,y:2*t+1,z:2*i},{level:n,x:2*a+1,y:2*t+1,z:2*i},{level:n,x:2*a,y:2*t,z:2*i+1},{level:n,x:2*a+1,y:2*t,z:2*i+1},{level:n,x:2*a,y:2*t+1,z:2*i+1},{level:n,x:2*a+1,y:2*t+1,z:2*i+1}],o}function Ci(r,e,a){const t=[];for(let i=0;i<a.length;i++)t.push(os(r,e,a[i]));return t}function os(r,e,a){if(e.region)return function(t,i,n){const[o,s,c,u,A,d]=i,b=(c-o)/2**n.level,h=(u-s)/2**n.level,l=t?0:(d-A)/2**n.level,g=o+b*n.x,m=s+h*n.y,E=g+b,p=m+h,C=t?A:A+l*n.z,I=t?d:C+l;return{region:[g,m,E,p,C,I]}}(r,e.region,a);if(e.box)return function(t,i,n){const o=i.slice(0,3),s=[i.slice(3,6),i.slice(6,9),i.slice(9,12)],c=1/Math.pow(2,n.level),u=[c,c,t?1:c],A=s.map((h,l)=>h.map(g=>g*u[l])),d=[o[0]-s[0][0]-s[1][0]-s[2][0],o[1]-s[0][1]-s[1][1]-s[2][1],o[2]-s[0][2]-s[1][2]-s[2][2]];return{box:[d[0]+(2*n.x+1)*(A[0][0]+A[1][0]+A[2][0]),d[1]+(2*n.y+1)*(A[0][1]+A[1][1]+A[2][1]),t?o[2]:d[2]+(2*n.z+1)*(A[0][2]+A[1][2]+A[2][2])].concat(...A)}}(r,e.box,a);throw new Error("Unsupported bounding volume type")}(function(){var r,e=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};function a(c){if(!c)throw new Error("Assertion failed")}function t(c){return new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}function i(c,u,A,d,b){var h=r.exports.sbrk,l=h(u),g=h(d*b),m=new Uint8Array(r.exports.memory.buffer);m.set(t(A),g);var E=c(l,u,g,d,b),p=new Uint8Array(E);return p.set(m.subarray(l,l+E)),h(l-h(0)),p}function n(c){for(var u=0,A=0;A<c.length;++A)var d=c[A];return u}function o(c,u){if(a(u==2||u==4),u==4)return new Uint32Array(c.buffer,c.byteOffset,c.byteLength/4);var A=new Uint16Array(c.buffer,c.byteOffset,c.byteLength/2);return new Uint32Array(A)}function s(c,u,A,d,b,h,l){var g=r.exports.sbrk,m=g(A*d),E=g(A*h),p=new Uint8Array(r.exports.memory.buffer);p.set(t(u),E),c(m,A,d,b,E,l);var C=new Uint8Array(A*d);return C.set(p.subarray(m,m+A*d)),g(m-g(0)),C}WebAssembly.instantiate(function(c){for(var u=new Uint8Array(c.length),A=0;A<c.length;++A){var d=c.charCodeAt(A);u[A]=d>96?d-97:d>64?d-39:d+4}var b=0;for(A=0;A<c.length;++A)u[b++]=u[A]<60?e[u[A]]:64*(u[A]-60)+u[++A];return u.buffer.slice(0,b)}("b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9Giuuueui8AYdilveoveovrrwrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:nlAo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbHK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbOl79IV9RbCDwebcekdKLqN9OYdbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:wjjjb8AdnaiTmbarc;adfadalz:vjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:wjjjb8Aarc;abfarc;adfalz:vjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:wjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:vjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:wjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:wjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:wjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:vjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:wjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:vjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:wjjjbawfhokaoarc;adfalz:vjjjbalfhodnaDTmbaoaraez:vjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:wjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:wjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;u:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:vjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:ojjjbavyd:GehDadci9Ugqcbyd;u:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:wjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;u:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;u:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;q:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;u:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;u:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;u:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:wjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:njjjbkQbabaeadaic;m:jjjbz:njjjbk9DeeuabcFeaicdtz:wjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:wjjjb8AalcuadcitgoadcFFFFe0Ecbyd;u:kjjbHjjjjbbgrBdxalceBd2araeadaicez:tjjjbalcuaoadcjjjjoGEcbyd;u:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:wjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;q:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb"),{}).then(function(c){(r=c.instance).exports.__wasm_call_ctors(),r.exports.meshopt_encodeVertexVersion(0),r.exports.meshopt_encodeIndexVersion(1)})})();var Ii=function(){var r=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),e=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a,t=WebAssembly.validate(r)?n("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;G9Mqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:SPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;7eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbdnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;7eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk:oDllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgkpklbaiakpklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):n("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:W:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:S86qdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz1jjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz1jjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:jjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z1jjjb8AazazcjdfaAcufad2fadz1jjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),i=WebAssembly.instantiate(t,{}).then(function(h){(a=h.instance).exports.__wasm_call_ctors()});function n(h){for(var l=new Uint8Array(h.length),g=0;g<h.length;++g){var m=h.charCodeAt(g);l[g]=m>96?m-97:m>64?m-39:m+4}var E=0;for(g=0;g<h.length;++g)l[E++]=l[g]<60?e[l[g]]:64*(l[g]-60)+l[++g];return l.buffer.slice(0,E)}function o(h,l,g,m,E,p,C){var I=h.exports.sbrk,x=m+3&-4,y=I(x*E),w=I(p.length),D=new Uint8Array(h.exports.memory.buffer);D.set(p,w);var F=l(y,m,E,w,p.length);if(F==0&&C&&C(y,x,E),g.set(D.subarray(y,y+m*E)),I(y-I(0)),F!=0)throw new Error("Malformed buffer data: "+F)}var s={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},c={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},u=[],A=0;function d(h){var l={object:new Worker(h),pending:0,requests:{}};return l.object.onmessage=function(g){var m=g.data;l.pending-=m.count,l.requests[m.id][m.action](m.value),delete l.requests[m.id]},l}function b(h){var l=h.data;if(!l.id)return self.close();self.ready.then(function(g){try{var m=new Uint8Array(l.count*l.size);o(g,g.exports[l.mode],m,l.count,l.size,l.source,g.exports[l.filter]),self.postMessage({id:l.id,count:l.count,action:"resolve",value:m},[m.buffer])}catch(E){self.postMessage({id:l.id,count:l.count,action:"reject",value:E})}})}return{ready:i,supported:!0,useWorkers:function(h){(function(l){for(var g="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(t)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+b.name+";"+o.toString()+b.toString(),m=new Blob([g],{type:"text/javascript"}),E=URL.createObjectURL(m),p=u.length;p<l;++p)u[p]=d(E);for(p=l;p<u.length;++p)u[p].object.postMessage({});u.length=l,URL.revokeObjectURL(E)})(h)},decodeVertexBuffer:function(h,l,g,m,E){o(a,a.exports.meshopt_decodeVertexBuffer,h,l,g,m,a.exports[s[E]])},decodeIndexBuffer:function(h,l,g,m){o(a,a.exports.meshopt_decodeIndexBuffer,h,l,g,m)},decodeIndexSequence:function(h,l,g,m){o(a,a.exports.meshopt_decodeIndexSequence,h,l,g,m)},decodeGltfBuffer:function(h,l,g,m,E,p){o(a,a.exports[c[E]],h,l,g,m,a.exports[s[p]])},decodeGltfBufferAsync:function(h,l,g,m,E){return u.length>0?function(p,C,I,x,y){for(var w=u[0],D=1;D<u.length;++D)u[D].pending<w.pending&&(w=u[D]);return new Promise(function(F,j){var M=new Uint8Array(I),_=++A;w.pending+=p,w.requests[_]={resolve:F,reject:j},w.object.postMessage({id:_,count:p,size:C,source:M,mode:x,filter:y},[M.buffer])})}(h,l,g,c[m],s[E]):i.then(function(){var p=new Uint8Array(h*l);return o(a,a.exports[c[m]],p,h,l,g,a.exports[s[E]]),p})}}}();(function(){var r,e=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a=WebAssembly.instantiate(function(s){for(var c=new Uint8Array(s.length),u=0;u<s.length;++u){var A=s.charCodeAt(u);c[u]=A>96?A-97:A>64?A-39:A+4}var d=0;for(u=0;u<s.length;++u)c[d++]=c[u]<60?e[c[u]]:64*(c[u]-60)+c[++u];return c.buffer.slice(0,d)}("b9H79Tebbbetm9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gvuuuuue999Gvuuuuueu9Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuiOHdilvorlwiDqkbxxbelve9Weiiviebeoweuec:G:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95br8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bwQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bDX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbqa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbkl79IV9RbxDwebcekdzsq;B:xeHdbkM9Hi8Au8A99Au8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ojjjb8AdnabaeSmbabaeadcdtz:njjjb8AkdndnamcdGmbascxfhHcbhOxekasalcrfci4gecbyd:m:jjjbHjjjjbbgABdxasceBd2aAcbaez:ojjjbhCcbhlcbhednadTmbcbhlabheadhAinaCaeydbgXci4fgQaQRbbgQceaXcrGgXtV86bbaQcu7aX4ceGalfhlaeclfheaAcufgAmbkcualcdtalcFFFFi0EhekascCfhHasaecbyd:m:jjjbHjjjjbbgOBdzascdBd2alcd4alfhXcehAinaAgecethAaeaX6mbkcdhzcbhLascuaecdtgAaecFFFFi0Ecbyd:m:jjjbHjjjjbbgXBdCasciBd2aXcFeaAz:ojjjbhKdnadTmbaecufhYcbh8AindndnaKabaLcdtfgEydbgQc:v;t;h;Ev2aYGgXcdtfgCydbgAcuSmbceheinaOaAcdtfydbaQSmdaXaefhAaecefheaKaAaYGgXcdtfgCydbgAcu9hmbkkaOa8AcdtfaQBdbaCa8ABdba8AhAa8Acefh8AkaEaABdbaLcefgLad9hmbkkaKcbyd1:jjjbH:bjjjbbascdBd2kcbh3aHcualcefgecdtaecFFFFi0Ecbyd:m:jjjbHjjjjbbg5Bdbasa5BdlasazceVgeBd2ascxfaecdtfcuadcitadcFFFFe0Ecbyd:m:jjjbHjjjjbbg8EBdbasa8EBdwasazcdfgeBd2asclfabadalcbz:cjjjbascxfaecdtfcualcdtgealcFFFFi0Eg8Fcbyd:m:jjjbHjjjjbbgABdbasazcifgXBd2ascxfaXcdtfa8Fcbyd:m:jjjbHjjjjbbgaBdbasazclVBd2aAaaaialavaOascxfz:djjjbalcbyd:m:jjjbHjjjjbbhCascxfasyd2ghcdtfaCBdbasahcefgXBd2ascxfaXcdtfa8Fcbyd:m:jjjbHjjjjbbgXBdbasahcdfgQBd2ascxfaQcdtfa8Fcbyd:m:jjjbHjjjjbbgQBdbasahcifggBd2aXcFeaez:ojjjbh8JaQcFeaez:ojjjbh8KdnalTmba8Ecwfh8Lindna5a3gQcefg3cdtfydbgKa5aQcdtgefydbgXSmbaKaX9Rhza8EaXcitfhHa8Kaefh8Ma8JaefhEcbhYindndnaHaYcitfydbg8AaQ9hmbaEaQBdba8MaQBdbxekdna5a8Acdtg8NfgeclfydbgXaeydbgeSmba8EaecitgKfydbaQSmeaXae9Rhyaecu7aXfhLa8LaKfhXcbheinaLaeSmeaecefheaXydbhKaXcwfhXaKaQ9hmbkaeay6meka8Ka8NfgeaQa8AaeydbcuSEBdbaEa8AaQaEydbcuSEBdbkaYcefgYaz9hmbkka3al9hmbkaAhXaahQa8KhKa8JhYcbheindndnaeaXydbg8A9hmbdnaeaQydbg8A9hmbaYydbh8AdnaKydbgLcu9hmba8Acu9hmbaCaefcb86bbxikaCaefhEdnaeaLSmbaea8ASmbaEce86bbxikaEcl86bbxdkdnaeaaa8AcdtgLfydb9hmbdnaKydbgEcuSmbaeaESmbaYydbgzcuSmbaeazSmba8KaLfydbgHcuSmbaHa8ASmba8JaLfydbgLcuSmbaLa8ASmbdnaAaEcdtfydbg8AaAaLcdtfydb9hmba8AaAazcdtfydbgLSmbaLaAaHcdtfydb9hmbaCaefcd86bbxlkaCaefcl86bbxikaCaefcl86bbxdkaCaefcl86bbxekaCaefaCa8AfRbb86bbkaXclfhXaQclfhQaKclfhKaYclfhYalaecefge9hmbkdnaqTmbdndnaOTmbaOheaAhXalhQindnaqaeydbfRbbTmbaCaXydbfcl86bbkaeclfheaXclfhXaQcufgQmbxdkkaAhealhXindnaqRbbTmbaCaeydbfcl86bbkaqcefhqaeclfheaXcufgXmbkkaAhealhQaChXindnaCaeydbfRbbcl9hmbaXcl86bbkaeclfheaXcefhXaQcufgQmbkkamceGTmbaChealhXindnaeRbbce9hmbaecl86bbkaecefheaXcufgXmbkkascxfagcdtfcualcx2alc;v:Q;v:Qe0Ecbyd:m:jjjbHjjjjbbg3BdbasahclfgHBd2a3aialavaOz:ejjjbh8PdndnaDmbcbhgcbh8Lxekcbh8LawhecbhXindnaeIdbJbbbb9ETmbasc;Wbfa8LcdtfaXBdba8Lcefh8LkaeclfheaDaXcefgX9hmbkascxfaHcdtfcua8Lal2gecdtaecFFFFi0Ecbyd:m:jjjbHjjjjbbggBdbasahcvfgHBd2alTmba8LTmbarcd4hEdnaOTmba8Lcdthzcbh8AaghLinaoaOa8AcdtfydbaE2cdtfhYasc;WbfheaLhXa8LhQinaXaYaeydbcdtgKfIdbawaKfIdbNUdbaeclfheaXclfhXaQcufgQmbkaLazfhLa8Acefg8Aal9hmbxdkka8Lcdthzcbh8AaghLinaoa8AaE2cdtfhYasc;WbfheaLhXa8LhQinaXaYaeydbcdtgKfIdbawaKfIdbNUdbaeclfheaXclfhXaQcufgQmbkaLazfhLa8Acefg8Aal9hmbkkascxfaHcdtfcualc8S2gealc;D;O;f8U0EgQcbyd:m:jjjbHjjjjbbgXBdbasaHcefgKBd2aXcbaez:ojjjbhqdndndna8LTmbascxfaKcdtfaQcbyd:m:jjjbHjjjjbbgvBdbasaHcdfgXBd2avcbaez:ojjjb8AascxfaXcdtfcua8Lal2gecltgXaecFFFFb0Ecbyd:m:jjjbHjjjjbbgiBdbasaHcifBd2aicbaXz:ojjjb8AadmexdkcbhvcbhiadTmekcbhYabhXindna3aXclfydbg8Acx2fgeIdba3aXydbgLcx2fgQIdbgI:tg8Ra3aXcwfydbgEcx2fgKIdlaQIdlg8S:tgRNaKIdbaI:tg8UaeIdla8S:tg8VN:tg8Wa8WNa8VaKIdwaQIdwg8X:tg8YNaRaeIdwa8X:tg8VN:tgRaRNa8Va8UNa8Ya8RN:tg8Ra8RNMM:rg8UJbbbb9ETmba8Wa8U:vh8Wa8Ra8U:vh8RaRa8U:vhRkaqaAaLcdtfydbc8S2fgeaRa8U:rg8UaRNNg8VaeIdbMUdbaea8Ra8Ua8RNg8ZNg8YaeIdlMUdlaea8Wa8Ua8WNg80Ng81aeIdwMUdwaea8ZaRNg8ZaeIdxMUdxaea80aRNgBaeIdzMUdzaea80a8RNg80aeIdCMUdCaeaRa8Ua8Wa8XNaRaINa8Sa8RNMM:mg8SNgINgRaeIdKMUdKaea8RaINg8RaeId3MUd3aea8WaINg8WaeIdaMUdaaeaIa8SNgIaeId8KMUd8Kaea8UaeIdyMUdyaqaAa8Acdtfydbc8S2fgea8VaeIdbMUdbaea8YaeIdlMUdlaea81aeIdwMUdwaea8ZaeIdxMUdxaeaBaeIdzMUdzaea80aeIdCMUdCaeaRaeIdKMUdKaea8RaeId3MUd3aea8WaeIdaMUdaaeaIaeId8KMUd8Kaea8UaeIdyMUdyaqaAaEcdtfydbc8S2fgea8VaeIdbMUdbaea8YaeIdlMUdlaea81aeIdwMUdwaea8ZaeIdxMUdxaeaBaeIdzMUdzaea80aeIdCMUdCaeaRaeIdKMUdKaea8RaeId3MUd3aea8WaeIdaMUdaaeaIaeId8KMUd8Kaea8UaeIdyMUdyaXcxfhXaYcifgYad6mbkcbhzabhLinabazcdtfh8AcbhXinaCa8AaXc;a1jjbfydbcdtfydbgQfRbbhedndnaCaLaXfydbgKfRbbgYc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaYcufcFeGce0mba8JaKcdtfydbaQ9hmekdnaecufcFeGce0mba8KaQcdtfydbaK9hmekdnaYcv2aefc:G1jjbfRbbTmbaAaQcdtfydbaAaKcdtfydb0mekJbbacJbbacJbbjZaecFeGceSEaYceSEh80dna3a8AaXc;e1jjbfydbcdtfydbcx2fgeIdwa3aKcx2fgYIdwg8S:tg8Wa3aQcx2fgEIdwa8S:tgRaRNaEIdbaYIdbg8X:tg8Ra8RNaEIdlaYIdlg8V:tg8Ua8UNMMgINa8WaRNaeIdba8X:tg81a8RNa8UaeIdla8V:tg8ZNMMg8YaRN:tg8Wa8WNa81aINa8Ya8RN:tgRaRNa8ZaINa8Ya8UN:tg8Ra8RNMM:rg8UJbbbb9ETmba8Wa8U:vh8Wa8Ra8U:vh8RaRa8U:vhRkaqaAaKcdtfydbc8S2fgeaRa80aI:rNg8UaRNNg8YaeIdbMUdbaea8Ra8Ua8RNg80Ng81aeIdlMUdlaea8Wa8Ua8WNgINg8ZaeIdwMUdwaea80aRNg80aeIdxMUdxaeaIaRNgBaeIdzMUdzaeaIa8RNg83aeIdCMUdCaeaRa8Ua8Wa8SNaRa8XNa8Va8RNMM:mg8SNgINgRaeIdKMUdKaea8RaINg8RaeId3MUd3aea8WaINg8WaeIdaMUdaaeaIa8SNgIaeId8KMUd8Kaea8UaeIdyMUdyaqaAaQcdtfydbc8S2fgea8YaeIdbMUdbaea81aeIdlMUdlaea8ZaeIdwMUdwaea80aeIdxMUdxaeaBaeIdzMUdzaea83aeIdCMUdCaeaRaeIdKMUdKaea8RaeId3MUd3aea8WaeIdaMUdaaeaIaeId8KMUd8Kaea8UaeIdyMUdykaXclfgXcx9hmbkaLcxfhLazcifgzad6mbka8LTmbcbhLinJbbbbh8Xa3abaLcdtfgeclfydbgEcx2fgXIdwa3aeydbgzcx2fgQIdwg8Z:tg8Ra8RNaXIdbaQIdbgB:tg8Wa8WNaXIdlaQIdlg83:tg8Ua8UNMMg80a3aecwfydbgHcx2fgeIdwa8Z:tgINa8Ra8RaINa8WaeIdbaB:tg8SNa8UaeIdla83:tg8VNMMgRN:tJbbbbJbbjZa80aIaINa8Sa8SNa8Va8VNMMg81NaRaRN:tg8Y:va8YJbbbb9BEg8YNhUa81a8RNaIaRN:ta8YNh85a80a8VNa8UaRN:ta8YNh86a81a8UNa8VaRN:ta8YNh87a80a8SNa8WaRN:ta8YNh88a81a8WNa8SaRN:ta8YNh89a8Wa8VNa8Sa8UN:tgRaRNa8UaINa8Va8RN:tgRaRNa8Ra8SNaIa8WN:tgRaRNMM:rJbbbZNhRagaza8L2gwcdtfhXagaHa8L2g8NcdtfhQagaEa8L2g5cdtfhKa8Z:mh8:a83:mhZaB:mhncbhYa8Lh8AJbbbbh8VJbbbbh8YJbbbbh80Jbbbbh81Jbbbbh8ZJbbbbhBJbbbbh83JbbbbhcJbbbbh9cinasc;WbfaYfgecwfaRa85aKIdbaXIdbgI:tg8UNaUaQIdbaI:tg8SNMg8RNUdbaeclfaRa87a8UNa86a8SNMg8WNUdbaeaRa89a8UNa88a8SNMg8UNUdbaecxfaRa8:a8RNaZa8WNaIana8UNMMMgINUdbaRa8Ra8WNNa81Mh81aRa8Ra8UNNa8ZMh8ZaRa8Wa8UNNaBMhBaRaIaINNa8XMh8XaRa8RaINNa8VMh8VaRa8WaINNa8YMh8YaRa8UaINNa80Mh80aRa8Ra8RNNa83Mh83aRa8Wa8WNNacMhcaRa8Ua8UNNa9cMh9caXclfhXaKclfhKaQclfhQaYczfhYa8Acufg8Ambkavazc8S2fgea9caeIdbMUdbaeacaeIdlMUdlaea83aeIdwMUdwaeaBaeIdxMUdxaea8ZaeIdzMUdzaea81aeIdCMUdCaea80aeIdKMUdKaea8YaeId3MUd3aea8VaeIdaMUdaaea8XaeId8KMUd8KaeaRaeIdyMUdyavaEc8S2fgea9caeIdbMUdbaeacaeIdlMUdlaea83aeIdwMUdwaeaBaeIdxMUdxaea8ZaeIdzMUdzaea81aeIdCMUdCaea80aeIdKMUdKaea8YaeId3MUd3aea8VaeIdaMUdaaea8XaeId8KMUd8KaeaRaeIdyMUdyavaHc8S2fgea9caeIdbMUdbaeacaeIdlMUdlaea83aeIdwMUdwaeaBaeIdxMUdxaea8ZaeIdzMUdzaea81aeIdCMUdCaea80aeIdKMUdKaea8YaeId3MUd3aea8VaeIdaMUdaaea8XaeId8KMUd8KaeaRaeIdyMUdyaiawcltfh8AcbhXa8LhKina8AaXfgeasc;WbfaXfgQIdbaeIdbMUdbaeclfgYaQclfIdbaYIdbMUdbaecwfgYaQcwfIdbaYIdbMUdbaecxfgeaQcxfIdbaeIdbMUdbaXczfhXaKcufgKmbkaia5cltfh8AcbhXa8LhKina8AaXfgeasc;WbfaXfgQIdbaeIdbMUdbaeclfgYaQclfIdbaYIdbMUdbaecwfgYaQcwfIdbaYIdbMUdbaecxfgeaQcxfIdbaeIdbMUdbaXczfhXaKcufgKmbkaia8Ncltfh8AcbhXa8LhKina8AaXfgeasc;WbfaXfgQIdbaeIdbMUdbaeclfgYaQclfIdbaYIdbMUdbaecwfgYaQcwfIdbaYIdbMUdbaecxfgeaQcxfIdbaeIdbMUdbaXczfhXaKcufgKmbkaLcifgLad6mbkkcbhQdndnamcwGgJmbJbbbbh8Vcbh9ecbhocbhhxekcbh9ea8Fcbyd:m:jjjbHjjjjbbhhascxfasyd2gecdtfahBdbasaecefgXBd2ascxfaXcdtfcuahalabadaAz:fjjjbgKcltaKcjjjjiGEcbyd:m:jjjbHjjjjbbgoBdbasaecdfBd2aoaKaha3alz:gjjjbJFFuuh8VaKTmbaoheaKhXinaeIdbgRa8Va8VaR9EEh8VaeclfheaXcufgXmbkaKh9ekasydlhTdnalTmbaTclfheaTydbhKaChXalhYcbhQincbaeydbg8AaK9RaXRbbcpeGEaQfhQaXcefhXaeclfhea8AhKaYcufgYmbkaQce4hQkcuadaQ9RcifgScx2aSc;v:Q;v:Qe0Ecbyd:m:jjjbHjjjjbbhDascxfasyd2g9hcdtfaDBdbasa9hcefgeBd2ascxfaecdtfcuaScdtaScFFFFi0Ecbyd:m:jjjbHjjjjbbgrBdbasa9hcdfgeBd2ascxfaecdtfa8Fcbyd:m:jjjbHjjjjbbgyBdbasa9hcifgeBd2ascxfaecdtfalcbyd:m:jjjbHjjjjbbg9iBdbasa9hclfg6Bd2axaxNa8PJbbjZamclGEgUaUN:vh9cJbbbbhcdnadak9nmbdnaSci6mba8Lclth9kaDcwfh0Jbbbbh83JbbbbhcinasclfabadalaAz:cjjjbabhzcbh8Ecbh8Finaba8FcdtfhHcbheindnaAazaefydbgQcdtgEfydbgYaAaHaec;q1jjbfydbcdtfydbgXcdtgwfydbg8ASmbaCaXfRbbgLcv2aCaQfRbbgKfc;G1jjbfRbbg5aKcv2aLfg8Nc;G1jjbfRbbg8MVcFeGTmbdna8AaY9nmba8Nc:G1jjbfRbbcFeGmekaKcufhYdnaKaL9hmbaYcFeGce0mba8JaEfydbaX9hmekdndnaKclSmbaLcl9hmekdnaYcFeGce0mba8JaEfydbaX9hmdkaLcufcFeGce0mba8KawfydbaQ9hmekaDa8Ecx2fgKaXaQa8McFeGgYEBdlaKaQaXaYEBdbaKaYa5Gcb9hBdwa8Ecefh8Ekaeclfgecx9hmbkdna8Fcifg8Fad9pmbazcxfhza8EcifaS9nmekka8ETmdcbhLinaqaAaDaLcx2fgKydbgYcdtgzfydbc8S2fgeIdwa3aKydlg8Acx2fgXIdwg8WNaeIdzaXIdbg8UNaeIdaMgRaRMMa8WNaeIdlaXIdlgINaeIdCa8WNaeId3MgRaRMMaINaeIdba8UNaeIdxaINaeIdKMgRaRMMa8UNaeId8KMMM:lhRJbbbbJbbjZaeIdyg8R:va8RJbbbb9BEh8RdndnaKydwgEmbJFFuuh8YxekJbbbbJbbjZaqaAa8Acdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwa3aYcx2fgXIdwg8SNaeIdzaXIdbg8XNaeIdaMg8Ya8YMMa8SNaeIdlaXIdlg8YNaeIdCa8SNaeId3Mg8Sa8SMMa8YNaeIdba8XNaeIdxa8YNaeIdKMg8Sa8SMMa8XNaeId8KMMM:lNh8Yka8RaRNh80dna8LTmbavaYc8S2fgQIdwa8WNaQIdza8UNaQIdaMgRaRMMa8WNaQIdlaINaQIdCa8WNaQId3MgRaRMMaINaQIdba8UNaQIdxaINaQIdKMgRaRMMa8UNaQId8KMMMhRaga8Aa8L2gHcdtfhXaiaYa8L2gwcltfheaQIdyh8Sa8LhQinaXIdbg8Ra8Ra8SNaecxfIdba8WaecwfIdbNa8UaeIdbNaIaeclfIdbNMMMg8Ra8RM:tNaRMhRaXclfhXaeczfheaQcufgQmbkdndnaEmbJbbbbh8Rxekava8Ac8S2fgQIdwa3aYcx2fgeIdwg8UNaQIdzaeIdbgINaQIdaMg8Ra8RMMa8UNaQIdlaeIdlg8SNaQIdCa8UNaQId3Mg8Ra8RMMa8SNaQIdbaINaQIdxa8SNaQIdKMg8Ra8RMMaINaQId8KMMMh8RagawcdtfhXaiaHcltfheaQIdyh8Xa8LhQinaXIdbg8Wa8Wa8XNaecxfIdba8UaecwfIdbNaIaeIdbNa8SaeclfIdbNMMMg8Wa8WM:tNa8RMh8RaXclfhXaeczfheaQcufgQmbka8R:lh8Rka80aR:lMh80a8Ya8RMh8YaCaYfRbbcd9hmbdna8Ka8Ja8Jazfydba8ASEaaazfydbgHcdtfydbgzcu9hmbaaa8AcdtfydbhzkavaHc8S2fgQIdwa3azcx2fgeIdwg8WNaQIdzaeIdbg8UNaQIdaMgRaRMMa8WNaQIdlaeIdlgINaQIdCa8WNaQId3MgRaRMMaINaQIdba8UNaQIdxaINaQIdKMgRaRMMa8UNaQId8KMMMhRagaza8L2gwcdtfhXaiaHa8L2g8NcltfheaQIdyh8Sa8LhQinaXIdbg8Ra8Ra8SNaecxfIdba8WaecwfIdbNa8UaeIdbNaIaeclfIdbNMMMg8Ra8RM:tNaRMhRaXclfhXaeczfheaQcufgQmbkdndnaEmbJbbbbh8Rxekavazc8S2fgQIdwa3aHcx2fgeIdwg8UNaQIdzaeIdbgINaQIdaMg8Ra8RMMa8UNaQIdlaeIdlg8SNaQIdCa8UNaQId3Mg8Ra8RMMa8SNaQIdbaINaQIdxa8SNaQIdKMg8Ra8RMMaINaQId8KMMMh8Raga8NcdtfhXaiawcltfheaQIdyh8Xa8LhQinaXIdbg8Wa8Wa8XNaecxfIdba8UaecwfIdbNaIaeIdbNa8SaeclfIdbNMMMg8Wa8WM:tNa8RMh8RaXclfhXaeczfheaQcufgQmbka8R:lh8Rka80aR:lMh80a8Ya8RMh8YkaKa80a8Ya80a8Y9FgeEUdwaKa8AaYaeaETVgeEBdlaKaYa8AaeEBdbaLcefgLa8E9hmbkasc;Wbfcbcj;qbz:ojjjb8Aa0hea8EhXinasc;WbfaeydbcA4cF8FGgQcFAaQcFA6EcdtfgQaQydbcefBdbaecxfheaXcufgXmbkcbhecbhXinasc;WbfaefgQydbhKaQaXBdbaKaXfhXaeclfgecj;qb9hmbkcbhea0hXinasc;WbfaXydbcA4cF8FGgQcFAaQcFA6EcdtfgQaQydbgQcefBdbaraQcdtfaeBdbaXcxfhXa8Eaecefge9hmbkadak9RgQci9Uh9mdnalTmbcbheayhXinaXaeBdbaXclfhXalaecefge9hmbkkcbh9na9icbalz:ojjjbh8FaQcO9Uh9oa9mce4h9pasydwh9qcbh8Mcbh5dninaDara5cdtfydbcx2fg8NIdwgRa9c9Emea8Ma9m9pmeJFFuuh8Rdna9pa8E9pmbaDara9pcdtfydbcx2fIdwJbb;aZNh8RkdnaRa8R9ETmbaRac9ETmba8Ma9o0mdkdna8FaAa8NydlgHcdtg9rfydbgKfg9sRbba8FaAa8Nydbgzcdtg9tfydbgefg9uRbbVmbaCazfRbbh9vdnaTaecdtfgXclfydbgQaXydbgXSmbaQaX9RhYa3aKcx2fhLa3aecx2fhEa9qaXcitfhecbhXcehwdnindnayaeydbcdtfydbgQaKSmbayaeclfydbcdtfydbg8AaKSmbaQa8ASmba3a8Acx2fg8AIdba3aQcx2fgQIdbg8W:tgRaEIdlaQIdlg8U:tg8XNaEIdba8W:tg8Ya8AIdla8U:tg8RN:tgIaRaLIdla8U:tg80NaLIdba8W:tg81a8RN:tg8UNa8RaEIdwaQIdwg8S:tg8ZNa8Xa8AIdwa8S:tg8WN:tg8Xa8RaLIdwa8S:tgBNa80a8WN:tg8RNa8Wa8YNa8ZaRN:tg8Sa8Wa81NaBaRN:tgRNMMaIaINa8Xa8XNa8Sa8SNMMa8Ua8UNa8Ra8RNaRaRNMMN:rJbbj8:N9FmdkaecwfheaXcefgXaY6hwaYaX9hmbkkawceGTmba9pcefh9pxekdndndndna9vc9:fPdebdkazheinayaecdtgefaHBdbaaaefydbgeaz9hmbxikkdna8Ka8Ja8Ja9tfydbaHSEaaa9tfydbgzcdtfydbgecu9hmbaaa9rfydbhekaya9tfaHBdbaehHkayazcdtfaHBdbka9uce86bba9sce86bba8NIdwgRacacaR9DEhca9ncefh9ncecda9vceSEa8Mfh8Mka5cefg5a8E9hmbkka9nTmddnalTmbcbh8AcbhEindnayaEcdtgefydbgQaESmbaAaQcdtfydbhzdnaEaAaefydb9hgHmbaqazc8S2fgeaqaEc8S2fgXIdbaeIdbMUdbaeaXIdlaeIdlMUdlaeaXIdwaeIdwMUdwaeaXIdxaeIdxMUdxaeaXIdzaeIdzMUdzaeaXIdCaeIdCMUdCaeaXIdKaeIdKMUdKaeaXId3aeId3MUd3aeaXIdaaeIdaMUdaaeaXId8KaeId8KMUd8KaeaXIdyaeIdyMUdyka8LTmbavaQc8S2fgeavaEc8S2gwfgXIdbaeIdbMUdbaeaXIdlaeIdlMUdlaeaXIdwaeIdwMUdwaeaXIdxaeIdxMUdxaeaXIdzaeIdzMUdzaeaXIdCaeIdCMUdCaeaXIdKaeIdKMUdKaeaXId3aeId3MUd3aeaXIdaaeIdaMUdaaeaXId8KaeId8KMUd8KaeaXIdyaeIdyMUdya9kaQ2hLaihXa8LhKinaXaLfgeaXa8AfgQIdbaeIdbMUdbaeclfgYaQclfIdbaYIdbMUdbaecwfgYaQcwfIdbaYIdbMUdbaecxfgeaQcxfIdbaeIdbMUdbaXczfhXaKcufgKmbkaHmbJbbbbJbbjZaqawfgeIdygR:vaRJbbbb9BEaeIdwa3azcx2fgXIdwgRNaeIdzaXIdbg8RNaeIdaMg8Wa8WMMaRNaeIdlaXIdlg8WNaeIdCaRNaeId3MgRaRMMa8WNaeIdba8RNaeIdxa8WNaeIdKMgRaRMMa8RNaeId8KMMM:lNgRa83a83aR9DEh83ka8Aa9kfh8AaEcefgEal9hmbkcbhXa8JheindnaeydbgQcuSmbdnaXayaQcdtgKfydbgQ9hmbcuhQa8JaKfydbgKcuSmbayaKcdtfydbhQkaeaQBdbkaeclfhealaXcefgX9hmbkcbhXa8KheindnaeydbgQcuSmbdnaXayaQcdtgKfydbgQ9hmbcuhQa8KaKfydbgKcuSmbayaKcdtfydbhQkaeaQBdbkaeclfhealaXcefgX9hmbkka83aca8LEh83cbhKabhecbhYindnayaeydbcdtfydbgXayaeclfydbcdtfydbgQSmbaXayaecwfydbcdtfydbg8ASmbaQa8ASmbabaKcdtfgLaXBdbaLcwfa8ABdbaLclfaQBdbaKcifhKkaecxfheaYcifgYad6mbkdndnaJTmbaKak9nmba8Va839FTmbcbhdabhecbhXindnaoahaeydbgQcdtfydbcdtfIdba839ETmbabadcdtfgYaQBdbaYclfaeclfydbBdbaYcwfaecwfydbBdbadcifhdkaecxfheaXcifgXaK6mbkJFFuuh8Va9eTmeaohea9ehXJFFuuhRinaeIdbg8RaRaRa8R9EEg8WaRa8Ra839EgQEhRa8Wa8VaQEh8VaeclfheaXcufgXmbxdkkaKhdkadak0mbxdkkasclfabadalaAz:cjjjbkdndnadak0mbadhXxekdnaJmbadhXxekdna8Va9c9FmbadhXxekina8VJbb;aZNgRa9caRa9c9DEh8WJbbbbhRdna9eTmbaohea9ehAinaeIdbg8RaRa8Ra8W9FEaRa8RaR9EEhRaeclfheaAcufgAmbkkcbhXabhecbhAindnaoahaeydbgQcdtfydbcdtfIdba8W9ETmbabaXcdtfgKaQBdbaKclfaeclfydbBdbaKcwfaecwfydbBdbaXcifhXkaecxfheaAcifgAad6mbkJFFuuh8Vdna9eTmbaohea9ehAJFFuuh8RinaeIdbg8Ua8Ra8Ra8U9EEgIa8Ra8Ua8W9EgQEh8RaIa8VaQEh8VaeclfheaAcufgAmbkkdnaXad9hmbadhXxdkaRacacaR9DEhcaXak9nmeaXhda8Va9c9FmbkkdnamcjjjjlGTmbaOmbaXTmbcbh8AabheinaCaeydbgKfRbbc3thLaecwfgEydbhAdndna8JaKcdtgHfydbaeclfgzydbgQSmbcbhYa8KaQcdtfydbaK9hmekcjjjj94hYkaeaLaYVaKVBdbaCaQfRbbc3thLdndna8JaQcdtfydbaASmbcbhYa8KaAcdtfydbaQ9hmekcjjjj94hYkazaLaYVaQVBdbaCaAfRbbc3thYdndna8JaAcdtfydbaKSmbcbhQa8KaHfydbaA9hmekcjjjj94hQkaEaYaQVaAVBdbaecxfhea8Acifg8AaX6mbkkdnaOTmbaXTmbaXheinabaOabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPaUac:rNUdbka9hcdtascxffcxfhednina6Tmeaeydbcbyd1:jjjbH:bjjjbbaec98fhea6cufh6xbkkasc;W;qbf8KjjjjbaXk;Yieouabydlhvabydbclfcbaicdtz:ojjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd:m:jjjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:ojjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd1:jjjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkawclfhwabclfhbaiaDcefgD9hmbkkk;Qodvuv998Jjjjjbca9Rgvczfcwfcbyd11jjbBdbavcb8Pdj1jjb83izavcwfcbydN1jjbBdbavcb8Pd:m1jjb83ibdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavczfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdbavIdzgk:tgqaqJbbbb9DEgqavIdlavIdCgx:tgmamaq9DEgqavIdwavIdKgm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk:ZlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvc;a1jjbfydbcdtfydbcdtfydbhodnabalawavfydbcdtfydbgqcdtfgkydbgvaqSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnabaocdtfgkydbgvaoSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnabavfgDydbgvaxSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhvabhocbhkindndnavalydbgq9hmbdnavaoydbgq9hmbaoakBdbakcefhkxdkaoabaqcdtfydbBdbxekaoabaqcdtfydbBdbkaoclfhoalclfhlaeavcefgv9hmbkakk;Jiilud99duabcbaecltz:ojjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakclfgxaqaxIdbMUdbakcwfgxaDaxIdbMUdbakcxfgkakIdbJbbjZMUdbaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhraehkinarcxfgoIdbhDaocbBdbararIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbarclfgoaDaoIdbNUdbarcwfgoaDaoIdbNUdbarczfhrakcufgkmbkkdnalTmbinavadydbcltfgrcxfgkaicwfIdbarcwfIdb:tgDaDNaiIdbarIdb:tgDaDNaiclfIdbarclfIdb:tgDaDNMMgDakIdbgqaqaD9DEUdbadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhrinabarIdbUdbarczfhrabclfhbaecufgembkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:DCoDud99rue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ojjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd:m:jjjbHjjjjbbgqBdxawceBd2aqaeadaicbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd:m:jjjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd:m:jjjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ojjjbh3cbh5cbhPindna3axaPcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5aPcefgPad9hmbxdkkazcFeasz:ojjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa5:ZghaH:tNNNaOaH:taaNa8Aah:tNa8AaH:ta8FNahaO:tNM:va8EMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd:m:jjjbHjjjjbbg5BdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ojjjbh3cbhDcbhYindndndna3axaYcdtgKfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbcehiinaxaecdtgefydbaCSmdamaifheaicefhia3aeaAGgmcdtfgEydbgecu9hmbkkaEaYBdbaDhiaDcefhDxeka5aefydbhika5aKfaiBdbaYcefgYad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ojjjb8AcbhDcbhekawaecbyd:m:jjjbHjjjjbbgeBd3awcvBd2aecbaiz:ojjjbhEavcd4hKdnadTmbdnalTmbaKcdth3a5hCaqhealhmadhAinaEaCydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaecxfheama3fhmaAcufgAmbxdkka5hmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd:m:jjjbHjjjjbbgeBdaawcoBd2awaicbyd:m:jjjbHjjjjbbg3Bd8KaecFeaYz:ojjjbhxdnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8AaKcdthPalheina8Aaec;81jjbalEgmIdwaEa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndnaxaAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka5clfh5aqcxfhqaeaPfheadaCcefgC9hmbkkabaxaYz:njjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd1:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Ydidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:ojjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:GNbb"),{}).then(function(s){(r=s.instance).exports.__wasm_call_ctors()});function t(s){if(!s)throw new Error("Assertion failed")}function i(s){return new Uint8Array(s.buffer,s.byteOffset,s.byteLength)}function n(s,c,u,A,d,b,h,l){var g=r.exports.sbrk,m=g(4*l),E=g(u*A),p=g(u*b),C=new Uint8Array(r.exports.memory.buffer);C.set(i(c),E),d&&C.set(i(d),p);var I=s(m,E,u,A,p,b,h,l);new Uint8Array(r.exports.memory.buffer);var x=new Uint32Array(I);return i(x).set(C.subarray(m,m+4*I)),g(m-g(0)),x}var o={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,_InternalDebug:1<<30}})(),function(){var r,e=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a=WebAssembly.instantiate(function(o){for(var s=new Uint8Array(o.length),c=0;c<o.length;++c){var u=o.charCodeAt(c);s[c]=u>96?u-97:u>64?u-39:u+4}var A=0;for(c=0;c<o.length;++c)s[A++]=s[c]<60?e[s[c]]:64*(s[c]-60)+s[++c];return s.buffer.slice(0,A)}("b9H79TebbbeVx9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gvuuuuueu9Gwuuuuuuuub9Gxuuuuuuuuuuuueu9Gkuuuuuuuuuu99eu9Gouuuuuub9Gruuuuuuub9GluuuubiOHdilvorwDqqkbiibeilve9Weiiviebeoweuec;G:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;Q9BHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:w8KDPue99eux99dui99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:njjjb8Adndnalcb9imbaoal9nmbamcuaocdtaocFFFFi0Egscbyd;y1jjbHjjjjbbgzBd:CwamceBd;8wamascbyd;y1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;y1jjbHjjjjbbgOBd:KwamciBd;8waihsalhAinazasydbcdtfcbBdbasclfhsaAcufgAmbkaihsalhAinazasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkaihsalhCcbhXindnazasydbcdtgQfgAydbcb9imbaHaQfaXBdbaAaAydbgQcjjjj94VBdbaQaXfhXkasclfhsaCcufgCmbkalci9UhLdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhXaHaAydbcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaXcdtfgXaXydbgXcefBdbaOaXcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaihsalhAindnazasydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaHaCfgCaCydbaQ9RBdbkasclfhsaAcufgAmbxdkkamcuaocdtgsaocFFFFi0EgAcbyd;y1jjbHjjjjbbgzBd:CwamceBd;8wamaAcbyd;y1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;y1jjbHjjjjbbgOBd:KwamciBd;8wazcbasz:njjjbhXalci9UhLaihsalhAinaXasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkdnaoTmbcbhsaHhAaXhCaohQinaAasBdbaAclfhAaCydbasfhsaCclfhCaQcufgQmbkkdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhQaHaAydbcdtfgKaKydbgKcefBdbaOaKcdtfasBdbaHaQcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaoTmbcbhsaohAinaHasfgCaCydbaXasfydb9RBdbasclfhsaAcufgAmbkkamaLcbyd;y1jjbHjjjjbbgsBd:OwamclBd;8wascbaLz:njjjbhYamcuaLcK2alcjjjjd0Ecbyd;y1jjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihAa8AhsaLhrJbbbbh5inavaAclfydbaK2cdtfgCIdlh8EavaAydbaK2cdtfgXIdlhEavaAcwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgasaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbasclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyascxfa8EaE:tg8Eagah:tggNa8FaE:tg8Faaah:tgaN:tgEJbbbbJbbjZa8Ja8K:tg8Ja8FNa8La8K:tg8Ka8EN:tghahNaEaENaaa8KNaga8JN:tgEaENMM:rg8K:va8KJbbbb9BEg8ENUdbasczfaEa8ENUdbascCfaha8ENUdbascwfa8Maya8NMMJbbnn:vUdba5a8KMh5aAcxfhAascKfhsarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;y1jjbHjjjjbbgCBd:WwamcoBd;8waEaq:ZNhEdna3mbcbhsaChAinaAasBdbaAclfhAaLascefgs9hmbkkaE:rhhcuh8PamcuaLcltalcFFFFd0Ecbyd;y1jjbHjjjjbbgIBd:0wamcrBd;8wcbaIa8AaCaLz:djjjb8AJFFuuhyJFFuuh8RJFFuuh8Sdnalci6gXmbJFFuuh8Sa8AhsaLhAJFFuuh8RJFFuuhyinascwfIdbgEayayaE9EEhyasclfIdbgEa8Ra8RaE9EEh8RasIdbgEa8Sa8SaE9EEh8SascKfhsaAcufgAmbkkahJbbbZNhgamaocetgscuaocu9kEcbyd;y1jjbHjjjjbbgABd:4waAcFeasz:njjjbhCdnaXmbcbhAJFFuuhEa8Ahscuh8PinascwfIdbay:tghahNasIdba8S:tghahNasclfIdba8R:tghahNMM:rghaEa8PcuSahaE9DVgXEhEaAa8PaXEh8PascKfhsaLaAcefgA9hmbkkamczfcbcjwz:njjjb8Aamcwf9cb83ibam9cb83ibagaxNhRJbbjZak:th8Ncbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80cbh81cbhPinJbbbbhEdna8UTmbJbbjZa8U:Z:vhEkJbbbbhhdna80a80Na8Ya8YNa8Za8ZNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8XaENh5a8WaENh8Fa8VaENhaa8PhQdndndndndna8UaPVTmbamydwgBTmea80ahNh8Ja8ZahNh8La8YahNh8Maeamydbcdtfh83cbh3JFFuuhEcvhXcuhQindnaza83a3cdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAindndnaCaiaAydbgKcx2fgsclfydbgrcetf8Vebcs4aCasydbgLcetf8Vebcs4faCascwfydbglcetf8Vebcs4fgombcbhsxekcehsazaLcdtfydbgLceSmbcehsazarcdtfydbgrceSmbcehsazalcdtfydbglceSmbdnarcdSaLcdSfalcdSfcd6mbaocefhsxekaocdfhskdnasaX9kmba8AaKcK2fgLIdwa5:thhaLIdla8F:th8KaLIdbaa:th8EdndnakJbbbb9DTmba8E:lg8Ea8K:lg8Ka8Ea8K9EEg8Kah:lgha8Kah9EEag:vJbbjZMhhxekahahNa8Ea8ENa8Ka8KNMM:rag:va8NNJbbjZMJ9VO:d86JbbjZaLIdCa8JNaLIdxa8MNa8LaLIdzNMMakN:tghahJ9VO:d869DENhhkaKaQasaX6ahaE9DVgLEhQasaXaLEhXahaEaLEhEkaAclfhAavcufgvmbkka3cefg3aB9hmbkkaQcu9hmekama5Ud:ODama8FUd:KDamaaUd:GDamcuBd:qDamcFFF;7rBdjDaIcba8AaYamc:GDfakJbbbb9Damc:qDfamcjDfz:ejjjbamyd:qDhQdndnaxJbbbb9ETmba8UaD6mbaQcuSmeceh3amIdjDaR9EmixdkaQcu9hmekdna8UTmbdnamydlgza8Uci2fgsciGTmbadasfcba8Uazcu7fciGcefz:njjjb8AkabaPcltfgzam8Pib83dbazcwfamcwf8Pib83dbaPcefhPkc3hzinazc98Smvamc:Cwfazfydbcbyd;u1jjbH:bjjjbbazc98fhzxbkkcbh3a8Uaq9pmbamydwaCaiaQcx2fgsydbcetf8Vebcs4aCascwfydbcetf8Vebcs4faCasclfydbcetf8Vebcs4ffaw9nmekcbhscbhAdna81TmbcbhAamczfhXinamczfaAcdtfaXydbgLBdbaXclfhXaAaYaLfRbbTfhAa81cufg81mbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDaAc;8eaAclfc:bd6Eh81inamcjDfasfcFFF;7rBdbasclfgscz9hmbka81cdthBdnalTmbaeaXcdtfhocbhrindnazaoarcdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAcuhLcuhsinazaiaAydbgKcx2fgXclfydbcdtfydbazaXydbcdtfydbfazaXcwfydbcdtfydbfgXasaXas6gXEhsaKaLaXEhLaAclfhAavcufgvmbkaLcuSmba8AaLcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEcbhAindndnasamc:qDfaAfgvydbgX6mbasaX9hmeaEamcjDfaAfIdb9FTmekavasBdbamc:GDfaAfaLBdbamcjDfaAfaEUdbxdkaAclfgAcz9hmbkkarcefgral9hmbkkamczfaBfhLcbhscbhAindnamc:GDfasfydbgXcuSmbaLaAcdtfaXBdbaAcefhAkasclfgscz9hmbkaAa81fg81TmbJFFuuhhcuhKamczfhsa81hvcuhLina8AasydbgXcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEdndnazaiaXcx2fgAclfydbcdtfydbazaAydbcdtfydbfazaAcwfydbcdtfydbfgAaL6mbaAaL9hmeaEah9DTmekaEhhaAhLaXhKkasclfhsavcufgvmbkaKcuSmbaKhQkdnamaiaQcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80kcbhXinaOaHaraXcdtfydbcdtgAfydbcdtfgKhsazaAfgvydbgLhAdnaLTmbdninasydbaQSmeasclfhsaAcufgATmdxbkkasaKaLcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaQcK2fgsIdbhEasIdlhhasIdwh8KasIdxh8EasIdzh5asIdCh8FaYaQfce86bba80a8FMh80a8Za5Mh8Za8Ya8EMh8Ya8Xa8KMh8Xa8WahMh8Wa8VaEMh8Vamydxh8Uxbkkamc:WDf8KjjjjbaPk;Vvivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbararydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark:;idiud99dndnabaecitfgwydlgDciGgqciSmbinabcbaDcd4gDalaqcdtfIdbawIdb:tgkJbbbb9FEgwaecefgefadaialavaoarz:ejjjbak:larIdb9FTmdabawaD7aefgecitfgwydlgDciGgqci9hmbkkabaecitfgeclfhbdnavmbcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdwalIdw:tgkakNaqIdbalIdb:tgkakNaqIdlalIdl:tgkakNMM:rgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbxdkkcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdbalIdb:t:lgkaqIdlalIdl:t:lgxakax9EEgkaqIdwalIdw:t:lgxakax9EEgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbkkk;llevudnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0abydxaq9pVakVgDce9hmbavawcltfgxab8Pdb83dbaxcwfabcwfgx8Pdb83dbdnaxydbgqTmbaoabydbcdtfhxaqhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkdnabydxglci2gsabydlgxfgkciGTmbarakfcbalaxcu7fciGcefz:njjjb8Aabydxci2hsabydlhxabydwhqkab9cb83dwababydbaqfBdbabascifc98GaxfBdlaP8Vebhscbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk8LbabaeadaialavaoarawaDaDaqJbbbbz:cjjjbk;Nkovud99euv99eul998Jjjjjbc:W;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:W:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaoc8Wfawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeaocbBd8Sao9cb83iKao9cb83izaoczfaoc8Wfawci2cxaoc8Sfcbcrz1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:W:qefawcxaoc8Sfcbciz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:W:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:W:qefheaoc8WfhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabaxUd8KabasUdaabazUd3abaCaxaPN:tUdKabaXasaPN:tUdCabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabae86b8UdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabav86bRdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:W;aef8Kjjjjbk;Iwwvul99iud99eue99eul998Jjjjjbcje9Rgr8Kjjjjbavcd4hwaicd4hDdndnaoTmbarc;abfcbaocdtgvz:njjjb8Aarc;Gbfcbavz:njjjb8AarhvarcafhiaohqinavcFFF97BdbaicFFF;7rBdbaiclfhiavclfhvaqcufgqmbkdnadTmbcbhkinaeakaD2cdtfgvIdwhxavIdlhmavIdbhPalakaw2cdtfIdbhsarc;abfhzarhiarc;GbfhHarcafhqcj1jjbhvaohOinasavcwfIdbaxNavIdbaPNavclfIdbamNMMgAMhCakhXdnaAas:tgAaqIdbgQ9DgLmbaHydbhXkaHaXBdbakhXdnaCaiIdbgK9EmbazydbhXaKhCkazaXBdbaiaCUdbaqaAaQaLEUdbavcxfhvaqclfhqaHclfhHaiclfhiazclfhzaOcufgOmbkakcefgkad9hmbkkadThkJbbbbhCcbhXarc;abfhvarc;Gbfhicbhqinalavydbgzaw2cdtfIdbalaiydbgHaw2cdtfIdbaeazaD2cdtfgzIdwaeaHaD2cdtfgHIdw:tgsasNazIdbaHIdb:tgsasNazIdlaHIdl:tgsasNMM:rMMgsaCasaC9EgzEhCaqaXazEhXaiclfhiavclfhvaoaqcefgq9hmbkaCJbbbZNhKxekadThkcbhXJbbbbhKkJbbbbhCdnaearc;abfaXcdtgifydbgqaD2cdtfgvIdwaearc;GbfaifydbgzaD2cdtfgiIdwgm:tgsasNavIdbaiIdbgY:tgAaANavIdlaiIdlgP:tgQaQNMM:rgxJbbbb9ETmbaxalaqaw2cdtfIdbMalazaw2cdtfIdb:taxaxM:vhCkasaCNamMhmaQaCNaPMhPaAaCNaYMhYdnakmbaDcdthvawcdthiindnalIdbg8AaecwfIdbam:tgCaCNaeIdbaY:tgsasNaeclfIdbaP:tgAaANMM:rgQMgEaK9ETmbJbbbbhxdnaQJbbbb9ETmbaEaK:taQaQM:vhxkaxaCNamMhmaxaANaPMhPaxasNaYMhYa8AaKaQMMJbbbZNhKkaeavfhealaifhladcufgdmbkkabaKUdxabamUdwabaPUdlabaYUdbarcjef8Kjjjjbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:3lequ8JjjjjbcjP9Rgl8Kjjjjbcbhvalcjxfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjxfaDcefRbbfRbb9RcFeGci6aoalcjxfaDRbbfRbb9RcFeGci6faoalcjxfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjxffaocefgo86bbaxalcjxffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjxffao86bbarcifhravcefgvad9hmbkalcFeaicetz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkcetfgw8UebgDcu9kmbawax87ebaocjlfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjlfaDz:mjjjb8AalcjPf8Kjjjjbk9teiucbcbyd;C1jjbgeabcifc98GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;C1jjbgeabcrfc94GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;C1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;C1jjbfgdBd;C1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkk9Tdbcjwk9ubbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;uwkxebbbdbbb9GNbb"),{}).then(function(o){(r=o.instance).exports.__wasm_call_ctors()});function t(o){if(!o)throw new Error("Assertion failed")}function i(o){return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}function n(o){var s=new Float32Array(r.exports.memory.buffer,o,12);return{centerX:s[0],centerY:s[1],centerZ:s[2],radius:s[3],coneApexX:s[4],coneApexY:s[5],coneApexZ:s[6],coneAxisX:s[7],coneAxisY:s[8],coneAxisZ:s[9],coneCutoff:s[10]}}}();let da=0;class Bi{constructor(e){if(this.downloadParallelism=e.downloadParallelism==null?8:e.downloadParallelism,this.timeout=e.timeout!=null?e.timeout:5e3,this.renderer=e.renderer,this.zUpToYUpMatrix=new G.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.proxy=e.proxy,e&&(this.meshCallback=e.meshCallback,this.pointsCallback=e.pointsCallback,e.maxCachedItems!=null&&(this.maxCachedItems=e.maxCachedItems)),this.gltfLoader=new Or,e&&e.dracoLoader)this.gltfLoader.setDRACOLoader(e.dracoLoader),this.hasDracoLoader=!0;else{const a=new Yr;a.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"),this.dracoLoader=a,this.gltfLoader.setDRACOLoader(a),this.gltfLoader.hasDracoLoader=!0}if(e&&e.ktx2Loader)this.gltfLoader.setKTX2Loader(e.ktx2Loader),this.hasKTX2Loader=!0;else if(e&&e.renderer){const a=new Oe;a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(e.renderer),this.ktx2loader=a,this.gltfLoader.setKTX2Loader(a),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(Ii),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new Pr(this.gltfLoader),this.splatsDecoder=new oo(this.gltfLoader,this.renderer),this.cache=new Lr,this.register={},this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const e=this;da<e.downloadParallelism&&e._download(),e._loadBatch()}_scheduleDownload(e){this.downloads.unshift(e)}_download(){do{if(this.nextDownloads.length==0&&(this._getNextDownloads(),this.nextDownloads.length==0))return;for(;this.nextDownloads.length>0;){const e=this.nextDownloads.shift();e&&e.shouldDoDownload()&&e.doDownload()}}while(this.concurrentDownloads<this.downloadParallelism)}_meshReceived(e,a,t,i,n,o,s){this.ready.unshift([e,a,t,i,n,o,s])}_loadBatch(){for(this.nextReady.length==0&&this._getNextReady();this.nextReady.length>0;){const e=this.nextReady.shift();if(!e)return;const a=e[0],t=e[1],i=e[2],n=a.get(i);n&&t[i]&&Object.keys(t[i]).forEach(o=>{const s=t[i][o];s&&(s(n),t[i][o]=null)}),this.nextReady.length==0&&this._getNextReady()}}_getNextDownloads(){let e=Number.POSITIVE_INFINITY,a=-1;for(let s=this.downloads.length-1;s>=0;s--)this.downloads[s].shouldDoDownload()?this.downloads[s].distanceFunction||this.nextDownloads.push(this.downloads.splice(s,1)[0]):this.downloads.splice(s,1);if(this.nextDownloads.length>0)return;let t,i=0,n=Number.MAX_SAFE_INTEGER,o=-1;for(let s=this.downloads.length-1;s>=0;s--){const c=this.downloads[s].distanceFunction();c<=e&&(e=c,a=s),i=Math.max(this.downloads[s].level),this.downloads[s].loadingStrategy!="IMMEDIATE"&&this.downloads[s].level<n&&(n=this.downloads[s].level,o=s)}if(i>n+4?t=this.downloads.splice(o,1).pop():a>=0&&(t=this.downloads.splice(a,1).pop()),t){this.nextDownloads.push(t);const s=t.getSiblings();for(let c=this.downloads.length-1;c>=0;c--)s.map(u=>u.uuid).includes(this.downloads[c].uuid)&&this.nextDownloads.push(this.downloads.splice(c,1).pop())}}_getNextReady(){let e=Number.POSITIVE_INFINITY,a=-1;for(let t=this.ready.length-1;t>=0;t--)this.ready[t][3]||this.nextReady.push(this.ready.splice(t,1)[0]);if(!(this.nextReady.length>0)){for(let t=this.ready.length-1;t>=0;t--){const i=this.ready[t][3]()*this.ready[t][5];i<=e&&(e=i,a=t)}if(a>=0){const t=this.ready.splice(a,1).pop();this.nextReady.push(t);const i=t[4]();for(let n=this.ready.length-1;n>=0;n--)i.map(o=>o.uuid).includes(this.ready[n][6])&&this.nextReady.push(this.ready.splice(n,1).pop())}}}get(e,a,t,i,n,o,s,c,u,A,d,b){const h=this,l=Di(t),g=new AbortController;if(e.signal.addEventListener("abort",()=>{h.register[l]&&Object.keys(h.register[l]).length!=0||g.abort("user abort")}),!(t.includes(".b3dm")||t.includes(".json")||t.includes(".gltf")||t.includes(".glb")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");if(h.register[l]||(h.register[l]={}),h.register[l][a]&&console.error(" a tile should only be loaded once"),h.register[l][a]=i,h.cache.get(l))this._meshReceived(h.cache,h.register,l,n,o,s,a);else{let m;t.includes(".b3dm")?m=()=>{var E;E=h.proxy?()=>fetch(h.proxy,{method:"POST",body:t,signal:g.signal}):()=>fetch(t,{signal:g.signal}),da++,E().then(p=>{if(!p.ok)throw console.error("could not load tile with path : "+t),new Error(`couldn't load "${t}". Request failed with status ${p.status} : ${p.statusText}`);return p.arrayBuffer()}).then(p=>this.b3dmDecoder.parseB3DM(p,C=>{h.meshCallback(C,d)},u,A)).then(p=>{h.cache.put(l,p),this._meshReceived(h.cache,h.register,l,n,o,s,a),h._checkSize()}).catch(p=>{}).finally(()=>{da--})}:t.includes(".glb")||t.includes(".gltf")?m=b?()=>{var E;E=h.proxy?()=>fetch(h.proxy,{method:"POST",body:t,signal:g.signal}):()=>fetch(t,{signal:g.signal}),da++,E().then(p=>{if(!p.ok)throw console.error("could not load tile with path : "+t),new Error(`couldn't load "${t}". Request failed with status ${p.status} : ${p.statusText}`);return p.arrayBuffer()}).then(p=>this.splatsDecoder.parseSplats(p,u,A,b)).then(p=>{h.cache.put(l,p),h._meshReceived(h.cache,h.register,l,n,o,s,a),h._checkSize()}).catch(p=>{}).finally(()=>{da--})}:()=>{var E;E=h.proxy?()=>fetch(h.proxy,{method:"POST",body:t,signal:g.signal}):()=>fetch(t,{signal:g.signal}),da++,E().then(p=>{if(!p.ok)throw console.error("could not load tile with path : "+t),new Error(`couldn't load "${t}". Request failed with status ${p.status} : ${p.statusText}`);return p.arrayBuffer()}).then(async p=>{await async function(C){return new Promise(I=>{const x=setInterval(()=>{C.hasDracoLoader&&!C.dracoLoader||C.hasKTX2Loader&&!C.ktx2Loader||(clearInterval(x),I())},10)})}(this.gltfLoader),this.gltfLoader.parse(p,null,C=>{C.scene||(C.scene=new G.Object3D),C.scene.asset=C.asset,u&&C.scene.applyMatrix4(this.zUpToYUpMatrix),C.scene.traverse(I=>{I.isMesh&&(A&&I.applyMatrix4(this.zUpToYUpMatrix),h.meshCallback&&h.meshCallback(I,d)),I.isPoints&&h.pointsCallback&&h.pointsCallback(I,d)}),h.cache.put(l,C.scene),h._meshReceived(h.cache,h.register,l,n,o,s,a),h._checkSize()})}).catch(p=>{p!=="user abort"&&p.code}).finally(()=>{da--})}:t.includes(".json")&&(m=()=>{var E;E=h.proxy?()=>fetch(h.proxy,{method:"POST",body:t,signal:g.signal}):()=>fetch(t,{signal:g.signal}),da++,E().then(p=>{if(!p.ok)throw console.error("could not load tile with path : "+t),new Error(`couldn't load "${t}". Request failed with status ${p.status} : ${p.statusText}`);return p.json()}).then(p=>er(p,t)).then(p=>{h.cache.put(l,p),h._meshReceived(h.cache,h.register,l),h._checkSize()}).catch(p=>{console.error(p)}).finally(()=>{da--})}),this._scheduleDownload({shouldDoDownload:()=>!e.signal.aborted&&!!h.register[l]&&Object.keys(h.register[l]).length>0&&!h.cache.get(l),doDownload:m,distanceFunction:n,getSiblings:o,level:s,loadingStrategy:c,uuid:a})}}clear(){const e=this.maxCachedItems;this.maxCachedItems=0,this._checkSize(),this.maxCachedItems=e}invalidate(e,a){const t=Di(e),i=this;i.register[t]&&setTimeout(()=>{i.register&&i.register[t]&&(delete i.register[t][a],i._checkSize())},i.timeout)}dispose(){let e=this.cache.head();for(this._disposeEntryContent(e);(e=e.next()).key!=null;)this._disposeEntryContent(e);this.cache.reset(),this.cache=void 0,this.register=void 0,this.dracoLoader&&this.dracoLoader.dispose(),this.ktx2loader&&this.ktx2loader.dispose()}_checkSize(){const e=this;let a=0;for(;e.cache.size()>e.maxCachedItems&&a<e.cache.size();){a++;const t=e.cache.head(),i=e.register[t.key];i&&(Object.keys(i).length>0?(e.cache.remove(t.key),e.cache.put(t.key,t.value)):(e.cache.remove(t.key),delete e.register[t.key],e._disposeEntryContent(t)))}}_disposeEntryContent(e){e.value&&(e.value.isSplatsBatch?e.value.remove():e.value.traverse&&e.value.traverse(a=>{if(a.material)if(a.material.length)for(let t=0;t<a.material.length;++t)a.material[t].dispose();else a.material.dispose();a.geometry&&a.geometry.dispose()}))}}function Di(r){for(var e=r.split("/"),a=[],t=0,i=0;i<e.length;i++){var n=e[i];n!=="."&&n!==""&&n!==".."?a[t++]=n:n===".."&&t>0&&t--}if(t===0)return"/";var o="";for(i=0;i<t;i++)o+="/"+a[i];return o}var yi,wi,pa=function(){if(wi)return yi;function r(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function e(t,i){for(var n,o="",s=0,c=-1,u=0,A=0;A<=t.length;++A){if(A<t.length)n=t.charCodeAt(A);else{if(n===47)break;n=47}if(n===47){if(!(c===A-1||u===1))if(c!==A-1&&u===2){if(o.length<2||s!==2||o.charCodeAt(o.length-1)!==46||o.charCodeAt(o.length-2)!==46){if(o.length>2){var d=o.lastIndexOf("/");if(d!==o.length-1){d===-1?(o="",s=0):s=(o=o.slice(0,d)).length-1-o.lastIndexOf("/"),c=A,u=0;continue}}else if(o.length===2||o.length===1){o="",s=0,c=A,u=0;continue}}i&&(o.length>0?o+="/..":o="..",s=2)}else o.length>0?o+="/"+t.slice(c+1,A):o=t.slice(c+1,A),s=A-c-1;c=A,u=0}else n===46&&u!==-1?++u:u=-1}return o}wi=1;var a={resolve:function(){for(var t,i="",n=!1,o=arguments.length-1;o>=-1&&!n;o--){var s;o>=0?s=arguments[o]:(t===void 0&&(t=process.cwd()),s=t),r(s),s.length!==0&&(i=s+"/"+i,n=s.charCodeAt(0)===47)}return i=e(i,!n),n?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(t){if(r(t),t.length===0)return".";var i=t.charCodeAt(0)===47,n=t.charCodeAt(t.length-1)===47;return(t=e(t,!i)).length!==0||i||(t="."),t.length>0&&n&&(t+="/"),i?"/"+t:t},isAbsolute:function(t){return r(t),t.length>0&&t.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var t,i=0;i<arguments.length;++i){var n=arguments[i];r(n),n.length>0&&(t===void 0?t=n:t+="/"+n)}return t===void 0?".":a.normalize(t)},relative:function(t,i){if(r(t),r(i),t===i||(t=a.resolve(t))===(i=a.resolve(i)))return"";for(var n=1;n<t.length&&t.charCodeAt(n)===47;++n);for(var o=t.length,s=o-n,c=1;c<i.length&&i.charCodeAt(c)===47;++c);for(var u=i.length-c,A=s<u?s:u,d=-1,b=0;b<=A;++b){if(b===A){if(u>A){if(i.charCodeAt(c+b)===47)return i.slice(c+b+1);if(b===0)return i.slice(c+b)}else s>A&&(t.charCodeAt(n+b)===47?d=b:b===0&&(d=0));break}var h=t.charCodeAt(n+b);if(h!==i.charCodeAt(c+b))break;h===47&&(d=b)}var l="";for(b=n+d+1;b<=o;++b)b!==o&&t.charCodeAt(b)!==47||(l.length===0?l+="..":l+="/..");return l.length>0?l+i.slice(c+d):(c+=d,i.charCodeAt(c)===47&&++c,i.slice(c))},_makeLong:function(t){return t},dirname:function(t){if(r(t),t.length===0)return".";for(var i=t.charCodeAt(0),n=i===47,o=-1,s=!0,c=t.length-1;c>=1;--c)if((i=t.charCodeAt(c))===47){if(!s){o=c;break}}else s=!1;return o===-1?n?"/":".":n&&o===1?"//":t.slice(0,o)},basename:function(t,i){if(i!==void 0&&typeof i!="string")throw new TypeError('"ext" argument must be a string');r(t);var n,o=0,s=-1,c=!0;if(i!==void 0&&i.length>0&&i.length<=t.length){if(i.length===t.length&&i===t)return"";var u=i.length-1,A=-1;for(n=t.length-1;n>=0;--n){var d=t.charCodeAt(n);if(d===47){if(!c){o=n+1;break}}else A===-1&&(c=!1,A=n+1),u>=0&&(d===i.charCodeAt(u)?--u==-1&&(s=n):(u=-1,s=A))}return o===s?s=A:s===-1&&(s=t.length),t.slice(o,s)}for(n=t.length-1;n>=0;--n)if(t.charCodeAt(n)===47){if(!c){o=n+1;break}}else s===-1&&(c=!1,s=n+1);return s===-1?"":t.slice(o,s)},extname:function(t){r(t);for(var i=-1,n=0,o=-1,s=!0,c=0,u=t.length-1;u>=0;--u){var A=t.charCodeAt(u);if(A!==47)o===-1&&(s=!1,o=u+1),A===46?i===-1?i=u:c!==1&&(c=1):i!==-1&&(c=-1);else if(!s){n=u+1;break}}return i===-1||o===-1||c===0||c===1&&i===o-1&&i===n+1?"":t.slice(i,o)},format:function(t){if(t===null||typeof t!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(i,n){var o=n.dir||n.root,s=n.base||(n.name||"")+(n.ext||"");return o?o===n.root?o+s:o+i+s:s}("/",t)},parse:function(t){r(t);var i={root:"",dir:"",base:"",ext:"",name:""};if(t.length===0)return i;var n,o=t.charCodeAt(0),s=o===47;s?(i.root="/",n=1):n=0;for(var c=-1,u=0,A=-1,d=!0,b=t.length-1,h=0;b>=n;--b)if((o=t.charCodeAt(b))!==47)A===-1&&(d=!1,A=b+1),o===46?c===-1?c=b:h!==1&&(h=1):c!==-1&&(h=-1);else if(!d){u=b+1;break}return c===-1||A===-1||h===0||h===1&&c===A-1&&c===u+1?A!==-1&&(i.base=i.name=u===0&&s?t.slice(1,A):t.slice(u,A)):(u===0&&s?(i.name=t.slice(1,c),i.base=t.slice(1,A)):(i.name=t.slice(u,c),i.base=t.slice(u,A)),i.ext=t.slice(c,A)),u>0?i.dir=t.slice(0,u-1):s&&(i.dir="/"),i},sep:"/",delimiter:":",win32:null,posix:null};return a.posix=a,yi=a}();function nt(){return nt=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var t in a)({}).hasOwnProperty.call(a,t)&&(r[t]=a[t])}return r},nt.apply(null,arguments)}var xi={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function ss(r,e){if(ot(r,e))return r[e];throw typeof r[e]=="function"&&function(a,t){return a==null||typeof a[t]!="function"||At(a,t)&&Object.getPrototypeOf&&t in Object.getPrototypeOf(a)?!1:At(cs,t)?!0:!(t in Object.prototype||t in Function.prototype)}(r,e)?new Error('Cannot access method "'+e+'" as a property'):new Error('No access to property "'+e+'"')}function ot(r,e){return!(!function(a){return typeof a=="object"&&a&&a.constructor===Object}(r)&&!Array.isArray(r))&&(!!At(As,e)||!(e in Object.prototype)&&!(e in Function.prototype))}var As={length:!0,name:!0},cs={toString:!0,valueOf:!0,toLocaleString:!0};class us{constructor(e){this.wrappedObject=e,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(e=>this.has(e)).values()}get(e){return ss(this.wrappedObject,e)}set(e,a){return function(t,i,n){if(ot(t,i))return t[i]=n,n;throw new Error('No access to property "'+i+'"')}(this.wrappedObject,e,a),this}has(e){return ot(this.wrappedObject,e)&&e in this.wrappedObject}entries(){return function(e,a){return{next:()=>{var t=e.next();return t.done?t:{value:a(t.value),done:!1}}}}(this.keys(),e=>[e,this.get(e)])}forEach(e){for(var a of this.keys())e(this.get(a),a,this)}delete(e){ot(this.wrappedObject,e)&&delete this.wrappedObject[e]}clear(){for(var e of this.keys())this.delete(e)}get size(){return Object.keys(this.wrappedObject).length}}function be(r){return typeof r=="number"}function ve(r){return!(!r||typeof r!="object"||typeof r.constructor!="function")&&(r.isBigNumber===!0&&typeof r.constructor.prototype=="object"&&r.constructor.prototype.isBigNumber===!0||typeof r.constructor.isDecimal=="function"&&r.constructor.isDecimal(r)===!0)}function ds(r){return typeof r=="bigint"}function vi(r){return r&&typeof r=="object"&&Object.getPrototypeOf(r).isComplex===!0||!1}function Fi(r){return r&&typeof r=="object"&&Object.getPrototypeOf(r).isFraction===!0||!1}function Qi(r){return r&&r.constructor.prototype.isUnit===!0||!1}function ia(r){return typeof r=="string"}var Qe=Array.isArray;function De(r){return r&&r.constructor.prototype.isMatrix===!0||!1}function st(r){return Array.isArray(r)||De(r)}function hs(r){return r&&r.isDenseMatrix&&r.constructor.prototype.isMatrix===!0||!1}function ls(r){return r&&r.isSparseMatrix&&r.constructor.prototype.isMatrix===!0||!1}function bs(r){return r&&r.constructor.prototype.isRange===!0||!1}function ar(r){return r&&r.constructor.prototype.isIndex===!0||!1}function gs(r){return typeof r=="boolean"}function fs(r){return r&&r.constructor.prototype.isResultSet===!0||!1}function ps(r){return r&&r.constructor.prototype.isHelp===!0||!1}function ms(r){return typeof r=="function"}function Es(r){return r instanceof Date}function Cs(r){return r instanceof RegExp}function tr(r){return!(!r||typeof r!="object"||r.constructor!==Object||vi(r)||Fi(r))}function Is(r){return!!r&&(r instanceof Map||r instanceof us||typeof r.set=="function"&&typeof r.get=="function"&&typeof r.keys=="function"&&typeof r.has=="function")}function Bs(r){return r===null}function Ds(r){return r===void 0}function ys(r){return r&&r.isAccessorNode===!0&&r.constructor.prototype.isNode===!0||!1}function ws(r){return r&&r.isArrayNode===!0&&r.constructor.prototype.isNode===!0||!1}function xs(r){return r&&r.isAssignmentNode===!0&&r.constructor.prototype.isNode===!0||!1}function vs(r){return r&&r.isBlockNode===!0&&r.constructor.prototype.isNode===!0||!1}function Fs(r){return r&&r.isConditionalNode===!0&&r.constructor.prototype.isNode===!0||!1}function Qs(r){return r&&r.isConstantNode===!0&&r.constructor.prototype.isNode===!0||!1}function ks(r){return r&&r.isFunctionAssignmentNode===!0&&r.constructor.prototype.isNode===!0||!1}function js(r){return r&&r.isFunctionNode===!0&&r.constructor.prototype.isNode===!0||!1}function Ms(r){return r&&r.isIndexNode===!0&&r.constructor.prototype.isNode===!0||!1}function Rs(r){return r&&r.isNode===!0&&r.constructor.prototype.isNode===!0||!1}function Ss(r){return r&&r.isObjectNode===!0&&r.constructor.prototype.isNode===!0||!1}function Ts(r){return r&&r.isOperatorNode===!0&&r.constructor.prototype.isNode===!0||!1}function Ns(r){return r&&r.isParenthesisNode===!0&&r.constructor.prototype.isNode===!0||!1}function Us(r){return r&&r.isRangeNode===!0&&r.constructor.prototype.isNode===!0||!1}function Ls(r){return r&&r.isRelationalNode===!0&&r.constructor.prototype.isNode===!0||!1}function Gs(r){return r&&r.isSymbolNode===!0&&r.constructor.prototype.isNode===!0||!1}function _s(r){return r&&r.constructor.prototype.isChain===!0||!1}function ma(r){var e=typeof r;return e==="object"?r===null?"null":ve(r)?"BigNumber":r.constructor&&r.constructor.name?r.constructor.name:"Object":e}function ye(r){var e=typeof r;if(e==="number"||e==="bigint"||e==="string"||e==="boolean"||r==null)return r;if(typeof r.clone=="function")return r.clone();if(Array.isArray(r))return r.map(function(a){return ye(a)});if(r instanceof Date)return new Date(r.valueOf());if(ve(r))return r;if(tr(r))return function(a,t){var i={};for(var n in a)At(a,n)&&(i[n]=t(a[n]));return i}(r,ye);if(e==="function")return r;throw new TypeError("Cannot clone: unknown type of value (value: ".concat(r,")"))}function Sa(r,e){var a,t,i;if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(t=0,i=r.length;t<i;t++)if(!Sa(r[t],e[t]))return!1;return!0}if(typeof r=="function")return r===e;if(r instanceof Object){if(Array.isArray(e)||!(e instanceof Object))return!1;for(a in r)if(!(a in e)||!Sa(r[a],e[a]))return!1;for(a in e)if(!(a in r))return!1;return!0}return r===e}function At(r,e){return r&&Object.hasOwnProperty.call(r,e)}var va=function(r){if(r)throw new Error(`The global config is readonly.
|
|
6
|
+
*/class Tg{constructor(){this._data=new Map,this._link=new Map,this._head=void 0,this._tail=void 0}put(A,a,e=!1){this.has(A)?this._data.set(A,a):(this._data.set(A,a),this._link.set(A,{previous:void 0,next:void 0}),this._head==null?(this._head=A,this._tail=A):e?(this._link.get(this._head).previous=A,this._link.get(A).next=this._head,this._head=A):(this._link.get(this._tail).next=A,this._link.get(A).previous=this._tail,this._tail=A))}head(){return{key:this._head,value:this.get(this._head),next:()=>this.next(this._head),previous:()=>null}}tail(){return{key:this._tail,value:this.get(this._tail),next:()=>null,previous:()=>this.previous(this._tail)}}get(A){return this._data.get(A)}previousKey(A){const a=this._link.get(A);return a?.previous}previousValue(A){return this.get(this.previousKey(A))}previous(A){const a=this.previousKey(A);return{key:a,value:this.get(a),next:()=>this.next(a),previous:()=>this.previous(a)}}nextKey(A){const a=this._link.get(A);return a?.next}nextValue(A){return this.get(this.nextKey(A))}next(A){const a=this.nextKey(A);return{key:a,value:this.get(a),next:()=>this.next(a),previous:()=>this.previous(a)}}remove(A){const a=this._data.get(A);if(a!=null)if(this.size()===1)this.reset();else{if(A===this._head){const e=this._link.get(this._head);this._link.get(e.next).previous=null,this._head=e.next}else if(A===this._tail){const e=this._link.get(this._tail);this._link.get(e.previous).next=null,this._tail=e.previous}else{const e=this._link.get(A),g=this._link.get(e.previous),i=this._link.get(e.next);g.next=e.next,i.previous=e.previous}this._link.delete(A),this._data.delete(A)}return a}has(A){return this._data.has(A)}size(){return this._data.size}reset(){this._data.clear(),this._link.clear(),this._head=void 0,this._tail=void 0}keys(){return this._data.keys()}values(){return this._data.values()}entries(){return this._data.entries()}toArray(A="orderByInsert"){if(A!=="orderByInsert"){const a=[];let e=this._head;for(;e!=null;)a.push({key:e,value:this.get(e)}),e=this.nextKey(e);return a}return Array.from(this.keys()).map(a=>({key:a,value:this.get(a)}))}}const Ir=new TextDecoder;class qg{constructor(A,a,e,g){this.buffer=A,this.binOffset=a+e,this.binLength=g;let i=null;if(e!==0)try{const I=new Uint8Array(A,a,e);i=JSON.parse(Ir.decode(I))}catch{i={}}else i={};this.header=i}getKeys(){return Object.keys(this.header)}getData(A,a,e=null,g=null){const i=this.header;if(!(A in i))return null;const I=i[A];if(I instanceof Object){if(Array.isArray(I))return I;{const{buffer:r,binOffset:o,binLength:B}=this,n=I.byteOffset||0,s=I.type||g,E=I.componentType||e;if("type"in I&&g&&I.type!==g)throw new Error("FeatureTable: Specified type does not match expected type.");let C,Q;switch(s){case"SCALAR":C=1;break;case"VEC2":C=2;break;case"VEC3":C=3;break;case"VEC4":C=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${A}".`)}const c=o+n,d=a*C;switch(E){case"BYTE":Q=new Int8Array(r,c,d);break;case"UNSIGNED_BYTE":Q=new Uint8Array(r,c,d);break;case"SHORT":Q=new Int16Array(r,c,d);break;case"UNSIGNED_SHORT":Q=new Uint16Array(r,c,d);break;case"INT":Q=new Int32Array(r,c,d);break;case"UNSIGNED_INT":Q=new Uint32Array(r,c,d);break;case"FLOAT":Q=new Float32Array(r,c,d);break;case"DOUBLE":Q=new Float64Array(r,c,d);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${A}".`)}if(c+d*Q.BYTES_PER_ELEMENT>o+B)throw new Error("FeatureTable: Feature data read outside binary body length.");return Q}}return I}}class rr extends qg{constructor(A,a,e,g,i){super(A,e,g,i),this.batchSize=a}getData(A,a=null,e=null){return super.getData(A,this.batchSize,a,e)}}function Og(t){let A,a,e,g=-1,i=0;for(let B=0;B<t.length;++B){const n=t[B];if(A===void 0&&(A=n.array.constructor),A!==n.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(a===void 0&&(a=n.itemSize),a!==n.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(e===void 0&&(e=n.normalized),e!==n.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(g===-1&&(g=n.gpuType),g!==n.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;i+=n.count*a}const I=new A(i),r=new f.BufferAttribute(I,a,e);let o=0;for(let B=0;B<t.length;++B){const n=t[B];if(n.isInterleavedBufferAttribute){const s=o/a;for(let E=0,C=n.count;E<C;E++)for(let Q=0;Q<a;Q++){const c=n.getComponent(E,Q);r.setComponent(E+s,Q,c)}}else I.set(n.array,o);o+=n.count*a}return g!==void 0&&(r.gpuType=g),r}function Pg(t,A){if(A===f.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),t;if(A===f.TriangleFanDrawMode||A===f.TriangleStripDrawMode){let a=t.getIndex();if(a===null){const I=[],r=t.getAttribute("position");if(r===void 0)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t;for(let o=0;o<r.count;o++)I.push(o);t.setIndex(I),a=t.getIndex()}const e=a.count-2,g=[];if(A===f.TriangleFanDrawMode)for(let I=1;I<=e;I++)g.push(a.getX(0)),g.push(a.getX(I)),g.push(a.getX(I+1));else for(let I=0;I<e;I++)I%2==0?(g.push(a.getX(I)),g.push(a.getX(I+1)),g.push(a.getX(I+2))):(g.push(a.getX(I+2)),g.push(a.getX(I+1)),g.push(a.getX(I)));g.length/3!==e&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const i=t.clone();return i.setIndex(g),i.clearGroups(),i}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),t}class zg{constructor(A){this.gltfLoader=A,this.tempMatrix=new P.Matrix4,this.zUpToYUpMatrix=new P.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1)}parseB3DM(A,a,e,g){const i=this,I=new DataView(A),r=String.fromCharCode(I.getUint8(0))+String.fromCharCode(I.getUint8(1))+String.fromCharCode(I.getUint8(2))+String.fromCharCode(I.getUint8(3));console.assert(r==="b3dm");const o=I.getUint32(8,!0);console.assert(o===A.byteLength);const B=I.getUint32(12,!0),n=I.getUint32(16,!0),s=I.getUint32(20,!0),E=I.getUint32(24,!0),C=new qg(A,28,B,n),Q=28+B+n;new rr(A,C.getData("BATCH_LENGTH"),Q,s,E);const c=Q+s+E,d=new Uint8Array(A,c,o-c).slice().buffer;return new Promise(async(b,h)=>{await this.checkLoaderInitialized(),this.gltfLoader.parse(d,null,l=>{const w=C.getData("RTC_CENTER");w?(this.tempMatrix.makeTranslation(w[0],w[1],w[2]),l.scene.applyMatrix4(this.tempMatrix)):l.userData.gltfExtensions&&l.userData.gltfExtensions.CESIUM_RTC&&(this.tempMatrix.makeTranslation(l.userData.gltfExtensions.CESIUM_RTC.center[0],l.userData.gltfExtensions.CESIUM_RTC.center[1],l.userData.gltfExtensions.CESIUM_RTC.center[2]),l.scene.applyMatrix4(this.tempMatrix)),e&&l.scene.applyMatrix4(i.zUpToYUpMatrix),l.scene.asset=l.asset,l.scene.traverse(M=>{M.isMesh&&(g&&M.applyMatrix4(i.zUpToYUpMatrix),a&&a(M))}),b(l.scene)},l=>{console.error(l)})})}checkLoaderInitialized=async()=>new Promise(A=>{const a=setInterval(()=>{this.gltfLoader.hasDracoLoader&&!this.gltfLoader.dracoLoader||this.gltfLoader.hasKTX2Loader&&!this.gltfLoader.ktx2Loader||(clearInterval(a),A())},10)});parseB3DMInstanced(A,a,e,g,i){return this.parseB3DM(A,a,g,i).then(I=>{let r,o=[],B=[];I.updateWorldMatrix(!1,!0),I.traverse(s=>{s.isMesh&&(s.geometry.applyMatrix4(s.matrixWorld),o.push(s.geometry),B.push(s.material))});let n=function(s){let E=new Set;return s.forEach(Q=>{for(let c in Q.attributes)E.add(c)}),s.forEach(Q=>{E.forEach(c=>{if(!Q.attributes[c]){const d=function(h){switch(h){case"position":case"normal":case"color":return 3;case"uv":case"uv2":return 2;default:throw new Error(`Unknown attribute ${h}`)}}(c),b=new Float32Array(d*Q.getAttribute("position").count).fill(0);Q.setAttribute(c,new P.BufferAttribute(b,d))}})}),function(Q,c=!1){const d=Q[0].index!==null,b=new Set(Object.keys(Q[0].attributes)),h=new Set(Object.keys(Q[0].morphAttributes)),l={},w={},M=Q[0].morphTargetsRelative,k=new f.BufferGeometry;let N=0;for(let F=0;F<Q.length;++F){const G=Q[F];let L=0;if(d!==(G.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const x in G.attributes){if(!b.has(x))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+'. All geometries must have compatible attributes; make sure "'+x+'" attribute exists among all geometries, or in none of them.'),null;l[x]===void 0&&(l[x]=[]),l[x].push(G.attributes[x]),L++}if(L!==b.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". Make sure all geometries have the same number of attributes."),null;if(M!==G.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const x in G.morphAttributes){if(!h.has(x))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". .morphAttributes must be consistent throughout all geometries."),null;w[x]===void 0&&(w[x]=[]),w[x].push(G.morphAttributes[x])}if(c){let x;if(d)x=G.index.count;else{if(G.attributes.position===void 0)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". The geometry must have either an index or a position attribute"),null;x=G.attributes.position.count}k.addGroup(N,x,F),N+=x}}if(d){let F=0;const G=[];for(let L=0;L<Q.length;++L){const x=Q[L].index;for(let W=0;W<x.count;++W)G.push(x.getX(W)+F);F+=Q[L].attributes.position.count}k.setIndex(G)}for(const F in l){const G=Og(l[F]);if(!G)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+F+" attribute."),null;k.setAttribute(F,G)}for(const F in w){const G=w[F][0].length;if(G===0)break;k.morphAttributes=k.morphAttributes||{},k.morphAttributes[F]=[];for(let L=0;L<G;++L){const x=[];for(let X=0;X<w[F].length;++X)x.push(w[F][X][L]);const W=Og(x);if(!W)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+F+" morphAttribute."),null;k.morphAttributes[F].push(W)}}return k}(s,!0)}(o);return r=new P.InstancedMesh(n,B,e),r.baseMatrix=new P.Matrix4().identity(),r})}}async function nr(t={}){var A,a,e=t,g=typeof window=="object",i=typeof WorkerGlobalScope<"u",I=typeof process=="object"&&((A=process.versions)==null?void 0:A.node)&&process.type!="renderer";if(I){const{createRequire:D}=await Promise.resolve().then(()=>Cr);var r=D(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:Ce&&Ce.tagName.toUpperCase()==="SCRIPT"&&Ce.src||new URL("threedtiles.umd.js",document.baseURI).href)}var o,B="./this.program",n=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:Ce&&Ce.tagName.toUpperCase()==="SCRIPT"&&Ce.src||new URL("threedtiles.umd.js",document.baseURI).href;if(I){var s=r("fs");n.startsWith("file:")&&r("path").dirname(r("url").fileURLToPath(n)),o=D=>(D=X(D)?new URL(D):D,s.readFileSync(D)),1<process.argv.length&&(B=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2)}else if(g||i){try{new URL(".",n)}catch{}i&&(o=D=>{var u=new XMLHttpRequest;return u.open("GET",D,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)})}var E,C,Q,c,d,b,h,l,w,M,k,N,F,G,L=console.log.bind(console),x=console.error.bind(console),W=!1,X=D=>D.startsWith("file://"),eA=!1;function AA(){var D=c.buffer;d=new Int8Array(D),h=new Int16Array(D),e.HEAPU8=b=new Uint8Array(D),l=new Uint16Array(D),w=new Int32Array(D),M=new Uint32Array(D),e.HEAPF32=k=new Float32Array(D),N=new Float64Array(D),F=new BigInt64Array(D),G=new BigUint64Array(D)}var Z,oA=0,uA=null;function hA(D){var u;throw(u=e.onAbort)==null||u.call(e,D),x(D="Aborted("+D+")"),W=!0,D=new WebAssembly.RuntimeError(D+". Build with -sASSERTIONS for more info."),Q?.(D),D}async function yA(D){var u=Z;try{var y=await async function(p){if(!ArrayBuffer.isView(p))if(p==Z&&E)p=new Uint8Array(E);else{if(!o)throw"both async and sync fetching of the wasm failed";p=o(p)}return p}(u);return await WebAssembly.instantiate(y,D)}catch(p){x(`failed to asynchronously prepare wasm: ${p}`),hA(p)}}var DA=D=>{for(;0<D.length;)D.shift()(e)},BA=[],MA=[],rA=()=>{var D=e.preRun.shift();MA.push(D)},sA={},lA=D=>{for(;D.length;){var u=D.pop();D.pop()(u)}};function pA(D){return this.N(M[D>>2])}var mA={},UA={},VA={},XA=class extends Error{constructor(D){super(D),this.name="InternalError"}},Ca=(D,u,y)=>{function p(O){if((O=y(O)).length!==D.length)throw new XA("Mismatched type converter count");for(var aA=0;aA<D.length;++aA)R(D[aA],O[aA])}D.forEach(O=>VA[O]=u);var S=Array(u.length),T=[],J=0;u.forEach((O,aA)=>{UA.hasOwnProperty(O)?S[aA]=UA[O]:(T.push(O),mA.hasOwnProperty(O)||(mA[O]=[]),mA[O].push(()=>{S[aA]=UA[O],++J===T.length&&p(S)}))}),T.length===0&&p(S)},TA=D=>{for(var u="";;){var y=b[D++];if(!y)return u;u+=String.fromCharCode(y)}},EA=class extends Error{constructor(D){super(D),this.name="BindingError"}},m=D=>{throw new EA(D)};function R(D,u,y={}){return function(p,S,T={}){var J=S.name;if(!p)throw new EA(`type "${J}" must have a positive integer typeid pointer`);if(UA.hasOwnProperty(p)){if(T.wa)return;throw new EA(`Cannot register type '${J}' twice`)}UA[p]=S,delete VA[p],mA.hasOwnProperty(p)&&(S=mA[p],delete mA[p],S.forEach(O=>O()))}(D,u,y)}var U=(D,u,y)=>{switch(u){case 1:return y?p=>d[p]:p=>b[p];case 2:return y?p=>h[p>>1]:p=>l[p>>1];case 4:return y?p=>w[p>>2]:p=>M[p>>2];case 8:return y?p=>F[p>>3]:p=>G[p>>3];default:throw new TypeError(`invalid integer width (${u}): ${D}`)}},v=D=>{throw new EA(D.L.P.M.name+" instance already deleted")},H=!1,q=()=>{},V=D=>typeof FinalizationRegistry>"u"?(V=u=>u,D):(H=new FinalizationRegistry(u=>{--(u=u.L).count.value,u.count.value===0&&(u.S?u.W.Y(u.S):u.P.M.Y(u.O))}),V=u=>{var y=u.L;return y.S&&H.register(u,{L:y},u),u},q=u=>{H.unregister(u)},V(D));function K(){}var $=(D,u)=>Object.defineProperty(u,"name",{value:D}),z={},wA=(D,u,y)=>{if(D[u].R===void 0){var p=D[u];D[u]=function(...S){if(!D[u].R.hasOwnProperty(S.length))throw new EA(`Function '${y}' called with an invalid number of arguments (${S.length}) - expects one of (${D[u].R})!`);return D[u].R[S.length].apply(this,S)},D[u].R=[],D[u].R[p.aa]=p}},dA=(D,u,y)=>{if(e.hasOwnProperty(D)){if(y===void 0||e[D].R!==void 0&&e[D].R[y]!==void 0)throw new EA(`Cannot register public name '${D}' twice`);if(wA(e,D,D),e[D].R.hasOwnProperty(y))throw new EA(`Cannot register multiple overloads of a function with the same number of arguments (${y})!`);e[D].R[y]=u}else e[D]=u,e[D].aa=y};function LA(D,u,y,p,S,T,J,O){this.name=D,this.constructor=u,this.$=y,this.Y=p,this.U=S,this.ra=T,this.ea=J,this.pa=O,this.ya=[]}var zA=(D,u,y)=>{for(;u!==y;){if(!u.ea)throw new EA(`Expected null or instance of ${y.name}, got an instance of ${u.name}`);D=u.ea(D),u=u.U}return D},oa=D=>{if(D===null)return"null";var u=typeof D;return u==="object"||u==="array"||u==="function"?D.toString():""+D};function Ea(D,u){if(u===null){if(this.ha)throw new EA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new EA(`Cannot pass "${oa(u)}" as a ${this.name}`);if(!u.L.O)throw new EA(`Cannot pass deleted object as a pointer of type ${this.name}`);return zA(u.L.O,u.L.P.M,this.M)}function ya(D,u){if(u===null){if(this.ha)throw new EA(`null is not a valid ${this.name}`);if(this.ga){var y=this.ia();return D!==null&&D.push(this.Y,y),y}return 0}if(!u||!u.L)throw new EA(`Cannot pass "${oa(u)}" as a ${this.name}`);if(!u.L.O)throw new EA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.fa&&u.L.P.fa)throw new EA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);if(y=zA(u.L.O,u.L.P.M,this.M),this.ga){if(u.L.S===void 0)throw new EA("Passing raw pointer to smart pointer is illegal");switch(this.Da){case 0:if(u.L.W!==this)throw new EA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);y=u.L.S;break;case 1:y=u.L.S;break;case 2:if(u.L.W===this)y=u.L.S;else{var p=u.clone();y=this.za(y,Ke(()=>p.delete())),D!==null&&D.push(this.Y,y)}break;default:throw new EA("Unsupporting sharing policy")}}return y}function Wa(D,u){if(u===null){if(this.ha)throw new EA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new EA(`Cannot pass "${oa(u)}" as a ${this.name}`);if(!u.L.O)throw new EA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(u.L.P.fa)throw new EA(`Cannot convert argument of type ${u.L.P.name} to parameter type ${this.name}`);return zA(u.L.O,u.L.P.M,this.M)}var oe=(D,u,y)=>u===y?D:y.U===void 0||(D=oe(D,u,y.U))===null?null:y.pa(D),Mg={},Fe=(D,u)=>{if(!u.P||!u.O)throw new XA("makeClassHandle requires ptr and ptrType");if(!!u.W!=!!u.S)throw new XA("Both smartPtrType and smartPtr must be specified");return u.count={value:1},V(Object.create(D,{L:{value:u,writable:!0}}))};function ke(D,u,y,p,S,T,J,O,aA,gA,tA){this.name=D,this.M=u,this.ha=y,this.fa=p,this.ga=S,this.xa=T,this.Da=J,this.na=O,this.ia=aA,this.za=gA,this.Y=tA,S||u.U!==void 0?this.T=ya:(this.T=p?Ea:Wa,this.V=null)}var Dt,wt=(D,u,y)=>{if(!e.hasOwnProperty(D))throw new XA("Replacing nonexistent public symbol");e[D].R!==void 0&&y!==void 0?e[D].R[y]=u:(e[D]=u,e[D].aa=y)},Qa=(D,u)=>{D=TA(D);var y=Dt.get(u);if(typeof y!="function")throw new EA(`unknown function pointer with signature ${D}: ${u}`);return y};class Rg extends Error{}var pt=D=>{D=tr(D);var u=TA(D);return $a(D),u},Me=(D,u)=>{var y=[],p={};throw u.forEach(function S(T){p[T]||UA[T]||(VA[T]?VA[T].forEach(S):(y.push(T),p[T]=!0))}),new Rg(`${D}: `+y.map(pt).join([", "]))},je=(D,u)=>{for(var y=[],p=0;p<D;p++)y.push(M[u+4*p>>2]);return y};function yt(D){for(var u=1;u<D.length;++u)if(D[u]!==null&&D[u].V===void 0)return!0;return!1}function ve(D,u,y,p,S,T){var J=u.length;if(2>J)throw new EA("argTypes array size mismatch! Must at least get return value and 'this' types!");var O=u[1]!==null&&y!==null,aA=yt(u);y=!u[0].ma;var gA=u[0],tA=u[1];for(p=[D,m,p,S,lA,gA.N.bind(gA),tA?.T.bind(tA)],S=2;S<J;++S)gA=u[S],p.push(gA.T.bind(gA));if(!aA)for(S=O?1:2;S<u.length;++S)u[S].V!==null&&p.push(u[S].V);for(aA=yt(u),S=u.length-2,tA=[],gA=["fn"],O&&gA.push("thisWired"),J=0;J<S;++J)tA.push(`arg${J}`),gA.push(`arg${J}Wired`);tA=tA.join(","),gA=gA.join(","),tA=`return function (${tA}) {
|
|
7
|
+
`,aA&&(tA+=`var destructors = [];
|
|
8
|
+
`);var FA=aA?"destructors":"null",ha="humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");for(O&&(tA+=`var thisWired = toClassParamWire(${FA}, this);
|
|
9
|
+
`),J=0;J<S;++J){var ga=`toArg${J}Wire`;tA+=`var arg${J}Wired = ${ga}(${FA}, arg${J});
|
|
10
|
+
`,ha.push(ga)}if(tA+=(y||T?"var rv = ":"")+`invoker(${gA});
|
|
11
|
+
`,aA)tA+=`runDestructors(destructors);
|
|
12
|
+
`;else for(J=O?1:2;J<u.length;++J)T=J===1?"thisWired":"arg"+(J-2)+"Wired",u[J].V!==null&&(tA+=`${T}_dtor(${T});
|
|
13
|
+
`,ha.push(`${T}_dtor`));return y&&(tA+=`var ret = fromRetWire(rv);
|
|
14
|
+
return ret;
|
|
15
|
+
`),u=new Function(ha,tA+`}
|
|
16
|
+
`)(...p),$(D,u)}for(var Je,mt=D=>{const u=(D=D.trim()).indexOf("(");return u===-1?D:D.slice(0,u)},Ft=[],Va=[0,1,,1,null,1,!0,1,!1,1],He=D=>{9<D&&--Va[D+1]==0&&(Va[D]=void 0,Ft.push(D))},Ye=D=>{if(!D)throw new EA(`Cannot use deleted val. handle = ${D}`);return Va[D]},Ke=D=>{switch(D){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const u=Ft.pop()||Va.length;return Va[u]=D,Va[u+1]=1,u}},kt={name:"emscripten::val",N:D=>{var u=Ye(D);return He(D),u},T:(D,u)=>Ke(u),X:pA,V:null},Ng=(D,u,y)=>{switch(u){case 1:return y?function(p){return this.N(d[p])}:function(p){return this.N(b[p])};case 2:return y?function(p){return this.N(h[p>>1])}:function(p){return this.N(l[p>>1])};case 4:return y?function(p){return this.N(w[p>>2])}:function(p){return this.N(M[p>>2])};default:throw new TypeError(`invalid integer width (${u}): ${D}`)}},Mt=(D,u)=>{var y=UA[D];if(y===void 0)throw D=`${u} has unknown type ${pt(D)}`,new EA(D);return y},Gg=(D,u)=>{switch(u){case 4:return function(y){return this.N(k[y>>2])};case 8:return function(y){return this.N(N[y>>3])};default:throw new TypeError(`invalid float width (${u}): ${D}`)}},Sg=Object.assign({optional:!0},kt),Xa=(D,u,y)=>{var p=b;if(!(0<y))return 0;var S=u;y=u+y-1;for(var T=0;T<D.length;++T){var J=D.codePointAt(T);if(127>=J){if(u>=y)break;p[u++]=J}else if(2047>=J){if(u+1>=y)break;p[u++]=192|J>>6,p[u++]=128|63&J}else if(65535>=J){if(u+2>=y)break;p[u++]=224|J>>12,p[u++]=128|J>>6&63,p[u++]=128|63&J}else{if(u+3>=y)break;p[u++]=240|J>>18,p[u++]=128|J>>12&63,p[u++]=128|J>>6&63,p[u++]=128|63&J,T++}}return p[u]=0,u-S},Rt=D=>{for(var u=0,y=0;y<D.length;++y){var p=D.charCodeAt(y);127>=p?u++:2047>=p?u+=2:55296<=p&&57343>=p?(u+=4,++y):u+=3}return u},Nt=new TextDecoder,Te=(D,u,y,p)=>{if(y=u+y,p)return y;for(;D[u]&&!(u>=y);)++u;return u},Be=new TextDecoder("utf-16le"),QA=(D,u,y)=>(D>>=1,Be.decode(l.subarray(D,Te(l,D,u/2,y)))),ca=(D,u,y)=>{if(y??(y=2147483647),2>y)return 0;var p=u;y=(y-=2)<2*D.length?y/2:D.length;for(var S=0;S<y;++S)h[u>>1]=D.charCodeAt(S),u+=2;return h[u>>1]=0,u-p},qe=D=>2*D.length,Za=(D,u,y)=>{var p="";D>>=2;for(var S=0;!(S>=u/4);S++){var T=M[D+S];if(!T&&!y)break;p+=String.fromCodePoint(T)}return p},se=(D,u,y)=>{if(y??(y=2147483647),4>y)return 0;var p=u;y=p+y-4;for(var S=0;S<D.length;++S){var T=D.codePointAt(S);if(65535<T&&S++,w[u>>2]=T,(u+=4)+4>y)break}return w[u>>2]=0,u-p},Ug=D=>{for(var u=0,y=0;y<D.length;++y)65535<D.codePointAt(y)&&y++,u+=4;return u},xg=[],PB=(D,u,y)=>{var p=[];return D=D(p,y),p.length&&(M[u>>2]=Ke(p)),D},zB={},WB=D=>{var u=zB[D];return u===void 0?TA(D):u},Lg={},er=()=>{if(!Je){var D,u={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8",_:B||"./this.program"};for(D in Lg)Lg[D]===void 0?delete u[D]:u[D]=Lg[D];var y=[];for(D in u)y.push(`${D}=${u[D]}`);Je=y}return Je},VB=[null,[],[]],La=new Uint8Array(123),_a=25;0<=_a;--_a)La[48+_a]=52+_a,La[65+_a]=_a,La[97+_a]=26+_a;La[43]=62,La[47]=63,(()=>{let D=K.prototype;Object.assign(D,{isAliasOf:function(y){if(!(this instanceof K&&y instanceof K))return!1;var p=this.L.P.M,S=this.L.O;y.L=y.L;var T=y.L.P.M;for(y=y.L.O;p.U;)S=p.ea(S),p=p.U;for(;T.U;)y=T.ea(y),T=T.U;return p===T&&S===y},clone:function(){if(this.L.O||v(this),this.L.da)return this.L.count.value+=1,this;var y=V,p=Object,S=p.create,T=Object.getPrototypeOf(this),J=this.L;return(y=y(S.call(p,T,{L:{value:{count:J.count,ba:J.ba,da:J.da,O:J.O,P:J.P,S:J.S,W:J.W}}}))).L.count.value+=1,y.L.ba=!1,y},delete(){if(this.L.O||v(this),this.L.ba&&!this.L.da)throw new EA("Object already scheduled for deletion");q(this);var y=this.L;--y.count.value,y.count.value===0&&(y.S?y.W.Y(y.S):y.P.M.Y(y.O)),this.L.da||(this.L.S=void 0,this.L.O=void 0)},isDeleted:function(){return!this.L.O},deleteLater:function(){if(this.L.O||v(this),this.L.ba&&!this.L.da)throw new EA("Object already scheduled for deletion");return this.L.ba=!0,this}});const u=Symbol.dispose;u&&(D[u]=D.delete)})(),Object.assign(ke.prototype,{sa(D){return this.na&&(D=this.na(D)),D},ka(D){var u;(u=this.Y)==null||u.call(this,D)},X:pA,N:function(D){function u(){return this.ga?Fe(this.M.$,{P:this.xa,O:y,W:this,S:D}):Fe(this.M.$,{P:this,O:D})}var y=this.sa(D);if(!y)return this.ka(D),null;var p=((T,J)=>{if(J===void 0)throw new EA("ptr should not be undefined");for(;T.U;)J=T.ea(J),T=T.U;return Mg[J]})(this.M,y);if(p!==void 0)return p.L.count.value===0?(p.L.O=y,p.L.S=D,p.clone()):(p=p.clone(),this.ka(D),p);if(p=this.M.ra(y),!(p=z[p]))return u.call(this);p=this.fa?p.oa:p.pointerType;var S=oe(y,this.M,p.M);return S===null?u.call(this):this.ga?Fe(p.M.$,{P:p,O:S,W:this,S:D}):Fe(p.M.$,{P:p,O:S})}}),e.print&&(L=e.print),e.printErr&&(x=e.printErr),e.wasmBinary&&(E=e.wasmBinary),e.thisProgram&&(B=e.thisProgram);var tr,jg,$a,XB={x:()=>hA(""),q:D=>{var u=sA[D];delete sA[D];var y=u.ia,p=u.Y,S=u.la,T=S.map(J=>J.va).concat(S.map(J=>J.Ba));Ca([D],T,J=>{var O={};return S.forEach((aA,gA)=>{var tA=J[gA],FA=aA.ta,ha=aA.ua,ga=J[gA+S.length],qA=aA.Aa,ia=aA.Ca;O[aA.qa]={read:ja=>tA.N(FA(ha,ja)),write:(ja,Oe)=>{var Ae=[];qA(ia,ja,ga.T(Ae,Oe)),lA(Ae)},optional:J[gA].optional}}),[{name:u.name,N:aA=>{var gA,tA={};for(gA in O)tA[gA]=O[gA].read(aA);return p(aA),tA},T:(aA,gA)=>{for(var tA in O)if(!(tA in gA)&&!O[tA].optional)throw new TypeError(`Missing field: "${tA}"`);var FA=y();for(tA in O)O[tA].write(FA,gA[tA]);return aA!==null&&aA.push(p,FA),FA},X:pA,V:p}]})},n:(D,u,y,p,S)=>{u=TA(u);let T=J=>J;if(p=p===0n){const J=8*y;T=O=>BigInt.asUintN(J,O),S=T(S)}R(D,{name:u,N:T,T:(J,O)=>(typeof O=="number"&&(O=BigInt(O)),O),X:U(u,y,!p),V:null})},B:(D,u,y,p)=>{R(D,{name:u=TA(u),N:function(S){return!!S},T:function(S,T){return T?y:p},X:function(S){return this.N(b[S])},V:null})},j:(D,u,y,p,S,T,J,O,aA,gA,tA,FA,ha)=>{tA=TA(tA),T=Qa(S,T),O&&(O=Qa(J,O)),gA&&(gA=Qa(aA,gA)),ha=Qa(FA,ha);var ga=(qA=>{var ia=(qA=qA.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=ia&&57>=ia?`_${qA}`:qA})(tA);dA(ga,function(){Me(`Cannot construct ${tA} due to unbound types`,[p])}),Ca([D,u,y],p?[p]:[],qA=>{if(qA=qA[0],p)var ia=qA.M,ja=ia.$;else ja=K.prototype;qA=$(tA,function(...vg){if(Object.getPrototypeOf(this)!==Oe)throw new EA(`Use 'new' to construct ${tA}`);if(Ra.Z===void 0)throw new EA(`${tA} has no accessible constructor`);var gr=Ra.Z[vg.length];if(gr===void 0)throw new EA(`Tried to invoke ctor of ${tA} with invalid number of parameters (${vg.length}) - expected (${Object.keys(Ra.Z).toString()}) parameters instead!`);return gr.apply(this,vg)});var Oe=Object.create(ja,{constructor:{value:qA}});qA.prototype=Oe;var Ae,Ra=new LA(tA,qA,Oe,ha,ia,T,O,gA);return Ra.U&&((Ae=Ra.U).ja??(Ae.ja=[]),Ra.U.ja.push(Ra)),ia=new ke(tA,Ra,!0,!1,!1),Ae=new ke(tA+"*",Ra,!1,!1,!1),ja=new ke(tA+" const*",Ra,!1,!0,!1),z[D]={pointerType:Ae,oa:ja},wt(ga,qA),[ia,Ae,ja]})},g:(D,u,y,p,S,T)=>{var J=je(u,y);S=Qa(p,S),Ca([],[D],O=>{var aA=`constructor ${(O=O[0]).name}`;if(O.M.Z===void 0&&(O.M.Z=[]),O.M.Z[u-1]!==void 0)throw new EA(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${O.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return O.M.Z[u-1]=()=>{Me(`Cannot construct ${O.name} due to unbound types`,J)},Ca([],J,gA=>(gA.splice(1,0,null),O.M.Z[u-1]=ve(aA,gA,null,S,T),[])),[]})},b:(D,u,y,p,S,T,J,O,aA)=>{var gA=je(y,p);u=TA(u),u=mt(u),T=Qa(S,T),Ca([],[D],tA=>{function FA(){Me(`Cannot call ${ha} due to unbound types`,gA)}var ha=`${(tA=tA[0]).name}.${u}`;u.startsWith("@@")&&(u=Symbol[u.substring(2)]),O&&tA.M.ya.push(u);var ga=tA.M.$,qA=ga[u];return qA===void 0||qA.R===void 0&&qA.className!==tA.name&&qA.aa===y-2?(FA.aa=y-2,FA.className=tA.name,ga[u]=FA):(wA(ga,u,ha),ga[u].R[y-2]=FA),Ca([],gA,ia=>(ia=ve(ha,ia,tA,T,J,aA),ga[u].R===void 0?(ia.aa=y-2,ga[u]=ia):ga[u].R[y-2]=ia,[])),[]})},z:D=>R(D,kt),r:(D,u,y,p)=>{function S(){}u=TA(u),S.values={},R(D,{name:u,constructor:S,N:function(T){return this.constructor.values[T]},T:(T,J)=>J.value,X:Ng(u,y,p),V:null}),dA(u,S)},d:(D,u,y)=>{var p=Mt(D,"enum");u=TA(u),D=p.constructor,p=Object.create(p.constructor.prototype,{value:{value:y},constructor:{value:$(`${p.name}_${u}`,function(){})}}),D.values[y]=p,D[u]=p},m:(D,u,y)=>{R(D,{name:u=TA(u),N:p=>p,T:(p,S)=>S,X:Gg(u,y),V:null})},l:(D,u,y,p,S,T,J)=>{var O=je(u,y);D=TA(D),D=mt(D),S=Qa(p,S),dA(D,function(){Me(`Cannot call ${D} due to unbound types`,O)},u-1),Ca([],O,aA=>(aA=[aA[0],null].concat(aA.slice(1)),wt(D,ve(D,aA,null,S,T,J),u-1),[]))},c:(D,u,y,p,S)=>{u=TA(u);let T=O=>O;if(p===0){var J=32-8*y;T=O=>O<<J>>>J,S=T(S)}R(D,{name:u,N:T,T:(O,aA)=>aA,X:U(u,y,p!==0),V:null})},a:(D,u,y)=>{function p(T){return new S(d.buffer,M[T+4>>2],M[T>>2])}var S=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][u];R(D,{name:y=TA(y),N:p,X:p},{wa:!0})},h:D=>{R(D,Sg)},A:(D,u)=>{R(D,{name:u=TA(u),N(y){var p=(p=y+4)?Nt.decode(b.subarray(p,Te(b,p,M[y>>2],!0))):"";return $a(y),p},T(y,p){p instanceof ArrayBuffer&&(p=new Uint8Array(p));var S=typeof p=="string";if(!(S||ArrayBuffer.isView(p)&&p.BYTES_PER_ELEMENT==1))throw new EA("Cannot pass non-string to std::string");var T=S?Rt(p):p.length,J=jg(4+T+1),O=J+4;return M[J>>2]=T,S?Xa(p,O,T+1):b.set(p,O),y!==null&&y.push($a,J),J},X:pA,V(y){$a(y)}})},f:(D,u,y)=>{if(y=TA(y),u===2)var p=QA,S=ca,T=qe;else p=Za,S=se,T=Ug;R(D,{name:y,N:J=>{var O=p(J+4,M[J>>2]*u,!0);return $a(J),O},T:(J,O)=>{if(typeof O!="string")throw new EA(`Cannot pass non-string to C++ string type ${y}`);var aA=T(O),gA=jg(4+aA+u);return M[gA>>2]=aA/u,S(O,gA+4,aA+u),J!==null&&J.push($a,gA),gA},X:pA,V(J){$a(J)}})},i:(D,u,y,p,S,T)=>{sA[D]={name:TA(u),ia:Qa(y,p),Y:Qa(S,T),la:[]}},e:(D,u,y,p,S,T,J,O,aA,gA)=>{sA[D].la.push({qa:TA(u),va:y,ta:Qa(p,S),ua:T,Ba:J,Aa:Qa(O,aA),Ca:gA})},C:(D,u)=>{R(D,{ma:!0,name:u=TA(u),N:()=>{},T:()=>{}})},p:(D,u,y)=>{var[p,...S]=((aA,gA)=>{for(var tA=Array(aA),FA=0;FA<aA;++FA)tA[FA]=Mt(M[gA+4*FA>>2],`parameter ${FA}`);return tA})(D,u);u=p.T.bind(p);var T=S.map(aA=>aA.X.bind(aA));D--;var J={toValue:Ye};switch(D=T.map((aA,gA)=>{var tA=`argFromPtr${gA}`;return J[tA]=aA,`${tA}(args${gA?"+"+8*gA:""})`}),y){case 0:var O="toValue(handle)";break;case 2:O="new (toValue(handle))";break;case 3:O="";break;case 1:J.getStringOrSymbol=WB,O="toValue(handle)[getStringOrSymbol(methodName)]"}return O+=`(${D})`,p.ma||(J.toReturnWire=u,J.emval_returnValue=PB,O=`return emval_returnValue(toReturnWire, destructorsRef, ${O})`),O=`return function (handle, methodName, destructorsRef, args) {
|
|
17
|
+
${O}
|
|
18
|
+
}`,y=new Function(Object.keys(J),O)(...Object.values(J)),O=`methodCaller<(${S.map(aA=>aA.name)}) => ${p.name}>`,(aA=>{var gA=xg.length;return xg.push(aA),gA})($(O,y))},E:He,o:(D,u,y,p,S)=>xg[D](u,y,p,S),D:D=>{var u=Ye(D);lA(u),He(D)},s:(D,u,y,p)=>{var S=new Date().getFullYear(),T=new Date(S,0,1).getTimezoneOffset();S=new Date(S,6,1).getTimezoneOffset(),M[D>>2]=60*Math.max(T,S),w[u>>2]=+(T!=S),u=J=>{var O=Math.abs(J);return`UTC${0<=J?"-":"+"}${String(Math.floor(O/60)).padStart(2,"0")}${String(O%60).padStart(2,"0")}`},D=u(T),u=u(S),S<T?(Xa(D,y,17),Xa(u,p,17)):(Xa(D,p,17),Xa(u,y,17))},y:D=>{var u=b.length;if(2147483648<(D>>>=0))return!1;for(var y=1;4>=y;y*=2){var p=u*(1+.2/y);p=Math.min(p,D+100663296);A:{p=(Math.min(2147483648,65536*Math.ceil(Math.max(D,p)/65536))-c.buffer.byteLength+65535)/65536|0;try{c.grow(p),AA();var S=1;break A}catch{}S=void 0}if(S)return!0}return!1},t:(D,u)=>{var y,p=0,S=0;for(y of er()){var T=u+p;M[D+S>>2]=T,p+=Xa(y,T,1/0)+1,S+=4}return 0},u:(D,u)=>{var y=er();for(var p of(M[D>>2]=y.length,D=0,y))D+=Rt(p)+1;return M[u>>2]=D,0},v:()=>52,w:function(){return 70},k:(D,u,y,p)=>{for(var S=0,T=0;T<y;T++){var J=M[u>>2],O=M[u+4>>2];u+=8;for(var aA=0;aA<O;aA++){var gA=D,tA=b[J+aA],FA=VB[gA];tA===0||tA===10?(gA=gA===1?L:x,tA=Te(FA,0),gA(tA=Nt.decode(FA.buffer?FA.subarray(0,tA):new Uint8Array(FA.slice(0,tA)))),FA.length=0):FA.push(tA)}S+=O}return M[p>>2]=S,0}},Re=await async function(){var D;function u(p){var S;return Re=p.exports,c=Re.F,AA(),Dt=Re.H,tr=(p=Re).I,e._malloc=jg=p.J,e._free=$a=p.K,oA--,(S=e.monitorRunDependencies)==null||S.call(e,oA),oA==0&&uA&&(p=uA,uA=null,p()),Re}oA++,(D=e.monitorRunDependencies)==null||D.call(e,oA);var y={a:XB};return e.instantiateWasm?new Promise(p=>{e.instantiateWasm(y,(S,T)=>{p(u(S))})}):(Z??(Z=(p=>{if(I)return p=Buffer.from(p,"base64"),new Uint8Array(p.buffer,p.byteOffset,p.length);for(var S,T,J=0,O=0,aA=p.length,gA=new Uint8Array((3*aA>>2)-(p[aA-2]=="=")-(p[aA-1]=="="));J<aA;J+=4,O+=3)S=La[p.charCodeAt(J+1)],T=La[p.charCodeAt(J+2)],gA[O]=La[p.charCodeAt(J)]<<2|S>>4,gA[O+1]=S<<4|T>>2,gA[O+2]=T<<6|La[p.charCodeAt(J+3)];return gA})("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C0EAEKEDRQRAQZiDASEBIARBmIMBQRgQiwFFDQJBsIMBIQEgBEGwgwFBGBCLAUUNAkEAIQBBvO4BLQAARQRAA0AgAEECdCAAQcYfEKIDNgKM7gEgAEEBaiIAQQZHDQALQbzuAUEBOgAAQaTuAUGM7gEoAgA2AgALQYzuASEBIAJBCGoiAEGM7gFBGBCLAUUNAkGk7gEhASAAQaTuAUEYEIsBRQ0CQRgQNCIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGc8QFBAToAAEGY8QEgATYCACABC80KAgV/CX4jAEHgAGsiBSQAIARC////////P4MhCiACIASFQoCAgICAgICAgH+DIQsgAkL///////8/gyIMQiCIIQ8gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCwwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCELIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACELQgAhAQwDCyALQoCAgICAgMD//wCEIQtCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASANhEIAIQFQBEBCgICAgICA4P//ACELDAMLIAtCgICAgICAwP//AIQhCwwCCyABIA2EUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyANQv///////z9YBEAgBUHQAGogASAMIAEgDCAMUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDWCIMQiCIIQ8gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAogAyAKIApQIggbeULAAEIAIAgbfKciCEEPaxBEIAYgCGtBEGohBiAFKQNIIQogBSkDQCEDCyAHIAlqIAZqQf//AGshBgJAIApCD4YiDkIgiEKAgICACIQiAiABQiCIIgR+IhAgA0IPhiIRQiCIIgogD0KAgASEIg1+fCIPIBBUrSAPIANCMYggDoRC/////w+DIgMgDEL/////D4MiDH58Ig4gD1StfCACIA1+fCAOIA4gEUKAgP7/D4MiDyAMfiIRIAQgCn58IhAgEVStIBAgECADIAFC/////w+DIgF+fCIQVq18fCIOVq18IAMgDX4iEiACIAx+fCIRIBJUrUIghiARQiCIhHwgDiAOIBFCIIZ8Ig5WrXwgDiANIA9+Ig0gCiAMfnwiDCABIAJ+fCICIAMgBH58IgNCIIggAiADVq0gDCANVK0gAiAMVK18fEIghoR8IgIgDlStfCACIBAgBCAPfiIMIAEgCn58IgRCIIggBCAMVK1CIIaEfCIKIBBUrSAKIANCIIZ8IgMgClStfHwiCiACVK18IAogAyAEQiCGIgIgASAPfnwiASACVK18IgIgA1StfCIEIApUrXwiA0KAgICAgIDAAINQRQRAIAZBAWohBgwBCyABQj+IIANCAYYgBEI/iIQhAyAEQgGGIAJCP4iEIQQgAUIBhiEBIAJCAYaEIQILIAZB//8BTgRAIAtCgICAgICAwP//AIQhC0IAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogASACIAZB/wBqIgYQRCAFQSBqIAQgAyAGEEQgBUEQaiABIAIgBxCKASAFIAQgAyAHEIoBIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQEgBSkDKCAFKQMYhCECIAUpAwAhBCAFKQMIDAILQgAhAQwCCyADQv///////z+DIAatQjCGhAsgC4QhCyABUCACQgBZIAJCgICAgICAgICAf1EbRQRAIAsgBEIBfCIBUK18IQsMAQsgASACQoCAgICAgICAgH+FhFBFBEAgBCEBDAELIAsgBCAEQgGDfCIBIARUrXwhCwsgACABNwMAIAAgCzcDCCAFQeAAaiQACwYAIAAQLQt8AQN/IwBBEGsiASQAIAEgADYCDCMAQRBrIgIkACAAKAIAQX9HBEAgAkEIaiACQQxqIAFBDGoQVRBVIQMDQCAAKAIAQQFGDQALIAAoAgBFBEAgAEEBNgIAIAMQ0gIgAEF/NgIACwsgAkEQaiQAIAAoAgQgAUEQaiQAQQFrCyAAIAAgAUEBazYCBCAAQeDVATYCACAAQZCtATYCACAAC/cFAQl/IwBBEGsiCSQAIAEQ1wIgCUEMaiABEFUhCCAAQQhqIgMQayACTQRAAkAgAkEBaiIAIAMQayIBSwRAIwBBIGsiCiQAAkAgACABayIHIAMoAgggAygCBGtBAnVNBEAgAyAHENkCDAELIApBDGohAQJ/IAMQayAHaiEFIwBBEGsiACQAIAAgBTYCDCAFELwCIgRNBEAgAxC5AiIFIARBAXZJBEAgACAFQQF0NgIIIABBCGogAEEMahCgASgCACEECyAAQRBqJAAgBAwBCxCMAQALIQQgAxBrIQUjAEEQayIAJAAgASADQQxqIgs2AhAgAUEANgIMIAQEfyAAQQhqIAsgBBC7AiAAKAIIIQYgACgCDAVBAAshBCABIAY2AgAgASAGIAVBAnRqIgU2AgggASAGIARBAnRqNgIMIAEgBTYCBCAAQRBqJAAjAEEQayIGJAAgASgCCCEEIAZBBGoiACABQQhqNgIIIAAgBDYCACAAIAQgB0ECdGo2AgQgACgCACEEA0AgACgCBCAERwRAIAEoAhAaIAQQugIgACAAKAIAQQRqIgQ2AgAMAQsLIAAoAgggACgCADYCACAGQRBqJAAgASgCBCADKAIAIgAgAygCBGtqIQQgAygCBCAAayIHBEAgBCAAIAf8CgAACyABIAQ2AgQgAyADKAIANgIEIAMgAUEEahDXASADQQRqIAFBCGoQ1wEgA0EIaiABQQxqENcBIAEgASgCBDYCACADEGsaIAEoAgQhAANAIAEoAggiBCAARwRAIAEgBEEEazYCCCABKAIQGgwBCwsgASgCACIABEAgASgCECAAIAEoAgwgASgCAGtBAnUQuAILCyAKQSBqJAAMAQsgACABSQRAIAMoAgAgAEECdGohACADEGsaIAMgABDYAgsLCyADIAIQggEoAgAEQCADIAIQggEoAgAQvwELIAgQrAEhACADIAIQggEgADYCACAIKAIAIQAgCEEANgIAIAAEQCAAEL8BCyAJQRBqJAALySgBC38jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYzqASgCACIEQRAgAEELakH4A3EgAEELSRsiBkEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUG06gFqIgAgASgCvOoBIgEoAggiBUYEQEGM6gEgBEF+IAJ3cTYCAAwBCyAFIAA2AgwgACAFNgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMCwsgBkGU6gEoAgAiCE0NASABBEACQEECIAB0IgJBACACa3IgASAAdHFoIgFBA3QiAEG06gFqIgIgACgCvOoBIgAoAggiBUYEQEGM6gEgBEF+IAF3cSIENgIADAELIAUgAjYCDCACIAU2AggLIAAgBkEDcjYCBCAAIAZqIgcgAUEDdCIBIAZrIgVBAXI2AgQgACABaiAFNgIAIAgEQCAIQXhxQbTqAWohAUGg6gEoAgAhAgJ/IARBASAIQQN2dCIDcUUEQEGM6gEgAyAEcjYCACABDAELIAEoAggLIQMgASACNgIIIAMgAjYCDCACIAE2AgwgAiADNgIICyAAQQhqIQBBoOoBIAc2AgBBlOoBIAU2AgAMCwtBkOoBKAIAIgtFDQEgC2hBAnQoArzsASICKAIEQXhxIAZrIQMgAiEBA0ACQCABKAIQIgBFBEAgASgCFCIARQ0BCyAAKAIEQXhxIAZrIgEgAyABIANJIgEbIQMgACACIAEbIQIgACEBDAELCyACKAIYIQkgAiACKAIMIgBHBEAgAigCCCIBIAA2AgwgACABNgIIDAoLIAIoAhQiAQR/IAJBFGoFIAIoAhAiAUUNAyACQRBqCyEFA0AgBSEHIAEiAEEUaiEFIAAoAhQiAQ0AIABBEGohBSAAKAIQIgENAAsgB0EANgIADAkLQX8hBiAAQb9/Sw0AIABBC2oiAUF4cSEGQZDqASgCACIHRQ0AQR8hCEEAIAZrIQMgAEH0//8HTQRAIAZBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmohCAsCQAJAAkAgCEECdCgCvOwBIgFFBEBBACEADAELQQAhACAGQRkgCEEBdmtBACAIQR9HG3QhAgNAAkAgASgCBEF4cSAGayIEIANPDQAgASEFIAQiAw0AQQAhAyABIQAMAwsgACABKAIUIgQgBCABIAJBHXZBBHFqKAIQIgFGGyAAIAQbIQAgAkEBdCECIAENAAsLIAAgBXJFBEBBACEFQQIgCHQiAEEAIABrciAHcSIARQ0DIABoQQJ0KAK87AEhAAsgAEUNAQsDQCAAKAIEQXhxIAZrIgIgA0khASACIAMgARshAyAAIAUgARshBSAAKAIQIgEEfyABBSAAKAIUCyIADQALCyAFRQ0AIANBlOoBKAIAIAZrTw0AIAUoAhghCCAFIAUoAgwiAEcEQCAFKAIIIgEgADYCDCAAIAE2AggMCAsgBSgCFCIBBH8gBUEUagUgBSgCECIBRQ0DIAVBEGoLIQIDQCACIQQgASIAQRRqIQIgACgCFCIBDQAgAEEQaiECIAAoAhAiAQ0ACyAEQQA2AgAMBwsgBkGU6gEoAgAiBU0EQEGg6gEoAgAhAAJAIAUgBmsiAUEQTwRAIAAgBmoiAiABQQFyNgIEIAAgBWogATYCACAAIAZBA3I2AgQMAQsgACAFQQNyNgIEIAAgBWoiASABKAIEQQFyNgIEQQAhAkEAIQELQZTqASABNgIAQaDqASACNgIAIABBCGohAAwJCyAGQZjqASgCACICSQRAQZjqASACIAZrIgE2AgBBpOoBQaTqASgCACIAIAZqIgI2AgAgAiABQQFyNgIEIAAgBkEDcjYCBCAAQQhqIQAMCQtBACEAIAZBL2oiAwJ/QeTtASgCAARAQeztASgCAAwBC0Hw7QFCfzcCAEHo7QFCgKCAgICABDcCAEHk7QEgCkEMakFwcUHYqtWqBXM2AgBB+O0BQQA2AgBByO0BQQA2AgBBgCALIgFqIgRBACABayIHcSIBIAZNDQhBxO0BKAIAIgUEQEG87QEoAgAiCCABaiIJIAhNIAUgCUlyDQkLAkBByO0BLQAAQQRxRQRAAkACQAJAAkBBpOoBKAIAIgUEQEHM7QEhAANAIAAoAgAiCCAFTQRAIAUgCCAAKAIEakkNAwsgACgCCCIADQALC0EAEKUBIgJBf0YNAyABIQRB6O0BKAIAIgBBAWsiBSACcQRAIAEgAmsgAiAFakEAIABrcWohBAsgBCAGTQ0DQcTtASgCACIABEBBvO0BKAIAIgUgBGoiByAFTSAAIAdJcg0ECyAEEKUBIgAgAkcNAQwFCyAEIAJrIAdxIgQQpQEiAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAZBMGogBE0EQCAAIQIMBAtB7O0BKAIAIgIgAyAEa2pBACACa3EiAhClAUF/Rg0BIAIgBGohBCAAIQIMAwsgAkF/Rw0CC0HI7QFByO0BKAIAQQRyNgIACyABEKUBIgJBf0ZBABClASIAQX9GciAAIAJNcg0FIAAgAmsiBCAGQShqTQ0FC0G87QFBvO0BKAIAIARqIgA2AgBBwO0BKAIAIABJBEBBwO0BIAA2AgALAkBBpOoBKAIAIgMEQEHM7QEhAANAIAIgACgCACIBIAAoAgQiBWpGDQIgACgCCCIADQALDAQLQZzqASgCACIAQQAgACACTRtFBEBBnOoBIAI2AgALQQAhAEHQ7QEgBDYCAEHM7QEgAjYCAEGs6gFBfzYCAEGw6gFB5O0BKAIANgIAQdjtAUEANgIAA0AgAEEDdCIBIAFBtOoBaiIFNgK86gEgASAFNgLA6gEgAEEBaiIAQSBHDQALQZjqASAEQShrIgBBeCACa0EHcSIBayIFNgIAQaTqASABIAJqIgE2AgAgASAFQQFyNgIEIAAgAmpBKDYCBEGo6gFB9O0BKAIANgIADAQLIAIgA00gASADS3INAiAAKAIMQQhxDQIgACAEIAVqNgIEQaTqASADQXggA2tBB3EiAGoiATYCAEGY6gFBmOoBKAIAIARqIgIgAGsiADYCACABIABBAXI2AgQgAiADakEoNgIEQajqAUH07QEoAgA2AgAMAwtBACEADAYLQQAhAAwEC0Gc6gEoAgAgAksEQEGc6gEgAjYCAAsgAiAEaiEFQcztASEAAkADQCAFIAAoAgAiAUcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAwtBzO0BIQADQAJAIAAoAgAiASADTQRAIAMgASAAKAIEaiIFSQ0BCyAAKAIIIQAMAQsLQZjqASAEQShrIgBBeCACa0EHcSIBayIHNgIAQaTqASABIAJqIgE2AgAgASAHQQFyNgIEIAAgAmpBKDYCBEGo6gFB9O0BKAIANgIAIAMgBUEnIAVrQQdxakEvayIAIAAgA0EQakkbIgFBGzYCBCABQdTtASkCADcCECABQcztASkCADcCCEHU7QEgAUEIajYCAEHQ7QEgBDYCAEHM7QEgAjYCAEHY7QFBADYCACABQRhqIQADQCAAQQc2AgQgAEEIaiAAQQRqIQAgBUkNAAsgASADRg0AIAEgASgCBEF+cTYCBCADIAEgA2siAkEBcjYCBCABIAI2AgACfyACQf8BTQRAIAJBeHFBtOoBaiEAAn9BjOoBKAIAIgFBASACQQN2dCICcUUEQEGM6gEgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDEEMIQJBCAwBC0EfIQAgAkH///8HTQRAIAJBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAAsgAyAANgIcIANCADcCECAAQQJ0QbzsAWohAQJAAkBBkOoBKAIAIgVBASAAdCIEcUUEQEGQ6gEgBCAFcjYCACABIAM2AgAMAQsgAkEZIABBAXZrQQAgAEEfRxt0IQAgASgCACEFA0AgBSIBKAIEQXhxIAJGDQIgAEEddiEFIABBAXQhACABIAVBBHFqIgQoAhAiBQ0ACyAEIAM2AhALIAMgATYCGEEIIQIgAyIBIQBBDAwBCyABKAIIIgAgAzYCDCABIAM2AgggAyAANgIIQQAhAEEYIQJBDAsgA2ogATYCACACIANqIAA2AgALQZjqASgCACIAIAZNDQBBmOoBIAAgBmsiATYCAEGk6gFBpOoBKAIAIgAgBmoiAjYCACACIAFBAXI2AgQgACAGQQNyNgIEIABBCGohAAwEC0GI6gFBMDYCAEEAIQAMAwsgACACNgIAIAAgACgCBCAEajYCBCACQXggAmtBB3FqIgggBkEDcjYCBCABQXggAWtBB3FqIgQgBiAIaiIDayEHAkBBpOoBKAIAIARGBEBBpOoBIAM2AgBBmOoBQZjqASgCACAHaiIANgIAIAMgAEEBcjYCBAwBC0Gg6gEoAgAgBEYEQEGg6gEgAzYCAEGU6gFBlOoBKAIAIAdqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAAwBCyAEKAIEIgBBA3FBAUYEQCAAQXhxIQkgBCgCDCECAkAgAEH/AU0EQCAEKAIIIgEgAkYEQEGM6gFBjOoBKAIAQX4gAEEDdndxNgIADAILIAEgAjYCDCACIAE2AggMAQsgBCgCGCEGAkAgAiAERwRAIAQoAggiACACNgIMIAIgADYCCAwBCwJAIAQoAhQiAAR/IARBFGoFIAQoAhAiAEUNASAEQRBqCyEBA0AgASEFIAAiAkEUaiEBIAAoAhQiAA0AIAJBEGohASACKAIQIgANAAsgBUEANgIADAELQQAhAgsgBkUNAAJAIAQoAhwiAEECdCIBKAK87AEgBEYEQCABQbzsAWogAjYCACACDQFBkOoBQZDqASgCAEF+IAB3cTYCAAwCCwJAIAQgBigCEEYEQCAGIAI2AhAMAQsgBiACNgIUCyACRQ0BCyACIAY2AhggBCgCECIABEAgAiAANgIQIAAgAjYCGAsgBCgCFCIARQ0AIAIgADYCFCAAIAI2AhgLIAcgCWohByAEIAlqIgQoAgQhAAsgBCAAQX5xNgIEIAMgB0EBcjYCBCADIAdqIAc2AgAgB0H/AU0EQCAHQXhxQbTqAWohAAJ/QYzqASgCACIBQQEgB0EDdnQiAnFFBEBBjOoBIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwBC0EfIQIgB0H///8HTQRAIAdBJiAHQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgAyACNgIcIANCADcCECACQQJ0QbzsAWohAAJAAkBBkOoBKAIAIgFBASACdCIFcUUEQEGQ6gEgASAFcjYCACAAIAM2AgAMAQsgB0EZIAJBAXZrQQAgAkEfRxt0IQIgACgCACEBA0AgASIAKAIEQXhxIAdGDQIgAkEddiEBIAJBAXQhAiAAIAFBBHFqIgUoAhAiAQ0ACyAFIAM2AhALIAMgADYCGCADIAM2AgwgAyADNgIIDAELIAAoAggiASADNgIMIAAgAzYCCCADQQA2AhggAyAANgIMIAMgATYCCAsgCEEIaiEADAILAkAgCEUNAAJAIAUoAhwiAUECdCICKAK87AEgBUYEQCACQbzsAWogADYCACAADQFBkOoBIAdBfiABd3EiBzYCAAwCCwJAIAUgCCgCEEYEQCAIIAA2AhAMAQsgCCAANgIUCyAARQ0BCyAAIAg2AhggBSgCECIBBEAgACABNgIQIAEgADYCGAsgBSgCFCIBRQ0AIAAgATYCFCABIAA2AhgLAkAgA0EPTQRAIAUgAyAGaiIAQQNyNgIEIAAgBWoiACAAKAIEQQFyNgIEDAELIAUgBkEDcjYCBCAFIAZqIgQgA0EBcjYCBCADIARqIAM2AgAgA0H/AU0EQCADQXhxQbTqAWohAAJ/QYzqASgCACIBQQEgA0EDdnQiAnFFBEBBjOoBIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgBDYCCCABIAQ2AgwgBCAANgIMIAQgATYCCAwBC0EfIQAgA0H///8HTQRAIANBJiADQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAAsgBCAANgIcIARCADcCECAAQQJ0QbzsAWohAQJAAkAgB0EBIAB0IgJxRQRAQZDqASACIAdyNgIAIAEgBDYCACAEIAE2AhgMAQsgA0EZIABBAXZrQQAgAEEfRxt0IQAgASgCACEBA0AgASICKAIEQXhxIANGDQIgAEEddiEBIABBAXQhACACIAFBBHFqIgcoAhAiAQ0ACyAHIAQ2AhAgBCACNgIYCyAEIAQ2AgwgBCAENgIIDAELIAIoAggiACAENgIMIAIgBDYCCCAEQQA2AhggBCACNgIMIAQgADYCCAsgBUEIaiEADAELAkAgCUUNAAJAIAIoAhwiAUECdCIFKAK87AEgAkYEQCAFQbzsAWogADYCACAADQFBkOoBIAtBfiABd3E2AgAMAgsCQCACIAkoAhBGBEAgCSAANgIQDAELIAkgADYCFAsgAEUNAQsgACAJNgIYIAIoAhAiAQRAIAAgATYCECABIAA2AhgLIAIoAhQiAUUNACAAIAE2AhQgASAANgIYCwJAIANBD00EQCACIAMgBmoiAEEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwBCyACIAZBA3I2AgQgAiAGaiIFIANBAXI2AgQgAyAFaiADNgIAIAgEQCAIQXhxQbTqAWohAEGg6gEoAgAhAQJ/QQEgCEEDdnQiByAEcUUEQEGM6gEgBCAHcjYCACAADAELIAAoAggLIQQgACABNgIIIAQgATYCDCABIAA2AgwgASAENgIIC0Gg6gEgBTYCAEGU6gEgAzYCAAsgAkEIaiEACyAKQRBqJAAgAAsIACAAQQAQPAsVACAAIAE2AgAgACACKAIANgIEIAALCgAgACgCABC9AwsLACAAKAIAEMMDwAsXACAAEEcEQCAAKAIAIAAQfhCpAQsgAAs7AQJ/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAiAgRAIAAgAjYCBCAAKAIIGiACEC0LIAFBEGokAAstACACRQRAIAAoAgQgASgCBEYPCyAAIAFGBEBBAQ8LIAAoAgQgASgCBBDQAUULIQEBfyAAKAIAIQIgACABNgIAIAIEQCACIAAoAgQRAgALCwYAEMoDAAsNACAAKAIAELwDGiAACw0AIAAoAgAQnQIaIAALdQEBfiAAIAEgBH4gAiADfnwgA0IgiCICIAFCIIgiBH58IANC/////w+DIgMgAUL/////D4MiAX4iBUIgiCADIAR+fCIDQiCIfCABIAJ+IANC/////w+DfCIBQiCIfDcDCCAAIAVC/////w+DIAFCIIaENwMACxEAIAAgASAAKAIAKAIcEQQAC8EBAQN/IAAtAABBIHFFBEACQCAAKAIQIgMEfyADBSAAEN8BDQEgACgCEAsgACgCFCIEayACSQRAIAAgASACIAAoAiQRAwAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQMAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEHEaIAAgACgCFCACajYCFAsLC6EBAQJ/AkAgABAfRSACIAFrQQVIcg0AIAEgAhDHASACQQRrIQQgABAjIgIgABAfaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAtpAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABIAIgA2siA0GAAiADQYACSSIBGxCYAiABRQRAA0AgACAFQYACEEIgA0GAAmsiA0H/AUsNAAsLIAAgBSADEEILIAVBgAJqJAALBABBAAsKACAALQALQQd2CwoAIABB0PIBEHoLCgAgAEHY8gEQegvPCQIEfwR+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiDEL///////8/gyEJIAIgBCAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5QsAAQgAgBRt8pyIFQQ9rEEQgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3lCwABCACAHG3ynIgdBD2sQREEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEEQgBkEwaiACIAEgBxCKASAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQlCgICAgICAgASEIQsgCkIDhiEKAkAgBEIAUwRAQgAhA0IAIQQgCSAKhSABIAuFhFANAiAKIAl9IQIgCyABfSAJIApWrX0iBEL/////////A1YNASAGQSBqIAIgBCACIAQgBFAiBxt5QsAAQgAgBxt8p0EMayIHEEQgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBEIAYgAiAEQQEgBWsQigEgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIARCPYYgAkIDiIQhASAEQgOIQv///////z+DIAetQjCGhCADhCEEAkACQCACp0EHcSIFQQRHBEAgBCABIAEgBUEES618IgNWrXwhBAwBCyAEIAEgASABQgGDfCIDVq18IQQMAQsgBUUN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C14BA38gAEEANgIIIABCADcCACABKAIAIQMgASgCBCIBIANrIgRBAnUiAgRAIAAgAhCuAyAAKAIEIQIgBEUgASADRnJFBEAgAiADIAT8CgAACyAAIAIgBGo2AgQLIAALDQAgACgCACABQQJ0agsXACAAEEcEQCAAIAE2AgQPCyAAIAEQUAthAQF/IwBBEGsiAiQAIAIgADYCDAJAIAAgAUYNAANAIAIgAUEBayIBNgIIIAAgAU8NASACKAIMIAIoAggQ8wIgAiACKAIMQQFqIgA2AgwgAigCCCEBDAALAAsgAkEQaiQAC6wBAQR/IwBBEGsiByQAAkAgAEUNACAEKAIMIQYgAiABa0ECdSIIQQBKBEAgACABIAgQjQIgCEcNAQsgAyABa0ECdSIBIAZIBEAgACAHQQRqIAYgAWsiASAFEP0CIgUQIyABEI0CIQYgBRA5GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEI0CIAFHDQELIAQoAgwaIARBADYCDCAAIQkLIAdBEGokACAJCycBAX8jAEEQayIDJAAgAyACNgIMIABB5AAgASACENEBIANBEGokAAvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEAgACACVCABIANTIAEgA1EbBEBBfw8LIAAgAoUgASADhYRCAFIPCyAAIAJWIAEgA1UgASADURsEQEF/DwsgACAChSABIAOFhEIAUiEECyAEC+wBAQR/IwBBEGsiBCQAIABBADYCBCMAQRBrIgUkACAEQQA6AA8gACAAKAIAQQxrKAIAahDZASEGIAAgACgCAEEMaygCAGohAwJAIAYEQCADKAJIBEAgACAAKAIAQQxrKAIAaigCSBDFAwsgBCAAIAAoAgBBDGsoAgBqENkBOgAPDAELIANBBBDVAQsgBUEQaiQAQQQhAyAELQAPBEAgACAAIAAoAgBBDGsoAgBqKAIYIgMgASACIAMoAgAoAiARAwAiATYCBEEGQQAgASACRxshAwsgACAAKAIAQQxrKAIAaiADENUBIARB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AxsLPAAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIACywBAX8gAEEANgIIIABCADcCACAAIAEoAgAiAiABKAIEIgEgASACaxDAAyAACwgAIABB/wFxC/wBAQN/IAAoAgQgACgCACIDa0ECdSICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrQQJ1TQRAIAAoAgQiASACQQJ0aiECA0AgASACRgRAIAAgAjYCBAUgAUEANgIAIAFBBGohAQwBCwsMAQsgA0EMaiAAIAEgACgCAGtBAnUgAmoQtgEgACgCBCAAKAIAa0ECdSAAEIcCIgQoAggiASACQQJ0aiECA0AgASACRwRAIAFBADYCACABQQRqIQEMAQsLIAQgAjYCCCAAIAQQhQIgBBCBAgsgA0EgaiQADwsgASACSQRAIAAgAyABQQJ0ajYCBAsLUgECf0HU3gEoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQGA0BC0GI6gFBMDYCAEF/DwtB1N4BIAA2AgAgAQt/AgF+A38CQCAAQoCAgIAQVARAIAAhAgwBCwNAIAFBAWsiASAAIABCCoAiAkIKfn2nQTByOgAAIABC/////58BViACIQANAAsLIAJQRQRAIAKnIQMDQCABQQFrIgEgAyADQQpuIgRBCmxrQTByOgAAIANBCUsgBCEDDQALCyABC78BAQN/IAAoAgQgACgCACIDayICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrTQRAIAAgAhCYAwwBCyACIANBDGogACABIAJqIAAoAgBrELQBIAAoAgQgACgCAGsgABDGASIEKAIIIgFqIQIDQCABIAJHBEAgAUEAOgAAIAFBAWohAQwBCwsgBCACNgIIIAAgBBDvASAEELoBCyADQSBqJAAPCyABIAJJBEAgACABIANqNgIECwt9AQN/AkACQCAAIgFBA3FFDQAgAS0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBQYCChAggAigCACIDayADckGAgYKEeHFBgIGChHhGDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAA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BEBBCiEBIAAQXgwBCyAAEH5BAWshASAAKAIECyIDIAFGBEAgACABQQEgASABEPQBIAAQIxoMAQsgABAjGiAEDQAgACIBIANBAWoQUAwBCyAAKAIAIQEgACADQQFqNgIECyABIANqIgAgAkEPahBdIAJBADoADiAAQQFqIAJBDmoQXSACQRBqJAALoQIBA38jAEEgayIIJABB9////wciCSABQX9zaiACTwRAIAAQIyEKIAFB8////wNJBEAgCCABQQF0NgIcIAggASACajYCECAIQRBqIAhBHGoQoAEoAgAQnwFBAWohCQsgCEEcaiAIQRhqIAAQVSgCABC8ASAIQRBqIAkQngEgCCgCECECIAgoAhQaIAQEQCACIAogBBBNCyAGBEAgAiAEaiAHIAYQTQsgAyAEIAVqIglrIQcgAyAJRwRAIAIgBGogBmogBCAKaiAFaiAHEE0LIAFBCkcEQCAKEIsCCyAAIAI2AgAgACAIKAIUEFwgACAEIAZqIAdqIgA2AgQgCEEAOgAPIAAgAmogCEEPahBdIAhBHGoQuwEgCEEgaiQADwsQWwALCQAgAEEBEKgCCwoAIAAoAgAQHxoLCQAgACABEFUaCwcAIABBAkkLBABBBAsoAQF/IAAgACgCBEEBayIBNgIEIAFBf0YEQCAAIAAoAgAoAggRAgALC5UBAQN/IwBBEGsiBCQAIAQgATYCDCAEIAM2AgggBEEEaiAEQQxqEGMgBCgCCCEDIwBBEGsiASQAIAEgAzYCDCABIAM2AghBfyEFAkBBAEEAIAIgAxDRASIDQQBIDQAgACADQQFqIgMQNCIANgIAIABFDQAgACADIAIgASgCDBDRASEFCyABQRBqJAAQYiAEQRBqJAAgBQsPACAAIAAoAgAoAiQRAAALEQAgACABIAEoAgAoAiARAQALDgAgACABKAIANgIAIAALCABB/////wcLBQBB/wALOwAgACADNgIQIAAgAQR/IAEQUwVBAAsiAzYCACAAIAIgA2oiAjYCCCAAIAEgA2o2AgwgACACNgIEIAALYQEBfyMAQRBrIgIkACACIAA2AgwCQCAAIAFGDQADQCACIAFBBGsiATYCCCAAIAFPDQEgAigCDCACKAIIENcBIAIgAigCDEEEaiIANgIMIAIoAgghAQwACwALIAJBEGokAAs5AgF/AX4jAEEQayIEJAAgAykDACEFIAQgAykDCDcDCCAEIAU3AwAgACABIAIgBBDAASAEQRBqJAAL0AEBAn8gAkGAEHEEQCAAQSs6AAAgAEEBaiEACyACQYAIcQRAIABBIzoAACAAQQFqIQALIAJBhAJxIgNBhAJHBEAgAEGu1AA7AAAgAEECaiEACyACQYCAAXEhAgNAIAEtAAAiBARAIAAgBDoAACAAQQFqIQAgAUEBaiEBDAELCyAAAn8CQCADQYACRwRAIANBBEcNAUHGAEHmACACGwwCC0HFAEHlACACGwwBC0HBAEHhACACGyADQYQCRg0AGkHHAEHnACACGws6AAAgA0GEAkcLKwEBfyMAQRBrIgUkACAFIAQoAgA2AgAgACABIAIgAyAFEJYBIAVBEGokAAuqAQEBfwJAIANBgBBxRSACRXINACADQcoAcSIEQQhGIARBwABGcg0AIABBKzoAACAAQQFqIQALIANBgARxBEAgAEEjOgAAIABBAWohAAsDQCABLQAAIgQEQCAAIAQ6AAAgAEEBaiEAIAFBAWohAQwBCwsgAAJ/Qe8AIANBygBxIgFBwABGDQAaQdgAQfgAIANBgIABcRsgAUEIRg0AGkHkAEH1ACACGws6AAALDAAgABAjIAFBAnRqC5IEAQt/IwBBgAFrIgokACAKIAE2AnwgAiADELUCIQggCkHjADYCECAKQQhqQQAgCkEQaiIJEDYhDwJAAkACQCAIQeUATwRAIAgQNCIJRQ0BIA8gCRA8CyAJIQcgAiEBA0AgASADRgRAA0AgACAKQfwAaiIBECtBASAIGwRAIAAgARArBEAgBSAFKAIAQQJyNgIACwNAIAIgA0YNBiAJLQAAQQJGDQcgCUEBaiEJIAJBDGohAgwACwALIAAQNyEOIAZFBEAgBCAOEEEhDgsgDUEBaiEMQQAhECAJIQcgAiEBA0AgASADRgRAIAwhDSAQRQ0CIAAQPhogCSEHIAIhASAIIAtqQQJJDQIDQCABIANGBEAMBAUCQCAHLQAAQQJHDQAgARAfIA1GDQAgB0EAOgAAIAtBAWshCwsgB0EBaiEHIAFBDGohAQwBCwALAAUCQCAHLQAAQQFHDQAgASANEMwBKAIAIRECQCAGBH8gEQUgBCAREEELIA5GBEBBASEQIAEQHyAMRw0CIAdBAjoAACALQQFqIQsMAQsgB0EAOgAACyAIQQFrIQgLIAdBAWohByABQQxqIQEMAQsACwALAAUgB0ECQQEgARBaIgwbOgAAIAdBAWohByABQQxqIQEgCyAMaiELIAggDGshCAwBCwALAAsQPQALIAUgBSgCAEEEcjYCAAsgDxA1IApBgAFqJAAgAgsRACAAIAEgACgCACgCDBEEAAuTBAELfyMAQYABayIKJAAgCiABNgJ8IAIgAxC1AiEIIApB4wA2AhAgCkEIakEAIApBEGoiCRA2IQ8CQAJAAkAgCEHlAE8EQCAIEDQiCUUNASAPIAkQPAsgCSEHIAIhAQNAIAEgA0YEQANAIAAgCkH8AGoiARAsQQEgCBsEQCAAIAEQLARAIAUgBSgCAEECcjYCAAsDQCACIANGDQYgCS0AAEECRg0HIAlBAWohCSACQQxqIQIMAAsACyAAEDghDiAGRQRAIAQgDhDOASEOCyANQQFqIQxBACEQIAkhByACIQEDQCABIANGBEAgDCENIBBFDQIgABA/GiAJIQcgAiEBIAggC2pBAkkNAgNAIAEgA0YEQAwEBQJAIActAABBAkcNACABEB8gDUYNACAHQQA6AAAgC0EBayELCyAHQQFqIQcgAUEMaiEBDAELAAsABQJAIActAABBAUcNACABIA0QIiwAACERAkAgBgR/IBEFIAQgERDOAQsgDkYEQEEBIRAgARAfIAxHDQIgB0ECOgAAIAtBAWohCwwBCyAHQQA6AAALIAhBAWshCAsgB0EBaiEHIAFBDGohAQwBCwALAAsABSAHQQJBASABEFoiDBs6AAAgB0EBaiEHIAFBDGohASALIAxqIQsgCCAMayEIDAELAAsACxA9AAsgBSAFKAIAQQRyNgIACyAPEDUgCkGAAWokACACC0oBAn8CQCAALQAAIgJFIAIgAS0AACIDR3INAANAIAEtAAEhAyAALQABIgJFDQEgAUEBaiEBIABBAWohACACIANGDQALCyACIANrC4QBAQJ/IwBBoAFrIgQkACAEIAAgBEGeAWogARsiADYClAEgBCABQQFrIgVBACABIAVPGzYCmAEgBEEAQZAB/AsAIARBfzYCTCAEQeIANgIkIARBfzYCUCAEIARBnwFqNgIsIAQgBEGUAWo2AlQgAEEAOgAAIAQgAiADEM0DIARBoAFqJAALuwIBBH8gA0H87QEgAxsiBSgCACEDAkAC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IBAtIAAoAiQQLSAAKAIwEC0gACgCPBAtCyAACwcAIAEgAGsLDABBARDWARogABAtCwkAIAAQsQEQLQsTACAAIAEgAiAAKAIAKAIwEQMACwkAIAAQ2AEQLQsMACAAQQRqENoBIAALDAAgAEEIahDaASAACygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsCAAsUACAAQZj1ADYCACAAQQRqECUgAAvyAwICfgV/IwBBIGsiBSQAIAFC////////P4MhAgJ+IAFCMIhC//8BgyIDpyIEQYH4AGtB/Q9NBEAgAkIEhiAAQjyIhCECIARBgPgAa60hAwJAIABC//////////8PgyIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECC0IAIAIgAkL/////////B1YiBBshACAErSADfAwBCyAAIAKEUCADQv//AVJyRQRAIAJCBIYgAEI8iIRCgICAgICAgASEIQBC/w8MAQsgBEH+hwFLBEBCACEAQv8PDAELQYD4AEGB+AAgA1AiBxsiCCAEayIGQfAASgRAQgAhAEIADAELIAVBEGogACACIAJCgICAgICAwACEIAcbIgJBgAEgBmsQRCAFIAAgAiAGEIoBIAUpAwhCBIYgBSkDACICQjyIhCEAAkAgBCAIRyAFKQMQIAUpAxiEQgBSca0gAkL//////////w+DhCICQoGAgICAgICACFoEQCAAQgF8IQAMAQsgAkKAgICAgICAgAhSDQAgAEIBgyAAfCEACyAAQoCAgICAgIAIhSAAIABC/////////wdWIgQbIQAgBK0LIQIgBUEgaiQAIAFCgICAgICAgICAf4MgAkI0hoQgAIS/C4kCAAJAIAAEfyABQf8ATQ0BAkBB3OEBKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDwsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAA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AXI2AgQgCSAGIAkoAgBBAXFyQQJyNgIAIAEgBmoiAiACKAIEQQFyNgIEIAEgBhDbAQsCQCAAKAIEIgJBA3FFDQAgAkF4cSIBIAVBEGpNDQAgACAFIAJBAXFyQQJyNgIEIAAgBWoiBCABIAVrIgJBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQgBCACENsBCyAAQQhqCwsiAEUNARogCCAANgIMQQAhAQsgAQshAEEAIAgoAgwgABshAQsgCEEQaiQAIAENAEHk/gEoAgAiAEUNACAAEQwADAELCyABRQRAEOsBCyABCwoAIAEgAGtBDG0LCQAgABAuNgIACyMBAn8gACEBA0AgASICQQRqIQEgAigCAA0ACyACIABrQQJ1Cy8BAX8jAEEQayIDJAACQCAAIAFGBEAgAEEAOgB4DAELIAEgAhCpAQsgA0EQaiQACxAAIAAoAgggACgCAGtBAnULCQAgAEEANgIAC0kBAX8jAEEQayIDJAACQAJAIAJBHksNACABLQB4QQFxDQAgAUEBOgB4DAELIAIQwQIhAQsgA0EQaiQAIAAgAjYCBCAAIAE2AgALOgECfyMAQRBrIgAkACAAQf////8DNgIMIABB/////wc2AgggAEEMaiAAQQhqELUDKAIAIABBEGokAAs0AQF/IwBBEGsiAyQAIAMgARBzNgIMIAMgAhBzNgIIIAAgA0EMaiADQQhqEGYgA0EQaiQAC04BAX8jAEEQayIDJAAgAyABNgIIIAMgADYCDCADIAI2AgRBACEBIANBBGoiACADQQxqENMBRQRAIAAgA0EIahDTASEBCyADQRBqJAAgAQswAQF/IwBBEGsiAyQAIAMgATYCDCADIAI2AgggACADQQxqIANBCGoQZiADQRBqJAALMwEBfyMAQRBrIgMkACAAEB8aIAAgAhCDASADQQA6AA8gASACaiADQQ9qEF0gA0EQaiQACzEAIABB/////wNLBEAQqgIACwJ/IABBAnQhAEEEENYBBEAgAEEEELQCDAELIAAQUwsLCQAgABDtARAtCxUAIABB8KoBNgIAIABBEGoQIBogAAsVACAAQciqATYCACAAQQxqECAaIAALgAMBBH8gAiEAA0ACQCAEIAdNIAAgA09yDQAgACwAACIBQf8BcSEFAn9BASABQQBODQAaIAFBQkkNASABQV9NBEAgAyAA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ZEYNAEEAIQAgC0EANgIQIBEgDygCACALKAJkIAtBEGoQQyALKAIQBEAgBSAFKAIAQQRyNgIADAELQQEhAAsgEBAgGiANECAaIA4QIBogDBAgGiARECAaIA8QNQwDCyACIQELIANBAWohAwwACwALIAtBkARqJAAgAAsMACAAQQFBLRD9AhoLCwAgAEEBQS0QsAILHAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qEPMCCyACIAEgASACKAIAEIoCIAZBDGogAyAAKAIAEJ4DIAFqNgIAIAZBEGokAAtBACABIAIgAyAEQQQQZyEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQAAIgAgAEGgAmogBSAEQQAQzQEgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAAAiACAAQagBaiAFIARBABDNASAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLQQAgASACIAMgBEEEEGghASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEM8BIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQAAIgAgAEGoAWogBSAEQQAQzwEgAGsiAEGnAUwEQCABIABBDG1BB282AgALCxgBAX9BDBBTIgBBADYCCCAAQgA3AgAgAAsEAEECC8oBAQR/IwBBEGsiAyQAAkAgAUH3////A00EQAJAIAEQvQEEQCAAIAEQUCAAIQQMAQsgA0EIaiABEJABQQFqEI8BIAMoAgwaIAAgAygCCCIENgIAIAAgAygCDBBcIAAgATYCBAsjAEEQayIFJAAgBSACNgIMIAQhBiABIQIDQCACBEAgBiAFKAIMNgIAIAJBAWshAiAGQQRqIQYMAQsLIAVBEGokACADQQA2AgQgBCABQQJ0aiADQQRqEFYgA0EQaiQADAELEFsA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hoRCAEKAgICAgIDAwz8QLyAFKQNIIQIgBSkDQCEEDAELIAlC////////P4MgBiAHcq1CMIaEIQILIAAgBDcDACAAIAI3AwggBUGAAWokAAuIEAIFfw9+IwBB0AJrIgUkACAEQv///////z+DIQsgAkL///////8/gyEKIAIgBIVCgICAgICAgICAf4MhDCAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCEH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIg5CgICAgICAwP//AFQgDkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEMDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQwgAyEBDAILIAEgDkKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACEMDAMLIAxCgICAgICAwP//AIQhDEIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASAOhFAEQEKAgICAgIDg//8AIAwgAiADhFAbIQxCACEBDAILIAIgA4RQBEAgDEKAgICAgIDA//8AhCEMQgAhAQwCCyAOQv///////z9YBEAgBUHAAmogASAKIAEgCiAKUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDyAIhCiAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyALIAMgCyALUCIJG3lCwABCACAJG3ynIglBD2sQRCAGIAlqQRBrIQYgBSkDuAIhCyAFKQOwAiEDCyAFQaACaiALQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABBAIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEEAgBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQQCAFQfABaiAEQgBCACAFKQOIAn1CABBAIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEEAgBUHQAWogBEIAQgAgBSkD6AF9QgAQQCAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABBAIAVBsAFqIARCAEIAIAUpA8gBfUIAEEAgBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQQCAFQZABaiADQg+GQgAgAkIAEEAgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDiAFKQOYAXwiBCAOVK18IARCAVatfH1CABBAIAVBgAFqQgEgBH1CACACQgAQQCAGIAggB2tqIghB//8AaiEGAn4gBSkDcCITQgGGIg0gBSkDiAEiD0IBhiAFKQOAAUI/iIR8IhBC5+wAfSIUQiCIIgIgCkKAgICAgIDAAIQiFUIBhiIWQiCIIgR+IhEgAUIBhiIOQiCIIgsgECAUVq0gDSAQVq0gBSkDeEIBhiATQj+IhCAPQj+IfHx8QgF9IhNCIIgiEH58Ig0gEVStIA0gDSATQv////8PgyITIAFCP4giFyAKQgGGhEL/////D4MiCn58Ig1WrXwgBCAQfnwgBCATfiIRIAogEH58Ig8gEVStQiCGIA9CIIiEfCANIA9CIIZ8Ig8gDVStfCAPIA8gFEL/////D4MiFCAKfiINIAIgC358IhEgDVStIBEgESATIA5C/v///w+DIg1+fCIRVq18fCIPVq18IA8gBCAUfiIYIA0gEH58IgQgAiAKfnwiCiALIBN+fCIQQiCIIAogEFatIAQgGFStIAQgClatfHxCIIaEfCIEIA9UrXwgBCAEIBEgAiANfiIKIAsgFH58IgJCIIggAiAKVK1CIIaEfCIKIBFUrSAKIAogEEIghnwiClatfHwiBFatfCAEIAQgCiACQiCGIgIgDSAUfnwgAlStQn+FIgJWIAIgClJxrXwiBFatfCICQv////////8AWARAIBYgF4QhFSAFQdAAaiAEIAJCgICAgICAwABUIgetIguGIgogAiALhiAEQgGIIAdBP3OtiIQiBCADIBIQQCAIQf7/AGogBiAHG0EBayEGIAFCMYYgBSkDWH0gBSkDUCIBQgBSrX0hC0IAIAF9DAELIAVB4ABqIAJCP4YgBEIBiIQiCiACQgGIIgQgAyASEEAgAUIwhiAFKQNofSAFKQNgIgJCAFKtfSELIAEhDkIAIAJ9CyECIAZB//8BTgRAIAxCgICAgICAwP//AIQhDEIAIQEMAQsCfiAGQQBKBEAgC0IBhiACQj+IhCEBIARC////////P4MgBq1CMIaEIQsgAkIBhgwBCyAGQY9/TARAQgAhAQwCCyAFQUBrIAogBEEBIAZrEIoBIAVBMGogDiAVIAZB8ABqEEQgBUEgaiADIBIgBSkDQCIKIAUpA0giCxBAIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgIgAUIBhiIEVK19IQEgAiAEfQshAiAFQRBqIAMgEkIDQgAQQCAFIAMgEkIFQgAQQCALIAogAyAKQgGDIgMgAnwiAlQgASACIANUrXwiASASViABIBJRG618IgMgClStfCIEIAMgAyAEQoCAgICAgMD//wBUIAIgBSkDEFYgASAFKQMYIgRWIAEgBFEbca18IgNWrXwiBCADIARCgICAgICAwP//AFQgAiAFKQMAViABIAUpAwgiAlYgASACURtxrXwiASADVK18IAyEIQwLIAAgATcDACAAIAw3AwggBUHQAmokAAu/AgEBfyMAQdAAayIEJAACQCADQYCAAU4EQCAEQSBqIAEgAkIAQoCAgICAgID//wAQLyAEKQMoIQIgBCkDICEBIANB//8BSQRAIANB//8AayEDDAILIARBEGogASACQgBCgICAgICAgP//ABAvQf3/AiADIANB/f8CTxtB/v8BayEDIAQpAxghAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEFAayABIAJCAEKAgICAgICAORAvIAQpA0ghAiAEKQNAIQEgA0H0gH5LBEAgA0GN/wBqIQMMAQsgBEEwaiABIAJCAEKAgICAgICAORAvQeiBfSADIANB6IF9TRtBmv4BaiEDIAQpAzghAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhAvIAAgBCkDCDcDCCAAIAQpAwA3AwAgBEHQAGokAAs8ACAAIAE3AwAgACACQv///////z+DIAJCgICAgICAwP//AINCMIinIANCMIinQYCAAnFyrUIwhoQ3AwgLwAECAX8CfkF/IQMCQCAAQgBSIAFC////////////AIMiBEKAgICAgIDA//8AViAEQoCAgICAgMD//wBRGw0AIAJC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBScQ0AIAAgBCAFhIRQBEBBAA8LIAEgAoNCAFkEQCABIAJSIAEgAlNxDQEgACABIAKFhEIAUg8LIABCAFIgASACVSABIAJRGw0AIAAg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EKYCCyEAIAEQTAR/QZiEASgCACABQf8BcUECdGooAgAFIAELwAsJACAAENACEC0LOwADQCABIAJGRQRAIAMhACAEIAEoAgAQTAR/IAEoAgAFIAALOgAAIARBAWohBCABQQRqIQEMAQsLIAELDAAgASACIAEQTBvACyoAA0AgASACRkUEQCADIAEsAAA2AgAgA0EEaiEDIAFBAWohAQwBCwsgAQsPACAAIAEgAkGgkAEQpwILHAAgARBMBH9BoJABKAIAIAFBAnRqKAIABSABCwsPACAAIAEgAkGYhAEQpwILHAAgARBMBH9BmIQBKAIAIAFBAnRqKAIABSABCwsQACAABEAgABDHAwsgABAtCzoAA0ACQCACIANGDQAgAigCABBMRQ0AIAIoAgBBAnRBkKIBaigCACABcUUNACACQQRqIQIMAQsLIAILOQADQAJAIAIgA0YNACACKAIAEEwEQCACKAIAQQJ0QZCiAWooAgAgAXENAQsgAkEEaiECDAELCyACC0YAA0AgASACRkUEQEEAIQAgAyABKAIAEEwEfyABKAIAQQJ0QZCiAWooAgAFQQALNgIAIANBBGohAyABQQRqIQEMAQsLIAELIwBBACEAIAIQTAR/IAJBAnRBkKIBaigCACABcUEARwVBAAsLDwAgACAAKAIAKAIEEQIACwkAIAAQ1gIQLQsVAQF/QdQAEFMiAEEAQdQA/AsAIAALFAAgACgCACABaiACLQAAOgAAQQELrgEAAkAgBRBHRQRAIAAgBSkCADcCACAAIAUoAgg2AgggABBeGgwBCyAFKAIAIQQgBSgCBCECIwBBEGsiAyQAAkACQAJAIAIQvQEEQCAAIgEgAhBQDAELIAJB9////wNLDQEgA0EIaiACEJABQQFqEI8BIAMoAgwaIAAgAygCCCIBNgIAIAAgAygCDBBcIAAgAjYCBAsgASAEIAJBAWoQZSADQRBqJAAMAQsQWwALCwsJACAAIAUQ5AELhAMBCH8jAEHgA2siACQAIABB3ANqIgYgAxAnIAYQSCEKIAUQHwRAIAVBABDMASgCACAKQS0QS0YhCwsgAiALIABB3ANqIABB2ANqIABB1ANqIABB0ANqIABBxANqECQiDCAAQbgDahAkIgYgAEGsA2oQJCIHIABBqANqEN8CIABB4wA2AhAgAEEIakEAIABBEGoiAhA2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KAK8ASAEEI8DOQMAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwvKBAEDfwJ/IwBB4AJrIgAkACAAIAI2AtgCIAAgATYC3AIgAEHMAWogAyAAQeABaiAAQdwBaiAAQdgBahD7ASAAQcABahAkIgEgARAoECEgACABQQAQIiICNgK8ASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGQQAhAwNAAkACQAJAIABB3AJqIABB2AJqECsNACAAKAK8ASABEB8gAmpGBEAgARAfIQYgASABEB9BAXQQISABIAEQKBAhIAAgBiABQQAQIiICajYCvAELIABB3AJqEDcgAEEHaiAAQQZqIAIgAEG8AWogACgC3AEgACgC2AEgAEHMAWogAEEQaiAAQQxqIABBCGogAEHgAWoQ+gENACADDQFBACEDIAAoArwBIAJrIgdBAEwNAgJAAkAgAi0AACIGQStrIggOAwEAAQALIAZBLkYNAkEBIQMgBkEwa0H/AXFBCkkNAwwBCyAHQQFGDQICQCAIDgMAAwADCyACLQABIgZBLkYNAUEBIQMgBkEwa0H/AXFBCU0NAgsCQCAAQcwBahAfRQ0AIAAtAAdBAXFFDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEEJEDOAIAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCSAzcDACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCVAzsBACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtB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DCECDAYLIANBIHIhAyABQQRqIQIgBEEEayEEIAEtAAMgCHQgB2ohBwsCQCAFQQRxRQ0AIAcgBigCIEYNACAKQd4ONgIYIAZB0f4ANgIEIAIhASAGKAIEIQUMAQsLIAIhAUEAIQdBACEDCyAGQdD+ADYCBAtBASECDAELQQAhBCAMIQILIAogDzYCECAKIBA2AgwgCiAENgIEIAogATYCACAGIAM2AkAgBiAHNgI8AkACQCAGKAIsRQRAIA8gFUYNASAGKAIEQdD+AEsNAQsCfyAVIA9rIQMCQAJAIAooAhwiASgCOCIMRQRAQQEhBSABIAooAihBASABKAIodEEBIAooAiARAwAiDDYCOCAMRQ0BCyABKAIsIgRFBEAgAUIANwIwIAFBASABKAIodCIENgIsCyADIARPBEAgBARAIAwgECAEayAE/AoAAAsgAUEANgI0DAILIAQgASgCNCIIayIFIAMgAyAFSxsiBARAIAggDGogECADayAE/AoAAAsgAyAFSwRAIAMgBGsiAwRAIAEoAjggECADayAD/AoAAAsgASADNgI0DAILQQAhBSABIAEoAjQgBGoiA0EAIAMgASgCLCIMRxs2AjQgDCABKAIwIgNNDQAgASADIARqNgIwCyAFDAELIAEgASgCLDYCMEEACw0BIAooAhAhDyAKKAIEIQQLIAogCigCCCAkIARrajYCCCAKIBUgD2siASAKKAIUajYCFCAGIAYoAiAgAWo2AiAgBi0ADEEEcUUgDyAVRnJFBEAgCigCDCABayEDIAYoAhwhBSAGAn8gBigCFARAIAUgAyABEFEMAQsgBSADIAEQswELIgE2AhwgCiABNgIwCyAKIAYoAkBBwABBACAGKAIIG2pBgAFBACAGKAIEIgFBv/4ARhtqQYACQYACQQAgAUHC/gBGGyABQcf+AEYbajYCLCACQXsgAhsgAiAPIBVGGyACIAQgJEYbIRwMAgsgBkHS/gA2AgQLQXwhHAsgF0EQaiQAIBxBAUsNASATQagBaiEBIBMoAqwBIQMgGigCACEJIBooAgQgEygCFGshDCMAQSBrIggkAAJAIAwgCWsiBUEATA0AIAEoAgggASgCBCICayAFTgRAIAIgA2siBCAFSARAIAwgBCAJaiIHayILRSAHIAxGckUEQCACIAcgC/wKAAALIAEgAiALajYCBCAE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eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AE5vdgBUaHUAQXVndXN0AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAZ2V0AE9jdABmbG9hdABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AFNhdABudW1Qb2ludHMAY29sb3JzAFVucGFja09wdGlvbnMAcG9zaXRpb25zAHJvdGF0aW9ucwB0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scwBpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzAHNjYWxlcwBhbHBoYXMAW1NQWjogRVJST1JdIENoZWNrIGZhaWxlZDogJXM6JWQ6ICVzAHZmMzJfcHRyAEFwcgB2ZWN0b3IAbW9uZXlfZ2V0IGVycm9yAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiByZWFkIGVycm9yAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAHVuc2lnbmVkIGNoYXIAaW9zX2Jhc2U6OmNsZWFyAE1hcgAvZW1zZGsvZW1zY3JpcHRlbi9zeXN0ZW0vbGliL2xpYmN4eGFiaS9zcmMvcHJpdmF0ZV90eXBlaW5mby5jcHAAU2VwACVJOiVNOiVTICVwAFN1bgBKdW4ATW9uAG5hbgBKYW4AY29vcmRpbmF0ZVN5c3RlbQBDb29yZGluYXRlU3lzdGVtAEp1bABib29sAGxsAEFwcmlsAGludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jawBpbmNvcnJlY3QgaGVhZGVyIGNoZWNrAGluY29ycmVjdCBsZW5ndGggY2hlY2sAaW5jb3JyZWN0IGRhdGEgY2hlY2sAcHVzaF9iYWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAEZyaQBzaABoZWFkZXIgY3JjIG1pc21hdGNoAE1hcmNoAEF1ZwB1bnNpZ25lZCBsb25nIGxvbmcAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlLjBMZgAlTGYAcmVzaXplAGludmFsaWQgd2luZG93IHNpemUAdHJ1ZQBUdWUAZmFsc2UAaW52YWxpZCBibG9jayB0eXBlAEp1bmUAZG91YmxlAHNoRGVncmVlAGJhZF9hcnJheV9uZXdfbGVuZ3RoIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQBSYXdHYXVzc2lhbkNsb3VkAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiBoZWFkZXIgbm90IGZvdW5kACUwKmxsZAAlKmxsZAArJWxsZAAlKy40bGQAdm9pZABsb2NhbGUgbm90IHN1cHBvcnRlZABhbnRpYWxpYXNlZABXZWQAJVktJW0tJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFRvbyBtYW55IHBvaW50czogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IHZlcnNpb24gbm90IHN1cHBvcnRlZDogJWQARGVjAC4vc3B6L3NyYy9jYy9sb2FkLXNwei5jYwBGZWIAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAVmVjdG9yVUludDhUACVIOiVNOiVTAE5BTgBQTQBBTQAlSDolTQBMQ19BTEwAQVNDSUkATEFORwBSVUYATFVGAElORgBSREYATERGAFVOU1BFQ0lGSUVEAEMAUlVCAExVQgBSREIATERCAGNhdGNoaW5nIGEgY2xhc3Mgd2l0aG91dCBhbiBvYmplY3Q/AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+ADAxMjM0NTY3ODkAQy5VVEYtOABWZWN0b3JGbG9hdDMyADEuMy4xAC4ALQAocGFja2VkLmFscGhhcy5zaXplKCkpID09IChudW1Qb2ludHMpAChudWxsKQAocGFja2VkLmNvbG9ycy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNjYWxlcy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNoLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIHNoRGltICogMykAKHBhY2tlZC5yb3RhdGlvbnMuc2l6ZSgpKSA9PSAobnVtUG9pbnRzICogKHBhY2tlZC51c2VzUXVhdGVybmlvblNtYWxsZXN0VGhyZWUgPyA0IDogMykpAChwYWNrZWQucG9zaXRpb25zLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIDMgKiAodXNlc0Zsb2F0MTYgPyAyIDogMykpACUAbGVuZ3RoX2Vycm9yIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUgd2l0aCBtZXNzYWdlICIlcyIAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAW1NQWjogRVJST1JdIFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQKAAkAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwBBkCALthMgEAAA9GwAAPRsAABAEAAAqG0AACgQAABOM3NwejEzR2F1c3NpYW5DbG91ZEUAAACobQAASBAAAE4zc3B6MTNVbnBhY2tPcHRpb25zRQBwcGlpcAD0bAAAbBAAAKhtAAB0EAAATlN0M19fMjZ2ZWN0b3JJZk5TXzlhbGxvY2F0b3JJZkVFRUUAaXBwACxuAADEEAAAAAAAAAMAAADcEAAAAAAAACgSAAAAAAAAWBIAAAAAAABOU3QzX18yOG9wdGlvbmFsSWZFRQAAAADQbQAA6BAAABgRAABOU3QzX18yMjdfX29wdGlvbmFsX21vdmVfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAJBEAAFQRAABOU3QzX18yMjdfX29wdGlvbmFsX2NvcHlfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAYBEAAIgRAABOU3QzX18yMjBfX29wdGlvbmFsX21vdmVfYmFzZUlmTGIxRUVFAAAA0G0AAJQRAAC8EQAATlN0M19fMjIwX19vcHRpb25hbF9jb3B5X2Jhc2VJZkxiMUVFRQAAANBtAADIEQAA9BEAAE5TdDNfXzIyM19fb3B0aW9uYWxfc3RvcmFnZV9iYXNlSWZMYjBFRUUAAAAAqG0AAPwRAABOU3QzX18yMjRfX29wdGlvbmFsX2Rlc3RydWN0X2Jhc2VJZkxiMUVFRQAAAKhtAAAwEgAATlN0M19fMjE4X19zZmluYWVfY3Rvcl9iYXNlSUxiMUVMYjFFRUUAAKhtAABgEgAATlN0M19fMjIwX19zZmluYWVfYXNzaWduX2Jhc2VJTGIxRUxiMUVFRQAAAACIbgAAnBIAAAAAAABsEAAAUE5TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAAAAAIhuAADUEgAAAQAAAGwQAABQS05TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAHBwAHYAdnAAAACMEgAAcHAAAJRsAACMEgAAPG0AAHZwcGQAAAAAlGwAAIwSAAAYbQAAPG0AAHZwcHBkAAAAGG0AAMQSAABwcHAATBMAADxtAACobQAAVBMAAE4xMGVtc2NyaXB0ZW4zdmFsRQAAnBAAAGwQAAAYbQAAcHBwcAAAAAAAAAAArGwAAGwQAAAYbQAAPG0AAGlwcHBkAAAALG4AAMATAAAAAAAAAwAAANgTAAAAAAAAKBIAAAAAAABYEgAAAAAAAE5TdDNfXzI4b3B0aW9uYWxJaEVFAAAAANBtAADkEwAAFBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfbW92ZV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAAAgFAAAUBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfY29weV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAABcFAAAhBQAAE5TdDNfXzIyMF9fb3B0aW9uYWxfbW92ZV9iYXNlSWhMYjFFRUUAAADQbQAAkBQAALgUAABOU3QzX18yMjBfX29wdGlvbmFsX2NvcHlfYmFzZUloTGIxRUVFAAAA0G0AAMQUAADwFAAATlN0M19fMjIzX19vcHRpb25hbF9zdG9yYWdlX2Jhc2VJaExiMEVFRQAAAACobQAA+BQAAE5TdDNfXzIyNF9fb3B0aW9uYWxfZGVzdHJ1Y3RfYmFzZUloTGIxRUVFAAAAqG0AACwVAABOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQCIbgAAYBUAAAAAAAAkFQAAUE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAAAAAIhuAACYFQAAAQAAACQVAABQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAHBwAHZwAFAVAABwcAAAlGwAAFAVAADEbAAAdnBwaQAAAACUbAAAUBUAABhtAADEbAAAdnBwcGkAAAAYbQAAiBUAAHBwcABMEwAAxGwAAJgTAAAkFQAAGG0AAHBwcHAAAAAArGwAACQVAAAYbQAAxGwAAGlwcHBpAHAAdnAAaXBwAHZwcGkAaXBwAHZwcGkAcHBwAHZwcHAAAABcbQAAYBYAAE4zc3B6MTZDb29yZGluYXRlU3lzdGVtRQBwAHZwAGlwcAB2cHBpAAAAAAAAAwAAAAgAAAAPAAAAqG0AAKAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAqG0AAOgWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAqG0AADAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAKhtAAB8FwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACobQAAyBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAqG0AAPAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAKhtAAAYGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACobQAAQBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAqG0AAGgYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAKhtAACQGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACobQAAuBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAqG0AAOAYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAKhtAAAIGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACobQAAMBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAAqG0AAFgZAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAKhtAACAGQAATjEwZW1zY3Jp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AAAJqAAACAQAAAiEAAAIRAAACegAEAcIAAAIXAAACBwAAAmYABQHUwAACHwAAAg8AAAJ2AASBxcAAAhsAAAILAAACbgAAAgMAAAIjAAACEwAAAn4ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcQAEQcLAAAIYgAACCIAAAmkAAAIAgAACIIAAAhCAAAJ5AAQBwcAAAhaAAAIGgAACZQAFAdDAAAIegAACDoAAAnUABIHEwAACGoAAAgqAAAJtAAACAoAAAiKAAAISgAACfQAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzAARBw8AAAhmAAAIJgAACawAAAgGAAAIhgAACEYAAAnsABAHCQAACF4AAAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4AAAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgH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Y05TXzExY2hhcl90cmFpdHNJY0VFRUUA0G0AAHg9AAAAPAAATlN0M19fMjE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAABAAAAAAAAAAKw+AABZAAAAWgAAADgAAAD4////rD4AAFsAAABcAAAAwP///8D///+sPgAAXQAAAF4AAADIPQAALD4AAGg+AAB8PgAAkD4AAKQ+AABUPgAAQD4AAPA9AADcPQAAQAAAAAAAAAAcPQAATAAAAE0AAAA4AAAA+P///xw9AABOAAAATwAAAMD////A////HD0AAFAAAABRAAAAQAAAAAAAAAA8PAAARAAAAEUAAADA////wP///zw8AABGAAAARwAAADgAAAAAAAAAhDwAAEgAAABJAAAAyP///8j///+EPAAASgAAAEsAAADQbQAAuD4AABw9AABOU3QzX18yMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAAAAAAAAAED8AAF8AAABgAAAAqG0AABg/AABOU3QzX18yOGlvc19iYXNlRQAAAAAAAADRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADA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")),u((await async function(p){return yA(p)}(y)).instance))}();if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.shift()();return function D(){function u(){var y;if(e.calledRun=!0,!W){if(eA=!0,Re.G(),C?.(e),(y=e.onRuntimeInitialized)==null||y.call(e),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var p=e.postRun.shift();BA.push(p)}DA(BA)}}if(0<oA)uA=D;else{if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)rA();DA(MA),0<oA?uA=D:e.setStatus?(e.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>e.setStatus(""),1),u()},1)):u()}}(),a=eA?e:new Promise((D,u)=>{C=D,Q=u}),a}const Ee=(t,A,a=e=>e)=>{const e=t.vf32_ptr(A),g=A.size();return new Float32Array(t.HEAPF32.buffer,e,g).map(a)},or=t=>1/(1+Math.exp(-t)),Br=t=>A=>A*t+.5,sr=async(t,A)=>{var a;const e=await nr(),g=t instanceof Uint8Array?t:new Uint8Array(t);let i=null;try{if(i=e._malloc(Uint8Array.BYTES_PER_ELEMENT*g.length),i===null)throw new Error("couldn't allocate memory");e.HEAPU8.set(g,i/Uint8Array.BYTES_PER_ELEMENT);const I=e.CoordinateSystem[((a=A?.unpackOptions)==null?void 0:a.coordinateSystem)??"UNSPECIFIED"],r=e.load_spz(i,g.length,{coordinateSystem:I}),o=((B,n)=>({numPoints:n.numPoints,shDegree:n.shDegree,antialiased:n.antialiased,positions:Ee(B,n.positions),scales:Ee(B,n.scales,Math.exp),rotations:Ee(B,n.rotations),alphas:Ee(B,n.alphas,or),colors:Ee(B,n.colors,Br(.282)),sh:Ee(B,n.sh)}))(e,r);return((B,n)=>{B._free(B.vf32_ptr(n.positions)),B._free(B.vf32_ptr(n.scales)),B._free(B.vf32_ptr(n.rotations)),B._free(B.vf32_ptr(n.alphas)),B._free(B.vf32_ptr(n.colors)),B._free(B.vf32_ptr(n.sh))})(e,r),o}catch(I){throw I}finally{i!==null&&e._free(i)}},Cr=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));function Er(t){return new Worker(""+(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__dirname+"/assets/SPZ.worker-d-ZlUCr9.js").href:new URL("assets/SPZ.worker-d-ZlUCr9.js",typeof document>"u"?location.href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),{type:"module",name:t?.name})}class Qr{constructor(A,a){this.gltfLoader=A,this.renderer=a,this.gltfLoader?.register&&this.gltfLoader.register(()=>({name:"KHR_spz_gaussian_splats_compression"}));try{this.spzWorker=new Er({type:"module"}),this.spzWorkerJobId=0,this.spzWorkerCallbacks=new Map,this.spzWorker.onmessage=e=>{const{id:g,pos:i,col:I,c0:r,c1:o,error:B}=e.data||{},n=this.spzWorkerCallbacks.get(g);n&&(this.spzWorkerCallbacks.delete(g),B?n.reject(new Error(B)):n.resolve({pos:i,col:I,c0:r,c1:o}))},this.spzWorker.onerror=e=>{for(const[,g]of this.spzWorkerCallbacks)g.reject(e instanceof Error?e:new Error(String(e)));this.spzWorkerCallbacks.clear()}}catch{this.spzWorker=void 0}}parseSplats(A,a,e,g){return new Promise(async(i,I)=>{await this.#n(),this.gltfLoader.parse(A,"",async r=>{try{const o=await this.#t(r,g);i(o)}catch(o){I(o)}},r=>I(r))})}async#t(A,a){if(a)return this.#A(A);const e=A.parser,g=e.json,i=this.#g(g);return i?.type==="SPZ"?this.#i(e,i,A):i?.type==="KHR"?this.#I(e,g,i,A):i?.type==="ULTRA"?this.#A(A):(A.scene||(A.scene=new P.Object3D),A.scene.asset=A.asset,A.scene)}#g(A){if(!A?.meshes)return null;for(let a=0;a<A.meshes.length;a++){const e=A.meshes[a];for(let g=0;g<(e.primitives?.length||0);g++){const i=e.primitives[g],I=i?.extensions;if(I?.KHR_spz_gaussian_splats_compression&&Number.isInteger(I.KHR_spz_gaussian_splats_compression.bufferView))return{mesh:a,prim:g,type:"SPZ",bv:I.KHR_spz_gaussian_splats_compression.bufferView};if(I?.KHR_gaussian_splatting)return{mesh:a,prim:g,type:"KHR"};if(I?.ULTRA_splats)return{mesh:a,prim:g,type:"ULTRA"}}}return null}async#i(A,a,e){let g=await A.getDependency("bufferView",a.bv);if(g?.buffer?.byteLength&&(g=g.buffer.slice(g.byteOffset,g.byteLength+g.byteOffset)),this.spzWorker){const h=this.spzWorkerJobId++,l=new Promise((Z,oA)=>{this.spzWorkerCallbacks.set(h,{resolve:Z,reject:oA})});try{this.spzWorker.postMessage({id:h,spz:g},[g])}catch(Z){throw this.spzWorkerCallbacks.delete(h),Z}const{pos:w,col:M,c0:k,c1:N}=await l,F=new Float32Array(w),G=new Float32Array(M),L=new Float32Array(k),x=new Float32Array(N),W=new P.BufferAttribute(F,3),X=new P.BufferAttribute(G,4),eA=new P.BufferAttribute(L,3),AA=new P.BufferAttribute(x,3);return e.scene.traverse(Z=>Z.dispose&&Z.dispose()),{isSplatsData:!0,positions:W,colors:X,cov0:eA,cov1:AA}}const i=await sr(g),I=i.numPoints??i.positions.length/3,r=new Float32Array(i.positions),o=i.colors??i.color,B=i.alphas??i.opacity??i.opacities,n=new Float32Array(4*I);for(let h=0;h<I;h++){const l=o[3*h+0],w=o[3*h+1],M=o[3*h+2],k=B?this.#r(B[h]):1,[N,F,G]=this.#e(l,w,M);n.set([N,F,G,k],4*h)}const s=i.rotations??i.quaternions,E=i.scales??i.scale,C=this.#a(s,E),Q=new P.BufferAttribute(r,3),c=new P.BufferAttribute(n,4),d=new P.BufferAttribute(C.c0,3),b=new P.BufferAttribute(C.c1,3);return e.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:Q,colors:c,cov0:d,cov1:b}}async#I(A,a,e,g){const i=a.meshes[e.mesh].primitives[e.prim],I=async h=>{const l=i.attributes?.[h];return Number.isInteger(l)?A.getDependency("accessor",l):null};let r=await I("POSITION");if(!r)return this.#A(g);r?.buffer&&(r=new Float32Array(r.buffer,r.byteOffset,3*r.count));let o=await I("COLOR_0");o?.buffer&&(o=new Float32Array(o.buffer,o.byteOffset,(o.itemSize||4)*o.count));let B=await I("ROTATION")||await I("_ROTATION"),n=await I("SCALE")||await I("_SCALE");B?.buffer&&(B=new Float32Array(B.buffer,B.byteOffset,4*B.count)),n?.buffer&&(n=new Float32Array(n.buffer,n.byteOffset,3*n.count));const s=r.length/3,E=new Float32Array(4*s);if(o){const h=o.length===4*s?4:3;for(let l=0;l<s;l++){const w=o[l*h+0],M=o[l*h+1],k=o[l*h+2],[N,F,G]=this.#e(w,M,k);E.set([N,F,G,h===4?o[l*h+3]:1],4*l)}}else for(let h=0;h<s;h++)E.set([1,1,1,1],4*h);const C=this.#a(B,n),Q=new P.BufferAttribute(r,3),c=new P.BufferAttribute(E,4),d=new P.BufferAttribute(C.c0,3),b=new P.BufferAttribute(C.c1,3);return g.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:Q,colors:c,cov0:d,cov1:b}}async#A(A){const a=A.scene.children[0].geometry,e=a.attributes.position,g=a.attributes.color,i=a.attributes.cov_0||a.attributes.COV_0,I=a.attributes.cov_1||a.attributes.COV_1;return A.scene.traverse(r=>r.dispose&&r.dispose()),{isSplatsData:!0,positions:e,colors:g,cov0:i,cov1:I}}#a(A,a){const e=(A?.length||0)/4,g=new Float32Array(3*e),i=new Float32Array(3*e),I=new Float32Array(9);for(let r=0;r<e;r++){const o=A?A[4*r+0]:0,B=A?A[4*r+1]:0,n=A?A[4*r+2]:0,s=A?A[4*r+3]:1,E=o*o,C=B*B,Q=n*n,c=o*B,d=o*n,b=B*n,h=s*o,l=s*B,w=s*n;I[0]=1-2*(C+Q),I[1]=2*(c-w),I[2]=2*(d+l),I[3]=2*(c+w),I[4]=1-2*(E+Q),I[5]=2*(b-h),I[6]=2*(d-l),I[7]=2*(b+h),I[8]=1-2*(E+C);const M=Math.max(1e-12,a?a[3*r+0]:0),k=Math.max(1e-12,a?a[3*r+1]:0),N=Math.max(1e-12,a?a[3*r+2]:0),F=M*M,G=k*k,L=N*N,x=I[0]*I[0]*F+I[1]*I[1]*G+I[2]*I[2]*L,W=I[3]*I[0]*F+I[4]*I[1]*G+I[5]*I[2]*L,X=I[6]*I[0]*F+I[7]*I[1]*G+I[8]*I[2]*L,eA=I[3]*I[3]*F+I[4]*I[4]*G+I[5]*I[5]*L,AA=I[6]*I[3]*F+I[7]*I[4]*G+I[8]*I[5]*L,Z=I[6]*I[6]*F+I[7]*I[7]*G+I[8]*I[8]*L,oA=3*r;g[oA+0]=x,g[oA+1]=W,g[oA+2]=X,i[oA+0]=eA,i[oA+1]=AA,i[oA+2]=Z}return{c0:g,c1:i}}#r(A){return Number.isFinite(A)?A>=0&&A<=1?A:A>=0&&A<=255&&Math.abs(A-Math.round(A))<.001?A/255:A>=0&&A<=65535&&Math.abs(A-Math.round(A))<.001?A/65535:Math.min(1,Math.max(0,A)):1}#e(A,a,e){const g=s=>s>=0&&s<=255&&Math.abs(s-Math.round(s))<.001,i=s=>s>=0&&s<=65535&&Math.abs(s-Math.round(s))<.001,I=s=>s<=.04045?s/12.92:Math.pow((s+.055)/1.055,2.4),r=s=>Math.min(1,Math.max(0,s));let o=A,B=a,n=e;if(!(A>=0&&A<=1&&a>=0&&a<=1&&e>=0&&e<=1))if(g(A)&&g(a)&&g(e))o=A/255,B=a/255,n=e/255;else if(i(A)&&i(a)&&i(e))o=A/65535,B=a/65535,n=e/65535;else{const s=E=>.5+.28209479177387814*E;o=s(A),B=s(a),n=s(e)}return o=r(o),B=r(B),n=r(n),[I(o),I(B),I(n)]}#n(){return new Promise(A=>{const a=setInterval(()=>{const e=this.gltfLoader;e.hasDracoLoader&&!e.dracoLoader||e.hasKTX2Loader&&!e.ktx2Loader||(clearInterval(a),A())},10)})}}class Wg extends f.Loader{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(a){return new ur(a)}),this.register(function(a){return new lr(a)}),this.register(function(a){return new Mr(a)}),this.register(function(a){return new Rr(a)}),this.register(function(a){return new Nr(a)}),this.register(function(a){return new Dr(a)}),this.register(function(a){return new wr(a)}),this.register(function(a){return new pr(a)}),this.register(function(a){return new yr(a)}),this.register(function(a){return new br(a)}),this.register(function(a){return new mr(a)}),this.register(function(a){return new fr(a)}),this.register(function(a){return new kr(a)}),this.register(function(a){return new Fr(a)}),this.register(function(a){return new hr(a)}),this.register(function(a){return new Gr(a)}),this.register(function(a){return new Sr(a)})}load(A,a,e,g){const i=this;let I;if(this.resourcePath!=="")I=this.resourcePath;else if(this.path!==""){const B=f.LoaderUtils.extractUrlBase(A);I=f.LoaderUtils.resolveURL(B,this.path)}else I=f.LoaderUtils.extractUrlBase(A);this.manager.itemStart(A);const r=function(B){g?g(B):console.error(B),i.manager.itemError(A),i.manager.itemEnd(A)},o=new f.FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(A,function(B){try{i.parse(B,I,function(n){a(n),i.manager.itemEnd(A)},r)}catch(n){r(n)}},e,r)}setDRACOLoader(A){return this.dracoLoader=A,this}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,a,e,g){let i;const I={},r={},o=new TextDecoder;if(typeof A=="string")i=JSON.parse(A);else if(A instanceof ArrayBuffer)if(o.decode(new Uint8Array(A,0,4))===Vg){try{I[cA.KHR_BINARY_GLTF]=new Lr(A)}catch(n){return void(g&&g(n))}i=JSON.parse(I[cA.KHR_BINARY_GLTF].content)}else i=JSON.parse(o.decode(A));else i=A;if(i.asset===void 0||i.asset.version[0]<2)return void(g&&g(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const B=new Vr(i,{path:a||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});B.fileLoader.setRequestHeader(this.requestHeader);for(let n=0;n<this.pluginCallbacks.length;n++){const s=this.pluginCallbacks[n](B);s.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),r[s.name]=s,I[s.name]=!0}if(i.extensionsUsed)for(let n=0;n<i.extensionsUsed.length;++n){const s=i.extensionsUsed[n],E=i.extensionsRequired||[];switch(s){case cA.KHR_MATERIALS_UNLIT:I[s]=new dr;break;case cA.KHR_DRACO_MESH_COMPRESSION:I[s]=new jr(i,this.dracoLoader);break;case cA.KHR_TEXTURE_TRANSFORM:I[s]=new vr;break;case cA.KHR_MESH_QUANTIZATION:I[s]=new Jr;break;default:E.indexOf(s)>=0&&r[s]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+s+'".')}}B.setExtensions(I),B.setPlugins(r),B.parse(e,g)}parseAsync(A,a){const e=this;return new Promise(function(g,i){e.parse(A,a,g,i)})}}function cr(){let t={};return{get:function(A){return t[A]},add:function(A,a){t[A]=a},remove:function(A){delete t[A]},removeAll:function(){t={}}}}const cA={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class hr{constructor(A){this.parser=A,this.name=cA.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,a=this.parser.json.nodes||[];for(let e=0,g=a.length;e<g;e++){const i=a[e];i.extensions&&i.extensions[this.name]&&i.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(A){const a=this.parser,e="light:"+A;let g=a.cache.get(e);if(g)return g;const i=a.json,I=((i.extensions&&i.extensions[this.name]||{}).lights||[])[A];let r;const o=new f.Color(16777215);I.color!==void 0&&o.setRGB(I.color[0],I.color[1],I.color[2],f.LinearSRGBColorSpace);const B=I.range!==void 0?I.range:0;switch(I.type){case"directional":r=new f.DirectionalLight(o),r.target.position.set(0,0,-1),r.add(r.target);break;case"point":r=new f.PointLight(o),r.distance=B;break;case"spot":r=new f.SpotLight(o),r.distance=B,I.spot=I.spot||{},I.spot.innerConeAngle=I.spot.innerConeAngle!==void 0?I.spot.innerConeAngle:0,I.spot.outerConeAngle=I.spot.outerConeAngle!==void 0?I.spot.outerConeAngle:Math.PI/4,r.angle=I.spot.outerConeAngle,r.penumbra=1-I.spot.innerConeAngle/I.spot.outerConeAngle,r.target.position.set(0,0,-1),r.add(r.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+I.type)}return r.position.set(0,0,0),Na(r,I),I.intensity!==void 0&&(r.intensity=I.intensity),r.name=a.createUniqueName(I.name||"light_"+A),g=Promise.resolve(r),a.cache.add(e,g),g}getDependency(A,a){if(A==="light")return this._loadLight(a)}createNodeAttachment(A){const a=this,e=this.parser,g=e.json.nodes[A],i=(g.extensions&&g.extensions[this.name]||{}).light;return i===void 0?null:this._loadLight(i).then(function(I){return e._getNodeRef(a.cache,i,I)})}}class dr{constructor(){this.name=cA.KHR_MATERIALS_UNLIT}getMaterialType(){return f.MeshBasicMaterial}extendParams(A,a,e){const g=[];A.color=new f.Color(1,1,1),A.opacity=1;const i=a.pbrMetallicRoughness;if(i){if(Array.isArray(i.baseColorFactor)){const I=i.baseColorFactor;A.color.setRGB(I[0],I[1],I[2],f.LinearSRGBColorSpace),A.opacity=I[3]}i.baseColorTexture!==void 0&&g.push(e.assignTexture(A,"map",i.baseColorTexture,f.SRGBColorSpace))}return Promise.all(g)}}class br{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,a){const e=this.parser.json.materials[A];if(!e.extensions||!e.extensions[this.name])return Promise.resolve();const g=e.extensions[this.name].emissiveStrength;return g!==void 0&&(a.emissiveIntensity=g),Promise.resolve()}}class ur{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,g=e.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=[],I=g.extensions[this.name];if(I.clearcoatFactor!==void 0&&(a.clearcoat=I.clearcoatFactor),I.clearcoatTexture!==void 0&&i.push(e.assignTexture(a,"clearcoatMap",I.clearcoatTexture)),I.clearcoatRoughnessFactor!==void 0&&(a.clearcoatRoughness=I.clearcoatRoughnessFactor),I.clearcoatRoughnessTexture!==void 0&&i.push(e.assignTexture(a,"clearcoatRoughnessMap",I.clearcoatRoughnessTexture)),I.clearcoatNormalTexture!==void 0&&(i.push(e.assignTexture(a,"clearcoatNormalMap",I.clearcoatNormalTexture)),I.clearcoatNormalTexture.scale!==void 0)){const r=I.clearcoatNormalTexture.scale;a.clearcoatNormalScale=new f.Vector2(r,r)}return Promise.all(i)}}class lr{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_DISPERSION}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser.json.materials[A];if(!e.extensions||!e.extensions[this.name])return Promise.resolve();const g=e.extensions[this.name];return a.dispersion=g.dispersion!==void 0?g.dispersion:0,Promise.resolve()}}class fr{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,g=e.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=[],I=g.extensions[this.name];return I.iridescenceFactor!==void 0&&(a.iridescence=I.iridescenceFactor),I.iridescenceTexture!==void 0&&i.push(e.assignTexture(a,"iridescenceMap",I.iridescenceTexture)),I.iridescenceIor!==void 0&&(a.iridescenceIOR=I.iridescenceIor),a.iridescenceThicknessRange===void 0&&(a.iridescenceThicknessRange=[100,400]),I.iridescenceThicknessMinimum!==void 0&&(a.iridescenceThicknessRange[0]=I.iridescenceThicknessMinimum),I.iridescenceThicknessMaximum!==void 0&&(a.iridescenceThicknessRange[1]=I.iridescenceThicknessMaximum),I.iridescenceThicknessTexture!==void 0&&i.push(e.assignTexture(a,"iridescenceThicknessMap",I.iridescenceThicknessTexture)),Promise.all(i)}}class Dr{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_SHEEN}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,g=e.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=[];a.sheenColor=new f.Color(0,0,0),a.sheenRoughness=0,a.sheen=1;const I=g.extensions[this.name];if(I.sheenColorFactor!==void 0){const r=I.sheenColorFactor;a.sheenColor.setRGB(r[0],r[1],r[2],f.LinearSRGBColorSpace)}return I.sheenRoughnessFactor!==void 0&&(a.sheenRoughness=I.sheenRoughnessFactor),I.sheenColorTexture!==void 0&&i.push(e.assignTexture(a,"sheenColorMap",I.sheenColorTexture,f.SRGBColorSpace)),I.sheenRoughnessTexture!==void 0&&i.push(e.assignTexture(a,"sheenRoughnessMap",I.sheenRoughnessTexture)),Promise.all(i)}}class wr{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,g=e.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=[],I=g.extensions[this.name];return I.transmissionFactor!==void 0&&(a.transmission=I.transmissionFactor),I.transmissionTexture!==void 0&&i.push(e.assignTexture(a,"transmissionMap",I.transmissionTexture)),Promise.all(i)}}class pr{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_VOLUME}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,g=e.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=[],I=g.extensions[this.name];a.thickness=I.thicknessFactor!==void 0?I.thicknessFactor:0,I.thicknessTexture!==void 0&&i.push(e.assignTexture(a,"thicknessMap",I.thicknessTexture)),a.attenuationDistance=I.attenuationDistance||1/0;const r=I.attenuationColor||[1,1,1];return a.attenuationColor=new f.Color().setRGB(r[0],r[1],r[2],f.LinearSRGBColorSpace),Promise.all(i)}}class yr{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_IOR}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser.json.materials[A];if(!e.extensions||!e.extensions[this.name])return Promise.resolve();const g=e.extensions[this.name];return a.ior=g.ior!==void 0?g.ior:1.5,Promise.resolve()}}class mr{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_SPECULAR}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,g=e.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=[],I=g.extensions[this.name];a.specularIntensity=I.specularFactor!==void 0?I.specularFactor:1,I.specularTexture!==void 0&&i.push(e.assignTexture(a,"specularIntensityMap",I.specularTexture));const r=I.specularColorFactor||[1,1,1];return a.specularColor=new f.Color().setRGB(r[0],r[1],r[2],f.LinearSRGBColorSpace),I.specularColorTexture!==void 0&&i.push(e.assignTexture(a,"specularColorMap",I.specularColorTexture,f.SRGBColorSpace)),Promise.all(i)}}class Fr{constructor(A){this.parser=A,this.name=cA.EXT_MATERIALS_BUMP}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,g=e.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=[],I=g.extensions[this.name];return a.bumpScale=I.bumpFactor!==void 0?I.bumpFactor:1,I.bumpTexture!==void 0&&i.push(e.assignTexture(a,"bumpMap",I.bumpTexture)),Promise.all(i)}}class kr{constructor(A){this.parser=A,this.name=cA.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,g=e.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=[],I=g.extensions[this.name];return I.anisotropyStrength!==void 0&&(a.anisotropy=I.anisotropyStrength),I.anisotropyRotation!==void 0&&(a.anisotropyRotation=I.anisotropyRotation),I.anisotropyTexture!==void 0&&i.push(e.assignTexture(a,"anisotropyMap",I.anisotropyTexture)),Promise.all(i)}}class Mr{constructor(A){this.parser=A,this.name=cA.KHR_TEXTURE_BASISU}loadTexture(A){const a=this.parser,e=a.json,g=e.textures[A];if(!g.extensions||!g.extensions[this.name])return null;const i=g.extensions[this.name],I=a.options.ktx2Loader;if(!I){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return a.loadTextureImage(A,i.source,I)}}class Rr{constructor(A){this.parser=A,this.name=cA.EXT_TEXTURE_WEBP}loadTexture(A){const a=this.name,e=this.parser,g=e.json,i=g.textures[A];if(!i.extensions||!i.extensions[a])return null;const I=i.extensions[a],r=g.images[I.source];let o=e.textureLoader;if(r.uri){const B=e.options.manager.getHandler(r.uri);B!==null&&(o=B)}return e.loadTextureImage(A,I.source,o)}}class Nr{constructor(A){this.parser=A,this.name=cA.EXT_TEXTURE_AVIF}loadTexture(A){const a=this.name,e=this.parser,g=e.json,i=g.textures[A];if(!i.extensions||!i.extensions[a])return null;const I=i.extensions[a],r=g.images[I.source];let o=e.textureLoader;if(r.uri){const B=e.options.manager.getHandler(r.uri);B!==null&&(o=B)}return e.loadTextureImage(A,I.source,o)}}class Gr{constructor(A){this.name=cA.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const a=this.parser.json,e=a.bufferViews[A];if(e.extensions&&e.extensions[this.name]){const g=e.extensions[this.name],i=this.parser.getDependency("buffer",g.buffer),I=this.parser.options.meshoptDecoder;if(!I||!I.supported){if(a.extensionsRequired&&a.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(r){const o=g.byteOffset||0,B=g.byteLength||0,n=g.count,s=g.byteStride,E=new Uint8Array(r,o,B);return I.decodeGltfBufferAsync?I.decodeGltfBufferAsync(n,s,E,g.mode,g.filter).then(function(C){return C.buffer}):I.ready.then(function(){const C=new ArrayBuffer(n*s);return I.decodeGltfBuffer(new Uint8Array(C),n,s,E,g.mode,g.filter),C})})}return null}}class Sr{constructor(A){this.name=cA.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const a=this.parser.json,e=a.nodes[A];if(!e.extensions||!e.extensions[this.name]||e.mesh===void 0)return null;const g=a.meshes[e.mesh];for(const o of g.primitives)if(o.mode!==da.TRIANGLES&&o.mode!==da.TRIANGLE_STRIP&&o.mode!==da.TRIANGLE_FAN&&o.mode!==void 0)return null;const i=e.extensions[this.name].attributes,I=[],r={};for(const o in i)I.push(this.parser.getDependency("accessor",i[o]).then(B=>(r[o]=B,r[o])));return I.length<1?null:(I.push(this.parser.createNodeMesh(A)),Promise.all(I).then(o=>{const B=o.pop(),n=B.isGroup?B.children:[B],s=o[0].count,E=[];for(const C of n){const Q=new f.Matrix4,c=new f.Vector3,d=new f.Quaternion,b=new f.Vector3(1,1,1),h=new f.InstancedMesh(C.geometry,C.material,s);for(let l=0;l<s;l++)r.TRANSLATION&&c.fromBufferAttribute(r.TRANSLATION,l),r.ROTATION&&d.fromBufferAttribute(r.ROTATION,l),r.SCALE&&b.fromBufferAttribute(r.SCALE,l),h.setMatrixAt(l,Q.compose(c,d,b));for(const l in r)if(l==="_COLOR_0"){const w=r[l];h.instanceColor=new f.InstancedBufferAttribute(w.array,w.itemSize,w.normalized)}else l!=="TRANSLATION"&&l!=="ROTATION"&&l!=="SCALE"&&C.geometry.setAttribute(l,r[l]);f.Object3D.prototype.copy.call(h,C),this.parser.assignFinalMaterial(h),E.push(h)}return B.isGroup?(B.clear(),B.add(...E),B):E[0]}))}}const Vg="glTF",Ur=1313821514,xr=5130562;class Lr{constructor(A){this.name=cA.KHR_BINARY_GLTF,this.content=null,this.body=null;const a=new DataView(A,0,12),e=new TextDecoder;if(this.header={magic:e.decode(new Uint8Array(A.slice(0,4))),version:a.getUint32(4,!0),length:a.getUint32(8,!0)},this.header.magic!==Vg)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const g=this.header.length-12,i=new DataView(A,12);let I=0;for(;I<g;){const r=i.getUint32(I,!0);I+=4;const o=i.getUint32(I,!0);if(I+=4,o===Ur){const B=new Uint8Array(A,12+I,r);this.content=e.decode(B)}else if(o===xr){const B=12+I;this.body=A.slice(B,B+r)}I+=r}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class jr{constructor(A,a){if(!a)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=cA.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=a,this.dracoLoader.preload()}decodePrimitive(A,a){const e=this.json,g=this.dracoLoader,i=A.extensions[this.name].bufferView,I=A.extensions[this.name].attributes,r={},o={},B={};for(const n in I){const s=St[n]||n.toLowerCase();r[s]=I[n]}for(const n in A.attributes){const s=St[n]||n.toLowerCase();if(I[n]!==void 0){const E=e.accessors[A.attributes[n]],C=Qe[E.componentType];B[s]=C.name,o[s]=E.normalized===!0}}return a.getDependency("bufferView",i).then(function(n){return new Promise(function(s,E){g.decodeDracoFile(n,function(C){for(const Q in C.attributes){const c=C.attributes[Q],d=o[Q];d!==void 0&&(c.normalized=d)}s(C)},r,B,f.LinearSRGBColorSpace,E)})})}}class vr{constructor(){this.name=cA.KHR_TEXTURE_TRANSFORM}extendTexture(A,a){return(a.texCoord!==void 0&&a.texCoord!==A.channel||a.offset!==void 0||a.rotation!==void 0||a.scale!==void 0)&&(A=A.clone(),a.texCoord!==void 0&&(A.channel=a.texCoord),a.offset!==void 0&&A.offset.fromArray(a.offset),a.rotation!==void 0&&(A.rotation=a.rotation),a.scale!==void 0&&A.repeat.fromArray(a.scale),A.needsUpdate=!0),A}}class Jr{constructor(){this.name=cA.KHR_MESH_QUANTIZATION}}class Xg extends f.Interpolant{constructor(A,a,e,g){super(A,a,e,g)}copySampleValue_(A){const a=this.resultBuffer,e=this.sampleValues,g=this.valueSize,i=A*g*3+g;for(let I=0;I!==g;I++)a[I]=e[i+I];return a}interpolate_(A,a,e,g){const i=this.resultBuffer,I=this.sampleValues,r=this.valueSize,o=2*r,B=3*r,n=g-a,s=(e-a)/n,E=s*s,C=E*s,Q=A*B,c=Q-B,d=-2*C+3*E,b=C-E,h=1-d,l=b-E+s;for(let w=0;w!==r;w++){const M=I[c+w+r],k=I[c+w+o]*n,N=I[Q+w+r],F=I[Q+w]*n;i[w]=h*M+l*k+d*N+b*F}return i}}const Hr=new f.Quaternion;class Yr extends Xg{interpolate_(A,a,e,g){const i=super.interpolate_(A,a,e,g);return Hr.fromArray(i).normalize().toArray(i),i}}const da={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Qe={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Zg={9728:f.NearestFilter,9729:f.LinearFilter,9984:f.NearestMipmapNearestFilter,9985:f.LinearMipmapNearestFilter,9986:f.NearestMipmapLinearFilter,9987:f.LinearMipmapLinearFilter},_g={33071:f.ClampToEdgeWrapping,33648:f.MirroredRepeatWrapping,10497:f.RepeatWrapping},Gt={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},St={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},va={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Kr={CUBICSPLINE:void 0,LINEAR:f.InterpolateLinear,STEP:f.InterpolateDiscrete},Tr="OPAQUE",qr="MASK",Or="BLEND";function ae(t,A,a){for(const e in a.extensions)t[e]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[e]=a.extensions[e])}function Na(t,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(t.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function Pr(t,A){if(t.updateMorphTargets(),A.weights!==void 0)for(let a=0,e=A.weights.length;a<e;a++)t.morphTargetInfluences[a]=A.weights[a];if(A.extras&&Array.isArray(A.extras.targetNames)){const a=A.extras.targetNames;if(t.morphTargetInfluences.length===a.length){t.morphTargetDictionary={};for(let e=0,g=a.length;e<g;e++)t.morphTargetDictionary[a[e]]=e}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function zr(t){let A;const a=t.extensions&&t.extensions[cA.KHR_DRACO_MESH_COMPRESSION];if(A=a?"draco:"+a.bufferView+":"+a.indices+":"+Ut(a.attributes):t.indices+":"+Ut(t.attributes)+":"+t.mode,t.targets!==void 0)for(let e=0,g=t.targets.length;e<g;e++)A+=":"+Ut(t.targets[e]);return A}function Ut(t){let A="";const a=Object.keys(t).sort();for(let e=0,g=a.length;e<g;e++)A+=a[e]+":"+t[a[e]]+";";return A}function xt(t){switch(t){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const Wr=new f.Matrix4;class Vr{constructor(A={},a={}){this.json=A,this.extensions={},this.plugins={},this.options=a,this.cache=new cr,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let e=!1,g=-1,i=!1,I=-1;if(typeof navigator<"u"){const r=navigator.userAgent;e=/^((?!chrome|android).)*safari/i.test(r)===!0;const o=r.match(/Version\/(\d+)/);g=e&&o?parseInt(o[1],10):-1,i=r.indexOf("Firefox")>-1,I=i?r.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||e&&g<17||i&&I<98?this.textureLoader=new f.TextureLoader(this.options.manager):this.textureLoader=new f.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new f.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,a){const e=this,g=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(I){return I._markDefs&&I._markDefs()}),Promise.all(this._invokeAll(function(I){return I.beforeRoot&&I.beforeRoot()})).then(function(){return Promise.all([e.getDependencies("scene"),e.getDependencies("animation"),e.getDependencies("camera")])}).then(function(I){const r={scene:I[0][g.scene||0],scenes:I[0],animations:I[1],cameras:I[2],asset:g.asset,parser:e,userData:{}};return ae(i,r,g),Na(r,g),Promise.all(e._invokeAll(function(o){return o.afterRoot&&o.afterRoot(r)})).then(function(){for(const o of r.scenes)o.updateMatrixWorld();A(r)})}).catch(a)}_markDefs(){const A=this.json.nodes||[],a=this.json.skins||[],e=this.json.meshes||[];for(let g=0,i=a.length;g<i;g++){const I=a[g].joints;for(let r=0,o=I.length;r<o;r++)A[I[r]].isBone=!0}for(let g=0,i=A.length;g<i;g++){const I=A[g];I.mesh!==void 0&&(this._addNodeRef(this.meshCache,I.mesh),I.skin!==void 0&&(e[I.mesh].isSkinnedMesh=!0)),I.camera!==void 0&&this._addNodeRef(this.cameraCache,I.camera)}}_addNodeRef(A,a){a!==void 0&&(A.refs[a]===void 0&&(A.refs[a]=A.uses[a]=0),A.refs[a]++)}_getNodeRef(A,a,e){if(A.refs[a]<=1)return e;const g=e.clone(),i=(I,r)=>{const o=this.associations.get(I);o!=null&&this.associations.set(r,o);for(const[B,n]of I.children.entries())i(n,r.children[B])};return i(e,g),g.name+="_instance_"+A.uses[a]++,g}_invokeOne(A){const a=Object.values(this.plugins);a.push(this);for(let e=0;e<a.length;e++){const g=A(a[e]);if(g)return g}return null}_invokeAll(A){const a=Object.values(this.plugins);a.unshift(this);const e=[];for(let g=0;g<a.length;g++){const i=A(a[g]);i&&e.push(i)}return e}getDependency(A,a){const e=A+":"+a;let g=this.cache.get(e);if(!g){switch(A){case"scene":g=this.loadScene(a);break;case"node":g=this._invokeOne(function(i){return i.loadNode&&i.loadNode(a)});break;case"mesh":g=this._invokeOne(function(i){return i.loadMesh&&i.loadMesh(a)});break;case"accessor":g=this.loadAccessor(a);break;case"bufferView":g=this._invokeOne(function(i){return i.loadBufferView&&i.loadBufferView(a)});break;case"buffer":g=this.loadBuffer(a);break;case"material":g=this._invokeOne(function(i){return i.loadMaterial&&i.loadMaterial(a)});break;case"texture":g=this._invokeOne(function(i){return i.loadTexture&&i.loadTexture(a)});break;case"skin":g=this.loadSkin(a);break;case"animation":g=this._invokeOne(function(i){return i.loadAnimation&&i.loadAnimation(a)});break;case"camera":g=this.loadCamera(a);break;default:if(g=this._invokeOne(function(i){return i!=this&&i.getDependency&&i.getDependency(A,a)}),!g)throw new Error("Unknown type: "+A)}this.cache.add(e,g)}return g}getDependencies(A){let a=this.cache.get(A);if(!a){const e=this,g=this.json[A+(A==="mesh"?"es":"s")]||[];a=Promise.all(g.map(function(i,I){return e.getDependency(A,I)})),this.cache.add(A,a)}return a}loadBuffer(A){const a=this.json.buffers[A],e=this.fileLoader;if(a.type&&a.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+a.type+" buffer type is not supported.");if(a.uri===void 0&&A===0)return Promise.resolve(this.extensions[cA.KHR_BINARY_GLTF].body);const g=this.options;return new Promise(function(i,I){e.load(f.LoaderUtils.resolveURL(a.uri,g.path),i,void 0,function(){I(new Error('THREE.GLTFLoader: Failed to load buffer "'+a.uri+'".'))})})}loadBufferView(A){const a=this.json.bufferViews[A];return this.getDependency("buffer",a.buffer).then(function(e){const g=a.byteLength||0,i=a.byteOffset||0;return e.slice(i,i+g)})}loadAccessor(A){const a=this,e=this.json,g=this.json.accessors[A];if(g.bufferView===void 0&&g.sparse===void 0){const I=Gt[g.type],r=Qe[g.componentType],o=g.normalized===!0,B=new r(g.count*I);return Promise.resolve(new f.BufferAttribute(B,I,o))}const i=[];return g.bufferView!==void 0?i.push(this.getDependency("bufferView",g.bufferView)):i.push(null),g.sparse!==void 0&&(i.push(this.getDependency("bufferView",g.sparse.indices.bufferView)),i.push(this.getDependency("bufferView",g.sparse.values.bufferView))),Promise.all(i).then(function(I){const r=I[0],o=Gt[g.type],B=Qe[g.componentType],n=B.BYTES_PER_ELEMENT,s=n*o,E=g.byteOffset||0,C=g.bufferView!==void 0?e.bufferViews[g.bufferView].byteStride:void 0,Q=g.normalized===!0;let c,d;if(C&&C!==s){const b=Math.floor(E/C),h="InterleavedBuffer:"+g.bufferView+":"+g.componentType+":"+b+":"+g.count;let l=a.cache.get(h);l||(c=new B(r,b*C,g.count*C/n),l=new f.InterleavedBuffer(c,C/n),a.cache.add(h,l)),d=new f.InterleavedBufferAttribute(l,o,E%C/n,Q)}else c=r===null?new B(g.count*o):new B(r,E,g.count*o),d=new f.BufferAttribute(c,o,Q);if(g.sparse!==void 0){const b=Gt.SCALAR,h=Qe[g.sparse.indices.componentType],l=g.sparse.indices.byteOffset||0,w=g.sparse.values.byteOffset||0,M=new h(I[1],l,g.sparse.count*b),k=new B(I[2],w,g.sparse.count*o);r!==null&&(d=new f.BufferAttribute(d.array.slice(),d.itemSize,d.normalized)),d.normalized=!1;for(let N=0,F=M.length;N<F;N++){const G=M[N];if(d.setX(G,k[N*o]),o>=2&&d.setY(G,k[N*o+1]),o>=3&&d.setZ(G,k[N*o+2]),o>=4&&d.setW(G,k[N*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}d.normalized=Q}return d})}loadTexture(A){const a=this.json,e=this.options,g=a.textures[A].source,i=a.images[g];let I=this.textureLoader;if(i.uri){const r=e.manager.getHandler(i.uri);r!==null&&(I=r)}return this.loadTextureImage(A,g,I)}loadTextureImage(A,a,e){const g=this,i=this.json,I=i.textures[A],r=i.images[a],o=(r.uri||r.bufferView)+":"+I.sampler;if(this.textureCache[o])return this.textureCache[o];const B=this.loadImageSource(a,e).then(function(n){n.flipY=!1,n.name=I.name||r.name||"",n.name===""&&typeof r.uri=="string"&&r.uri.startsWith("data:image/")===!1&&(n.name=r.uri);const s=(i.samplers||{})[I.sampler]||{};return n.magFilter=Zg[s.magFilter]||f.LinearFilter,n.minFilter=Zg[s.minFilter]||f.LinearMipmapLinearFilter,n.wrapS=_g[s.wrapS]||f.RepeatWrapping,n.wrapT=_g[s.wrapT]||f.RepeatWrapping,n.generateMipmaps=!n.isCompressedTexture&&n.minFilter!==f.NearestFilter&&n.minFilter!==f.LinearFilter,g.associations.set(n,{textures:A}),n}).catch(function(){return null});return this.textureCache[o]=B,B}loadImageSource(A,a){const e=this,g=this.json,i=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(s=>s.clone());const I=g.images[A],r=self.URL||self.webkitURL;let o=I.uri||"",B=!1;if(I.bufferView!==void 0)o=e.getDependency("bufferView",I.bufferView).then(function(s){B=!0;const E=new Blob([s],{type:I.mimeType});return o=r.createObjectURL(E),o});else if(I.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const n=Promise.resolve(o).then(function(s){return new Promise(function(E,C){let Q=E;a.isImageBitmapLoader===!0&&(Q=function(c){const d=new f.Texture(c);d.needsUpdate=!0,E(d)}),a.load(f.LoaderUtils.resolveURL(s,i.path),Q,void 0,C)})}).then(function(s){var E;return B===!0&&r.revokeObjectURL(o),Na(s,I),s.userData.mimeType=I.mimeType||((E=I.uri).search(/\.jpe?g($|\?)/i)>0||E.search(/^data\:image\/jpeg/)===0?"image/jpeg":E.search(/\.webp($|\?)/i)>0||E.search(/^data\:image\/webp/)===0?"image/webp":E.search(/\.ktx2($|\?)/i)>0||E.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"),s}).catch(function(s){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),s});return this.sourceCache[A]=n,n}assignTexture(A,a,e,g){const i=this;return this.getDependency("texture",e.index).then(function(I){if(!I)return null;if(e.texCoord!==void 0&&e.texCoord>0&&((I=I.clone()).channel=e.texCoord),i.extensions[cA.KHR_TEXTURE_TRANSFORM]){const r=e.extensions!==void 0?e.extensions[cA.KHR_TEXTURE_TRANSFORM]:void 0;if(r){const o=i.associations.get(I);I=i.extensions[cA.KHR_TEXTURE_TRANSFORM].extendTexture(I,r),i.associations.set(I,o)}}return g!==void 0&&(I.colorSpace=g),A[a]=I,I})}assignFinalMaterial(A){const a=A.geometry;let e=A.material;const g=a.attributes.tangent===void 0,i=a.attributes.color!==void 0,I=a.attributes.normal===void 0;if(A.isPoints){const r="PointsMaterial:"+e.uuid;let o=this.cache.get(r);o||(o=new f.PointsMaterial,f.Material.prototype.copy.call(o,e),o.color.copy(e.color),o.map=e.map,o.sizeAttenuation=!1,this.cache.add(r,o)),e=o}else if(A.isLine){const r="LineBasicMaterial:"+e.uuid;let o=this.cache.get(r);o||(o=new f.LineBasicMaterial,f.Material.prototype.copy.call(o,e),o.color.copy(e.color),o.map=e.map,this.cache.add(r,o)),e=o}if(g||i||I){let r="ClonedMaterial:"+e.uuid+":";g&&(r+="derivative-tangents:"),i&&(r+="vertex-colors:"),I&&(r+="flat-shading:");let o=this.cache.get(r);o||(o=e.clone(),i&&(o.vertexColors=!0),I&&(o.flatShading=!0),g&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),this.cache.add(r,o),this.associations.set(o,this.associations.get(e))),e=o}A.material=e}getMaterialType(){return f.MeshStandardMaterial}loadMaterial(A){const a=this,e=this.json,g=this.extensions,i=e.materials[A];let I;const r={},o=[];if((i.extensions||{})[cA.KHR_MATERIALS_UNLIT]){const n=g[cA.KHR_MATERIALS_UNLIT];I=n.getMaterialType(),o.push(n.extendParams(r,i,a))}else{const n=i.pbrMetallicRoughness||{};if(r.color=new f.Color(1,1,1),r.opacity=1,Array.isArray(n.baseColorFactor)){const s=n.baseColorFactor;r.color.setRGB(s[0],s[1],s[2],f.LinearSRGBColorSpace),r.opacity=s[3]}n.baseColorTexture!==void 0&&o.push(a.assignTexture(r,"map",n.baseColorTexture,f.SRGBColorSpace)),r.metalness=n.metallicFactor!==void 0?n.metallicFactor:1,r.roughness=n.roughnessFactor!==void 0?n.roughnessFactor:1,n.metallicRoughnessTexture!==void 0&&(o.push(a.assignTexture(r,"metalnessMap",n.metallicRoughnessTexture)),o.push(a.assignTexture(r,"roughnessMap",n.metallicRoughnessTexture))),I=this._invokeOne(function(s){return s.getMaterialType&&s.getMaterialType(A)}),o.push(Promise.all(this._invokeAll(function(s){return s.extendMaterialParams&&s.extendMaterialParams(A,r)})))}i.doubleSided===!0&&(r.side=f.DoubleSide);const B=i.alphaMode||Tr;if(B===Or?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,B===qr&&(r.alphaTest=i.alphaCutoff!==void 0?i.alphaCutoff:.5)),i.normalTexture!==void 0&&I!==f.MeshBasicMaterial&&(o.push(a.assignTexture(r,"normalMap",i.normalTexture)),r.normalScale=new f.Vector2(1,1),i.normalTexture.scale!==void 0)){const n=i.normalTexture.scale;r.normalScale.set(n,n)}if(i.occlusionTexture!==void 0&&I!==f.MeshBasicMaterial&&(o.push(a.assignTexture(r,"aoMap",i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(r.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&I!==f.MeshBasicMaterial){const n=i.emissiveFactor;r.emissive=new f.Color().setRGB(n[0],n[1],n[2],f.LinearSRGBColorSpace)}return i.emissiveTexture!==void 0&&I!==f.MeshBasicMaterial&&o.push(a.assignTexture(r,"emissiveMap",i.emissiveTexture,f.SRGBColorSpace)),Promise.all(o).then(function(){const n=new I(r);return i.name&&(n.name=i.name),Na(n,i),a.associations.set(n,{materials:A}),i.extensions&&ae(g,n,i),n})}createUniqueName(A){const a=f.PropertyBinding.sanitizeNodeName(A||"");return a in this.nodeNamesUsed?a+"_"+ ++this.nodeNamesUsed[a]:(this.nodeNamesUsed[a]=0,a)}loadGeometries(A){const a=this,e=this.extensions,g=this.primitiveCache;function i(r){return e[cA.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(r,a).then(function(o){return $g(o,r,a)})}const I=[];for(let r=0,o=A.length;r<o;r++){const B=A[r],n=zr(B),s=g[n];if(s)I.push(s.promise);else{let E;E=B.extensions&&B.extensions[cA.KHR_DRACO_MESH_COMPRESSION]?i(B):$g(new f.BufferGeometry,B,a),g[n]={primitive:B,promise:E},I.push(E)}}return Promise.all(I)}loadMesh(A){const a=this,e=this.json,g=this.extensions,i=e.meshes[A],I=i.primitives,r=[];for(let B=0,n=I.length;B<n;B++){const s=I[B].material===void 0?((o=this.cache).DefaultMaterial===void 0&&(o.DefaultMaterial=new f.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:f.FrontSide})),o.DefaultMaterial):this.getDependency("material",I[B].material);r.push(s)}var o;return r.push(a.loadGeometries(I)),Promise.all(r).then(function(B){const n=B.slice(0,B.length-1),s=B[B.length-1],E=[];for(let Q=0,c=s.length;Q<c;Q++){const d=s[Q],b=I[Q];let h;const l=n[Q];if(b.mode===da.TRIANGLES||b.mode===da.TRIANGLE_STRIP||b.mode===da.TRIANGLE_FAN||b.mode===void 0)h=i.isSkinnedMesh===!0?new f.SkinnedMesh(d,l):new f.Mesh(d,l),h.isSkinnedMesh===!0&&h.normalizeSkinWeights(),b.mode===da.TRIANGLE_STRIP?h.geometry=Pg(h.geometry,f.TriangleStripDrawMode):b.mode===da.TRIANGLE_FAN&&(h.geometry=Pg(h.geometry,f.TriangleFanDrawMode));else if(b.mode===da.LINES)h=new f.LineSegments(d,l);else if(b.mode===da.LINE_STRIP)h=new f.Line(d,l);else if(b.mode===da.LINE_LOOP)h=new f.LineLoop(d,l);else{if(b.mode!==da.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+b.mode);h=new f.Points(d,l)}Object.keys(h.geometry.morphAttributes).length>0&&Pr(h,i),h.name=a.createUniqueName(i.name||"mesh_"+A),Na(h,i),b.extensions&&ae(g,h,b),a.assignFinalMaterial(h),E.push(h)}for(let Q=0,c=E.length;Q<c;Q++)a.associations.set(E[Q],{meshes:A,primitives:Q});if(E.length===1)return i.extensions&&ae(g,E[0],i),E[0];const C=new f.Group;i.extensions&&ae(g,C,i),a.associations.set(C,{meshes:A});for(let Q=0,c=E.length;Q<c;Q++)C.add(E[Q]);return C})}loadCamera(A){let a;const e=this.json.cameras[A],g=e[e.type];if(g)return e.type==="perspective"?a=new f.PerspectiveCamera(f.MathUtils.radToDeg(g.yfov),g.aspectRatio||1,g.znear||1,g.zfar||2e6):e.type==="orthographic"&&(a=new f.OrthographicCamera(-g.xmag,g.xmag,g.ymag,-g.ymag,g.znear,g.zfar)),e.name&&(a.name=this.createUniqueName(e.name)),Na(a,e),Promise.resolve(a);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(A){const a=this.json.skins[A],e=[];for(let g=0,i=a.joints.length;g<i;g++)e.push(this._loadNodeShallow(a.joints[g]));return a.inverseBindMatrices!==void 0?e.push(this.getDependency("accessor",a.inverseBindMatrices)):e.push(null),Promise.all(e).then(function(g){const i=g.pop(),I=g,r=[],o=[];for(let B=0,n=I.length;B<n;B++){const s=I[B];if(s){r.push(s);const E=new f.Matrix4;i!==null&&E.fromArray(i.array,16*B),o.push(E)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',a.joints[B])}return new f.Skeleton(r,o)})}loadAnimation(A){const a=this.json,e=this,g=a.animations[A],i=g.name?g.name:"animation_"+A,I=[],r=[],o=[],B=[],n=[];for(let s=0,E=g.channels.length;s<E;s++){const C=g.channels[s],Q=g.samplers[C.sampler],c=C.target,d=c.node,b=g.parameters!==void 0?g.parameters[Q.input]:Q.input,h=g.parameters!==void 0?g.parameters[Q.output]:Q.output;c.node!==void 0&&(I.push(this.getDependency("node",d)),r.push(this.getDependency("accessor",b)),o.push(this.getDependency("accessor",h)),B.push(Q),n.push(c))}return Promise.all([Promise.all(I),Promise.all(r),Promise.all(o),Promise.all(B),Promise.all(n)]).then(function(s){const E=s[0],C=s[1],Q=s[2],c=s[3],d=s[4],b=[];for(let h=0,l=E.length;h<l;h++){const w=E[h],M=C[h],k=Q[h],N=c[h],F=d[h];if(w===void 0)continue;w.updateMatrix&&w.updateMatrix();const G=e._createAnimationTracks(w,M,k,N,F);if(G)for(let L=0;L<G.length;L++)b.push(G[L])}return new f.AnimationClip(i,void 0,b)})}createNodeMesh(A){const a=this.json,e=this,g=a.nodes[A];return g.mesh===void 0?null:e.getDependency("mesh",g.mesh).then(function(i){const I=e._getNodeRef(e.meshCache,g.mesh,i);return g.weights!==void 0&&I.traverse(function(r){if(r.isMesh)for(let o=0,B=g.weights.length;o<B;o++)r.morphTargetInfluences[o]=g.weights[o]}),I})}loadNode(A){const a=this,e=this.json.nodes[A],g=a._loadNodeShallow(A),i=[],I=e.children||[];for(let o=0,B=I.length;o<B;o++)i.push(a.getDependency("node",I[o]));const r=e.skin===void 0?Promise.resolve(null):a.getDependency("skin",e.skin);return Promise.all([g,Promise.all(i),r]).then(function(o){const B=o[0],n=o[1],s=o[2];s!==null&&B.traverse(function(E){E.isSkinnedMesh&&E.bind(s,Wr)});for(let E=0,C=n.length;E<C;E++)B.add(n[E]);return B})}_loadNodeShallow(A){const a=this.json,e=this.extensions,g=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const i=a.nodes[A],I=i.name?g.createUniqueName(i.name):"",r=[],o=g._invokeOne(function(B){return B.createNodeMesh&&B.createNodeMesh(A)});return o&&r.push(o),i.camera!==void 0&&r.push(g.getDependency("camera",i.camera).then(function(B){return g._getNodeRef(g.cameraCache,i.camera,B)})),g._invokeAll(function(B){return B.createNodeAttachment&&B.createNodeAttachment(A)}).forEach(function(B){r.push(B)}),this.nodeCache[A]=Promise.all(r).then(function(B){let n;if(n=i.isBone===!0?new f.Bone:B.length>1?new f.Group:B.length===1?B[0]:new f.Object3D,n!==B[0])for(let s=0,E=B.length;s<E;s++)n.add(B[s]);if(i.name&&(n.userData.name=i.name,n.name=I),Na(n,i),i.extensions&&ae(e,n,i),i.matrix!==void 0){const s=new f.Matrix4;s.fromArray(i.matrix),n.applyMatrix4(s)}else i.translation!==void 0&&n.position.fromArray(i.translation),i.rotation!==void 0&&n.quaternion.fromArray(i.rotation),i.scale!==void 0&&n.scale.fromArray(i.scale);if(g.associations.has(n)){if(i.mesh!==void 0&&g.meshCache.refs[i.mesh]>1){const s=g.associations.get(n);g.associations.set(n,{...s})}}else g.associations.set(n,{});return g.associations.get(n).nodes=A,n}),this.nodeCache[A]}loadScene(A){const a=this.extensions,e=this.json.scenes[A],g=this,i=new f.Group;e.name&&(i.name=g.createUniqueName(e.name)),Na(i,e),e.extensions&&ae(a,i,e);const I=e.nodes||[],r=[];for(let o=0,B=I.length;o<B;o++)r.push(g.getDependency("node",I[o]));return Promise.all(r).then(function(o){for(let B=0,n=o.length;B<n;B++)i.add(o[B]);return g.associations=(B=>{const n=new Map;for(const[s,E]of g.associations)(s instanceof f.Material||s instanceof f.Texture)&&n.set(s,E);return B.traverse(s=>{const E=g.associations.get(s);E!=null&&n.set(s,E)}),n})(i),i})}_createAnimationTracks(A,a,e,g,i){const I=[],r=A.name?A.name:A.uuid,o=[];let B;switch(va[i.path]===va.weights?A.traverse(function(E){E.morphTargetInfluences&&o.push(E.name?E.name:E.uuid)}):o.push(r),va[i.path]){case va.weights:B=f.NumberKeyframeTrack;break;case va.rotation:B=f.QuaternionKeyframeTrack;break;case va.translation:case va.scale:B=f.VectorKeyframeTrack;break;default:e.itemSize===1?B=f.NumberKeyframeTrack:B=f.VectorKeyframeTrack}const n=g.interpolation!==void 0?Kr[g.interpolation]:f.InterpolateLinear,s=this._getArrayFromAccessor(e);for(let E=0,C=o.length;E<C;E++){const Q=new B(o[E]+"."+va[i.path],a.array,s,n);g.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(Q),I.push(Q)}return I}_getArrayFromAccessor(A){let a=A.array;if(A.normalized){const e=xt(a.constructor),g=new Float32Array(a.length);for(let i=0,I=a.length;i<I;i++)g[i]=a[i]*e;a=g}return a}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(a){return new(this instanceof f.QuaternionKeyframeTrack?Yr:Xg)(this.times,this.values,this.getValueSize()/3,a)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function $g(t,A,a){const e=A.attributes,g=[];function i(I,r){return a.getDependency("accessor",I).then(function(o){t.setAttribute(r,o)})}for(const I in e){const r=St[I]||I.toLowerCase();r in t.attributes||g.push(i(e[I],r))}if(A.indices!==void 0&&!t.index){const I=a.getDependency("accessor",A.indices).then(function(r){t.setIndex(r)});g.push(I)}return f.ColorManagement.workingColorSpace!==f.LinearSRGBColorSpace&&"COLOR_0"in e&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${f.ColorManagement.workingColorSpace}" not supported.`),Na(t,A),function(I,r,o){const B=r.attributes,n=new f.Box3;if(B.POSITION===void 0)return;{const C=o.json.accessors[B.POSITION],Q=C.min,c=C.max;if(Q===void 0||c===void 0)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(n.set(new f.Vector3(Q[0],Q[1],Q[2]),new f.Vector3(c[0],c[1],c[2])),C.normalized){const d=xt(Qe[C.componentType]);n.min.multiplyScalar(d),n.max.multiplyScalar(d)}}const s=r.targets;if(s!==void 0){const C=new f.Vector3,Q=new f.Vector3;for(let c=0,d=s.length;c<d;c++){const b=s[c];if(b.POSITION!==void 0){const h=o.json.accessors[b.POSITION],l=h.min,w=h.max;if(l!==void 0&&w!==void 0){if(Q.setX(Math.max(Math.abs(l[0]),Math.abs(w[0]))),Q.setY(Math.max(Math.abs(l[1]),Math.abs(w[1]))),Q.setZ(Math.max(Math.abs(l[2]),Math.abs(w[2]))),h.normalized){const M=xt(Qe[h.componentType]);Q.multiplyScalar(M)}C.max(Q)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}n.expandByVector(C)}I.boundingBox=n;const E=new f.Sphere;n.getCenter(E.center),E.radius=n.min.distanceTo(n.max)/2,I.boundingSphere=E}(t,A,a),Promise.all(g).then(function(){return A.targets!==void 0?function(I,r,o){let B=!1,n=!1,s=!1;for(let c=0,d=r.length;c<d;c++){const b=r[c];if(b.POSITION!==void 0&&(B=!0),b.NORMAL!==void 0&&(n=!0),b.COLOR_0!==void 0&&(s=!0),B&&n&&s)break}if(!B&&!n&&!s)return Promise.resolve(I);const E=[],C=[],Q=[];for(let c=0,d=r.length;c<d;c++){const b=r[c];if(B){const h=b.POSITION!==void 0?o.getDependency("accessor",b.POSITION):I.attributes.position;E.push(h)}if(n){const h=b.NORMAL!==void 0?o.getDependency("accessor",b.NORMAL):I.attributes.normal;C.push(h)}if(s){const h=b.COLOR_0!==void 0?o.getDependency("accessor",b.COLOR_0):I.attributes.color;Q.push(h)}}return Promise.all([Promise.all(E),Promise.all(C),Promise.all(Q)]).then(function(c){const d=c[0],b=c[1],h=c[2];return B&&(I.morphAttributes.position=d),n&&(I.morphAttributes.normal=b),s&&(I.morphAttributes.color=h),I.morphTargetsRelative=!0,I})}(t,A.targets,a):t})}const Lt=new WeakMap;class Ai extends f.Loader{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,a,e,g){const i=new f.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(A,I=>{this.parse(I,a,g)},e,g)}parse(A,a,e=()=>{}){this.decodeDracoFile(A,a,null,null,f.SRGBColorSpace,e).catch(e)}decodeDracoFile(A,a,e,g,i=f.LinearSRGBColorSpace,I=()=>{}){const r={attributeIDs:e||this.defaultAttributeIDs,attributeTypes:g||this.defaultAttributeTypes,useUniqueIDs:!!e,vertexColorSpace:i};return this.decodeGeometry(A,r).then(a).catch(I)}decodeGeometry(A,a){const e=JSON.stringify(a);if(Lt.has(A)){const o=Lt.get(A);if(o.key===e)return o.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let g;const i=this.workerNextTaskID++,I=A.byteLength,r=this._getWorker(i,I).then(o=>(g=o,new Promise((B,n)=>{g._callbacks[i]={resolve:B,reject:n},g.postMessage({type:"decode",id:i,taskConfig:a,buffer:A},[A])}))).then(o=>this._createGeometry(o.geometry));return r.catch(()=>!0).then(()=>{g&&i&&this._releaseTask(g,i)}),Lt.set(A,{key:e,promise:r}),r}_createGeometry(A){const a=new f.BufferGeometry;A.index&&a.setIndex(new f.BufferAttribute(A.index.array,1));for(let e=0;e<A.attributes.length;e++){const g=A.attributes[e],i=g.name,I=g.array,r=g.itemSize,o=new f.BufferAttribute(I,r);i==="color"&&(this._assignVertexColorSpace(o,g.vertexColorSpace),o.normalized=!(I instanceof Float32Array)),a.setAttribute(i,o)}return a}_assignVertexColorSpace(A,a){if(a!==f.SRGBColorSpace)return;const e=new f.Color;for(let g=0,i=A.count;g<i;g++)e.fromBufferAttribute(A,g),f.ColorManagement.colorSpaceToWorking(e,f.SRGBColorSpace),A.setXYZ(g,e.r,e.g,e.b)}_loadLibrary(A,a){const e=new f.FileLoader(this.manager);return e.setPath(this.decoderPath),e.setResponseType(a),e.setWithCredentials(this.withCredentials),new Promise((g,i)=>{e.load(A,g,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",a=[];return A?a.push(this._loadLibrary("draco_decoder.js","text")):(a.push(this._loadLibrary("draco_wasm_wrapper.js","text")),a.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(a).then(e=>{const g=e[0];A||(this.decoderConfig.wasmBinary=e[1]);const i=Xr.toString(),I=["/* draco decoder */",g,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join(`
|
|
19
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([I]))}),this.decoderPending}_getWorker(A,a){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const g=new Worker(this.workerSourceURL);g._callbacks={},g._taskCosts={},g._taskLoad=0,g.postMessage({type:"init",decoderConfig:this.decoderConfig}),g.onmessage=function(i){const I=i.data;switch(I.type){case"decode":g._callbacks[I.id].resolve(I);break;case"error":g._callbacks[I.id].reject(I);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+I.type+'"')}},this.workerPool.push(g)}else this.workerPool.sort(function(g,i){return g._taskLoad>i._taskLoad?-1:1});const e=this.workerPool[this.workerPool.length-1];return e._taskCosts[A]=a,e._taskLoad+=a,e})}_releaseTask(A,a){A._taskLoad-=A._taskCosts[a],delete A._callbacks[a],delete A._taskCosts[a]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function Xr(){let t,A;function a(e,g,i,I,r,o){const B=o.num_components(),n=i.num_points()*B,s=n*r.BYTES_PER_ELEMENT,E=function(c,d){switch(d){case Float32Array:return c.DT_FLOAT32;case Int8Array:return c.DT_INT8;case Int16Array:return c.DT_INT16;case Int32Array:return c.DT_INT32;case Uint8Array:return c.DT_UINT8;case Uint16Array:return c.DT_UINT16;case Uint32Array:return c.DT_UINT32}}(e,r),C=e._malloc(s);g.GetAttributeDataArrayForAllPoints(i,o,E,s,C);const Q=new r(e.HEAPF32.buffer,C,n).slice();return e._free(C),{name:I,array:Q,itemSize:B}}onmessage=function(e){const g=e.data;switch(g.type){case"init":t=g.decoderConfig,A=new Promise(function(r){t.onModuleLoaded=function(o){r({draco:o})},DracoDecoderModule(t)});break;case"decode":const i=g.buffer,I=g.taskConfig;A.then(r=>{const o=r.draco,B=new o.Decoder;try{const n=function(E,C,Q,c){const d=c.attributeIDs,b=c.attributeTypes;let h,l;const w=C.GetEncodedGeometryType(Q);if(w===E.TRIANGULAR_MESH)h=new E.Mesh,l=C.DecodeArrayToMesh(Q,Q.byteLength,h);else{if(w!==E.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");h=new E.PointCloud,l=C.DecodeArrayToPointCloud(Q,Q.byteLength,h)}if(!l.ok()||h.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const M={index:null,attributes:[]};for(const k in d){const N=self[b[k]];let F,G;if(c.useUniqueIDs)G=d[k],F=C.GetAttributeByUniqueId(h,G);else{if(G=C.GetAttributeId(h,E[d[k]]),G===-1)continue;F=C.GetAttribute(h,G)}const L=a(E,C,h,k,N,F);k==="color"&&(L.vertexColorSpace=c.vertexColorSpace),M.attributes.push(L)}return w===E.TRIANGULAR_MESH&&(M.index=function(k,N,F){const G=F.num_faces(),L=3*G,x=4*L,W=k._malloc(x);N.GetTrianglesUInt32Array(F,x,W);const X=new Uint32Array(k.HEAPF32.buffer,W,L).slice();return k._free(W),{array:X,itemSize:1}}(E,C,h)),E.destroy(h),M}(o,B,new Int8Array(i),I),s=n.attributes.map(E=>E.array.buffer);n.index&&s.push(n.index.array.buffer),self.postMessage({type:"decode",id:g.id,geometry:n},s)}catch(n){console.error(n),self.postMessage({type:"error",id:g.id,error:n.message})}finally{o.destroy(B)}})}}}class Zr{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const a=this.workerCreator();a.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=a}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,a){const e=this.workersResolve[A];if(e&&e(a),this.queue.length){const{resolve:g,msg:i,transfer:I}=this.queue.shift();this.workersResolve[A]=g,this.workers[A].postMessage(i,I)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,a){return new Promise(e=>{const g=this._getIdleWorker();g!==-1?(this._initWorker(g),this.workerStatus|=1<<g,this.workersResolve[g]=e,this.workers[g].postMessage(A,a)):this.queue.push({resolve:e,msg:A,transfer:a})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const ai=9,ei=15,ti=16,gi=22,ii=37,Ii=43,ri=76,ni=83,oi=97,Bi=100,si=103,Ci=109,_r=131,$r=132,An=133,an=134,en=137,tn=138,gn=141,In=142,rn=145,nn=146,Ei=148,Qi=152,on=157,Bn=158,ci=165,hi=166,jt=1000066e3;class sn{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Ne{constructor(A,a,e,g){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+a,e),this._littleEndian=g,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const a=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,a}_skip(A){return this._offset+=A,this}_scan(A,a){a===void 0&&(a=0);const e=this._offset;let g=0;for(;this._dataView.getUint8(this._offset)!==a&&g<A;)g++,this._offset++;return g<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+e,g)}}const ea=[171,75,84,88,32,50,48,187,13,10,26,10];function di(t){return new TextDecoder().decode(t)}let vt,Ga,Jt;const Ht={env:{emscripten_notify_memory_growth:function(t){Jt=new Uint8Array(Ga.exports.memory.buffer)}}};class Cn{init(){return vt||(vt=typeof fetch<"u"?fetch("data:application/wasm;base64,"+bi).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,Ht)).then(this._init):WebAssembly.instantiate(Buffer.from(bi,"base64"),Ht).then(this._init),vt)}_init(A){Ga=A.instance,Ht.env.emscripten_notify_memory_growth(0)}decode(A,a=0){if(!Ga)throw new Error("ZSTDDecoder: Await .init() before decoding.");const e=A.byteLength,g=Ga.exports.malloc(e);Jt.set(A,g),a=a||Number(Ga.exports.ZSTD_findDecompressedSize(g,e));const i=Ga.exports.malloc(a),I=Ga.exports.ZSTD_decompress(i,a,g,e),r=Jt.slice(i,i+I);return Ga.exports.free(g),Ga.exports.free(i),r}}const bi="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Yt=new WeakMap;let Kt,Tt=0;class sa extends f.Loader{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new Zr,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return this.workerConfig={astcSupported:await A.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await A.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await A.hasFeatureAsync("texture-compression-bc"),bptcSupported:await A.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await A.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(A){return A.isWebGPURenderer===!0?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc1"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bptc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const A=new f.FileLoader(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const a=A.loadAsync("basis_transcoder.js"),e=new f.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setResponseType("arraybuffer"),e.setWithCredentials(this.withCredentials);const g=e.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([a,g]).then(([i,I])=>{const r=sa.BasisWorker.toString(),o=["/* constants */","let _EngineFormat = "+JSON.stringify(sa.EngineFormat),"let _EngineType = "+JSON.stringify(sa.EngineType),"let _TranscoderFormat = "+JSON.stringify(sa.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(sa.BasisFormat),"/* basis_transcoder.js */",i,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join(`
|
|
20
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([o])),this.transcoderBinary=I,this.workerPool.setWorkerCreator(()=>{const B=new Worker(this.workerSourceURL),n=this.transcoderBinary.slice(0);return B.postMessage({type:"init",config:this.workerConfig,transcoderBinary:n},[n]),B})}),Tt>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),Tt++}return this.transcoderPending}load(A,a,e,g){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const i=new f.FileLoader(this.manager);i.setPath(this.path),i.setCrossOrigin(this.crossOrigin),i.setWithCredentials(this.withCredentials),i.setResponseType("arraybuffer"),i.load(A,I=>{this.parse(I,a,g)},e,g)}parse(A,a,e){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(Yt.has(A))return Yt.get(A).promise.then(a).catch(e);this._createTexture(A).then(g=>a?a(g):null).catch(e)}_createTextureFrom(A,a){const{type:e,error:g,data:{faces:i,width:I,height:r,format:o,type:B,dfdFlags:n}}=A;if(e==="error")return Promise.reject(g);let s;if(a.faceCount===6)s=new f.CompressedCubeTexture(i,o,B);else{const E=i[0].mipmaps;s=a.layerCount>1?new f.CompressedArrayTexture(E,I,r,a.layerCount,o,B):new f.CompressedTexture(E,I,r,o,B)}return s.minFilter=i[0].mipmaps.length===1?f.LinearFilter:f.LinearMipmapLinearFilter,s.magFilter=f.LinearFilter,s.generateMipmaps=!1,s.needsUpdate=!0,s.colorSpace=ui(a),s.premultiplyAlpha=!!(1&n),s}async _createTexture(A,a={}){const e=function(r){const o=new Uint8Array(r.buffer,r.byteOffset,ea.length);if(o[0]!==ea[0]||o[1]!==ea[1]||o[2]!==ea[2]||o[3]!==ea[3]||o[4]!==ea[4]||o[5]!==ea[5]||o[6]!==ea[6]||o[7]!==ea[7]||o[8]!==ea[8]||o[9]!==ea[9]||o[10]!==ea[10]||o[11]!==ea[11])throw new Error("Missing KTX 2.0 identifier.");const B=new sn,n=17*Uint32Array.BYTES_PER_ELEMENT,s=new Ne(r,ea.length,n,!0);B.vkFormat=s._nextUint32(),B.typeSize=s._nextUint32(),B.pixelWidth=s._nextUint32(),B.pixelHeight=s._nextUint32(),B.pixelDepth=s._nextUint32(),B.layerCount=s._nextUint32(),B.faceCount=s._nextUint32();const E=s._nextUint32();B.supercompressionScheme=s._nextUint32();const C=s._nextUint32(),Q=s._nextUint32(),c=s._nextUint32(),d=s._nextUint32(),b=s._nextUint64(),h=s._nextUint64(),l=new Ne(r,ea.length+n,3*E*8,!0);for(let rA=0;rA<E;rA++)B.levels.push({levelData:new Uint8Array(r.buffer,r.byteOffset+l._nextUint64(),l._nextUint64()),uncompressedByteLength:l._nextUint64()});const w=new Ne(r,C,Q,!0),M={vendorId:w._skip(4)._nextUint16(),descriptorType:w._nextUint16(),versionNumber:w._nextUint16(),descriptorBlockSize:w._nextUint16(),colorModel:w._nextUint8(),colorPrimaries:w._nextUint8(),transferFunction:w._nextUint8(),flags:w._nextUint8(),texelBlockDimension:[w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8()],bytesPlane:[w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8()],samples:[]},k=(M.descriptorBlockSize/4-6)/4;for(let rA=0;rA<k;rA++){const sA={bitOffset:w._nextUint16(),bitLength:w._nextUint8(),channelType:w._nextUint8(),samplePosition:[w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&sA.channelType?(sA.sampleLower=w._nextInt32(),sA.sampleUpper=w._nextInt32()):(sA.sampleLower=w._nextUint32(),sA.sampleUpper=w._nextUint32()),M.samples[rA]=sA}B.dataFormatDescriptor.length=0,B.dataFormatDescriptor.push(M);const N=new Ne(r,c,d,!0);for(;N._offset<d;){const rA=N._nextUint32(),sA=N._scan(rA),lA=di(sA);if(B.keyValue[lA]=N._nextUint8Array(rA-sA.byteLength-1),lA.match(/^ktx/i)){const pA=di(B.keyValue[lA]);B.keyValue[lA]=pA.substring(0,pA.lastIndexOf("\0"))}N._skip(rA%4?4-rA%4:0)}if(h<=0)return B;const F=new Ne(r,b,h,!0),G=F._nextUint16(),L=F._nextUint16(),x=F._nextUint32(),W=F._nextUint32(),X=F._nextUint32(),eA=F._nextUint32(),AA=[];for(let rA=0;rA<E;rA++)AA.push({imageFlags:F._nextUint32(),rgbSliceByteOffset:F._nextUint32(),rgbSliceByteLength:F._nextUint32(),alphaSliceByteOffset:F._nextUint32(),alphaSliceByteLength:F._nextUint32()});const Z=b+F._offset,oA=Z+x,uA=oA+W,hA=uA+X,yA=new Uint8Array(r.buffer,r.byteOffset+Z,x),DA=new Uint8Array(r.buffer,r.byteOffset+oA,W),BA=new Uint8Array(r.buffer,r.byteOffset+uA,X),MA=new Uint8Array(r.buffer,r.byteOffset+hA,eA);return B.globalData={endpointCount:G,selectorCount:L,imageDescs:AA,endpointsData:yA,selectorsData:DA,tablesData:BA,extendedData:MA},B}(new Uint8Array(A)),g=e.vkFormat===jt&&e.dataFormatDescriptor[0].colorModel===167;if(!(e.vkFormat===0||g&&!this.workerConfig.astcHDRSupported))return async function(r){const{vkFormat:o}=r;if(qt[o]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let B;r.supercompressionScheme===2&&(Kt||(Kt=new Promise(async E=>{const C=new Cn;await C.init(),E(C)})),B=await Kt);const n=[];for(let E=0;E<r.levels.length;E++){const C=Math.max(1,r.pixelWidth>>E),Q=Math.max(1,r.pixelHeight>>E),c=r.pixelDepth?Math.max(1,r.pixelDepth>>E):0,d=r.levels[E];let b,h;if(r.supercompressionScheme===0)b=d.levelData;else{if(r.supercompressionScheme!==2)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");b=B.decode(d.levelData,d.uncompressedByteLength)}h=Ot[o]===f.FloatType?new Float32Array(b.buffer,b.byteOffset,b.byteLength/Float32Array.BYTES_PER_ELEMENT):Ot[o]===f.HalfFloatType?new Uint16Array(b.buffer,b.byteOffset,b.byteLength/Uint16Array.BYTES_PER_ELEMENT):b,n.push({data:h,width:C,height:Q,depth:c})}let s;if(En.has(qt[o]))s=r.pixelDepth===0?new f.DataTexture(n[0].data,r.pixelWidth,r.pixelHeight):new f.Data3DTexture(n[0].data,r.pixelWidth,r.pixelHeight,r.pixelDepth);else{if(r.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");s=new f.CompressedTexture(n,r.pixelWidth,r.pixelHeight),s.minFilter=n.length===1?f.LinearFilter:f.LinearMipmapLinearFilter,s.magFilter=f.LinearFilter}return s.mipmaps=n,s.type=Ot[o],s.format=qt[o],s.colorSpace=ui(r),s.needsUpdate=!0,Promise.resolve(s)}(e);const i=a,I=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:i},[A])).then(r=>this._createTextureFrom(r.data,e));return Yt.set(A,{promise:I}),I}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),Tt--}}sa.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},sa.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},sa.EngineFormat={RGBAFormat:f.RGBAFormat,RGBA_ASTC_4x4_Format:f.RGBA_ASTC_4x4_Format,RGB_BPTC_UNSIGNED_Format:f.RGB_BPTC_UNSIGNED_Format,RGBA_BPTC_Format:f.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:f.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:f.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:f.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:f.RGB_ETC1_Format,RGB_ETC2_Format:f.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:f.RGB_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:f.RGBA_S3TC_DXT1_Format},sa.EngineType={UnsignedByteType:f.UnsignedByteType,HalfFloatType:f.HalfFloatType,FloatType:f.FloatType},sa.BasisWorker=function(){let t,A,a;const e=_EngineFormat,g=_EngineType,i=_TranscoderFormat,I=_BasisFormat;self.addEventListener("message",function(s){const E=s.data;switch(E.type){case"init":t=E.config,C=E.transcoderBinary,A=new Promise(Q=>{a={wasmBinary:C,onRuntimeInitialized:Q},BASIS(a)}).then(()=>{a.initializeBasis(),a.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":A.then(()=>{try{const{faces:Q,buffers:c,width:d,height:b,hasAlpha:h,format:l,type:w,dfdFlags:M}=function(k){const N=new a.KTX2File(new Uint8Array(k));function F(){N.close(),N.delete()}if(!N.isValid())throw F(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let G;if(N.isUASTC())G=I.UASTC;else if(N.isETC1S())G=I.ETC1S;else{if(!N.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");G=I.UASTC_HDR}const L=N.getWidth(),x=N.getHeight(),W=N.getLayers()||1,X=N.getLevels(),eA=N.getFaces(),AA=N.getHasAlpha(),Z=N.getDFDFlags(),{transcoderFormat:oA,engineFormat:uA,engineType:hA}=function(BA,MA,rA,sA){const lA=o[BA];for(let pA=0;pA<lA.length;pA++){const mA=lA[pA];if(!(mA.if&&!t[mA.if])&&mA.basisFormat.includes(BA)&&!(sA&&mA.transcoderFormat.length<2)&&!(mA.needsPowerOfTwo&&(!B(MA)||!B(rA))))return{transcoderFormat:mA.transcoderFormat[sA?1:0],engineFormat:mA.engineFormat[sA?1:0],engineType:mA.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(G,L,x,AA);if(!L||!x||!X)throw F(),new Error("THREE.KTX2Loader: Invalid texture");if(!N.startTranscoding())throw F(),new Error("THREE.KTX2Loader: .startTranscoding failed");const yA=[],DA=[];for(let BA=0;BA<eA;BA++){const MA=[];for(let rA=0;rA<X;rA++){const sA=[];let lA,pA;for(let UA=0;UA<W;UA++){const VA=N.getImageLevelInfo(rA,UA,BA);BA!==0||rA!==0||UA!==0||VA.origWidth%4==0&&VA.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),X>1?(lA=VA.origWidth,pA=VA.origHeight):(lA=VA.width,pA=VA.height);let XA=new Uint8Array(N.getImageTranscodedSizeInBytes(rA,UA,0,oA));const Ca=N.transcodeImage(XA,rA,UA,BA,oA,0,-1,-1);if(hA===g.HalfFloatType&&(XA=new Uint16Array(XA.buffer,XA.byteOffset,XA.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!Ca)throw F(),new Error("THREE.KTX2Loader: .transcodeImage failed.");sA.push(XA)}const mA=n(sA);MA.push({data:mA,width:lA,height:pA}),DA.push(mA.buffer)}yA.push({mipmaps:MA,width:L,height:x,format:uA,type:hA})}return F(),{faces:yA,buffers:DA,width:L,height:x,hasAlpha:AA,dfdFlags:Z,format:uA,type:hA}}(E.buffer);self.postMessage({type:"transcode",id:E.id,data:{faces:Q,width:d,height:b,hasAlpha:h,format:l,type:w,dfdFlags:M}},c)}catch(Q){console.error(Q),self.postMessage({type:"error",id:E.id,error:Q.message})}})}var C});const r=[{if:"astcSupported",basisFormat:[I.UASTC],transcoderFormat:[i.ASTC_4x4,i.ASTC_4x4],engineFormat:[e.RGBA_ASTC_4x4_Format,e.RGBA_ASTC_4x4_Format],engineType:[g.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.BC7_M5,i.BC7_M5],engineFormat:[e.RGBA_BPTC_Format,e.RGBA_BPTC_Format],engineType:[g.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.BC1,i.BC3],engineFormat:[e.RGBA_S3TC_DXT1_Format,e.RGBA_S3TC_DXT5_Format],engineType:[g.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.ETC1,i.ETC2],engineFormat:[e.RGB_ETC2_Format,e.RGBA_ETC2_EAC_Format],engineType:[g.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.ETC1],engineFormat:[e.RGB_ETC1_Format],engineType:[g.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.PVRTC1_4_RGB,i.PVRTC1_4_RGBA],engineFormat:[e.RGB_PVRTC_4BPPV1_Format,e.RGBA_PVRTC_4BPPV1_Format],engineType:[g.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[I.UASTC_HDR],transcoderFormat:[i.BC6H],engineFormat:[e.RGB_BPTC_UNSIGNED_Format],engineType:[g.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.RGBA32,i.RGBA32],engineFormat:[e.RGBAFormat,e.RGBAFormat],engineType:[g.UnsignedByteType,g.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[I.UASTC_HDR],transcoderFormat:[i.RGBA_HALF],engineFormat:[e.RGBAFormat],engineType:[g.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],o={[I.ETC1S]:r.filter(s=>s.basisFormat.includes(I.ETC1S)).sort((s,E)=>s.priorityUASTC-E.priorityUASTC),[I.UASTC]:r.filter(s=>s.basisFormat.includes(I.UASTC)).sort((s,E)=>s.priorityUASTC-E.priorityUASTC),[I.UASTC_HDR]:r.filter(s=>s.basisFormat.includes(I.UASTC_HDR)).sort((s,E)=>s.priorityHDR-E.priorityHDR)};function B(s){return s<=2||!(s&s-1)&&s!==0}function n(s){if(s.length===1)return s[0];let E=0;for(let c=0;c<s.length;c++)E+=s[c].byteLength;const C=new Uint8Array(E);let Q=0;for(let c=0;c<s.length;c++){const d=s[c];C.set(d,Q),Q+=d.byteLength}return C}};const En=new Set([f.RGBAFormat,f.RGFormat,f.RedFormat]),qt={[Ci]:f.RGBAFormat,[oi]:f.RGBAFormat,[ii]:f.RGBAFormat,[Ii]:f.RGBAFormat,[si]:f.RGFormat,[ni]:f.RGFormat,[ti]:f.RGFormat,[gi]:f.RGFormat,[Bi]:f.RedFormat,[ri]:f.RedFormat,[ei]:f.RedFormat,[ai]:f.RedFormat,[Ei]:f.RGB_ETC2_Format,[Qi]:f.RGBA_ETC2_EAC_Format,[jt]:f.RGBA_ASTC_4x4_Format,[Bn]:f.RGBA_ASTC_4x4_Format,[on]:f.RGBA_ASTC_4x4_Format,[hi]:f.RGBA_ASTC_6x6_Format,[ci]:f.RGBA_ASTC_6x6_Format,[An]:f.RGBA_S3TC_DXT1_Format,[an]:f.RGBA_S3TC_DXT1_Format,[_r]:f.RGB_S3TC_DXT1_Format,[$r]:f.RGB_S3TC_DXT1_Format,[tn]:f.RGBA_S3TC_DXT3_Format,[en]:f.RGBA_S3TC_DXT3_Format,[In]:f.RGBA_S3TC_DXT5_Format,[gn]:f.RGBA_S3TC_DXT5_Format,[nn]:f.RGBA_BPTC_Format,[rn]:f.RGBA_BPTC_Format},Ot={[Ci]:f.FloatType,[oi]:f.HalfFloatType,[ii]:f.UnsignedByteType,[Ii]:f.UnsignedByteType,[si]:f.FloatType,[ni]:f.HalfFloatType,[ti]:f.UnsignedByteType,[gi]:f.UnsignedByteType,[Bi]:f.FloatType,[ri]:f.HalfFloatType,[ei]:f.UnsignedByteType,[ai]:f.UnsignedByteType,[Ei]:f.UnsignedByteType,[Qi]:f.UnsignedByteType,[jt]:f.HalfFloatType,[hi]:f.UnsignedByteType,[ci]:f.UnsignedByteType};function ui(t){const A=t.dataFormatDescriptor[0];return A.colorPrimaries===1?A.transferFunction===2?f.SRGBColorSpace:f.LinearSRGBColorSpace:A.colorPrimaries===10?A.transferFunction===2?"display-p3":"display-p3-linear":(A.colorPrimaries===0||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),f.NoColorSpace)}async function li(t){const A=t.split("?")[0].split(".").pop(),a=await fetch(t);if(!a.ok)throw new Error(`Failed to fetch ${t}: ${a.statusText}`);if(A==="json"){const e=await a.json();return handleJSONSubtree(e,fi(t))}if(A==="subtree")return async function(e,g){const i=new DataView(e),I=i.getBigUint64(8,!0),r=i.getBigUint64(16,!0),o=24,B=o+Number(I),n=B+(8-B%8)%8,s=n+Number(r),E=e.slice(o,B),C=new TextDecoder().decode(E).trim(),Q=JSON.parse(C);if(!Q.buffers)throw new Error("subtree has no buffers");const c=Q.buffers.map(async b=>{if(b.uri){const h=new URL(b.uri,g).href,l=await fetch(h);if(!l.ok)throw new Error(`Failed to fetch binary file ${h}: ${l.statusText}`);return new Uint8Array(await l.arrayBuffer())}return new Uint8Array(e.slice(n,s))}),d=await Promise.all(c);return function(b,h){function l(F,G){if(!F)throw new Error("incomplete json subtree");if(F.constant){if(F.constant==0)return!1;if(F.constant==1)return!0}if(F.bitstream==null)throw new Error('json subtree "tileAvailability" does not specify a bitstream');if(!b.bufferViews||!b.bufferViews[F.bitstream])throw new Error('json subtree "bufferViews" does not specify a bitstream');const L=b.bufferViews[F.bitstream];return w(h[L.buffer],L.byteOffset,G)}function w(F,G,L){const x=L%8;return F[G+Math.floor(L/8)]>>x&!0}function M(F){let G=0;return G=F.z==null?Pt(F.x,F.y,F.level):Wt(F.x,F.y,F.z,F.level),l(b.tileAvailability,G)}function k(F){let G=0;G=F.z==null?Pt(F.x,F.y,F.level):Wt(F.x,F.y,F.z,F.level);const L=[];return b.contentAvailability.forEach(x=>{L.push(l(x,G))}),L}function N(F){let G=0;return G=F.z==null?Pt(F.x,F.y):Wt(F.x,F.y,F.z),l(b.childSubtreeAvailability,G)}return{isTileAvailable:M,isContentAvailable:k,isChildSubtreeAvailable:N}}(Q,d)}(await a.arrayBuffer(),fi(t));throw new Error(`Unsupported file extension: ${A}`)}function fi(t){const A=t.split("?")[0];return A.substring(0,A.lastIndexOf("/")+1)}function Di(t){return t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)^t<<8))^t<<4))^t<<2))^t<<1)}function Pt(t,A,a){let e=0;return a&&(e=(Math.pow(4,a)-1)/3),e+(Di(t)|Di(A)<<1)}function zt(t){return t=153391689&((t=51130563&((t=50393103&((t=4278190335&((t&=1023)^t<<16))^t<<8))^t<<4))^t<<2)}function Wt(t,A,a,e){let g=0;return e&&(g=(Math.pow(8,e)-1)/7),g+(zt(t)|zt(A)<<1|zt(a)<<2)}const Ge=new Map;async function Vt(t,A){if(!t.root||!t.root.implicitTiling)return t;if(!t.root.content&&!t.root.contents)throw new Error("implicit tiling requires a Template URI");let a=!0;t.root.implicitTiling.subdivisionScheme&&(a=t.root.implicitTiling.subdivisionScheme.toUpperCase()==="QUADTREE");let e="";t.root.implicitTiling.subtrees&&(t.root.implicitTiling.subtrees.uri?e=t.root.implicitTiling.subtrees.uri:t.root.implicitTiling.subtrees.url&&(e=t.root.implicitTiling.subtrees.url));let g=[];t.root.content?t.root.content.uri?g.push(t.root.content.uri):t.root.content.url&&g.push(t.root.content.url):t.root.contents&&t.root.contents.forEach(C=>{C.uri?g.push(C.uri):C.url&&g.push(C.url)});const i=function(C){const Q=C.split("?")[0];return Q.substring(0,Q.lastIndexOf("/")+1)}(A);let I;a&&(I=e.replace("{level}",0).replace("{x}",0).replace("{y}",0)),a||(I=e.replace("{level}",0).replace("{x}",0).replace("{y}",0).replace("{z}",0));const r={level:0,x:0,y:0},o={level:0,x:0,y:0};a||(r.z=0,o.z=0),Ge.set(I,await li(i+I));const B=Ge.get(I),n=[];B.isContentAvailable(o)&&g.forEach(C=>{let Q;a&&(Q=C.replace("{level}",r.level).replace("{x}",r.x).replace("{y}",r.y)),a||(Q=C.replace("{level}",r.level).replace("{x}",r.x).replace("{y}",r.y).replace("{z}",r.z)),n.push({uri:Q})});const s={geometricError:t.root.geometricError,boundingVolume:t.root.boundingVolume,refine:t.root.refine,globalAddress:r,localAddress:o,subtree:B,contents:n,getChildren:async()=>E(s)};return{root:s};async function E(C){const Q=[];if(C.localAddress.level==t.root.implicitTiling.availableLevels-1)return Q;if((C.localAddress.level+1)%t.root.implicitTiling.subtreeLevels==0){const c=ze(C.localAddress),d=ze(C.globalAddress),b=wi(a,t.root.boundingVolume,d);for(let h=0;h<c.length;h++){const l=c[h],w=d[h];C.subtree.isChildSubtreeAvailable(l)&&(a&&e.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y),a||e.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y).replace("{z}",w.z)),Ge.has(I)||Ge.set(I,await li(i+I));const M=Ge.get(I),k={level:0,x:0,y:0};a||(k.z=0);const N=[];M.isContentAvailable(k)&&g.forEach(G=>{let L;a&&(L=G.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y)),a||(L=G.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y).replace("{z}",w.z)),N.push({uri:L})});const F={geometricError:C.geometricError/2,boundingVolume:b[h],refine:t.root.refine,globalAddress:w,localAddress:k,subtree:M,contents:N,getChildren:async()=>E(F)};Q.push(F)}}else{const c=ze(C.localAddress),d=ze(C.globalAddress),b=wi(a,t.root.boundingVolume,d);for(let h=0;h<c.length;h++){const l=c[h],w=d[h];if(!C.subtree.isTileAvailable(l))continue;const M=[],k=C.subtree.isContentAvailable(l);for(let F=0;F<g.length;F++){if(!k[F])continue;const G=g[F];let L;a&&(L=G.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y)),a||(L=G.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y).replace("{z}",w.z)),M.push({uri:L})}const N={geometricError:C.geometricError/2,boundingVolume:b[h],refine:t.root.refine,globalAddress:w,localAddress:l,subtree:C.subtree,contents:M,getChildren:async()=>E(N)};Q.push(N)}}return Q.length>0?Q:void 0}}function ze(t){const{level:A,x:a,y:e,z:g}=t,i=A+1;let I=[];return I=g===void 0?[{level:i,x:2*a,y:2*e},{level:i,x:2*a+1,y:2*e},{level:i,x:2*a,y:2*e+1},{level:i,x:2*a+1,y:2*e+1}]:[{level:i,x:2*a,y:2*e,z:2*g},{level:i,x:2*a+1,y:2*e,z:2*g},{level:i,x:2*a,y:2*e+1,z:2*g},{level:i,x:2*a+1,y:2*e+1,z:2*g},{level:i,x:2*a,y:2*e,z:2*g+1},{level:i,x:2*a+1,y:2*e,z:2*g+1},{level:i,x:2*a,y:2*e+1,z:2*g+1},{level:i,x:2*a+1,y:2*e+1,z:2*g+1}],I}function wi(t,A,a){const e=[];for(let g=0;g<a.length;g++)e.push(Qn(t,A,a[g]));return e}function Qn(t,A,a){if(A.region)return function(e,g,i){const[I,r,o,B,n,s]=g,E=(o-I)/2**i.level,C=(B-r)/2**i.level,Q=e?0:(s-n)/2**i.level,c=I+E*i.x,d=r+C*i.y,b=c+E,h=d+C,l=e?n:n+Q*i.z,w=e?s:l+Q;return{region:[c,d,b,h,l,w]}}(t,A.region,a);if(A.box)return function(e,g,i){const I=g.slice(0,3),r=[g.slice(3,6),g.slice(6,9),g.slice(9,12)],o=1/Math.pow(2,i.level),B=[o,o,e?1:o],n=r.map((C,Q)=>C.map(c=>c*B[Q])),s=[I[0]-r[0][0]-r[1][0]-r[2][0],I[1]-r[0][1]-r[1][1]-r[2][1],I[2]-r[0][2]-r[1][2]-r[2][2]];return{box:[s[0]+(2*i.x+1)*(n[0][0]+n[1][0]+n[2][0]),s[1]+(2*i.y+1)*(n[0][1]+n[1][1]+n[2][1]),e?I[2]:s[2]+(2*i.z+1)*(n[0][2]+n[1][2]+n[2][2])].concat(...n)}}(t,A.box,a);throw new Error("Unsupported bounding volume type")}(function(){var t,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};function a(o){if(!o)throw new Error("Assertion failed")}function e(o){return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}function g(o,B,n,s,E,C,Q){var c=t.exports.sbrk,d=c(B),b=c(s*E),h=new Uint8Array(t.exports.memory.buffer);h.set(e(n),b);var l=o(d,B,b,s,E,C,Q),w=new Uint8Array(l);return w.set(h.subarray(d,d+l)),c(d-c(0)),w}function i(o){for(var B=0,n=0;n<o.length;++n)var s=o[n];return B}function I(o,B){if(a(B==2||B==4),B==4)return new Uint32Array(o.buffer,o.byteOffset,o.byteLength/4);var n=new Uint16Array(o.buffer,o.byteOffset,o.byteLength/2);return new Uint32Array(n)}function r(o,B,n,s,E,C,Q){var c=t.exports.sbrk,d=c(n*s),b=c(n*C),h=new Uint8Array(t.exports.memory.buffer);h.set(e(B),b),o(d,n,s,E,b,Q);var l=new Uint8Array(n*s);return l.set(h.subarray(d,d+n*s)),c(d-c(0)),l}WebAssembly.instantiate(function(o){for(var B=new Uint8Array(o.length),n=0;n<o.length;++n){var s=o.charCodeAt(n);B[n]=s>96?s-97:s>64?s-39:s+4}var E=0;for(n=0;n<o.length;++n)B[E++]=B[n]<60?A[B[n]]:64*(B[n]-60)+B[++n];return B.buffer.slice(0,E)}("b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq;i28Adbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:xjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:wjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:xjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:xjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:wjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:xjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoaraez:wjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:xjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk:Ylvdud99due99iudnaeTmbceaicufgvthocuaitcu7:Zhrcuavtcu7:Zhwcbhvadcl9hhDcbhqindndnalcwfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikdndnalIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9TgxaifhidndnalclfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEawNJbbbZMgk:lJbbb9p9DTmbak:Ohmxekcjjjj94hmkadaifhiaoamVhmdndnaDmbabavfgPai86bbaPcifam86bbaPcdfad86bbaPcefax86bbxekabaqfgPai87ebaPcofam87ebaPclfad87ebaPcdfax87ebkalczfhlavclfhvaqcwfhqaecufgembkkk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;q:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:wjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:pjjjbavyd:GehDadci9Ugqcbyd;q:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:xjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;q:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;q:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;u:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;q:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:ojjjbkQbabaeadaic;m:jjjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:kjjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;u:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb"),{}).then(function(o){(t=o.instance).exports.__wasm_call_ctors(),t.exports.meshopt_encodeVertexVersion(0),t.exports.meshopt_encodeIndexVersion(1)})})();var pi=function(){var t=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a,e=WebAssembly.validate(t)?i("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq;Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk;Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83ibawaDp5baxpEd:T:j83ibaocwfamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83ibaoarp5baxpEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgxpklbaiaxpklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83iKaiaDp5baxpEd:T:j83izaiamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83iwaiarp5baxpEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):i("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;BZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),g=WebAssembly.instantiate(e,{}).then(function(C){(a=C.instance).exports.__wasm_call_ctors()});function i(C){for(var Q=new Uint8Array(C.length),c=0;c<C.length;++c){var d=C.charCodeAt(c);Q[c]=d>96?d-97:d>64?d-39:d+4}var b=0;for(c=0;c<C.length;++c)Q[b++]=Q[c]<60?A[Q[c]]:64*(Q[c]-60)+Q[++c];return Q.buffer.slice(0,b)}function I(C,Q,c,d,b,h,l){var w=C.exports.sbrk,M=d+3&-4,k=w(M*b),N=w(h.length),F=new Uint8Array(C.exports.memory.buffer);F.set(h,N);var G=Q(k,d,b,N,h.length);if(G==0&&l&&l(k,M,b),c.set(F.subarray(k,k+d*b)),w(k-w(0)),G!=0)throw new Error("Malformed buffer data: "+G)}var r={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},o={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},B=[],n=0;function s(C){var Q={object:new Worker(C),pending:0,requests:{}};return Q.object.onmessage=function(c){var d=c.data;Q.pending-=d.count,Q.requests[d.id][d.action](d.value),delete Q.requests[d.id]},Q}function E(C){var Q=C.data;if(!Q.id)return self.close();self.ready.then(function(c){try{var d=new Uint8Array(Q.count*Q.size);I(c,c.exports[Q.mode],d,Q.count,Q.size,Q.source,c.exports[Q.filter]),self.postMessage({id:Q.id,count:Q.count,action:"resolve",value:d},[d.buffer])}catch(b){self.postMessage({id:Q.id,count:Q.count,action:"reject",value:b})}})}return{ready:g,supported:!0,useWorkers:function(C){(function(Q){for(var c="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(e)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+E.name+";"+I.toString()+E.toString(),d=new Blob([c],{type:"text/javascript"}),b=URL.createObjectURL(d),h=B.length;h<Q;++h)B[h]=s(b);for(h=Q;h<B.length;++h)B[h].object.postMessage({});B.length=Q,URL.revokeObjectURL(b)})(C)},decodeVertexBuffer:function(C,Q,c,d,b){I(a,a.exports.meshopt_decodeVertexBuffer,C,Q,c,d,a.exports[r[b]])},decodeIndexBuffer:function(C,Q,c,d){I(a,a.exports.meshopt_decodeIndexBuffer,C,Q,c,d)},decodeIndexSequence:function(C,Q,c,d){I(a,a.exports.meshopt_decodeIndexSequence,C,Q,c,d)},decodeGltfBuffer:function(C,Q,c,d,b,h){I(a,a.exports[o[b]],C,Q,c,d,a.exports[r[h]])},decodeGltfBufferAsync:function(C,Q,c,d,b){return B.length>0?function(h,l,w,M,k){for(var N=B[0],F=1;F<B.length;++F)B[F].pending<N.pending&&(N=B[F]);return new Promise(function(G,L){var x=new Uint8Array(w),W=++n;N.pending+=h,N.requests[W]={resolve:G,reject:L},N.object.postMessage({id:W,count:h,size:l,source:x,mode:M,filter:k},[x.buffer])})}(C,Q,c,o[d],r[b]):g.then(function(){var h=new Uint8Array(C*Q);return I(a,a.exports[o[d]],h,C,Q,c,a.exports[r[b]]),h})}}}();(function(){var t,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a=WebAssembly.instantiate(function(r){for(var o=new Uint8Array(r.length),B=0;B<r.length;++B){var n=r.charCodeAt(B);o[B]=n>96?n-97:n>64?n-39:n+4}var s=0;for(B=0;B<r.length;++B)o[s++]=o[B]<60?A[o[B]]:64*(o[B]-60)+o[++B];return o.buffer.slice(0,s)}("b9H79Tebbbe:Gez9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuiXCdilvorlwiDqkxmPbssbelve9Weiiviebeoweuec:G:Pdkr;7eko9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95br8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bw8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbDQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bqX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbkQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bxX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbma9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbPl79IV9RbsDwebcekdOAq:d;OeCdbk:J1eo3ue99euE99Cue9:8Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkdnamcdGTmbalcrfci4gHcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd1:jjjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egCcdtfaHBdbasaCcefBd;8eaHcFeaOz:rjjjbhQdnadTmbaecufhLcbhKindndnaQabaXcdtfgYydbgCc:v;t;h;Ev2aLGgOcdtfgAydbgHcuSmbceheinazaHcdtfydbaCSmdaOaefhHaecefheaQaHaLGgOcdtfgAydbgHcu9hmbkkazaKcdtfaCBdbaAaKBdbaKhHaKcefhKkaYaHBdbaXcefgXad9hmbkkaQcbyd:m:jjjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbhKasc:Cefasyd;8egecdtfaKBdbasaKBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd1:jjjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd1:jjjbHjjjjbbhCasc:Cefasyd;8egHcdtfaCBdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhYasc:Cefasyd;8egHcdtfaYBdbasaHcefBd;8eaCaYaialavazasc:Cefz:djjjbalcbyd1:jjjbHjjjjbbh5asc:Cefasyd;8egHcdtfa5BdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egOcdtfaHBdbasaOcefBd;8ea3cbyd1:jjjbHjjjjbbhOasc:Cefasyd;8egAcdtfaOBdbasaAcefBd;8eaHcFeaez:rjjjbh8EaOcFeaez:rjjjbh8FdnalTmbaEcwfhaindnaKa8AgOcefg8AcdtfydbgAaKaOcdtgefydbgHSmbaAaH9RhhaEaHcitfhga8Faefh8Ja8Eaefh8KcbhQindndnagaQcitfydbgLaO9hmba8KaOBdba8JaOBdbxekdnaKaLcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgAfydbaOSmeaHae9Rh8Maecu7aHfhXaaaAfhHcbheinaXaeSmeaecefheaHydbhAaHcwfhHaAaO9hmbkaea8M6meka8Fa8LfgeaOaLaeydbcuSEBdba8KaLaOa8KydbcuSEBdbkaQcefgQah9hmbkka8Aal9hmbkaChHaYhOa8FhAa8EhQcbheindndnaeaHydbgL9hmbdnaeaOydbgL9hmbaQydbhLdnaAydbgXcu9hmbaLcu9hmba5aefcb86bbxikdnaXcuSmbaLcuSmbaeaXSmbaCaXcdtfydbaCaLcdtfydb9hmba5aefcd86bbxika5aefh8KdnaeaXSmbaeaLSmba8Kce86bbxika8Kcl86bbxdkdnaeaYaLcdtgXfydb9hmbdnaAydbg8KcuSmbaea8KSmbaQydbghcuSmbaeahSmba8FaXfydbggcuSmbagaLSmba8EaXfydbgXcuSmbaXaLSmbdnaCa8KcdtfydbgLaCaXcdtfydb9hmbaLaCahcdtfydbgXSmbaXaCagcdtfydb9hmba5aefcd86bbxlka5aefcl86bbxika5aefcl86bbxdka5aefcl86bbxeka5aefa5aLfRbb86bbkaHclfhHaOclfhOaAclfhAaQclfhQalaecefge9hmbkdnamcaGTmbaEcwfh8Jcbh8Nindndna5a8NfgyRbbg8Pc9:fPibebekdndndnaCa8Ncdtfydbgea8N9hmbdnaqmbcbhgxdkdnazTmbcbhga8NheinagaqazaecdtgefydbfRbbcdGce4VhgaYaefydbgea8N9hmbxikkcbhga8NheinagaqaefRbbcdGce4VhgaYaecdtfydbgea8N9hmbxdkka5aefRbbhexeka8NheindnaKaecdtgafgeclfydbgHaeydbgeSmbaHae9Rh8AaEaecitfh8MaCaafh8Lcbh8Kina8Ma8KcitfydbgXhednindnaKaecdtgLfgeclfydbgHaeydbgeSmbdnaCaEaecitgOfydbcdtfydba8LydbgQ9hmbcehexikaHae9Rhhaecu7aHfhAa8JaOfhHcbheinaAaeSmeaecefheaHydbhOaHcwfhHaCaOcdtfydbaQ9hmbkaeah6hexdkaYaLfydbgeaX9hmbkcbhekagaece7Vhga8Kcefg8Ka8A9hmbkkaYaafydbgea8N9hmbka8PciagceGEhekayae86bbka8Ncefg8Nal9hmbkkdnaqTmbdndnazTmbazheaChHalhOindnaqaeydbfRbbceGTmba5aHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaChealhHindnaqRbbceGTmba5aeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaChealhOa5hHindna5aeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmba5healhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcbhIcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhaasc:Cefasyd;8egecdtfaaBdbasaecefBd;8easc:qefcbBdbas9cb83i1eaaaialavazasc1efz:ejjjbh8RdndnaDmbcbh8Scbh8Lxekcbh8LawhecbhHindnaeIdbJbbbb9ETmbasa8LcdtfaHBdba8Lcefh8LkaeclfheaDaHcefgH9hmbkcua8Lal2gecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbh8Sasc:Cefasyd;8egecdtfa8SBdbasaecefBd;8ealTmbdna8Lmbcbh8Lxekarcd4hXdnazTmba8Lcdth8KcbhLa8ShKinaoazaLcdtfydbaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbxdkka8Lcdth8KcbhLa8ShKinaoaLaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbkkcualc8S2gHalc;D;O;f8U0EgAcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhycbhqcbh8Ndna8LTmbcbhIaAcbyd1:jjjbHjjjjbbh8Nasc:Cefasyd;8egecdtfa8NBdbasaecefBd;8ea8NcbaHz:rjjjb8Acua8Lal2gecltgHaecFFFFb0Ecbyd1:jjjbHjjjjbbhqasc:Cefasyd;8egecdtfaqBdbasaecefBd;8eaqcbaHz:rjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd1:jjjbHjjjjbbhIasc:Cefasyd;8egHcdtfaIBdbasaHcefBd;8eaIcbaez:rjjjb8AkdnadTmbcbhQabhHinaaaHclfydbgLcx2fgeIdbaaaHydbgKcx2fgOIdbgR:tg8UaaaHcwfydbgXcx2fgAIdlaOIdlg8V:tg8WNaAIdbaR:tg8XaeIdla8V:tg8YN:tg8Zh80aeIdwaOIdwg81:tgBa8XNaAIdwa81:tg83a8UN:tgUh8Xa8Ya83Na8WaBN:tg8Yh8Udna8Za8ZNa8Ya8YNaUaUNMM:rgBJbbbb9EgOTmba8ZaB:vh80aUaB:vh8Xa8YaB:vh8UkayaCaKcdtfydbgAc8S2fgea8UaB:rg8Wa8UNNg85aeIdbMUdbaea8Xa8Wa8XNg86Ng87aeIdlMUdlaea80a8Wa80Ng83Ng88aeIdwMUdwaea86a8UNg86aeIdxMUdxaea83a8UNg89aeIdzMUdzaea83a8XNg8:aeIdCMUdCaea8Ua8Wa80a81Na8UaRNa8Va8XNMM:mgZNg83Ng8UaeIdKMUdKaea8Xa83Ng8XaeId3MUd3aea80a83Ng80aeIdaMUdaaea83aZNg83aeId8KMUd8Kaea8WaeIdyMUdyayaCaLcdtfydbgLc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdyayaCaXcdtfydbgKc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdydnaITmbdnaOTmba8ZaB:vh8ZaUaB:vhUa8YaB:vh8YkaIaAcltfgeaBJbbbZNg8UaUNg8WaeIdlMUdlaea8Ua8ZNg8XaeIdwMUdwaea8Ua8YNg80aeIdbMUdbaea8UaR:ma8YNaUa8VN:ta81a8ZN:tNg8UaeIdxMUdxaIaLcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxaIaKcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxkaHcxfhHaQcifgQad6mbkkdnalTmbJ;n;m;m89J:v:;;w8ZamczGEh8YcbhOaChAaahHayheindnaOaAydb9hmbaecxfgQaQIdbJbbbbMUdbaeczfgQaQIdbJbbbbMUdbaecCfgQaQIdbJbbbbMUdbaea8YaecyfgQIdbg8ZNg8UaeIdbMUdbaeclfgLa8UaLIdbMUdbaecwfgLa8UaLIdbMUdbaecKfgLaLIdbaHIdbg8Xa8UN:tUdbaHcwfIdbh8Waec3fgLaLIdba8UaHclfIdbg80N:tUdbaecafgLaLIdba8Ua8WN:tUdbaec8KfgLIdbhUaQa8Za8UMUdbaLaUa8Ua8Wa8WNa8Xa8XNa80a80NMMNMUdbkaAclfhAaHcxfhHaec8SfhealaOcefgO9hmbkkdnadTmbcbhXabhKinabaXcdtfhLcbhHina5aLaHc:G1jjbfydbcdtfydbgOfRbbhedndna5aKaHfydbgAfRbbgQc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaQcufcFeGce0mba8EaAcdtfydbaO9hmekdnaecufcFeGce0mba8FaOcdtfydbaA9hmekJbbacJbbacJbbbZaecFeGceSEaQcFeGceSEh88aaaOcx2fgeIdwaaaAcx2fgQIdwgB:tg80:mh86aeIdlaQIdlg83:tg8Z:mh89aeIdbaQIdbgR:tgU:mh8:dnaaaLaHc:K1jjbfydbcdtfydbcx2fgeIdwaB:tg8Va80a80NaUaUNa8Za8ZNMMg8YNa8Va80NaeIdbaR:tg81aUNa8ZaeIdla83:tg85NMMg8Wa80N:tg8Xa8XNa81a8YNa8WaUN:tg8Ua8UNa85a8YNa8Wa8ZN:tg8Wa8WNMM:rg87Jbbbb9ETmba8Xa87:vh8Xa8Wa87:vh8Wa8Ua87:vh8Uka88a8Y:rNg8Ya8XaBNa8UaRNa83a8WNMM:mgZNg87aZNhZa8Xa87Nhna8Wa87Nhca8Ua87Nh9ca8Ya8XNg87a8WNhJa87a8UNh9ea8Ya8WNgTa8UNhSa8Xa87Nh87a8WaTNhTa8Ua8Ya8UNNh9hdnaUa85Na81a89NMg8Xa8XNa8Za8VNa85a86NMg8Ua8UNa80a81Na8Va8:NMg8Wa8WNMM:rg80Jbbbb9ETmba8Xa80:vh8Xa8Wa80:vh8Wa8Ua80:vh8UkayaCaAcdtfydbc8S2fgeaeIdba9ha8Ua88a80:rNg80a8UNNMgUMUdbaeaTa8Wa80a8WNg8VNMg81aeIdlMUdlaea87a8Xa80a8XNg8ZNMg85aeIdwMUdwaeaSa8Va8UNMg8VaeIdxMUdxaea9ea8Za8UNMg87aeIdzMUdzaeaJa8Za8WNMg8ZaeIdCMUdCaea9ca8Ua80a8XaBNa8UaRNa83a8WNMMgB:mNg80NMg8UaeIdKMUdKaeaca8Wa80NMg8WaeId3MUd3aeana8Xa80NMg8XaeIdaMUdaaeaZaBa80N:tg80aeId8KMUd8Kaea8YJbbbbMg8YaeIdyMUdyayaCaOcdtfydbc8S2fgeaUaeIdbMUdbaea81aeIdlMUdlaea85aeIdwMUdwaea8VaeIdxMUdxaea87aeIdzMUdzaea8ZaeIdCMUdCaea8UaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea80aeId8KMUd8Kaea8YaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaXcifgXad6mbka8LTmbcbhKinJbbbbh8YaaabaKcdtfgeclfydbgXcx2fgHIdwaaaeydbg8Kcx2fgOIdwg81:tg8Wa8WNaHIdbaOIdbg85:tg8Xa8XNaHIdlaOIdlg87:tg80a80NMMgRaaaecwfydbghcx2fgeIdwa81:tg8ZNa8Wa8Wa8ZNa8XaeIdba85:tgUNa80aeIdla87:tgBNMMg8UN:tJbbbbJbbjZaRa8Za8ZNaUaUNaBaBNMMg8VNa8Ua8UN:tg83:va83Jbbbb9BEg83Nh89a8Va8WNa8Za8UN:ta83Nh8:aRaBNa80a8UN:ta83NhZa8Va80NaBa8UN:ta83NhnaRaUNa8Xa8UN:ta83Nhca8Va8XNaUa8UN:ta83Nh9ca8XaBNaUa80N:tg8Ua8UNa80a8ZNaBa8WN:tg8Ua8UNa8WaUNa8Za8XN:tg8Ua8UNMM:rJbbbZNh8Ua8Sa8Ka8L2ggcdtfhHa8Saha8L2gEcdtfhOa8SaXa8L2g8JcdtfhAa81:mhJa87:mh9ea85:mhTcbhQa8LhLJbbbbhBJbbbbh83JbbbbhRJbbbbh8VJbbbbh81Jbbbbh85Jbbbbh87Jbbbbh88Jbbbbh86inascjdfaQfgecwfa8Ua8:aAIdbaHIdbg8Z:tg80Na89aOIdba8Z:tgUNMg8WNUdbaeclfa8Uana80NaZaUNMg8XNUdbaea8Ua9ca80NacaUNMg80NUdbaecxfa8UaJa8WNa9ea8XNa8ZaTa80NMMMg8ZNUdba8Ua8Wa8XNNa8VMh8Va8Ua8Wa80NNa81Mh81a8Ua8Xa80NNa85Mh85a8Ua8Za8ZNNa8YMh8Ya8Ua8Wa8ZNNaBMhBa8Ua8Xa8ZNNa83Mh83a8Ua80a8ZNNaRMhRa8Ua8Wa8WNNa87Mh87a8Ua8Xa8XNNa88Mh88a8Ua80a80NNa86Mh86aHclfhHaAclfhAaOclfhOaQczfhQaLcufgLmbka8Na8Kc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8NaXc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8Nahc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdyaqagcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqa8JcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqaEcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaKcifgKad6mbkkcbhOdndnamcwGg9imbJbbbbh85cbh6cbh9kcbh0xekcbh6a3cbyd1:jjjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ecua0alabadaCz:fjjjbgAcltaAcjjjjiGEcbyd1:jjjbHjjjjbbh9kasc:Cefasyd;8egecdtfa9kBdbasaecefBd;8ea9kaAa0aaalz:gjjjbJFFuuh85aATmba9kheaAhHinaeIdbg8Ua85a85a8U9EEh85aeclfheaHcufgHmbkaAh6kasydNeh9mdnalTmba9mclfhea9mydbhAa5hHalhQcbhOincbaeydbgLaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaLhAaQcufgQmbkaOce4hOkcuadaO9Rcifg9ncx2a9nc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ecua9ncdta9ncFFFFi0Ecbyd1:jjjbHjjjjbbh9oasc:Cefasyd;8egecdtfa9oBdbasaecefBd;8ea3cbyd1:jjjbHjjjjbbhDasc:Cefasyd;8egecdtfaDBdbasaecefBd;8ealcbyd1:jjjbHjjjjbbh9pasc:Cefasyd;8egecdtfa9pBdbasaecefBd;8eaxaxNa8RJbbjZamclGEgnanN:vh88Jbbbbh86dnadak9nmbdna9nci6mbasyd:yeh9qa8Lclth9ra8Pcwfh9sJbbbbh87Jbbbbh86inascNefabadalaCz:cjjjbabh8Kcbh8Mcbh3inaba3cdtfhgcbheindnaCa8KaefydbgOcdtgXfydbgAaCagaec:W1jjbfydbcdtfydbgHcdtghfydbgQSmba5aHfRbbgKcv2a5aOfRbbgLfc;a1jjbfRbbg8JaLcv2aKfgEc;a1jjbfRbbg8AVcFeGTmbdnaQaA9nmbaEc;G1jjbfRbbcFeGmekdnaLcufcFeGce0mbaKTmba8EaXfydbaH9hmekdnaLTmbaKcufcFeGce0mba8FahfydbaO9hmeka8Pa8Mcx2fgAaHaOa8AcFeGgQEBdlaAaOaHaQEBdbaAaQa8JGcb9hBdwa8Mcefh8Mkaeclfgecx9hmbkdna3cifg3ad9pmba8Kcxfh8Ka8Mcifa9n9nmekka8MTmdcbhhinayaCa8Pahcx2fgKydbgQcdtgAfydbc8S2fgeIdwaaaKydlgLcx2fgHIdwg8XNaeIdzaHIdbg80NaeIdaMg8Ua8UMMa8XNaeIdlaHIdlg8ZNaeIdCa8XNaeId3Mg8Ua8UMMa8ZNaeIdba80NaeIdxa8ZNaeIdKMg8Ua8UMMa80NaeId8KMMM:lh8UJbbbbJbbjZaeIdyg8W:va8WJbbbb9BEh8WdndnaKydwg8KmbJFFuuh81xekJbbbbJbbjZayaCaLcdtfydbc8S2fgeIdygU:vaUJbbbb9BEaeIdwaaaQcx2fgHIdwgUNaeIdzaHIdbg8YNaeIdaMgBaBMMaUNaeIdlaHIdlgBNaeIdCaUNaeId3MgUaUMMaBNaeIdba8YNaeIdxaBNaeIdKMgUaUMMa8YNaeId8KMMM:lNh81ka8Wa8UNh8Vdna8LTmba8NaQc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaQa8L2ggcltfheaHIdyhUa8SaLa8L2gEcdtfgXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaLc8S2fgOIdwaaaQcx2fgeIdwg8YNaOIdzaeIdbgBNaOIdaMg8Wa8WMMa8YNaOIdlaeIdlg83NaOIdCa8YNaOId3Mg8Wa8WMMa83NaOIdbaBNaOIdxa83NaOIdKMg8Wa8WMMaBNaOId8KMMMh8Wa8SagcdtfhHaqaEcltfheaOIdyhRa8LhOinaHIdbgUaUaRNaecxfIdba8YaecwfIdbNaBaeIdbNa83aeclfIdbNMMMgUaUM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81dndndna5aQfRbbc9:fPdbedkdna8Fa8Ea8EaAfydbaLSEaYaAfydbgXcdtfydbgAcu9hmbaYaLcdtfydbhAka8NaXc8S2fgOIdwaaaAcx2fgeIdwg8XNaOIdzaeIdbg80NaOIdaMg8Ua8UMMa8XNaOIdlaeIdlg8ZNaOIdCa8XNaOId3Mg8Ua8UMMa8ZNaOIdba80NaOIdxa8ZNaOIdKMg8Ua8UMMa80NaOId8KMMMh8Ua8SaAa8L2ggcdtfhHaqaXa8L2gEcltfheaOIdyhUa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaAc8S2fgOIdwaaaXcx2fgeIdwg80NaOIdzaeIdbg8ZNaOIdaMg8Wa8WMMa80NaOIdlaeIdlgUNaOIdCa80NaOId3Mg8Wa8WMMaUNaOIdba8ZNaOIdxaUNaOIdKMg8Wa8WMMa8ZNaOId8KMMMh8Wa8SaEcdtfhHaqagcltfheaOIdyh8Ya8LhOinaHIdbg8Xa8Xa8YNaecxfIdba80aecwfIdbNa8ZaeIdbNaUaeclfIdbNMMMg8Xa8XM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81xdkaYaAfydbgAaQSmbina8NaAc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka8Va8U:lMh8VaYaAcdtfydbgAaQ9hmbkka5aLfRbbci9hmba8KTmbaYaLcdtfydbgAaLSmba8SagcdtfhXaaaQcx2fgeIdbh8XaeIdwh80aeIdlh8Zina8NaAc8S2fgHIdwa80NaHIdza8XNaHIdaMg8Ua8UMMa80NaHIdla8ZNaHIdCa80NaHId3Mg8Ua8UMMa8ZNaHIdba8XNaHIdxa8ZNaHIdKMg8Ua8UMMa8XNaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba80aecwfIdbNa8XaeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka81a8U:lMh81aYaAcdtfydbgAaL9hmbkkaKa81a8Va81a8V9DgeEUdwaKaQaLaea8Kcb9hGgeEBdlaKaLaQaeEBdbahcefgha8M9hmbkascjdfcbcj;qbz:rjjjb8Aa9shea8MhHinascjdfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinascjdfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea9shHinascjdfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdba9oaOcdtfaeBdbaHcxfhHa8Maecefge9hmbkadak9RgOci9Uh9tdnalTmbcbheaDhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh9ua9pcbalz:rjjjbh3aOcO9Uh9va9tce4h9wcbh8Acbh8Jdnina8Pa9oa8Jcdtfydbcx2fgEIdwg8Ua889Emea8Aa9t9pmeJFFuuh8Wdna9wa8M9pmba8Pa9oa9wcdtfydbcx2fIdwJbb;aZNh8Wkdna8Ua8W9ETmba8Ua869ETmba8Aa9v0mdkdna3aCaEydlghcdtg9xfydbgAfg9yRbba3aCaEydbg8Kcdtg9zfydbgefg9ARbbVmba5a8KfRbbh9Bdna9maecdtfgHclfydbgOaHydbgHSmbaOaH9RhQaaaAcx2fhKaaaecx2fhXa9qaHcitfhecbhHcehgdnindnaDaeydbcdtfydbgOaASmbaDaeclfydbcdtfydbgLaASmbaOaLSmbaaaLcx2fgLIdbaaaOcx2fgOIdbg8X:tg8UaXIdlaOIdlg80:tg8YNaXIdba8X:tgBaLIdla80:tg8WN:tg8Za8UaKIdla80:tg83NaKIdba8X:tgRa8WN:tg80Na8WaXIdwaOIdwgU:tg8VNa8YaLIdwaU:tg8XN:tg8Ya8WaKIdwaU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaQ6hgaQaH9hmbkkagceGTmba9wcefh9wxekdndndndna9Bc9:fPdebdka8KheinaDaecdtgefahBdbaYaefydbgea8K9hmbxikkdna8Fa8Ea8Ea9zfydbahSEaYa9zfydbg8Kcdtfydbgecu9hmbaYa9xfydbhekaDa9zfahBdbaehhkaDa8KcdtfahBdbka9Ace86bba9yce86bbaEIdwg8Ua86a86a8U9DEh86a9ucefh9ucecda9BceSEa8Afh8Aka8Jcefg8Ja8M9hmbkka9uTmddnalTmbcbhLcbhXindnaDaXcdtgefydbgOaXSmbaCaOcdtfydbh8KdnaXaCaefydb9hghmbaya8Kc8S2fgeayaXc8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyaITmbaIa8KcltfgeaIaXcltfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxka8LTmba8NaOc8S2fgea8NaXc8S2ggfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9raO2hKaqhHa8LhAinaHaKfgeaHaLfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkahmbJbbbbJbbjZayagfgeIdyg8U:va8UJbbbb9BEaeIdwaaa8Kcx2fgHIdwg8UNaeIdzaHIdbg8WNaeIdaMg8Xa8XMMa8UNaeIdlaHIdlg8XNaeIdCa8UNaeId3Mg8Ua8UMMa8XNaeIdba8WNaeIdxa8XNaeIdKMg8Ua8UMMa8WNaeId8KMMM:lNg8Ua87a87a8U9DEh87kaLa9rfhLaXcefgXal9hmbkcbhHa8EheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8EaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHa8FheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8FaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkka87a86a8LEh87cbhHabhecbhOindnaCaDaeydbcdtfydbgLcdtfydbgAaCaDaeclfydbcdtfydbgKcdtfydbgQSmbaAaCaDaecwfydbcdtfydbg8KcdtfydbgXSmbaQaXSmbabaHcdtfgAaLBdbaAcwfa8KBdbaAclfaKBdbaHcifhHkaecxfheaOcifgOad6mbkdndna9imbaHhdxekdnaHak0mbaHhdxekdna85a879FmbaHhdxekJFFuuh85cbhdabhecbhOindna9ka0aeydbgAcdtfydbcdtfIdbg8Ua879ETmbaeclf8Pdbh9CabadcdtfgQaABdbaQclfa9C83dba8Ua85a85a8U9EEh85adcifhdkaecxfheaOcifgOaH6mbkkadak0mbxdkkascNefabadalaCz:cjjjbkdndnadak0mbadhOxekdna9imbadhOxekdna85a889FmbadhOxekcehLina85Jbb;aZNg8Ua88a8Ua889DEh8XJbbbbh8Udna6Tmba9khea6hHinaeIdbg8Wa8Ua8Wa8X9FEa8Ua8Wa8U9EEh8UaeclfheaHcufgHmbkkJFFuuh85cbhOabhecbhHindna9ka0aeydbgAcdtfydbcdtfIdbg8Wa8X9ETmbaeclf8Pdbh9CabaOcdtfgQaABdbaQclfa9C83dba8Wa85a85a8W9EEh85aOcifhOkaecxfheaHcifgHad6mbkdnaLaOad9hVceGmbadhOxdka8Ua86a86a8U9DEh86aOak9nmecbhLaOhda85a889FmbkkdnamcjjjjdGTmba9pcbalz:rjjjbhLdnaOTmbabheaOhHinaLaeydbgAfa5aAfRbbcl9h86bbaeclfheaHcufgHmbkkascNefabaOalaCz:cjjjbalTmbcbhQasyd:yehgindnaLaQfRbbTmbdna5aQfRbbgecl0mbceaetcQGmekdnaCaQcdtgKfydbgeaQSmbaaaQcx2fgHaaaecx2fge8Pdb83dbaHcwfaecwfydbBdbxekayaQc8S2fgeIdyg8Ua8UJL:3;rUNg8UMh88aeIdwa8UMhRaeIdla8UMh8VaeIdba8UMhUaeIdaa8UaaaQcx2fg8KIdwg89N:th81aeId3a8Ua8KIdlg8:N:th85aeIdKa8KIdbgZa8UN:th8YJbbbbhcaeIdCJbbbbMh87aeIdzJbbbbMhBaeIdxJbbbbMh83dndna8LTmbaQhAinJbbbba88a8NaAc8S2fgHIdyg8U:va8UJbbbb9BEh8UaqaAa8L2cltfheaHIdaa88Na81Mh81aHId3a88Na85Mh85aHIdKa88Na8YMh8YaHIdCa88Na87Mh87aHIdza88NaBMhBaHIdxa88Na83Mh83aHIdwa88NaRMhRaHIdla88Na8VMh8VaHIdba88NaUMhUa8LhHina81aecxfIdbg8ZaecwfIdbg8WNa8UN:th81a85a8ZaeclfIdbg8XNa8UN:th85a87a8Wa8XNa8UN:th87aUaeIdbg80a80Na8UN:thUa8Ya8Za80Na8UN:th8YaBa8Wa80Na8UN:thBa83a8Xa80Na8UN:th83aRa8Wa8WNa8UN:thRa8Va8Xa8XNa8UN:th8VaeczfheaHcufgHmbkaYaAcdtfydbgAaQ9hmbkaITmbaIaQcltfgeIdxhTaeIdwh9caeIdlhJaeIdbh8UxekJbbbbhTJbbbbh9cJbbbbhJJbbbbh8UkaBaU:vg8Xa8YNa81:ta87aBa83aU:vg8WN:tg81a8Va83a8WN:tg8Z:vg80a8Wa8YNa85:tg8VN:th85a9ca8Ua8XN:taJa8Ua8WN:tg83a80N:tg87aRaBa8XN:ta81a80N:tgB:vgR:mh81a83a8Z:vg9c:mhJdnJbbbba8Ua8UaU:vg9eN:ta83a9cN:ta87aRN:tg83:la88J:983:g81Ng8U9ETmba81a85NaJa8VNa9ea8YNaT:tMMa83:vhckaU:la8U9ETmba8Z:la8U9ETmbaB:la8U9ETmba9e:macNa8X:ma81acNa85aB:vMg85Na8W:maJacNa80:ma85Na8Va8Z:vMMg87Na8Y:maU:vMMMh88a9maKfgeclfydbgHaeydbge9RhXagaecitfhKJbbbbh8UdnaHaeSghmbJbbbbh8UaKheaXhAinaaaeclfydbcx2fgHIdwa89:tg8Wa8WNaHIdbaZ:tg8Wa8WNaHIdla8::tg8Wa8WNMMg8Waaaeydbcx2fgHIdwa89:tg8Xa8XNaHIdbaZ:tg8Xa8XNaHIdla8::tg8Xa8XNMMg8Xa8Ua8Ua8X9DEg8Ua8Ua8W9DEh8UaecwfheaAcufgAmbkka85a89:tg8Wa8WNa88aZ:tg8Wa8WNa87a8::tg8Wa8WNMMa8U:rg8Ua8UN9EmbdnahmbcbhAcehhdninaaaKclfydbcx2fgeIdbaaaKydbcx2fgHIdbg8X:tg8Ua8:aHIdlg80:tg8YNaZa8X:tgBaeIdla80:tg8WN:tg8Za8Ua87a80:tg83Na88a8X:tgRa8WN:tg80Na8Wa89aHIdwgU:tg8VNa8YaeIdwaU:tg8XN:tg8Ya8Wa85aU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmeaKcwfhKaAcefgAaX6hhaXaA9hmbkkahceGmeka8Ka85Udwa8Ka87Udla8Ka88UdbkaQcefgQal9hmbkdndna8LTmba8LclthYa8Lcdth8KcbhKa8ShXindnaLaKfRbbTmba5aKfRbbclSmbJbbbbJbbjZa8NaKc8S2fIdyg8U:va8UJbbbb9BEh8UaaaCaKcdtfydbcx2fhHaqheaXhAa8LhQinaAa8UaecwfIdbaHIdwNaeIdbaHIdbNaeclfIdbaHIdlNMMaecxfIdbMNUdbaeczfheaAclfhAaQcufgQmbkkaqaYfhqaXa8KfhXaKcefgKal9hmbkarcd4hXavcd4hYasId:qeh8UasId:meh8WasId1eh8XazTmea8Lcdth8KcbhKindnaLaKfRbbTmbaiazaKcdtfydbgCaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaCaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbxikkavcd4hCasId:qeh8UasId:meh8WasId1eh8XdnazTmbazheindna9pRbbTmbaiaeydbaC2cdtfgHaaIdba8RNa8XMUdbaHaaclfIdba8RNa8WMUdlaHaacwfIdba8RNa8UMUdwka9pcefh9paeclfheaacxfhaalcufglmbxikkaCcdtheindna9pRbbTmbaiaaIdba8RNa8XMUdbaiclfaaclfIdba8RNa8WMUdbaicwfaacwfIdba8RNa8UMUdbka9pcefh9paacxfhaaiaefhialcufglmbxdkka8Lcdth8KcbhKindnaLaKfRbbTmbaiaKaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaKaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbkkdnamcjjjjlGTmbazmbaOTmbcbhLabheina5aeydbgAfRbbc3thKaecwfgXydbhHdndna8EaAcdtg8KfydbaeclfgYydbgCSmbcbhQa8FaCcdtfydbaA9hmekcjjjj94hQkaeaKaQVaAVBdba5aCfRbbc3thKdndna8EaCcdtfydbaHSmbcbhQa8FaHcdtfydbaC9hmekcjjjj94hQkaYaKaQVaCVBdba5aHfRbbc3thQdndna8EaHcdtfydbaASmbcbhCa8Fa8KfydbaH9hmekcjjjj94hCkaXaQaCVaHVBdbaecxfheaLcifgLaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPana86:rNUdbkasyd;8egecdtasc:Ceffc98fhHdninaeTmeaHydbcbyd:m:jjjbH:bjjjbbaHc98fhHaecufhexbkkascj;sbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:rjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd1:jjjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:rjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd:m:jjjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkawclfhwabclfhbaiaDcefgD9hmbkkk:hrdvuv998Jjjjjbca9Rgoczfcwfcbyd11jjbBdbaocb8Pdj1jjb83izaocwfcbydN1jjbBdbaocb8Pd:m1jjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:ZlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvc:G1jjbfydbcdtfydbcdtfydbhodnabalawavfydbcdtfydbgqcdtfgkydbgvaqSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnabaocdtfgkydbgvaoSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnabavfgDydbgvaxSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhvabhocbhkindndnavalydbgq9hmbdnavaoydbgq9hmbaoakBdbakcefhkxdkaoabaqcdtfydbBdbxekaoabaqcdtfydbBdbkaoclfhoalclfhlaeavcefgv9hmbkakk;Jiilud99duabcbaecltz:rjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakclfgxaqaxIdbMUdbakcwfgxaDaxIdbMUdbakcxfgkakIdbJbbjZMUdbaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhraehkinarcxfgoIdbhDaocbBdbararIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbarclfgoaDaoIdbNUdbarcwfgoaDaoIdbNUdbarczfhrakcufgkmbkkdnalTmbinavadydbcltfgrcxfgkaicwfIdbarcwfIdb:tgDaDNaiIdbarIdb:tgDaDNaiclfIdbarclfIdb:tgDaDNMMgDakIdbgqaqaD9DEUdbadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhrinabarIdbUdbarczfhrabclfhbaecufgembkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:p8Koque99due99iuq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:rjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd1:jjjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhHdndninashYaHhXaPhrakg8AaQ9pmeaXar9Rcd9imeavaXcufavaX9iEarcefavar9kEhzdnalTmbazcuf:YhwdnaoTmbcbhOaihPaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhHxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcqthHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHasVhHdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHascCtVhHkaPaHBdbaPclfhPavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhPindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcCthHdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqtaHVhHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaOaHasVBdbavcxfhvaOclfhOaPcufgPmbkkcbhOdnadTmbaehvcbhPinaOaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgs9haiavydbcdtfydbgAaH9haAas9hGGfhOavcxfhvaPcifgPad6mbkkaYhsaOhkaXhHazhPdnaOaQ9nmbaOhsa8AhkazhHarhPkdndnaKcl0mbdnaY:Zgwa8A:ZgC:taz:YgEar:Y:tg3aEaX:Y:tg5aO:Zg8EaL:tNNNawaL:ta5NaCa8E:tNaCaL:ta3Na8Eaw:tNM:vaEMJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPaHfcd9ThvkaKcefgKcs9hmbxdkka8AhkarhPkdndndnakmbJbbjZhwcbhicdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkcbhOaqcuavcdtgravcFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCaqciBd2aqamcbyd1:jjjbHjjjjbbgXBdKaqclBd2dndndndnalTmbaPcuf:YhwaoTmecbhOaihHaxhPindndnaoaOfRbbceGTmbaOcjjjjlVhsxekdndnaPclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqthsdndnaPcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAVhsdndnaPIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAcCtVhskaHasBdbaHclfhHaPcxfhPalaOcefgO9hmbxikkazcFearz:rjjjb8AcbhrcbhvxdkaxhOaihPalhHindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascCthsdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqtasVhsdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaPasaAVBdbaOcxfhOaPclfhPaHcufgHmbkkazcFearz:rjjjbhAavcufhocbhrcbhzindndndnaAaiazcdtgKfydbgHcm4aH7c:v;t;h;Ev2gvcs4av7aoGgPcdtfgsydbgOcuSmbcehvinaiaOcdtgOfydbaHSmdaPavfhOavcefhvaAaOaoGgPcdtfgsydbgOcu9hmbkkasazBdbarhvarcefhrxekaXaOfydbhvkaXaKfavBdbazcefgzal9hmbkcuarc8S2gOarc;D;O;f8U0EhvkcbhAaqavcbyd1:jjjbHjjjjbbgvBd3aqcvBd2avcbaOz:rjjjbhOdnadTmbaehiinJbbnnJbbjZaXaiydbgHcdtfydbgvaXaiclfydbgPcdtfydbgzSavaXaicwfydbgscdtfydbgKSGgoEh8FdnaxaPcx2fgPIdbaxaHcx2fgHIdbg8E:tgCaxascx2fgsIdlaHIdlg3:tgwNasIdba8E:tgEaPIdla3:tgaN:tgLaLNaaasIdwaHIdwg5:tghNawaPIdwa5:tgaN:tgwawNaaaENahaCN:tgCaCNMM:rgEJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNgaMUdbavaCaEaCNghNggavIdlMUdlavaLaEaLNg8FNg8JavIdwMUdwavahawNghavIdxMUdxava8FawNg8KavIdzMUdzava8FaCNg8FavIdCMUdCavawaEaLa5Nawa8ENa3aCNMM:mg3Ng8ENgwavIdKMUdKavaCa8ENgCavId3MUd3avaLa8ENgLavIdaMUdaava8Ea3Ng8EavId8KMUd8KavaEavIdyMUdydnaombaOazc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdyaOaKc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdykaicxfhiaAcifgAad6mbkkcbhHaqcuarcdtgvarcFFFFi0Egicbyd1:jjjbHjjjjbbgPBdaaqcoBd2aqaicbyd1:jjjbHjjjjbbgiBd8KaqcrBd2aPcFeavz:rjjjbhzdnalTmbaXhPinJbbbbJbbjZaOaPydbgsc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnazascdtgvfgsydbcuSmbaiavfIdbaw9ETmekasaHBdbaiavfawUdbkaPclfhPaxcxfhxalaHcefgH9hmbkkJbbbbhwdnarTmbinaiIdbgCawawaC9DEhwaiclfhiarcufgrmbkkakcd4akfhOcehiinaigvcethiavaO6mbkcbhiaqcuavcdtgOavcFFFFi0Ecbyd1:jjjbHjjjjbbgPBdyaPcFeaOz:rjjjbhsdnadTmbavcufhAcbhrcbhxindnaXaeaxcdtfgvydbcdtfydbgiaXavclfydbcdtfydbgOSmbaiaXavcwfydbcdtfydbgvSmbaOavSmbazavcdtfydbhHdndnazaOcdtfydbgvazaicdtfydbgi9pmbavaH9pmbaHhlaihoavhHxekdnaHai9pmbaHav9pmbaihlavhoxekavhlaHhoaihHkabarcx2fgvaHBdbavcwfaoBdbavclfalBdbdnasaoc:3F;N8N2alc:F:b:DD27aHc;D;O:B8J27aAGgOcdtfgvydbgicuSmbcehPinaPhvdnabaicx2fgiydbaH9hmbaiydlal9hmbaiydwaoSmikavcefhPasaOavfaAGgOcdtfgvydbgicu9hmbkkavarBdbarcefhrkaxcifgxad6mbkarci2hikdnaDmbcwhvxdkaw:rhwcwhvkaDawUdbkavcdthvdninavTmeavc98fgvaqcxffydbcbyd:m:jjjbH:bjjjbbxbkkaqc;Wbf8Kjjjjbaik:2ldwue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkarcualcdtalcFFFFi0EgDcbyd1:jjjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhkarcxfaryd2gxcdtgmfakBdbaraxcefgPBd2akaialavcbcbz:ejjjb8AarcxfaPcdtfaDcbyd1:jjjbHjjjjbbgvBdbaraxcdfgiBd2arcxfaicdtfcuavalaeadaqz:fjjjbgecltaecjjjjiGEcbyd1:jjjbHjjjjbbgiBdbaiaeavakalz:gjjjbdnadTmbaoaoNhocbhwabhlcbhkindnaiavalydbgecdtfydbcdtfIdbao9ETmbalclf8PdbhsabawcdtfgqaeBdbaqclfas83dbawcifhwkalcxfhlakcifgkad6mbkkaxcifhlamarcxffcwfhkdninalTmeakydbcbyd:m:jjjbH:bjjjbbakc98fhkalcufhlxbkkarc;Wbf8Kjjjjbawk:FCoDud99rue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:rjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd1:jjjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbh5cbhPindna3axaPcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5aPcefgPad9hmbxdkkazcFeasz:rjjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa5:ZghaH:tNNNaOaH:taaNa8Aah:tNa8AaH:ta8FNahaO:tNM:va8EMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd1:jjjbHjjjjbbg5BdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbhDcbhYindndndna3axaYcdtgKfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbcehiinaxaecdtgefydbaCSmdamaifheaicefhia3aeaAGgmcdtfgEydbgecu9hmbkkaEaYBdbaDhiaDcefhDxeka5aefydbhika5aKfaiBdbaYcefgYad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:rjjjb8AcbhDcbhekawaecbyd1:jjjbHjjjjbbgeBd3awcvBd2aecbaiz:rjjjbhEavcd4hKdnadTmbdnalTmbaKcdth3a5hCaqhealhmadhAinaEaCydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaecxfheama3fhmaAcufgAmbxdkka5hmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd1:jjjbHjjjjbbgeBdaawcoBd2awaicbyd1:jjjbHjjjjbbg3Bd8KaecFeaYz:rjjjbhxdnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8AaKcdthPalheina8Aaec;81jjbalEgmIdwaEa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndnaxaAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka5clfh5aqcxfhqaeaPfheadaCcefgC9hmbkkabaxaYz:qjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd:m:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Ydidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:rjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbeeeeeebebbeeebeebbbbebebbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:GNbb"),{}).then(function(r){(t=r.instance).exports.__wasm_call_ctors()});function e(r){if(!r)throw new Error("Assertion failed")}function g(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function i(r,o,B,n,s,E,C,Q){var c=t.exports.sbrk,d=c(4*Q),b=c(B*n),h=c(B*E),l=new Uint8Array(t.exports.memory.buffer);l.set(g(o),b),s&&l.set(g(s),h);var w=r(d,b,B,n,h,E,C,Q);new Uint8Array(t.exports.memory.buffer);var M=new Uint32Array(w);return g(M).set(l.subarray(d,d+4*w)),c(d-c(0)),M}var I={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,Regularize:16,Permissive:32,_InternalDebug:1<<30}})(),function(){var t,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a=WebAssembly.instantiate(function(I){for(var r=new Uint8Array(I.length),o=0;o<I.length;++o){var B=I.charCodeAt(o);r[o]=B>96?B-97:B>64?B-39:B+4}var n=0;for(o=0;o<I.length;++o)r[n++]=r[o]<60?A[r[o]]:64*(r[o]-60)+r[++o];return r.buffer.slice(0,n)}("b9H79TebbbeVx9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gvuuuuueu9Gwuuuuuuuub9Gxuuuuuuuuuuuueu9Gkuuuuuuuuuu99eu9Gouuuuuub9Gruuuuuuub9GluuuubiAOdilvorwDqqDkbiibeilve9Weiiviebeoweuec;G:Odkr;qeDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bqL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbkl79IV9RbxDwebcekdszq:x9DOdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:w8KDPue99eux99dui99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:ojjjb8Adndnalcb9imbaoal9nmbamcuaocdtaocFFFFi0Egscbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamascbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8waihsalhAinazasydbcdtfcbBdbasclfhsaAcufgAmbkaihsalhAinazasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkaihsalhCcbhXindnazasydbcdtgQfgAydbcb9imbaHaQfaXBdbaAaAydbgQcjjjj94VBdbaQaXfhXkasclfhsaCcufgCmbkalci9UhLdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhXaHaAydbcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaXcdtfgXaXydbgXcefBdbaOaXcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaihsalhAindnazasydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaHaCfgCaCydbaQ9RBdbkasclfhsaAcufgAmbxdkkamcuaocdtgsaocFFFFi0EgAcbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamaAcbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8wazcbasz:ojjjbhXalci9UhLaihsalhAinaXasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkdnaoTmbcbhsaHhAaXhCaohQinaAasBdbaAclfhAaCydbasfhsaCclfhCaQcufgQmbkkdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhQaHaAydbcdtfgKaKydbgKcefBdbaOaKcdtfasBdbaHaQcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaoTmbcbhsaohAinaHasfgCaCydbaXasfydb9RBdbasclfhsaAcufgAmbkkamaLcbyd;u1jjbHjjjjbbgsBd:OwamclBd;8wascbaLz:ojjjbhYamcuaLcK2alcjjjjd0Ecbyd;u1jjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihAa8AhsaLhrJbbbbh5inavaAclfydbaK2cdtfgCIdlh8EavaAydbaK2cdtfgXIdlhEavaAcwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgasaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbasclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyascxfa8EaE:tg8Eagah:tggNa8FaE:tg8Faaah:tgaN:tgEJbbbbJbbjZa8Ja8K:tg8Ja8FNa8La8K:tg8Ka8EN:tghahNaEaENaaa8KNaga8JN:tgEaENMM:rg8K:va8KJbbbb9BEg8ENUdbasczfaEa8ENUdbascCfaha8ENUdbascwfa8Maya8NMMJbbnn:vUdba5a8KMh5aAcxfhAascKfhsarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;u1jjbHjjjjbbgCBd:WwamcoBd;8waEaq:ZNhEdna3mbcbhsaChAinaAasBdbaAclfhAaLascefgs9hmbkkaE:rhhcuh8PamcuaLcltalcFFFFd0Ecbyd;u1jjbHjjjjbbgIBd:0wamcrBd;8wcbaIa8AaCaLz:djjjb8AJFFuuhyJFFuuh8RJFFuuh8Sdnalci6gXmbJFFuuh8Sa8AhsaLhAJFFuuh8RJFFuuhyinascwfIdbgEayayaE9EEhyasclfIdbgEa8Ra8RaE9EEh8RasIdbgEa8Sa8SaE9EEh8SascKfhsaAcufgAmbkkahJbbbZNhgamaocetgscuaocu9kEcbyd;u1jjbHjjjjbbgABd:4waAcFeasz:ojjjbhCdnaXmbcbhAJFFuuhEa8Ahscuh8PinascwfIdbay:tghahNasIdba8S:tghahNasclfIdba8R:tghahNMM:rghaEa8PcuSahaE9DVgXEhEaAa8PaXEh8PascKfhsaLaAcefgA9hmbkkamczfcbcjwz:ojjjb8Aamcwf9cb83ibam9cb83ibagaxNhRJbbjZak:th8Ncbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80cbh81cbhPinJbbbbhEdna8UTmbJbbjZa8U:Z:vhEkJbbbbhhdna80a80Na8Ya8YNa8Za8ZNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8XaENh5a8WaENh8Fa8VaENhaa8PhQdndndndndna8UaPVTmbamydwgBTmea80ahNh8Ja8ZahNh8La8YahNh8Maeamydbcdtfh83cbh3JFFuuhEcvhXcuhQindnaza83a3cdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAindndnaCaiaAydbgKcx2fgsclfydbgrcetf8Vebcs4aCasydbgLcetf8Vebcs4faCascwfydbglcetf8Vebcs4fgombcbhsxekcehsazaLcdtfydbgLceSmbcehsazarcdtfydbgrceSmbcehsazalcdtfydbglceSmbdnarcdSaLcdSfalcdSfcd6mbaocefhsxekaocdfhskdnasaX9kmba8AaKcK2fgLIdwa5:thhaLIdla8F:th8KaLIdbaa:th8EdndnakJbbbb9DTmba8E:lg8Ea8K:lg8Ka8Ea8K9EEg8Kah:lgha8Kah9EEag:vJbbjZMhhxekahahNa8Ea8ENa8Ka8KNMM:rag:va8NNJbbjZMJ9VO:d86JbbjZaLIdCa8JNaLIdxa8MNa8LaLIdzNMMakN:tghahJ9VO:d869DENhhkaKaQasaX6ahaE9DVgLEhQasaXaLEhXahaEaLEhEkaAclfhAavcufgvmbkka3cefg3aB9hmbkkaQcu9hmekama5Ud:ODama8FUd:KDamaaUd:GDamcuBd:qDamcFFF;7rBdjDaIcba8AaYamc:GDfakJbbbb9Damc:qDfamcjDfz:ejjjbamyd:qDhQdndnaxJbbbb9ETmba8UaD6mbaQcuSmeceh3amIdjDaR9EmixdkaQcu9hmekdna8UTmbdnamydlgza8Uci2fgsciGTmbadasfcba8Uazcu7fciGcefz:ojjjb8AkabaPcltfgzam8Pib83dbazcwfamcwf8Pib83dbaPcefhPkc3hzinazc98Smvamc:Cwfazfydbcbyd;y1jjbH:bjjjbbazc98fhzxbkkcbh3a8Uaq9pmbamydwaCaiaQcx2fgsydbcetf8Vebcs4aCascwfydbcetf8Vebcs4faCasclfydbcetf8Vebcs4ffaw9nmekcbhscbhAdna81TmbcbhAamczfhXinamczfaAcdtfaXydbgLBdbaXclfhXaAaYaLfRbbTfhAa81cufg81mbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDaAc;8eaAclfc:bd6Eh81inamcjDfasfcFFF;7rBdbasclfgscz9hmbka81cdthBdnalTmbaeaXcdtfhocbhrindnazaoarcdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAcuhLcuhsinazaiaAydbgKcx2fgXclfydbcdtfydbazaXydbcdtfydbfazaXcwfydbcdtfydbfgXasaXas6gXEhsaKaLaXEhLaAclfhAavcufgvmbkaLcuSmba8AaLcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEcbhAindndnasamc:qDfaAfgvydbgX6mbasaX9hmeaEamcjDfaAfIdb9FTmekavasBdbamc:GDfaAfaLBdbamcjDfaAfaEUdbxdkaAclfgAcz9hmbkkarcefgral9hmbkkamczfaBfhLcbhscbhAindnamc:GDfasfydbgXcuSmbaLaAcdtfaXBdbaAcefhAkasclfgscz9hmbkaAa81fg81TmbJFFuuhhcuhKamczfhsa81hvcuhLina8AasydbgXcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEdndnazaiaXcx2fgAclfydbcdtfydbazaAydbcdtfydbfazaAcwfydbcdtfydbfgAaL6mbaAaL9hmeaEah9DTmekaEhhaAhLaXhKkasclfhsavcufgvmbkaKcuSmbaKhQkdnamaiaQcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80kcbhXinaOaHaraXcdtfydbcdtgAfydbcdtfgKhsazaAfgvydbgLhAdnaLTmbdninasydbaQSmeasclfhsaAcufgATmdxbkkasaKaLcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaQcK2fgsIdbhEasIdlhhasIdwh8KasIdxh8EasIdzh5asIdCh8FaYaQfce86bba80a8FMh80a8Za5Mh8Za8Ya8EMh8Ya8Xa8KMh8Xa8WahMh8Wa8VaEMh8Vamydxh8Uxbkkamc:WDf8KjjjjbaPk;Vvivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbararydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark:;idiud99dndnabaecitfgwydlgDciGgqciSmbinabcbaDcd4gDalaqcdtfIdbawIdb:tgkJbbbb9FEgwaecefgefadaialavaoarz:ejjjbak:larIdb9FTmdabawaD7aefgecitfgwydlgDciGgqci9hmbkkabaecitfgeclfhbdnavmbcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdwalIdw:tgkakNaqIdbalIdb:tgkakNaqIdlalIdl:tgkakNMM:rgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbxdkkcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdbalIdb:t:lgkaqIdlalIdl:t:lgxakax9EEgkaqIdwalIdw:t:lgxakax9EEgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbkkk;llevudnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0abydxaq9pVakVgDce9hmbavawcltfgxab8Pdb83dbaxcwfabcwfgx8Pdb83dbdnaxydbgqTmbaoabydbcdtfhxaqhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkdnabydxglci2gsabydlgxfgkciGTmbarakfcbalaxcu7fciGcefz:ojjjb8Aabydxci2hsabydlhxabydwhqkab9cb83dwababydbaqfBdbabascifc98GaxfBdlaP8Vebhscbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk8LbabaeadaialavaoarawaDaDaqJbbbbz:cjjjbk;Nkovud99euv99eul998Jjjjjbc:W;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:W:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaoc8Wfawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeaocbBd8Sao9cb83iKao9cb83izaoczfaoc8Wfawci2cxaoc8Sfcbcrz1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:W:qefawcxaoc8Sfcbciz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:W:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:W:qefheaoc8WfhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabaxUd8KabasUdaabazUd3abaCaxaPN:tUdKabaXasaPN:tUdCabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabae86b8UdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabav86bRdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:W;aef8Kjjjjbk;Iwwvul99iud99eue99eul998Jjjjjbcje9Rgr8Kjjjjbavcd4hwaicd4hDdndnaoTmbarc;abfcbaocdtgvz:ojjjb8Aarc;Gbfcbavz:ojjjb8AarhvarcafhiaohqinavcFFF97BdbaicFFF;7rBdbaiclfhiavclfhvaqcufgqmbkdnadTmbcbhkinaeakaD2cdtfgvIdwhxavIdlhmavIdbhPalakaw2cdtfIdbhsarc;abfhzarhiarc;GbfhHarcafhqcj1jjbhvaohOinasavcwfIdbaxNavIdbaPNavclfIdbamNMMgAMhCakhXdnaAas:tgAaqIdbgQ9DgLmbaHydbhXkaHaXBdbakhXdnaCaiIdbgK9EmbazydbhXaKhCkazaXBdbaiaCUdbaqaAaQaLEUdbavcxfhvaqclfhqaHclfhHaiclfhiazclfhzaOcufgOmbkakcefgkad9hmbkkadThkJbbbbhCcbhXarc;abfhvarc;Gbfhicbhqinalavydbgzaw2cdtfIdbalaiydbgHaw2cdtfIdbaeazaD2cdtfgzIdwaeaHaD2cdtfgHIdw:tgsasNazIdbaHIdb:tgsasNazIdlaHIdl:tgsasNMM:rMMgsaCasaC9EgzEhCaqaXazEhXaiclfhiavclfhvaoaqcefgq9hmbkaCJbbbZNhKxekadThkcbhXJbbbbhKkJbbbbhCdnaearc;abfaXcdtgifydbgqaD2cdtfgvIdwaearc;GbfaifydbgzaD2cdtfgiIdwgm:tgsasNavIdbaiIdbgY:tgAaANavIdlaiIdlgP:tgQaQNMM:rgxJbbbb9ETmbaxalaqaw2cdtfIdbMalazaw2cdtfIdb:taxaxM:vhCkasaCNamMhmaQaCNaPMhPaAaCNaYMhYdnakmbaDcdthvawcdthiindnalIdbg8AaecwfIdbam:tgCaCNaeIdbaY:tgsasNaeclfIdbaP:tgAaANMM:rgQMgEaK9ETmbJbbbbhxdnaQJbbbb9ETmbaEaK:taQaQM:vhxkaxaCNamMhmaxaANaPMhPaxasNaYMhYa8AaKaQMMJbbbZNhKkaeavfhealaifhladcufgdmbkkabaKUdxabamUdwabaPUdlabaYUdbarcjef8Kjjjjbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Reeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrz1jjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk:3lequ8JjjjjbcjP9Rgl8Kjjjjbcbhvalcjxfcbaiz:ojjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjxfaDcefRbbfRbb9RcFeGci6aoalcjxfaDRbbfRbb9RcFeGci6faoalcjxfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:rjjjb8Aakalcjxffaocefgo86bbaxalcjxffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjxffao86bbarcifhravcefgvad9hmbkalcFeaicetz:ojjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkcetfgw8UebgDcu9kmbawax87ebaocjlfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjlfaDz:njjjb8AalcjPf8Kjjjjbk9teiucbcbyd;C1jjbgeabcifc98GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;C1jjbgeabcrfc94GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;C1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;C1jjbfgdBd;C1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkk9Tdbcjwk9ubbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;uwkxebbbdbbb9GNbb"),{}).then(function(I){(t=I.instance).exports.__wasm_call_ctors()});function e(I){if(!I)throw new Error("Assertion failed")}function g(I){return new Uint8Array(I.buffer,I.byteOffset,I.byteLength)}function i(I){var r=new Float32Array(t.exports.memory.buffer,I,12);return{centerX:r[0],centerY:r[1],centerZ:r[2],radius:r[3],coneApexX:r[4],coneApexY:r[5],coneApexZ:r[6],coneAxisX:r[7],coneAxisY:r[8],coneAxisZ:r[9],coneCutoff:r[10]}}}();let ee=0;class yi{constructor(A){if(this.downloadParallelism=A.downloadParallelism==null?8:A.downloadParallelism,this.timeout=A.timeout!=null?A.timeout:5e3,this.renderer=A.renderer,this.zUpToYUpMatrix=new P.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems!=null&&(this.maxCachedItems=A.maxCachedItems)),this.gltfLoader=new Wg,this.gltfLoader.register(a=>({name:"KHR_spz_gaussian_splats_compression"})),A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const a=new Ai;a.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"),this.dracoLoader=a,this.gltfLoader.setDRACOLoader(a),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const a=new sa;a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.ktx2loader=a,this.gltfLoader.setKTX2Loader(a),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(pi),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new zg(this.gltfLoader),this.splatsDecoder=new Qr(this.gltfLoader,this.renderer),this.cache=new Tg,this.register={},this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const A=this;ee<A.downloadParallelism&&A._download(),A._loadBatch()}_scheduleDownload(A){this.downloads.unshift(A)}_download(){do{if(this.nextDownloads.length==0&&(this._getNextDownloads(),this.nextDownloads.length==0))return;for(;this.nextDownloads.length>0;){const A=this.nextDownloads.shift();A&&A.shouldDoDownload()&&A.doDownload()}}while(this.concurrentDownloads<this.downloadParallelism)}_meshReceived(A,a,e,g,i,I,r){this.ready.unshift([A,a,e,g,i,I,r])}_loadBatch(){for(this.nextReady.length==0&&this._getNextReady();this.nextReady.length>0;){const A=this.nextReady.shift();if(!A)return;const a=A[0],e=A[1],g=A[2],i=a.get(g);i&&e[g]&&Object.keys(e[g]).forEach(I=>{const r=e[g][I];r&&(a.put(g,r(i)),e[g][I]=null)}),this.nextReady.length==0&&this._getNextReady()}}_getNextDownloads(){let A=Number.POSITIVE_INFINITY,a=-1;for(let r=this.downloads.length-1;r>=0;r--)this.downloads[r].shouldDoDownload()?this.downloads[r].distanceFunction||this.nextDownloads.push(this.downloads.splice(r,1)[0]):this.downloads.splice(r,1);if(this.nextDownloads.length>0)return;let e,g=0,i=Number.MAX_SAFE_INTEGER,I=-1;for(let r=this.downloads.length-1;r>=0;r--){const o=this.downloads[r].distanceFunction();o<=A&&(A=o,a=r),g=Math.max(this.downloads[r].level),this.downloads[r].loadingStrategy!="IMMEDIATE"&&this.downloads[r].level<i&&(i=this.downloads[r].level,I=r)}if(g>i+4?e=this.downloads.splice(I,1).pop():a>=0&&(e=this.downloads.splice(a,1).pop()),e){this.nextDownloads.push(e);const r=e.getSiblings();for(let o=this.downloads.length-1;o>=0;o--)r.map(B=>B.uuid).includes(this.downloads[o].uuid)&&this.nextDownloads.push(this.downloads.splice(o,1).pop())}}_getNextReady(){let A=Number.POSITIVE_INFINITY,a=-1;for(let e=this.ready.length-1;e>=0;e--)this.ready[e][3]||this.nextReady.push(this.ready.splice(e,1)[0]);if(!(this.nextReady.length>0)){for(let e=this.ready.length-1;e>=0;e--){const g=this.ready[e][3]()*this.ready[e][5];g<=A&&(A=g,a=e)}if(a>=0){const e=this.ready.splice(a,1).pop();this.nextReady.push(e);const g=e[4]();for(let i=this.ready.length-1;i>=0;i--)g.map(I=>I.uuid).includes(this.ready[i][6])&&this.nextReady.push(this.ready.splice(i,1).pop())}}}get(A,a,e,g,i,I,r,o,B,n,s,E){const C=this,Q=mi(e),c=new AbortController;if(A.signal.addEventListener("abort",()=>{C.register[Q]&&Object.keys(C.register[Q]).length!=0||c.abort("user abort")}),!(e.includes(".b3dm")||e.includes(".json")||e.includes(".gltf")||e.includes(".glb")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");if(C.register[Q]||(C.register[Q]={}),C.register[Q][a]&&console.error(" a tile should only be loaded once"),C.register[Q][a]=g,C.cache.get(Q))this._meshReceived(C.cache,C.register,Q,i,I,r,a);else{let d;e.includes(".b3dm")?d=()=>{var b;b=C.proxy?()=>fetch(C.proxy,{method:"POST",body:e,signal:c.signal}):()=>fetch(e,{signal:c.signal}),ee++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+e),new Error(`couldn't load "${e}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.b3dmDecoder.parseB3DM(h,l=>{C.meshCallback(l,s)},B,n)).then(h=>{C.cache.put(Q,h),this._meshReceived(C.cache,C.register,Q,i,I,r,a),C._checkSize()}).catch(h=>{}).finally(()=>{ee--})}:e.includes(".glb")||e.includes(".gltf")?d=()=>{var b;b=C.proxy?()=>fetch(C.proxy,{method:"POST",body:e,signal:c.signal}):()=>fetch(e,{signal:c.signal}),ee++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+e),new Error(`couldn't load "${e}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.splatsDecoder.parseSplats(h,B,n,E)).then(h=>{h.isSplatsData||(B&&h.applyMatrix4(this.zUpToYUpMatrix),h.traverse(l=>{l.isMesh&&(n&&l.applyMatrix4(this.zUpToYUpMatrix),C.meshCallback&&C.meshCallback(l,s)),l.isPoints&&C.pointsCallback&&C.pointsCallback(l,s)})),C.cache.put(Q,h),C._meshReceived(C.cache,C.register,Q,i,I,r,a),C._checkSize()}).catch(h=>{}).finally(()=>{ee--})}:e.includes(".json")&&(d=()=>{var b;b=C.proxy?()=>fetch(C.proxy,{method:"POST",body:e,signal:c.signal}):()=>fetch(e,{signal:c.signal}),ee++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+e),new Error(`couldn't load "${e}". Request failed with status ${h.status} : ${h.statusText}`);return h.json()}).then(h=>Vt(h,e)).then(h=>{C.cache.put(Q,h),C._meshReceived(C.cache,C.register,Q),C._checkSize()}).catch(h=>{console.error(h)}).finally(()=>{ee--})}),this._scheduleDownload({shouldDoDownload:()=>!A.signal.aborted&&!!C.register[Q]&&Object.keys(C.register[Q]).length>0&&!C.cache.get(Q),doDownload:d,distanceFunction:i,getSiblings:I,level:r,loadingStrategy:o,uuid:a})}}clear(){const A=this.maxCachedItems;this.maxCachedItems=0,this._checkSize(),this.maxCachedItems=A}invalidate(A,a){const e=mi(A),g=this;g.register[e]&&setTimeout(()=>{g.register&&g.register[e]&&(delete g.register[e][a],g._checkSize())},g.timeout)}dispose(){let A=this.cache.head();for(this._disposeEntryContent(A);(A=A.next()).key!=null;)this._disposeEntryContent(A);this.cache.reset(),this.cache=void 0,this.register=void 0,this.dracoLoader&&this.dracoLoader.dispose(),this.ktx2loader&&this.ktx2loader.dispose()}_checkSize(){const A=this;let a=0;for(;A.cache.size()>A.maxCachedItems&&a<A.cache.size();){a++;const e=A.cache.head(),g=A.register[e.key];g&&(Object.keys(g).length>0?(A.cache.remove(e.key),A.cache.put(e.key,e.value)):(A.cache.remove(e.key),delete A.register[e.key],A._disposeEntryContent(e)))}}_disposeEntryContent(A){A.value&&(A.value.isSplatsBatch?A.value.remove():A.value.traverse&&A.value.traverse(a=>{if(a.material)if(a.material.length)for(let e=0;e<a.material.length;++e)a.material[e].dispose();else a.material.dispose();a.geometry&&a.geometry.dispose()}))}}function mi(t){for(var A=t.split("/"),a=[],e=0,g=0;g<A.length;g++){var i=A[g];i!=="."&&i!==""&&i!==".."?a[e++]=i:i===".."&&e>0&&e--}if(e===0)return"/";var I="";for(g=0;g<e;g++)I+="/"+a[g];return I}const ZA=[];for(let t=0;t<256;++t)ZA.push((t+256).toString(16).slice(1));let Xt;const cn=new Uint8Array(16),Fi={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function ki(t,A,a){if(Fi.randomUUID&&!t)return Fi.randomUUID();const e=(t=t||{}).random??t.rng?.()??function(){if(!Xt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Xt=crypto.getRandomValues.bind(crypto)}return Xt(cn)}();if(e.length<16)throw new Error("Random bytes length must be >= 16");return e[6]=15&e[6]|64,e[8]=63&e[8]|128,function(g,i=0){return(ZA[g[i+0]]+ZA[g[i+1]]+ZA[g[i+2]]+ZA[g[i+3]]+"-"+ZA[g[i+4]]+ZA[g[i+5]]+"-"+ZA[g[i+6]]+ZA[g[i+7]]+"-"+ZA[g[i+8]]+ZA[g[i+9]]+"-"+ZA[g[i+10]]+ZA[g[i+11]]+ZA[g[i+12]]+ZA[g[i+13]]+ZA[g[i+14]]+ZA[g[i+15]]).toLowerCase()}(e)}var Mi,Ri,Ja=function(){if(Ri)return Mi;function t(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function A(e,g){for(var i,I="",r=0,o=-1,B=0,n=0;n<=e.length;++n){if(n<e.length)i=e.charCodeAt(n);else{if(i===47)break;i=47}if(i===47){if(!(o===n-1||B===1))if(o!==n-1&&B===2){if(I.length<2||r!==2||I.charCodeAt(I.length-1)!==46||I.charCodeAt(I.length-2)!==46){if(I.length>2){var s=I.lastIndexOf("/");if(s!==I.length-1){s===-1?(I="",r=0):r=(I=I.slice(0,s)).length-1-I.lastIndexOf("/"),o=n,B=0;continue}}else if(I.length===2||I.length===1){I="",r=0,o=n,B=0;continue}}g&&(I.length>0?I+="/..":I="..",r=2)}else I.length>0?I+="/"+e.slice(o+1,n):I=e.slice(o+1,n),r=n-o-1;o=n,B=0}else i===46&&B!==-1?++B:B=-1}return I}Ri=1;var a={resolve:function(){for(var e,g="",i=!1,I=arguments.length-1;I>=-1&&!i;I--){var r;I>=0?r=arguments[I]:(e===void 0&&(e=process.cwd()),r=e),t(r),r.length!==0&&(g=r+"/"+g,i=r.charCodeAt(0)===47)}return g=A(g,!i),i?g.length>0?"/"+g:"/":g.length>0?g:"."},normalize:function(e){if(t(e),e.length===0)return".";var g=e.charCodeAt(0)===47,i=e.charCodeAt(e.length-1)===47;return(e=A(e,!g)).length!==0||g||(e="."),e.length>0&&i&&(e+="/"),g?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&e.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var e,g=0;g<arguments.length;++g){var i=arguments[g];t(i),i.length>0&&(e===void 0?e=i:e+="/"+i)}return e===void 0?".":a.normalize(e)},relative:function(e,g){if(t(e),t(g),e===g||(e=a.resolve(e))===(g=a.resolve(g)))return"";for(var i=1;i<e.length&&e.charCodeAt(i)===47;++i);for(var I=e.length,r=I-i,o=1;o<g.length&&g.charCodeAt(o)===47;++o);for(var B=g.length-o,n=r<B?r:B,s=-1,E=0;E<=n;++E){if(E===n){if(B>n){if(g.charCodeAt(o+E)===47)return g.slice(o+E+1);if(E===0)return g.slice(o+E)}else r>n&&(e.charCodeAt(i+E)===47?s=E:E===0&&(s=0));break}var C=e.charCodeAt(i+E);if(C!==g.charCodeAt(o+E))break;C===47&&(s=E)}var Q="";for(E=i+s+1;E<=I;++E)E!==I&&e.charCodeAt(E)!==47||(Q.length===0?Q+="..":Q+="/..");return Q.length>0?Q+g.slice(o+s):(o+=s,g.charCodeAt(o)===47&&++o,g.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(t(e),e.length===0)return".";for(var g=e.charCodeAt(0),i=g===47,I=-1,r=!0,o=e.length-1;o>=1;--o)if((g=e.charCodeAt(o))===47){if(!r){I=o;break}}else r=!1;return I===-1?i?"/":".":i&&I===1?"//":e.slice(0,I)},basename:function(e,g){if(g!==void 0&&typeof g!="string")throw new TypeError('"ext" argument must be a string');t(e);var i,I=0,r=-1,o=!0;if(g!==void 0&&g.length>0&&g.length<=e.length){if(g.length===e.length&&g===e)return"";var B=g.length-1,n=-1;for(i=e.length-1;i>=0;--i){var s=e.charCodeAt(i);if(s===47){if(!o){I=i+1;break}}else n===-1&&(o=!1,n=i+1),B>=0&&(s===g.charCodeAt(B)?--B==-1&&(r=i):(B=-1,r=n))}return I===r?r=n:r===-1&&(r=e.length),e.slice(I,r)}for(i=e.length-1;i>=0;--i)if(e.charCodeAt(i)===47){if(!o){I=i+1;break}}else r===-1&&(o=!1,r=i+1);return r===-1?"":e.slice(I,r)},extname:function(e){t(e);for(var g=-1,i=0,I=-1,r=!0,o=0,B=e.length-1;B>=0;--B){var n=e.charCodeAt(B);if(n!==47)I===-1&&(r=!1,I=B+1),n===46?g===-1?g=B:o!==1&&(o=1):g!==-1&&(o=-1);else if(!r){i=B+1;break}}return g===-1||I===-1||o===0||o===1&&g===I-1&&g===i+1?"":e.slice(g,I)},format:function(e){if(e===null||typeof e!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(g,i){var I=i.dir||i.root,r=i.base||(i.name||"")+(i.ext||"");return I?I===i.root?I+r:I+g+r:r}("/",e)},parse:function(e){t(e);var g={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return g;var i,I=e.charCodeAt(0),r=I===47;r?(g.root="/",i=1):i=0;for(var o=-1,B=0,n=-1,s=!0,E=e.length-1,C=0;E>=i;--E)if((I=e.charCodeAt(E))!==47)n===-1&&(s=!1,n=E+1),I===46?o===-1?o=E:C!==1&&(C=1):o!==-1&&(C=-1);else if(!s){B=E+1;break}return o===-1||n===-1||C===0||C===1&&o===n-1&&o===B+1?n!==-1&&(g.base=g.name=B===0&&r?e.slice(1,n):e.slice(B,n)):(B===0&&r?(g.name=e.slice(1,o),g.base=e.slice(1,n)):(g.name=e.slice(B,o),g.base=e.slice(B,n)),g.ext=e.slice(o,n)),B>0?g.dir=e.slice(0,B-1):r&&(g.dir="/"),g},sep:"/",delimiter:":",win32:null,posix:null};return a.posix=a,Mi=a}();function We(){return We=Object.assign?Object.assign.bind():function(t){for(var A=1;A<arguments.length;A++){var a=arguments[A];for(var e in a)({}).hasOwnProperty.call(a,e)&&(t[e]=a[e])}return t},We.apply(null,arguments)}var Ni={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function hn(t,A){if(Ve(t,A))return t[A];throw typeof t[A]=="function"&&function(a,e){return a==null||typeof a[e]!="function"||Ze(a,e)&&Object.getPrototypeOf&&e in Object.getPrototypeOf(a)?!1:Ze(bn,e)?!0:!(e in Object.prototype||e in Function.prototype)}(t,A)?new Error('Cannot access method "'+A+'" as a property'):new Error('No access to property "'+A+'"')}function Ve(t,A){return!(!function(a){return typeof a=="object"&&a&&a.constructor===Object}(t)&&!Array.isArray(t))&&(!!Ze(dn,A)||!(A in Object.prototype)&&!(A in Function.prototype))}var dn={length:!0,name:!0},bn={toString:!0,valueOf:!0,toLocaleString:!0};class un{constructor(A){this.wrappedObject=A,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(A=>this.has(A)).values()}get(A){return hn(this.wrappedObject,A)}set(A,a){return function(e,g,i){if(Ve(e,g))return e[g]=i,i;throw new Error('No access to property "'+g+'"')}(this.wrappedObject,A,a),this}has(A){return Ve(this.wrappedObject,A)&&A in this.wrappedObject}entries(){return function(A,a){return{next:()=>{var e=A.next();return e.done?e:{value:a(e.value),done:!1}}}}(this.keys(),A=>[A,this.get(A)])}forEach(A){for(var a of this.keys())A(this.get(a),a,this)}delete(A){Ve(this.wrappedObject,A)&&delete this.wrappedObject[A]}clear(){for(var A of this.keys())this.delete(A)}get size(){return Object.keys(this.wrappedObject).length}}function RA(t){return typeof t=="number"}function YA(t){return!(!t||typeof t!="object"||typeof t.constructor!="function")&&(t.isBigNumber===!0&&typeof t.constructor.prototype=="object"&&t.constructor.prototype.isBigNumber===!0||typeof t.constructor.isDecimal=="function"&&t.constructor.isDecimal(t)===!0)}function ln(t){return typeof t=="bigint"}function Gi(t){return t&&typeof t=="object"&&Object.getPrototypeOf(t).isComplex===!0||!1}function Si(t){return t&&typeof t=="object"&&Object.getPrototypeOf(t).isFraction===!0||!1}function Ui(t){return t&&t.constructor.prototype.isUnit===!0||!1}function ma(t){return typeof t=="string"}var OA=Array.isArray;function JA(t){return t&&t.constructor.prototype.isMatrix===!0||!1}function Xe(t){return Array.isArray(t)||JA(t)}function fn(t){return t&&t.isDenseMatrix&&t.constructor.prototype.isMatrix===!0||!1}function Dn(t){return t&&t.isSparseMatrix&&t.constructor.prototype.isMatrix===!0||!1}function wn(t){return t&&t.constructor.prototype.isRange===!0||!1}function Zt(t){return t&&t.constructor.prototype.isIndex===!0||!1}function pn(t){return typeof t=="boolean"}function yn(t){return t&&t.constructor.prototype.isResultSet===!0||!1}function mn(t){return t&&t.constructor.prototype.isHelp===!0||!1}function Fn(t){return typeof t=="function"}function kn(t){return t instanceof Date}function Mn(t){return t instanceof RegExp}function _t(t){return!(!t||typeof t!="object"||t.constructor!==Object||Gi(t)||Si(t))}function Rn(t){return!!t&&(t instanceof Map||t instanceof un||typeof t.set=="function"&&typeof t.get=="function"&&typeof t.keys=="function"&&typeof t.has=="function")}function Nn(t){return t===null}function Gn(t){return t===void 0}function Sn(t){return t&&t.isAccessorNode===!0&&t.constructor.prototype.isNode===!0||!1}function Un(t){return t&&t.isArrayNode===!0&&t.constructor.prototype.isNode===!0||!1}function xn(t){return t&&t.isAssignmentNode===!0&&t.constructor.prototype.isNode===!0||!1}function Ln(t){return t&&t.isBlockNode===!0&&t.constructor.prototype.isNode===!0||!1}function jn(t){return t&&t.isConditionalNode===!0&&t.constructor.prototype.isNode===!0||!1}function vn(t){return t&&t.isConstantNode===!0&&t.constructor.prototype.isNode===!0||!1}function Jn(t){return t&&t.isFunctionAssignmentNode===!0&&t.constructor.prototype.isNode===!0||!1}function Hn(t){return t&&t.isFunctionNode===!0&&t.constructor.prototype.isNode===!0||!1}function Yn(t){return t&&t.isIndexNode===!0&&t.constructor.prototype.isNode===!0||!1}function Kn(t){return t&&t.isNode===!0&&t.constructor.prototype.isNode===!0||!1}function Tn(t){return t&&t.isObjectNode===!0&&t.constructor.prototype.isNode===!0||!1}function qn(t){return t&&t.isOperatorNode===!0&&t.constructor.prototype.isNode===!0||!1}function On(t){return t&&t.isParenthesisNode===!0&&t.constructor.prototype.isNode===!0||!1}function Pn(t){return t&&t.isRangeNode===!0&&t.constructor.prototype.isNode===!0||!1}function zn(t){return t&&t.isRelationalNode===!0&&t.constructor.prototype.isNode===!0||!1}function Wn(t){return t&&t.isSymbolNode===!0&&t.constructor.prototype.isNode===!0||!1}function Vn(t){return t&&t.constructor.prototype.isChain===!0||!1}function Ha(t){var A=typeof t;return A==="object"?t===null?"null":YA(t)?"BigNumber":t.constructor&&t.constructor.name?t.constructor.name:"Object":A}function HA(t){var A=typeof t;if(A==="number"||A==="bigint"||A==="string"||A==="boolean"||t==null)return t;if(typeof t.clone=="function")return t.clone();if(Array.isArray(t))return t.map(function(a){return HA(a)});if(t instanceof Date)return new Date(t.valueOf());if(YA(t))return t;if(_t(t))return function(a,e){var g={};for(var i in a)Ze(a,i)&&(g[i]=e(a[i]));return g}(t,HA);if(A==="function")return t;throw new TypeError("Cannot clone: unknown type of value (value: ".concat(t,")"))}function ce(t,A){var a,e,g;if(Array.isArray(t)){if(!Array.isArray(A)||t.length!==A.length)return!1;for(e=0,g=t.length;e<g;e++)if(!ce(t[e],A[e]))return!1;return!0}if(typeof t=="function")return t===A;if(t instanceof Object){if(Array.isArray(A)||!(A instanceof Object))return!1;for(a in t)if(!(a in A)||!ce(t[a],A[a]))return!1;for(a in A)if(!(a in t))return!1;return!0}return t===A}function Ze(t,A){return t&&Object.hasOwnProperty.call(t,A)}var te=function(t){if(t)throw new Error(`The global config is readonly.
|
|
9
21
|
Please create a mathjs instance if you want to change the default configuration.
|
|
10
22
|
Example:
|
|
11
23
|
|
|
12
24
|
import { create, all } from 'mathjs';
|
|
13
25
|
const mathjs = create(all);
|
|
14
26
|
mathjs.config({ number: 'BigNumber' });
|
|
15
|
-
`);return Object.freeze(xi)};function ki(){return!0}function We(){return!1}function Ta(){}nt(va,xi,{MATRIX_OPTIONS:["Matrix","Array"],NUMBER_OPTIONS:["number","BigNumber","Fraction"]});const ji="Argument is not a typed-function.",ct=function r(){function e(B){return typeof B=="object"&&B!==null&&B.constructor===Object}const a=[{name:"number",test:function(B){return typeof B=="number"}},{name:"string",test:function(B){return typeof B=="string"}},{name:"boolean",test:function(B){return typeof B=="boolean"}},{name:"Function",test:function(B){return typeof B=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(B){return B instanceof Date}},{name:"RegExp",test:function(B){return B instanceof RegExp}},{name:"Object",test:e},{name:"null",test:function(B){return B===null}},{name:"undefined",test:function(B){return B===void 0}}],t={name:"any",test:ki,isAny:!0};let i,n,o=0,s={createCount:0};function c(B){const v=i.get(B);if(v)return v;let Q='Unknown type "'+B+'"';const R=B.toLowerCase();let T;for(T of n)if(T.toLowerCase()===R){Q+='. Did you mean "'+T+'" ?';break}throw new TypeError(Q)}function u(B){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any";const Q=v?c(v).index:n.length,R=[];for(let U=0;U<B.length;++U){if(!B[U]||typeof B[U].name!="string"||typeof B[U].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");const z=B[U].name;if(i.has(z))throw new TypeError('Duplicate type name "'+z+'"');R.push(z),i.set(z,{name:z,test:B[U].test,isAny:B[U].isAny,index:Q+U,conversionsTo:[]})}const T=n.slice(Q);n=n.slice(0,Q).concat(R).concat(T);for(let U=Q+R.length;U<n.length;++U)i.get(n[U]).index=U}function A(){i=new Map,n=[],o=0,u([t],!1)}function d(B){const v=n.filter(Q=>{const R=i.get(Q);return!R.isAny&&R.test(B)});return v.length?v:["any"]}function b(B){return B&&typeof B=="function"&&"_typedFunctionData"in B}function h(B,v,Q){if(!b(B))throw new TypeError(ji);const R=Q&&Q.exact,T=p(Array.isArray(v)?v.join(","):v),U=l(T);if(!R||U in B.signatures){const L=B._typedFunctionData.signatureMap.get(U);if(L)return L}const z=T.length;let N,K;if(R){let L;for(L in N=[],B.signatures)N.push(B._typedFunctionData.signatureMap.get(L))}else N=B._typedFunctionData.signatures;for(let L=0;L<z;++L){const he=T[L],ne=[];let xe;for(xe of N){const Ge=y(xe.params,L);if(Ge&&(!he.restParam||Ge.restParam)){if(!Ge.hasAny){const Aa=E(Ge);if(he.types.some(ta=>!Aa.has(ta.name)))continue}ne.push(xe)}}if(N=ne,N.length===0)break}for(K of N)if(K.params.length<=z)return K;throw new TypeError("Signature not found (signature: "+(B.name||"unnamed")+"("+l(T,", ")+"))")}function l(B){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return B.map(Q=>Q.name).join(v)}function g(B){const v=B.indexOf("...")===0,Q=(v?B.length>3?B.slice(3):"any":B).split("|").map(U=>c(U.trim()));let R=!1,T=v?"...":"";return{types:Q.map(function(U){return R=U.isAny||R,T+=U.name+"|",{name:U.name,typeIndex:U.index,test:U.test,isAny:U.isAny,conversion:null,conversionIndex:-1}}),name:T.slice(0,-1),hasAny:R,hasConversion:!1,restParam:v}}function m(B){const v=B.types.map(z=>z.name),Q=function(z){if(z.length===0)return[];const N=z.map(c);z.length>1&&N.sort((he,ne)=>he.index-ne.index);let K=N[0].conversionsTo;if(z.length===1)return K;K=K.concat([]);const L=new Set(z);for(let he=1;he<N.length;++he){let ne;for(ne of N[he].conversionsTo)L.has(ne.from)||(K.push(ne),L.add(ne.from))}return K}(v);let R=B.hasAny,T=B.name;const U=Q.map(function(z){const N=c(z.from);return R=N.isAny||R,T+="|"+z.from,{name:z.from,typeIndex:N.index,test:N.test,isAny:N.isAny,conversion:z,conversionIndex:z.index}});return{types:B.types.concat(U),name:T,hasAny:R,hasConversion:U.length>0,restParam:B.restParam}}function E(B){return B.typeSet||(B.typeSet=new Set,B.types.forEach(v=>B.typeSet.add(v.name))),B.typeSet}function p(B){const v=[];if(typeof B!="string")throw new TypeError("Signatures must be strings");const Q=B.trim();if(Q==="")return v;const R=Q.split(",");for(let T=0;T<R.length;++T){const U=g(R[T].trim());if(U.restParam&&T!==R.length-1)throw new SyntaxError('Unexpected rest parameter "'+R[T]+'": only allowed for the last parameter');if(U.types.length===0)return null;v.push(U)}return v}function C(B){const v=X(B);return!!v&&v.restParam}function I(B){if(B&&B.types.length!==0){if(B.types.length===1)return c(B.types[0].name).test;if(B.types.length===2){const v=c(B.types[0].name).test,Q=c(B.types[1].name).test;return function(R){return v(R)||Q(R)}}{const v=B.types.map(function(Q){return c(Q.name).test});return function(Q){for(let R=0;R<v.length;R++)if(v[R](Q))return!0;return!1}}}return ki}function x(B){let v,Q,R;if(C(B)){v=me(B).map(I);const T=v.length,U=I(X(B)),z=function(N){for(let K=T;K<N.length;K++)if(!U(N[K]))return!1;return!0};return function(N){for(let K=0;K<v.length;K++)if(!v[K](N[K]))return!1;return z(N)&&N.length>=T+1}}return B.length===0?function(T){return T.length===0}:B.length===1?(Q=I(B[0]),function(T){return Q(T[0])&&T.length===1}):B.length===2?(Q=I(B[0]),R=I(B[1]),function(T){return Q(T[0])&&R(T[1])&&T.length===2}):(v=B.map(I),function(T){for(let U=0;U<v.length;U++)if(!v[U](T[U]))return!1;return T.length===v.length})}function y(B,v){return v<B.length?B[v]:C(B)?X(B):null}function w(B,v){const Q=y(B,v);return Q?E(Q):new Set}function D(B){return B.conversion===null||B.conversion===void 0}function F(B,v){const Q=new Set;return B.forEach(R=>{const T=w(R.params,v);let U;for(U of T)Q.add(U)}),Q.has("any")?["any"]:Array.from(Q)}function j(B,v,Q){let R,T;const U=B||"unnamed";let z,N=Q;for(z=0;z<v.length;z++){const ne=[];if(N.forEach(xe=>{const Ge=I(y(xe.params,z));(z<xe.params.length||C(xe.params))&&Ge(v[z])&&ne.push(xe)}),ne.length===0){if(T=F(N,z),T.length>0){const xe=d(v[z]);return R=new TypeError("Unexpected type of argument in function "+U+" (expected: "+T.join(" or ")+", actual: "+xe.join(" | ")+", index: "+z+")"),R.data={category:"wrongType",fn:U,index:z,actual:xe,expected:T},R}}else N=ne}const K=N.map(function(ne){return C(ne.params)?1/0:ne.params.length});if(v.length<Math.min.apply(null,K))return T=F(N,z),R=new TypeError("Too few arguments in function "+U+" (expected: "+T.join(" or ")+", index: "+v.length+")"),R.data={category:"tooFewArgs",fn:U,index:v.length,expected:T},R;const L=Math.max.apply(null,K);if(v.length>L)return R=new TypeError("Too many arguments in function "+U+" (expected: "+L+", actual: "+v.length+")"),R.data={category:"tooManyArgs",fn:U,index:v.length,expectedLength:L},R;const he=[];for(let ne=0;ne<v.length;++ne)he.push(d(v[ne]).join("|"));return R=new TypeError('Arguments of type "'+he.join(", ")+'" do not match any of the defined signatures of function '+U+"."),R.data={category:"mismatch",actual:he},R}function M(B){let v=n.length+1;for(let Q=0;Q<B.types.length;Q++)D(B.types[Q])&&(v=Math.min(v,B.types[Q].typeIndex));return v}function _(B){let v=o+1;for(let Q=0;Q<B.types.length;Q++)D(B.types[Q])||(v=Math.min(v,B.types[Q].conversionIndex));return v}function q(B,v){if(B.hasAny){if(!v.hasAny)return 1}else if(v.hasAny)return-1;if(B.restParam){if(!v.restParam)return 1}else if(v.restParam)return-1;if(B.hasConversion){if(!v.hasConversion)return 1}else if(v.hasConversion)return-1;const Q=M(B)-M(v);if(Q<0)return-1;if(Q>0)return 1;const R=_(B)-_(v);return R<0?-1:R>0?1:0}function V(B,v){const Q=B.params,R=v.params,T=X(Q),U=X(R),z=C(Q),N=C(R);if(z&&T.hasAny){if(!N||!U.hasAny)return 1}else if(N&&U.hasAny)return-1;let K,L=0,he=0;for(K of Q)K.hasAny&&++L,K.hasConversion&&++he;let ne=0,xe=0;for(K of R)K.hasAny&&++ne,K.hasConversion&&++xe;if(L!==ne)return L-ne;if(z&&T.hasConversion){if(!N||!U.hasConversion)return 1}else if(N&&U.hasConversion)return-1;if(he!==xe)return he-xe;if(z){if(!N)return 1}else if(N)return-1;const Ge=(Q.length-R.length)*(z?-1:1);if(Ge!==0)return Ge;const Aa=[];let ta,ga=0;for(let Va=0;Va<Q.length;++Va){const Tt=q(Q[Va],R[Va]);Aa.push(Tt),ga+=Tt}if(ga!==0)return ga;for(ta of Aa)if(ta!==0)return ta;return 0}function J(B,v){let Q=v;if(B.some(T=>T.hasConversion)){const T=C(B),U=B.map(O);Q=function(){const z=[],N=T?arguments.length-1:arguments.length;for(let K=0;K<N;K++)z[K]=U[K](arguments[K]);return T&&(z[N]=arguments[N].map(U[N])),v.apply(this,z)}}let R=Q;if(C(B)){const T=B.length-1;R=function(){return Q.apply(this,ee(arguments,0,T).concat([ee(arguments,T)]))}}return R}function O(B){let v,Q,R,T;const U=[],z=[];switch(B.types.forEach(function(N){N.conversion&&(U.push(c(N.conversion.from).test),z.push(N.conversion.convert))}),z.length){case 0:return function(N){return N};case 1:return v=U[0],R=z[0],function(N){return v(N)?R(N):N};case 2:return v=U[0],Q=U[1],R=z[0],T=z[1],function(N){return v(N)?R(N):Q(N)?T(N):N};default:return function(N){for(let K=0;K<z.length;K++)if(U[K](N))return z[K](N);return N}}}function se(B){return function v(Q,R,T){if(R<Q.length){const N=Q[R];let K=[];if(N.restParam){const L=N.types.filter(D);L.length<N.types.length&&K.push({types:L,name:"..."+L.map(he=>he.name).join("|"),hasAny:L.some(he=>he.isAny),hasConversion:!1,restParam:!0}),K.push(N)}else K=N.types.map(function(L){return{types:[L],name:L.name,hasAny:L.isAny,hasConversion:L.conversion,restParam:!1}});return U=K,z=function(L){return v(Q,R+1,T.concat([L]))},Array.prototype.concat.apply([],U.map(z))}return[T];var U,z}(B,0,[])}function ue(B,v){const Q=Math.max(B.length,v.length);for(let N=0;N<Q;N++){const K=w(B,N),L=w(v,N);let he,ne=!1;for(he of L)if(K.has(he)){ne=!0;break}if(!ne)return!1}const R=B.length,T=v.length,U=C(B),z=C(v);return U?z?R===T:T>=R:z?R>=T:R===T}function re(B,v,Q){const R=[];let T;for(T of B){let U=Q[T];if(typeof U!="number")throw new TypeError('No definition for referenced signature "'+T+'"');if(U=v[U],typeof U!="function")return!1;R.push(U)}return R}function le(B,v,Q){const R=function(z){return z.map(N=>Ne(N)?Ce(N.referToSelf.callback):we(N)?Ae(N.referTo.references,N.referTo.callback):N)}(B),T=new Array(R.length).fill(!1);let U=!0;for(;U;){U=!1;let z=!0;for(let N=0;N<R.length;++N){if(T[N])continue;const K=R[N];if(Ne(K))R[N]=K.referToSelf.callback(Q),R[N].referToSelf=K.referToSelf,T[N]=!0,z=!1;else if(we(K)){const L=re(K.referTo.references,R,v);L?(R[N]=K.referTo.callback.apply(this,L),R[N].referTo=K.referTo,T[N]=!0,z=!1):U=!0}}if(z&&U)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return R}function de(B,v){if(s.createCount++,Object.keys(v).length===0)throw new SyntaxError("No signatures provided");s.warnAgainstDeprecatedThis&&function(te){const ra=/\bthis(\(|\.signatures\b)/;Object.keys(te).forEach(Rr=>{const Ha=te[Rr];if(ra.test(Ha.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}(v);const Q=[],R=[],T={},U=[];let z;for(z in v){if(!Object.prototype.hasOwnProperty.call(v,z))continue;const te=p(z);if(!te)continue;Q.forEach(function(tt){if(ue(tt,te))throw new TypeError('Conflicting signatures "'+l(tt)+'" and "'+l(te)+'".')}),Q.push(te);const ra=R.length;R.push(v[z]);const Rr=te.map(m);let Ha;for(Ha of se(Rr)){const tt=l(Ha);U.push({params:Ha,name:tt,fn:ra}),Ha.every(hu=>!hu.hasConversion)&&(T[tt]=ra)}}U.sort(V);const N=le(R,T,at);let K;for(K in T)Object.prototype.hasOwnProperty.call(T,K)&&(T[K]=N[T[K]]);const L=[],he=new Map;for(K of U)he.has(K.name)||(K.fn=N[K.fn],L.push(K),he.set(K.name,K));const ne=L[0]&&L[0].params.length<=2&&!C(L[0].params),xe=L[1]&&L[1].params.length<=2&&!C(L[1].params),Ge=L[2]&&L[2].params.length<=2&&!C(L[2].params),Aa=L[3]&&L[3].params.length<=2&&!C(L[3].params),ta=L[4]&&L[4].params.length<=2&&!C(L[4].params),ga=L[5]&&L[5].params.length<=2&&!C(L[5].params),Va=ne&&xe&&Ge&&Aa&&ta&&ga;for(let te=0;te<L.length;++te)L[te].test=x(L[te].params);const Tt=ne?I(L[0].params[0]):We,Lc=xe?I(L[1].params[0]):We,Gc=Ge?I(L[2].params[0]):We,_c=Aa?I(L[3].params[0]):We,zc=ta?I(L[4].params[0]):We,Pc=ga?I(L[5].params[0]):We,qc=ne?I(L[0].params[1]):We,Kc=xe?I(L[1].params[1]):We,Oc=Ge?I(L[2].params[1]):We,Jc=Aa?I(L[3].params[1]):We,Vc=ta?I(L[4].params[1]):We,Hc=ga?I(L[5].params[1]):We;for(let te=0;te<L.length;++te)L[te].implementation=J(L[te].params,L[te].fn);const Wc=ne?L[0].implementation:Ta,Xc=xe?L[1].implementation:Ta,Yc=Ge?L[2].implementation:Ta,Zc=Aa?L[3].implementation:Ta,$c=ta?L[4].implementation:Ta,eu=ga?L[5].implementation:Ta,au=ne?L[0].params.length:-1,tu=xe?L[1].params.length:-1,ru=Ge?L[2].params.length:-1,iu=Aa?L[3].params.length:-1,nu=ta?L[4].params.length:-1,ou=ga?L[5].params.length:-1,su=Va?6:0,Au=L.length,cu=L.map(te=>te.test),uu=L.map(te=>te.implementation),du=function(){for(let te=su;te<Au;te++)if(cu[te](arguments))return uu[te].apply(this,arguments);return s.onMismatch(B,arguments,L)};function at(te,ra){return arguments.length===au&&Tt(te)&&qc(ra)?Wc.apply(this,arguments):arguments.length===tu&&Lc(te)&&Kc(ra)?Xc.apply(this,arguments):arguments.length===ru&&Gc(te)&&Oc(ra)?Yc.apply(this,arguments):arguments.length===iu&&_c(te)&&Jc(ra)?Zc.apply(this,arguments):arguments.length===nu&&zc(te)&&Vc(ra)?$c.apply(this,arguments):arguments.length===ou&&Pc(te)&&Hc(ra)?eu.apply(this,arguments):du.apply(this,arguments)}try{Object.defineProperty(at,"name",{value:B})}catch{}return at.signatures=T,at._typedFunctionData={signatures:L,signatureMap:he},at}function $(B,v,Q){throw j(B,v,Q)}function me(B){return ee(B,0,B.length-1)}function X(B){return B[B.length-1]}function ee(B,v,Q){return Array.prototype.slice.call(B,v,Q)}function Ae(B,v){return{referTo:{references:B,callback:v}}}function Ce(B){if(typeof B!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:B}}}function we(B){return B&&typeof B.referTo=="object"&&Array.isArray(B.referTo.references)&&typeof B.referTo.callback=="function"}function Ne(B){return B&&typeof B.referToSelf=="object"&&typeof B.referToSelf.callback=="function"}function Je(B,v){if(!B)return v;if(v&&v!==B){const Q=new Error("Function names do not match (expected: "+B+", actual: "+v+")");throw Q.data={actual:v,expected:B},Q}return B}function Ve(B){let v;for(const Q in B)Object.prototype.hasOwnProperty.call(B,Q)&&(b(B[Q])||typeof B[Q].signature=="string")&&(v=Je(v,B[Q].name));return v}function et(B,v){let Q;for(Q in v)if(Object.prototype.hasOwnProperty.call(v,Q)){if(Q in B&&v[Q]!==B[Q]){const R=new Error('Signature "'+Q+'" is defined twice');throw R.data={signature:Q,sourceFunction:v[Q],destFunction:B[Q]},R}B[Q]=v[Q]}}A(),u(a);const Uc=s;function ao(B){if(!B||typeof B.from!="string"||typeof B.to!="string"||typeof B.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(B.to===B.from)throw new SyntaxError('Illegal to define conversion from "'+B.from+'" to itself.')}return s=function(B){const v=typeof B=="string";let Q=v?B:"";const R={};for(let T=v?1:0;T<arguments.length;++T){const U=arguments[T];let z,N={};if(typeof U=="function"?(z=U.name,typeof U.signature=="string"?N[U.signature]=U:b(U)&&(N=U.signatures)):e(U)&&(N=U,v||(z=Ve(U))),Object.keys(N).length===0){const K=new TypeError("Argument to 'typed' at index "+T+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw K.data={index:T,argument:U},K}v||(Q=Je(Q,z)),et(R,N)}return de(Q||"",R)},s.create=r,s.createCount=Uc.createCount,s.onMismatch=$,s.throwMismatchError=$,s.createError=j,s.clear=A,s.clearConversions=function(){let B;for(B of n)i.get(B).conversionsTo=[];o=0},s.addTypes=u,s._findType=c,s.referTo=function(){const B=me(arguments).map(Q=>l(p(Q))),v=X(arguments);if(typeof v!="function")throw new TypeError("Callback function expected as last argument");return Ae(B,v)},s.referToSelf=Ce,s.convert=function(B,v){const Q=c(v);if(Q.test(B))return B;const R=Q.conversionsTo;if(R.length===0)throw new Error("There are no conversions to "+v+" defined.");for(let T=0;T<R.length;T++)if(c(R[T].from).test(B))return R[T].convert(B);throw new Error("Cannot convert "+B+" to "+v)},s.findSignature=h,s.find=function(B,v,Q){return h(B,v,Q).implementation},s.isTypedFunction=b,s.warnAgainstDeprecatedThis=!0,s.addType=function(B,v){let Q="any";v!==!1&&i.has("Object")&&(Q="Object"),s.addTypes([B],Q)},s.addConversion=function(B){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};ao(B);const Q=c(B.to),R=Q.conversionsTo.find(T=>T.from===B.from);if(R){if(!v||!v.override)throw new Error('There is already a conversion from "'+B.from+'" to "'+Q.name+'"');s.removeConversion({from:R.from,to:B.to,convert:R.convert})}Q.conversionsTo.push({from:B.from,convert:B.convert,index:o++})},s.addConversions=function(B,v){B.forEach(Q=>s.addConversion(Q,v))},s.removeConversion=function(B){ao(B);const v=c(B.to),Q=function(T,U){for(let z=0;z<T.length;z++)if(U(T[z]))return T[z]}(v.conversionsTo,T=>T.from===B.from);if(!Q)throw new Error("Attempt to remove nonexistent conversion from "+B.from+" to "+B.to);if(Q.convert!==B.convert)throw new Error("Conversion to remove does not match existing conversion");const R=v.conversionsTo.indexOf(Q);v.conversionsTo.splice(R,1)},s.resolve=function(B,v){if(!b(B))throw new TypeError(ji);const Q=B._typedFunctionData.signatures;for(let R=0;R<Q.length;++R)if(Q[R].test(v))return Q[R];return null},s}();function ie(r,e,a,t){function i(n){var o=function(s,c){for(var u={},A=0;A<c.length;A++){var d=c[A],b=s[d];b!==void 0&&(u[d]=b)}return u}(n,e.map(zs));return function(s,c,u){var A=c.filter(b=>!function(h){return h&&h[0]==="?"}(b)).every(b=>u[b]!==void 0);if(!A){var d=c.filter(b=>u[b]===void 0);throw new Error('Cannot create function "'.concat(s,'", ')+"some dependencies are missing: ".concat(d.map(b=>'"'.concat(b,'"')).join(", "),"."))}}(r,e,n),a(o)}return i.isFactory=!0,i.fn=r,i.dependencies=e.slice().sort(),t&&(i.meta=t),i}function zs(r){return r&&r[0]==="?"?r.slice(1):r}function Ee(r){return typeof r=="boolean"||!!isFinite(r)&&r===Math.round(r)}function rr(r,e,a){var t={2:"0b",8:"0o",16:"0x"}[e],i="";if(a){if(a<1)throw new Error("size must be in greater than 0");if(!Ee(a))throw new Error("size must be an integer");if(r>2**(a-1)-1||r<-(2**(a-1)))throw new Error("Value must be in range [-2^".concat(a-1,", 2^").concat(a-1,"-1]"));if(!Ee(r))throw new Error("Value must be an integer");r<0&&(r+=2**a),i="i".concat(a)}var n="";return r<0&&(r=-r,n="-"),"".concat(n).concat(t).concat(r.toString(e)).concat(i)}function ir(r,e){if(typeof e=="function")return e(r);if(r===1/0)return"Infinity";if(r===-1/0)return"-Infinity";if(isNaN(r))return"NaN";var{notation:a,precision:t,wordSize:i}=Mi(e);switch(a){case"fixed":return function(n,o){if(isNaN(n)||!isFinite(n))return String(n);var s=ut(n),c=typeof o=="number"?dt(s,s.exponent+1+o):s,u=c.coefficients,A=c.exponent+1,d=A+(o||0);return u.length<d&&(u=u.concat(Na(d-u.length))),A<0&&(u=Na(1-A).concat(u),A=1),A<u.length&&u.splice(A,0,A===0?"0.":"."),c.sign+u.join("")}(r,t);case"exponential":return Ri(r,t);case"engineering":return function(n,o){if(isNaN(n)||!isFinite(n))return String(n);var s=ut(n),c=dt(s,o),u=c.exponent,A=c.coefficients,d=u%3==0?u:u<0?u-3-u%3:u-u%3;if(be(o))for(;o>A.length||u-d+1>A.length;)A.push(0);else for(var b=Math.abs(u-d)-(A.length-1),h=0;h<b;h++)A.push(0);for(var l=Math.abs(u-d),g=1;l>0;)g++,l--;var m=A.slice(g).join(""),E=be(o)&&m.length||m.match(/[1-9]/)?"."+m:"",p=A.slice(0,g).join("")+E+"e"+(u>=0?"+":"")+d.toString();return c.sign+p}(r,t);case"bin":return rr(r,2,i);case"oct":return rr(r,8,i);case"hex":return rr(r,16,i);case"auto":return function(n,o,s){if(isNaN(n)||!isFinite(n))return String(n);var c=Ti(s?.lowerExp,-3),u=Ti(s?.upperExp,5),A=ut(n),d=o?dt(A,o):A;if(d.exponent<c||d.exponent>=u)return Ri(n,o);var b=d.coefficients,h=d.exponent;b.length<o&&(b=b.concat(Na(o-b.length))),b=b.concat(Na(h-b.length+1+(b.length<o?o-b.length:0)));var l=h>0?h:0;return l<(b=Na(-h).concat(b)).length-1&&b.splice(l+1,0,"."),d.sign+b.join("")}(r,t,e).replace(/((\.\d*?)(0+))($|e)/,function(){var n=arguments[2],o=arguments[4];return n!=="."?n+o:o});default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Mi(r){var e,a,t="auto";if(r!==void 0)if(be(r))e=r;else if(ve(r))e=r.toNumber();else{if(!tr(r))throw new Error("Unsupported type of options, number, BigNumber, or object expected");r.precision!==void 0&&(e=Si(r.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),r.wordSize!==void 0&&(a=Si(r.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),r.notation&&(t=r.notation)}return{notation:t,precision:e,wordSize:a}}function ut(r){var e=String(r).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!e)throw new SyntaxError("Invalid number "+r);var a=e[1],t=e[2],i=parseFloat(e[4]||"0"),n=t.indexOf(".");i+=n!==-1?n-1:t.length-1;var o=t.replace(".","").replace(/^0*/,function(s){return i-=s.length,""}).replace(/0*$/,"").split("").map(function(s){return parseInt(s)});return o.length===0&&(o.push(0),i++),{sign:a,coefficients:o,exponent:i}}function Ri(r,e){if(isNaN(r)||!isFinite(r))return String(r);var a=ut(r),t=e?dt(a,e):a,i=t.coefficients,n=t.exponent;i.length<e&&(i=i.concat(Na(e-i.length)));var o=i.shift();return t.sign+o+(i.length>0?"."+i.join(""):"")+"e"+(n>=0?"+":"")+n}function dt(r,e){for(var a={sign:r.sign,coefficients:r.coefficients,exponent:r.exponent},t=a.coefficients;e<=0;)t.unshift(0),a.exponent++,e++;if(t.length>e&&t.splice(e,t.length-e)[0]>=5){var i=e-1;for(t[i]++;t[i]===10;)t.pop(),i===0&&(t.unshift(0),a.exponent++,i++),t[--i]++}return a}function Na(r){for(var e=[],a=0;a<r;a++)e.push(0);return e}function ht(r,e){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(a<=0)throw new Error("Relative tolerance must be greater than 0");if(t<0)throw new Error("Absolute tolerance must be at least 0");return!isNaN(r)&&!isNaN(e)&&(isFinite(r)&&isFinite(e)?r===e||Math.abs(r-e)<=Math.max(a*Math.max(Math.abs(r),Math.abs(e)),t):r===e)}function Si(r,e){return be(r)?r:ve(r)?r.toNumber():void e()}function Ti(r,e){return be(r)?r:ve(r)?r.toNumber():e}var Ni=function(){return Ni=ct.create,ct},Ps=ie("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],function(r){var{BigNumber:e,Complex:a,DenseMatrix:t,Fraction:i}=r,n=Ni();return n.clear(),n.addTypes([{name:"number",test:be},{name:"Complex",test:vi},{name:"BigNumber",test:ve},{name:"bigint",test:ds},{name:"Fraction",test:Fi},{name:"Unit",test:Qi},{name:"identifier",test:o=>ia&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(o)},{name:"string",test:ia},{name:"Chain",test:_s},{name:"Array",test:Qe},{name:"Matrix",test:De},{name:"DenseMatrix",test:hs},{name:"SparseMatrix",test:ls},{name:"Range",test:bs},{name:"Index",test:ar},{name:"boolean",test:gs},{name:"ResultSet",test:fs},{name:"Help",test:ps},{name:"function",test:ms},{name:"Date",test:Es},{name:"RegExp",test:Cs},{name:"null",test:Bs},{name:"undefined",test:Ds},{name:"AccessorNode",test:ys},{name:"ArrayNode",test:ws},{name:"AssignmentNode",test:xs},{name:"BlockNode",test:vs},{name:"ConditionalNode",test:Fs},{name:"ConstantNode",test:Qs},{name:"FunctionNode",test:js},{name:"FunctionAssignmentNode",test:ks},{name:"IndexNode",test:Ms},{name:"Node",test:Rs},{name:"ObjectNode",test:Ss},{name:"OperatorNode",test:Ts},{name:"ParenthesisNode",test:Ns},{name:"RangeNode",test:Us},{name:"RelationalNode",test:Ls},{name:"SymbolNode",test:Gs},{name:"Map",test:Is},{name:"Object",test:tr}]),n.addConversions([{from:"number",to:"BigNumber",convert:function(o){if(e||lt(o),o.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+o+"). Use function bignumber(x) to convert to BigNumber.");return new e(o)}},{from:"number",to:"Complex",convert:function(o){return a||bt(o),new a(o,0)}},{from:"BigNumber",to:"Complex",convert:function(o){return a||bt(o),new a(o.toNumber(),0)}},{from:"bigint",to:"number",convert:function(o){if(o>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+o+")");return Number(o)}},{from:"bigint",to:"BigNumber",convert:function(o){return e||lt(o),new e(o.toString())}},{from:"bigint",to:"Fraction",convert:function(o){return i||gt(o),new i(o)}},{from:"Fraction",to:"BigNumber",convert:function(o){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(o){return a||bt(o),new a(o.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(o){i||gt(o);var s=new i(o);if(s.valueOf()!==o)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+o+"). Use function fraction(x) to convert to Fraction.");return s}},{from:"string",to:"number",convert:function(o){var s=Number(o);if(isNaN(s))throw new Error('Cannot convert "'+o+'" to a number');return s}},{from:"string",to:"BigNumber",convert:function(o){e||lt(o);try{return new e(o)}catch{throw new Error('Cannot convert "'+o+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(o){try{return BigInt(o)}catch{throw new Error('Cannot convert "'+o+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(o){i||gt(o);try{return new i(o)}catch{throw new Error('Cannot convert "'+o+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(o){a||bt(o);try{return new a(o)}catch{throw new Error('Cannot convert "'+o+'" to Complex')}}},{from:"boolean",to:"number",convert:function(o){return+o}},{from:"boolean",to:"BigNumber",convert:function(o){return e||lt(o),new e(+o)}},{from:"boolean",to:"bigint",convert:function(o){return BigInt(+o)}},{from:"boolean",to:"Fraction",convert:function(o){return i||gt(o),new i(+o)}},{from:"boolean",to:"string",convert:function(o){return String(o)}},{from:"Array",to:"Matrix",convert:function(o){return t||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new t(o)}},{from:"Matrix",to:"Array",convert:function(o){return o.valueOf()}}]),n.onMismatch=(o,s,c)=>{var u=n.createError(o,s,c);if(["wrongType","mismatch"].includes(u.data.category)&&s.length===1&&st(s[0])&&c.some(d=>!d.params.includes(","))){var A=new TypeError("Function '".concat(o,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(o,")'."));throw A.data=u.data,A}throw u},n.onMismatch=(o,s,c)=>{var u=n.createError(o,s,c);if(["wrongType","mismatch"].includes(u.data.category)&&s.length===1&&st(s[0])&&c.some(d=>!d.params.includes(","))){var A=new TypeError("Function '".concat(o,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(o,")'."));throw A.data=u.data,A}throw u},n});function lt(r){throw new Error("Cannot convert value ".concat(r," into a BigNumber: no class 'BigNumber' provided"))}function bt(r){throw new Error("Cannot convert value ".concat(r," into a Complex number: no class 'Complex' provided"))}function gt(r){throw new Error("Cannot convert value ".concat(r," into a Fraction, no class 'Fraction' provided."))}/*!
|
|
27
|
+
`);return Object.freeze(Ni)};function xi(){return!0}function ba(){return!1}function he(){}We(te,Ni,{MATRIX_OPTIONS:["Matrix","Array"],NUMBER_OPTIONS:["number","BigNumber","Fraction"]});const Li="Argument is not a typed-function.",_e=function t(){function A(m){return typeof m=="object"&&m!==null&&m.constructor===Object}const a=[{name:"number",test:function(m){return typeof m=="number"}},{name:"string",test:function(m){return typeof m=="string"}},{name:"boolean",test:function(m){return typeof m=="boolean"}},{name:"Function",test:function(m){return typeof m=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(m){return m instanceof Date}},{name:"RegExp",test:function(m){return m instanceof RegExp}},{name:"Object",test:A},{name:"null",test:function(m){return m===null}},{name:"undefined",test:function(m){return m===void 0}}],e={name:"any",test:xi,isAny:!0};let g,i,I=0,r={createCount:0};function o(m){const R=g.get(m);if(R)return R;let U='Unknown type "'+m+'"';const v=m.toLowerCase();let H;for(H of i)if(H.toLowerCase()===v){U+='. Did you mean "'+H+'" ?';break}throw new TypeError(U)}function B(m){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any";const U=R?o(R).index:i.length,v=[];for(let q=0;q<m.length;++q){if(!m[q]||typeof m[q].name!="string"||typeof m[q].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");const V=m[q].name;if(g.has(V))throw new TypeError('Duplicate type name "'+V+'"');v.push(V),g.set(V,{name:V,test:m[q].test,isAny:m[q].isAny,index:U+q,conversionsTo:[]})}const H=i.slice(U);i=i.slice(0,U).concat(v).concat(H);for(let q=U+v.length;q<i.length;++q)g.get(i[q]).index=q}function n(){g=new Map,i=[],I=0,B([e],!1)}function s(m){const R=i.filter(U=>{const v=g.get(U);return!v.isAny&&v.test(m)});return R.length?R:["any"]}function E(m){return m&&typeof m=="function"&&"_typedFunctionData"in m}function C(m,R,U){if(!E(m))throw new TypeError(Li);const v=U&&U.exact,H=h(Array.isArray(R)?R.join(","):R),q=Q(H);if(!v||q in m.signatures){const z=m._typedFunctionData.signatureMap.get(q);if(z)return z}const V=H.length;let K,$;if(v){let z;for(z in K=[],m.signatures)K.push(m._typedFunctionData.signatureMap.get(z))}else K=m._typedFunctionData.signatures;for(let z=0;z<V;++z){const wA=H[z],dA=[];let LA;for(LA of K){const zA=k(LA.params,z);if(zA&&(!wA.restParam||zA.restParam)){if(!zA.hasAny){const oa=b(zA);if(wA.types.some(Ea=>!oa.has(Ea.name)))continue}dA.push(LA)}}if(K=dA,K.length===0)break}for($ of K)if($.params.length<=V)return $;throw new TypeError("Signature not found (signature: "+(m.name||"unnamed")+"("+Q(H,", ")+"))")}function Q(m){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return m.map(U=>U.name).join(R)}function c(m){const R=m.indexOf("...")===0,U=(R?m.length>3?m.slice(3):"any":m).split("|").map(q=>o(q.trim()));let v=!1,H=R?"...":"";return{types:U.map(function(q){return v=q.isAny||v,H+=q.name+"|",{name:q.name,typeIndex:q.index,test:q.test,isAny:q.isAny,conversion:null,conversionIndex:-1}}),name:H.slice(0,-1),hasAny:v,hasConversion:!1,restParam:R}}function d(m){const R=m.types.map(V=>V.name),U=function(V){if(V.length===0)return[];const K=V.map(o);V.length>1&&K.sort((wA,dA)=>wA.index-dA.index);let $=K[0].conversionsTo;if(V.length===1)return $;$=$.concat([]);const z=new Set(V);for(let wA=1;wA<K.length;++wA){let dA;for(dA of K[wA].conversionsTo)z.has(dA.from)||($.push(dA),z.add(dA.from))}return $}(R);let v=m.hasAny,H=m.name;const q=U.map(function(V){const K=o(V.from);return v=K.isAny||v,H+="|"+V.from,{name:V.from,typeIndex:K.index,test:K.test,isAny:K.isAny,conversion:V,conversionIndex:V.index}});return{types:m.types.concat(q),name:H,hasAny:v,hasConversion:q.length>0,restParam:m.restParam}}function b(m){return m.typeSet||(m.typeSet=new Set,m.types.forEach(R=>m.typeSet.add(R.name))),m.typeSet}function h(m){const R=[];if(typeof m!="string")throw new TypeError("Signatures must be strings");const U=m.trim();if(U==="")return R;const v=U.split(",");for(let H=0;H<v.length;++H){const q=c(v[H].trim());if(q.restParam&&H!==v.length-1)throw new SyntaxError('Unexpected rest parameter "'+v[H]+'": only allowed for the last parameter');if(q.types.length===0)return null;R.push(q)}return R}function l(m){const R=rA(m);return!!R&&R.restParam}function w(m){if(m&&m.types.length!==0){if(m.types.length===1)return o(m.types[0].name).test;if(m.types.length===2){const R=o(m.types[0].name).test,U=o(m.types[1].name).test;return function(v){return R(v)||U(v)}}{const R=m.types.map(function(U){return o(U.name).test});return function(U){for(let v=0;v<R.length;v++)if(R[v](U))return!0;return!1}}}return xi}function M(m){let R,U,v;if(l(m)){R=MA(m).map(w);const H=R.length,q=w(rA(m)),V=function(K){for(let $=H;$<K.length;$++)if(!q(K[$]))return!1;return!0};return function(K){for(let $=0;$<R.length;$++)if(!R[$](K[$]))return!1;return V(K)&&K.length>=H+1}}return m.length===0?function(H){return H.length===0}:m.length===1?(U=w(m[0]),function(H){return U(H[0])&&H.length===1}):m.length===2?(U=w(m[0]),v=w(m[1]),function(H){return U(H[0])&&v(H[1])&&H.length===2}):(R=m.map(w),function(H){for(let q=0;q<R.length;q++)if(!R[q](H[q]))return!1;return H.length===R.length})}function k(m,R){return R<m.length?m[R]:l(m)?rA(m):null}function N(m,R){const U=k(m,R);return U?b(U):new Set}function F(m){return m.conversion===null||m.conversion===void 0}function G(m,R){const U=new Set;return m.forEach(v=>{const H=N(v.params,R);let q;for(q of H)U.add(q)}),U.has("any")?["any"]:Array.from(U)}function L(m,R,U){let v,H;const q=m||"unnamed";let V,K=U;for(V=0;V<R.length;V++){const dA=[];if(K.forEach(LA=>{const zA=w(k(LA.params,V));(V<LA.params.length||l(LA.params))&&zA(R[V])&&dA.push(LA)}),dA.length===0){if(H=G(K,V),H.length>0){const LA=s(R[V]);return v=new TypeError("Unexpected type of argument in function "+q+" (expected: "+H.join(" or ")+", actual: "+LA.join(" | ")+", index: "+V+")"),v.data={category:"wrongType",fn:q,index:V,actual:LA,expected:H},v}}else K=dA}const $=K.map(function(dA){return l(dA.params)?1/0:dA.params.length});if(R.length<Math.min.apply(null,$))return H=G(K,V),v=new TypeError("Too few arguments in function "+q+" (expected: "+H.join(" or ")+", index: "+R.length+")"),v.data={category:"tooFewArgs",fn:q,index:R.length,expected:H},v;const z=Math.max.apply(null,$);if(R.length>z)return v=new TypeError("Too many arguments in function "+q+" (expected: "+z+", actual: "+R.length+")"),v.data={category:"tooManyArgs",fn:q,index:R.length,expectedLength:z},v;const wA=[];for(let dA=0;dA<R.length;++dA)wA.push(s(R[dA]).join("|"));return v=new TypeError('Arguments of type "'+wA.join(", ")+'" do not match any of the defined signatures of function '+q+"."),v.data={category:"mismatch",actual:wA},v}function x(m){let R=i.length+1;for(let U=0;U<m.types.length;U++)F(m.types[U])&&(R=Math.min(R,m.types[U].typeIndex));return R}function W(m){let R=I+1;for(let U=0;U<m.types.length;U++)F(m.types[U])||(R=Math.min(R,m.types[U].conversionIndex));return R}function X(m,R){if(m.hasAny){if(!R.hasAny)return 1}else if(R.hasAny)return-1;if(m.restParam){if(!R.restParam)return 1}else if(R.restParam)return-1;if(m.hasConversion){if(!R.hasConversion)return 1}else if(R.hasConversion)return-1;const U=x(m)-x(R);if(U<0)return-1;if(U>0)return 1;const v=W(m)-W(R);return v<0?-1:v>0?1:0}function eA(m,R){const U=m.params,v=R.params,H=rA(U),q=rA(v),V=l(U),K=l(v);if(V&&H.hasAny){if(!K||!q.hasAny)return 1}else if(K&&q.hasAny)return-1;let $,z=0,wA=0;for($ of U)$.hasAny&&++z,$.hasConversion&&++wA;let dA=0,LA=0;for($ of v)$.hasAny&&++dA,$.hasConversion&&++LA;if(z!==dA)return z-dA;if(V&&H.hasConversion){if(!K||!q.hasConversion)return 1}else if(K&&q.hasConversion)return-1;if(wA!==LA)return wA-LA;if(V){if(!K)return 1}else if(K)return-1;const zA=(U.length-v.length)*(V?-1:1);if(zA!==0)return zA;const oa=[];let Ea,ya=0;for(let Wa=0;Wa<U.length;++Wa){const oe=X(U[Wa],v[Wa]);oa.push(oe),ya+=oe}if(ya!==0)return ya;for(Ea of oa)if(Ea!==0)return Ea;return 0}function AA(m,R){let U=R;if(m.some(H=>H.hasConversion)){const H=l(m),q=m.map(Z);U=function(){const V=[],K=H?arguments.length-1:arguments.length;for(let $=0;$<K;$++)V[$]=q[$](arguments[$]);return H&&(V[K]=arguments[K].map(q[K])),R.apply(this,V)}}let v=U;if(l(m)){const H=m.length-1;v=function(){return U.apply(this,sA(arguments,0,H).concat([sA(arguments,H)]))}}return v}function Z(m){let R,U,v,H;const q=[],V=[];switch(m.types.forEach(function(K){K.conversion&&(q.push(o(K.conversion.from).test),V.push(K.conversion.convert))}),V.length){case 0:return function(K){return K};case 1:return R=q[0],v=V[0],function(K){return R(K)?v(K):K};case 2:return R=q[0],U=q[1],v=V[0],H=V[1],function(K){return R(K)?v(K):U(K)?H(K):K};default:return function(K){for(let $=0;$<V.length;$++)if(q[$](K))return V[$](K);return K}}}function oA(m){return function R(U,v,H){if(v<U.length){const K=U[v];let $=[];if(K.restParam){const z=K.types.filter(F);z.length<K.types.length&&$.push({types:z,name:"..."+z.map(wA=>wA.name).join("|"),hasAny:z.some(wA=>wA.isAny),hasConversion:!1,restParam:!0}),$.push(K)}else $=K.types.map(function(z){return{types:[z],name:z.name,hasAny:z.isAny,hasConversion:z.conversion,restParam:!1}});return q=$,V=function(z){return R(U,v+1,H.concat([z]))},Array.prototype.concat.apply([],q.map(V))}return[H];var q,V}(m,0,[])}function uA(m,R){const U=Math.max(m.length,R.length);for(let K=0;K<U;K++){const $=N(m,K),z=N(R,K);let wA,dA=!1;for(wA of z)if($.has(wA)){dA=!0;break}if(!dA)return!1}const v=m.length,H=R.length,q=l(m),V=l(R);return q?V?v===H:H>=v:V?v>=H:v===H}function hA(m,R,U){const v=[];let H;for(H of m){let q=U[H];if(typeof q!="number")throw new TypeError('No definition for referenced signature "'+H+'"');if(q=R[q],typeof q!="function")return!1;v.push(q)}return v}function yA(m,R,U){const v=function(V){return V.map(K=>UA(K)?pA(K.referToSelf.callback):mA(K)?lA(K.referTo.references,K.referTo.callback):K)}(m),H=new Array(v.length).fill(!1);let q=!0;for(;q;){q=!1;let V=!0;for(let K=0;K<v.length;++K){if(H[K])continue;const $=v[K];if(UA($))v[K]=$.referToSelf.callback(U),v[K].referToSelf=$.referToSelf,H[K]=!0,V=!1;else if(mA($)){const z=hA($.referTo.references,v,R);z?(v[K]=$.referTo.callback.apply(this,z),v[K].referTo=$.referTo,H[K]=!0,V=!1):q=!0}}if(V&&q)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return v}function DA(m,R){if(r.createCount++,Object.keys(R).length===0)throw new SyntaxError("No signatures provided");r.warnAgainstDeprecatedThis&&function(QA){const ca=/\bthis(\(|\.signatures\b)/;Object.keys(QA).forEach(qe=>{const Za=QA[qe];if(ca.test(Za.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}(R);const U=[],v=[],H={},q=[];let V;for(V in R){if(!Object.prototype.hasOwnProperty.call(R,V))continue;const QA=h(V);if(!QA)continue;U.forEach(function(se){if(uA(se,QA))throw new TypeError('Conflicting signatures "'+Q(se)+'" and "'+Q(QA)+'".')}),U.push(QA);const ca=v.length;v.push(R[V]);const qe=QA.map(d);let Za;for(Za of oA(qe)){const se=Q(Za);q.push({params:Za,name:se,fn:ca}),Za.every(Ug=>!Ug.hasConversion)&&(H[se]=ca)}}q.sort(eA);const K=yA(v,H,Be);let $;for($ in H)Object.prototype.hasOwnProperty.call(H,$)&&(H[$]=K[H[$]]);const z=[],wA=new Map;for($ of q)wA.has($.name)||($.fn=K[$.fn],z.push($),wA.set($.name,$));const dA=z[0]&&z[0].params.length<=2&&!l(z[0].params),LA=z[1]&&z[1].params.length<=2&&!l(z[1].params),zA=z[2]&&z[2].params.length<=2&&!l(z[2].params),oa=z[3]&&z[3].params.length<=2&&!l(z[3].params),Ea=z[4]&&z[4].params.length<=2&&!l(z[4].params),ya=z[5]&&z[5].params.length<=2&&!l(z[5].params),Wa=dA&&LA&&zA&&oa&&Ea&&ya;for(let QA=0;QA<z.length;++QA)z[QA].test=M(z[QA].params);const oe=dA?w(z[0].params[0]):ba,Mg=LA?w(z[1].params[0]):ba,Fe=zA?w(z[2].params[0]):ba,ke=oa?w(z[3].params[0]):ba,Dt=Ea?w(z[4].params[0]):ba,wt=ya?w(z[5].params[0]):ba,Qa=dA?w(z[0].params[1]):ba,Rg=LA?w(z[1].params[1]):ba,pt=zA?w(z[2].params[1]):ba,Me=oa?w(z[3].params[1]):ba,je=Ea?w(z[4].params[1]):ba,yt=ya?w(z[5].params[1]):ba;for(let QA=0;QA<z.length;++QA)z[QA].implementation=AA(z[QA].params,z[QA].fn);const ve=dA?z[0].implementation:he,Je=LA?z[1].implementation:he,mt=zA?z[2].implementation:he,Ft=oa?z[3].implementation:he,Va=Ea?z[4].implementation:he,He=ya?z[5].implementation:he,Ye=dA?z[0].params.length:-1,Ke=LA?z[1].params.length:-1,kt=zA?z[2].params.length:-1,Ng=oa?z[3].params.length:-1,Mt=Ea?z[4].params.length:-1,Gg=ya?z[5].params.length:-1,Sg=Wa?6:0,Xa=z.length,Rt=z.map(QA=>QA.test),Nt=z.map(QA=>QA.implementation),Te=function(){for(let QA=Sg;QA<Xa;QA++)if(Rt[QA](arguments))return Nt[QA].apply(this,arguments);return r.onMismatch(m,arguments,z)};function Be(QA,ca){return arguments.length===Ye&&oe(QA)&&Qa(ca)?ve.apply(this,arguments):arguments.length===Ke&&Mg(QA)&&Rg(ca)?Je.apply(this,arguments):arguments.length===kt&&Fe(QA)&&pt(ca)?mt.apply(this,arguments):arguments.length===Ng&&ke(QA)&&Me(ca)?Ft.apply(this,arguments):arguments.length===Mt&&Dt(QA)&&je(ca)?Va.apply(this,arguments):arguments.length===Gg&&wt(QA)&&yt(ca)?He.apply(this,arguments):Te.apply(this,arguments)}try{Object.defineProperty(Be,"name",{value:m})}catch{}return Be.signatures=H,Be._typedFunctionData={signatures:z,signatureMap:wA},Be}function BA(m,R,U){throw L(m,R,U)}function MA(m){return sA(m,0,m.length-1)}function rA(m){return m[m.length-1]}function sA(m,R,U){return Array.prototype.slice.call(m,R,U)}function lA(m,R){return{referTo:{references:m,callback:R}}}function pA(m){if(typeof m!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:m}}}function mA(m){return m&&typeof m.referTo=="object"&&Array.isArray(m.referTo.references)&&typeof m.referTo.callback=="function"}function UA(m){return m&&typeof m.referToSelf=="object"&&typeof m.referToSelf.callback=="function"}function VA(m,R){if(!m)return R;if(R&&R!==m){const U=new Error("Function names do not match (expected: "+m+", actual: "+R+")");throw U.data={actual:R,expected:m},U}return m}function XA(m){let R;for(const U in m)Object.prototype.hasOwnProperty.call(m,U)&&(E(m[U])||typeof m[U].signature=="string")&&(R=VA(R,m[U].name));return R}function Ca(m,R){let U;for(U in R)if(Object.prototype.hasOwnProperty.call(R,U)){if(U in m&&R[U]!==m[U]){const v=new Error('Signature "'+U+'" is defined twice');throw v.data={signature:U,sourceFunction:R[U],destFunction:m[U]},v}m[U]=R[U]}}n(),B(a);const TA=r;function EA(m){if(!m||typeof m.from!="string"||typeof m.to!="string"||typeof m.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(m.to===m.from)throw new SyntaxError('Illegal to define conversion from "'+m.from+'" to itself.')}return r=function(m){const R=typeof m=="string";let U=R?m:"";const v={};for(let H=R?1:0;H<arguments.length;++H){const q=arguments[H];let V,K={};if(typeof q=="function"?(V=q.name,typeof q.signature=="string"?K[q.signature]=q:E(q)&&(K=q.signatures)):A(q)&&(K=q,R||(V=XA(q))),Object.keys(K).length===0){const $=new TypeError("Argument to 'typed' at index "+H+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw $.data={index:H,argument:q},$}R||(U=VA(U,V)),Ca(v,K)}return DA(U||"",v)},r.create=t,r.createCount=TA.createCount,r.onMismatch=BA,r.throwMismatchError=BA,r.createError=L,r.clear=n,r.clearConversions=function(){let m;for(m of i)g.get(m).conversionsTo=[];I=0},r.addTypes=B,r._findType=o,r.referTo=function(){const m=MA(arguments).map(U=>Q(h(U))),R=rA(arguments);if(typeof R!="function")throw new TypeError("Callback function expected as last argument");return lA(m,R)},r.referToSelf=pA,r.convert=function(m,R){const U=o(R);if(U.test(m))return m;const v=U.conversionsTo;if(v.length===0)throw new Error("There are no conversions to "+R+" defined.");for(let H=0;H<v.length;H++)if(o(v[H].from).test(m))return v[H].convert(m);throw new Error("Cannot convert "+m+" to "+R)},r.findSignature=C,r.find=function(m,R,U){return C(m,R,U).implementation},r.isTypedFunction=E,r.warnAgainstDeprecatedThis=!0,r.addType=function(m,R){let U="any";R!==!1&&g.has("Object")&&(U="Object"),r.addTypes([m],U)},r.addConversion=function(m){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};EA(m);const U=o(m.to),v=U.conversionsTo.find(H=>H.from===m.from);if(v){if(!R||!R.override)throw new Error('There is already a conversion from "'+m.from+'" to "'+U.name+'"');r.removeConversion({from:v.from,to:m.to,convert:v.convert})}U.conversionsTo.push({from:m.from,convert:m.convert,index:I++})},r.addConversions=function(m,R){m.forEach(U=>r.addConversion(U,R))},r.removeConversion=function(m){EA(m);const R=o(m.to),U=function(H,q){for(let V=0;V<H.length;V++)if(q(H[V]))return H[V]}(R.conversionsTo,H=>H.from===m.from);if(!U)throw new Error("Attempt to remove nonexistent conversion from "+m.from+" to "+m.to);if(U.convert!==m.convert)throw new Error("Conversion to remove does not match existing conversion");const v=R.conversionsTo.indexOf(U);R.conversionsTo.splice(v,1)},r.resolve=function(m,R){if(!E(m))throw new TypeError(Li);const U=m._typedFunctionData.signatures;for(let v=0;v<U.length;++v)if(U[v].test(R))return U[v];return null},r}();function bA(t,A,a,e){function g(i){var I=function(r,o){for(var B={},n=0;n<o.length;n++){var s=o[n],E=r[s];E!==void 0&&(B[s]=E)}return B}(i,A.map(Xn));return function(r,o,B){var n=o.filter(E=>!function(C){return C&&C[0]==="?"}(E)).every(E=>B[E]!==void 0);if(!n){var s=o.filter(E=>B[E]===void 0);throw new Error('Cannot create function "'.concat(r,'", ')+"some dependencies are missing: ".concat(s.map(E=>'"'.concat(E,'"')).join(", "),"."))}}(t,A,i),a(I)}return g.isFactory=!0,g.fn=t,g.dependencies=A.slice().sort(),e&&(g.meta=e),g}function Xn(t){return t&&t[0]==="?"?t.slice(1):t}function xA(t){return typeof t=="boolean"||!!isFinite(t)&&t===Math.round(t)}function $t(t,A,a){var e={2:"0b",8:"0o",16:"0x"}[A],g="";if(a){if(a<1)throw new Error("size must be in greater than 0");if(!xA(a))throw new Error("size must be an integer");if(t>2**(a-1)-1||t<-(2**(a-1)))throw new Error("Value must be in range [-2^".concat(a-1,", 2^").concat(a-1,"-1]"));if(!xA(t))throw new Error("Value must be an integer");t<0&&(t+=2**a),g="i".concat(a)}var i="";return t<0&&(t=-t,i="-"),"".concat(i).concat(e).concat(t.toString(A)).concat(g)}function Ag(t,A){if(typeof A=="function")return A(t);if(t===1/0)return"Infinity";if(t===-1/0)return"-Infinity";if(isNaN(t))return"NaN";var{notation:a,precision:e,wordSize:g}=ji(A);switch(a){case"fixed":return function(i,I){if(isNaN(i)||!isFinite(i))return String(i);var r=$e(i),o=typeof I=="number"?At(r,r.exponent+1+I):r,B=o.coefficients,n=o.exponent+1,s=n+(I||0);return B.length<s&&(B=B.concat(de(s-B.length))),n<0&&(B=de(1-n).concat(B),n=1),n<B.length&&B.splice(n,0,n===0?"0.":"."),o.sign+B.join("")}(t,e);case"exponential":return vi(t,e);case"engineering":return function(i,I){if(isNaN(i)||!isFinite(i))return String(i);var r=$e(i),o=At(r,I),B=o.exponent,n=o.coefficients,s=B%3==0?B:B<0?B-3-B%3:B-B%3;if(RA(I))for(;I>n.length||B-s+1>n.length;)n.push(0);else for(var E=Math.abs(B-s)-(n.length-1),C=0;C<E;C++)n.push(0);for(var Q=Math.abs(B-s),c=1;Q>0;)c++,Q--;var d=n.slice(c).join(""),b=RA(I)&&d.length||d.match(/[1-9]/)?"."+d:"",h=n.slice(0,c).join("")+b+"e"+(B>=0?"+":"")+s.toString();return o.sign+h}(t,e);case"bin":return $t(t,2,g);case"oct":return $t(t,8,g);case"hex":return $t(t,16,g);case"auto":return function(i,I,r){if(isNaN(i)||!isFinite(i))return String(i);var o=Hi(r?.lowerExp,-3),B=Hi(r?.upperExp,5),n=$e(i),s=I?At(n,I):n;if(s.exponent<o||s.exponent>=B)return vi(i,I);var E=s.coefficients,C=s.exponent;E.length<I&&(E=E.concat(de(I-E.length))),E=E.concat(de(C-E.length+1+(E.length<I?I-E.length:0)));var Q=C>0?C:0;return Q<(E=de(-C).concat(E)).length-1&&E.splice(Q+1,0,"."),s.sign+E.join("")}(t,e,A).replace(/((\.\d*?)(0+))($|e)/,function(){var i=arguments[2],I=arguments[4];return i!=="."?i+I:I});default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function ji(t){var A,a,e="auto";if(t!==void 0)if(RA(t))A=t;else if(YA(t))A=t.toNumber();else{if(!_t(t))throw new Error("Unsupported type of options, number, BigNumber, or object expected");t.precision!==void 0&&(A=Ji(t.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),t.wordSize!==void 0&&(a=Ji(t.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),t.notation&&(e=t.notation)}return{notation:e,precision:A,wordSize:a}}function $e(t){var A=String(t).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!A)throw new SyntaxError("Invalid number "+t);var a=A[1],e=A[2],g=parseFloat(A[4]||"0"),i=e.indexOf(".");g+=i!==-1?i-1:e.length-1;var I=e.replace(".","").replace(/^0*/,function(r){return g-=r.length,""}).replace(/0*$/,"").split("").map(function(r){return parseInt(r)});return I.length===0&&(I.push(0),g++),{sign:a,coefficients:I,exponent:g}}function vi(t,A){if(isNaN(t)||!isFinite(t))return String(t);var a=$e(t),e=A?At(a,A):a,g=e.coefficients,i=e.exponent;g.length<A&&(g=g.concat(de(A-g.length)));var I=g.shift();return e.sign+I+(g.length>0?"."+g.join(""):"")+"e"+(i>=0?"+":"")+i}function At(t,A){for(var a={sign:t.sign,coefficients:t.coefficients,exponent:t.exponent},e=a.coefficients;A<=0;)e.unshift(0),a.exponent++,A++;if(e.length>A&&e.splice(A,e.length-A)[0]>=5){var g=A-1;for(e[g]++;e[g]===10;)e.pop(),g===0&&(e.unshift(0),a.exponent++,g++),e[--g]++}return a}function de(t){for(var A=[],a=0;a<t;a++)A.push(0);return A}function at(t,A){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,e=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(a<=0)throw new Error("Relative tolerance must be greater than 0");if(e<0)throw new Error("Absolute tolerance must be at least 0");return!isNaN(t)&&!isNaN(A)&&(isFinite(t)&&isFinite(A)?t===A||Math.abs(t-A)<=Math.max(a*Math.max(Math.abs(t),Math.abs(A)),e):t===A)}function Ji(t,A){return RA(t)?t:YA(t)?t.toNumber():void A()}function Hi(t,A){return RA(t)?t:YA(t)?t.toNumber():A}var Yi=function(){return Yi=_e.create,_e},Zn=bA("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],function(t){var{BigNumber:A,Complex:a,DenseMatrix:e,Fraction:g}=t,i=Yi();return i.clear(),i.addTypes([{name:"number",test:RA},{name:"Complex",test:Gi},{name:"BigNumber",test:YA},{name:"bigint",test:ln},{name:"Fraction",test:Si},{name:"Unit",test:Ui},{name:"identifier",test:I=>ma&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(I)},{name:"string",test:ma},{name:"Chain",test:Vn},{name:"Array",test:OA},{name:"Matrix",test:JA},{name:"DenseMatrix",test:fn},{name:"SparseMatrix",test:Dn},{name:"Range",test:wn},{name:"Index",test:Zt},{name:"boolean",test:pn},{name:"ResultSet",test:yn},{name:"Help",test:mn},{name:"function",test:Fn},{name:"Date",test:kn},{name:"RegExp",test:Mn},{name:"null",test:Nn},{name:"undefined",test:Gn},{name:"AccessorNode",test:Sn},{name:"ArrayNode",test:Un},{name:"AssignmentNode",test:xn},{name:"BlockNode",test:Ln},{name:"ConditionalNode",test:jn},{name:"ConstantNode",test:vn},{name:"FunctionNode",test:Hn},{name:"FunctionAssignmentNode",test:Jn},{name:"IndexNode",test:Yn},{name:"Node",test:Kn},{name:"ObjectNode",test:Tn},{name:"OperatorNode",test:qn},{name:"ParenthesisNode",test:On},{name:"RangeNode",test:Pn},{name:"RelationalNode",test:zn},{name:"SymbolNode",test:Wn},{name:"Map",test:Rn},{name:"Object",test:_t}]),i.addConversions([{from:"number",to:"BigNumber",convert:function(I){if(A||et(I),I.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+I+"). Use function bignumber(x) to convert to BigNumber.");return new A(I)}},{from:"number",to:"Complex",convert:function(I){return a||tt(I),new a(I,0)}},{from:"BigNumber",to:"Complex",convert:function(I){return a||tt(I),new a(I.toNumber(),0)}},{from:"bigint",to:"number",convert:function(I){if(I>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+I+")");return Number(I)}},{from:"bigint",to:"BigNumber",convert:function(I){return A||et(I),new A(I.toString())}},{from:"bigint",to:"Fraction",convert:function(I){return g||gt(I),new g(I)}},{from:"Fraction",to:"BigNumber",convert:function(I){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(I){return a||tt(I),new a(I.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(I){g||gt(I);var r=new g(I);if(r.valueOf()!==I)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+I+"). Use function fraction(x) to convert to Fraction.");return r}},{from:"string",to:"number",convert:function(I){var r=Number(I);if(isNaN(r))throw new Error('Cannot convert "'+I+'" to a number');return r}},{from:"string",to:"BigNumber",convert:function(I){A||et(I);try{return new A(I)}catch{throw new Error('Cannot convert "'+I+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(I){try{return BigInt(I)}catch{throw new Error('Cannot convert "'+I+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(I){g||gt(I);try{return new g(I)}catch{throw new Error('Cannot convert "'+I+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(I){a||tt(I);try{return new a(I)}catch{throw new Error('Cannot convert "'+I+'" to Complex')}}},{from:"boolean",to:"number",convert:function(I){return+I}},{from:"boolean",to:"BigNumber",convert:function(I){return A||et(I),new A(+I)}},{from:"boolean",to:"bigint",convert:function(I){return BigInt(+I)}},{from:"boolean",to:"Fraction",convert:function(I){return g||gt(I),new g(+I)}},{from:"boolean",to:"string",convert:function(I){return String(I)}},{from:"Array",to:"Matrix",convert:function(I){return e||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new e(I)}},{from:"Matrix",to:"Array",convert:function(I){return I.valueOf()}}]),i.onMismatch=(I,r,o)=>{var B=i.createError(I,r,o);if(["wrongType","mismatch"].includes(B.data.category)&&r.length===1&&Xe(r[0])&&o.some(s=>!s.params.includes(","))){var n=new TypeError("Function '".concat(I,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(I,")'."));throw n.data=B.data,n}throw B},i.onMismatch=(I,r,o)=>{var B=i.createError(I,r,o);if(["wrongType","mismatch"].includes(B.data.category)&&r.length===1&&Xe(r[0])&&o.some(s=>!s.params.includes(","))){var n=new TypeError("Function '".concat(I,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(I,")'."));throw n.data=B.data,n}throw B},i});function et(t){throw new Error("Cannot convert value ".concat(t," into a BigNumber: no class 'BigNumber' provided"))}function tt(t){throw new Error("Cannot convert value ".concat(t," into a Complex number: no class 'Complex' provided"))}function gt(t){throw new Error("Cannot convert value ".concat(t," into a Fraction, no class 'Fraction' provided."))}/*!
|
|
16
28
|
* decimal.js v10.5.0
|
|
17
29
|
* An arbitrary-precision Decimal type for JavaScript.
|
|
18
30
|
* https://github.com/MikeMcl/decimal.js
|
|
19
31
|
* Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
|
|
20
32
|
* MIT Licence
|
|
21
|
-
*/var Ui,ha,Ua=9e15,Ea=1e9,nr="0123456789abcdef",ft="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",pt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",or={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ua,maxE:Ua,crypto:!1},Y=!0,mt="[DecimalError] ",Ca=mt+"Invalid argument: ",Li=mt+"Precision limit exceeded",Gi=mt+"crypto unavailable",_i="[object Decimal]",Se=Math.floor,ke=Math.pow,qs=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Ks=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Os=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,zi=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,$e=1e7,Js=ft.length-1,sr=pt.length-1,S={toStringTag:_i};function Re(r){var e,a,t,i=r.length-1,n="",o=r[0];if(i>0){for(n+=o,e=1;e<i;e++)(a=7-(t=r[e]+"").length)&&(n+=Ia(a)),n+=t;(a=7-(t=(o=r[e])+"").length)&&(n+=Ia(a))}else if(o===0)return"0";for(;o%10==0;)o/=10;return n+o}function ze(r,e,a){if(r!==~~r||r<e||r>a)throw Error(Ca+r)}function Ya(r,e,a,t){var i,n,o,s;for(n=r[0];n>=10;n/=10)--e;return--e<0?(e+=7,i=0):(i=Math.ceil((e+1)/7),e%=7),n=ke(10,7-e),s=r[i]%n|0,t==null?e<3?(e==0?s=s/100|0:e==1&&(s=s/10|0),o=a<4&&s==99999||a>3&&s==49999||s==5e4||s==0):o=(a<4&&s+1==n||a>3&&s+1==n/2)&&(r[i+1]/n/100|0)==ke(10,e-2)-1||(s==n/2||s==0)&&!(r[i+1]/n/100|0):e<4?(e==0?s=s/1e3|0:e==1?s=s/100|0:e==2&&(s=s/10|0),o=(t||a<4)&&s==9999||!t&&a>3&&s==4999):o=((t||a<4)&&s+1==n||!t&&a>3&&s+1==n/2)&&(r[i+1]/n/1e3|0)==ke(10,e-3)-1,o}function Et(r,e,a){for(var t,i,n=[0],o=0,s=r.length;o<s;){for(i=n.length;i--;)n[i]*=e;for(n[0]+=nr.indexOf(r.charAt(o++)),t=0;t<n.length;t++)n[t]>a-1&&(n[t+1]===void 0&&(n[t+1]=0),n[t+1]+=n[t]/a|0,n[t]%=a)}return n.reverse()}S.absoluteValue=S.abs=function(){var r=new this.constructor(this);return r.s<0&&(r.s=1),H(r)},S.ceil=function(){return H(new this.constructor(this),this.e+1,2)},S.clampedTo=S.clamp=function(r,e){var a=this,t=a.constructor;if(r=new t(r),e=new t(e),!r.s||!e.s)return new t(NaN);if(r.gt(e))throw Error(Ca+e);return a.cmp(r)<0?r:a.cmp(e)>0?e:new t(a)},S.comparedTo=S.cmp=function(r){var e,a,t,i,n=this,o=n.d,s=(r=new n.constructor(r)).d,c=n.s,u=r.s;if(!o||!s)return c&&u?c!==u?c:o===s?0:!o^c<0?1:-1:NaN;if(!o[0]||!s[0])return o[0]?c:s[0]?-u:0;if(c!==u)return c;if(n.e!==r.e)return n.e>r.e^c<0?1:-1;for(e=0,a=(t=o.length)<(i=s.length)?t:i;e<a;++e)if(o[e]!==s[e])return o[e]>s[e]^c<0?1:-1;return t===i?0:t>i^c<0?1:-1},S.cosine=S.cos=function(){var r,e,a=this,t=a.constructor;return a.d?a.d[0]?(r=t.precision,e=t.rounding,t.precision=r+Math.max(a.e,a.sd())+7,t.rounding=1,a=function(i,n){var o,s,c;if(n.isZero())return n;s=n.d.length,s<32?c=(1/Dt(4,o=Math.ceil(s/3))).toString():(o=16,c="2.3283064365386962890625e-10"),i.precision+=o,n=La(i,1,n.times(c),new i(1));for(var u=o;u--;){var A=n.times(n);n=A.times(A).minus(A).times(8).plus(1)}return i.precision-=o,n}(t,Vi(t,a)),t.precision=r,t.rounding=e,H(ha==2||ha==3?a.neg():a,r,e,!0)):new t(1):new t(NaN)},S.cubeRoot=S.cbrt=function(){var r,e,a,t,i,n,o,s,c,u,A=this,d=A.constructor;if(!A.isFinite()||A.isZero())return new d(A);for(Y=!1,(n=A.s*ke(A.s*A,1/3))&&Math.abs(n)!=1/0?t=new d(n.toString()):(a=Re(A.d),(n=((r=A.e)-a.length+1)%3)&&(a+=n==1||n==-2?"0":"00"),n=ke(a,1/3),r=Se((r+1)/3)-(r%3==(r<0?-1:2)),(t=new d(a=n==1/0?"5e"+r:(a=n.toExponential()).slice(0,a.indexOf("e")+1)+r)).s=A.s),o=(r=d.precision)+3;;)if(u=(c=(s=t).times(s).times(s)).plus(A),t=ce(u.plus(A).times(s),u.plus(c),o+2,1),Re(s.d).slice(0,o)===(a=Re(t.d)).slice(0,o)){if((a=a.slice(o-3,o+1))!="9999"&&(i||a!="4999")){+a&&(+a.slice(1)||a.charAt(0)!="5")||(H(t,r+1,1),e=!t.times(t).times(t).eq(A));break}if(!i&&(H(s,r+1,0),s.times(s).times(s).eq(A))){t=s;break}o+=4,i=1}return Y=!0,H(t,r,d.rounding,e)},S.decimalPlaces=S.dp=function(){var r,e=this.d,a=NaN;if(e){if(a=7*((r=e.length-1)-Se(this.e/7)),r=e[r])for(;r%10==0;r/=10)a--;a<0&&(a=0)}return a},S.dividedBy=S.div=function(r){return ce(this,new this.constructor(r))},S.dividedToIntegerBy=S.divToInt=function(r){var e=this.constructor;return H(ce(this,new e(r),0,1,1),e.precision,e.rounding)},S.equals=S.eq=function(r){return this.cmp(r)===0},S.floor=function(){return H(new this.constructor(this),this.e+1,3)},S.greaterThan=S.gt=function(r){return this.cmp(r)>0},S.greaterThanOrEqualTo=S.gte=function(r){var e=this.cmp(r);return e==1||e===0},S.hyperbolicCosine=S.cosh=function(){var r,e,a,t,i,n=this,o=n.constructor,s=new o(1);if(!n.isFinite())return new o(n.s?1/0:NaN);if(n.isZero())return s;a=o.precision,t=o.rounding,o.precision=a+Math.max(n.e,n.sd())+4,o.rounding=1,(i=n.d.length)<32?e=(1/Dt(4,r=Math.ceil(i/3))).toString():(r=16,e="2.3283064365386962890625e-10"),n=La(o,1,n.times(e),new o(1),!0);for(var c,u=r,A=new o(8);u--;)c=n.times(n),n=s.minus(c.times(A.minus(c.times(A))));return H(n,o.precision=a,o.rounding=t,!0)},S.hyperbolicSine=S.sinh=function(){var r,e,a,t,i=this,n=i.constructor;if(!i.isFinite()||i.isZero())return new n(i);if(e=n.precision,a=n.rounding,n.precision=e+Math.max(i.e,i.sd())+4,n.rounding=1,(t=i.d.length)<3)i=La(n,2,i,i,!0);else{r=(r=1.4*Math.sqrt(t))>16?16:0|r,i=La(n,2,i=i.times(1/Dt(5,r)),i,!0);for(var o,s=new n(5),c=new n(16),u=new n(20);r--;)o=i.times(i),i=i.times(s.plus(o.times(c.times(o).plus(u))))}return n.precision=e,n.rounding=a,H(i,e,a,!0)},S.hyperbolicTangent=S.tanh=function(){var r,e,a=this,t=a.constructor;return a.isFinite()?a.isZero()?new t(a):(r=t.precision,e=t.rounding,t.precision=r+7,t.rounding=1,ce(a.sinh(),a.cosh(),t.precision=r,t.rounding=e)):new t(a.s)},S.inverseCosine=S.acos=function(){var r=this,e=r.constructor,a=r.abs().cmp(1),t=e.precision,i=e.rounding;return a!==-1?a===0?r.isNeg()?oa(e,t,i):new e(0):new e(NaN):r.isZero()?oa(e,t+4,i).times(.5):(e.precision=t+6,e.rounding=1,r=new e(1).minus(r).div(r.plus(1)).sqrt().atan(),e.precision=t,e.rounding=i,r.times(2))},S.inverseHyperbolicCosine=S.acosh=function(){var r,e,a=this,t=a.constructor;return a.lte(1)?new t(a.eq(1)?0:NaN):a.isFinite()?(r=t.precision,e=t.rounding,t.precision=r+Math.max(Math.abs(a.e),a.sd())+4,t.rounding=1,Y=!1,a=a.times(a).minus(1).sqrt().plus(a),Y=!0,t.precision=r,t.rounding=e,a.ln()):new t(a)},S.inverseHyperbolicSine=S.asinh=function(){var r,e,a=this,t=a.constructor;return!a.isFinite()||a.isZero()?new t(a):(r=t.precision,e=t.rounding,t.precision=r+2*Math.max(Math.abs(a.e),a.sd())+6,t.rounding=1,Y=!1,a=a.times(a).plus(1).sqrt().plus(a),Y=!0,t.precision=r,t.rounding=e,a.ln())},S.inverseHyperbolicTangent=S.atanh=function(){var r,e,a,t,i=this,n=i.constructor;return i.isFinite()?i.e>=0?new n(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(r=n.precision,e=n.rounding,t=i.sd(),Math.max(t,r)<2*-i.e-1?H(new n(i),r,e,!0):(n.precision=a=t-i.e,i=ce(i.plus(1),new n(1).minus(i),a+r,1),n.precision=r+4,n.rounding=1,i=i.ln(),n.precision=r,n.rounding=e,i.times(.5))):new n(NaN)},S.inverseSine=S.asin=function(){var r,e,a,t,i=this,n=i.constructor;return i.isZero()?new n(i):(e=i.abs().cmp(1),a=n.precision,t=n.rounding,e!==-1?e===0?((r=oa(n,a+4,t).times(.5)).s=i.s,r):new n(NaN):(n.precision=a+6,n.rounding=1,i=i.div(new n(1).minus(i.times(i)).sqrt().plus(1)).atan(),n.precision=a,n.rounding=t,i.times(2)))},S.inverseTangent=S.atan=function(){var r,e,a,t,i,n,o,s,c,u=this,A=u.constructor,d=A.precision,b=A.rounding;if(u.isFinite()){if(u.isZero())return new A(u);if(u.abs().eq(1)&&d+4<=sr)return(o=oa(A,d+4,b).times(.25)).s=u.s,o}else{if(!u.s)return new A(NaN);if(d+4<=sr)return(o=oa(A,d+4,b).times(.5)).s=u.s,o}for(A.precision=s=d+10,A.rounding=1,r=a=Math.min(28,s/7+2|0);r;--r)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(Y=!1,e=Math.ceil(s/7),t=1,c=u.times(u),o=new A(u),i=u;r!==-1;)if(i=i.times(c),n=o.minus(i.div(t+=2)),i=i.times(c),(o=n.plus(i.div(t+=2))).d[e]!==void 0)for(r=e;o.d[r]===n.d[r]&&r--;);return a&&(o=o.times(2<<a-1)),Y=!0,H(o,A.precision=d,A.rounding=b,!0)},S.isFinite=function(){return!!this.d},S.isInteger=S.isInt=function(){return!!this.d&&Se(this.e/7)>this.d.length-2},S.isNaN=function(){return!this.s},S.isNegative=S.isNeg=function(){return this.s<0},S.isPositive=S.isPos=function(){return this.s>0},S.isZero=function(){return!!this.d&&this.d[0]===0},S.lessThan=S.lt=function(r){return this.cmp(r)<0},S.lessThanOrEqualTo=S.lte=function(r){return this.cmp(r)<1},S.logarithm=S.log=function(r){var e,a,t,i,n,o,s,c,u=this,A=u.constructor,d=A.precision,b=A.rounding;if(r==null)r=new A(10),e=!0;else{if(a=(r=new A(r)).d,r.s<0||!a||!a[0]||r.eq(1))return new A(NaN);e=r.eq(10)}if(a=u.d,u.s<0||!a||!a[0]||u.eq(1))return new A(a&&!a[0]?-1/0:u.s!=1?NaN:a?0:1/0);if(e)if(a.length>1)n=!0;else{for(i=a[0];i%10==0;)i/=10;n=i!==1}if(Y=!1,o=Ba(u,s=d+5),t=e?It(A,s+10):Ba(r,s),Ya((c=ce(o,t,s,1)).d,i=d,b))do if(o=Ba(u,s+=10),t=e?It(A,s+10):Ba(r,s),c=ce(o,t,s,1),!n){+Re(c.d).slice(i+1,i+15)+1==1e14&&(c=H(c,d+1,0));break}while(Ya(c.d,i+=10,b));return Y=!0,H(c,d,b)},S.minus=S.sub=function(r){var e,a,t,i,n,o,s,c,u,A,d,b,h=this,l=h.constructor;if(r=new l(r),!h.d||!r.d)return h.s&&r.s?h.d?r.s=-r.s:r=new l(r.d||h.s!==r.s?h:NaN):r=new l(NaN),r;if(h.s!=r.s)return r.s=-r.s,h.plus(r);if(u=h.d,b=r.d,s=l.precision,c=l.rounding,!u[0]||!b[0]){if(b[0])r.s=-r.s;else{if(!u[0])return new l(c===3?-0:0);r=new l(h)}return Y?H(r,s,c):r}if(a=Se(r.e/7),A=Se(h.e/7),u=u.slice(),n=A-a){for((d=n<0)?(e=u,n=-n,o=b.length):(e=b,a=A,o=u.length),n>(t=Math.max(Math.ceil(s/7),o)+2)&&(n=t,e.length=1),e.reverse(),t=n;t--;)e.push(0);e.reverse()}else{for((d=(t=u.length)<(o=b.length))&&(o=t),t=0;t<o;t++)if(u[t]!=b[t]){d=u[t]<b[t];break}n=0}for(d&&(e=u,u=b,b=e,r.s=-r.s),o=u.length,t=b.length-o;t>0;--t)u[o++]=0;for(t=b.length;t>n;){if(u[--t]<b[t]){for(i=t;i&&u[--i]===0;)u[i]=$e-1;--u[i],u[t]+=$e}u[t]-=b[t]}for(;u[--o]===0;)u.pop();for(;u[0]===0;u.shift())--a;return u[0]?(r.d=u,r.e=Ct(u,a),Y?H(r,s,c):r):new l(c===3?-0:0)},S.modulo=S.mod=function(r){var e,a=this,t=a.constructor;return r=new t(r),!a.d||!r.s||r.d&&!r.d[0]?new t(NaN):!r.d||a.d&&!a.d[0]?H(new t(a),t.precision,t.rounding):(Y=!1,t.modulo==9?(e=ce(a,r.abs(),0,3,1)).s*=r.s:e=ce(a,r,0,t.modulo,1),e=e.times(r),Y=!0,a.minus(e))},S.naturalExponential=S.exp=function(){return Ar(this)},S.naturalLogarithm=S.ln=function(){return Ba(this)},S.negated=S.neg=function(){var r=new this.constructor(this);return r.s=-r.s,H(r)},S.plus=S.add=function(r){var e,a,t,i,n,o,s,c,u,A,d=this,b=d.constructor;if(r=new b(r),!d.d||!r.d)return d.s&&r.s?d.d||(r=new b(r.d||d.s===r.s?d:NaN)):r=new b(NaN),r;if(d.s!=r.s)return r.s=-r.s,d.minus(r);if(u=d.d,A=r.d,s=b.precision,c=b.rounding,!u[0]||!A[0])return A[0]||(r=new b(d)),Y?H(r,s,c):r;if(n=Se(d.e/7),t=Se(r.e/7),u=u.slice(),i=n-t){for(i<0?(a=u,i=-i,o=A.length):(a=A,t=n,o=u.length),i>(o=(n=Math.ceil(s/7))>o?n+1:o+1)&&(i=o,a.length=1),a.reverse();i--;)a.push(0);a.reverse()}for((o=u.length)-(i=A.length)<0&&(i=o,a=A,A=u,u=a),e=0;i;)e=(u[--i]=u[i]+A[i]+e)/$e|0,u[i]%=$e;for(e&&(u.unshift(e),++t),o=u.length;u[--o]==0;)u.pop();return r.d=u,r.e=Ct(u,t),Y?H(r,s,c):r},S.precision=S.sd=function(r){var e,a=this;if(r!==void 0&&r!==!!r&&r!==1&&r!==0)throw Error(Ca+r);return a.d?(e=Pi(a.d),r&&a.e+1>e&&(e=a.e+1)):e=NaN,e},S.round=function(){var r=this,e=r.constructor;return H(new e(r),r.e+1,e.rounding)},S.sine=S.sin=function(){var r,e,a=this,t=a.constructor;return a.isFinite()?a.isZero()?new t(a):(r=t.precision,e=t.rounding,t.precision=r+Math.max(a.e,a.sd())+7,t.rounding=1,a=function(i,n){var o,s=n.d.length;if(s<3)return n.isZero()?n:La(i,2,n,n);o=(o=1.4*Math.sqrt(s))>16?16:0|o,n=n.times(1/Dt(5,o)),n=La(i,2,n,n);for(var c,u=new i(5),A=new i(16),d=new i(20);o--;)c=n.times(n),n=n.times(u.plus(c.times(A.times(c).minus(d))));return n}(t,Vi(t,a)),t.precision=r,t.rounding=e,H(ha>2?a.neg():a,r,e,!0)):new t(NaN)},S.squareRoot=S.sqrt=function(){var r,e,a,t,i,n,o=this,s=o.d,c=o.e,u=o.s,A=o.constructor;if(u!==1||!s||!s[0])return new A(!u||u<0&&(!s||s[0])?NaN:s?o:1/0);for(Y=!1,(u=Math.sqrt(+o))==0||u==1/0?(((e=Re(s)).length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=Se((c+1)/2)-(c<0||c%2),t=new A(e=u==1/0?"5e"+c:(e=u.toExponential()).slice(0,e.indexOf("e")+1)+c)):t=new A(u.toString()),a=(c=A.precision)+3;;)if(t=(n=t).plus(ce(o,n,a+2,1)).times(.5),Re(n.d).slice(0,a)===(e=Re(t.d)).slice(0,a)){if((e=e.slice(a-3,a+1))!="9999"&&(i||e!="4999")){+e&&(+e.slice(1)||e.charAt(0)!="5")||(H(t,c+1,1),r=!t.times(t).eq(o));break}if(!i&&(H(n,c+1,0),n.times(n).eq(o))){t=n;break}a+=4,i=1}return Y=!0,H(t,c,A.rounding,r)},S.tangent=S.tan=function(){var r,e,a=this,t=a.constructor;return a.isFinite()?a.isZero()?new t(a):(r=t.precision,e=t.rounding,t.precision=r+10,t.rounding=1,(a=a.sin()).s=1,a=ce(a,new t(1).minus(a.times(a)).sqrt(),r+10,0),t.precision=r,t.rounding=e,H(ha==2||ha==4?a.neg():a,r,e,!0)):new t(NaN)},S.times=S.mul=function(r){var e,a,t,i,n,o,s,c,u,A=this,d=A.constructor,b=A.d,h=(r=new d(r)).d;if(r.s*=A.s,!(b&&b[0]&&h&&h[0]))return new d(!r.s||b&&!b[0]&&!h||h&&!h[0]&&!b?NaN:b&&h?0*r.s:r.s/0);for(a=Se(A.e/7)+Se(r.e/7),(c=b.length)<(u=h.length)&&(n=b,b=h,h=n,o=c,c=u,u=o),n=[],t=o=c+u;t--;)n.push(0);for(t=u;--t>=0;){for(e=0,i=c+t;i>t;)s=n[i]+h[t]*b[i-t-1]+e,n[i--]=s%$e|0,e=s/$e|0;n[i]=(n[i]+e)%$e|0}for(;!n[--o];)n.pop();return e?++a:n.shift(),r.d=n,r.e=Ct(n,a),Y?H(r,d.precision,d.rounding):r},S.toBinary=function(r,e){return cr(this,2,r,e)},S.toDecimalPlaces=S.toDP=function(r,e){var a=this,t=a.constructor;return a=new t(a),r===void 0?a:(ze(r,0,Ea),e===void 0?e=t.rounding:ze(e,0,8),H(a,r+a.e+1,e))},S.toExponential=function(r,e){var a,t=this,i=t.constructor;return r===void 0?a=na(t,!0):(ze(r,0,Ea),e===void 0?e=i.rounding:ze(e,0,8),a=na(t=H(new i(t),r+1,e),!0,r+1)),t.isNeg()&&!t.isZero()?"-"+a:a},S.toFixed=function(r,e){var a,t,i=this,n=i.constructor;return r===void 0?a=na(i):(ze(r,0,Ea),e===void 0?e=n.rounding:ze(e,0,8),a=na(t=H(new n(i),r+i.e+1,e),!1,r+t.e+1)),i.isNeg()&&!i.isZero()?"-"+a:a},S.toFraction=function(r){var e,a,t,i,n,o,s,c,u,A,d,b,h=this,l=h.d,g=h.constructor;if(!l)return new g(h);if(u=a=new g(1),t=c=new g(0),o=(n=(e=new g(t)).e=Pi(l)-h.e-1)%7,e.d[0]=ke(10,o<0?7+o:o),r==null)r=n>0?e:u;else{if(!(s=new g(r)).isInt()||s.lt(u))throw Error(Ca+s);r=s.gt(e)?n>0?e:u:s}for(Y=!1,s=new g(Re(l)),A=g.precision,g.precision=n=7*l.length*2;d=ce(s,e,0,1,1),(i=a.plus(d.times(t))).cmp(r)!=1;)a=t,t=i,i=u,u=c.plus(d.times(i)),c=i,i=e,e=s.minus(d.times(i)),s=i;return i=ce(r.minus(a),t,0,1,1),c=c.plus(i.times(u)),a=a.plus(i.times(t)),c.s=u.s=h.s,b=ce(u,t,n,1).minus(h).abs().cmp(ce(c,a,n,1).minus(h).abs())<1?[u,t]:[c,a],g.precision=A,Y=!0,b},S.toHexadecimal=S.toHex=function(r,e){return cr(this,16,r,e)},S.toNearest=function(r,e){var a=this,t=a.constructor;if(a=new t(a),r==null){if(!a.d)return a;r=new t(1),e=t.rounding}else{if(r=new t(r),e===void 0?e=t.rounding:ze(e,0,8),!a.d)return r.s?a:r;if(!r.d)return r.s&&(r.s=a.s),r}return r.d[0]?(Y=!1,a=ce(a,r,0,e,1).times(r),Y=!0,H(a)):(r.s=a.s,a=r),a},S.toNumber=function(){return+this},S.toOctal=function(r,e){return cr(this,8,r,e)},S.toPower=S.pow=function(r){var e,a,t,i,n,o,s=this,c=s.constructor,u=+(r=new c(r));if(!(s.d&&r.d&&s.d[0]&&r.d[0]))return new c(ke(+s,u));if((s=new c(s)).eq(1))return s;if(t=c.precision,n=c.rounding,r.eq(1))return H(s,t,n);if((e=Se(r.e/7))>=r.d.length-1&&(a=u<0?-u:u)<=9007199254740991)return i=qi(c,s,a,t),r.s<0?new c(1).div(i):H(i,t,n);if((o=s.s)<0){if(e<r.d.length-1)return new c(NaN);if(1&r.d[e]||(o=1),s.e==0&&s.d[0]==1&&s.d.length==1)return s.s=o,s}return(e=(a=ke(+s,u))!=0&&isFinite(a)?new c(a+"").e:Se(u*(Math.log("0."+Re(s.d))/Math.LN10+s.e+1)))>c.maxE+1||e<c.minE-1?new c(e>0?o/0:0):(Y=!1,c.rounding=s.s=1,a=Math.min(12,(e+"").length),(i=Ar(r.times(Ba(s,t+a)),t)).d&&Ya((i=H(i,t+5,1)).d,t,n)&&(e=t+10,+Re((i=H(Ar(r.times(Ba(s,e+a)),e),e+5,1)).d).slice(t+1,t+15)+1==1e14&&(i=H(i,t+1,0))),i.s=o,Y=!0,c.rounding=n,H(i,t,n))},S.toPrecision=function(r,e){var a,t=this,i=t.constructor;return r===void 0?a=na(t,t.e<=i.toExpNeg||t.e>=i.toExpPos):(ze(r,1,Ea),e===void 0?e=i.rounding:ze(e,0,8),a=na(t=H(new i(t),r,e),r<=t.e||t.e<=i.toExpNeg,r)),t.isNeg()&&!t.isZero()?"-"+a:a},S.toSignificantDigits=S.toSD=function(r,e){var a=this.constructor;return r===void 0?(r=a.precision,e=a.rounding):(ze(r,1,Ea),e===void 0?e=a.rounding:ze(e,0,8)),H(new a(this),r,e)},S.toString=function(){var r=this,e=r.constructor,a=na(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()&&!r.isZero()?"-"+a:a},S.truncated=S.trunc=function(){return H(new this.constructor(this),this.e+1,1)},S.valueOf=S.toJSON=function(){var r=this,e=r.constructor,a=na(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()?"-"+a:a};var ce=function(){function r(t,i,n){var o,s=0,c=t.length;for(t=t.slice();c--;)o=t[c]*i+s,t[c]=o%n|0,s=o/n|0;return s&&t.unshift(s),t}function e(t,i,n,o){var s,c;if(n!=o)c=n>o?1:-1;else for(s=c=0;s<n;s++)if(t[s]!=i[s]){c=t[s]>i[s]?1:-1;break}return c}function a(t,i,n,o){for(var s=0;n--;)t[n]-=s,s=t[n]<i[n]?1:0,t[n]=s*o+t[n]-i[n];for(;!t[0]&&t.length>1;)t.shift()}return function(t,i,n,o,s,c){var u,A,d,b,h,l,g,m,E,p,C,I,x,y,w,D,F,j,M,_,q=t.constructor,V=t.s==i.s?1:-1,J=t.d,O=i.d;if(!(J&&J[0]&&O&&O[0]))return new q(t.s&&i.s&&(J?!O||J[0]!=O[0]:O)?J&&J[0]==0||!O?0*V:V/0:NaN);for(c?(h=1,A=t.e-i.e):(c=$e,h=7,A=Se(t.e/h)-Se(i.e/h)),M=O.length,F=J.length,p=(E=new q(V)).d=[],d=0;O[d]==(J[d]||0);d++);if(O[d]>(J[d]||0)&&A--,n==null?(y=n=q.precision,o=q.rounding):y=s?n+(t.e-i.e)+1:n,y<0)p.push(1),l=!0;else{if(y=y/h+2|0,d=0,M==1){for(b=0,O=O[0],y++;(d<F||b)&&y--;d++)w=b*c+(J[d]||0),p[d]=w/O|0,b=w%O|0;l=b||d<F}else{for((b=c/(O[0]+1)|0)>1&&(O=r(O,b,c),J=r(J,b,c),M=O.length,F=J.length),D=M,I=(C=J.slice(0,M)).length;I<M;)C[I++]=0;(_=O.slice()).unshift(0),j=O[0],O[1]>=c/2&&++j;do b=0,(u=e(O,C,M,I))<0?(x=C[0],M!=I&&(x=x*c+(C[1]||0)),(b=x/j|0)>1?(b>=c&&(b=c-1),(u=e(g=r(O,b,c),C,m=g.length,I=C.length))==1&&(b--,a(g,M<m?_:O,m,c))):(b==0&&(u=b=1),g=O.slice()),(m=g.length)<I&&g.unshift(0),a(C,g,I,c),u==-1&&(u=e(O,C,M,I=C.length))<1&&(b++,a(C,M<I?_:O,I,c)),I=C.length):u===0&&(b++,C=[0]),p[d++]=b,u&&C[0]?C[I++]=J[D]||0:(C=[J[D]],I=1);while((D++<F||C[0]!==void 0)&&y--);l=C[0]!==void 0}p[0]||p.shift()}if(h==1)E.e=A,Ui=l;else{for(d=1,b=p[0];b>=10;b/=10)d++;E.e=d+A*h-1,H(E,s?n+E.e+1:n,o,l)}return E}}();function H(r,e,a,t){var i,n,o,s,c,u,A,d,b,h=r.constructor;e:if(e!=null){if(!(d=r.d))return r;for(i=1,s=d[0];s>=10;s/=10)i++;if((n=e-i)<0)n+=7,o=e,c=(A=d[b=0])/ke(10,i-o-1)%10|0;else if((b=Math.ceil((n+1)/7))>=(s=d.length)){if(!t)break e;for(;s++<=b;)d.push(0);A=c=0,i=1,o=(n%=7)-7+1}else{for(A=s=d[b],i=1;s>=10;s/=10)i++;c=(o=(n%=7)-7+i)<0?0:A/ke(10,i-o-1)%10|0}if(t=t||e<0||d[b+1]!==void 0||(o<0?A:A%ke(10,i-o-1)),u=a<4?(c||t)&&(a==0||a==(r.s<0?3:2)):c>5||c==5&&(a==4||t||a==6&&(n>0?o>0?A/ke(10,i-o):0:d[b-1])%10&1||a==(r.s<0?8:7)),e<1||!d[0])return d.length=0,u?(e-=r.e+1,d[0]=ke(10,(7-e%7)%7),r.e=-e||0):d[0]=r.e=0,r;if(n==0?(d.length=b,s=1,b--):(d.length=b+1,s=ke(10,7-n),d[b]=o>0?(A/ke(10,i-o)%ke(10,o)|0)*s:0),u)for(;;){if(b==0){for(n=1,o=d[0];o>=10;o/=10)n++;for(o=d[0]+=s,s=1;o>=10;o/=10)s++;n!=s&&(r.e++,d[0]==$e&&(d[0]=1));break}if(d[b]+=s,d[b]!=$e)break;d[b--]=0,s=1}for(n=d.length;d[--n]===0;)d.pop()}return Y&&(r.e>h.maxE?(r.d=null,r.e=NaN):r.e<h.minE&&(r.e=0,r.d=[0])),r}function na(r,e,a){if(!r.isFinite())return Ji(r);var t,i=r.e,n=Re(r.d),o=n.length;return e?(a&&(t=a-o)>0?n=n.charAt(0)+"."+n.slice(1)+Ia(t):o>1&&(n=n.charAt(0)+"."+n.slice(1)),n=n+(r.e<0?"e":"e+")+r.e):i<0?(n="0."+Ia(-i-1)+n,a&&(t=a-o)>0&&(n+=Ia(t))):i>=o?(n+=Ia(i+1-o),a&&(t=a-i-1)>0&&(n=n+"."+Ia(t))):((t=i+1)<o&&(n=n.slice(0,t)+"."+n.slice(t)),a&&(t=a-o)>0&&(i+1===o&&(n+="."),n+=Ia(t))),n}function Ct(r,e){var a=r[0];for(e*=7;a>=10;a/=10)e++;return e}function It(r,e,a){if(e>Js)throw Y=!0,a&&(r.precision=a),Error(Li);return H(new r(ft),e,1,!0)}function oa(r,e,a){if(e>sr)throw Error(Li);return H(new r(pt),e,a,!0)}function Pi(r){var e=r.length-1,a=7*e+1;if(e=r[e]){for(;e%10==0;e/=10)a--;for(e=r[0];e>=10;e/=10)a++}return a}function Ia(r){for(var e="";r--;)e+="0";return e}function qi(r,e,a,t){var i,n=new r(1),o=Math.ceil(t/7+4);for(Y=!1;;){if(a%2&&Hi((n=n.times(e)).d,o)&&(i=!0),(a=Se(a/2))===0){a=n.d.length-1,i&&n.d[a]===0&&++n.d[a];break}Hi((e=e.times(e)).d,o)}return Y=!0,n}function Ki(r){return 1&r.d[r.d.length-1]}function Oi(r,e,a){for(var t,i,n=new r(e[0]),o=0;++o<e.length;){if(!(i=new r(e[o])).s){n=i;break}((t=n.cmp(i))===a||t===0&&n.s===a)&&(n=i)}return n}function Ar(r,e){var a,t,i,n,o,s,c,u=0,A=0,d=0,b=r.constructor,h=b.rounding,l=b.precision;if(!r.d||!r.d[0]||r.e>17)return new b(r.d?r.d[0]?r.s<0?0:1/0:1:r.s?r.s<0?0:r:NaN);for(e==null?(Y=!1,c=l):c=e,s=new b(.03125);r.e>-2;)r=r.times(s),d+=5;for(c+=t=Math.log(ke(2,d))/Math.LN10*2+5|0,a=n=o=new b(1),b.precision=c;;){if(n=H(n.times(r),c,1),a=a.times(++A),Re((s=o.plus(ce(n,a,c,1))).d).slice(0,c)===Re(o.d).slice(0,c)){for(i=d;i--;)o=H(o.times(o),c,1);if(e!=null)return b.precision=l,o;if(!(u<3&&Ya(o.d,c-t,h,u)))return H(o,b.precision=l,h,Y=!0);b.precision=c+=10,a=n=s=new b(1),A=0,u++}o=s}}function Ba(r,e){var a,t,i,n,o,s,c,u,A,d,b,h=1,l=r,g=l.d,m=l.constructor,E=m.rounding,p=m.precision;if(l.s<0||!g||!g[0]||!l.e&&g[0]==1&&g.length==1)return new m(g&&!g[0]?-1/0:l.s!=1?NaN:g?0:l);if(e==null?(Y=!1,A=p):A=e,m.precision=A+=10,t=(a=Re(g)).charAt(0),!(Math.abs(n=l.e)<15e14))return u=It(m,A+2,p).times(n+""),l=Ba(new m(t+"."+a.slice(1)),A-10).plus(u),m.precision=p,e==null?H(l,p,E,Y=!0):l;for(;t<7&&t!=1||t==1&&a.charAt(1)>3;)t=(a=Re((l=l.times(r)).d)).charAt(0),h++;for(n=l.e,t>1?(l=new m("0."+a),n++):l=new m(t+"."+a.slice(1)),d=l,c=o=l=ce(l.minus(1),l.plus(1),A,1),b=H(l.times(l),A,1),i=3;;){if(o=H(o.times(b),A,1),Re((u=c.plus(ce(o,new m(i),A,1))).d).slice(0,A)===Re(c.d).slice(0,A)){if(c=c.times(2),n!==0&&(c=c.plus(It(m,A+2,p).times(n+""))),c=ce(c,new m(h),A,1),e!=null)return m.precision=p,c;if(!Ya(c.d,A-10,E,s))return H(c,m.precision=p,E,Y=!0);m.precision=A+=10,u=o=l=ce(d.minus(1),d.plus(1),A,1),b=H(l.times(l),A,1),i=s=1}c=u,i+=2}}function Ji(r){return String(r.s*r.s/0)}function Bt(r,e){var a,t,i;for((a=e.indexOf("."))>-1&&(e=e.replace(".","")),(t=e.search(/e/i))>0?(a<0&&(a=t),a+=+e.slice(t+1),e=e.substring(0,t)):a<0&&(a=e.length),t=0;e.charCodeAt(t)===48;t++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(t,i)){if(i-=t,r.e=a=a-t-1,r.d=[],t=(a+1)%7,a<0&&(t+=7),t<i){for(t&&r.d.push(+e.slice(0,t)),i-=7;t<i;)r.d.push(+e.slice(t,t+=7));t=7-(e=e.slice(t)).length}else t-=i;for(;t--;)e+="0";r.d.push(+e),Y&&(r.e>r.constructor.maxE?(r.d=null,r.e=NaN):r.e<r.constructor.minE&&(r.e=0,r.d=[0]))}else r.e=0,r.d=[0];return r}function Vs(r,e){var a,t,i,n,o,s,c,u,A;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),zi.test(e))return Bt(r,e)}else if(e==="Infinity"||e==="NaN")return+e||(r.s=NaN),r.e=NaN,r.d=null,r;if(Ks.test(e))a=16,e=e.toLowerCase();else if(qs.test(e))a=2;else{if(!Os.test(e))throw Error(Ca+e);a=8}for((n=e.search(/p/i))>0?(c=+e.slice(n+1),e=e.substring(2,n)):e=e.slice(2),o=(n=e.indexOf("."))>=0,t=r.constructor,o&&(n=(s=(e=e.replace(".","")).length)-n,i=qi(t,new t(a),n,2*n)),n=A=(u=Et(e,a,$e)).length-1;u[n]===0;--n)u.pop();return n<0?new t(0*r.s):(r.e=Ct(u,A),r.d=u,Y=!1,o&&(r=ce(r,i,4*s)),c&&(r=r.times(Math.abs(c)<54?ke(2,c):Ga.pow(2,c))),Y=!0,r)}function La(r,e,a,t,i){var n,o,s,c,u=r.precision,A=Math.ceil(u/7);for(Y=!1,c=a.times(a),s=new r(t);;){if(o=ce(s.times(c),new r(e++*e++),u,1),s=i?t.plus(o):t.minus(o),t=ce(o.times(c),new r(e++*e++),u,1),(o=s.plus(t)).d[A]!==void 0){for(n=A;o.d[n]===s.d[n]&&n--;);if(n==-1)break}n=s,s=t,t=o,o=n}return Y=!0,o.d.length=A+1,o}function Dt(r,e){for(var a=r;--e;)a*=r;return a}function Vi(r,e){var a,t=e.s<0,i=oa(r,r.precision,1),n=i.times(.5);if((e=e.abs()).lte(n))return ha=t?4:1,e;if((a=e.divToInt(i)).isZero())ha=t?3:2;else{if((e=e.minus(a.times(i))).lte(n))return ha=Ki(a)?t?2:3:t?4:1,e;ha=Ki(a)?t?1:4:t?3:2}return e.minus(i).abs()}function cr(r,e,a,t){var i,n,o,s,c,u,A,d,b,h=r.constructor,l=a!==void 0;if(l?(ze(a,1,Ea),t===void 0?t=h.rounding:ze(t,0,8)):(a=h.precision,t=h.rounding),r.isFinite()){for(l?(i=2,e==16?a=4*a-3:e==8&&(a=3*a-2)):i=e,(o=(A=na(r)).indexOf("."))>=0&&(A=A.replace(".",""),(b=new h(1)).e=A.length-o,b.d=Et(na(b),10,i),b.e=b.d.length),n=c=(d=Et(A,10,i)).length;d[--c]==0;)d.pop();if(d[0]){if(o<0?n--:((r=new h(r)).d=d,r.e=n,d=(r=ce(r,b,a,t,0,i)).d,n=r.e,u=Ui),o=d[a],s=i/2,u=u||d[a+1]!==void 0,u=t<4?(o!==void 0||u)&&(t===0||t===(r.s<0?3:2)):o>s||o===s&&(t===4||u||t===6&&1&d[a-1]||t===(r.s<0?8:7)),d.length=a,u)for(;++d[--a]>i-1;)d[a]=0,a||(++n,d.unshift(1));for(c=d.length;!d[c-1];--c);for(o=0,A="";o<c;o++)A+=nr.charAt(d[o]);if(l){if(c>1)if(e==16||e==8){for(o=e==16?4:3,--c;c%o;c++)A+="0";for(c=(d=Et(A,i,e)).length;!d[c-1];--c);for(o=1,A="1.";o<c;o++)A+=nr.charAt(d[o])}else A=A.charAt(0)+"."+A.slice(1);A=A+(n<0?"p":"p+")+n}else if(n<0){for(;++n;)A="0"+A;A="0."+A}else if(++n>c)for(n-=c;n--;)A+="0";else n<c&&(A=A.slice(0,n)+"."+A.slice(n))}else A=l?"0p+0":"0";A=(e==16?"0x":e==2?"0b":e==8?"0o":"")+A}else A=Ji(r);return r.s<0?"-"+A:A}function Hi(r,e){if(r.length>e)return r.length=e,!0}function Hs(r){return new this(r).abs()}function Ws(r){return new this(r).acos()}function Xs(r){return new this(r).acosh()}function Ys(r,e){return new this(r).plus(e)}function Zs(r){return new this(r).asin()}function $s(r){return new this(r).asinh()}function eA(r){return new this(r).atan()}function aA(r){return new this(r).atanh()}function tA(r,e){r=new this(r),e=new this(e);var a,t=this.precision,i=this.rounding,n=t+4;return r.s&&e.s?r.d||e.d?!e.d||r.isZero()?(a=e.s<0?oa(this,t,i):new this(0)).s=r.s:!r.d||e.isZero()?(a=oa(this,n,1).times(.5)).s=r.s:e.s<0?(this.precision=n,this.rounding=1,a=this.atan(ce(r,e,n,1)),e=oa(this,n,1),this.precision=t,this.rounding=i,a=r.s<0?a.minus(e):a.plus(e)):a=this.atan(ce(r,e,n,1)):(a=oa(this,n,1).times(e.s>0?.25:.75)).s=r.s:a=new this(NaN),a}function rA(r){return new this(r).cbrt()}function iA(r){return H(r=new this(r),r.e+1,2)}function nA(r,e,a){return new this(r).clamp(e,a)}function oA(r){if(!r||typeof r!="object")throw Error(mt+"Object expected");var e,a,t,i=r.defaults===!0,n=["precision",1,Ea,"rounding",0,8,"toExpNeg",-Ua,0,"toExpPos",0,Ua,"maxE",0,Ua,"minE",-Ua,0,"modulo",0,9];for(e=0;e<n.length;e+=3)if(a=n[e],i&&(this[a]=or[a]),(t=r[a])!==void 0){if(!(Se(t)===t&&t>=n[e+1]&&t<=n[e+2]))throw Error(Ca+a+": "+t);this[a]=t}if(a="crypto",i&&(this[a]=or[a]),(t=r[a])!==void 0){if(t!==!0&&t!==!1&&t!==0&&t!==1)throw Error(Ca+a+": "+t);if(t){if(typeof crypto>"u"||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(Gi);this[a]=!0}else this[a]=!1}return this}function sA(r){return new this(r).cos()}function AA(r){return new this(r).cosh()}function cA(r,e){return new this(r).div(e)}function uA(r){return new this(r).exp()}function dA(r){return H(r=new this(r),r.e+1,3)}function hA(){var r,e,a=new this(0);for(Y=!1,r=0;r<arguments.length;)if((e=new this(arguments[r++])).d)a.d&&(a=a.plus(e.times(e)));else{if(e.s)return Y=!0,new this(1/0);a=e}return Y=!0,a.sqrt()}function Wi(r){return r instanceof Ga||r&&r.toStringTag===_i||!1}function lA(r){return new this(r).ln()}function bA(r,e){return new this(r).log(e)}function gA(r){return new this(r).log(2)}function fA(r){return new this(r).log(10)}function pA(){return Oi(this,arguments,-1)}function mA(){return Oi(this,arguments,1)}function EA(r,e){return new this(r).mod(e)}function CA(r,e){return new this(r).mul(e)}function IA(r,e){return new this(r).pow(e)}function BA(r){var e,a,t,i,n=0,o=new this(1),s=[];if(r===void 0?r=this.precision:ze(r,1,Ea),t=Math.ceil(r/7),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(t));n<t;)(i=e[n])>=429e7?e[n]=crypto.getRandomValues(new Uint32Array(1))[0]:s[n++]=i%1e7;else{if(!crypto.randomBytes)throw Error(Gi);for(e=crypto.randomBytes(t*=4);n<t;)(i=e[n]+(e[n+1]<<8)+(e[n+2]<<16)+((127&e[n+3])<<24))>=214e7?crypto.randomBytes(4).copy(e,n):(s.push(i%1e7),n+=4);n=t/4}else for(;n<t;)s[n++]=1e7*Math.random()|0;for(r%=7,(t=s[--n])&&r&&(i=ke(10,7-r),s[n]=(t/i|0)*i);s[n]===0;n--)s.pop();if(n<0)a=0,s=[0];else{for(a=-1;s[0]===0;a-=7)s.shift();for(t=1,i=s[0];i>=10;i/=10)t++;t<7&&(a-=7-t)}return o.e=a,o.d=s,o}function DA(r){return H(r=new this(r),r.e+1,this.rounding)}function yA(r){return(r=new this(r)).d?r.d[0]?r.s:0*r.s:r.s||NaN}function wA(r){return new this(r).sin()}function xA(r){return new this(r).sinh()}function vA(r){return new this(r).sqrt()}function FA(r,e){return new this(r).sub(e)}function QA(){var r=0,e=arguments,a=new this(e[r]);for(Y=!1;a.s&&++r<e.length;)a=a.plus(e[r]);return Y=!0,H(a,this.precision,this.rounding)}function kA(r){return new this(r).tan()}function jA(r){return new this(r).tanh()}function MA(r){return H(r=new this(r),r.e+1,1)}S[Symbol.for("nodejs.util.inspect.custom")]=S.toString,S[Symbol.toStringTag]="Decimal";var Ga=S.constructor=function r(e){var a,t,i;function n(o){var s,c,u,A=this;if(!(A instanceof n))return new n(o);if(A.constructor=n,Wi(o))return A.s=o.s,void(Y?!o.d||o.e>n.maxE?(A.e=NaN,A.d=null):o.e<n.minE?(A.e=0,A.d=[0]):(A.e=o.e,A.d=o.d.slice()):(A.e=o.e,A.d=o.d?o.d.slice():o.d));if((u=typeof o)=="number"){if(o===0)return A.s=1/o<0?-1:1,A.e=0,void(A.d=[0]);if(o<0?(o=-o,A.s=-1):A.s=1,o===~~o&&o<1e7){for(s=0,c=o;c>=10;c/=10)s++;return void(Y?s>n.maxE?(A.e=NaN,A.d=null):s<n.minE?(A.e=0,A.d=[0]):(A.e=s,A.d=[o]):(A.e=s,A.d=[o]))}return 0*o!=0?(o||(A.s=NaN),A.e=NaN,void(A.d=null)):Bt(A,o.toString())}if(u==="string")return(c=o.charCodeAt(0))===45?(o=o.slice(1),A.s=-1):(c===43&&(o=o.slice(1)),A.s=1),zi.test(o)?Bt(A,o):Vs(A,o);if(u==="bigint")return o<0?(o=-o,A.s=-1):A.s=1,Bt(A,o.toString());throw Error(Ca+o)}if(n.prototype=S,n.ROUND_UP=0,n.ROUND_DOWN=1,n.ROUND_CEIL=2,n.ROUND_FLOOR=3,n.ROUND_HALF_UP=4,n.ROUND_HALF_DOWN=5,n.ROUND_HALF_EVEN=6,n.ROUND_HALF_CEIL=7,n.ROUND_HALF_FLOOR=8,n.EUCLID=9,n.config=n.set=oA,n.clone=r,n.isDecimal=Wi,n.abs=Hs,n.acos=Ws,n.acosh=Xs,n.add=Ys,n.asin=Zs,n.asinh=$s,n.atan=eA,n.atanh=aA,n.atan2=tA,n.cbrt=rA,n.ceil=iA,n.clamp=nA,n.cos=sA,n.cosh=AA,n.div=cA,n.exp=uA,n.floor=dA,n.hypot=hA,n.ln=lA,n.log=bA,n.log10=fA,n.log2=gA,n.max=pA,n.min=mA,n.mod=EA,n.mul=CA,n.pow=IA,n.random=BA,n.round=DA,n.sign=yA,n.sin=wA,n.sinh=xA,n.sqrt=vA,n.sub=FA,n.sum=QA,n.tan=kA,n.tanh=jA,n.trunc=MA,e===void 0&&(e={}),e&&e.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],a=0;a<i.length;)e.hasOwnProperty(t=i[a++])||(e[t]=this[t]);return n.config(e),n}(or);ft=new Ga(ft),pt=new Ga(pt);var RA=ie("BigNumber",["?on","config"],r=>{var{on:e,config:a}=r,t=Ga.clone({precision:a.precision,modulo:Ga.EUCLID});return t.prototype=Object.create(t.prototype),t.prototype.type="BigNumber",t.prototype.isBigNumber=!0,t.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},t.fromJSON=function(i){return new t(i.value)},e&&e("config",function(i,n){i.precision!==n.precision&&t.config({precision:i.precision})}),t},{isClass:!0});const Te=Math.cosh||function(r){return Math.abs(r)<1e-9?1-r:.5*(Math.exp(r)+Math.exp(-r))},Xe=Math.sinh||function(r){return Math.abs(r)<1e-9?r:.5*(Math.exp(r)-Math.exp(-r))},ur=function(r,e){return(r=Math.abs(r))<(e=Math.abs(e))&&([r,e]=[e,r]),r<1e8?Math.sqrt(r*r+e*e):(e/=r,r*Math.sqrt(1+e*e))},_a=function(){throw SyntaxError("Invalid Param")};function dr(r,e){const a=Math.abs(r),t=Math.abs(e);return r===0?Math.log(t):e===0?Math.log(a):a<3e3&&t<3e3?.5*Math.log(r*r+e*e):(r*=.5,e*=.5,.5*Math.log(r*r+e*e)+Math.LN2)}const SA={re:0,im:0},Fa=function(r,e){const a=SA;if(r==null)a.re=a.im=0;else if(e!==void 0)a.re=r,a.im=e;else switch(typeof r){case"object":if("im"in r&&"re"in r)a.re=r.re,a.im=r.im;else if("abs"in r&&"arg"in r){if(!isFinite(r.abs)&&isFinite(r.arg))return k.INFINITY;a.re=r.abs*Math.cos(r.arg),a.im=r.abs*Math.sin(r.arg)}else if("r"in r&&"phi"in r){if(!isFinite(r.r)&&isFinite(r.phi))return k.INFINITY;a.re=r.r*Math.cos(r.phi),a.im=r.r*Math.sin(r.phi)}else r.length===2?(a.re=r[0],a.im=r[1]):_a();break;case"string":a.im=a.re=0;const t=r.replace(/_/g,"").match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);let i=1,n=0;t===null&&_a();for(let o=0;o<t.length;o++){const s=t[o];s===" "||s===" "||s===`
|
|
22
|
-
`||(s==="+"?i++:s==="-"?n++:s==="i"||s==="I"?(i+n===0&&_a(),t[o+1]===" "||isNaN(t[o+1])?a.im+=parseFloat((n%2?"-":"")+"1"):(a.im+=parseFloat((n%2?"-":"")+t[o+1]),o++),i=n=0):((i+n===0||isNaN(s))&&_a(),t[o+1]==="i"||t[o+1]==="I"?(a.im+=parseFloat((n%2?"-":"")+s),o++):a.re+=parseFloat((n%2?"-":"")+s),i=n=0))}i+n>0&&_a();break;case"number":a.im=0,a.re=r;break;default:_a()}return isNaN(a.re)||isNaN(a.im),a};function k(r,e){if(!(this instanceof k))return new k(r,e);const a=Fa(r,e);this.re=a.re,this.im=a.im}k.prototype={re:0,im:0,sign:function(){const r=ur(this.re,this.im);return new k(this.re/r,this.im/r)},add:function(r,e){const a=Fa(r,e),t=this.isInfinite(),i=!(isFinite(a.re)&&isFinite(a.im));return t||i?t&&i?k.NAN:k.INFINITY:new k(this.re+a.re,this.im+a.im)},sub:function(r,e){const a=Fa(r,e),t=this.isInfinite(),i=!(isFinite(a.re)&&isFinite(a.im));return t||i?t&&i?k.NAN:k.INFINITY:new k(this.re-a.re,this.im-a.im)},mul:function(r,e){const a=Fa(r,e),t=this.isInfinite(),i=!(isFinite(a.re)&&isFinite(a.im)),n=this.re===0&&this.im===0,o=a.re===0&&a.im===0;return t&&o||i&&n?k.NAN:t||i?k.INFINITY:a.im===0&&this.im===0?new k(this.re*a.re,0):new k(this.re*a.re-this.im*a.im,this.re*a.im+this.im*a.re)},div:function(r,e){const a=Fa(r,e),t=this.isInfinite(),i=!(isFinite(a.re)&&isFinite(a.im)),n=this.re===0&&this.im===0,o=a.re===0&&a.im===0;if(n&&o||t&&i)return k.NAN;if(o||t)return k.INFINITY;if(n||i)return k.ZERO;if(a.im===0)return new k(this.re/a.re,this.im/a.re);if(Math.abs(a.re)<Math.abs(a.im)){const s=a.re/a.im,c=a.re*s+a.im;return new k((this.re*s+this.im)/c,(this.im*s-this.re)/c)}{const s=a.im/a.re,c=a.im*s+a.re;return new k((this.re+this.im*s)/c,(this.im-this.re*s)/c)}},pow:function(r,e){const a=Fa(r,e),t=this.re===0&&this.im===0;if(a.re===0&&a.im===0)return k.ONE;if(a.im===0){if(this.im===0&&this.re>0)return new k(Math.pow(this.re,a.re),0);if(this.re===0)switch((a.re%4+4)%4){case 0:return new k(Math.pow(this.im,a.re),0);case 1:return new k(0,Math.pow(this.im,a.re));case 2:return new k(-Math.pow(this.im,a.re),0);case 3:return new k(0,-Math.pow(this.im,a.re))}}if(t&&a.re>0)return k.ZERO;const i=Math.atan2(this.im,this.re),n=dr(this.re,this.im);let o=Math.exp(a.re*n-a.im*i),s=a.im*n+a.re*i;return new k(o*Math.cos(s),o*Math.sin(s))},sqrt:function(){const r=this.re,e=this.im;if(e===0)return r>=0?new k(Math.sqrt(r),0):new k(0,Math.sqrt(-r));const a=ur(r,e);let t=Math.sqrt(.5*(a+Math.abs(r))),i=Math.abs(e)/(2*t);return r>=0?new k(t,e<0?-i:i):new k(i,e<0?-t:t)},exp:function(){const r=Math.exp(this.re);return this.im===0?new k(r,0):new k(r*Math.cos(this.im),r*Math.sin(this.im))},expm1:function(){const r=this.re,e=this.im;return new k(Math.expm1(r)*Math.cos(e)+function(a){const t=Math.PI/4;if(-t>a||a>t)return Math.cos(a)-1;const i=a*a;return i*(i*(i*(i*(i*(i*(i*(i/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(e),Math.exp(r)*Math.sin(e))},log:function(){const r=this.re,e=this.im;return e===0&&r>0?new k(Math.log(r),0):new k(dr(r,e),Math.atan2(e,r))},abs:function(){return ur(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){const r=this.re,e=this.im;return new k(Math.sin(r)*Te(e),Math.cos(r)*Xe(e))},cos:function(){const r=this.re,e=this.im;return new k(Math.cos(r)*Te(e),-Math.sin(r)*Xe(e))},tan:function(){const r=2*this.re,e=2*this.im,a=Math.cos(r)+Te(e);return new k(Math.sin(r)/a,Xe(e)/a)},cot:function(){const r=2*this.re,e=2*this.im,a=Math.cos(r)-Te(e);return new k(-Math.sin(r)/a,Xe(e)/a)},sec:function(){const r=this.re,e=this.im,a=.5*Te(2*e)+.5*Math.cos(2*r);return new k(Math.cos(r)*Te(e)/a,Math.sin(r)*Xe(e)/a)},csc:function(){const r=this.re,e=this.im,a=.5*Te(2*e)-.5*Math.cos(2*r);return new k(Math.sin(r)*Te(e)/a,-Math.cos(r)*Xe(e)/a)},asin:function(){const r=this.re,e=this.im,a=new k(e*e-r*r+1,-2*r*e).sqrt(),t=new k(a.re-e,a.im+r).log();return new k(t.im,-t.re)},acos:function(){const r=this.re,e=this.im,a=new k(e*e-r*r+1,-2*r*e).sqrt(),t=new k(a.re-e,a.im+r).log();return new k(Math.PI/2-t.im,t.re)},atan:function(){const r=this.re,e=this.im;if(r===0){if(e===1)return new k(0,1/0);if(e===-1)return new k(0,-1/0)}const a=r*r+(1-e)*(1-e),t=new k((1-e*e-r*r)/a,-2*r/a).log();return new k(-.5*t.im,.5*t.re)},acot:function(){const r=this.re,e=this.im;if(e===0)return new k(Math.atan2(1,r),0);const a=r*r+e*e;return a!==0?new k(r/a,-e/a).atan():new k(r!==0?r/0:0,e!==0?-e/0:0).atan()},asec:function(){const r=this.re,e=this.im;if(r===0&&e===0)return new k(0,1/0);const a=r*r+e*e;return a!==0?new k(r/a,-e/a).acos():new k(r!==0?r/0:0,e!==0?-e/0:0).acos()},acsc:function(){const r=this.re,e=this.im;if(r===0&&e===0)return new k(Math.PI/2,1/0);const a=r*r+e*e;return a!==0?new k(r/a,-e/a).asin():new k(r!==0?r/0:0,e!==0?-e/0:0).asin()},sinh:function(){const r=this.re,e=this.im;return new k(Xe(r)*Math.cos(e),Te(r)*Math.sin(e))},cosh:function(){const r=this.re,e=this.im;return new k(Te(r)*Math.cos(e),Xe(r)*Math.sin(e))},tanh:function(){const r=2*this.re,e=2*this.im,a=Te(r)+Math.cos(e);return new k(Xe(r)/a,Math.sin(e)/a)},coth:function(){const r=2*this.re,e=2*this.im,a=Te(r)-Math.cos(e);return new k(Xe(r)/a,-Math.sin(e)/a)},csch:function(){const r=this.re,e=this.im,a=Math.cos(2*e)-Te(2*r);return new k(-2*Xe(r)*Math.cos(e)/a,2*Te(r)*Math.sin(e)/a)},sech:function(){const r=this.re,e=this.im,a=Math.cos(2*e)+Te(2*r);return new k(2*Te(r)*Math.cos(e)/a,-2*Xe(r)*Math.sin(e)/a)},asinh:function(){let r=this.im;this.im=-this.re,this.re=r;const e=this.asin();return this.re=-this.im,this.im=r,r=e.re,e.re=-e.im,e.im=r,e},acosh:function(){const r=this.acos();if(r.im<=0){const e=r.re;r.re=-r.im,r.im=e}else{const e=r.im;r.im=-r.re,r.re=e}return r},atanh:function(){const r=this.re,e=this.im,a=r>1&&e===0,t=1-r,i=1+r,n=t*t+e*e,o=n!==0?new k((i*t-e*e)/n,(e*t+i*e)/n):new k(r!==-1?r/0:0,e!==0?e/0:0),s=o.re;return o.re=dr(o.re,o.im)/2,o.im=Math.atan2(o.im,s)/2,a&&(o.im=-o.im),o},acoth:function(){const r=this.re,e=this.im;if(r===0&&e===0)return new k(0,Math.PI/2);const a=r*r+e*e;return a!==0?new k(r/a,-e/a).atanh():new k(r!==0?r/0:0,e!==0?-e/0:0).atanh()},acsch:function(){const r=this.re,e=this.im;if(e===0)return new k(r!==0?Math.log(r+Math.sqrt(r*r+1)):1/0,0);const a=r*r+e*e;return a!==0?new k(r/a,-e/a).asinh():new k(r!==0?r/0:0,e!==0?-e/0:0).asinh()},asech:function(){const r=this.re,e=this.im;if(this.isZero())return k.INFINITY;const a=r*r+e*e;return a!==0?new k(r/a,-e/a).acosh():new k(r!==0?r/0:0,e!==0?-e/0:0).acosh()},inverse:function(){if(this.isZero())return k.INFINITY;if(this.isInfinite())return k.ZERO;const r=this.re,e=this.im,a=r*r+e*e;return new k(r/a,-e/a)},conjugate:function(){return new k(this.re,-this.im)},neg:function(){return new k(-this.re,-this.im)},ceil:function(r){return r=Math.pow(10,r||0),new k(Math.ceil(this.re*r)/r,Math.ceil(this.im*r)/r)},floor:function(r){return r=Math.pow(10,r||0),new k(Math.floor(this.re*r)/r,Math.floor(this.im*r)/r)},round:function(r){return r=Math.pow(10,r||0),new k(Math.round(this.re*r)/r,Math.round(this.im*r)/r)},equals:function(r,e){const a=Fa(r,e);return Math.abs(a.re-this.re)<=k.EPSILON&&Math.abs(a.im-this.im)<=k.EPSILON},clone:function(){return new k(this.re,this.im)},toString:function(){let r=this.re,e=this.im,a="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(r)<k.EPSILON&&(r=0),Math.abs(e)<k.EPSILON&&(e=0),e===0?a+r:(r!==0?(a+=r,a+=" ",e<0?(e=-e,a+="-"):a+="+",a+=" "):e<0&&(e=-e,a+="-"),e!==1&&(a+=e),a+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!this.isFinite()}},k.ZERO=new k(0,0),k.ONE=new k(1,0),k.I=new k(0,1),k.PI=new k(Math.PI,0),k.E=new k(Math.E,0),k.INFINITY=new k(1/0,1/0),k.NAN=new k(NaN,NaN),k.EPSILON=1e-15;var TA=ie("Complex",[],()=>(Object.defineProperty(k,"name",{value:"Complex"}),k.prototype.constructor=k,k.prototype.type="Complex",k.prototype.isComplex=!0,k.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},k.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},k.prototype.format=function(r){var e=this.im,a=this.re,t=ir(this.re,r),i=ir(this.im,r),n=be(r)?r:r?r.precision:null;if(n!==null){var o=Math.pow(10,-n);Math.abs(a/e)<o&&(a=0),Math.abs(e/a)<o&&(e=0)}return e===0?t:a===0?e===1?"i":e===-1?"-i":i+"i":e<0?e===-1?t+" - i":t+" - "+i.substring(1)+"i":e===1?t+" + i":t+" + "+i+"i"},k.fromPolar=function(r){switch(arguments.length){case 1:var e=arguments[0];if(typeof e=="object")return k(e);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var a=arguments[0],t=arguments[1];if(be(a)){if(Qi(t)&&t.hasBase("ANGLE")&&(t=t.toNumber("rad")),be(t))return new k({r:a,phi:t});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},k.prototype.valueOf=k.prototype.toString,k.fromJSON=function(r){return new k(r)},k.compare=function(r,e){return r.re>e.re?1:r.re<e.re?-1:r.im>e.im?1:r.im<e.im?-1:0},k),{isClass:!0});typeof BigInt>"u"&&(BigInt=function(r){if(isNaN(r))throw new Error("");return r});const W=BigInt(0),Z=BigInt(1),Za=BigInt(2),hr=BigInt(5),Pe=BigInt(10),P={s:Z,n:W,d:Z};function la(r,e){try{r=BigInt(r)}catch{throw Da()}return r*e}function ea(r){return typeof r=="bigint"?r:Math.floor(r)}function fe(r,e){if(e===W)throw lr();const a=Object.create(Ye.prototype);a.s=r<W?-Z:Z;const t=Qa(r=r<W?-r:r,e);return a.n=r/t,a.d=e/t,a}function za(r){const e={};let a=r,t=Za,i=hr-Z;for(;i<=a;){for(;a%t===W;)a/=t,e[t]=(e[t]||W)+Z;i+=Z+Za*t++}return a!==r?a>1&&(e[a]=(e[a]||W)+Z):e[r]=(e[r]||W)+Z,e}const je=function(r,e){let a=W,t=Z,i=Z;if(r!=null)if(e!==void 0){if(typeof r=="bigint")a=r;else{if(isNaN(r))throw Da();if(r%1!=0)throw Xi();a=BigInt(r)}if(typeof e=="bigint")t=e;else{if(isNaN(e))throw Da();if(e%1!=0)throw Xi();t=BigInt(e)}i=a*t}else if(typeof r=="object"){if("d"in r&&"n"in r)a=BigInt(r.n),t=BigInt(r.d),"s"in r&&(a*=BigInt(r.s));else if(0 in r)a=BigInt(r[0]),1 in r&&(t=BigInt(r[1]));else{if(typeof r!="bigint")throw Da();a=r}i=a*t}else if(typeof r=="number"){if(isNaN(r))throw Da();if(r<0&&(i=-Z,r=-r),r%1==0)a=BigInt(r);else{let n=1,o=0,s=1,c=1,u=1,A=1e7;for(r>=1&&(n=10**Math.floor(1+Math.log10(r)),r/=n);s<=A&&u<=A;){let d=(o+c)/(s+u);if(r===d){s+u<=A?(a=o+c,t=s+u):u>s?(a=c,t=u):(a=o,t=s);break}r>d?(o+=c,s+=u):(c+=o,u+=s),s>A?(a=c,t=u):(a=o,t=s)}a=BigInt(a)*BigInt(n),t=BigInt(t)}}else if(typeof r=="string"){let n=0,o=W,s=W,c=W,u=Z,A=Z,d=r.replace(/_/g,"").match(/\d+|./g);if(d===null||(d[n]==="-"?(i=-Z,n++):d[n]==="+"&&n++,d.length===n+1?s=la(d[n++],i):d[n+1]==="."||d[n]==="."?(d[n]!=="."&&(o=la(d[n++],i)),n++,(n+1===d.length||d[n+1]==="("&&d[n+3]===")"||d[n+1]==="'"&&d[n+3]==="'")&&(s=la(d[n],i),u=Pe**BigInt(d[n].length),n++),(d[n]==="("&&d[n+2]===")"||d[n]==="'"&&d[n+2]==="'")&&(c=la(d[n+1],i),A=Pe**BigInt(d[n+1].length)-Z,n+=3)):d[n+1]==="/"||d[n+1]===":"?(s=la(d[n],i),u=la(d[n+2],Z),n+=3):d[n+3]==="/"&&d[n+1]===" "&&(o=la(d[n],i),s=la(d[n+2],i),u=la(d[n+4],Z),n+=5),!(d.length<=n)))throw Da();t=u*A,i=a=c+t*o+A*s}else{if(typeof r!="bigint")throw Da();a=r,i=r,t=Z}if(t===W)throw lr();P.s=i<W?-Z:Z,P.n=a<W?-a:a,P.d=t<W?-t:t};function NA(r,e,a){let t=Z,i=function(n,o,s){let c=Z;for(;o>W;n=n*n%s,o>>=Z)o&Z&&(c=c*n%s);return c}(Pe,a,e);for(let n=0;n<300;n++){if(t===i)return BigInt(n);t=t*Pe%e,i=i*Pe%e}return 0}function Qa(r,e){if(!r)return e;if(!e)return r;for(;;){if(!(r%=e))return e;if(!(e%=r))return r}}function Ye(r,e){if(je(r,e),!(this instanceof Ye))return fe(P.s*P.n,P.d);r=Qa(P.d,P.n),this.s=P.s,this.n=P.n/r,this.d=P.d/r}var lr=function(){return new Error("Division by Zero")},Da=function(){return new Error("Invalid argument")},Xi=function(){return new Error("Parameters must be integer")};Ye.prototype={s:Z,n:W,d:Z,abs:function(){return fe(this.n,this.d)},neg:function(){return fe(-this.s*this.n,this.d)},add:function(r,e){return je(r,e),fe(this.s*this.n*P.d+P.s*this.d*P.n,this.d*P.d)},sub:function(r,e){return je(r,e),fe(this.s*this.n*P.d-P.s*this.d*P.n,this.d*P.d)},mul:function(r,e){return je(r,e),fe(this.s*P.s*this.n*P.n,this.d*P.d)},div:function(r,e){return je(r,e),fe(this.s*P.s*this.n*P.d,this.d*P.n)},clone:function(){return fe(this.s*this.n,this.d)},mod:function(r,e){if(r===void 0)return fe(this.s*this.n%this.d,Z);if(je(r,e),W===P.n*this.d)throw lr();return fe(this.s*(P.d*this.n)%(P.n*this.d),P.d*this.d)},gcd:function(r,e){return je(r,e),fe(Qa(P.n,this.n)*Qa(P.d,this.d),P.d*this.d)},lcm:function(r,e){return je(r,e),P.n===W&&this.n===W?fe(W,Z):fe(P.n*this.n,Qa(P.n,this.n)*Qa(P.d,this.d))},inverse:function(){return fe(this.s*this.d,this.n)},pow:function(r,e){if(je(r,e),P.d===Z)return P.s<W?fe((this.s*this.d)**P.n,this.n**P.n):fe((this.s*this.n)**P.n,this.d**P.n);if(this.s<W)return null;let a=za(this.n),t=za(this.d),i=Z,n=Z;for(let o in a)if(o!=="1"){if(o==="0"){i=W;break}if(a[o]*=P.n,a[o]%P.d!==W)return null;a[o]/=P.d,i*=BigInt(o)**a[o]}for(let o in t)if(o!=="1"){if(t[o]*=P.n,t[o]%P.d!==W)return null;t[o]/=P.d,n*=BigInt(o)**t[o]}return P.s<W?fe(n,i):fe(i,n)},log:function(r,e){if(je(r,e),this.s<=W||P.s<=W)return null;const a={},t=za(P.n),i=za(P.d),n=za(this.n),o=za(this.d);for(const u in i)t[u]=(t[u]||W)-i[u];for(const u in o)n[u]=(n[u]||W)-o[u];for(const u in t)u!=="1"&&(a[u]=!0);for(const u in n)u!=="1"&&(a[u]=!0);let s=null,c=null;for(const u in a){const A=t[u]||W,d=n[u]||W;if(A===W){if(d!==W)return null;continue}let b=d,h=A;const l=Qa(b,h);if(b/=l,h/=l,s===null&&c===null)s=b,c=h;else if(b*c!=s*h)return null}return s!==null&&c!==null?fe(s,c):null},equals:function(r,e){return je(r,e),this.s*this.n*P.d==P.s*P.n*this.d},lt:function(r,e){return je(r,e),this.s*this.n*P.d<P.s*P.n*this.d},lte:function(r,e){return je(r,e),this.s*this.n*P.d<=P.s*P.n*this.d},gt:function(r,e){return je(r,e),this.s*this.n*P.d>P.s*P.n*this.d},gte:function(r,e){return je(r,e),this.s*this.n*P.d>=P.s*P.n*this.d},compare:function(r,e){je(r,e);let a=this.s*this.n*P.d-P.s*P.n*this.d;return(W<a)-(a<W)},ceil:function(r){return r=Pe**BigInt(r||0),fe(ea(this.s*r*this.n/this.d)+(r*this.n%this.d>W&&this.s>=W?Z:W),r)},floor:function(r){return r=Pe**BigInt(r||0),fe(ea(this.s*r*this.n/this.d)-(r*this.n%this.d>W&&this.s<W?Z:W),r)},round:function(r){return r=Pe**BigInt(r||0),fe(ea(this.s*r*this.n/this.d)+this.s*((this.s>=W?Z:W)+Za*(r*this.n%this.d)>this.d?Z:W),r)},roundTo:function(r,e){je(r,e);const a=this.n*P.d,t=this.d*P.n,i=a%t;let n=ea(a/t);return i+i>=t&&n++,fe(this.s*n*P.n,P.d)},divisible:function(r,e){return je(r,e),!(!(P.n*this.d)||this.n*P.d%(P.n*this.d))},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(r){let e=this.n,a=this.d;r=r||15;let t=function(o,s){for(;s%Za===W;s/=Za);for(;s%hr===W;s/=hr);if(s===Z)return W;let c=Pe%s,u=1;for(;c!==Z;u++)if(c=c*Pe%s,u>2e3)return W;return BigInt(u)}(0,a),i=NA(0,a,t),n=this.s<W?"-":"";if(n+=ea(e/a),e%=a,e*=Pe,e&&(n+="."),t){for(let o=i;o--;)n+=ea(e/a),e%=a,e*=Pe;n+="(";for(let o=t;o--;)n+=ea(e/a),e%=a,e*=Pe;n+=")"}else for(let o=r;e&&o--;)n+=ea(e/a),e%=a,e*=Pe;return n},toFraction:function(r){let e=this.n,a=this.d,t=this.s<W?"-":"";if(a===Z)t+=e;else{let i=ea(e/a);r&&i>W&&(t+=i,t+=" ",e%=a),t+=e,t+="/",t+=a}return t},toLatex:function(r){let e=this.n,a=this.d,t=this.s<W?"-":"";if(a===Z)t+=e;else{let i=ea(e/a);r&&i>W&&(t+=i,e%=a),t+="\\frac{",t+=e,t+="}{",t+=a,t+="}"}return t},toContinued:function(){let r=this.n,e=this.d,a=[];do{a.push(ea(r/e));let t=r%e;r=e,e=t}while(r!==Z);return a},simplify:function(r){const e=BigInt(1/(r||.001)|0),a=this.abs(),t=a.toContinued();for(let i=1;i<t.length;i++){let n=fe(t[i-1],Z);for(let s=i-2;s>=0;s--)n=n.inverse().add(t[s]);let o=n.sub(a);if(o.n*e<o.d)return n.mul(this.s)}return this}};var UA=ie("Fraction",[],()=>(Object.defineProperty(Ye,"name",{value:"Fraction"}),Ye.prototype.constructor=Ye,Ye.prototype.type="Fraction",Ye.prototype.isFraction=!0,Ye.prototype.toJSON=function(){return{mathjs:"Fraction",n:String(this.s*this.n),d:String(this.d)}},Ye.fromJSON=function(r){return new Ye(r)},Ye),{isClass:!0}),LA=ie("Matrix",[],()=>{function r(){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator")}return r.prototype.type="Matrix",r.prototype.isMatrix=!0,r.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},r.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},r.prototype.create=function(e,a){throw new Error("Cannot invoke create on a Matrix interface")},r.prototype.subset=function(e,a,t){throw new Error("Cannot invoke subset on a Matrix interface")},r.prototype.get=function(e){throw new Error("Cannot invoke get on a Matrix interface")},r.prototype.set=function(e,a,t){throw new Error("Cannot invoke set on a Matrix interface")},r.prototype.resize=function(e,a){throw new Error("Cannot invoke resize on a Matrix interface")},r.prototype.reshape=function(e,a){throw new Error("Cannot invoke reshape on a Matrix interface")},r.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},r.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},r.prototype.map=function(e,a){throw new Error("Cannot invoke map on a Matrix interface")},r.prototype.forEach=function(e){throw new Error("Cannot invoke forEach on a Matrix interface")},r.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},r.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},r.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},r.prototype.format=function(e){throw new Error("Cannot invoke format on a Matrix interface")},r.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},r},{isClass:!0});function br(r,e,a){var t=new r.constructor(2),i="";if(a){if(a<1)throw new Error("size must be in greater than 0");if(!Ee(a))throw new Error("size must be an integer");if(r.greaterThan(t.pow(a-1).sub(1))||r.lessThan(t.pow(a-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(a-1,", 2^").concat(a-1,"-1]"));if(!r.isInteger())throw new Error("Value must be an integer");r.lessThan(0)&&(r=r.add(t.pow(a))),i="i".concat(a)}switch(e){case 2:return"".concat(r.toBinary()).concat(i);case 8:return"".concat(r.toOctal()).concat(i);case 16:return"".concat(r.toHexadecimal()).concat(i);default:throw new Error("Base ".concat(e," not supported "))}}function GA(r,e){if(typeof e=="function")return e(r);if(!r.isFinite())return r.isNaN()?"NaN":r.gt(0)?"Infinity":"-Infinity";var{notation:a,precision:t,wordSize:i}=Mi(e);switch(a){case"fixed":return function(u,A){return u.toFixed(A)}(r,t);case"exponential":return Yi(r,t);case"engineering":return function(u,A){var d=u.e,b=d%3==0?d:d<0?d-3-d%3:d-d%3,h=u.mul(Math.pow(10,-b)),l=h.toPrecision(A);return l.includes("e")&&(l=new u.constructor(l).toFixed()),l+"e"+(d>=0?"+":"")+b.toString()}(r,t);case"bin":return br(r,2,i);case"oct":return br(r,8,i);case"hex":return br(r,16,i);case"auto":var n=Zi(e?.lowerExp,-3),o=Zi(e?.upperExp,5);if(r.isZero())return"0";var s=r.toSignificantDigits(t),c=s.e;return(c>=n&&c<o?s.toFixed():Yi(r,t)).replace(/((\.\d*?)(0+))($|e)/,function(){var u=arguments[2],A=arguments[4];return u!=="."?u+A:A});default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Yi(r,e){return e!==void 0?r.toExponential(e-1):r.toExponential()}function Zi(r,e){return be(r)?r:ve(r)?r.toNumber():e}function Fe(r,e){var a=function(t,i){return typeof t=="number"?ir(t,i):ve(t)?GA(t,i):function(n){return n&&typeof n=="object"&&typeof n.s=="bigint"&&typeof n.n=="bigint"&&typeof n.d=="bigint"||!1}(t)?i&&i.fraction==="decimal"?t.toString():"".concat(t.s*t.n,"/").concat(t.d):Array.isArray(t)?an(t,i):ia(t)?$i(t):typeof t=="function"?t.syntax?String(t.syntax):"function":t&&typeof t=="object"?typeof t.format=="function"?t.format(i):t&&t.toString(i)!=={}.toString()?t.toString(i):"{"+Object.keys(t).map(n=>$i(n)+": "+Fe(t[n],i)).join(", ")+"}":String(t)}(r,e);return e&&typeof e=="object"&&"truncate"in e&&a.length>e.truncate?a.substring(0,e.truncate-3)+"...":a}function $i(r){for(var e=String(r),a="",t=0;t<e.length;){var i=e.charAt(t);a+=i in en?en[i]:i,t++}return'"'+a+'"'}var en={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function an(r,e){if(Array.isArray(r)){for(var a="[",t=r.length,i=0;i<t;i++)i!==0&&(a+=", "),a+=an(r[i],e);return a+="]"}return Fe(r,e)}function pe(r,e,a){if(!(this instanceof pe))throw new SyntaxError("Constructor must be called with the new operator");this.actual=r,this.expected=e,this.relation=a,this.message="Dimension mismatch ("+(Array.isArray(r)?"["+r.join(", ")+"]":r)+" "+(this.relation||"!=")+" "+(Array.isArray(e)?"["+e.join(", ")+"]":e)+")",this.stack=new Error().stack}function Pa(r,e,a){if(!(this instanceof Pa))throw new SyntaxError("Constructor must be called with the new operator");this.index=r,arguments.length<3?(this.min=0,this.max=e):(this.min=e,this.max=a),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}function Le(r){for(var e=[];Array.isArray(r);)e.push(r.length),r=r[0];return e}function tn(r,e,a){var t,i=r.length;if(i!==e[a])throw new pe(i,e[a]);if(a<e.length-1){var n=a+1;for(t=0;t<i;t++){var o=r[t];if(!Array.isArray(o))throw new pe(e.length-1,e.length,"<");tn(r[t],e,n)}}else for(t=0;t<i;t++)if(Array.isArray(r[t]))throw new pe(e.length+1,e.length,">")}function rn(r,e){if(e.length===0){if(Array.isArray(r))throw new pe(r.length,0)}else tn(r,e,0)}function Ie(r,e){if(r!==void 0){if(!be(r)||!Ee(r))throw new TypeError("Index must be an integer (value: "+r+")");if(r<0||typeof e=="number"&&r>=e)throw new Pa(r,e)}}function gr(r,e,a){if(!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Error("Resizing to scalar is not supported");return e.forEach(function(t){if(!be(t)||!Ee(t)||t<0)throw new TypeError("Invalid size, must contain positive integers (size: "+Fe(e)+")")}),(be(r)||ve(r))&&(r=[r]),fr(r,e,0,a!==void 0?a:0),r}function fr(r,e,a,t){var i,n,o=r.length,s=e[a],c=Math.min(o,s);if(r.length=s,a<e.length-1){var u=a+1;for(i=0;i<c;i++)n=r[i],Array.isArray(n)||(n=[n],r[i]=n),fr(n,e,u,t);for(i=c;i<s;i++)n=[],r[i]=n,fr(n,e,u,t)}else{for(i=0;i<c;i++)for(;Array.isArray(r[i]);)r[i]=r[i][0];for(i=c;i<s;i++)r[i]=t}}function nn(r,e){var a=function(n){var o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!Array.isArray(n))return n;if(typeof o!="boolean")throw new TypeError("Boolean expected for second argument of flatten");var s=[];return o?u(n):c(n),s;function c(A){for(var d=0;d<A.length;d++){var b=A[d];Array.isArray(b)?c(b):s.push(b)}}function u(A){if(Array.isArray(A[0]))for(var d=0;d<A.length;d++)u(A[d]);else for(var b=0;b<A.length;b++)s.push(A[b])}}(r,!0),t=a.length;if(!Array.isArray(r)||!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new pe(0,t,"!=");var i=on(e=pr(e,t));if(t!==i)throw new pe(i,t,"!=");try{return function(n,o){for(var s,c=n,u=o.length-1;u>0;u--){var A=o[u];s=[];for(var d=c.length/A,b=0;b<d;b++)s.push(c.slice(b*A,(b+1)*A));c=s}return c}(a,e)}catch(n){throw n instanceof pe?new pe(i,t,"!="):n}}function pr(r,e){var a=on(r),t=r.slice(),i=r.indexOf(-1);if(r.indexOf(-1,i+1)>=0)throw new Error("More than one wildcard in sizes");if(i>=0){if(e%a!=0)throw new Error("Could not replace wildcard, since "+e+" is no multiple of "+-a);t[i]=-e/a}return t}function on(r){return r.reduce((e,a)=>e*a,1)}function sn(r,e,a,t){var i=t||Le(r);if(a)for(var n=0;n<a;n++)r=[r],i.unshift(1);for(r=An(r,e,0);i.length<e;)i.push(1);return r}function An(r,e,a){var t,i;if(Array.isArray(r)){var n=a+1;for(t=0,i=r.length;t<i;t++)r[t]=An(r[t],e,n)}else for(var o=a;o<e;o++)r=[r];return r}function mr(r,e){for(var a,t=0,i=0;i<r.length;i++){var n=r[i],o=Array.isArray(n);if(i===0&&o&&(t=n.length),o&&n.length!==t)return;var s=o?mr(n,e):e(n);if(a===void 0)a=s;else if(a!==s)return"mixed"}return a}function cn(r,e,a,t){if(t<a){if(r.length!==e.length)throw new pe(r.length,e.length);for(var i=[],n=0;n<r.length;n++)i[n]=cn(r[n],e[n],a,t+1);return i}return r.concat(e)}function _A(){var r=Array.prototype.slice.call(arguments,0,-1),e=Array.prototype.slice.call(arguments,-1);if(r.length===1)return r[0];if(r.length>1)return r.slice(1).reduce(function(a,t){return cn(a,t,e,0)},r[0]);throw new Error("Wrong number of arguments in function concat")}function un(r,e){for(var a=e.length,t=r.length,i=0;i<t;i++){var n=a-t+i;if(r[i]<e[n]&&r[i]>1||r[i]>e[n])throw new Error("shape mismatch: mismatch is found in arg with shape (".concat(r,") not possible to broadcast dimension ").concat(t," with size ").concat(r[i]," to size ").concat(e[n]))}}function dn(r,e){var a=Le(r);if(Sa(a,e))return r;un(a,e);var t,i,n,o=function(){for(var d=arguments.length,b=new Array(d),h=0;h<d;h++)b[h]=arguments[h];for(var l=b.map(w=>w.length),g=Math.max(...l),m=new Array(g).fill(null),E=0;E<b.length;E++)for(var p=b[E],C=l[E],I=0;I<C;I++){var x=g-C+I;p[I]>m[x]&&(m[x]=p[I])}for(var y=0;y<b.length;y++)un(b[y],m);return m}(a,e),s=o.length,c=[...Array(s-a.length).fill(1),...a],u=function(d){return nt([],d)}(r);a.length<s&&(a=Le(u=nn(u,c)));for(var A=0;A<s;A++)a[A]<o[A]&&(t=u,i=o[A],n=A,a=Le(u=_A(...Array(i).fill(t),n)));return u}function hn(r,e){if(!Array.isArray(r))throw new Error("Array expected");var a=Le(r);if(e.length!==a.length)throw new pe(e.length,a.length);for(var t=0;t<e.length;t++)Ie(e[t],a[t]);return e.reduce((i,n)=>i[n],r)}function ln(r,e){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(r.length===0)return[];if(a)return function i(n){if(Array.isArray(n)){for(var o=n.length,s=Array(o),c=0;c<o;c++)s[c]=i(n[c]);return s}return e(n)}(r);var t=[];return function i(n,o){if(Array.isArray(n)){for(var s=n.length,c=Array(s),u=0;u<s;u++)t[o]=u,c[u]=i(n[u],o+1);return c}return e(n,t.slice(0,o),r)}(r,0)}function yt(r,e,a){var t=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(ct.isTypedFunction(r)){var i,n;if(t)i=1;else{var o=(e.isMatrix?e.size():Le(e)).map(()=>0),s=e.isMatrix?e.get(o):hn(e,o);i=function(u,A,d,b){for(var h=[A,d,b],l=3;l>0;l--){var g=h.slice(0,l);if(ct.resolve(u,g)!==null)return l}}(r,s,o,e)}if(e.isMatrix&&e.dataType!=="mixed"&&e.dataType!==void 0){var c=function(u,A){var d=[];if(Object.entries(u.signatures).forEach(b=>{var[h,l]=b;h.split(",").length===A&&d.push(l)}),d.length===1)return d[0]}(r,i);n=c!==void 0?c:r}else n=r;return i>=1&&i<=3?{isUnary:i===1,fn:function(){for(var u=arguments.length,A=new Array(u),d=0;d<u;d++)A[d]=arguments[d];return bn(n,A.slice(0,i),a,r.name)}}:{isUnary:!1,fn:function(){for(var u=arguments.length,A=new Array(u),d=0;d<u;d++)A[d]=arguments[d];return bn(n,A,a,r.name)}}}return t===void 0?{isUnary:zA(r),fn:r}:{isUnary:t,fn:r}}function zA(r){if(r.length!==1)return!1;var e=r.toString();if(/arguments/.test(e))return!1;var a=e.match(/\(.*?\)/);return!/\.\.\./.test(a)}function bn(r,e,a,t){try{return r(...e)}catch(i){(function(n,o,s,c){var u;if(n instanceof TypeError&&((u=n.data)===null||u===void 0?void 0:u.category)==="wrongType"){var A=[];throw A.push("value: ".concat(ma(o[0]))),o.length>=2&&A.push("index: ".concat(ma(o[1]))),o.length>=3&&A.push("array: ".concat(ma(o[2]))),new TypeError("Function ".concat(s," cannot apply callback arguments ")+"".concat(c,"(").concat(A.join(", "),") at index ").concat(JSON.stringify(o[1])))}throw new TypeError("Function ".concat(s," cannot apply callback arguments ")+"to function ".concat(c,": ").concat(n.message))})(i,e,a,t)}}pe.prototype=new RangeError,pe.prototype.constructor=RangeError,pe.prototype.name="DimensionError",pe.prototype.isDimensionError=!0,Pa.prototype=new RangeError,Pa.prototype.constructor=RangeError,Pa.prototype.name="IndexError",Pa.prototype.isIndexError=!0;var PA=ie("DenseMatrix",["Matrix"],r=>{var{Matrix:e}=r;function a(o,s){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(s&&!ia(s))throw new Error("Invalid datatype: "+s);if(De(o))o.type==="DenseMatrix"?(this._data=ye(o._data),this._size=ye(o._size),this._datatype=s||o._datatype):(this._data=o.toArray(),this._size=o.size(),this._datatype=s||o._datatype);else if(o&&Qe(o.data)&&Qe(o.size))this._data=o.data,this._size=o.size,rn(this._data,this._size),this._datatype=s||o.datatype;else if(Qe(o))this._data=n(o),this._size=Le(this._data),rn(this._data,this._size),this._datatype=s;else{if(o)throw new TypeError("Unsupported type of data ("+ma(o)+")");this._data=[],this._size=[0],this._datatype=s}}function t(o,s,c){if(s.length===0){for(var u=o._data;Qe(u);)u=u[0];return u}return o._size=s.slice(0),o._data=gr(o._data,o._size,c),o}function i(o,s,c){for(var u=o._size.slice(0),A=!1;u.length<s.length;)u.push(0),A=!0;for(var d=0,b=s.length;d<b;d++)s[d]>u[d]&&(u[d]=s[d],A=!0);A&&t(o,u,c)}function n(o){return De(o)?n(o.valueOf()):Qe(o)?o.map(n):o}return a.prototype=new e,a.prototype.createDenseMatrix=function(o,s){return new a(o,s)},Object.defineProperty(a,"name",{value:"DenseMatrix"}),a.prototype.constructor=a,a.prototype.type="DenseMatrix",a.prototype.isDenseMatrix=!0,a.prototype.getDataType=function(){return mr(this._data,ma)},a.prototype.storage=function(){return"dense"},a.prototype.datatype=function(){return this._datatype},a.prototype.create=function(o,s){return new a(o,s)},a.prototype.subset=function(o,s,c){switch(arguments.length){case 1:return function(u,A){if(!ar(A))throw new TypeError("Invalid index");var d=A.isScalar();if(d)return u.get(A.min());var b=A.size();if(b.length!==u._size.length)throw new pe(b.length,u._size.length);for(var h=A.min(),l=A.max(),g=0,m=u._size.length;g<m;g++)Ie(h[g],u._size[g]),Ie(l[g],u._size[g]);var E=new a([]),p=function(C,I){var x=I.size().length-1,y=Array(x);return{data:w(C),size:y};function w(D){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,j=I.dimension(F);return y[F]=j.size()[0],F<x?j.map(M=>(Ie(M,D.length),w(D[M],F+1))).valueOf():j.map(M=>(Ie(M,D.length),D[M])).valueOf()}}(u._data,A);return E._size=p.size,E._datatype=u._datatype,E._data=p.data,E}(this,o);case 2:case 3:return function(u,A,d,b){if(!A||A.isIndex!==!0)throw new TypeError("Invalid index");var h,l=A.size(),g=A.isScalar();if(De(d)?(h=d.size(),d=d.valueOf()):h=Le(d),g){if(h.length!==0)throw new TypeError("Scalar expected");u.set(A.min(),d,b)}else{if(!Sa(h,l))try{h=Le(d=h.length===0?dn([d],l):dn(d,l))}catch{}if(l.length<u._size.length)throw new pe(l.length,u._size.length,"<");if(h.length<l.length){for(var m=0,E=0;l[m]===1&&h[m]===1;)m++;for(;l[m]===1;)E++,m++;d=sn(d,l.length,E,h)}if(!Sa(l,h))throw new pe(l,h,">");var p=A.max().map(function(C){return C+1});i(u,p,b),function(C,I,x){var y=I.size().length-1;function w(D,F){var j=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,M=I.dimension(j);j<y?M.forEach((_,q)=>{Ie(_,D.length),w(D[_],F[q[0]],j+1)}):M.forEach((_,q)=>{Ie(_,D.length),D[_]=F[q[0]]})}w(C,x)}(u._data,A,d)}return u}(this,o,s,c);default:throw new SyntaxError("Wrong number of arguments")}},a.prototype.get=function(o){return hn(this._data,o)},a.prototype.set=function(o,s,c){if(!Qe(o))throw new TypeError("Array expected");if(o.length<this._size.length)throw new pe(o.length,this._size.length,"<");var u,A,d,b=o.map(function(l){return l+1});i(this,b,c);var h=this._data;for(u=0,A=o.length-1;u<A;u++)Ie(d=o[u],h.length),h=h[d];return Ie(d=o[o.length-1],h.length),h[d]=s,this},a.prototype.resize=function(o,s,c){if(!st(o))throw new TypeError("Array or Matrix expected");var u=o.valueOf().map(A=>Array.isArray(A)&&A.length===1?A[0]:A);return t(c?this.clone():this,u,s)},a.prototype.reshape=function(o,s){var c=s?this.clone():this;c._data=nn(c._data,o);var u=c._size.reduce((A,d)=>A*d);return c._size=pr(o,u),c},a.prototype.clone=function(){return new a({data:ye(this._data),size:ye(this._size),datatype:this._datatype})},a.prototype.size=function(){return this._size.slice(0)},a.prototype.map=function(o){var s=arguments.length>2&&arguments[2]!==void 0&&arguments[2],c=this,u=c._size.length-1;if(u<0)return c.clone();var A=yt(o,c,"map",s),d=A.fn,b=c.create(void 0,c._datatype);if(b._size=c._size,s||A.isUnary)return b._data=function E(p){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,I=Array(p.length);if(C<u)for(var x=0;x<p.length;x++)I[x]=E(p[x],C+1);else for(var y=0;y<p.length;y++)I[y]=d(p[y]);return I}(c._data),b;if(u===0){for(var h=c.valueOf(),l=Array(h.length),g=0;g<h.length;g++)l[g]=d(h[g],[g],c);return b._data=l,b}var m=[];return b._data=function E(p){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,I=Array(p.length);if(C<u)for(var x=0;x<p.length;x++)m[C]=x,I[x]=E(p[x],C+1);else for(var y=0;y<p.length;y++)m[C]=y,I[y]=d(p[y],m.slice(),c);return I}(c._data),b},a.prototype.forEach=function(o){var s=arguments.length>2&&arguments[2]!==void 0&&arguments[2],c=this,u=c._size.length-1;if(!(u<0)){var A=yt(o,c,"map",s),d=A.fn;if(s||A.isUnary)(function l(g){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(m<u)for(var E=0;E<g.length;E++)l(g[E],m+1);else for(var p=0;p<g.length;p++)d(g[p])})(c._data);else if(u!==0){var b=[];(function l(g){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(m<u)for(var E=0;E<g.length;E++)b[m]=E,l(g[E],m+1);else for(var p=0;p<g.length;p++)b[m]=p,d(g[p],b.slice(),c)})(c._data)}else for(var h=0;h<c._data.length;h++)d(c._data[h],[h],c)}},a.prototype[Symbol.iterator]=function*(){var o=this._size.length-1;if(!(o<0))if(o!==0){var s=[],c=function*(A,d){if(d<o)for(var b=0;b<A.length;b++)s[d]=b,yield*c(A[b],d+1);else for(var h=0;h<A.length;h++)s[d]=h,yield{value:A[h],index:s.slice()}};yield*c(this._data,0)}else for(var u=0;u<this._data.length;u++)yield{value:this._data[u],index:[u]}},a.prototype.rows=function(){var o=[];if(this.size().length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var s=this._data;for(var c of s)o.push(new a([c],this._datatype));return o},a.prototype.columns=function(){var o=this,s=[],c=this.size();if(c.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var u=this._data,A=function(b){var h=u.map(l=>[l[b]]);s.push(new a(h,o._datatype))},d=0;d<c[1];d++)A(d);return s},a.prototype.toArray=function(){return ye(this._data)},a.prototype.valueOf=function(){return this._data},a.prototype.format=function(o){return Fe(this._data,o)},a.prototype.toString=function(){return Fe(this._data)},a.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},a.prototype.diagonal=function(o){if(o){if(ve(o)&&(o=o.toNumber()),!be(o)||!Ee(o))throw new TypeError("The parameter k must be an integer number")}else o=0;for(var s=o>0?o:0,c=o<0?-o:0,u=this._size[0],A=this._size[1],d=Math.min(u-c,A-s),b=[],h=0;h<d;h++)b[h]=this._data[h+c][h+s];return new a({data:b,size:[d],datatype:this._datatype})},a.diagonal=function(o,s,c,u){if(!Qe(o))throw new TypeError("Array expected, size parameter");if(o.length!==2)throw new Error("Only two dimensions matrix are supported");if(o=o.map(function(C){if(ve(C)&&(C=C.toNumber()),!be(C)||!Ee(C)||C<1)throw new Error("Size values must be positive integers");return C}),c){if(ve(c)&&(c=c.toNumber()),!be(c)||!Ee(c))throw new TypeError("The parameter k must be an integer number")}else c=0;var A,d=c>0?c:0,b=c<0?-c:0,h=o[0],l=o[1],g=Math.min(h-b,l-d);if(Qe(s)){if(s.length!==g)throw new Error("Invalid value array length");A=function(C){return s[C]}}else if(De(s)){var m=s.size();if(m.length!==1||m[0]!==g)throw new Error("Invalid matrix length");A=function(C){return s.get([C])}}else A=function(){return s};u||(u=ve(A(0))?A(0).mul(0):0);var E=[];if(o.length>0){E=gr(E,o,u);for(var p=0;p<g;p++)E[p+b][p+d]=A(p)}return new a({data:E,size:[h,l]})},a.fromJSON=function(o){return new a(o)},a.prototype.swapRows=function(o,s){if(!(be(o)&&Ee(o)&&be(s)&&Ee(s)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Ie(o,this._size[0]),Ie(s,this._size[0]),a._swapRows(o,s,this._data),this},a._swapRows=function(o,s,c){var u=c[o];c[o]=c[s],c[s]=u},a},{isClass:!0});function ka(r,e,a){if(!a)return De(r)?r.map(i=>e(i),!1,!0):ln(r,e,!0);var t=i=>i===0?i:e(i);return De(r)?r.map(i=>t(i),!1,!0):ln(r,t,!0)}var gn="number",wt="number, number";function fn(r){return Math.abs(r)}function pn(r,e){return r+e}function mn(r,e){return r-e}function En(r,e){return r*e}function Cn(r){return-r}function In(r,e){return r*r<1&&e===1/0||r*r>1&&e===-1/0?0:Math.pow(r,e)}function Er(r,e){if(e<r)return 1;if(e===r)return e;var a=e+r>>1;return Er(r,a)*Er(a+1,e)}function xt(r){var e;if(Ee(r))return r<=0?isFinite(r)?1/0:NaN:r>171?1/0:Er(1,r-1);if(r<.5)return Math.PI/(Math.sin(Math.PI*r)*xt(1-r));if(r>=171.35)return 1/0;if(r>85){var a=r*r,t=a*r,i=t*r,n=i*r;return Math.sqrt(2*Math.PI/r)*Math.pow(r/Math.E,r)*(1+1/(12*r)+1/(288*a)-139/(51840*t)-571/(2488320*i)+163879/(209018880*n)+5246819/(75246796800*n*r))}--r,e=qa[0];for(var o=1;o<qa.length;++o)e+=qa[o]/(r+o);var s=r+Bn+.5;return Math.sqrt(2*Math.PI)*Math.pow(s,r+.5)*Math.exp(-s)*e}fn.signature=gn,pn.signature=wt,mn.signature=wt,En.signature=wt,Cn.signature=gn,In.signature=wt,xt.signature="number";var Bn=4.7421875,qa=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],Dn="isZero",qA=ie(Dn,["typed","equalScalar"],r=>{var{typed:e,equalScalar:a}=r;return e(Dn,{"number | BigNumber | Complex | Fraction":t=>a(t,0),bigint:t=>t===0n,Unit:e.referToSelf(t=>i=>e.find(t,i.valueType())(i.value)),"Array | Matrix":e.referToSelf(t=>i=>ka(i,t))})}),KA=ie("compareUnits",["typed"],r=>{var{typed:e}=r;return{"Unit, Unit":e.referToSelf(a=>(t,i)=>{if(!t.equalBase(i))throw new Error("Cannot compare units with different base");return e.find(a,[t.valueType(),i.valueType()])(t.value,i.value)})}}),vt="equalScalar",OA=ie(vt,["typed","config"],r=>{var{typed:e,config:a}=r,t=KA({typed:e});return e(vt,{"boolean, boolean":function(i,n){return i===n},"number, number":function(i,n){return ht(i,n,a.relTol,a.absTol)},"BigNumber, BigNumber":function(i,n){return i.eq(n)||function(o,s){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(c<=0)throw new Error("Relative tolerance must be greater than 0");if(u<0)throw new Error("Absolute tolerance must be at least 0");return!o.isNaN()&&!s.isNaN()&&(o.isFinite()&&s.isFinite()?!!o.eq(s)||o.minus(s).abs().lte(o.constructor.max(o.constructor.max(o.abs(),s.abs()).mul(c),u)):o.eq(s))}(i,n,a.relTol,a.absTol)},"bigint, bigint":function(i,n){return i===n},"Fraction, Fraction":function(i,n){return i.equals(n)},"Complex, Complex":function(i,n){return function(o,s,c,u){return ht(o.re,s.re,c,u)&&ht(o.im,s.im,c,u)}(i,n,a.relTol,a.absTol)}},t)});ie(vt,["typed","config"],r=>{var{typed:e,config:a}=r;return e(vt,{"number, number":function(t,i){return ht(t,i,a.relTol,a.absTol)}})});var JA=ie("SparseMatrix",["typed","equalScalar","Matrix"],r=>{var{typed:e,equalScalar:a,Matrix:t}=r;function i(A,d){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if(d&&!ia(d))throw new Error("Invalid datatype: "+d);if(De(A))(function(b,h,l){h.type==="SparseMatrix"?(b._values=h._values?ye(h._values):void 0,b._index=ye(h._index),b._ptr=ye(h._ptr),b._size=ye(h._size),b._datatype=l||h._datatype):n(b,h.valueOf(),l||h._datatype)})(this,A,d);else if(A&&Qe(A.index)&&Qe(A.ptr)&&Qe(A.size))this._values=A.values,this._index=A.index,this._ptr=A.ptr,this._size=A.size,this._datatype=d||A.datatype;else if(Qe(A))n(this,A,d);else{if(A)throw new TypeError("Unsupported type of data ("+ma(A)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=d}}function n(A,d,b){A._values=[],A._index=[],A._ptr=[],A._datatype=b;var h=d.length,l=0,g=a,m=0;if(ia(b)&&(g=e.find(a,[b,b])||a,m=e.convert(0,b)),h>0){var E=0;do{A._ptr.push(A._index.length);for(var p=0;p<h;p++){var C=d[p];if(Qe(C)){if(E===0&&l<C.length&&(l=C.length),E<C.length){var I=C[E];g(I,m)||(A._values.push(I),A._index.push(p))}}else E===0&&l<1&&(l=1),g(C,m)||(A._values.push(C),A._index.push(p))}E++}while(E<l)}A._ptr.push(A._index.length),A._size=[h,l]}function o(A,d,b,h){if(b-d==0)return b;for(var l=d;l<b;l++)if(h[l]===A)return l;return d}function s(A,d,b,h,l,g,m){l.splice(A,0,h),g.splice(A,0,d);for(var E=b+1;E<m.length;E++)m[E]++}function c(A,d,b,h){var l=h||0,g=a,m=0;ia(A._datatype)&&(g=e.find(a,[A._datatype,A._datatype])||a,m=e.convert(0,A._datatype),l=e.convert(l,A._datatype));var E,p,C,I=!g(l,m),x=A._size[0],y=A._size[1];if(b>y){for(p=y;p<b;p++)if(A._ptr[p]=A._values.length,I)for(E=0;E<x;E++)A._values.push(l),A._index.push(E);A._ptr[b]=A._values.length}else b<y&&(A._ptr.splice(b+1,y-b),A._values.splice(A._ptr[b],A._values.length),A._index.splice(A._ptr[b],A._index.length));if(y=b,d>x){if(I){var w=0;for(p=0;p<y;p++){A._ptr[p]=A._ptr[p]+w,C=A._ptr[p+1]+w;var D=0;for(E=x;E<d;E++,D++)A._values.splice(C+D,0,l),A._index.splice(C+D,0,E),w++}A._ptr[y]=A._values.length}}else if(d<x){var F=0;for(p=0;p<y;p++){A._ptr[p]=A._ptr[p]-F;var j=A._ptr[p],M=A._ptr[p+1]-F;for(C=j;C<M;C++)(E=A._index[C])>d-1&&(A._values.splice(C,1),A._index.splice(C,1),F++)}A._ptr[p]=A._values.length}return A._size[0]=d,A._size[1]=b,A}function u(A,d,b,h,l){var g,m,E=h[0],p=h[1],C=[];for(g=0;g<E;g++)for(C[g]=[],m=0;m<p;m++)C[g][m]=0;for(m=0;m<p;m++)for(var I=b[m],x=b[m+1],y=I;y<x;y++)C[g=d[y]][m]=A?l?ye(A[y]):A[y]:1;return C}return i.prototype=new t,i.prototype.createSparseMatrix=function(A,d){return new i(A,d)},Object.defineProperty(i,"name",{value:"SparseMatrix"}),i.prototype.constructor=i,i.prototype.type="SparseMatrix",i.prototype.isSparseMatrix=!0,i.prototype.getDataType=function(){return mr(this._values,ma)},i.prototype.storage=function(){return"sparse"},i.prototype.datatype=function(){return this._datatype},i.prototype.create=function(A,d){return new i(A,d)},i.prototype.density=function(){var A=this._size[0],d=this._size[1];return A!==0&&d!==0?this._index.length/(A*d):0},i.prototype.subset=function(A,d,b){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return function(h,l){if(!ar(l))throw new TypeError("Invalid index");if(l.isScalar())return h.get(l.min());var g,m,E,p,C=l.size();if(C.length!==h._size.length)throw new pe(C.length,h._size.length);var I=l.min(),x=l.max();for(g=0,m=h._size.length;g<m;g++)Ie(I[g],h._size[g]),Ie(x[g],h._size[g]);var y=h._values,w=h._index,D=h._ptr,F=l.dimension(0),j=l.dimension(1),M=[],_=[];F.forEach(function(O,se){_[O]=se[0],M[O]=!0});var q=y?[]:void 0,V=[],J=[];return j.forEach(function(O){for(J.push(V.length),E=D[O],p=D[O+1];E<p;E++)g=w[E],M[g]===!0&&(V.push(_[g]),q&&q.push(y[E]))}),J.push(V.length),new i({values:q,index:V,ptr:J,size:C,datatype:h._datatype})}(this,A);case 2:case 3:return function(h,l,g,m){if(!l||l.isIndex!==!0)throw new TypeError("Invalid index");var E,p=l.size(),C=l.isScalar();if(De(g)?(E=g.size(),g=g.toArray()):E=Le(g),C){if(E.length!==0)throw new TypeError("Scalar expected");h.set(l.min(),g,m)}else{if(p.length!==1&&p.length!==2)throw new pe(p.length,h._size.length,"<");if(E.length<p.length){for(var I=0,x=0;p[I]===1&&E[I]===1;)I++;for(;p[I]===1;)x++,I++;g=sn(g,p.length,x,E)}if(!Sa(p,E))throw new pe(p,E,">");if(p.length===1)l.dimension(0).forEach(function(D,F){Ie(D),h.set([D,0],g[F[0]],m)});else{var y=l.dimension(0),w=l.dimension(1);y.forEach(function(D,F){Ie(D),w.forEach(function(j,M){Ie(j),h.set([D,j],g[F[0]][M[0]],m)})})}}return h}(this,A,d,b);default:throw new SyntaxError("Wrong number of arguments")}},i.prototype.get=function(A){if(!Qe(A))throw new TypeError("Array expected");if(A.length!==this._size.length)throw new pe(A.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var d=A[0],b=A[1];Ie(d,this._size[0]),Ie(b,this._size[1]);var h=o(d,this._ptr[b],this._ptr[b+1],this._index);return h<this._ptr[b+1]&&this._index[h]===d?this._values[h]:0},i.prototype.set=function(A,d,b){if(!Qe(A))throw new TypeError("Array expected");if(A.length!==this._size.length)throw new pe(A.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var h=A[0],l=A[1],g=this._size[0],m=this._size[1],E=a,p=0;ia(this._datatype)&&(E=e.find(a,[this._datatype,this._datatype])||a,p=e.convert(0,this._datatype)),(h>g-1||l>m-1)&&(c(this,Math.max(h+1,g),Math.max(l+1,m),b),g=this._size[0],m=this._size[1]),Ie(h,g),Ie(l,m);var C=o(h,this._ptr[l],this._ptr[l+1],this._index);return C<this._ptr[l+1]&&this._index[C]===h?E(d,p)?function(I,x,y,w,D){y.splice(I,1),w.splice(I,1);for(var F=x+1;F<D.length;F++)D[F]--}(C,l,this._values,this._index,this._ptr):this._values[C]=d:E(d,p)||s(C,h,l,d,this._values,this._index,this._ptr),this},i.prototype.resize=function(A,d,b){if(!st(A))throw new TypeError("Array or Matrix expected");var h=A.valueOf().map(l=>Array.isArray(l)&&l.length===1?l[0]:l);if(h.length!==2)throw new Error("Only two dimensions matrix are supported");return h.forEach(function(l){if(!be(l)||!Ee(l)||l<0)throw new TypeError("Invalid size, must contain positive integers (size: "+Fe(h)+")")}),c(b?this.clone():this,h[0],h[1],d)},i.prototype.reshape=function(A,d){if(!Qe(A))throw new TypeError("Array expected");if(A.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");A.forEach(function(_){if(!be(_)||!Ee(_)||_<=-2||_===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+Fe(A)+")")});var b=this._size[0]*this._size[1];if(b!==(A=pr(A,b))[0]*A[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var h=d?this.clone():this;if(this._size[0]===A[0]&&this._size[1]===A[1])return h;for(var l=[],g=0;g<h._ptr.length;g++)for(var m=0;m<h._ptr[g+1]-h._ptr[g];m++)l.push(g);for(var E=h._values.slice(),p=h._index.slice(),C=0;C<h._index.length;C++){var I=p[C],x=l[C],y=I*h._size[1]+x;l[C]=y%A[1],p[C]=Math.floor(y/A[1])}h._values.length=0,h._index.length=0,h._ptr.length=A[1]+1,h._size=A.slice();for(var w=0;w<h._ptr.length;w++)h._ptr[w]=0;for(var D=0;D<E.length;D++){var F=p[D],j=l[D],M=E[D];s(o(F,h._ptr[j],h._ptr[j+1],h._index),F,j,M,h._values,h._index,h._ptr)}return h},i.prototype.clone=function(){return new i({values:this._values?ye(this._values):void 0,index:ye(this._index),ptr:ye(this._ptr),size:ye(this._size),datatype:this._datatype})},i.prototype.size=function(){return this._size.slice(0)},i.prototype.map=function(A,d){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var b=this,h=this._size[0],l=this._size[1],g=yt(A,b,"map");return function(m,E,p,C,I,x,y){var w=[],D=[],F=[],j=a,M=0;ia(m._datatype)&&(j=e.find(a,[m._datatype,m._datatype])||a,M=e.convert(0,m._datatype));for(var _=function(de,$,me){var X=x(de,$,me);j(X,M)||(w.push(X),D.push($))},q=C;q<=I;q++){F.push(w.length);var V=m._ptr[q],J=m._ptr[q+1];if(y)for(var O=V;O<J;O++){var se=m._index[O];se>=E&&se<=p&&_(m._values[O],se-E,q-C)}else{for(var ue={},re=V;re<J;re++)ue[m._index[re]]=m._values[re];for(var le=E;le<=p;le++)_(le in ue?ue[le]:0,le-E,q-C)}}return F.push(w.length),new i({values:w,index:D,ptr:F,size:[p-E+1,I-C+1]})}(this,0,h-1,0,l-1,function(m,E,p){return g.fn(m,[E,p],b)},d)},i.prototype.forEach=function(A,d){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var b=this,h=this._size[0],l=this._size[1],g=yt(A,b,"forEach"),m=0;m<l;m++){var E=this._ptr[m],p=this._ptr[m+1];if(d)for(var C=E;C<p;C++){var I=this._index[C];g.fn(this._values[C],[I,m],b)}else{for(var x={},y=E;y<p;y++)x[this._index[y]]=this._values[y];for(var w=0;w<h;w++){var D=w in x?x[w]:0;g.fn(D,[w,m],b)}}}},i.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var A=this._size[1],d=0;d<A;d++)for(var b=this._ptr[d],h=this._ptr[d+1],l=b;l<h;l++){var g=this._index[l];yield{value:this._values[l],index:[g,d]}}},i.prototype.toArray=function(){return u(this._values,this._index,this._ptr,this._size,!0)},i.prototype.valueOf=function(){return u(this._values,this._index,this._ptr,this._size,!1)},i.prototype.format=function(A){for(var d=this._size[0],b=this._size[1],h=this.density(),l="Sparse Matrix ["+Fe(d,A)+" x "+Fe(b,A)+"] density: "+Fe(h,A)+`
|
|
23
|
-
`,
|
|
24
|
-
(`+Fe(this._index[p],A)+", "+Fe(g,A)+") ==> "+(this._values?Fe(this._values[p],A):"X");return l},i.prototype.toString=function(){return Fe(this.toArray())},i.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},i.prototype.diagonal=function(A){if(A){if(ve(A)&&(A=A.toNumber()),!be(A)||!Ee(A))throw new TypeError("The parameter k must be an integer number")}else A=0;var d=A>0?A:0,b=A<0?-A:0,h=this._size[0],l=this._size[1],g=Math.min(h-b,l-d),m=[],E=[],p=[];p[0]=0;for(var C=d;C<l&&m.length<g;C++)for(var I=this._ptr[C],x=this._ptr[C+1],y=I;y<x;y++){var w=this._index[y];if(w===C-d+b){m.push(this._values[y]),E[m.length-1]=w-b;break}}return p.push(m.length),new i({values:m,index:E,ptr:p,size:[g,1]})},i.fromJSON=function(A){return new i(A)},i.diagonal=function(A,d,b,h,l){if(!Qe(A))throw new TypeError("Array expected, size parameter");if(A.length!==2)throw new Error("Only two dimensions matrix are supported");if(A=A.map(function(V){if(ve(V)&&(V=V.toNumber()),!be(V)||!Ee(V)||V<1)throw new Error("Size values must be positive integers");return V}),b){if(ve(b)&&(b=b.toNumber()),!be(b)||!Ee(b))throw new TypeError("The parameter k must be an integer number")}else b=0;var g=a,m=0;ia(l)&&(g=e.find(a,[l,l])||a,m=e.convert(0,l));var E,p=b>0?b:0,C=b<0?-b:0,I=A[0],x=A[1],y=Math.min(I-C,x-p);if(Qe(d)){if(d.length!==y)throw new Error("Invalid value array length");E=function(V){return d[V]}}else if(De(d)){var w=d.size();if(w.length!==1||w[0]!==y)throw new Error("Invalid matrix length");E=function(V){return d.get([V])}}else E=function(){return d};for(var D=[],F=[],j=[],M=0;M<x;M++){j.push(D.length);var _=M-p;if(_>=0&&_<y){var q=E(_);g(q,m)||(F.push(_+C),D.push(q))}}return j.push(D.length),new i({values:D,index:F,ptr:j,size:[I,x]})},i.prototype.swapRows=function(A,d){if(!(be(A)&&Ee(A)&&be(d)&&Ee(d)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Ie(A,this._size[0]),Ie(d,this._size[0]),i._swapRows(A,d,this._size[1],this._values,this._index,this._ptr),this},i._forEachRow=function(A,d,b,h,l){for(var g=h[A],m=h[A+1],E=g;E<m;E++)l(b[E],d[E])},i._swapRows=function(A,d,b,h,l,g){for(var m=0;m<b;m++){var E=g[m],p=g[m+1],C=o(A,E,p,l),I=o(d,E,p,l);if(C<p&&I<p&&l[C]===A&&l[I]===d){if(h){var x=h[C];h[C]=h[I],h[I]=x}}else if(C<p&&l[C]===A&&(I>=p||l[I]!==d)){var y=h?h[C]:void 0;l.splice(I,0,d),h&&h.splice(I,0,y),l.splice(I<=C?C+1:C,1),h&&h.splice(I<=C?C+1:C,1)}else if(I<p&&l[I]===d&&(C>=p||l[C]!==A)){var w=h?h[I]:void 0;l.splice(C,0,A),h&&h.splice(C,0,w),l.splice(C<=I?I+1:I,1),h&&h.splice(C<=I?I+1:I,1)}}},i},{isClass:!0}),VA=ie("number",["typed"],r=>{var{typed:e}=r,a=e("number",{"":function(){return 0},number:function(t){return t},string:function(t){if(t==="NaN")return NaN;var i,n,o=(n=(i=t).match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/))?{input:i,radix:{"0b":2,"0o":8,"0x":16}[n[1]],integerPart:n[2],fractionalPart:n[3]}:null;if(o)return function(A){for(var d=parseInt(A.integerPart,A.radix),b=0,h=0;h<A.fractionalPart.length;h++)b+=parseInt(A.fractionalPart[h],A.radix)/Math.pow(A.radix,h+1);var l=d+b;if(isNaN(l))throw new SyntaxError('String "'+A.input+'" is not a valid number');return l}(o);var s=0,c=t.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);c&&(s=Number(c[2]),t=c[1]);var u=Number(t);if(isNaN(u))throw new SyntaxError('String "'+t+'" is not a valid number');if(c){if(u>2**s-1)throw new SyntaxError('String "'.concat(t,'" is out of range'));u>=2**(s-1)&&(u-=2**s)}return u},BigNumber:function(t){return t.toNumber()},bigint:function(t){return Number(t)},Fraction:function(t){return t.valueOf()},Unit:e.referToSelf(t=>i=>{var n=i.clone();return n.value=t(i.value),n}),null:function(t){return 0},"Unit, string | Unit":function(t,i){return t.toNumber(i)},"Array | Matrix":e.referToSelf(t=>i=>ka(i,t))});return a.fromJSON=function(t){return parseFloat(t.value)},a}),HA=ie("bignumber",["typed","BigNumber"],r=>{var{typed:e,BigNumber:a}=r;return e("bignumber",{"":function(){return new a(0)},number:function(t){return new a(t+"")},string:function(t){var i=t.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(i){var n=i[2],o=a(i[1]),s=new a(2).pow(Number(n));if(o.gt(s.sub(1)))throw new SyntaxError('String "'.concat(t,'" is out of range'));var c=new a(2).pow(Number(n)-1);return o.gte(c)?o.sub(s):o}return new a(t)},BigNumber:function(t){return t},bigint:function(t){return new a(t.toString())},Unit:e.referToSelf(t=>i=>{var n=i.clone();return n.value=t(i.value),n}),Fraction:function(t){return new a(String(t.n)).div(String(t.d)).times(String(t.s))},null:function(t){return new a(0)},"Array | Matrix":e.referToSelf(t=>i=>ka(i,t))})}),WA=ie("fraction",["typed","Fraction"],r=>{var{typed:e,Fraction:a}=r;return e("fraction",{number:function(t){if(!isFinite(t)||isNaN(t))throw new Error(t+" cannot be represented as a fraction");return new a(t)},string:function(t){return new a(t)},"number, number":function(t,i){return new a(t,i)},"bigint, bigint":function(t,i){return new a(t,i)},null:function(t){return new a(0)},BigNumber:function(t){return new a(t.toString())},bigint:function(t){return new a(t.toString())},Fraction:function(t){return t},Unit:e.referToSelf(t=>i=>{var n=i.clone();return n.value=t(i.value),n}),Object:function(t){return new a(t)},"Array | Matrix":e.referToSelf(t=>i=>ka(i,t))})}),yn="matrix",XA=ie(yn,["typed","Matrix","DenseMatrix","SparseMatrix"],r=>{var{typed:e,Matrix:a,DenseMatrix:t,SparseMatrix:i}=r;return e(yn,{"":function(){return n([])},string:function(o){return n([],o)},"string, string":function(o,s){return n([],o,s)},Array:function(o){return n(o)},Matrix:function(o){return n(o,o.storage())},"Array | Matrix, string":n,"Array | Matrix, string, string":n});function n(o,s,c){if(s==="dense"||s==="default"||s===void 0)return new t(o,c);if(s==="sparse")return new i(o,c);throw new TypeError("Unknown matrix type "+JSON.stringify(s)+".")}}),wn="unaryMinus",YA=ie(wn,["typed"],r=>{var{typed:e}=r;return e(wn,{number:Cn,"Complex | BigNumber | Fraction":a=>a.neg(),bigint:a=>-a,Unit:e.referToSelf(a=>t=>{var i=t.clone();return i.value=e.find(a,i.valueType())(t.value),i}),"Array | Matrix":e.referToSelf(a=>t=>ka(t,a,!0))})}),ZA=ie("abs",["typed"],r=>{var{typed:e}=r;return e("abs",{number:fn,"Complex | BigNumber | Fraction | Unit":a=>a.abs(),bigint:a=>a<0n?-a:a,"Array | Matrix":e.referToSelf(a=>t=>ka(t,a,!0))})}),xn="addScalar",$A=ie(xn,["typed"],r=>{var{typed:e}=r;return e(xn,{"number, number":pn,"Complex, Complex":function(a,t){return a.add(t)},"BigNumber, BigNumber":function(a,t){return a.plus(t)},"bigint, bigint":function(a,t){return a+t},"Fraction, Fraction":function(a,t){return a.add(t)},"Unit, Unit":e.referToSelf(a=>(t,i)=>{if(t.value===null||t.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!t.equalBase(i))throw new Error("Units do not match");var n=t.clone();return n.value=e.find(a,[n.valueType(),i.valueType()])(n.value,i.value),n.fixPrefix=!1,n})})}),vn="subtractScalar",ec=ie(vn,["typed"],r=>{var{typed:e}=r;return e(vn,{"number, number":mn,"Complex, Complex":function(a,t){return a.sub(t)},"BigNumber, BigNumber":function(a,t){return a.minus(t)},"bigint, bigint":function(a,t){return a-t},"Fraction, Fraction":function(a,t){return a.sub(t)},"Unit, Unit":e.referToSelf(a=>(t,i)=>{if(t.value===null||t.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!t.equalBase(i))throw new Error("Units do not match");var n=t.clone();return n.value=e.find(a,[n.valueType(),i.valueType()])(n.value,i.value),n.fixPrefix=!1,n})})}),ac=ie("matAlgo11xS0s",["typed","equalScalar"],r=>{var{typed:e,equalScalar:a}=r;return function(t,i,n,o){var s=t._values,c=t._index,u=t._ptr,A=t._size,d=t._datatype;if(!s)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var b,h=A[0],l=A[1],g=a,m=0,E=n;typeof d=="string"&&(b=d,g=e.find(a,[b,b]),m=e.convert(0,b),i=e.convert(i,b),E=e.find(n,[b,b]));for(var p=[],C=[],I=[],x=0;x<l;x++){I[x]=C.length;for(var y=u[x],w=u[x+1],D=y;D<w;D++){var F=c[D],j=o?E(i,s[D]):E(s[D],i);g(j,m)||(C.push(F),p.push(j))}}return I[l]=C.length,t.createSparseMatrix({values:p,index:C,ptr:I,size:[h,l],datatype:b})}}),tc=ie("matAlgo14xDs",["typed"],r=>{var{typed:e}=r;return function(t,i,n,o){var s,c=t._data,u=t._size,A=t._datatype,d=n;typeof A=="string"&&(s=A,i=e.convert(i,s),d=e.find(n,[s,s]));var b=u.length>0?a(d,0,u,u[0],c,i,o):[];return t.createDenseMatrix({data:b,size:ye(u),datatype:s})};function a(t,i,n,o,s,c,u){var A=[];if(i===n.length-1)for(var d=0;d<o;d++)A[d]=u?t(c,s[d]):t(s[d],c);else for(var b=0;b<o;b++)A[b]=a(t,i+1,n,n[i+1],s[b],c,u);return A}}),rc=ie("multiplyScalar",["typed"],r=>{var{typed:e}=r;return e("multiplyScalar",{"number, number":En,"Complex, Complex":function(a,t){return a.mul(t)},"BigNumber, BigNumber":function(a,t){return a.times(t)},"bigint, bigint":function(a,t){return a*t},"Fraction, Fraction":function(a,t){return a.mul(t)},"number | Fraction | BigNumber | Complex, Unit":(a,t)=>t.multiply(a),"Unit, number | Fraction | BigNumber | Complex | Unit":(a,t)=>a.multiply(t)})}),Fn="multiply",ic=ie(Fn,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],r=>{var{typed:e,matrix:a,addScalar:t,multiplyScalar:i,equalScalar:n,dot:o}=r,s=ac({typed:e,equalScalar:n}),c=tc({typed:e});function u(h,l){switch(h.length){case 1:switch(l.length){case 1:if(h[0]!==l[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(h[0]!==l[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+h[0]+") must match Matrix rows ("+l[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+l.length+" dimensions)")}break;case 2:switch(l.length){case 1:if(h[1]!==l[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+h[1]+") must match Vector length ("+l[0]+")");break;case 2:if(h[1]!==l[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+h[1]+") must match Matrix B rows ("+l[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+l.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+h.length+" dimensions)")}}function A(h,l){if(l.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return function(g,m){var E,p=g._data,C=g._size,I=g._datatype||g.getDataType(),x=m._data,y=m._size,w=m._datatype||m.getDataType(),D=C[0],F=y[1],j=t,M=i;I&&w&&I===w&&typeof I=="string"&&I!=="mixed"&&(E=I,j=e.find(t,[E,E]),M=e.find(i,[E,E]));for(var _=[],q=0;q<F;q++){for(var V=M(p[0],x[0][q]),J=1;J<D;J++)V=j(V,M(p[J],x[J][q]));_[q]=V}return g.createDenseMatrix({data:_,size:[F],datatype:I===g._datatype&&w===m._datatype?E:void 0})}(h,l)}var d=e("_multiplyMatrixVector",{"DenseMatrix, any":function(h,l){var g,m=h._data,E=h._size,p=h._datatype||h.getDataType(),C=l._data,I=l._datatype||l.getDataType(),x=E[0],y=E[1],w=t,D=i;p&&I&&p===I&&typeof p=="string"&&p!=="mixed"&&(g=p,w=e.find(t,[g,g]),D=e.find(i,[g,g]));for(var F=[],j=0;j<x;j++){for(var M=m[j],_=D(M[0],C[0]),q=1;q<y;q++)_=w(_,D(M[q],C[q]));F[j]=_}return h.createDenseMatrix({data:F,size:[x],datatype:p===h._datatype&&I===l._datatype?g:void 0})},"SparseMatrix, any":function(h,l){var g=h._values,m=h._index,E=h._ptr,p=h._datatype||h._data===void 0?h._datatype:h.getDataType();if(!g)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var C,I=l._data,x=l._datatype||l.getDataType(),y=h._size[0],w=l._size[0],D=[],F=[],j=[],M=t,_=i,q=n,V=0;p&&x&&p===x&&typeof p=="string"&&p!=="mixed"&&(C=p,M=e.find(t,[C,C]),_=e.find(i,[C,C]),q=e.find(n,[C,C]),V=e.convert(0,C));var J=[],O=[];j[0]=0;for(var se=0;se<w;se++){var ue=I[se];if(!q(ue,V))for(var re=E[se],le=E[se+1],de=re;de<le;de++){var $=m[de];O[$]?J[$]=M(J[$],_(ue,g[de])):(O[$]=!0,F.push($),J[$]=_(ue,g[de]))}}for(var me=F.length,X=0;X<me;X++){var ee=F[X];D[X]=J[ee]}return j[1]=F.length,h.createSparseMatrix({values:D,index:F,ptr:j,size:[y,1],datatype:p===h._datatype&&x===l._datatype?C:void 0})}}),b=e("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(h,l){var g,m=h._data,E=h._size,p=h._datatype||h.getDataType(),C=l._data,I=l._size,x=l._datatype||l.getDataType(),y=E[0],w=E[1],D=I[1],F=t,j=i;p&&x&&p===x&&typeof p=="string"&&p!=="mixed"&&p!=="mixed"&&(g=p,F=e.find(t,[g,g]),j=e.find(i,[g,g]));for(var M=[],_=0;_<y;_++){var q=m[_];M[_]=[];for(var V=0;V<D;V++){for(var J=j(q[0],C[0][V]),O=1;O<w;O++)J=F(J,j(q[O],C[O][V]));M[_][V]=J}}return h.createDenseMatrix({data:M,size:[y,D],datatype:p===h._datatype&&x===l._datatype?g:void 0})},"DenseMatrix, SparseMatrix":function(h,l){var g=h._data,m=h._size,E=h._datatype||h.getDataType(),p=l._values,C=l._index,I=l._ptr,x=l._size,y=l._datatype||l._data===void 0?l._datatype:l.getDataType();if(!p)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var w,D=m[0],F=x[1],j=t,M=i,_=n,q=0;E&&y&&E===y&&typeof E=="string"&&E!=="mixed"&&(w=E,j=e.find(t,[w,w]),M=e.find(i,[w,w]),_=e.find(n,[w,w]),q=e.convert(0,w));for(var V=[],J=[],O=[],se=l.createSparseMatrix({values:V,index:J,ptr:O,size:[D,F],datatype:E===h._datatype&&y===l._datatype?w:void 0}),ue=0;ue<F;ue++){O[ue]=J.length;var re=I[ue],le=I[ue+1];if(le>re)for(var de=0,$=0;$<D;$++){for(var me=$+1,X=void 0,ee=re;ee<le;ee++){var Ae=C[ee];de!==me?(X=M(g[$][Ae],p[ee]),de=me):X=j(X,M(g[$][Ae],p[ee]))}de!==me||_(X,q)||(J.push($),V.push(X))}}return O[F]=J.length,se},"SparseMatrix, DenseMatrix":function(h,l){var g=h._values,m=h._index,E=h._ptr,p=h._datatype||h._data===void 0?h._datatype:h.getDataType();if(!g)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var C,I=l._data,x=l._datatype||l.getDataType(),y=h._size[0],w=l._size[0],D=l._size[1],F=t,j=i,M=n,_=0;p&&x&&p===x&&typeof p=="string"&&p!=="mixed"&&(C=p,F=e.find(t,[C,C]),j=e.find(i,[C,C]),M=e.find(n,[C,C]),_=e.convert(0,C));for(var q=[],V=[],J=[],O=h.createSparseMatrix({values:q,index:V,ptr:J,size:[y,D],datatype:p===h._datatype&&x===l._datatype?C:void 0}),se=[],ue=[],re=0;re<D;re++){J[re]=V.length;for(var le=re+1,de=0;de<w;de++){var $=I[de][re];if(!M($,_))for(var me=E[de],X=E[de+1],ee=me;ee<X;ee++){var Ae=m[ee];ue[Ae]!==le?(ue[Ae]=le,V.push(Ae),se[Ae]=j($,g[ee])):se[Ae]=F(se[Ae],j($,g[ee]))}}for(var Ce=J[re],we=V.length,Ne=Ce;Ne<we;Ne++){var Je=V[Ne];q[Ne]=se[Je]}}return J[D]=V.length,O},"SparseMatrix, SparseMatrix":function(h,l){var g,m=h._values,E=h._index,p=h._ptr,C=h._datatype||h._data===void 0?h._datatype:h.getDataType(),I=l._values,x=l._index,y=l._ptr,w=l._datatype||l._data===void 0?l._datatype:l.getDataType(),D=h._size[0],F=l._size[1],j=m&&I,M=t,_=i;C&&w&&C===w&&typeof C=="string"&&C!=="mixed"&&(g=C,M=e.find(t,[g,g]),_=e.find(i,[g,g]));for(var q,V,J,O,se,ue,re,le,de=j?[]:void 0,$=[],me=[],X=h.createSparseMatrix({values:de,index:$,ptr:me,size:[D,F],datatype:C===h._datatype&&w===l._datatype?g:void 0}),ee=j?[]:void 0,Ae=[],Ce=0;Ce<F;Ce++){me[Ce]=$.length;var we=Ce+1;for(se=y[Ce],ue=y[Ce+1],O=se;O<ue;O++)if(le=x[O],j)for(V=p[le],J=p[le+1],q=V;q<J;q++)Ae[re=E[q]]!==we?(Ae[re]=we,$.push(re),ee[re]=_(I[O],m[q])):ee[re]=M(ee[re],_(I[O],m[q]));else for(V=p[le],J=p[le+1],q=V;q<J;q++)Ae[re=E[q]]!==we&&(Ae[re]=we,$.push(re));if(j)for(var Ne=me[Ce],Je=$.length,Ve=Ne;Ve<Je;Ve++){var et=$[Ve];de[Ve]=ee[et]}}return me[F]=$.length,X}});return e(Fn,i,{"Array, Array":e.referTo("Matrix, Matrix",h=>(l,g)=>{u(Le(l),Le(g));var m=h(a(l),a(g));return De(m)?m.valueOf():m}),"Matrix, Matrix":function(h,l){var g=h.size(),m=l.size();return u(g,m),g.length===1?m.length===1?function(E,p,C){if(C===0)throw new Error("Cannot multiply two empty vectors");return o(E,p)}(h,l,g[0]):A(h,l):m.length===1?d(h,l):b(h,l)},"Matrix, Array":e.referTo("Matrix,Matrix",h=>(l,g)=>h(l,a(g))),"Array, Matrix":e.referToSelf(h=>(l,g)=>h(a(l,g.storage()),g)),"SparseMatrix, any":function(h,l){return s(h,l,i,!1)},"DenseMatrix, any":function(h,l){return c(h,l,i,!1)},"any, SparseMatrix":function(h,l){return s(l,h,i,!0)},"any, DenseMatrix":function(h,l){return c(l,h,i,!0)},"Array, any":function(h,l){return c(a(h),l,i,!1).valueOf()},"any, Array":function(h,l){return c(a(l),h,i,!0).valueOf()},"any, any":i,"any, any, ...any":e.referToSelf(h=>(l,g,m)=>{for(var E=h(l,g),p=0;p<m.length;p++)E=h(E,m[p]);return E})})}),Qn="conj",nc=ie(Qn,["typed"],r=>{var{typed:e}=r;return e(Qn,{"number | BigNumber | Fraction":a=>a,Complex:a=>a.conjugate(),Unit:e.referToSelf(a=>t=>new t.constructor(a(t.toNumeric()),t.formatUnits())),"Array | Matrix":e.referToSelf(a=>t=>ka(t,a))})}),kn="identity",oc=ie(kn,["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],r=>{var{typed:e,config:a,matrix:t,BigNumber:i,DenseMatrix:n,SparseMatrix:o}=r;return e(kn,{"":function(){return a.matrix==="Matrix"?t([]):[]},string:function(u){return t(u)},"number | BigNumber":function(u){return c(u,u,a.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(u,A){return c(u,u,A)},"number | BigNumber, number | BigNumber":function(u,A){return c(u,A,a.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(u,A,d){return c(u,A,d)},Array:function(u){return s(u)},"Array, string":function(u,A){return s(u,A)},Matrix:function(u){return s(u.valueOf(),u.storage())},"Matrix, string":function(u,A){return s(u.valueOf(),A)}});function s(u,A){switch(u.length){case 0:return A?t(A):[];case 1:return c(u[0],u[0],A);case 2:return c(u[0],u[1],A);default:throw new Error("Vector containing two values expected")}}function c(u,A,d){var b=ve(u)||ve(A)?i:null;if(ve(u)&&(u=u.toNumber()),ve(A)&&(A=A.toNumber()),!Ee(u)||u<1)throw new Error("Parameters in function identity must be positive integers");if(!Ee(A)||A<1)throw new Error("Parameters in function identity must be positive integers");var h=b?new i(1):1,l=b?new b(0):0,g=[u,A];if(d){if(d==="sparse")return o.diagonal(g,h,0,l);if(d==="dense")return n.diagonal(g,h,0,l);throw new TypeError('Unknown matrix type "'.concat(d,'"'))}for(var m=gr([],g,l),E=u<A?u:A,p=0;p<E;p++)m[p][p]=h;return m}});function sc(){throw new Error('No "bignumber" implementation available')}function Ac(){throw new Error('No "fraction" implementation available')}var jn,Mn="size",cc=ie(Mn,["typed","config","?matrix"],r=>{var{typed:e,config:a,matrix:t}=r;return e(Mn,{Matrix:function(i){return i.create(i.size(),"number")},Array:Le,string:function(i){return a.matrix==="Array"?[i.length]:t([i.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(i){return a.matrix==="Array"?[]:t?t([],"dense","number"):function(){throw new Error('No "matrix" implementation available')}()}})}),uc=ie("numeric",["number","?bignumber","?fraction"],r=>{var{number:e,bignumber:a,fraction:t}=r,i={string:!0,number:!0,BigNumber:!0,Fraction:!0},n={number:o=>e(o),BigNumber:a?o=>a(o):sc,bigint:o=>BigInt(o),Fraction:t?o=>t(o):Ac};return function(o){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number";if((arguments.length>2?arguments[2]:void 0)!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var c=ma(o);if(!(c in i))throw new TypeError("Cannot convert "+o+' of type "'+c+'"; valid input types are '+Object.keys(i).join(", "));if(!(s in n))throw new TypeError("Cannot convert "+o+' to type "'+s+'"; valid output types are '+Object.keys(n).join(", "));return s===c?o:n[s](o)}}),Rn="divideScalar",dc=ie(Rn,["typed","numeric"],r=>{var{typed:e,numeric:a}=r;return e(Rn,{"number, number":function(t,i){return t/i},"Complex, Complex":function(t,i){return t.div(i)},"BigNumber, BigNumber":function(t,i){return t.div(i)},"bigint, bigint":function(t,i){return t/i},"Fraction, Fraction":function(t,i){return t.div(i)},"Unit, number | Complex | Fraction | BigNumber | Unit":(t,i)=>t.divide(i),"number | Fraction | Complex | BigNumber, Unit":(t,i)=>i.divideInto(t)})}),hc=ie("pow",["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],r=>{var{typed:e,config:a,identity:t,multiply:i,matrix:n,inv:o,number:s,fraction:c,Complex:u}=r;return e("pow",{"number, number":A,"Complex, Complex":function(h,l){return h.pow(l)},"BigNumber, BigNumber":function(h,l){return l.isInteger()||h>=0||a.predictable?h.pow(l):new u(h.toNumber(),0).pow(l.toNumber(),0)},"bigint, bigint":(h,l)=>h**l,"Fraction, Fraction":function(h,l){var g=h.pow(l);if(g!=null)return g;if(a.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return A(h.valueOf(),l.valueOf())},"Array, number":d,"Array, BigNumber":function(h,l){return d(h,l.toNumber())},"Matrix, number":b,"Matrix, BigNumber":function(h,l){return b(h,l.toNumber())},"Unit, number | BigNumber":function(h,l){return h.pow(l)}});function A(h,l){if(a.predictable&&!Ee(l)&&h<0)try{var g=c(l),m=s(g);if((l===m||Math.abs((l-m)/l)<1e-14)&&g.d%2n===1n)return(g.n%2n===0n?1:-1)*Math.pow(-h,l)}catch{}return a.predictable&&(h<-1&&l===1/0||h>-1&&h<0&&l===-1/0)?NaN:Ee(l)||h>=0||a.predictable?In(h,l):h*h<1&&l===1/0||h*h>1&&l===-1/0?0:new u(h,0).pow(l,0)}function d(h,l){if(!Ee(l))throw new TypeError("For A^b, b must be an integer (value is "+l+")");var g=Le(h);if(g.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+g.length+" dimensions)");if(g[0]!==g[1])throw new Error("For A^b, A must be square (size is "+g[0]+"x"+g[1]+")");if(l<0)try{return d(o(h),-l)}catch(p){throw p.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+l+")"):p}for(var m=t(g[0]).valueOf(),E=h;l>=1;)1&~l||(m=i(E,m)),l>>=1,E=i(E,E);return m}function b(h,l){return n(d(h.valueOf(),l))}}),lc=ie("dot",["typed","addScalar","multiplyScalar","conj","size"],r=>{var{typed:e,addScalar:a,multiplyScalar:t,conj:i,size:n}=r;return e("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(c,u){var A=o(c,u),d=De(c)?c._data:c,b=De(c)?c._datatype||c.getDataType():void 0,h=De(u)?u._data:u,l=De(u)?u._datatype||u.getDataType():void 0,g=s(c).length===2,m=s(u).length===2,E=a,p=t;if(b&&l&&b===l&&typeof b=="string"&&b!=="mixed"){var C=b;E=e.find(a,[C,C]),p=e.find(t,[C,C])}if(!g&&!m){for(var I=p(i(d[0]),h[0]),x=1;x<A;x++)I=E(I,p(i(d[x]),h[x]));return I}if(!g&&m){for(var y=p(i(d[0]),h[0][0]),w=1;w<A;w++)y=E(y,p(i(d[w]),h[w][0]));return y}if(g&&!m){for(var D=p(i(d[0][0]),h[0]),F=1;F<A;F++)D=E(D,p(i(d[F][0]),h[F]));return D}if(g&&m){for(var j=p(i(d[0][0]),h[0][0]),M=1;M<A;M++)j=E(j,p(i(d[M][0]),h[M][0]));return j}},"SparseMatrix, SparseMatrix":function(c,u){o(c,u);for(var A=c._index,d=c._values,b=u._index,h=u._values,l=0,g=a,m=t,E=0,p=0;E<A.length&&p<b.length;){var C=A[E],I=b[p];C<I?E++:C>I?p++:C===I&&(l=g(l,m(d[E],h[p])),E++,p++)}return l}});function o(c,u){var A,d,b=s(c),h=s(u);if(b.length===1)A=b[0];else{if(b.length!==2||b[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+b.join(", ")+")");A=b[0]}if(h.length===1)d=h[0];else{if(h.length!==2||h[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+h.join(", ")+")");d=h[0]}if(A!==d)throw new RangeError("Vectors must have equal length ("+A+" != "+d+")");if(A===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return A}function s(c){return De(c)?c.size():n(c)}}),bc=ie("det",["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],r=>{var{typed:e,matrix:a,subtractScalar:t,multiply:i,divideScalar:n,isZero:o,unaryMinus:s}=r;return e("det",{any:function(c){return ye(c)},"Array | Matrix":function(c){var u;switch((u=De(c)?c.size():Array.isArray(c)?(c=a(c)).size():[]).length){case 0:return ye(c);case 1:if(u[0]===1)return ye(c.valueOf()[0]);if(u[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+Fe(u)+")");case 2:var A=u[0],d=u[1];if(A===d)return function(b,h){if(h===1)return ye(b[0][0]);if(h===2)return t(i(b[0][0],b[1][1]),i(b[1][0],b[0][1]));for(var l=!1,g=new Array(h).fill(0).map((F,j)=>j),m=0;m<h;m++){var E=g[m];if(o(b[E][m])){var p=void 0;for(p=m+1;p<h;p++)if(!o(b[g[p]][m])){E=g[p],g[p]=g[m],g[m]=E,l=!l;break}if(p===h)return b[E][m]}for(var C=b[E][m],I=m===0?1:b[g[m-1]][m-1],x=m+1;x<h;x++)for(var y=g[x],w=m+1;w<h;w++)b[y][w]=n(t(i(b[y][w],C),i(b[y][m],b[E][w])),I)}var D=b[g[h-1]][h-1];return l?s(D):D}(c.clone().valueOf(),A);if(d===0)return 1;throw new RangeError("Matrix must be square (size: "+Fe(u)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+Fe(u)+")")}}})}),gc=ie("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],r=>{var{typed:e,matrix:a,divideScalar:t,addScalar:i,multiply:n,unaryMinus:o,det:s,identity:c,abs:u}=r;return e("inv",{"Array | Matrix":function(d){var b=De(d)?d.size():Le(d);switch(b.length){case 1:if(b[0]===1)return De(d)?a([t(1,d.valueOf()[0])]):[t(1,d[0])];throw new RangeError("Matrix must be square (size: "+Fe(b)+")");case 2:var h=b[0],l=b[1];if(h===l)return De(d)?a(A(d.valueOf(),h,l),d.storage()):A(d,h,l);throw new RangeError("Matrix must be square (size: "+Fe(b)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+Fe(b)+")")}},any:function(d){return t(1,d)}});function A(d,b,h){var l,g,m,E,p;if(b===1){if((E=d[0][0])===0)throw Error("Cannot calculate inverse, determinant is zero");return[[t(1,E)]]}if(b===2){var C=s(d);if(C===0)throw Error("Cannot calculate inverse, determinant is zero");return[[t(d[1][1],C),t(o(d[0][1]),C)],[t(o(d[1][0]),C),t(d[0][0],C)]]}var I=d.concat();for(l=0;l<b;l++)I[l]=I[l].concat();for(var x=c(b).valueOf(),y=0;y<h;y++){var w=u(I[y][y]),D=y;for(l=y+1;l<b;)u(I[l][y])>w&&(w=u(I[l][y]),D=l),l++;if(w===0)throw Error("Cannot calculate inverse, determinant is zero");(l=D)!==y&&(p=I[y],I[y]=I[l],I[l]=p,p=x[y],x[y]=x[l],x[l]=p);var F=I[y],j=x[y];for(l=0;l<b;l++){var M=I[l],_=x[l];if(l!==y){if(M[y]!==0){for(m=t(o(M[y]),F[y]),g=y;g<h;g++)M[g]=i(M[g],n(m,F[g]));for(g=0;g<h;g++)_[g]=i(_[g],n(m,j[g]))}}else{for(m=F[y],g=y;g<h;g++)M[g]=t(M[g],m);for(g=0;g<h;g++)_[g]=t(_[g],m)}}}return x}}),Sn="gamma",fc=ie(Sn,["typed","config","multiplyScalar","pow","BigNumber","Complex"],r=>{var{typed:e,config:a,multiplyScalar:t,pow:i,BigNumber:n,Complex:o}=r;return e(Sn,{number:xt,Complex:function c(u){if(u.im===0)return xt(u.re);if(u.re<.5){var A=new o(1-u.re,-u.im),d=new o(Math.PI*u.re,Math.PI*u.im);return new o(Math.PI).div(d.sin()).div(c(A))}u=new o(u.re-1,u.im);for(var b=new o(qa[0],0),h=1;h<qa.length;++h){var l=new o(qa[h],0);b=b.add(l.div(u.add(h)))}var g=new o(u.re+Bn+.5,u.im),m=Math.sqrt(2*Math.PI),E=g.pow(u.add(.5)),p=g.neg().exp();return b.mul(m).mul(E).mul(p)},BigNumber:function(c){if(c.isInteger())return c.isNegative()||c.isZero()?new n(1/0):s(c.minus(1));if(!c.isFinite())return new n(c.isNegative()?NaN:1/0);throw new Error("Integer BigNumber expected")}});function s(c){if(c<8)return new n([1,1,2,6,24,120,720,5040][c]);var u=a.precision+(0|Math.log(c.toNumber())),A=n.clone({precision:u});if(c%2==1)return c.times(s(new n(c-1)));for(var d=c,b=new A(c),h=c.toNumber();d>2;)h+=d-=2,b=b.times(h);return new n(b.toPrecision(n.precision))}}),Ft=RA({config:va}),Cr=TA({}),Tn=UA({}),Ir=LA({}),Br=PA({Matrix:Ir}),Be=Ps({BigNumber:Ft,Complex:Cr,DenseMatrix:Br,Fraction:Tn}),pc=ZA({typed:Be}),Dr=$A({typed:Be}),mc=nc({typed:Be}),yr=OA({config:va,typed:Be}),Ec=qA({equalScalar:yr,typed:Be}),wr=rc({typed:Be}),Nn=VA({typed:Be}),Un=JA({Matrix:Ir,equalScalar:yr,typed:Be}),Cc=ec({typed:Be}),Ic=HA({BigNumber:Ft,typed:Be}),Ka=XA({DenseMatrix:Br,Matrix:Ir,SparseMatrix:Un,typed:Be}),Ln=WA({Fraction:Tn,typed:Be}),Gn=oc({BigNumber:Ft,DenseMatrix:Br,SparseMatrix:Un,config:va,matrix:Ka,typed:Be}),Bc=uc({bignumber:Ic,fraction:Ln,number:Nn}),Dc=cc({matrix:Ka,config:va,typed:Be}),_n=YA({typed:Be}),zn=dc({numeric:Bc,typed:Be}),xr=ic({addScalar:Dr,dot:lc({addScalar:Dr,conj:mc,multiplyScalar:wr,size:Dc,typed:Be}),equalScalar:yr,matrix:Ka,multiplyScalar:wr,typed:Be}),Pn=fc({BigNumber:Ft,Complex:Cr,config:va,multiplyScalar:wr,pow:hc({Complex:Cr,config:va,fraction:Ln,identity:Gn,inv:gc({abs:pc,addScalar:Dr,det:bc({divideScalar:zn,isZero:Ec,matrix:Ka,multiply:xr,subtractScalar:Cc,typed:Be,unaryMinus:_n}),divideScalar:zn,identity:Gn,matrix:Ka,multiply:xr,typed:Be,unaryMinus:_n}),matrix:Ka,multiply:xr,number:Nn,typed:Be}),typed:Be});class yc{constructor(e){if(e){const{toElementFn:a}=e;if(typeof a=="function")this._toElementFn=a;else if(a)throw new TypeError("toElementFn must be a function type")}}_toElementFn;get toElementFn(){return this._toElementFn}*[Symbol.iterator](...e){yield*this._getIterator(...e)}*values(){for(const e of this)yield e}every(e,a){let t=0;for(const i of this)if(!e.call(a,i,t++,this))return!1;return!0}some(e,a){let t=0;for(const i of this)if(e.call(a,i,t++,this))return!0;return!1}forEach(e,a){let t=0;for(const i of this)e.call(a,i,t++,this)}find(e,a){let t=0;for(const i of this)if(e.call(a,i,t++,this))return i}has(e){for(const a of this)if(a===e)return!0;return!1}reduce(e,a){let t=a??0,i=0;for(const n of this)t=e(t,n,i++,this);return t}toArray(){return[...this]}toVisual(){return[...this]}print(){console.log(this.toVisual())}}/**
|
|
33
|
+
*/var Ki,Sa,be=9e15,Ya=1e9,ag="0123456789abcdef",it="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",It="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",eg={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-be,maxE:be,crypto:!1},nA=!0,rt="[DecimalError] ",Ka=rt+"Invalid argument: ",Ti=rt+"Precision limit exceeded",qi=rt+"crypto unavailable",Oi="[object Decimal]",$A=Math.floor,PA=Math.pow,_n=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,$n=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Ao=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Pi=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Da=1e7,ao=it.length-1,tg=It.length-1,Y={toStringTag:Oi};function _A(t){var A,a,e,g=t.length-1,i="",I=t[0];if(g>0){for(i+=I,A=1;A<g;A++)(a=7-(e=t[A]+"").length)&&(i+=Ta(a)),i+=e;(a=7-(e=(I=t[A])+"").length)&&(i+=Ta(a))}else if(I===0)return"0";for(;I%10==0;)I/=10;return i+I}function Ia(t,A,a){if(t!==~~t||t<A||t>a)throw Error(Ka+t)}function Se(t,A,a,e){var g,i,I,r;for(i=t[0];i>=10;i/=10)--A;return--A<0?(A+=7,g=0):(g=Math.ceil((A+1)/7),A%=7),i=PA(10,7-A),r=t[g]%i|0,e==null?A<3?(A==0?r=r/100|0:A==1&&(r=r/10|0),I=a<4&&r==99999||a>3&&r==49999||r==5e4||r==0):I=(a<4&&r+1==i||a>3&&r+1==i/2)&&(t[g+1]/i/100|0)==PA(10,A-2)-1||(r==i/2||r==0)&&!(t[g+1]/i/100|0):A<4?(A==0?r=r/1e3|0:A==1?r=r/100|0:A==2&&(r=r/10|0),I=(e||a<4)&&r==9999||!e&&a>3&&r==4999):I=((e||a<4)&&r+1==i||!e&&a>3&&r+1==i/2)&&(t[g+1]/i/1e3|0)==PA(10,A-3)-1,I}function nt(t,A,a){for(var e,g,i=[0],I=0,r=t.length;I<r;){for(g=i.length;g--;)i[g]*=A;for(i[0]+=ag.indexOf(t.charAt(I++)),e=0;e<i.length;e++)i[e]>a-1&&(i[e+1]===void 0&&(i[e+1]=0),i[e+1]+=i[e]/a|0,i[e]%=a)}return i.reverse()}Y.absoluteValue=Y.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),iA(t)},Y.ceil=function(){return iA(new this.constructor(this),this.e+1,2)},Y.clampedTo=Y.clamp=function(t,A){var a=this,e=a.constructor;if(t=new e(t),A=new e(A),!t.s||!A.s)return new e(NaN);if(t.gt(A))throw Error(Ka+A);return a.cmp(t)<0?t:a.cmp(A)>0?A:new e(a)},Y.comparedTo=Y.cmp=function(t){var A,a,e,g,i=this,I=i.d,r=(t=new i.constructor(t)).d,o=i.s,B=t.s;if(!I||!r)return o&&B?o!==B?o:I===r?0:!I^o<0?1:-1:NaN;if(!I[0]||!r[0])return I[0]?o:r[0]?-B:0;if(o!==B)return o;if(i.e!==t.e)return i.e>t.e^o<0?1:-1;for(A=0,a=(e=I.length)<(g=r.length)?e:g;A<a;++A)if(I[A]!==r[A])return I[A]>r[A]^o<0?1:-1;return e===g?0:e>g^o<0?1:-1},Y.cosine=Y.cos=function(){var t,A,a=this,e=a.constructor;return a.d?a.d[0]?(t=e.precision,A=e.rounding,e.precision=t+Math.max(a.e,a.sd())+7,e.rounding=1,a=function(g,i){var I,r,o;if(i.isZero())return i;r=i.d.length,r<32?o=(1/Ct(4,I=Math.ceil(r/3))).toString():(I=16,o="2.3283064365386962890625e-10"),g.precision+=I,i=ue(g,1,i.times(o),new g(1));for(var B=I;B--;){var n=i.times(i);i=n.times(n).minus(n).times(8).plus(1)}return g.precision-=I,i}(e,_i(e,a)),e.precision=t,e.rounding=A,iA(Sa==2||Sa==3?a.neg():a,t,A,!0)):new e(1):new e(NaN)},Y.cubeRoot=Y.cbrt=function(){var t,A,a,e,g,i,I,r,o,B,n=this,s=n.constructor;if(!n.isFinite()||n.isZero())return new s(n);for(nA=!1,(i=n.s*PA(n.s*n,1/3))&&Math.abs(i)!=1/0?e=new s(i.toString()):(a=_A(n.d),(i=((t=n.e)-a.length+1)%3)&&(a+=i==1||i==-2?"0":"00"),i=PA(a,1/3),t=$A((t+1)/3)-(t%3==(t<0?-1:2)),(e=new s(a=i==1/0?"5e"+t:(a=i.toExponential()).slice(0,a.indexOf("e")+1)+t)).s=n.s),I=(t=s.precision)+3;;)if(B=(o=(r=e).times(r).times(r)).plus(n),e=kA(B.plus(n).times(r),B.plus(o),I+2,1),_A(r.d).slice(0,I)===(a=_A(e.d)).slice(0,I)){if((a=a.slice(I-3,I+1))!="9999"&&(g||a!="4999")){+a&&(+a.slice(1)||a.charAt(0)!="5")||(iA(e,t+1,1),A=!e.times(e).times(e).eq(n));break}if(!g&&(iA(r,t+1,0),r.times(r).times(r).eq(n))){e=r;break}I+=4,g=1}return nA=!0,iA(e,t,s.rounding,A)},Y.decimalPlaces=Y.dp=function(){var t,A=this.d,a=NaN;if(A){if(a=7*((t=A.length-1)-$A(this.e/7)),t=A[t])for(;t%10==0;t/=10)a--;a<0&&(a=0)}return a},Y.dividedBy=Y.div=function(t){return kA(this,new this.constructor(t))},Y.dividedToIntegerBy=Y.divToInt=function(t){var A=this.constructor;return iA(kA(this,new A(t),0,1,1),A.precision,A.rounding)},Y.equals=Y.eq=function(t){return this.cmp(t)===0},Y.floor=function(){return iA(new this.constructor(this),this.e+1,3)},Y.greaterThan=Y.gt=function(t){return this.cmp(t)>0},Y.greaterThanOrEqualTo=Y.gte=function(t){var A=this.cmp(t);return A==1||A===0},Y.hyperbolicCosine=Y.cosh=function(){var t,A,a,e,g,i=this,I=i.constructor,r=new I(1);if(!i.isFinite())return new I(i.s?1/0:NaN);if(i.isZero())return r;a=I.precision,e=I.rounding,I.precision=a+Math.max(i.e,i.sd())+4,I.rounding=1,(g=i.d.length)<32?A=(1/Ct(4,t=Math.ceil(g/3))).toString():(t=16,A="2.3283064365386962890625e-10"),i=ue(I,1,i.times(A),new I(1),!0);for(var o,B=t,n=new I(8);B--;)o=i.times(i),i=r.minus(o.times(n.minus(o.times(n))));return iA(i,I.precision=a,I.rounding=e,!0)},Y.hyperbolicSine=Y.sinh=function(){var t,A,a,e,g=this,i=g.constructor;if(!g.isFinite()||g.isZero())return new i(g);if(A=i.precision,a=i.rounding,i.precision=A+Math.max(g.e,g.sd())+4,i.rounding=1,(e=g.d.length)<3)g=ue(i,2,g,g,!0);else{t=(t=1.4*Math.sqrt(e))>16?16:0|t,g=ue(i,2,g=g.times(1/Ct(5,t)),g,!0);for(var I,r=new i(5),o=new i(16),B=new i(20);t--;)I=g.times(g),g=g.times(r.plus(I.times(o.times(I).plus(B))))}return i.precision=A,i.rounding=a,iA(g,A,a,!0)},Y.hyperbolicTangent=Y.tanh=function(){var t,A,a=this,e=a.constructor;return a.isFinite()?a.isZero()?new e(a):(t=e.precision,A=e.rounding,e.precision=t+7,e.rounding=1,kA(a.sinh(),a.cosh(),e.precision=t,e.rounding=A)):new e(a.s)},Y.inverseCosine=Y.acos=function(){var t=this,A=t.constructor,a=t.abs().cmp(1),e=A.precision,g=A.rounding;return a!==-1?a===0?t.isNeg()?ka(A,e,g):new A(0):new A(NaN):t.isZero()?ka(A,e+4,g).times(.5):(A.precision=e+6,A.rounding=1,t=new A(1).minus(t).div(t.plus(1)).sqrt().atan(),A.precision=e,A.rounding=g,t.times(2))},Y.inverseHyperbolicCosine=Y.acosh=function(){var t,A,a=this,e=a.constructor;return a.lte(1)?new e(a.eq(1)?0:NaN):a.isFinite()?(t=e.precision,A=e.rounding,e.precision=t+Math.max(Math.abs(a.e),a.sd())+4,e.rounding=1,nA=!1,a=a.times(a).minus(1).sqrt().plus(a),nA=!0,e.precision=t,e.rounding=A,a.ln()):new e(a)},Y.inverseHyperbolicSine=Y.asinh=function(){var t,A,a=this,e=a.constructor;return!a.isFinite()||a.isZero()?new e(a):(t=e.precision,A=e.rounding,e.precision=t+2*Math.max(Math.abs(a.e),a.sd())+6,e.rounding=1,nA=!1,a=a.times(a).plus(1).sqrt().plus(a),nA=!0,e.precision=t,e.rounding=A,a.ln())},Y.inverseHyperbolicTangent=Y.atanh=function(){var t,A,a,e,g=this,i=g.constructor;return g.isFinite()?g.e>=0?new i(g.abs().eq(1)?g.s/0:g.isZero()?g:NaN):(t=i.precision,A=i.rounding,e=g.sd(),Math.max(e,t)<2*-g.e-1?iA(new i(g),t,A,!0):(i.precision=a=e-g.e,g=kA(g.plus(1),new i(1).minus(g),a+t,1),i.precision=t+4,i.rounding=1,g=g.ln(),i.precision=t,i.rounding=A,g.times(.5))):new i(NaN)},Y.inverseSine=Y.asin=function(){var t,A,a,e,g=this,i=g.constructor;return g.isZero()?new i(g):(A=g.abs().cmp(1),a=i.precision,e=i.rounding,A!==-1?A===0?((t=ka(i,a+4,e).times(.5)).s=g.s,t):new i(NaN):(i.precision=a+6,i.rounding=1,g=g.div(new i(1).minus(g.times(g)).sqrt().plus(1)).atan(),i.precision=a,i.rounding=e,g.times(2)))},Y.inverseTangent=Y.atan=function(){var t,A,a,e,g,i,I,r,o,B=this,n=B.constructor,s=n.precision,E=n.rounding;if(B.isFinite()){if(B.isZero())return new n(B);if(B.abs().eq(1)&&s+4<=tg)return(I=ka(n,s+4,E).times(.25)).s=B.s,I}else{if(!B.s)return new n(NaN);if(s+4<=tg)return(I=ka(n,s+4,E).times(.5)).s=B.s,I}for(n.precision=r=s+10,n.rounding=1,t=a=Math.min(28,r/7+2|0);t;--t)B=B.div(B.times(B).plus(1).sqrt().plus(1));for(nA=!1,A=Math.ceil(r/7),e=1,o=B.times(B),I=new n(B),g=B;t!==-1;)if(g=g.times(o),i=I.minus(g.div(e+=2)),g=g.times(o),(I=i.plus(g.div(e+=2))).d[A]!==void 0)for(t=A;I.d[t]===i.d[t]&&t--;);return a&&(I=I.times(2<<a-1)),nA=!0,iA(I,n.precision=s,n.rounding=E,!0)},Y.isFinite=function(){return!!this.d},Y.isInteger=Y.isInt=function(){return!!this.d&&$A(this.e/7)>this.d.length-2},Y.isNaN=function(){return!this.s},Y.isNegative=Y.isNeg=function(){return this.s<0},Y.isPositive=Y.isPos=function(){return this.s>0},Y.isZero=function(){return!!this.d&&this.d[0]===0},Y.lessThan=Y.lt=function(t){return this.cmp(t)<0},Y.lessThanOrEqualTo=Y.lte=function(t){return this.cmp(t)<1},Y.logarithm=Y.log=function(t){var A,a,e,g,i,I,r,o,B=this,n=B.constructor,s=n.precision,E=n.rounding;if(t==null)t=new n(10),A=!0;else{if(a=(t=new n(t)).d,t.s<0||!a||!a[0]||t.eq(1))return new n(NaN);A=t.eq(10)}if(a=B.d,B.s<0||!a||!a[0]||B.eq(1))return new n(a&&!a[0]?-1/0:B.s!=1?NaN:a?0:1/0);if(A)if(a.length>1)i=!0;else{for(g=a[0];g%10==0;)g/=10;i=g!==1}if(nA=!1,I=qa(B,r=s+5),e=A?Bt(n,r+10):qa(t,r),Se((o=kA(I,e,r,1)).d,g=s,E))do if(I=qa(B,r+=10),e=A?Bt(n,r+10):qa(t,r),o=kA(I,e,r,1),!i){+_A(o.d).slice(g+1,g+15)+1==1e14&&(o=iA(o,s+1,0));break}while(Se(o.d,g+=10,E));return nA=!0,iA(o,s,E)},Y.minus=Y.sub=function(t){var A,a,e,g,i,I,r,o,B,n,s,E,C=this,Q=C.constructor;if(t=new Q(t),!C.d||!t.d)return C.s&&t.s?C.d?t.s=-t.s:t=new Q(t.d||C.s!==t.s?C:NaN):t=new Q(NaN),t;if(C.s!=t.s)return t.s=-t.s,C.plus(t);if(B=C.d,E=t.d,r=Q.precision,o=Q.rounding,!B[0]||!E[0]){if(E[0])t.s=-t.s;else{if(!B[0])return new Q(o===3?-0:0);t=new Q(C)}return nA?iA(t,r,o):t}if(a=$A(t.e/7),n=$A(C.e/7),B=B.slice(),i=n-a){for((s=i<0)?(A=B,i=-i,I=E.length):(A=E,a=n,I=B.length),i>(e=Math.max(Math.ceil(r/7),I)+2)&&(i=e,A.length=1),A.reverse(),e=i;e--;)A.push(0);A.reverse()}else{for((s=(e=B.length)<(I=E.length))&&(I=e),e=0;e<I;e++)if(B[e]!=E[e]){s=B[e]<E[e];break}i=0}for(s&&(A=B,B=E,E=A,t.s=-t.s),I=B.length,e=E.length-I;e>0;--e)B[I++]=0;for(e=E.length;e>i;){if(B[--e]<E[e]){for(g=e;g&&B[--g]===0;)B[g]=Da-1;--B[g],B[e]+=Da}B[e]-=E[e]}for(;B[--I]===0;)B.pop();for(;B[0]===0;B.shift())--a;return B[0]?(t.d=B,t.e=ot(B,a),nA?iA(t,r,o):t):new Q(o===3?-0:0)},Y.modulo=Y.mod=function(t){var A,a=this,e=a.constructor;return t=new e(t),!a.d||!t.s||t.d&&!t.d[0]?new e(NaN):!t.d||a.d&&!a.d[0]?iA(new e(a),e.precision,e.rounding):(nA=!1,e.modulo==9?(A=kA(a,t.abs(),0,3,1)).s*=t.s:A=kA(a,t,0,e.modulo,1),A=A.times(t),nA=!0,a.minus(A))},Y.naturalExponential=Y.exp=function(){return gg(this)},Y.naturalLogarithm=Y.ln=function(){return qa(this)},Y.negated=Y.neg=function(){var t=new this.constructor(this);return t.s=-t.s,iA(t)},Y.plus=Y.add=function(t){var A,a,e,g,i,I,r,o,B,n,s=this,E=s.constructor;if(t=new E(t),!s.d||!t.d)return s.s&&t.s?s.d||(t=new E(t.d||s.s===t.s?s:NaN)):t=new E(NaN),t;if(s.s!=t.s)return t.s=-t.s,s.minus(t);if(B=s.d,n=t.d,r=E.precision,o=E.rounding,!B[0]||!n[0])return n[0]||(t=new E(s)),nA?iA(t,r,o):t;if(i=$A(s.e/7),e=$A(t.e/7),B=B.slice(),g=i-e){for(g<0?(a=B,g=-g,I=n.length):(a=n,e=i,I=B.length),g>(I=(i=Math.ceil(r/7))>I?i+1:I+1)&&(g=I,a.length=1),a.reverse();g--;)a.push(0);a.reverse()}for((I=B.length)-(g=n.length)<0&&(g=I,a=n,n=B,B=a),A=0;g;)A=(B[--g]=B[g]+n[g]+A)/Da|0,B[g]%=Da;for(A&&(B.unshift(A),++e),I=B.length;B[--I]==0;)B.pop();return t.d=B,t.e=ot(B,e),nA?iA(t,r,o):t},Y.precision=Y.sd=function(t){var A,a=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Ka+t);return a.d?(A=zi(a.d),t&&a.e+1>A&&(A=a.e+1)):A=NaN,A},Y.round=function(){var t=this,A=t.constructor;return iA(new A(t),t.e+1,A.rounding)},Y.sine=Y.sin=function(){var t,A,a=this,e=a.constructor;return a.isFinite()?a.isZero()?new e(a):(t=e.precision,A=e.rounding,e.precision=t+Math.max(a.e,a.sd())+7,e.rounding=1,a=function(g,i){var I,r=i.d.length;if(r<3)return i.isZero()?i:ue(g,2,i,i);I=(I=1.4*Math.sqrt(r))>16?16:0|I,i=i.times(1/Ct(5,I)),i=ue(g,2,i,i);for(var o,B=new g(5),n=new g(16),s=new g(20);I--;)o=i.times(i),i=i.times(B.plus(o.times(n.times(o).minus(s))));return i}(e,_i(e,a)),e.precision=t,e.rounding=A,iA(Sa>2?a.neg():a,t,A,!0)):new e(NaN)},Y.squareRoot=Y.sqrt=function(){var t,A,a,e,g,i,I=this,r=I.d,o=I.e,B=I.s,n=I.constructor;if(B!==1||!r||!r[0])return new n(!B||B<0&&(!r||r[0])?NaN:r?I:1/0);for(nA=!1,(B=Math.sqrt(+I))==0||B==1/0?(((A=_A(r)).length+o)%2==0&&(A+="0"),B=Math.sqrt(A),o=$A((o+1)/2)-(o<0||o%2),e=new n(A=B==1/0?"5e"+o:(A=B.toExponential()).slice(0,A.indexOf("e")+1)+o)):e=new n(B.toString()),a=(o=n.precision)+3;;)if(e=(i=e).plus(kA(I,i,a+2,1)).times(.5),_A(i.d).slice(0,a)===(A=_A(e.d)).slice(0,a)){if((A=A.slice(a-3,a+1))!="9999"&&(g||A!="4999")){+A&&(+A.slice(1)||A.charAt(0)!="5")||(iA(e,o+1,1),t=!e.times(e).eq(I));break}if(!g&&(iA(i,o+1,0),i.times(i).eq(I))){e=i;break}a+=4,g=1}return nA=!0,iA(e,o,n.rounding,t)},Y.tangent=Y.tan=function(){var t,A,a=this,e=a.constructor;return a.isFinite()?a.isZero()?new e(a):(t=e.precision,A=e.rounding,e.precision=t+10,e.rounding=1,(a=a.sin()).s=1,a=kA(a,new e(1).minus(a.times(a)).sqrt(),t+10,0),e.precision=t,e.rounding=A,iA(Sa==2||Sa==4?a.neg():a,t,A,!0)):new e(NaN)},Y.times=Y.mul=function(t){var A,a,e,g,i,I,r,o,B,n=this,s=n.constructor,E=n.d,C=(t=new s(t)).d;if(t.s*=n.s,!(E&&E[0]&&C&&C[0]))return new s(!t.s||E&&!E[0]&&!C||C&&!C[0]&&!E?NaN:E&&C?0*t.s:t.s/0);for(a=$A(n.e/7)+$A(t.e/7),(o=E.length)<(B=C.length)&&(i=E,E=C,C=i,I=o,o=B,B=I),i=[],e=I=o+B;e--;)i.push(0);for(e=B;--e>=0;){for(A=0,g=o+e;g>e;)r=i[g]+C[e]*E[g-e-1]+A,i[g--]=r%Da|0,A=r/Da|0;i[g]=(i[g]+A)%Da|0}for(;!i[--I];)i.pop();return A?++a:i.shift(),t.d=i,t.e=ot(i,a),nA?iA(t,s.precision,s.rounding):t},Y.toBinary=function(t,A){return ig(this,2,t,A)},Y.toDecimalPlaces=Y.toDP=function(t,A){var a=this,e=a.constructor;return a=new e(a),t===void 0?a:(Ia(t,0,Ya),A===void 0?A=e.rounding:Ia(A,0,8),iA(a,t+a.e+1,A))},Y.toExponential=function(t,A){var a,e=this,g=e.constructor;return t===void 0?a=Fa(e,!0):(Ia(t,0,Ya),A===void 0?A=g.rounding:Ia(A,0,8),a=Fa(e=iA(new g(e),t+1,A),!0,t+1)),e.isNeg()&&!e.isZero()?"-"+a:a},Y.toFixed=function(t,A){var a,e,g=this,i=g.constructor;return t===void 0?a=Fa(g):(Ia(t,0,Ya),A===void 0?A=i.rounding:Ia(A,0,8),a=Fa(e=iA(new i(g),t+g.e+1,A),!1,t+e.e+1)),g.isNeg()&&!g.isZero()?"-"+a:a},Y.toFraction=function(t){var A,a,e,g,i,I,r,o,B,n,s,E,C=this,Q=C.d,c=C.constructor;if(!Q)return new c(C);if(B=a=new c(1),e=o=new c(0),I=(i=(A=new c(e)).e=zi(Q)-C.e-1)%7,A.d[0]=PA(10,I<0?7+I:I),t==null)t=i>0?A:B;else{if(!(r=new c(t)).isInt()||r.lt(B))throw Error(Ka+r);t=r.gt(A)?i>0?A:B:r}for(nA=!1,r=new c(_A(Q)),n=c.precision,c.precision=i=7*Q.length*2;s=kA(r,A,0,1,1),(g=a.plus(s.times(e))).cmp(t)!=1;)a=e,e=g,g=B,B=o.plus(s.times(g)),o=g,g=A,A=r.minus(s.times(g)),r=g;return g=kA(t.minus(a),e,0,1,1),o=o.plus(g.times(B)),a=a.plus(g.times(e)),o.s=B.s=C.s,E=kA(B,e,i,1).minus(C).abs().cmp(kA(o,a,i,1).minus(C).abs())<1?[B,e]:[o,a],c.precision=n,nA=!0,E},Y.toHexadecimal=Y.toHex=function(t,A){return ig(this,16,t,A)},Y.toNearest=function(t,A){var a=this,e=a.constructor;if(a=new e(a),t==null){if(!a.d)return a;t=new e(1),A=e.rounding}else{if(t=new e(t),A===void 0?A=e.rounding:Ia(A,0,8),!a.d)return t.s?a:t;if(!t.d)return t.s&&(t.s=a.s),t}return t.d[0]?(nA=!1,a=kA(a,t,0,A,1).times(t),nA=!0,iA(a)):(t.s=a.s,a=t),a},Y.toNumber=function(){return+this},Y.toOctal=function(t,A){return ig(this,8,t,A)},Y.toPower=Y.pow=function(t){var A,a,e,g,i,I,r=this,o=r.constructor,B=+(t=new o(t));if(!(r.d&&t.d&&r.d[0]&&t.d[0]))return new o(PA(+r,B));if((r=new o(r)).eq(1))return r;if(e=o.precision,i=o.rounding,t.eq(1))return iA(r,e,i);if((A=$A(t.e/7))>=t.d.length-1&&(a=B<0?-B:B)<=9007199254740991)return g=Wi(o,r,a,e),t.s<0?new o(1).div(g):iA(g,e,i);if((I=r.s)<0){if(A<t.d.length-1)return new o(NaN);if(1&t.d[A]||(I=1),r.e==0&&r.d[0]==1&&r.d.length==1)return r.s=I,r}return(A=(a=PA(+r,B))!=0&&isFinite(a)?new o(a+"").e:$A(B*(Math.log("0."+_A(r.d))/Math.LN10+r.e+1)))>o.maxE+1||A<o.minE-1?new o(A>0?I/0:0):(nA=!1,o.rounding=r.s=1,a=Math.min(12,(A+"").length),(g=gg(t.times(qa(r,e+a)),e)).d&&Se((g=iA(g,e+5,1)).d,e,i)&&(A=e+10,+_A((g=iA(gg(t.times(qa(r,A+a)),A),A+5,1)).d).slice(e+1,e+15)+1==1e14&&(g=iA(g,e+1,0))),g.s=I,nA=!0,o.rounding=i,iA(g,e,i))},Y.toPrecision=function(t,A){var a,e=this,g=e.constructor;return t===void 0?a=Fa(e,e.e<=g.toExpNeg||e.e>=g.toExpPos):(Ia(t,1,Ya),A===void 0?A=g.rounding:Ia(A,0,8),a=Fa(e=iA(new g(e),t,A),t<=e.e||e.e<=g.toExpNeg,t)),e.isNeg()&&!e.isZero()?"-"+a:a},Y.toSignificantDigits=Y.toSD=function(t,A){var a=this.constructor;return t===void 0?(t=a.precision,A=a.rounding):(Ia(t,1,Ya),A===void 0?A=a.rounding:Ia(A,0,8)),iA(new a(this),t,A)},Y.toString=function(){var t=this,A=t.constructor,a=Fa(t,t.e<=A.toExpNeg||t.e>=A.toExpPos);return t.isNeg()&&!t.isZero()?"-"+a:a},Y.truncated=Y.trunc=function(){return iA(new this.constructor(this),this.e+1,1)},Y.valueOf=Y.toJSON=function(){var t=this,A=t.constructor,a=Fa(t,t.e<=A.toExpNeg||t.e>=A.toExpPos);return t.isNeg()?"-"+a:a};var kA=function(){function t(e,g,i){var I,r=0,o=e.length;for(e=e.slice();o--;)I=e[o]*g+r,e[o]=I%i|0,r=I/i|0;return r&&e.unshift(r),e}function A(e,g,i,I){var r,o;if(i!=I)o=i>I?1:-1;else for(r=o=0;r<i;r++)if(e[r]!=g[r]){o=e[r]>g[r]?1:-1;break}return o}function a(e,g,i,I){for(var r=0;i--;)e[i]-=r,r=e[i]<g[i]?1:0,e[i]=r*I+e[i]-g[i];for(;!e[0]&&e.length>1;)e.shift()}return function(e,g,i,I,r,o){var B,n,s,E,C,Q,c,d,b,h,l,w,M,k,N,F,G,L,x,W,X=e.constructor,eA=e.s==g.s?1:-1,AA=e.d,Z=g.d;if(!(AA&&AA[0]&&Z&&Z[0]))return new X(e.s&&g.s&&(AA?!Z||AA[0]!=Z[0]:Z)?AA&&AA[0]==0||!Z?0*eA:eA/0:NaN);for(o?(C=1,n=e.e-g.e):(o=Da,C=7,n=$A(e.e/C)-$A(g.e/C)),x=Z.length,G=AA.length,h=(b=new X(eA)).d=[],s=0;Z[s]==(AA[s]||0);s++);if(Z[s]>(AA[s]||0)&&n--,i==null?(k=i=X.precision,I=X.rounding):k=r?i+(e.e-g.e)+1:i,k<0)h.push(1),Q=!0;else{if(k=k/C+2|0,s=0,x==1){for(E=0,Z=Z[0],k++;(s<G||E)&&k--;s++)N=E*o+(AA[s]||0),h[s]=N/Z|0,E=N%Z|0;Q=E||s<G}else{for((E=o/(Z[0]+1)|0)>1&&(Z=t(Z,E,o),AA=t(AA,E,o),x=Z.length,G=AA.length),F=x,w=(l=AA.slice(0,x)).length;w<x;)l[w++]=0;(W=Z.slice()).unshift(0),L=Z[0],Z[1]>=o/2&&++L;do E=0,(B=A(Z,l,x,w))<0?(M=l[0],x!=w&&(M=M*o+(l[1]||0)),(E=M/L|0)>1?(E>=o&&(E=o-1),(B=A(c=t(Z,E,o),l,d=c.length,w=l.length))==1&&(E--,a(c,x<d?W:Z,d,o))):(E==0&&(B=E=1),c=Z.slice()),(d=c.length)<w&&c.unshift(0),a(l,c,w,o),B==-1&&(B=A(Z,l,x,w=l.length))<1&&(E++,a(l,x<w?W:Z,w,o)),w=l.length):B===0&&(E++,l=[0]),h[s++]=E,B&&l[0]?l[w++]=AA[F]||0:(l=[AA[F]],w=1);while((F++<G||l[0]!==void 0)&&k--);Q=l[0]!==void 0}h[0]||h.shift()}if(C==1)b.e=n,Ki=Q;else{for(s=1,E=h[0];E>=10;E/=10)s++;b.e=s+n*C-1,iA(b,r?i+b.e+1:i,I,Q)}return b}}();function iA(t,A,a,e){var g,i,I,r,o,B,n,s,E,C=t.constructor;A:if(A!=null){if(!(s=t.d))return t;for(g=1,r=s[0];r>=10;r/=10)g++;if((i=A-g)<0)i+=7,I=A,o=(n=s[E=0])/PA(10,g-I-1)%10|0;else if((E=Math.ceil((i+1)/7))>=(r=s.length)){if(!e)break A;for(;r++<=E;)s.push(0);n=o=0,g=1,I=(i%=7)-7+1}else{for(n=r=s[E],g=1;r>=10;r/=10)g++;o=(I=(i%=7)-7+g)<0?0:n/PA(10,g-I-1)%10|0}if(e=e||A<0||s[E+1]!==void 0||(I<0?n:n%PA(10,g-I-1)),B=a<4?(o||e)&&(a==0||a==(t.s<0?3:2)):o>5||o==5&&(a==4||e||a==6&&(i>0?I>0?n/PA(10,g-I):0:s[E-1])%10&1||a==(t.s<0?8:7)),A<1||!s[0])return s.length=0,B?(A-=t.e+1,s[0]=PA(10,(7-A%7)%7),t.e=-A||0):s[0]=t.e=0,t;if(i==0?(s.length=E,r=1,E--):(s.length=E+1,r=PA(10,7-i),s[E]=I>0?(n/PA(10,g-I)%PA(10,I)|0)*r:0),B)for(;;){if(E==0){for(i=1,I=s[0];I>=10;I/=10)i++;for(I=s[0]+=r,r=1;I>=10;I/=10)r++;i!=r&&(t.e++,s[0]==Da&&(s[0]=1));break}if(s[E]+=r,s[E]!=Da)break;s[E--]=0,r=1}for(i=s.length;s[--i]===0;)s.pop()}return nA&&(t.e>C.maxE?(t.d=null,t.e=NaN):t.e<C.minE&&(t.e=0,t.d=[0])),t}function Fa(t,A,a){if(!t.isFinite())return Zi(t);var e,g=t.e,i=_A(t.d),I=i.length;return A?(a&&(e=a-I)>0?i=i.charAt(0)+"."+i.slice(1)+Ta(e):I>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(t.e<0?"e":"e+")+t.e):g<0?(i="0."+Ta(-g-1)+i,a&&(e=a-I)>0&&(i+=Ta(e))):g>=I?(i+=Ta(g+1-I),a&&(e=a-g-1)>0&&(i=i+"."+Ta(e))):((e=g+1)<I&&(i=i.slice(0,e)+"."+i.slice(e)),a&&(e=a-I)>0&&(g+1===I&&(i+="."),i+=Ta(e))),i}function ot(t,A){var a=t[0];for(A*=7;a>=10;a/=10)A++;return A}function Bt(t,A,a){if(A>ao)throw nA=!0,a&&(t.precision=a),Error(Ti);return iA(new t(it),A,1,!0)}function ka(t,A,a){if(A>tg)throw Error(Ti);return iA(new t(It),A,a,!0)}function zi(t){var A=t.length-1,a=7*A+1;if(A=t[A]){for(;A%10==0;A/=10)a--;for(A=t[0];A>=10;A/=10)a++}return a}function Ta(t){for(var A="";t--;)A+="0";return A}function Wi(t,A,a,e){var g,i=new t(1),I=Math.ceil(e/7+4);for(nA=!1;;){if(a%2&&$i((i=i.times(A)).d,I)&&(g=!0),(a=$A(a/2))===0){a=i.d.length-1,g&&i.d[a]===0&&++i.d[a];break}$i((A=A.times(A)).d,I)}return nA=!0,i}function Vi(t){return 1&t.d[t.d.length-1]}function Xi(t,A,a){for(var e,g,i=new t(A[0]),I=0;++I<A.length;){if(!(g=new t(A[I])).s){i=g;break}((e=i.cmp(g))===a||e===0&&i.s===a)&&(i=g)}return i}function gg(t,A){var a,e,g,i,I,r,o,B=0,n=0,s=0,E=t.constructor,C=E.rounding,Q=E.precision;if(!t.d||!t.d[0]||t.e>17)return new E(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:NaN);for(A==null?(nA=!1,o=Q):o=A,r=new E(.03125);t.e>-2;)t=t.times(r),s+=5;for(o+=e=Math.log(PA(2,s))/Math.LN10*2+5|0,a=i=I=new E(1),E.precision=o;;){if(i=iA(i.times(t),o,1),a=a.times(++n),_A((r=I.plus(kA(i,a,o,1))).d).slice(0,o)===_A(I.d).slice(0,o)){for(g=s;g--;)I=iA(I.times(I),o,1);if(A!=null)return E.precision=Q,I;if(!(B<3&&Se(I.d,o-e,C,B)))return iA(I,E.precision=Q,C,nA=!0);E.precision=o+=10,a=i=r=new E(1),n=0,B++}I=r}}function qa(t,A){var a,e,g,i,I,r,o,B,n,s,E,C=1,Q=t,c=Q.d,d=Q.constructor,b=d.rounding,h=d.precision;if(Q.s<0||!c||!c[0]||!Q.e&&c[0]==1&&c.length==1)return new d(c&&!c[0]?-1/0:Q.s!=1?NaN:c?0:Q);if(A==null?(nA=!1,n=h):n=A,d.precision=n+=10,e=(a=_A(c)).charAt(0),!(Math.abs(i=Q.e)<15e14))return B=Bt(d,n+2,h).times(i+""),Q=qa(new d(e+"."+a.slice(1)),n-10).plus(B),d.precision=h,A==null?iA(Q,h,b,nA=!0):Q;for(;e<7&&e!=1||e==1&&a.charAt(1)>3;)e=(a=_A((Q=Q.times(t)).d)).charAt(0),C++;for(i=Q.e,e>1?(Q=new d("0."+a),i++):Q=new d(e+"."+a.slice(1)),s=Q,o=I=Q=kA(Q.minus(1),Q.plus(1),n,1),E=iA(Q.times(Q),n,1),g=3;;){if(I=iA(I.times(E),n,1),_A((B=o.plus(kA(I,new d(g),n,1))).d).slice(0,n)===_A(o.d).slice(0,n)){if(o=o.times(2),i!==0&&(o=o.plus(Bt(d,n+2,h).times(i+""))),o=kA(o,new d(C),n,1),A!=null)return d.precision=h,o;if(!Se(o.d,n-10,b,r))return iA(o,d.precision=h,b,nA=!0);d.precision=n+=10,B=I=Q=kA(s.minus(1),s.plus(1),n,1),E=iA(Q.times(Q),n,1),g=r=1}o=B,g+=2}}function Zi(t){return String(t.s*t.s/0)}function st(t,A){var a,e,g;for((a=A.indexOf("."))>-1&&(A=A.replace(".","")),(e=A.search(/e/i))>0?(a<0&&(a=e),a+=+A.slice(e+1),A=A.substring(0,e)):a<0&&(a=A.length),e=0;A.charCodeAt(e)===48;e++);for(g=A.length;A.charCodeAt(g-1)===48;--g);if(A=A.slice(e,g)){if(g-=e,t.e=a=a-e-1,t.d=[],e=(a+1)%7,a<0&&(e+=7),e<g){for(e&&t.d.push(+A.slice(0,e)),g-=7;e<g;)t.d.push(+A.slice(e,e+=7));e=7-(A=A.slice(e)).length}else e-=g;for(;e--;)A+="0";t.d.push(+A),nA&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function eo(t,A){var a,e,g,i,I,r,o,B,n;if(A.indexOf("_")>-1){if(A=A.replace(/(\d)_(?=\d)/g,"$1"),Pi.test(A))return st(t,A)}else if(A==="Infinity"||A==="NaN")return+A||(t.s=NaN),t.e=NaN,t.d=null,t;if($n.test(A))a=16,A=A.toLowerCase();else if(_n.test(A))a=2;else{if(!Ao.test(A))throw Error(Ka+A);a=8}for((i=A.search(/p/i))>0?(o=+A.slice(i+1),A=A.substring(2,i)):A=A.slice(2),I=(i=A.indexOf("."))>=0,e=t.constructor,I&&(i=(r=(A=A.replace(".","")).length)-i,g=Wi(e,new e(a),i,2*i)),i=n=(B=nt(A,a,Da)).length-1;B[i]===0;--i)B.pop();return i<0?new e(0*t.s):(t.e=ot(B,n),t.d=B,nA=!1,I&&(t=kA(t,g,4*r)),o&&(t=t.times(Math.abs(o)<54?PA(2,o):le.pow(2,o))),nA=!0,t)}function ue(t,A,a,e,g){var i,I,r,o,B=t.precision,n=Math.ceil(B/7);for(nA=!1,o=a.times(a),r=new t(e);;){if(I=kA(r.times(o),new t(A++*A++),B,1),r=g?e.plus(I):e.minus(I),e=kA(I.times(o),new t(A++*A++),B,1),(I=r.plus(e)).d[n]!==void 0){for(i=n;I.d[i]===r.d[i]&&i--;);if(i==-1)break}i=r,r=e,e=I,I=i}return nA=!0,I.d.length=n+1,I}function Ct(t,A){for(var a=t;--A;)a*=t;return a}function _i(t,A){var a,e=A.s<0,g=ka(t,t.precision,1),i=g.times(.5);if((A=A.abs()).lte(i))return Sa=e?4:1,A;if((a=A.divToInt(g)).isZero())Sa=e?3:2;else{if((A=A.minus(a.times(g))).lte(i))return Sa=Vi(a)?e?2:3:e?4:1,A;Sa=Vi(a)?e?1:4:e?3:2}return A.minus(g).abs()}function ig(t,A,a,e){var g,i,I,r,o,B,n,s,E,C=t.constructor,Q=a!==void 0;if(Q?(Ia(a,1,Ya),e===void 0?e=C.rounding:Ia(e,0,8)):(a=C.precision,e=C.rounding),t.isFinite()){for(Q?(g=2,A==16?a=4*a-3:A==8&&(a=3*a-2)):g=A,(I=(n=Fa(t)).indexOf("."))>=0&&(n=n.replace(".",""),(E=new C(1)).e=n.length-I,E.d=nt(Fa(E),10,g),E.e=E.d.length),i=o=(s=nt(n,10,g)).length;s[--o]==0;)s.pop();if(s[0]){if(I<0?i--:((t=new C(t)).d=s,t.e=i,s=(t=kA(t,E,a,e,0,g)).d,i=t.e,B=Ki),I=s[a],r=g/2,B=B||s[a+1]!==void 0,B=e<4?(I!==void 0||B)&&(e===0||e===(t.s<0?3:2)):I>r||I===r&&(e===4||B||e===6&&1&s[a-1]||e===(t.s<0?8:7)),s.length=a,B)for(;++s[--a]>g-1;)s[a]=0,a||(++i,s.unshift(1));for(o=s.length;!s[o-1];--o);for(I=0,n="";I<o;I++)n+=ag.charAt(s[I]);if(Q){if(o>1)if(A==16||A==8){for(I=A==16?4:3,--o;o%I;o++)n+="0";for(o=(s=nt(n,g,A)).length;!s[o-1];--o);for(I=1,n="1.";I<o;I++)n+=ag.charAt(s[I])}else n=n.charAt(0)+"."+n.slice(1);n=n+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)n="0"+n;n="0."+n}else if(++i>o)for(i-=o;i--;)n+="0";else i<o&&(n=n.slice(0,i)+"."+n.slice(i))}else n=Q?"0p+0":"0";n=(A==16?"0x":A==2?"0b":A==8?"0o":"")+n}else n=Zi(t);return t.s<0?"-"+n:n}function $i(t,A){if(t.length>A)return t.length=A,!0}function to(t){return new this(t).abs()}function go(t){return new this(t).acos()}function io(t){return new this(t).acosh()}function Io(t,A){return new this(t).plus(A)}function ro(t){return new this(t).asin()}function no(t){return new this(t).asinh()}function oo(t){return new this(t).atan()}function Bo(t){return new this(t).atanh()}function so(t,A){t=new this(t),A=new this(A);var a,e=this.precision,g=this.rounding,i=e+4;return t.s&&A.s?t.d||A.d?!A.d||t.isZero()?(a=A.s<0?ka(this,e,g):new this(0)).s=t.s:!t.d||A.isZero()?(a=ka(this,i,1).times(.5)).s=t.s:A.s<0?(this.precision=i,this.rounding=1,a=this.atan(kA(t,A,i,1)),A=ka(this,i,1),this.precision=e,this.rounding=g,a=t.s<0?a.minus(A):a.plus(A)):a=this.atan(kA(t,A,i,1)):(a=ka(this,i,1).times(A.s>0?.25:.75)).s=t.s:a=new this(NaN),a}function Co(t){return new this(t).cbrt()}function Eo(t){return iA(t=new this(t),t.e+1,2)}function Qo(t,A,a){return new this(t).clamp(A,a)}function co(t){if(!t||typeof t!="object")throw Error(rt+"Object expected");var A,a,e,g=t.defaults===!0,i=["precision",1,Ya,"rounding",0,8,"toExpNeg",-be,0,"toExpPos",0,be,"maxE",0,be,"minE",-be,0,"modulo",0,9];for(A=0;A<i.length;A+=3)if(a=i[A],g&&(this[a]=eg[a]),(e=t[a])!==void 0){if(!($A(e)===e&&e>=i[A+1]&&e<=i[A+2]))throw Error(Ka+a+": "+e);this[a]=e}if(a="crypto",g&&(this[a]=eg[a]),(e=t[a])!==void 0){if(e!==!0&&e!==!1&&e!==0&&e!==1)throw Error(Ka+a+": "+e);if(e){if(typeof crypto>"u"||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(qi);this[a]=!0}else this[a]=!1}return this}function ho(t){return new this(t).cos()}function bo(t){return new this(t).cosh()}function uo(t,A){return new this(t).div(A)}function lo(t){return new this(t).exp()}function fo(t){return iA(t=new this(t),t.e+1,3)}function Do(){var t,A,a=new this(0);for(nA=!1,t=0;t<arguments.length;)if((A=new this(arguments[t++])).d)a.d&&(a=a.plus(A.times(A)));else{if(A.s)return nA=!0,new this(1/0);a=A}return nA=!0,a.sqrt()}function AI(t){return t instanceof le||t&&t.toStringTag===Oi||!1}function wo(t){return new this(t).ln()}function po(t,A){return new this(t).log(A)}function yo(t){return new this(t).log(2)}function mo(t){return new this(t).log(10)}function Fo(){return Xi(this,arguments,-1)}function ko(){return Xi(this,arguments,1)}function Mo(t,A){return new this(t).mod(A)}function Ro(t,A){return new this(t).mul(A)}function No(t,A){return new this(t).pow(A)}function Go(t){var A,a,e,g,i=0,I=new this(1),r=[];if(t===void 0?t=this.precision:Ia(t,1,Ya),e=Math.ceil(t/7),this.crypto)if(crypto.getRandomValues)for(A=crypto.getRandomValues(new Uint32Array(e));i<e;)(g=A[i])>=429e7?A[i]=crypto.getRandomValues(new Uint32Array(1))[0]:r[i++]=g%1e7;else{if(!crypto.randomBytes)throw Error(qi);for(A=crypto.randomBytes(e*=4);i<e;)(g=A[i]+(A[i+1]<<8)+(A[i+2]<<16)+((127&A[i+3])<<24))>=214e7?crypto.randomBytes(4).copy(A,i):(r.push(g%1e7),i+=4);i=e/4}else for(;i<e;)r[i++]=1e7*Math.random()|0;for(t%=7,(e=r[--i])&&t&&(g=PA(10,7-t),r[i]=(e/g|0)*g);r[i]===0;i--)r.pop();if(i<0)a=0,r=[0];else{for(a=-1;r[0]===0;a-=7)r.shift();for(e=1,g=r[0];g>=10;g/=10)e++;e<7&&(a-=7-e)}return I.e=a,I.d=r,I}function So(t){return iA(t=new this(t),t.e+1,this.rounding)}function Uo(t){return(t=new this(t)).d?t.d[0]?t.s:0*t.s:t.s||NaN}function xo(t){return new this(t).sin()}function Lo(t){return new this(t).sinh()}function jo(t){return new this(t).sqrt()}function vo(t,A){return new this(t).sub(A)}function Jo(){var t=0,A=arguments,a=new this(A[t]);for(nA=!1;a.s&&++t<A.length;)a=a.plus(A[t]);return nA=!0,iA(a,this.precision,this.rounding)}function Ho(t){return new this(t).tan()}function Yo(t){return new this(t).tanh()}function Ko(t){return iA(t=new this(t),t.e+1,1)}Y[Symbol.for("nodejs.util.inspect.custom")]=Y.toString,Y[Symbol.toStringTag]="Decimal";var le=Y.constructor=function t(A){var a,e,g;function i(I){var r,o,B,n=this;if(!(n instanceof i))return new i(I);if(n.constructor=i,AI(I))return n.s=I.s,void(nA?!I.d||I.e>i.maxE?(n.e=NaN,n.d=null):I.e<i.minE?(n.e=0,n.d=[0]):(n.e=I.e,n.d=I.d.slice()):(n.e=I.e,n.d=I.d?I.d.slice():I.d));if((B=typeof I)=="number"){if(I===0)return n.s=1/I<0?-1:1,n.e=0,void(n.d=[0]);if(I<0?(I=-I,n.s=-1):n.s=1,I===~~I&&I<1e7){for(r=0,o=I;o>=10;o/=10)r++;return void(nA?r>i.maxE?(n.e=NaN,n.d=null):r<i.minE?(n.e=0,n.d=[0]):(n.e=r,n.d=[I]):(n.e=r,n.d=[I]))}return 0*I!=0?(I||(n.s=NaN),n.e=NaN,void(n.d=null)):st(n,I.toString())}if(B==="string")return(o=I.charCodeAt(0))===45?(I=I.slice(1),n.s=-1):(o===43&&(I=I.slice(1)),n.s=1),Pi.test(I)?st(n,I):eo(n,I);if(B==="bigint")return I<0?(I=-I,n.s=-1):n.s=1,st(n,I.toString());throw Error(Ka+I)}if(i.prototype=Y,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=co,i.clone=t,i.isDecimal=AI,i.abs=to,i.acos=go,i.acosh=io,i.add=Io,i.asin=ro,i.asinh=no,i.atan=oo,i.atanh=Bo,i.atan2=so,i.cbrt=Co,i.ceil=Eo,i.clamp=Qo,i.cos=ho,i.cosh=bo,i.div=uo,i.exp=lo,i.floor=fo,i.hypot=Do,i.ln=wo,i.log=po,i.log10=mo,i.log2=yo,i.max=Fo,i.min=ko,i.mod=Mo,i.mul=Ro,i.pow=No,i.random=Go,i.round=So,i.sign=Uo,i.sin=xo,i.sinh=Lo,i.sqrt=jo,i.sub=vo,i.sum=Jo,i.tan=Ho,i.tanh=Yo,i.trunc=Ko,A===void 0&&(A={}),A&&A.defaults!==!0)for(g=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],a=0;a<g.length;)A.hasOwnProperty(e=g[a++])||(A[e]=this[e]);return i.config(A),i}(eg);it=new le(it),It=new le(It);var To=bA("BigNumber",["?on","config"],t=>{var{on:A,config:a}=t,e=le.clone({precision:a.precision,modulo:le.EUCLID});return e.prototype=Object.create(e.prototype),e.prototype.type="BigNumber",e.prototype.isBigNumber=!0,e.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},e.fromJSON=function(g){return new e(g.value)},A&&A("config",function(g,i){g.precision!==i.precision&&e.config({precision:g.precision})}),e},{isClass:!0});const Aa=Math.cosh||function(t){return Math.abs(t)<1e-9?1-t:.5*(Math.exp(t)+Math.exp(-t))},ua=Math.sinh||function(t){return Math.abs(t)<1e-9?t:.5*(Math.exp(t)-Math.exp(-t))},Ig=function(t,A){return(t=Math.abs(t))<(A=Math.abs(A))&&([t,A]=[A,t]),t<1e8?Math.sqrt(t*t+A*A):(A/=t,t*Math.sqrt(1+A*A))},fe=function(){throw SyntaxError("Invalid Param")};function rg(t,A){const a=Math.abs(t),e=Math.abs(A);return t===0?Math.log(e):A===0?Math.log(a):a<3e3&&e<3e3?.5*Math.log(t*t+A*A):(t*=.5,A*=.5,.5*Math.log(t*t+A*A)+Math.LN2)}const qo={re:0,im:0},ge=function(t,A){const a=qo;if(t==null)a.re=a.im=0;else if(A!==void 0)a.re=t,a.im=A;else switch(typeof t){case"object":if("im"in t&&"re"in t)a.re=t.re,a.im=t.im;else if("abs"in t&&"arg"in t){if(!isFinite(t.abs)&&isFinite(t.arg))return j.INFINITY;a.re=t.abs*Math.cos(t.arg),a.im=t.abs*Math.sin(t.arg)}else if("r"in t&&"phi"in t){if(!isFinite(t.r)&&isFinite(t.phi))return j.INFINITY;a.re=t.r*Math.cos(t.phi),a.im=t.r*Math.sin(t.phi)}else t.length===2?(a.re=t[0],a.im=t[1]):fe();break;case"string":a.im=a.re=0;const e=t.replace(/_/g,"").match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);let g=1,i=0;e===null&&fe();for(let I=0;I<e.length;I++){const r=e[I];r===" "||r===" "||r===`
|
|
34
|
+
`||(r==="+"?g++:r==="-"?i++:r==="i"||r==="I"?(g+i===0&&fe(),e[I+1]===" "||isNaN(e[I+1])?a.im+=parseFloat((i%2?"-":"")+"1"):(a.im+=parseFloat((i%2?"-":"")+e[I+1]),I++),g=i=0):((g+i===0||isNaN(r))&&fe(),e[I+1]==="i"||e[I+1]==="I"?(a.im+=parseFloat((i%2?"-":"")+r),I++):a.re+=parseFloat((i%2?"-":"")+r),g=i=0))}g+i>0&&fe();break;case"number":a.im=0,a.re=t;break;default:fe()}return isNaN(a.re)||isNaN(a.im),a};function j(t,A){if(!(this instanceof j))return new j(t,A);const a=ge(t,A);this.re=a.re,this.im=a.im}j.prototype={re:0,im:0,sign:function(){const t=Ig(this.re,this.im);return new j(this.re/t,this.im/t)},add:function(t,A){const a=ge(t,A),e=this.isInfinite(),g=!(isFinite(a.re)&&isFinite(a.im));return e||g?e&&g?j.NAN:j.INFINITY:new j(this.re+a.re,this.im+a.im)},sub:function(t,A){const a=ge(t,A),e=this.isInfinite(),g=!(isFinite(a.re)&&isFinite(a.im));return e||g?e&&g?j.NAN:j.INFINITY:new j(this.re-a.re,this.im-a.im)},mul:function(t,A){const a=ge(t,A),e=this.isInfinite(),g=!(isFinite(a.re)&&isFinite(a.im)),i=this.re===0&&this.im===0,I=a.re===0&&a.im===0;return e&&I||g&&i?j.NAN:e||g?j.INFINITY:a.im===0&&this.im===0?new j(this.re*a.re,0):new j(this.re*a.re-this.im*a.im,this.re*a.im+this.im*a.re)},div:function(t,A){const a=ge(t,A),e=this.isInfinite(),g=!(isFinite(a.re)&&isFinite(a.im)),i=this.re===0&&this.im===0,I=a.re===0&&a.im===0;if(i&&I||e&&g)return j.NAN;if(I||e)return j.INFINITY;if(i||g)return j.ZERO;if(a.im===0)return new j(this.re/a.re,this.im/a.re);if(Math.abs(a.re)<Math.abs(a.im)){const r=a.re/a.im,o=a.re*r+a.im;return new j((this.re*r+this.im)/o,(this.im*r-this.re)/o)}{const r=a.im/a.re,o=a.im*r+a.re;return new j((this.re+this.im*r)/o,(this.im-this.re*r)/o)}},pow:function(t,A){const a=ge(t,A),e=this.re===0&&this.im===0;if(a.re===0&&a.im===0)return j.ONE;if(a.im===0){if(this.im===0&&this.re>0)return new j(Math.pow(this.re,a.re),0);if(this.re===0)switch((a.re%4+4)%4){case 0:return new j(Math.pow(this.im,a.re),0);case 1:return new j(0,Math.pow(this.im,a.re));case 2:return new j(-Math.pow(this.im,a.re),0);case 3:return new j(0,-Math.pow(this.im,a.re))}}if(e&&a.re>0)return j.ZERO;const g=Math.atan2(this.im,this.re),i=rg(this.re,this.im);let I=Math.exp(a.re*i-a.im*g),r=a.im*i+a.re*g;return new j(I*Math.cos(r),I*Math.sin(r))},sqrt:function(){const t=this.re,A=this.im;if(A===0)return t>=0?new j(Math.sqrt(t),0):new j(0,Math.sqrt(-t));const a=Ig(t,A);let e=Math.sqrt(.5*(a+Math.abs(t))),g=Math.abs(A)/(2*e);return t>=0?new j(e,A<0?-g:g):new j(g,A<0?-e:e)},exp:function(){const t=Math.exp(this.re);return this.im===0?new j(t,0):new j(t*Math.cos(this.im),t*Math.sin(this.im))},expm1:function(){const t=this.re,A=this.im;return new j(Math.expm1(t)*Math.cos(A)+function(a){const e=Math.PI/4;if(-e>a||a>e)return Math.cos(a)-1;const g=a*a;return g*(g*(g*(g*(g*(g*(g*(g/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(A),Math.exp(t)*Math.sin(A))},log:function(){const t=this.re,A=this.im;return A===0&&t>0?new j(Math.log(t),0):new j(rg(t,A),Math.atan2(A,t))},abs:function(){return Ig(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){const t=this.re,A=this.im;return new j(Math.sin(t)*Aa(A),Math.cos(t)*ua(A))},cos:function(){const t=this.re,A=this.im;return new j(Math.cos(t)*Aa(A),-Math.sin(t)*ua(A))},tan:function(){const t=2*this.re,A=2*this.im,a=Math.cos(t)+Aa(A);return new j(Math.sin(t)/a,ua(A)/a)},cot:function(){const t=2*this.re,A=2*this.im,a=Math.cos(t)-Aa(A);return new j(-Math.sin(t)/a,ua(A)/a)},sec:function(){const t=this.re,A=this.im,a=.5*Aa(2*A)+.5*Math.cos(2*t);return new j(Math.cos(t)*Aa(A)/a,Math.sin(t)*ua(A)/a)},csc:function(){const t=this.re,A=this.im,a=.5*Aa(2*A)-.5*Math.cos(2*t);return new j(Math.sin(t)*Aa(A)/a,-Math.cos(t)*ua(A)/a)},asin:function(){const t=this.re,A=this.im,a=new j(A*A-t*t+1,-2*t*A).sqrt(),e=new j(a.re-A,a.im+t).log();return new j(e.im,-e.re)},acos:function(){const t=this.re,A=this.im,a=new j(A*A-t*t+1,-2*t*A).sqrt(),e=new j(a.re-A,a.im+t).log();return new j(Math.PI/2-e.im,e.re)},atan:function(){const t=this.re,A=this.im;if(t===0){if(A===1)return new j(0,1/0);if(A===-1)return new j(0,-1/0)}const a=t*t+(1-A)*(1-A),e=new j((1-A*A-t*t)/a,-2*t/a).log();return new j(-.5*e.im,.5*e.re)},acot:function(){const t=this.re,A=this.im;if(A===0)return new j(Math.atan2(1,t),0);const a=t*t+A*A;return a!==0?new j(t/a,-A/a).atan():new j(t!==0?t/0:0,A!==0?-A/0:0).atan()},asec:function(){const t=this.re,A=this.im;if(t===0&&A===0)return new j(0,1/0);const a=t*t+A*A;return a!==0?new j(t/a,-A/a).acos():new j(t!==0?t/0:0,A!==0?-A/0:0).acos()},acsc:function(){const t=this.re,A=this.im;if(t===0&&A===0)return new j(Math.PI/2,1/0);const a=t*t+A*A;return a!==0?new j(t/a,-A/a).asin():new j(t!==0?t/0:0,A!==0?-A/0:0).asin()},sinh:function(){const t=this.re,A=this.im;return new j(ua(t)*Math.cos(A),Aa(t)*Math.sin(A))},cosh:function(){const t=this.re,A=this.im;return new j(Aa(t)*Math.cos(A),ua(t)*Math.sin(A))},tanh:function(){const t=2*this.re,A=2*this.im,a=Aa(t)+Math.cos(A);return new j(ua(t)/a,Math.sin(A)/a)},coth:function(){const t=2*this.re,A=2*this.im,a=Aa(t)-Math.cos(A);return new j(ua(t)/a,-Math.sin(A)/a)},csch:function(){const t=this.re,A=this.im,a=Math.cos(2*A)-Aa(2*t);return new j(-2*ua(t)*Math.cos(A)/a,2*Aa(t)*Math.sin(A)/a)},sech:function(){const t=this.re,A=this.im,a=Math.cos(2*A)+Aa(2*t);return new j(2*Aa(t)*Math.cos(A)/a,-2*ua(t)*Math.sin(A)/a)},asinh:function(){let t=this.im;this.im=-this.re,this.re=t;const A=this.asin();return this.re=-this.im,this.im=t,t=A.re,A.re=-A.im,A.im=t,A},acosh:function(){const t=this.acos();if(t.im<=0){const A=t.re;t.re=-t.im,t.im=A}else{const A=t.im;t.im=-t.re,t.re=A}return t},atanh:function(){const t=this.re,A=this.im,a=t>1&&A===0,e=1-t,g=1+t,i=e*e+A*A,I=i!==0?new j((g*e-A*A)/i,(A*e+g*A)/i):new j(t!==-1?t/0:0,A!==0?A/0:0),r=I.re;return I.re=rg(I.re,I.im)/2,I.im=Math.atan2(I.im,r)/2,a&&(I.im=-I.im),I},acoth:function(){const t=this.re,A=this.im;if(t===0&&A===0)return new j(0,Math.PI/2);const a=t*t+A*A;return a!==0?new j(t/a,-A/a).atanh():new j(t!==0?t/0:0,A!==0?-A/0:0).atanh()},acsch:function(){const t=this.re,A=this.im;if(A===0)return new j(t!==0?Math.log(t+Math.sqrt(t*t+1)):1/0,0);const a=t*t+A*A;return a!==0?new j(t/a,-A/a).asinh():new j(t!==0?t/0:0,A!==0?-A/0:0).asinh()},asech:function(){const t=this.re,A=this.im;if(this.isZero())return j.INFINITY;const a=t*t+A*A;return a!==0?new j(t/a,-A/a).acosh():new j(t!==0?t/0:0,A!==0?-A/0:0).acosh()},inverse:function(){if(this.isZero())return j.INFINITY;if(this.isInfinite())return j.ZERO;const t=this.re,A=this.im,a=t*t+A*A;return new j(t/a,-A/a)},conjugate:function(){return new j(this.re,-this.im)},neg:function(){return new j(-this.re,-this.im)},ceil:function(t){return t=Math.pow(10,t||0),new j(Math.ceil(this.re*t)/t,Math.ceil(this.im*t)/t)},floor:function(t){return t=Math.pow(10,t||0),new j(Math.floor(this.re*t)/t,Math.floor(this.im*t)/t)},round:function(t){return t=Math.pow(10,t||0),new j(Math.round(this.re*t)/t,Math.round(this.im*t)/t)},equals:function(t,A){const a=ge(t,A);return Math.abs(a.re-this.re)<=j.EPSILON&&Math.abs(a.im-this.im)<=j.EPSILON},clone:function(){return new j(this.re,this.im)},toString:function(){let t=this.re,A=this.im,a="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(t)<j.EPSILON&&(t=0),Math.abs(A)<j.EPSILON&&(A=0),A===0?a+t:(t!==0?(a+=t,a+=" ",A<0?(A=-A,a+="-"):a+="+",a+=" "):A<0&&(A=-A,a+="-"),A!==1&&(a+=A),a+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!this.isFinite()}},j.ZERO=new j(0,0),j.ONE=new j(1,0),j.I=new j(0,1),j.PI=new j(Math.PI,0),j.E=new j(Math.E,0),j.INFINITY=new j(1/0,1/0),j.NAN=new j(NaN,NaN),j.EPSILON=1e-15;var Oo=bA("Complex",[],()=>(Object.defineProperty(j,"name",{value:"Complex"}),j.prototype.constructor=j,j.prototype.type="Complex",j.prototype.isComplex=!0,j.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},j.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},j.prototype.format=function(t){var A=this.im,a=this.re,e=Ag(this.re,t),g=Ag(this.im,t),i=RA(t)?t:t?t.precision:null;if(i!==null){var I=Math.pow(10,-i);Math.abs(a/A)<I&&(a=0),Math.abs(A/a)<I&&(A=0)}return A===0?e:a===0?A===1?"i":A===-1?"-i":g+"i":A<0?A===-1?e+" - i":e+" - "+g.substring(1)+"i":A===1?e+" + i":e+" + "+g+"i"},j.fromPolar=function(t){switch(arguments.length){case 1:var A=arguments[0];if(typeof A=="object")return j(A);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var a=arguments[0],e=arguments[1];if(RA(a)){if(Ui(e)&&e.hasBase("ANGLE")&&(e=e.toNumber("rad")),RA(e))return new j({r:a,phi:e});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},j.prototype.valueOf=j.prototype.toString,j.fromJSON=function(t){return new j(t)},j.compare=function(t,A){return t.re>A.re?1:t.re<A.re?-1:t.im>A.im?1:t.im<A.im?-1:0},j),{isClass:!0});typeof BigInt>"u"&&(BigInt=function(t){if(isNaN(t))throw new Error("");return t});const IA=BigInt(0),CA=BigInt(1),Ue=BigInt(2),ng=BigInt(5),ra=BigInt(10),_={s:CA,n:IA,d:CA};function Ua(t,A){try{t=BigInt(t)}catch{throw Oa()}return t*A}function wa(t){return typeof t=="bigint"?t:Math.floor(t)}function GA(t,A){if(A===IA)throw og();const a=Object.create(la.prototype);a.s=t<IA?-CA:CA;const e=ie(t=t<IA?-t:t,A);return a.n=t/e,a.d=A/e,a}function De(t){const A={};let a=t,e=Ue,g=ng-CA;for(;g<=a;){for(;a%e===IA;)a/=e,A[e]=(A[e]||IA)+CA;g+=CA+Ue*e++}return a!==t?a>1&&(A[a]=(A[a]||IA)+CA):A[t]=(A[t]||IA)+CA,A}const WA=function(t,A){let a=IA,e=CA,g=CA;if(t!=null)if(A!==void 0){if(typeof t=="bigint")a=t;else{if(isNaN(t))throw Oa();if(t%1!=0)throw aI();a=BigInt(t)}if(typeof A=="bigint")e=A;else{if(isNaN(A))throw Oa();if(A%1!=0)throw aI();e=BigInt(A)}g=a*e}else if(typeof t=="object"){if("d"in t&&"n"in t)a=BigInt(t.n),e=BigInt(t.d),"s"in t&&(a*=BigInt(t.s));else if(0 in t)a=BigInt(t[0]),1 in t&&(e=BigInt(t[1]));else{if(typeof t!="bigint")throw Oa();a=t}g=a*e}else if(typeof t=="number"){if(isNaN(t))throw Oa();if(t<0&&(g=-CA,t=-t),t%1==0)a=BigInt(t);else{let i=1,I=0,r=1,o=1,B=1,n=1e7;for(t>=1&&(i=10**Math.floor(1+Math.log10(t)),t/=i);r<=n&&B<=n;){let s=(I+o)/(r+B);if(t===s){r+B<=n?(a=I+o,e=r+B):B>r?(a=o,e=B):(a=I,e=r);break}t>s?(I+=o,r+=B):(o+=I,B+=r),r>n?(a=o,e=B):(a=I,e=r)}a=BigInt(a)*BigInt(i),e=BigInt(e)}}else if(typeof t=="string"){let i=0,I=IA,r=IA,o=IA,B=CA,n=CA,s=t.replace(/_/g,"").match(/\d+|./g);if(s===null||(s[i]==="-"?(g=-CA,i++):s[i]==="+"&&i++,s.length===i+1?r=Ua(s[i++],g):s[i+1]==="."||s[i]==="."?(s[i]!=="."&&(I=Ua(s[i++],g)),i++,(i+1===s.length||s[i+1]==="("&&s[i+3]===")"||s[i+1]==="'"&&s[i+3]==="'")&&(r=Ua(s[i],g),B=ra**BigInt(s[i].length),i++),(s[i]==="("&&s[i+2]===")"||s[i]==="'"&&s[i+2]==="'")&&(o=Ua(s[i+1],g),n=ra**BigInt(s[i+1].length)-CA,i+=3)):s[i+1]==="/"||s[i+1]===":"?(r=Ua(s[i],g),B=Ua(s[i+2],CA),i+=3):s[i+3]==="/"&&s[i+1]===" "&&(I=Ua(s[i],g),r=Ua(s[i+2],g),B=Ua(s[i+4],CA),i+=5),!(s.length<=i)))throw Oa();e=B*n,g=a=o+e*I+n*r}else{if(typeof t!="bigint")throw Oa();a=t,g=t,e=CA}if(e===IA)throw og();_.s=g<IA?-CA:CA,_.n=a<IA?-a:a,_.d=e<IA?-e:e};function Po(t,A,a){let e=CA,g=function(i,I,r){let o=CA;for(;I>IA;i=i*i%r,I>>=CA)I&CA&&(o=o*i%r);return o}(ra,a,A);for(let i=0;i<300;i++){if(e===g)return BigInt(i);e=e*ra%A,g=g*ra%A}return 0}function ie(t,A){if(!t)return A;if(!A)return t;for(;;){if(!(t%=A))return A;if(!(A%=t))return t}}function la(t,A){if(WA(t,A),!(this instanceof la))return GA(_.s*_.n,_.d);t=ie(_.d,_.n),this.s=_.s,this.n=_.n/t,this.d=_.d/t}var og=function(){return new Error("Division by Zero")},Oa=function(){return new Error("Invalid argument")},aI=function(){return new Error("Parameters must be integer")};la.prototype={s:CA,n:IA,d:CA,abs:function(){return GA(this.n,this.d)},neg:function(){return GA(-this.s*this.n,this.d)},add:function(t,A){return WA(t,A),GA(this.s*this.n*_.d+_.s*this.d*_.n,this.d*_.d)},sub:function(t,A){return WA(t,A),GA(this.s*this.n*_.d-_.s*this.d*_.n,this.d*_.d)},mul:function(t,A){return WA(t,A),GA(this.s*_.s*this.n*_.n,this.d*_.d)},div:function(t,A){return WA(t,A),GA(this.s*_.s*this.n*_.d,this.d*_.n)},clone:function(){return GA(this.s*this.n,this.d)},mod:function(t,A){if(t===void 0)return GA(this.s*this.n%this.d,CA);if(WA(t,A),IA===_.n*this.d)throw og();return GA(this.s*(_.d*this.n)%(_.n*this.d),_.d*this.d)},gcd:function(t,A){return WA(t,A),GA(ie(_.n,this.n)*ie(_.d,this.d),_.d*this.d)},lcm:function(t,A){return WA(t,A),_.n===IA&&this.n===IA?GA(IA,CA):GA(_.n*this.n,ie(_.n,this.n)*ie(_.d,this.d))},inverse:function(){return GA(this.s*this.d,this.n)},pow:function(t,A){if(WA(t,A),_.d===CA)return _.s<IA?GA((this.s*this.d)**_.n,this.n**_.n):GA((this.s*this.n)**_.n,this.d**_.n);if(this.s<IA)return null;let a=De(this.n),e=De(this.d),g=CA,i=CA;for(let I in a)if(I!=="1"){if(I==="0"){g=IA;break}if(a[I]*=_.n,a[I]%_.d!==IA)return null;a[I]/=_.d,g*=BigInt(I)**a[I]}for(let I in e)if(I!=="1"){if(e[I]*=_.n,e[I]%_.d!==IA)return null;e[I]/=_.d,i*=BigInt(I)**e[I]}return _.s<IA?GA(i,g):GA(g,i)},log:function(t,A){if(WA(t,A),this.s<=IA||_.s<=IA)return null;const a={},e=De(_.n),g=De(_.d),i=De(this.n),I=De(this.d);for(const B in g)e[B]=(e[B]||IA)-g[B];for(const B in I)i[B]=(i[B]||IA)-I[B];for(const B in e)B!=="1"&&(a[B]=!0);for(const B in i)B!=="1"&&(a[B]=!0);let r=null,o=null;for(const B in a){const n=e[B]||IA,s=i[B]||IA;if(n===IA){if(s!==IA)return null;continue}let E=s,C=n;const Q=ie(E,C);if(E/=Q,C/=Q,r===null&&o===null)r=E,o=C;else if(E*o!=r*C)return null}return r!==null&&o!==null?GA(r,o):null},equals:function(t,A){return WA(t,A),this.s*this.n*_.d==_.s*_.n*this.d},lt:function(t,A){return WA(t,A),this.s*this.n*_.d<_.s*_.n*this.d},lte:function(t,A){return WA(t,A),this.s*this.n*_.d<=_.s*_.n*this.d},gt:function(t,A){return WA(t,A),this.s*this.n*_.d>_.s*_.n*this.d},gte:function(t,A){return WA(t,A),this.s*this.n*_.d>=_.s*_.n*this.d},compare:function(t,A){WA(t,A);let a=this.s*this.n*_.d-_.s*_.n*this.d;return(IA<a)-(a<IA)},ceil:function(t){return t=ra**BigInt(t||0),GA(wa(this.s*t*this.n/this.d)+(t*this.n%this.d>IA&&this.s>=IA?CA:IA),t)},floor:function(t){return t=ra**BigInt(t||0),GA(wa(this.s*t*this.n/this.d)-(t*this.n%this.d>IA&&this.s<IA?CA:IA),t)},round:function(t){return t=ra**BigInt(t||0),GA(wa(this.s*t*this.n/this.d)+this.s*((this.s>=IA?CA:IA)+Ue*(t*this.n%this.d)>this.d?CA:IA),t)},roundTo:function(t,A){WA(t,A);const a=this.n*_.d,e=this.d*_.n,g=a%e;let i=wa(a/e);return g+g>=e&&i++,GA(this.s*i*_.n,_.d)},divisible:function(t,A){return WA(t,A),!(!(_.n*this.d)||this.n*_.d%(_.n*this.d))},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(t){let A=this.n,a=this.d;t=t||15;let e=function(I,r){for(;r%Ue===IA;r/=Ue);for(;r%ng===IA;r/=ng);if(r===CA)return IA;let o=ra%r,B=1;for(;o!==CA;B++)if(o=o*ra%r,B>2e3)return IA;return BigInt(B)}(0,a),g=Po(0,a,e),i=this.s<IA?"-":"";if(i+=wa(A/a),A%=a,A*=ra,A&&(i+="."),e){for(let I=g;I--;)i+=wa(A/a),A%=a,A*=ra;i+="(";for(let I=e;I--;)i+=wa(A/a),A%=a,A*=ra;i+=")"}else for(let I=t;A&&I--;)i+=wa(A/a),A%=a,A*=ra;return i},toFraction:function(t){let A=this.n,a=this.d,e=this.s<IA?"-":"";if(a===CA)e+=A;else{let g=wa(A/a);t&&g>IA&&(e+=g,e+=" ",A%=a),e+=A,e+="/",e+=a}return e},toLatex:function(t){let A=this.n,a=this.d,e=this.s<IA?"-":"";if(a===CA)e+=A;else{let g=wa(A/a);t&&g>IA&&(e+=g,A%=a),e+="\\frac{",e+=A,e+="}{",e+=a,e+="}"}return e},toContinued:function(){let t=this.n,A=this.d,a=[];do{a.push(wa(t/A));let e=t%A;t=A,A=e}while(t!==CA);return a},simplify:function(t){const A=BigInt(1/(t||.001)|0),a=this.abs(),e=a.toContinued();for(let g=1;g<e.length;g++){let i=GA(e[g-1],CA);for(let r=g-2;r>=0;r--)i=i.inverse().add(e[r]);let I=i.sub(a);if(I.n*A<I.d)return i.mul(this.s)}return this}};var zo=bA("Fraction",[],()=>(Object.defineProperty(la,"name",{value:"Fraction"}),la.prototype.constructor=la,la.prototype.type="Fraction",la.prototype.isFraction=!0,la.prototype.toJSON=function(){return{mathjs:"Fraction",n:String(this.s*this.n),d:String(this.d)}},la.fromJSON=function(t){return new la(t)},la),{isClass:!0}),Wo=bA("Matrix",[],()=>{function t(){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator")}return t.prototype.type="Matrix",t.prototype.isMatrix=!0,t.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},t.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},t.prototype.create=function(A,a){throw new Error("Cannot invoke create on a Matrix interface")},t.prototype.subset=function(A,a,e){throw new Error("Cannot invoke subset on a Matrix interface")},t.prototype.get=function(A){throw new Error("Cannot invoke get on a Matrix interface")},t.prototype.set=function(A,a,e){throw new Error("Cannot invoke set on a Matrix interface")},t.prototype.resize=function(A,a){throw new Error("Cannot invoke resize on a Matrix interface")},t.prototype.reshape=function(A,a){throw new Error("Cannot invoke reshape on a Matrix interface")},t.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},t.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},t.prototype.map=function(A,a){throw new Error("Cannot invoke map on a Matrix interface")},t.prototype.forEach=function(A){throw new Error("Cannot invoke forEach on a Matrix interface")},t.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},t.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},t.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},t.prototype.format=function(A){throw new Error("Cannot invoke format on a Matrix interface")},t.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},t},{isClass:!0});function Bg(t,A,a){var e=new t.constructor(2),g="";if(a){if(a<1)throw new Error("size must be in greater than 0");if(!xA(a))throw new Error("size must be an integer");if(t.greaterThan(e.pow(a-1).sub(1))||t.lessThan(e.pow(a-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(a-1,", 2^").concat(a-1,"-1]"));if(!t.isInteger())throw new Error("Value must be an integer");t.lessThan(0)&&(t=t.add(e.pow(a))),g="i".concat(a)}switch(A){case 2:return"".concat(t.toBinary()).concat(g);case 8:return"".concat(t.toOctal()).concat(g);case 16:return"".concat(t.toHexadecimal()).concat(g);default:throw new Error("Base ".concat(A," not supported "))}}function Vo(t,A){if(typeof A=="function")return A(t);if(!t.isFinite())return t.isNaN()?"NaN":t.gt(0)?"Infinity":"-Infinity";var{notation:a,precision:e,wordSize:g}=ji(A);switch(a){case"fixed":return function(B,n){return B.toFixed(n)}(t,e);case"exponential":return eI(t,e);case"engineering":return function(B,n){var s=B.e,E=s%3==0?s:s<0?s-3-s%3:s-s%3,C=B.mul(Math.pow(10,-E)),Q=C.toPrecision(n);return Q.includes("e")&&(Q=new B.constructor(Q).toFixed()),Q+"e"+(s>=0?"+":"")+E.toString()}(t,e);case"bin":return Bg(t,2,g);case"oct":return Bg(t,8,g);case"hex":return Bg(t,16,g);case"auto":var i=tI(A?.lowerExp,-3),I=tI(A?.upperExp,5);if(t.isZero())return"0";var r=t.toSignificantDigits(e),o=r.e;return(o>=i&&o<I?r.toFixed():eI(t,e)).replace(/((\.\d*?)(0+))($|e)/,function(){var B=arguments[2],n=arguments[4];return B!=="."?B+n:n});default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function eI(t,A){return A!==void 0?t.toExponential(A-1):t.toExponential()}function tI(t,A){return RA(t)?t:YA(t)?t.toNumber():A}function KA(t,A){var a=function(e,g){return typeof e=="number"?Ag(e,g):YA(e)?Vo(e,g):function(i){return i&&typeof i=="object"&&typeof i.s=="bigint"&&typeof i.n=="bigint"&&typeof i.d=="bigint"||!1}(e)?g&&g.fraction==="decimal"?e.toString():"".concat(e.s*e.n,"/").concat(e.d):Array.isArray(e)?II(e,g):ma(e)?gI(e):typeof e=="function"?e.syntax?String(e.syntax):"function":e&&typeof e=="object"?typeof e.format=="function"?e.format(g):e&&e.toString(g)!=={}.toString()?e.toString(g):"{"+Object.keys(e).map(i=>gI(i)+": "+KA(e[i],g)).join(", ")+"}":String(e)}(t,A);return A&&typeof A=="object"&&"truncate"in A&&a.length>A.truncate?a.substring(0,A.truncate-3)+"...":a}function gI(t){for(var A=String(t),a="",e=0;e<A.length;){var g=A.charAt(e);a+=g in iI?iI[g]:g,e++}return'"'+a+'"'}var iI={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function II(t,A){if(Array.isArray(t)){for(var a="[",e=t.length,g=0;g<e;g++)g!==0&&(a+=", "),a+=II(t[g],A);return a+="]"}return KA(t,A)}function SA(t,A,a){if(!(this instanceof SA))throw new SyntaxError("Constructor must be called with the new operator");this.actual=t,this.expected=A,this.relation=a,this.message="Dimension mismatch ("+(Array.isArray(t)?"["+t.join(", ")+"]":t)+" "+(this.relation||"!=")+" "+(Array.isArray(A)?"["+A.join(", ")+"]":A)+")",this.stack=new Error().stack}function we(t,A,a){if(!(this instanceof we))throw new SyntaxError("Constructor must be called with the new operator");this.index=t,arguments.length<3?(this.min=0,this.max=A):(this.min=A,this.max=a),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}function ta(t){for(var A=[];Array.isArray(t);)A.push(t.length),t=t[0];return A}function rI(t,A,a){var e,g=t.length;if(g!==A[a])throw new SA(g,A[a]);if(a<A.length-1){var i=a+1;for(e=0;e<g;e++){var I=t[e];if(!Array.isArray(I))throw new SA(A.length-1,A.length,"<");rI(t[e],A,i)}}else for(e=0;e<g;e++)if(Array.isArray(t[e]))throw new SA(A.length+1,A.length,">")}function nI(t,A){if(A.length===0){if(Array.isArray(t))throw new SA(t.length,0)}else rI(t,A,0)}function jA(t,A){if(t!==void 0){if(!RA(t)||!xA(t))throw new TypeError("Index must be an integer (value: "+t+")");if(t<0||typeof A=="number"&&t>=A)throw new we(t,A)}}function sg(t,A,a){if(!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new Error("Resizing to scalar is not supported");return A.forEach(function(e){if(!RA(e)||!xA(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+KA(A)+")")}),(RA(t)||YA(t))&&(t=[t]),Cg(t,A,0,a!==void 0?a:0),t}function Cg(t,A,a,e){var g,i,I=t.length,r=A[a],o=Math.min(I,r);if(t.length=r,a<A.length-1){var B=a+1;for(g=0;g<o;g++)i=t[g],Array.isArray(i)||(i=[i],t[g]=i),Cg(i,A,B,e);for(g=o;g<r;g++)i=[],t[g]=i,Cg(i,A,B,e)}else{for(g=0;g<o;g++)for(;Array.isArray(t[g]);)t[g]=t[g][0];for(g=o;g<r;g++)t[g]=e}}function oI(t,A){var a=function(i){var I=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!Array.isArray(i))return i;if(typeof I!="boolean")throw new TypeError("Boolean expected for second argument of flatten");var r=[];return I?B(i):o(i),r;function o(n){for(var s=0;s<n.length;s++){var E=n[s];Array.isArray(E)?o(E):r.push(E)}}function B(n){if(Array.isArray(n[0]))for(var s=0;s<n.length;s++)B(n[s]);else for(var E=0;E<n.length;E++)r.push(n[E])}}(t,!0),e=a.length;if(!Array.isArray(t)||!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new SA(0,e,"!=");var g=BI(A=Eg(A,e));if(e!==g)throw new SA(g,e,"!=");try{return function(i,I){for(var r,o=i,B=I.length-1;B>0;B--){var n=I[B];r=[];for(var s=o.length/n,E=0;E<s;E++)r.push(o.slice(E*n,(E+1)*n));o=r}return o}(a,A)}catch(i){throw i instanceof SA?new SA(g,e,"!="):i}}function Eg(t,A){var a=BI(t),e=t.slice(),g=t.indexOf(-1);if(t.indexOf(-1,g+1)>=0)throw new Error("More than one wildcard in sizes");if(g>=0){if(A%a!=0)throw new Error("Could not replace wildcard, since "+A+" is no multiple of "+-a);e[g]=-A/a}return e}function BI(t){return t.reduce((A,a)=>A*a,1)}function sI(t,A,a,e){var g=e||ta(t);if(a)for(var i=0;i<a;i++)t=[t],g.unshift(1);for(t=CI(t,A,0);g.length<A;)g.push(1);return t}function CI(t,A,a){var e,g;if(Array.isArray(t)){var i=a+1;for(e=0,g=t.length;e<g;e++)t[e]=CI(t[e],A,i)}else for(var I=a;I<A;I++)t=[t];return t}function Qg(t,A){for(var a,e=0,g=0;g<t.length;g++){var i=t[g],I=Array.isArray(i);if(g===0&&I&&(e=i.length),I&&i.length!==e)return;var r=I?Qg(i,A):A(i);if(a===void 0)a=r;else if(a!==r)return"mixed"}return a}function EI(t,A,a,e){if(e<a){if(t.length!==A.length)throw new SA(t.length,A.length);for(var g=[],i=0;i<t.length;i++)g[i]=EI(t[i],A[i],a,e+1);return g}return t.concat(A)}function Xo(){var t=Array.prototype.slice.call(arguments,0,-1),A=Array.prototype.slice.call(arguments,-1);if(t.length===1)return t[0];if(t.length>1)return t.slice(1).reduce(function(a,e){return EI(a,e,A,0)},t[0]);throw new Error("Wrong number of arguments in function concat")}function QI(t,A){for(var a=A.length,e=t.length,g=0;g<e;g++){var i=a-e+g;if(t[g]<A[i]&&t[g]>1||t[g]>A[i])throw new Error("shape mismatch: mismatch is found in arg with shape (".concat(t,") not possible to broadcast dimension ").concat(e," with size ").concat(t[g]," to size ").concat(A[i]))}}function cI(t,A){var a=ta(t);if(ce(a,A))return t;QI(a,A);var e,g,i,I=function(){for(var s=arguments.length,E=new Array(s),C=0;C<s;C++)E[C]=arguments[C];for(var Q=E.map(N=>N.length),c=Math.max(...Q),d=new Array(c).fill(null),b=0;b<E.length;b++)for(var h=E[b],l=Q[b],w=0;w<l;w++){var M=c-l+w;h[w]>d[M]&&(d[M]=h[w])}for(var k=0;k<E.length;k++)QI(E[k],d);return d}(a,A),r=I.length,o=[...Array(r-a.length).fill(1),...a],B=function(s){return We([],s)}(t);a.length<r&&(a=ta(B=oI(B,o)));for(var n=0;n<r;n++)a[n]<I[n]&&(e=B,g=I[n],i=n,a=ta(B=Xo(...Array(g).fill(e),i)));return B}function hI(t,A){if(!Array.isArray(t))throw new Error("Array expected");var a=ta(t);if(A.length!==a.length)throw new SA(A.length,a.length);for(var e=0;e<A.length;e++)jA(A[e],a[e]);return A.reduce((g,i)=>g[i],t)}function dI(t,A){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(t.length===0)return[];if(a)return function g(i){if(Array.isArray(i)){for(var I=i.length,r=Array(I),o=0;o<I;o++)r[o]=g(i[o]);return r}return A(i)}(t);var e=[];return function g(i,I){if(Array.isArray(i)){for(var r=i.length,o=Array(r),B=0;B<r;B++)e[I]=B,o[B]=g(i[B],I+1);return o}return A(i,e.slice(0,I),t)}(t,0)}function Et(t,A,a){var e=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(_e.isTypedFunction(t)){var g,i;if(e)g=1;else{var I=(A.isMatrix?A.size():ta(A)).map(()=>0),r=A.isMatrix?A.get(I):hI(A,I);g=function(B,n,s,E){for(var C=[n,s,E],Q=3;Q>0;Q--){var c=C.slice(0,Q);if(_e.resolve(B,c)!==null)return Q}}(t,r,I,A)}if(A.isMatrix&&A.dataType!=="mixed"&&A.dataType!==void 0){var o=function(B,n){var s=[];if(Object.entries(B.signatures).forEach(E=>{var[C,Q]=E;C.split(",").length===n&&s.push(Q)}),s.length===1)return s[0]}(t,g);i=o!==void 0?o:t}else i=t;return g>=1&&g<=3?{isUnary:g===1,fn:function(){for(var B=arguments.length,n=new Array(B),s=0;s<B;s++)n[s]=arguments[s];return bI(i,n.slice(0,g),a,t.name)}}:{isUnary:!1,fn:function(){for(var B=arguments.length,n=new Array(B),s=0;s<B;s++)n[s]=arguments[s];return bI(i,n,a,t.name)}}}return e===void 0?{isUnary:Zo(t),fn:t}:{isUnary:e,fn:t}}function Zo(t){if(t.length!==1)return!1;var A=t.toString();if(/arguments/.test(A))return!1;var a=A.match(/\(.*?\)/);return!/\.\.\./.test(a)}function bI(t,A,a,e){try{return t(...A)}catch(g){(function(i,I,r,o){var B;if(i instanceof TypeError&&((B=i.data)===null||B===void 0?void 0:B.category)==="wrongType"){var n=[];throw n.push("value: ".concat(Ha(I[0]))),I.length>=2&&n.push("index: ".concat(Ha(I[1]))),I.length>=3&&n.push("array: ".concat(Ha(I[2]))),new TypeError("Function ".concat(r," cannot apply callback arguments ")+"".concat(o,"(").concat(n.join(", "),") at index ").concat(JSON.stringify(I[1])))}throw new TypeError("Function ".concat(r," cannot apply callback arguments ")+"to function ".concat(o,": ").concat(i.message))})(g,A,a,e)}}SA.prototype=new RangeError,SA.prototype.constructor=RangeError,SA.prototype.name="DimensionError",SA.prototype.isDimensionError=!0,we.prototype=new RangeError,we.prototype.constructor=RangeError,we.prototype.name="IndexError",we.prototype.isIndexError=!0;var _o=bA("DenseMatrix",["Matrix"],t=>{var{Matrix:A}=t;function a(I,r){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(r&&!ma(r))throw new Error("Invalid datatype: "+r);if(JA(I))I.type==="DenseMatrix"?(this._data=HA(I._data),this._size=HA(I._size),this._datatype=r||I._datatype):(this._data=I.toArray(),this._size=I.size(),this._datatype=r||I._datatype);else if(I&&OA(I.data)&&OA(I.size))this._data=I.data,this._size=I.size,nI(this._data,this._size),this._datatype=r||I.datatype;else if(OA(I))this._data=i(I),this._size=ta(this._data),nI(this._data,this._size),this._datatype=r;else{if(I)throw new TypeError("Unsupported type of data ("+Ha(I)+")");this._data=[],this._size=[0],this._datatype=r}}function e(I,r,o){if(r.length===0){for(var B=I._data;OA(B);)B=B[0];return B}return I._size=r.slice(0),I._data=sg(I._data,I._size,o),I}function g(I,r,o){for(var B=I._size.slice(0),n=!1;B.length<r.length;)B.push(0),n=!0;for(var s=0,E=r.length;s<E;s++)r[s]>B[s]&&(B[s]=r[s],n=!0);n&&e(I,B,o)}function i(I){return JA(I)?i(I.valueOf()):OA(I)?I.map(i):I}return a.prototype=new A,a.prototype.createDenseMatrix=function(I,r){return new a(I,r)},Object.defineProperty(a,"name",{value:"DenseMatrix"}),a.prototype.constructor=a,a.prototype.type="DenseMatrix",a.prototype.isDenseMatrix=!0,a.prototype.getDataType=function(){return Qg(this._data,Ha)},a.prototype.storage=function(){return"dense"},a.prototype.datatype=function(){return this._datatype},a.prototype.create=function(I,r){return new a(I,r)},a.prototype.subset=function(I,r,o){switch(arguments.length){case 1:return function(B,n){if(!Zt(n))throw new TypeError("Invalid index");var s=n.isScalar();if(s)return B.get(n.min());var E=n.size();if(E.length!==B._size.length)throw new SA(E.length,B._size.length);for(var C=n.min(),Q=n.max(),c=0,d=B._size.length;c<d;c++)jA(C[c],B._size[c]),jA(Q[c],B._size[c]);var b=new a([]),h=function(l,w){var M=w.size().length-1,k=Array(M);return{data:N(l),size:k};function N(F){var G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,L=w.dimension(G);return k[G]=L.size()[0],G<M?L.map(x=>(jA(x,F.length),N(F[x],G+1))).valueOf():L.map(x=>(jA(x,F.length),F[x])).valueOf()}}(B._data,n);return b._size=h.size,b._datatype=B._datatype,b._data=h.data,b}(this,I);case 2:case 3:return function(B,n,s,E){if(!n||n.isIndex!==!0)throw new TypeError("Invalid index");var C,Q=n.size(),c=n.isScalar();if(JA(s)?(C=s.size(),s=s.valueOf()):C=ta(s),c){if(C.length!==0)throw new TypeError("Scalar expected");B.set(n.min(),s,E)}else{if(!ce(C,Q))try{C=ta(s=C.length===0?cI([s],Q):cI(s,Q))}catch{}if(Q.length<B._size.length)throw new SA(Q.length,B._size.length,"<");if(C.length<Q.length){for(var d=0,b=0;Q[d]===1&&C[d]===1;)d++;for(;Q[d]===1;)b++,d++;s=sI(s,Q.length,b,C)}if(!ce(Q,C))throw new SA(Q,C,">");var h=n.max().map(function(l){return l+1});g(B,h,E),function(l,w,M){var k=w.size().length-1;function N(F,G){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,x=w.dimension(L);L<k?x.forEach((W,X)=>{jA(W,F.length),N(F[W],G[X[0]],L+1)}):x.forEach((W,X)=>{jA(W,F.length),F[W]=G[X[0]]})}N(l,M)}(B._data,n,s)}return B}(this,I,r,o);default:throw new SyntaxError("Wrong number of arguments")}},a.prototype.get=function(I){return hI(this._data,I)},a.prototype.set=function(I,r,o){if(!OA(I))throw new TypeError("Array expected");if(I.length<this._size.length)throw new SA(I.length,this._size.length,"<");var B,n,s,E=I.map(function(Q){return Q+1});g(this,E,o);var C=this._data;for(B=0,n=I.length-1;B<n;B++)jA(s=I[B],C.length),C=C[s];return jA(s=I[I.length-1],C.length),C[s]=r,this},a.prototype.resize=function(I,r,o){if(!Xe(I))throw new TypeError("Array or Matrix expected");var B=I.valueOf().map(n=>Array.isArray(n)&&n.length===1?n[0]:n);return e(o?this.clone():this,B,r)},a.prototype.reshape=function(I,r){var o=r?this.clone():this;o._data=oI(o._data,I);var B=o._size.reduce((n,s)=>n*s);return o._size=Eg(I,B),o},a.prototype.clone=function(){return new a({data:HA(this._data),size:HA(this._size),datatype:this._datatype})},a.prototype.size=function(){return this._size.slice(0)},a.prototype.map=function(I){var r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],o=this,B=o._size.length-1;if(B<0)return o.clone();var n=Et(I,o,"map",r),s=n.fn,E=o.create(void 0,o._datatype);if(E._size=o._size,r||n.isUnary)return E._data=function b(h){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,w=Array(h.length);if(l<B)for(var M=0;M<h.length;M++)w[M]=b(h[M],l+1);else for(var k=0;k<h.length;k++)w[k]=s(h[k]);return w}(o._data),E;if(B===0){for(var C=o.valueOf(),Q=Array(C.length),c=0;c<C.length;c++)Q[c]=s(C[c],[c],o);return E._data=Q,E}var d=[];return E._data=function b(h){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,w=Array(h.length);if(l<B)for(var M=0;M<h.length;M++)d[l]=M,w[M]=b(h[M],l+1);else for(var k=0;k<h.length;k++)d[l]=k,w[k]=s(h[k],d.slice(),o);return w}(o._data),E},a.prototype.forEach=function(I){var r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],o=this,B=o._size.length-1;if(!(B<0)){var n=Et(I,o,"map",r),s=n.fn;if(r||n.isUnary)(function Q(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(d<B)for(var b=0;b<c.length;b++)Q(c[b],d+1);else for(var h=0;h<c.length;h++)s(c[h])})(o._data);else if(B!==0){var E=[];(function Q(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(d<B)for(var b=0;b<c.length;b++)E[d]=b,Q(c[b],d+1);else for(var h=0;h<c.length;h++)E[d]=h,s(c[h],E.slice(),o)})(o._data)}else for(var C=0;C<o._data.length;C++)s(o._data[C],[C],o)}},a.prototype[Symbol.iterator]=function*(){var I=this._size.length-1;if(!(I<0))if(I!==0){var r=[],o=function*(n,s){if(s<I)for(var E=0;E<n.length;E++)r[s]=E,yield*o(n[E],s+1);else for(var C=0;C<n.length;C++)r[s]=C,yield{value:n[C],index:r.slice()}};yield*o(this._data,0)}else for(var B=0;B<this._data.length;B++)yield{value:this._data[B],index:[B]}},a.prototype.rows=function(){var I=[];if(this.size().length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var r=this._data;for(var o of r)I.push(new a([o],this._datatype));return I},a.prototype.columns=function(){var I=this,r=[],o=this.size();if(o.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var B=this._data,n=function(E){var C=B.map(Q=>[Q[E]]);r.push(new a(C,I._datatype))},s=0;s<o[1];s++)n(s);return r},a.prototype.toArray=function(){return HA(this._data)},a.prototype.valueOf=function(){return this._data},a.prototype.format=function(I){return KA(this._data,I)},a.prototype.toString=function(){return KA(this._data)},a.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},a.prototype.diagonal=function(I){if(I){if(YA(I)&&(I=I.toNumber()),!RA(I)||!xA(I))throw new TypeError("The parameter k must be an integer number")}else I=0;for(var r=I>0?I:0,o=I<0?-I:0,B=this._size[0],n=this._size[1],s=Math.min(B-o,n-r),E=[],C=0;C<s;C++)E[C]=this._data[C+o][C+r];return new a({data:E,size:[s],datatype:this._datatype})},a.diagonal=function(I,r,o,B){if(!OA(I))throw new TypeError("Array expected, size parameter");if(I.length!==2)throw new Error("Only two dimensions matrix are supported");if(I=I.map(function(l){if(YA(l)&&(l=l.toNumber()),!RA(l)||!xA(l)||l<1)throw new Error("Size values must be positive integers");return l}),o){if(YA(o)&&(o=o.toNumber()),!RA(o)||!xA(o))throw new TypeError("The parameter k must be an integer number")}else o=0;var n,s=o>0?o:0,E=o<0?-o:0,C=I[0],Q=I[1],c=Math.min(C-E,Q-s);if(OA(r)){if(r.length!==c)throw new Error("Invalid value array length");n=function(l){return r[l]}}else if(JA(r)){var d=r.size();if(d.length!==1||d[0]!==c)throw new Error("Invalid matrix length");n=function(l){return r.get([l])}}else n=function(){return r};B||(B=YA(n(0))?n(0).mul(0):0);var b=[];if(I.length>0){b=sg(b,I,B);for(var h=0;h<c;h++)b[h+E][h+s]=n(h)}return new a({data:b,size:[C,Q]})},a.fromJSON=function(I){return new a(I)},a.prototype.swapRows=function(I,r){if(!(RA(I)&&xA(I)&&RA(r)&&xA(r)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return jA(I,this._size[0]),jA(r,this._size[0]),a._swapRows(I,r,this._data),this},a._swapRows=function(I,r,o){var B=o[I];o[I]=o[r],o[r]=B},a},{isClass:!0});function Ie(t,A,a){if(!a)return JA(t)?t.map(g=>A(g),!1,!0):dI(t,A,!0);var e=g=>g===0?g:A(g);return JA(t)?t.map(g=>e(g),!1,!0):dI(t,e,!0)}var uI="number",Qt="number, number";function lI(t){return Math.abs(t)}function fI(t,A){return t+A}function DI(t,A){return t-A}function wI(t,A){return t*A}function pI(t){return-t}function yI(t,A){return t*t<1&&A===1/0||t*t>1&&A===-1/0?0:Math.pow(t,A)}function cg(t,A){if(A<t)return 1;if(A===t)return A;var a=A+t>>1;return cg(t,a)*cg(a+1,A)}function ct(t){var A;if(xA(t))return t<=0?isFinite(t)?1/0:NaN:t>171?1/0:cg(1,t-1);if(t<.5)return Math.PI/(Math.sin(Math.PI*t)*ct(1-t));if(t>=171.35)return 1/0;if(t>85){var a=t*t,e=a*t,g=e*t,i=g*t;return Math.sqrt(2*Math.PI/t)*Math.pow(t/Math.E,t)*(1+1/(12*t)+1/(288*a)-139/(51840*e)-571/(2488320*g)+163879/(209018880*i)+5246819/(75246796800*i*t))}--t,A=pe[0];for(var I=1;I<pe.length;++I)A+=pe[I]/(t+I);var r=t+mI+.5;return Math.sqrt(2*Math.PI)*Math.pow(r,t+.5)*Math.exp(-r)*A}lI.signature=uI,fI.signature=Qt,DI.signature=Qt,wI.signature=Qt,pI.signature=uI,yI.signature=Qt,ct.signature="number";var mI=4.7421875,pe=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],FI="isZero",$o=bA(FI,["typed","equalScalar"],t=>{var{typed:A,equalScalar:a}=t;return A(FI,{"number | BigNumber | Complex | Fraction":e=>a(e,0),bigint:e=>e===0n,Unit:A.referToSelf(e=>g=>A.find(e,g.valueType())(g.value)),"Array | Matrix":A.referToSelf(e=>g=>Ie(g,e))})}),AB=bA("compareUnits",["typed"],t=>{var{typed:A}=t;return{"Unit, Unit":A.referToSelf(a=>(e,g)=>{if(!e.equalBase(g))throw new Error("Cannot compare units with different base");return A.find(a,[e.valueType(),g.valueType()])(e.value,g.value)})}}),ht="equalScalar",aB=bA(ht,["typed","config"],t=>{var{typed:A,config:a}=t,e=AB({typed:A});return A(ht,{"boolean, boolean":function(g,i){return g===i},"number, number":function(g,i){return at(g,i,a.relTol,a.absTol)},"BigNumber, BigNumber":function(g,i){return g.eq(i)||function(I,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,B=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(o<=0)throw new Error("Relative tolerance must be greater than 0");if(B<0)throw new Error("Absolute tolerance must be at least 0");return!I.isNaN()&&!r.isNaN()&&(I.isFinite()&&r.isFinite()?!!I.eq(r)||I.minus(r).abs().lte(I.constructor.max(I.constructor.max(I.abs(),r.abs()).mul(o),B)):I.eq(r))}(g,i,a.relTol,a.absTol)},"bigint, bigint":function(g,i){return g===i},"Fraction, Fraction":function(g,i){return g.equals(i)},"Complex, Complex":function(g,i){return function(I,r,o,B){return at(I.re,r.re,o,B)&&at(I.im,r.im,o,B)}(g,i,a.relTol,a.absTol)}},e)});bA(ht,["typed","config"],t=>{var{typed:A,config:a}=t;return A(ht,{"number, number":function(e,g){return at(e,g,a.relTol,a.absTol)}})});var eB=bA("SparseMatrix",["typed","equalScalar","Matrix"],t=>{var{typed:A,equalScalar:a,Matrix:e}=t;function g(n,s){if(!(this instanceof g))throw new SyntaxError("Constructor must be called with the new operator");if(s&&!ma(s))throw new Error("Invalid datatype: "+s);if(JA(n))(function(E,C,Q){C.type==="SparseMatrix"?(E._values=C._values?HA(C._values):void 0,E._index=HA(C._index),E._ptr=HA(C._ptr),E._size=HA(C._size),E._datatype=Q||C._datatype):i(E,C.valueOf(),Q||C._datatype)})(this,n,s);else if(n&&OA(n.index)&&OA(n.ptr)&&OA(n.size))this._values=n.values,this._index=n.index,this._ptr=n.ptr,this._size=n.size,this._datatype=s||n.datatype;else if(OA(n))i(this,n,s);else{if(n)throw new TypeError("Unsupported type of data ("+Ha(n)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=s}}function i(n,s,E){n._values=[],n._index=[],n._ptr=[],n._datatype=E;var C=s.length,Q=0,c=a,d=0;if(ma(E)&&(c=A.find(a,[E,E])||a,d=A.convert(0,E)),C>0){var b=0;do{n._ptr.push(n._index.length);for(var h=0;h<C;h++){var l=s[h];if(OA(l)){if(b===0&&Q<l.length&&(Q=l.length),b<l.length){var w=l[b];c(w,d)||(n._values.push(w),n._index.push(h))}}else b===0&&Q<1&&(Q=1),c(l,d)||(n._values.push(l),n._index.push(h))}b++}while(b<Q)}n._ptr.push(n._index.length),n._size=[C,Q]}function I(n,s,E,C){if(E-s==0)return E;for(var Q=s;Q<E;Q++)if(C[Q]===n)return Q;return s}function r(n,s,E,C,Q,c,d){Q.splice(n,0,C),c.splice(n,0,s);for(var b=E+1;b<d.length;b++)d[b]++}function o(n,s,E,C){var Q=C||0,c=a,d=0;ma(n._datatype)&&(c=A.find(a,[n._datatype,n._datatype])||a,d=A.convert(0,n._datatype),Q=A.convert(Q,n._datatype));var b,h,l,w=!c(Q,d),M=n._size[0],k=n._size[1];if(E>k){for(h=k;h<E;h++)if(n._ptr[h]=n._values.length,w)for(b=0;b<M;b++)n._values.push(Q),n._index.push(b);n._ptr[E]=n._values.length}else E<k&&(n._ptr.splice(E+1,k-E),n._values.splice(n._ptr[E],n._values.length),n._index.splice(n._ptr[E],n._index.length));if(k=E,s>M){if(w){var N=0;for(h=0;h<k;h++){n._ptr[h]=n._ptr[h]+N,l=n._ptr[h+1]+N;var F=0;for(b=M;b<s;b++,F++)n._values.splice(l+F,0,Q),n._index.splice(l+F,0,b),N++}n._ptr[k]=n._values.length}}else if(s<M){var G=0;for(h=0;h<k;h++){n._ptr[h]=n._ptr[h]-G;var L=n._ptr[h],x=n._ptr[h+1]-G;for(l=L;l<x;l++)(b=n._index[l])>s-1&&(n._values.splice(l,1),n._index.splice(l,1),G++)}n._ptr[h]=n._values.length}return n._size[0]=s,n._size[1]=E,n}function B(n,s,E,C,Q){var c,d,b=C[0],h=C[1],l=[];for(c=0;c<b;c++)for(l[c]=[],d=0;d<h;d++)l[c][d]=0;for(d=0;d<h;d++)for(var w=E[d],M=E[d+1],k=w;k<M;k++)l[c=s[k]][d]=n?Q?HA(n[k]):n[k]:1;return l}return g.prototype=new e,g.prototype.createSparseMatrix=function(n,s){return new g(n,s)},Object.defineProperty(g,"name",{value:"SparseMatrix"}),g.prototype.constructor=g,g.prototype.type="SparseMatrix",g.prototype.isSparseMatrix=!0,g.prototype.getDataType=function(){return Qg(this._values,Ha)},g.prototype.storage=function(){return"sparse"},g.prototype.datatype=function(){return this._datatype},g.prototype.create=function(n,s){return new g(n,s)},g.prototype.density=function(){var n=this._size[0],s=this._size[1];return n!==0&&s!==0?this._index.length/(n*s):0},g.prototype.subset=function(n,s,E){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return function(C,Q){if(!Zt(Q))throw new TypeError("Invalid index");if(Q.isScalar())return C.get(Q.min());var c,d,b,h,l=Q.size();if(l.length!==C._size.length)throw new SA(l.length,C._size.length);var w=Q.min(),M=Q.max();for(c=0,d=C._size.length;c<d;c++)jA(w[c],C._size[c]),jA(M[c],C._size[c]);var k=C._values,N=C._index,F=C._ptr,G=Q.dimension(0),L=Q.dimension(1),x=[],W=[];G.forEach(function(Z,oA){W[Z]=oA[0],x[Z]=!0});var X=k?[]:void 0,eA=[],AA=[];return L.forEach(function(Z){for(AA.push(eA.length),b=F[Z],h=F[Z+1];b<h;b++)c=N[b],x[c]===!0&&(eA.push(W[c]),X&&X.push(k[b]))}),AA.push(eA.length),new g({values:X,index:eA,ptr:AA,size:l,datatype:C._datatype})}(this,n);case 2:case 3:return function(C,Q,c,d){if(!Q||Q.isIndex!==!0)throw new TypeError("Invalid index");var b,h=Q.size(),l=Q.isScalar();if(JA(c)?(b=c.size(),c=c.toArray()):b=ta(c),l){if(b.length!==0)throw new TypeError("Scalar expected");C.set(Q.min(),c,d)}else{if(h.length!==1&&h.length!==2)throw new SA(h.length,C._size.length,"<");if(b.length<h.length){for(var w=0,M=0;h[w]===1&&b[w]===1;)w++;for(;h[w]===1;)M++,w++;c=sI(c,h.length,M,b)}if(!ce(h,b))throw new SA(h,b,">");if(h.length===1)Q.dimension(0).forEach(function(F,G){jA(F),C.set([F,0],c[G[0]],d)});else{var k=Q.dimension(0),N=Q.dimension(1);k.forEach(function(F,G){jA(F),N.forEach(function(L,x){jA(L),C.set([F,L],c[G[0]][x[0]],d)})})}}return C}(this,n,s,E);default:throw new SyntaxError("Wrong number of arguments")}},g.prototype.get=function(n){if(!OA(n))throw new TypeError("Array expected");if(n.length!==this._size.length)throw new SA(n.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var s=n[0],E=n[1];jA(s,this._size[0]),jA(E,this._size[1]);var C=I(s,this._ptr[E],this._ptr[E+1],this._index);return C<this._ptr[E+1]&&this._index[C]===s?this._values[C]:0},g.prototype.set=function(n,s,E){if(!OA(n))throw new TypeError("Array expected");if(n.length!==this._size.length)throw new SA(n.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var C=n[0],Q=n[1],c=this._size[0],d=this._size[1],b=a,h=0;ma(this._datatype)&&(b=A.find(a,[this._datatype,this._datatype])||a,h=A.convert(0,this._datatype)),(C>c-1||Q>d-1)&&(o(this,Math.max(C+1,c),Math.max(Q+1,d),E),c=this._size[0],d=this._size[1]),jA(C,c),jA(Q,d);var l=I(C,this._ptr[Q],this._ptr[Q+1],this._index);return l<this._ptr[Q+1]&&this._index[l]===C?b(s,h)?function(w,M,k,N,F){k.splice(w,1),N.splice(w,1);for(var G=M+1;G<F.length;G++)F[G]--}(l,Q,this._values,this._index,this._ptr):this._values[l]=s:b(s,h)||r(l,C,Q,s,this._values,this._index,this._ptr),this},g.prototype.resize=function(n,s,E){if(!Xe(n))throw new TypeError("Array or Matrix expected");var C=n.valueOf().map(Q=>Array.isArray(Q)&&Q.length===1?Q[0]:Q);if(C.length!==2)throw new Error("Only two dimensions matrix are supported");return C.forEach(function(Q){if(!RA(Q)||!xA(Q)||Q<0)throw new TypeError("Invalid size, must contain positive integers (size: "+KA(C)+")")}),o(E?this.clone():this,C[0],C[1],s)},g.prototype.reshape=function(n,s){if(!OA(n))throw new TypeError("Array expected");if(n.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");n.forEach(function(W){if(!RA(W)||!xA(W)||W<=-2||W===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+KA(n)+")")});var E=this._size[0]*this._size[1];if(E!==(n=Eg(n,E))[0]*n[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var C=s?this.clone():this;if(this._size[0]===n[0]&&this._size[1]===n[1])return C;for(var Q=[],c=0;c<C._ptr.length;c++)for(var d=0;d<C._ptr[c+1]-C._ptr[c];d++)Q.push(c);for(var b=C._values.slice(),h=C._index.slice(),l=0;l<C._index.length;l++){var w=h[l],M=Q[l],k=w*C._size[1]+M;Q[l]=k%n[1],h[l]=Math.floor(k/n[1])}C._values.length=0,C._index.length=0,C._ptr.length=n[1]+1,C._size=n.slice();for(var N=0;N<C._ptr.length;N++)C._ptr[N]=0;for(var F=0;F<b.length;F++){var G=h[F],L=Q[F],x=b[F];r(I(G,C._ptr[L],C._ptr[L+1],C._index),G,L,x,C._values,C._index,C._ptr)}return C},g.prototype.clone=function(){return new g({values:this._values?HA(this._values):void 0,index:HA(this._index),ptr:HA(this._ptr),size:HA(this._size),datatype:this._datatype})},g.prototype.size=function(){return this._size.slice(0)},g.prototype.map=function(n,s){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var E=this,C=this._size[0],Q=this._size[1],c=Et(n,E,"map");return function(d,b,h,l,w,M,k){var N=[],F=[],G=[],L=a,x=0;ma(d._datatype)&&(L=A.find(a,[d._datatype,d._datatype])||a,x=A.convert(0,d._datatype));for(var W=function(DA,BA,MA){var rA=M(DA,BA,MA);L(rA,x)||(N.push(rA),F.push(BA))},X=l;X<=w;X++){G.push(N.length);var eA=d._ptr[X],AA=d._ptr[X+1];if(k)for(var Z=eA;Z<AA;Z++){var oA=d._index[Z];oA>=b&&oA<=h&&W(d._values[Z],oA-b,X-l)}else{for(var uA={},hA=eA;hA<AA;hA++)uA[d._index[hA]]=d._values[hA];for(var yA=b;yA<=h;yA++)W(yA in uA?uA[yA]:0,yA-b,X-l)}}return G.push(N.length),new g({values:N,index:F,ptr:G,size:[h-b+1,w-l+1]})}(this,0,C-1,0,Q-1,function(d,b,h){return c.fn(d,[b,h],E)},s)},g.prototype.forEach=function(n,s){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var E=this,C=this._size[0],Q=this._size[1],c=Et(n,E,"forEach"),d=0;d<Q;d++){var b=this._ptr[d],h=this._ptr[d+1];if(s)for(var l=b;l<h;l++){var w=this._index[l];c.fn(this._values[l],[w,d],E)}else{for(var M={},k=b;k<h;k++)M[this._index[k]]=this._values[k];for(var N=0;N<C;N++){var F=N in M?M[N]:0;c.fn(F,[N,d],E)}}}},g.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var n=this._size[1],s=0;s<n;s++)for(var E=this._ptr[s],C=this._ptr[s+1],Q=E;Q<C;Q++){var c=this._index[Q];yield{value:this._values[Q],index:[c,s]}}},g.prototype.toArray=function(){return B(this._values,this._index,this._ptr,this._size,!0)},g.prototype.valueOf=function(){return B(this._values,this._index,this._ptr,this._size,!1)},g.prototype.format=function(n){for(var s=this._size[0],E=this._size[1],C=this.density(),Q="Sparse Matrix ["+KA(s,n)+" x "+KA(E,n)+"] density: "+KA(C,n)+`
|
|
35
|
+
`,c=0;c<E;c++)for(var d=this._ptr[c],b=this._ptr[c+1],h=d;h<b;h++)Q+=`
|
|
36
|
+
(`+KA(this._index[h],n)+", "+KA(c,n)+") ==> "+(this._values?KA(this._values[h],n):"X");return Q},g.prototype.toString=function(){return KA(this.toArray())},g.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},g.prototype.diagonal=function(n){if(n){if(YA(n)&&(n=n.toNumber()),!RA(n)||!xA(n))throw new TypeError("The parameter k must be an integer number")}else n=0;var s=n>0?n:0,E=n<0?-n:0,C=this._size[0],Q=this._size[1],c=Math.min(C-E,Q-s),d=[],b=[],h=[];h[0]=0;for(var l=s;l<Q&&d.length<c;l++)for(var w=this._ptr[l],M=this._ptr[l+1],k=w;k<M;k++){var N=this._index[k];if(N===l-s+E){d.push(this._values[k]),b[d.length-1]=N-E;break}}return h.push(d.length),new g({values:d,index:b,ptr:h,size:[c,1]})},g.fromJSON=function(n){return new g(n)},g.diagonal=function(n,s,E,C,Q){if(!OA(n))throw new TypeError("Array expected, size parameter");if(n.length!==2)throw new Error("Only two dimensions matrix are supported");if(n=n.map(function(eA){if(YA(eA)&&(eA=eA.toNumber()),!RA(eA)||!xA(eA)||eA<1)throw new Error("Size values must be positive integers");return eA}),E){if(YA(E)&&(E=E.toNumber()),!RA(E)||!xA(E))throw new TypeError("The parameter k must be an integer number")}else E=0;var c=a,d=0;ma(Q)&&(c=A.find(a,[Q,Q])||a,d=A.convert(0,Q));var b,h=E>0?E:0,l=E<0?-E:0,w=n[0],M=n[1],k=Math.min(w-l,M-h);if(OA(s)){if(s.length!==k)throw new Error("Invalid value array length");b=function(eA){return s[eA]}}else if(JA(s)){var N=s.size();if(N.length!==1||N[0]!==k)throw new Error("Invalid matrix length");b=function(eA){return s.get([eA])}}else b=function(){return s};for(var F=[],G=[],L=[],x=0;x<M;x++){L.push(F.length);var W=x-h;if(W>=0&&W<k){var X=b(W);c(X,d)||(G.push(W+l),F.push(X))}}return L.push(F.length),new g({values:F,index:G,ptr:L,size:[w,M]})},g.prototype.swapRows=function(n,s){if(!(RA(n)&&xA(n)&&RA(s)&&xA(s)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return jA(n,this._size[0]),jA(s,this._size[0]),g._swapRows(n,s,this._size[1],this._values,this._index,this._ptr),this},g._forEachRow=function(n,s,E,C,Q){for(var c=C[n],d=C[n+1],b=c;b<d;b++)Q(E[b],s[b])},g._swapRows=function(n,s,E,C,Q,c){for(var d=0;d<E;d++){var b=c[d],h=c[d+1],l=I(n,b,h,Q),w=I(s,b,h,Q);if(l<h&&w<h&&Q[l]===n&&Q[w]===s){if(C){var M=C[l];C[l]=C[w],C[w]=M}}else if(l<h&&Q[l]===n&&(w>=h||Q[w]!==s)){var k=C?C[l]:void 0;Q.splice(w,0,s),C&&C.splice(w,0,k),Q.splice(w<=l?l+1:l,1),C&&C.splice(w<=l?l+1:l,1)}else if(w<h&&Q[w]===s&&(l>=h||Q[l]!==n)){var N=C?C[w]:void 0;Q.splice(l,0,n),C&&C.splice(l,0,N),Q.splice(l<=w?w+1:w,1),C&&C.splice(l<=w?w+1:w,1)}}},g},{isClass:!0}),tB=bA("number",["typed"],t=>{var{typed:A}=t,a=A("number",{"":function(){return 0},number:function(e){return e},string:function(e){if(e==="NaN")return NaN;var g,i,I=(i=(g=e).match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/))?{input:g,radix:{"0b":2,"0o":8,"0x":16}[i[1]],integerPart:i[2],fractionalPart:i[3]}:null;if(I)return function(n){for(var s=parseInt(n.integerPart,n.radix),E=0,C=0;C<n.fractionalPart.length;C++)E+=parseInt(n.fractionalPart[C],n.radix)/Math.pow(n.radix,C+1);var Q=s+E;if(isNaN(Q))throw new SyntaxError('String "'+n.input+'" is not a valid number');return Q}(I);var r=0,o=e.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);o&&(r=Number(o[2]),e=o[1]);var B=Number(e);if(isNaN(B))throw new SyntaxError('String "'+e+'" is not a valid number');if(o){if(B>2**r-1)throw new SyntaxError('String "'.concat(e,'" is out of range'));B>=2**(r-1)&&(B-=2**r)}return B},BigNumber:function(e){return e.toNumber()},bigint:function(e){return Number(e)},Fraction:function(e){return e.valueOf()},Unit:A.referToSelf(e=>g=>{var i=g.clone();return i.value=e(g.value),i}),null:function(e){return 0},"Unit, string | Unit":function(e,g){return e.toNumber(g)},"Array | Matrix":A.referToSelf(e=>g=>Ie(g,e))});return a.fromJSON=function(e){return parseFloat(e.value)},a}),gB=bA("bignumber",["typed","BigNumber"],t=>{var{typed:A,BigNumber:a}=t;return A("bignumber",{"":function(){return new a(0)},number:function(e){return new a(e+"")},string:function(e){var g=e.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(g){var i=g[2],I=a(g[1]),r=new a(2).pow(Number(i));if(I.gt(r.sub(1)))throw new SyntaxError('String "'.concat(e,'" is out of range'));var o=new a(2).pow(Number(i)-1);return I.gte(o)?I.sub(r):I}return new a(e)},BigNumber:function(e){return e},bigint:function(e){return new a(e.toString())},Unit:A.referToSelf(e=>g=>{var i=g.clone();return i.value=e(g.value),i}),Fraction:function(e){return new a(String(e.n)).div(String(e.d)).times(String(e.s))},null:function(e){return new a(0)},"Array | Matrix":A.referToSelf(e=>g=>Ie(g,e))})}),iB=bA("fraction",["typed","Fraction"],t=>{var{typed:A,Fraction:a}=t;return A("fraction",{number:function(e){if(!isFinite(e)||isNaN(e))throw new Error(e+" cannot be represented as a fraction");return new a(e)},string:function(e){return new a(e)},"number, number":function(e,g){return new a(e,g)},"bigint, bigint":function(e,g){return new a(e,g)},null:function(e){return new a(0)},BigNumber:function(e){return new a(e.toString())},bigint:function(e){return new a(e.toString())},Fraction:function(e){return e},Unit:A.referToSelf(e=>g=>{var i=g.clone();return i.value=e(g.value),i}),Object:function(e){return new a(e)},"Array | Matrix":A.referToSelf(e=>g=>Ie(g,e))})}),kI="matrix",IB=bA(kI,["typed","Matrix","DenseMatrix","SparseMatrix"],t=>{var{typed:A,Matrix:a,DenseMatrix:e,SparseMatrix:g}=t;return A(kI,{"":function(){return i([])},string:function(I){return i([],I)},"string, string":function(I,r){return i([],I,r)},Array:function(I){return i(I)},Matrix:function(I){return i(I,I.storage())},"Array | Matrix, string":i,"Array | Matrix, string, string":i});function i(I,r,o){if(r==="dense"||r==="default"||r===void 0)return new e(I,o);if(r==="sparse")return new g(I,o);throw new TypeError("Unknown matrix type "+JSON.stringify(r)+".")}}),MI="unaryMinus",rB=bA(MI,["typed"],t=>{var{typed:A}=t;return A(MI,{number:pI,"Complex | BigNumber | Fraction":a=>a.neg(),bigint:a=>-a,Unit:A.referToSelf(a=>e=>{var g=e.clone();return g.value=A.find(a,g.valueType())(e.value),g}),"Array | Matrix":A.referToSelf(a=>e=>Ie(e,a,!0))})}),nB=bA("abs",["typed"],t=>{var{typed:A}=t;return A("abs",{number:lI,"Complex | BigNumber | Fraction | Unit":a=>a.abs(),bigint:a=>a<0n?-a:a,"Array | Matrix":A.referToSelf(a=>e=>Ie(e,a,!0))})}),RI="addScalar",oB=bA(RI,["typed"],t=>{var{typed:A}=t;return A(RI,{"number, number":fI,"Complex, Complex":function(a,e){return a.add(e)},"BigNumber, BigNumber":function(a,e){return a.plus(e)},"bigint, bigint":function(a,e){return a+e},"Fraction, Fraction":function(a,e){return a.add(e)},"Unit, Unit":A.referToSelf(a=>(e,g)=>{if(e.value===null||e.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(g.value===null||g.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(g))throw new Error("Units do not match");var i=e.clone();return i.value=A.find(a,[i.valueType(),g.valueType()])(i.value,g.value),i.fixPrefix=!1,i})})}),NI="subtractScalar",BB=bA(NI,["typed"],t=>{var{typed:A}=t;return A(NI,{"number, number":DI,"Complex, Complex":function(a,e){return a.sub(e)},"BigNumber, BigNumber":function(a,e){return a.minus(e)},"bigint, bigint":function(a,e){return a-e},"Fraction, Fraction":function(a,e){return a.sub(e)},"Unit, Unit":A.referToSelf(a=>(e,g)=>{if(e.value===null||e.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(g.value===null||g.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(g))throw new Error("Units do not match");var i=e.clone();return i.value=A.find(a,[i.valueType(),g.valueType()])(i.value,g.value),i.fixPrefix=!1,i})})}),sB=bA("matAlgo11xS0s",["typed","equalScalar"],t=>{var{typed:A,equalScalar:a}=t;return function(e,g,i,I){var r=e._values,o=e._index,B=e._ptr,n=e._size,s=e._datatype;if(!r)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var E,C=n[0],Q=n[1],c=a,d=0,b=i;typeof s=="string"&&(E=s,c=A.find(a,[E,E]),d=A.convert(0,E),g=A.convert(g,E),b=A.find(i,[E,E]));for(var h=[],l=[],w=[],M=0;M<Q;M++){w[M]=l.length;for(var k=B[M],N=B[M+1],F=k;F<N;F++){var G=o[F],L=I?b(g,r[F]):b(r[F],g);c(L,d)||(l.push(G),h.push(L))}}return w[Q]=l.length,e.createSparseMatrix({values:h,index:l,ptr:w,size:[C,Q],datatype:E})}}),CB=bA("matAlgo14xDs",["typed"],t=>{var{typed:A}=t;return function(e,g,i,I){var r,o=e._data,B=e._size,n=e._datatype,s=i;typeof n=="string"&&(r=n,g=A.convert(g,r),s=A.find(i,[r,r]));var E=B.length>0?a(s,0,B,B[0],o,g,I):[];return e.createDenseMatrix({data:E,size:HA(B),datatype:r})};function a(e,g,i,I,r,o,B){var n=[];if(g===i.length-1)for(var s=0;s<I;s++)n[s]=B?e(o,r[s]):e(r[s],o);else for(var E=0;E<I;E++)n[E]=a(e,g+1,i,i[g+1],r[E],o,B);return n}}),EB=bA("multiplyScalar",["typed"],t=>{var{typed:A}=t;return A("multiplyScalar",{"number, number":wI,"Complex, Complex":function(a,e){return a.mul(e)},"BigNumber, BigNumber":function(a,e){return a.times(e)},"bigint, bigint":function(a,e){return a*e},"Fraction, Fraction":function(a,e){return a.mul(e)},"number | Fraction | BigNumber | Complex, Unit":(a,e)=>e.multiply(a),"Unit, number | Fraction | BigNumber | Complex | Unit":(a,e)=>a.multiply(e)})}),GI="multiply",QB=bA(GI,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],t=>{var{typed:A,matrix:a,addScalar:e,multiplyScalar:g,equalScalar:i,dot:I}=t,r=sB({typed:A,equalScalar:i}),o=CB({typed:A});function B(C,Q){switch(C.length){case 1:switch(Q.length){case 1:if(C[0]!==Q[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(C[0]!==Q[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+C[0]+") must match Matrix rows ("+Q[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+Q.length+" dimensions)")}break;case 2:switch(Q.length){case 1:if(C[1]!==Q[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+C[1]+") must match Vector length ("+Q[0]+")");break;case 2:if(C[1]!==Q[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+C[1]+") must match Matrix B rows ("+Q[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+Q.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+C.length+" dimensions)")}}function n(C,Q){if(Q.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return function(c,d){var b,h=c._data,l=c._size,w=c._datatype||c.getDataType(),M=d._data,k=d._size,N=d._datatype||d.getDataType(),F=l[0],G=k[1],L=e,x=g;w&&N&&w===N&&typeof w=="string"&&w!=="mixed"&&(b=w,L=A.find(e,[b,b]),x=A.find(g,[b,b]));for(var W=[],X=0;X<G;X++){for(var eA=x(h[0],M[0][X]),AA=1;AA<F;AA++)eA=L(eA,x(h[AA],M[AA][X]));W[X]=eA}return c.createDenseMatrix({data:W,size:[G],datatype:w===c._datatype&&N===d._datatype?b:void 0})}(C,Q)}var s=A("_multiplyMatrixVector",{"DenseMatrix, any":function(C,Q){var c,d=C._data,b=C._size,h=C._datatype||C.getDataType(),l=Q._data,w=Q._datatype||Q.getDataType(),M=b[0],k=b[1],N=e,F=g;h&&w&&h===w&&typeof h=="string"&&h!=="mixed"&&(c=h,N=A.find(e,[c,c]),F=A.find(g,[c,c]));for(var G=[],L=0;L<M;L++){for(var x=d[L],W=F(x[0],l[0]),X=1;X<k;X++)W=N(W,F(x[X],l[X]));G[L]=W}return C.createDenseMatrix({data:G,size:[M],datatype:h===C._datatype&&w===Q._datatype?c:void 0})},"SparseMatrix, any":function(C,Q){var c=C._values,d=C._index,b=C._ptr,h=C._datatype||C._data===void 0?C._datatype:C.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var l,w=Q._data,M=Q._datatype||Q.getDataType(),k=C._size[0],N=Q._size[0],F=[],G=[],L=[],x=e,W=g,X=i,eA=0;h&&M&&h===M&&typeof h=="string"&&h!=="mixed"&&(l=h,x=A.find(e,[l,l]),W=A.find(g,[l,l]),X=A.find(i,[l,l]),eA=A.convert(0,l));var AA=[],Z=[];L[0]=0;for(var oA=0;oA<N;oA++){var uA=w[oA];if(!X(uA,eA))for(var hA=b[oA],yA=b[oA+1],DA=hA;DA<yA;DA++){var BA=d[DA];Z[BA]?AA[BA]=x(AA[BA],W(uA,c[DA])):(Z[BA]=!0,G.push(BA),AA[BA]=W(uA,c[DA]))}}for(var MA=G.length,rA=0;rA<MA;rA++){var sA=G[rA];F[rA]=AA[sA]}return L[1]=G.length,C.createSparseMatrix({values:F,index:G,ptr:L,size:[k,1],datatype:h===C._datatype&&M===Q._datatype?l:void 0})}}),E=A("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(C,Q){var c,d=C._data,b=C._size,h=C._datatype||C.getDataType(),l=Q._data,w=Q._size,M=Q._datatype||Q.getDataType(),k=b[0],N=b[1],F=w[1],G=e,L=g;h&&M&&h===M&&typeof h=="string"&&h!=="mixed"&&h!=="mixed"&&(c=h,G=A.find(e,[c,c]),L=A.find(g,[c,c]));for(var x=[],W=0;W<k;W++){var X=d[W];x[W]=[];for(var eA=0;eA<F;eA++){for(var AA=L(X[0],l[0][eA]),Z=1;Z<N;Z++)AA=G(AA,L(X[Z],l[Z][eA]));x[W][eA]=AA}}return C.createDenseMatrix({data:x,size:[k,F],datatype:h===C._datatype&&M===Q._datatype?c:void 0})},"DenseMatrix, SparseMatrix":function(C,Q){var c=C._data,d=C._size,b=C._datatype||C.getDataType(),h=Q._values,l=Q._index,w=Q._ptr,M=Q._size,k=Q._datatype||Q._data===void 0?Q._datatype:Q.getDataType();if(!h)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var N,F=d[0],G=M[1],L=e,x=g,W=i,X=0;b&&k&&b===k&&typeof b=="string"&&b!=="mixed"&&(N=b,L=A.find(e,[N,N]),x=A.find(g,[N,N]),W=A.find(i,[N,N]),X=A.convert(0,N));for(var eA=[],AA=[],Z=[],oA=Q.createSparseMatrix({values:eA,index:AA,ptr:Z,size:[F,G],datatype:b===C._datatype&&k===Q._datatype?N:void 0}),uA=0;uA<G;uA++){Z[uA]=AA.length;var hA=w[uA],yA=w[uA+1];if(yA>hA)for(var DA=0,BA=0;BA<F;BA++){for(var MA=BA+1,rA=void 0,sA=hA;sA<yA;sA++){var lA=l[sA];DA!==MA?(rA=x(c[BA][lA],h[sA]),DA=MA):rA=L(rA,x(c[BA][lA],h[sA]))}DA!==MA||W(rA,X)||(AA.push(BA),eA.push(rA))}}return Z[G]=AA.length,oA},"SparseMatrix, DenseMatrix":function(C,Q){var c=C._values,d=C._index,b=C._ptr,h=C._datatype||C._data===void 0?C._datatype:C.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var l,w=Q._data,M=Q._datatype||Q.getDataType(),k=C._size[0],N=Q._size[0],F=Q._size[1],G=e,L=g,x=i,W=0;h&&M&&h===M&&typeof h=="string"&&h!=="mixed"&&(l=h,G=A.find(e,[l,l]),L=A.find(g,[l,l]),x=A.find(i,[l,l]),W=A.convert(0,l));for(var X=[],eA=[],AA=[],Z=C.createSparseMatrix({values:X,index:eA,ptr:AA,size:[k,F],datatype:h===C._datatype&&M===Q._datatype?l:void 0}),oA=[],uA=[],hA=0;hA<F;hA++){AA[hA]=eA.length;for(var yA=hA+1,DA=0;DA<N;DA++){var BA=w[DA][hA];if(!x(BA,W))for(var MA=b[DA],rA=b[DA+1],sA=MA;sA<rA;sA++){var lA=d[sA];uA[lA]!==yA?(uA[lA]=yA,eA.push(lA),oA[lA]=L(BA,c[sA])):oA[lA]=G(oA[lA],L(BA,c[sA]))}}for(var pA=AA[hA],mA=eA.length,UA=pA;UA<mA;UA++){var VA=eA[UA];X[UA]=oA[VA]}}return AA[F]=eA.length,Z},"SparseMatrix, SparseMatrix":function(C,Q){var c,d=C._values,b=C._index,h=C._ptr,l=C._datatype||C._data===void 0?C._datatype:C.getDataType(),w=Q._values,M=Q._index,k=Q._ptr,N=Q._datatype||Q._data===void 0?Q._datatype:Q.getDataType(),F=C._size[0],G=Q._size[1],L=d&&w,x=e,W=g;l&&N&&l===N&&typeof l=="string"&&l!=="mixed"&&(c=l,x=A.find(e,[c,c]),W=A.find(g,[c,c]));for(var X,eA,AA,Z,oA,uA,hA,yA,DA=L?[]:void 0,BA=[],MA=[],rA=C.createSparseMatrix({values:DA,index:BA,ptr:MA,size:[F,G],datatype:l===C._datatype&&N===Q._datatype?c:void 0}),sA=L?[]:void 0,lA=[],pA=0;pA<G;pA++){MA[pA]=BA.length;var mA=pA+1;for(oA=k[pA],uA=k[pA+1],Z=oA;Z<uA;Z++)if(yA=M[Z],L)for(eA=h[yA],AA=h[yA+1],X=eA;X<AA;X++)lA[hA=b[X]]!==mA?(lA[hA]=mA,BA.push(hA),sA[hA]=W(w[Z],d[X])):sA[hA]=x(sA[hA],W(w[Z],d[X]));else for(eA=h[yA],AA=h[yA+1],X=eA;X<AA;X++)lA[hA=b[X]]!==mA&&(lA[hA]=mA,BA.push(hA));if(L)for(var UA=MA[pA],VA=BA.length,XA=UA;XA<VA;XA++){var Ca=BA[XA];DA[XA]=sA[Ca]}}return MA[G]=BA.length,rA}});return A(GI,g,{"Array, Array":A.referTo("Matrix, Matrix",C=>(Q,c)=>{B(ta(Q),ta(c));var d=C(a(Q),a(c));return JA(d)?d.valueOf():d}),"Matrix, Matrix":function(C,Q){var c=C.size(),d=Q.size();return B(c,d),c.length===1?d.length===1?function(b,h,l){if(l===0)throw new Error("Cannot multiply two empty vectors");return I(b,h)}(C,Q,c[0]):n(C,Q):d.length===1?s(C,Q):E(C,Q)},"Matrix, Array":A.referTo("Matrix,Matrix",C=>(Q,c)=>C(Q,a(c))),"Array, Matrix":A.referToSelf(C=>(Q,c)=>C(a(Q,c.storage()),c)),"SparseMatrix, any":function(C,Q){return r(C,Q,g,!1)},"DenseMatrix, any":function(C,Q){return o(C,Q,g,!1)},"any, SparseMatrix":function(C,Q){return r(Q,C,g,!0)},"any, DenseMatrix":function(C,Q){return o(Q,C,g,!0)},"Array, any":function(C,Q){return o(a(C),Q,g,!1).valueOf()},"any, Array":function(C,Q){return o(a(Q),C,g,!0).valueOf()},"any, any":g,"any, any, ...any":A.referToSelf(C=>(Q,c,d)=>{for(var b=C(Q,c),h=0;h<d.length;h++)b=C(b,d[h]);return b})})}),SI="conj",cB=bA(SI,["typed"],t=>{var{typed:A}=t;return A(SI,{"number | BigNumber | Fraction":a=>a,Complex:a=>a.conjugate(),Unit:A.referToSelf(a=>e=>new e.constructor(a(e.toNumeric()),e.formatUnits())),"Array | Matrix":A.referToSelf(a=>e=>Ie(e,a))})}),UI="identity",hB=bA(UI,["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],t=>{var{typed:A,config:a,matrix:e,BigNumber:g,DenseMatrix:i,SparseMatrix:I}=t;return A(UI,{"":function(){return a.matrix==="Matrix"?e([]):[]},string:function(B){return e(B)},"number | BigNumber":function(B){return o(B,B,a.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(B,n){return o(B,B,n)},"number | BigNumber, number | BigNumber":function(B,n){return o(B,n,a.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(B,n,s){return o(B,n,s)},Array:function(B){return r(B)},"Array, string":function(B,n){return r(B,n)},Matrix:function(B){return r(B.valueOf(),B.storage())},"Matrix, string":function(B,n){return r(B.valueOf(),n)}});function r(B,n){switch(B.length){case 0:return n?e(n):[];case 1:return o(B[0],B[0],n);case 2:return o(B[0],B[1],n);default:throw new Error("Vector containing two values expected")}}function o(B,n,s){var E=YA(B)||YA(n)?g:null;if(YA(B)&&(B=B.toNumber()),YA(n)&&(n=n.toNumber()),!xA(B)||B<1)throw new Error("Parameters in function identity must be positive integers");if(!xA(n)||n<1)throw new Error("Parameters in function identity must be positive integers");var C=E?new g(1):1,Q=E?new E(0):0,c=[B,n];if(s){if(s==="sparse")return I.diagonal(c,C,0,Q);if(s==="dense")return i.diagonal(c,C,0,Q);throw new TypeError('Unknown matrix type "'.concat(s,'"'))}for(var d=sg([],c,Q),b=B<n?B:n,h=0;h<b;h++)d[h][h]=C;return d}});function dB(){throw new Error('No "bignumber" implementation available')}function bB(){throw new Error('No "fraction" implementation available')}var xI,LI="size",uB=bA(LI,["typed","config","?matrix"],t=>{var{typed:A,config:a,matrix:e}=t;return A(LI,{Matrix:function(g){return g.create(g.size(),"number")},Array:ta,string:function(g){return a.matrix==="Array"?[g.length]:e([g.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(g){return a.matrix==="Array"?[]:e?e([],"dense","number"):function(){throw new Error('No "matrix" implementation available')}()}})}),lB=bA("numeric",["number","?bignumber","?fraction"],t=>{var{number:A,bignumber:a,fraction:e}=t,g={string:!0,number:!0,BigNumber:!0,Fraction:!0},i={number:I=>A(I),BigNumber:a?I=>a(I):dB,bigint:I=>BigInt(I),Fraction:e?I=>e(I):bB};return function(I){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number";if((arguments.length>2?arguments[2]:void 0)!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var o=Ha(I);if(!(o in g))throw new TypeError("Cannot convert "+I+' of type "'+o+'"; valid input types are '+Object.keys(g).join(", "));if(!(r in i))throw new TypeError("Cannot convert "+I+' to type "'+r+'"; valid output types are '+Object.keys(i).join(", "));return r===o?I:i[r](I)}}),jI="divideScalar",fB=bA(jI,["typed","numeric"],t=>{var{typed:A,numeric:a}=t;return A(jI,{"number, number":function(e,g){return e/g},"Complex, Complex":function(e,g){return e.div(g)},"BigNumber, BigNumber":function(e,g){return e.div(g)},"bigint, bigint":function(e,g){return e/g},"Fraction, Fraction":function(e,g){return e.div(g)},"Unit, number | Complex | Fraction | BigNumber | Unit":(e,g)=>e.divide(g),"number | Fraction | Complex | BigNumber, Unit":(e,g)=>g.divideInto(e)})}),DB=bA("pow",["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],t=>{var{typed:A,config:a,identity:e,multiply:g,matrix:i,inv:I,number:r,fraction:o,Complex:B}=t;return A("pow",{"number, number":n,"Complex, Complex":function(C,Q){return C.pow(Q)},"BigNumber, BigNumber":function(C,Q){return Q.isInteger()||C>=0||a.predictable?C.pow(Q):new B(C.toNumber(),0).pow(Q.toNumber(),0)},"bigint, bigint":(C,Q)=>C**Q,"Fraction, Fraction":function(C,Q){var c=C.pow(Q);if(c!=null)return c;if(a.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return n(C.valueOf(),Q.valueOf())},"Array, number":s,"Array, BigNumber":function(C,Q){return s(C,Q.toNumber())},"Matrix, number":E,"Matrix, BigNumber":function(C,Q){return E(C,Q.toNumber())},"Unit, number | BigNumber":function(C,Q){return C.pow(Q)}});function n(C,Q){if(a.predictable&&!xA(Q)&&C<0)try{var c=o(Q),d=r(c);if((Q===d||Math.abs((Q-d)/Q)<1e-14)&&c.d%2n===1n)return(c.n%2n===0n?1:-1)*Math.pow(-C,Q)}catch{}return a.predictable&&(C<-1&&Q===1/0||C>-1&&C<0&&Q===-1/0)?NaN:xA(Q)||C>=0||a.predictable?yI(C,Q):C*C<1&&Q===1/0||C*C>1&&Q===-1/0?0:new B(C,0).pow(Q,0)}function s(C,Q){if(!xA(Q))throw new TypeError("For A^b, b must be an integer (value is "+Q+")");var c=ta(C);if(c.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+c.length+" dimensions)");if(c[0]!==c[1])throw new Error("For A^b, A must be square (size is "+c[0]+"x"+c[1]+")");if(Q<0)try{return s(I(C),-Q)}catch(h){throw h.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+Q+")"):h}for(var d=e(c[0]).valueOf(),b=C;Q>=1;)1&~Q||(d=g(b,d)),Q>>=1,b=g(b,b);return d}function E(C,Q){return i(s(C.valueOf(),Q))}}),wB=bA("dot",["typed","addScalar","multiplyScalar","conj","size"],t=>{var{typed:A,addScalar:a,multiplyScalar:e,conj:g,size:i}=t;return A("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(o,B){var n=I(o,B),s=JA(o)?o._data:o,E=JA(o)?o._datatype||o.getDataType():void 0,C=JA(B)?B._data:B,Q=JA(B)?B._datatype||B.getDataType():void 0,c=r(o).length===2,d=r(B).length===2,b=a,h=e;if(E&&Q&&E===Q&&typeof E=="string"&&E!=="mixed"){var l=E;b=A.find(a,[l,l]),h=A.find(e,[l,l])}if(!c&&!d){for(var w=h(g(s[0]),C[0]),M=1;M<n;M++)w=b(w,h(g(s[M]),C[M]));return w}if(!c&&d){for(var k=h(g(s[0]),C[0][0]),N=1;N<n;N++)k=b(k,h(g(s[N]),C[N][0]));return k}if(c&&!d){for(var F=h(g(s[0][0]),C[0]),G=1;G<n;G++)F=b(F,h(g(s[G][0]),C[G]));return F}if(c&&d){for(var L=h(g(s[0][0]),C[0][0]),x=1;x<n;x++)L=b(L,h(g(s[x][0]),C[x][0]));return L}},"SparseMatrix, SparseMatrix":function(o,B){I(o,B);for(var n=o._index,s=o._values,E=B._index,C=B._values,Q=0,c=a,d=e,b=0,h=0;b<n.length&&h<E.length;){var l=n[b],w=E[h];l<w?b++:l>w?h++:l===w&&(Q=c(Q,d(s[b],C[h])),b++,h++)}return Q}});function I(o,B){var n,s,E=r(o),C=r(B);if(E.length===1)n=E[0];else{if(E.length!==2||E[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+E.join(", ")+")");n=E[0]}if(C.length===1)s=C[0];else{if(C.length!==2||C[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+C.join(", ")+")");s=C[0]}if(n!==s)throw new RangeError("Vectors must have equal length ("+n+" != "+s+")");if(n===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return n}function r(o){return JA(o)?o.size():i(o)}}),pB=bA("det",["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],t=>{var{typed:A,matrix:a,subtractScalar:e,multiply:g,divideScalar:i,isZero:I,unaryMinus:r}=t;return A("det",{any:function(o){return HA(o)},"Array | Matrix":function(o){var B;switch((B=JA(o)?o.size():Array.isArray(o)?(o=a(o)).size():[]).length){case 0:return HA(o);case 1:if(B[0]===1)return HA(o.valueOf()[0]);if(B[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+KA(B)+")");case 2:var n=B[0],s=B[1];if(n===s)return function(E,C){if(C===1)return HA(E[0][0]);if(C===2)return e(g(E[0][0],E[1][1]),g(E[1][0],E[0][1]));for(var Q=!1,c=new Array(C).fill(0).map((G,L)=>L),d=0;d<C;d++){var b=c[d];if(I(E[b][d])){var h=void 0;for(h=d+1;h<C;h++)if(!I(E[c[h]][d])){b=c[h],c[h]=c[d],c[d]=b,Q=!Q;break}if(h===C)return E[b][d]}for(var l=E[b][d],w=d===0?1:E[c[d-1]][d-1],M=d+1;M<C;M++)for(var k=c[M],N=d+1;N<C;N++)E[k][N]=i(e(g(E[k][N],l),g(E[k][d],E[b][N])),w)}var F=E[c[C-1]][C-1];return Q?r(F):F}(o.clone().valueOf(),n);if(s===0)return 1;throw new RangeError("Matrix must be square (size: "+KA(B)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+KA(B)+")")}}})}),yB=bA("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],t=>{var{typed:A,matrix:a,divideScalar:e,addScalar:g,multiply:i,unaryMinus:I,det:r,identity:o,abs:B}=t;return A("inv",{"Array | Matrix":function(s){var E=JA(s)?s.size():ta(s);switch(E.length){case 1:if(E[0]===1)return JA(s)?a([e(1,s.valueOf()[0])]):[e(1,s[0])];throw new RangeError("Matrix must be square (size: "+KA(E)+")");case 2:var C=E[0],Q=E[1];if(C===Q)return JA(s)?a(n(s.valueOf(),C,Q),s.storage()):n(s,C,Q);throw new RangeError("Matrix must be square (size: "+KA(E)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+KA(E)+")")}},any:function(s){return e(1,s)}});function n(s,E,C){var Q,c,d,b,h;if(E===1){if((b=s[0][0])===0)throw Error("Cannot calculate inverse, determinant is zero");return[[e(1,b)]]}if(E===2){var l=r(s);if(l===0)throw Error("Cannot calculate inverse, determinant is zero");return[[e(s[1][1],l),e(I(s[0][1]),l)],[e(I(s[1][0]),l),e(s[0][0],l)]]}var w=s.concat();for(Q=0;Q<E;Q++)w[Q]=w[Q].concat();for(var M=o(E).valueOf(),k=0;k<C;k++){var N=B(w[k][k]),F=k;for(Q=k+1;Q<E;)B(w[Q][k])>N&&(N=B(w[Q][k]),F=Q),Q++;if(N===0)throw Error("Cannot calculate inverse, determinant is zero");(Q=F)!==k&&(h=w[k],w[k]=w[Q],w[Q]=h,h=M[k],M[k]=M[Q],M[Q]=h);var G=w[k],L=M[k];for(Q=0;Q<E;Q++){var x=w[Q],W=M[Q];if(Q!==k){if(x[k]!==0){for(d=e(I(x[k]),G[k]),c=k;c<C;c++)x[c]=g(x[c],i(d,G[c]));for(c=0;c<C;c++)W[c]=g(W[c],i(d,L[c]))}}else{for(d=G[k],c=k;c<C;c++)x[c]=e(x[c],d);for(c=0;c<C;c++)W[c]=e(W[c],d)}}}return M}}),vI="gamma",mB=bA(vI,["typed","config","multiplyScalar","pow","BigNumber","Complex"],t=>{var{typed:A,config:a,multiplyScalar:e,pow:g,BigNumber:i,Complex:I}=t;return A(vI,{number:ct,Complex:function o(B){if(B.im===0)return ct(B.re);if(B.re<.5){var n=new I(1-B.re,-B.im),s=new I(Math.PI*B.re,Math.PI*B.im);return new I(Math.PI).div(s.sin()).div(o(n))}B=new I(B.re-1,B.im);for(var E=new I(pe[0],0),C=1;C<pe.length;++C){var Q=new I(pe[C],0);E=E.add(Q.div(B.add(C)))}var c=new I(B.re+mI+.5,B.im),d=Math.sqrt(2*Math.PI),b=c.pow(B.add(.5)),h=c.neg().exp();return E.mul(d).mul(b).mul(h)},BigNumber:function(o){if(o.isInteger())return o.isNegative()||o.isZero()?new i(1/0):r(o.minus(1));if(!o.isFinite())return new i(o.isNegative()?NaN:1/0);throw new Error("Integer BigNumber expected")}});function r(o){if(o<8)return new i([1,1,2,6,24,120,720,5040][o]);var B=a.precision+(0|Math.log(o.toNumber())),n=i.clone({precision:B});if(o%2==1)return o.times(r(new i(o-1)));for(var s=o,E=new n(o),C=o.toNumber();s>2;)C+=s-=2,E=E.times(C);return new i(E.toPrecision(i.precision))}}),dt=To({config:te}),hg=Oo({}),JI=zo({}),dg=Wo({}),bg=_o({Matrix:dg}),vA=Zn({BigNumber:dt,Complex:hg,DenseMatrix:bg,Fraction:JI}),FB=nB({typed:vA}),ug=oB({typed:vA}),kB=cB({typed:vA}),lg=aB({config:te,typed:vA}),MB=$o({equalScalar:lg,typed:vA}),fg=EB({typed:vA}),HI=tB({typed:vA}),YI=eB({Matrix:dg,equalScalar:lg,typed:vA}),RB=BB({typed:vA}),NB=gB({BigNumber:dt,typed:vA}),ye=IB({DenseMatrix:bg,Matrix:dg,SparseMatrix:YI,typed:vA}),KI=iB({Fraction:JI,typed:vA}),TI=hB({BigNumber:dt,DenseMatrix:bg,SparseMatrix:YI,config:te,matrix:ye,typed:vA}),GB=lB({bignumber:NB,fraction:KI,number:HI}),SB=uB({matrix:ye,config:te,typed:vA}),qI=rB({typed:vA}),OI=fB({numeric:GB,typed:vA}),Dg=QB({addScalar:ug,dot:wB({addScalar:ug,conj:kB,multiplyScalar:fg,size:SB,typed:vA}),equalScalar:lg,matrix:ye,multiplyScalar:fg,typed:vA}),UB=mB({BigNumber:dt,Complex:hg,config:te,multiplyScalar:fg,pow:DB({Complex:hg,config:te,fraction:KI,identity:TI,inv:yB({abs:FB,addScalar:ug,det:pB({divideScalar:OI,isZero:MB,matrix:ye,multiply:Dg,subtractScalar:RB,typed:vA,unaryMinus:qI}),divideScalar:OI,identity:TI,matrix:ye,multiply:Dg,typed:vA,unaryMinus:qI}),matrix:ye,multiply:Dg,number:HI,typed:vA}),typed:vA});class xB{constructor(A){if(A){const{toElementFn:a}=A;if(typeof a=="function")this._toElementFn=a;else if(a)throw new TypeError("toElementFn must be a function type")}}_toElementFn;get toElementFn(){return this._toElementFn}*[Symbol.iterator](...A){yield*this._getIterator(...A)}*values(){for(const A of this)yield A}every(A,a){let e=0;for(const g of this)if(!A.call(a,g,e++,this))return!1;return!0}some(A,a){let e=0;for(const g of this)if(A.call(a,g,e++,this))return!0;return!1}forEach(A,a){let e=0;for(const g of this)A.call(a,g,e++,this)}find(A,a){let e=0;for(const g of this)if(A.call(a,g,e++,this))return g}has(A){for(const a of this)if(a===A)return!0;return!1}reduce(A,a){let e=a??0,g=0;for(const i of this)e=A(e,i,g++,this);return e}toArray(){return[...this]}toVisual(){return[...this]}print(){console.log(this.toVisual())}}/**
|
|
25
37
|
* data-structure-typed
|
|
26
38
|
* @author Kirk Qi
|
|
27
39
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
28
40
|
* @license MIT License
|
|
29
|
-
*/class
|
|
41
|
+
*/class re extends xB{constructor(A=[],a){if(super(a),a){const{comparator:e}=a;e&&(this._comparator=e)}this.addMany(A)}_elements=[];get elements(){return this._elements}get size(){return this.elements.length}get leaf(){return this.elements[this.size-1]??void 0}static heapify(A,a){return new re(A,a)}add(A){return this._elements.push(A),this._bubbleUp(this.elements.length-1)}addMany(A){const a=[];for(const e of A)this._toElementFn?a.push(this.add(this._toElementFn(e))):a.push(this.add(e));return a}poll(){if(this.elements.length===0)return;const A=this.elements[0],a=this.elements.pop();return this.elements.length&&(this.elements[0]=a,this._sinkDown(0,this.elements.length>>1)),A}peek(){return this.elements[0]}isEmpty(){return this.size===0}clear(){this._elements=[]}refill(A){return this._elements=A,this.fix()}has(A){return this.elements.includes(A)}delete(A){const a=this.elements.indexOf(A);return!(a<0)&&(a===0?this.poll():a===this.elements.length-1?this.elements.pop():(this.elements.splice(a,1,this.elements.pop()),this._bubbleUp(a),this._sinkDown(a,this.elements.length>>1)),!0)}dfs(A="PRE"){const a=[],e=g=>{const i=2*g+1,I=i+1;g<this.size&&(A==="IN"?(e(i),a.push(this.elements[g]),e(I)):A==="PRE"?(a.push(this.elements[g]),e(i),e(I)):A==="POST"&&(e(i),e(I),a.push(this.elements[g])))};return e(0),a}clone(){return new re(this,{comparator:this.comparator,toElementFn:this.toElementFn})}sort(){const A=[],a=new re(this,{comparator:this.comparator});for(;a.size!==0;){const e=a.poll();e!==void 0&&A.push(e)}return A}fix(){const A=[];for(let a=Math.floor(this.size/2);a>=0;a--)A.push(this._sinkDown(a,this.elements.length>>1));return A}filter(A,a){const e=new re([],{toElementFn:this.toElementFn,comparator:this.comparator});let g=0;for(const i of this)A.call(a,i,g,this)&&e.add(i),g++;return e}map(A,a,e,g){const i=new re([],{comparator:a,toElementFn:e});let I=0;for(const r of this)i.add(A.call(g,r,I,this)),I++;return i}_DEFAULT_COMPARATOR=(A,a)=>{if(typeof A=="object"||typeof a=="object")throw TypeError("When comparing object types, a custom comparator must be defined in the constructor's options parameter.");return A>a?1:A<a?-1:0};_comparator=this._DEFAULT_COMPARATOR;get comparator(){return this._comparator}*_getIterator(){for(const A of this.elements)yield A}_bubbleUp(A){const a=this.elements[A];for(;A>0;){const e=A-1>>1,g=this.elements[e];if(this.comparator(g,a)<=0)break;this.elements[A]=g,A=e}return this.elements[A]=a,!0}_sinkDown(A,a){const e=this.elements[A];for(;A<a;){let g=A<<1|1;const i=g+1;let I=this.elements[g];if(i<this.elements.length&&this.comparator(I,this.elements[i])>0&&(g=i,I=this.elements[i]),this.comparator(I,e)>=0)break;this.elements[A]=I,A=g}return this.elements[A]=e,!0}}(function(t){t[t.VISIT=0]="VISIT",t[t.PROCESS=1]="PROCESS"})(xI||(xI={}));class xe extends re{constructor(A=[],a){super(A,a)}clone(){return new xe(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(A,a){const e=new xe([],{toElementFn:this.toElementFn,comparator:this.comparator});let g=0;for(const i of this)A.call(a,i,g,this)&&e.add(i),g++;return e}map(A,a,e,g){const i=new xe([],{comparator:a,toElementFn:e});let I=0;for(const r of this)i.add(A.call(g,r,I,this)),I++;return i}}class Le extends xe{constructor(A=[],a){super(A,a)}clone(){return new Le(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(A,a){const e=new Le([],{toElementFn:this.toElementFn,comparator:this.comparator});let g=0;for(const i of this)A.call(a,i,g,this)&&e.add(i),g++;return e}map(A,a,e,g){const i=new Le([],{comparator:a,toElementFn:e});let I=0;for(const r of this)i.add(A.call(g,r,I,this)),I++;return i}}function LB(t){return new Worker(""+(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__dirname+"/assets/PointsManager.worker-dH1fNyu8.js").href:new URL("assets/PointsManager.worker-dH1fNyu8.js",typeof document>"u"?location.href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),{type:"module",name:t?.name})}new f.Box3,new f.Vector3,new f.Vector3,new f.Vector3,new f.Vector3,new f.Vector3,new f.Vector3;const PI=new f.Matrix3;PI.set(1,0,0,0,0,1,0,-1,0);const jB=new f.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);function wg(t,A){return(f.DataUtils.toHalfFloat(t)|f.DataUtils.toHalfFloat(A)<<16)>>>0}class zI extends f.Mesh{constructor(A,a,e){const i=Math.min(Math.ceil(4)*1024,Math.pow(1024,2));let I=1*Math.pow(1024,2);I=Math.floor(I/i)*i;const r=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});r.texture.type=f.UnsignedIntType,r.texture.format=f.RGBAIntegerFormat,r.texture.internalFormat="RGBA32UI",A.initRenderTarget(r);const o=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,depthBuffer:!1,resolveDepthBuffer:!1});o.texture.type=f.UnsignedIntType,o.texture.format=f.RGBAIntegerFormat,o.texture.internalFormat="RGBA32UI",A.initRenderTarget(o);const B=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{textureSize:{value:1024},numSlices:{value:1},covarianceTexture:{value:o.texture},positionColorTexture:{value:r.texture},zUpToYUpMatrix3x3:{value:PI},sizeMultiplier:{value:1},cropRadius:{value:Number.MAX_VALUE},viewportPixelSize:{value:new f.Vector2},k:{value:2},beta_k:{value:2},minSplatPixelSize:{value:0},minOpacity:{value:.01},culling:{value:!1},antialiasingFactor:{value:2}},vertexShader:WI(),fragmentShader:e||VI(),transparent:!0,side:f.FrontSide,depthTest:!1,depthWrite:!1,blending:f.NormalBlending}),n=new f.InstancedBufferGeometry,s=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]);n.setIndex([0,2,1,2,3,1]),n.setAttribute("position",new f.BufferAttribute(s,3));const E=new Uint32Array(I),C=new f.InstancedBufferAttribute(E,1,!1);C.needsUpdate=!0,C.setUsage(f.DynamicDrawUsage),n.setAttribute("order",C),n.instanceCount=0,super(n,B),this.matrixAutoUpdate=!1,this.numBatches=0,this.numVisibleBatches=0,this.orderAttribute=C,this.textureSize=1024,this.numTextures=1,this.batchSize=i,this.maxSplats=I,this.numSplatsRendered=0,this.positionColorRenderTarget=r,this.covarianceRenderTarget=o,this.renderer=A,this.sortID=0,this.freeAddresses=new Le;for(let c=0;c<this.maxSplats;c+=i)this.freeAddresses.add(c);this.worker=new LB({}),this.sortListeners=[],this.worker.onmessage=c=>{const d=new Uint32Array(c.data.order);if(this.numSplatsRendered=d.length,d.length>this.orderAttribute.count){const b=new f.InstancedBufferGeometry,h=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]),l=[0,2,1,2,3,1];b.setIndex(l),b.setAttribute("position",new f.BufferAttribute(h,3));const w=new Uint32Array(this.maxSplats),M=new f.InstancedBufferAttribute(w,1,!1);M.needsUpdate=!0,M.setUsage(f.DynamicDrawUsage),b.setAttribute("order",M),b.instanceCount=0,this.geometry.dispose(),this.geometry=b,this.orderAttribute=M}this.orderAttribute.clearUpdateRanges(),this.orderAttribute.set(d),this.orderAttribute.addUpdateRange(0,d.length),this.orderAttribute.needsUpdate=!0,this.geometry.instanceCount=c.data.count,this.geometry.needsUpdate=!0;for(let b=this.sortListeners.length-1;b>=0;b--)this.sortListeners[b](c.data.id)&&this.sortListeners.splice(b,1)},this.cameraPosition=new f.Vector3(0,0,0),this.viewProjModel,this.rotateOnAxis(new f.Vector3(1,0,0),.5*Math.PI),this.frustumCulled=!1,this.copyMaterial2D=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{sourceTexture:{}},vertexShader:XI(),fragmentShader:`
|
|
30
42
|
precision highp float;
|
|
31
43
|
precision highp int;
|
|
32
44
|
precision highp usampler2D;
|
|
@@ -38,7 +50,7 @@ in vec2 vUv;
|
|
|
38
50
|
|
|
39
51
|
void main() {
|
|
40
52
|
fragColor = texture( sourceTexture, vUv );
|
|
41
|
-
}`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyMaterial3D=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{sourceTexture:{},w:{value:0}},vertexShader:
|
|
53
|
+
}`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyMaterial3D=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{sourceTexture:{},w:{value:0}},vertexShader:XI(),fragmentShader:`
|
|
42
54
|
precision highp float;
|
|
43
55
|
precision highp int;
|
|
44
56
|
precision highp usampler3D;
|
|
@@ -51,7 +63,7 @@ in vec2 vUv;
|
|
|
51
63
|
|
|
52
64
|
void main() {
|
|
53
65
|
fragColor = texture( sourceTexture, vec3(vUv, w) );
|
|
54
|
-
}`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyCamera=new f.OrthographicCamera(-.5,.5,.5,-.5,.1,10),this.copyCamera.position.z=1,this.copyScene=new f.Scene;const
|
|
66
|
+
}`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyCamera=new f.OrthographicCamera(-.5,.5,.5,-.5,.1,10),this.copyCamera.position.z=1,this.copyScene=new f.Scene;const Q=new f.PlaneGeometry(1,1);this.copyQuad=new f.Mesh(Q,this.copyMaterial2D),this.copyScene.add(this.copyQuad),this.copyScene.matrixAutoUpdate=!1,this.copyQuad.matrixAutoUpdate=!1,this.splatsCPUCuling=!1}setQuality(A){const a=2+2*(A=Math.max(0,Math.min(1,1-A)));this.material.uniforms.k.value=a,this.material.uniforms.beta_k.value=Math.pow(4*UB(2/a)/a,a/2),this.material.uniforms.minSplatPixelSize.value=5*A,this.material.uniforms.minOpacity.value=.01}setSplatsCPUCulling(A){this.splatsCPUCuling=A,this.material.uniforms.culling.value=A}updateShaderParams(A){A.projectionMatrix.elements,this.renderer.getSize(this.material.uniforms.viewportPixelSize.value);const a=this.renderer.getPixelRatio();this.material.uniforms.viewportPixelSize.value.multiplyScalar(a),this.material.uniforms.antialiasingFactor.value=2}dispose(){this.material.dispose(),this.copyMaterial2D.dispose(),this.copyMaterial3D.dispose(),this.covarianceRenderTarget.dispose(),this.positionColorRenderTarget.dispose(),this.worker.terminate(),this.worker=null,this.orderAttribute.array=void 0,this.geometry.dispose()}copyTex2D(A,a,e,g){this.copyMaterial2D.uniforms.sourceTexture.value=A;const i=this.renderer.autoClear,I=this.renderer.getRenderTarget();this.renderer.autoClear=!1;const r=e[2]-e[0],o=e[3]-e[1];a.viewport.set(e[0],e[1],r,o),this.renderer.setRenderTarget(a,g),this.renderer.render(this.copyScene,this.copyCamera),this.renderer.setRenderTarget(I),this.renderer.autoClear=i}copyTex3D(A,a,e){this.copyMaterial3D.uniforms.sourceTexture.value=A;const g=this.renderer.autoClear,i=this.renderer.getRenderTarget();this.renderer.autoClear=!1,this.copyQuad.material=this.copyMaterial3D;for(let I=0;I<e;I++)this.renderer.setRenderTarget(a,I),this.copyMaterial3D.uniforms.w.value=(I+.5)/e,this.renderer.render(this.copyScene,this.copyCamera);this.copyQuad.material=this.copyMaterial2D,this.renderer.setRenderTarget(i),this.renderer.autoClear=g}setSplatsSizeMultiplier(A){this.material.uniforms.sizeMultiplier.value=A}setSplatsCropRadius(A){this.material.uniforms.cropRadius.value=A}sort(A,a){this.worker&&(A?this.cameraPosition&&A.equals(this.cameraPosition)||(this.cameraPosition.copy(A),a?(this.viewProjModel||(this.viewProjModel=new f.Matrix4),this.viewProjModel.copy(a),this.viewProjModel.multiply(jB)):this.viewProjModel=void 0,this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++})):this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++}))}raycast(A,a){}addSplatsTile(A,a,e,g){if(!this.worker)return;const i=this,I=A.data?A.data.array:A.array,r=A.data&&A.data.isInterleavedBuffer?A.data.stride:3,o=A.data&&A.data.isInterleavedBuffer?A.offset:0,B=Math.ceil(I.length/(this.batchSize*r)),n=[],s=[];let E=()=>{};const C=new Float32Array(I.length/r*3),Q=new Uint32Array(C.buffer,C.byteOffset,C.length);for(let d=0;d<I.length/3;d++)C[3*d]=I[d*r+o],C[3*d+1]=I[d*r+o+1],C[3*d+2]=I[d*r+o+2];E=(d,b,h)=>{const l=h*h,w=Math.pow(i.material.uniforms.cropRadius.value,2),M=new f.Matrix3,k=new f.Vector3,N=new f.Vector3,F=new f.Vector3,G=new f.Vector3,L=C.length/3;for(let x=0;x<L;x++){if(k.set(C[3*x],-C[3*x+2],C[3*x+1]),k.lengthSq()>w||d.distanceSqToPoint(k)>l)continue;vB(e,g,x,M);const W=N.copy(k).sub(d.origin).dot(d.direction);if(W<0)continue;G.copy(d.direction).multiplyScalar(W).add(d.origin);const X=N.copy(G).sub(k);JB(M,X,F);const eA=X.dot(F),AA=a.getW(x)*Math.exp(-.5*eA);AA>.01&&b.push({distance:W,point:G.clone(),opacity:AA,type:"splat",object:this})}},B>this.freeAddresses.size&&this.growTextures();for(let d=0;d<B;d++){const b=this.freeAddresses.poll();isNaN(b)&&console.log("insuficient texture size to store splats info"),n.push(b),s.push(3*b);const h=d*this.batchSize;this.addSplatsBatch(h,b,Q,a,e,g)}i.worker.postMessage({method:"addBatches",insertionIndexes:s,positions:I.buffer,offset:o,stride:r,batchSize:i.batchSize},[I.buffer]);let c=!1;return{hide:()=>{c==1&&i.worker&&(i.numVisibleBatches--,c=!1,i.worker.postMessage({method:"hideBatches",insertionIndexes:s,xyz:[i.cameraPosition.x,i.cameraPosition.z,-i.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:i.sortID++}))},show:d=>{if(c==0&&i.worker){i.numVisibleBatches--,c=!0;const b=i.sortID,h=l=>l>=b&&(d(),!0);i.sortListeners.push(h),i.worker.postMessage({method:"showBatches",insertionIndexes:s,xyz:[i.cameraPosition.x,i.cameraPosition.z,-i.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:i.sortID++})}},remove:()=>{i.worker&&(E=void 0,i.worker.postMessage({method:"removeBatches",insertionIndexes:s,xyz:[i.cameraPosition.x,i.cameraPosition.z,-i.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:i.sortID++}),n.forEach(d=>i.freeAddresses.add(d)))},sort:this.sort,raycast:E,isSplatsBatch:!0}}addSplatsBatch(A,a,e,g,i,I){const r=new Uint32Array(4*this.batchSize),o=new Uint32Array(4*this.batchSize);for(let Q=a;Q<a+this.batchSize;Q++){const c=Q-a,d=4*c,b=A+c,h=3*(A+c);if(b>=e.count)break;r[d]=e[h],r[d+1]=e[h+1],r[d+2]=e[h+2];const l=0|Math.floor(255*g.getX(b)+.5),w=0|Math.floor(255*g.getY(b)+.5),M=0|Math.floor(255*g.getZ(b)+.5),k=0|Math.floor(255*g.getW(b)+.5);r[d+3]=l|w<<8|M<<16|k<<24,o[d]=wg(i.getX(b),i.getY(b)),o[d+1]=wg(i.getZ(b),I.getX(b)),o[d+2]=wg(I.getY(b),I.getZ(b))}const B=Math.floor(a/Math.pow(this.textureSize,2)),n=Math.ceil(this.batchSize/this.textureSize),s=[0,a/this.textureSize-B*this.textureSize,this.textureSize];s.push(s[1]+n);const E=new f.DataTexture(r,this.textureSize,n,f.RGBAIntegerFormat,f.UnsignedIntType);E.internalFormat="RGBA32UI",E.generateMipmaps=!1,E.magFilter=f.NearestFilter,E.minFilter=f.NearestFilter,E.anisotropy=0,E.needsUpdate=!0,this.renderer.initTexture(E),this.copyTex2D(E,this.positionColorRenderTarget,s,B),E.dispose();const C=new f.DataTexture(o,this.textureSize,n,f.RGBAIntegerFormat,f.UnsignedIntType);C.internalFormat="RGBA32UI",C.generateMipmaps=!1,C.magFilter=f.NearestFilter,C.minFilter=f.NearestFilter,C.anisotropy=0,C.needsUpdate=!0,this.renderer.initTexture(C),this.copyTex2D(C,this.covarianceRenderTarget,s,B),C.dispose()}growTextures(){for(let g=this.maxSplats;g<this.maxSplats+this.textureSize*this.textureSize;g+=this.batchSize)this.freeAddresses.add(g);this.maxSplats+=this.textureSize*this.textureSize;const A=this.numTextures+1,a=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,A,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});a.texture.type=f.UnsignedIntType,a.texture.internalFormat="RGBA32UI",a.texture.format=f.RGBAIntegerFormat,this.renderer.initRenderTarget(a),this.copyTex3D(this.positionColorRenderTarget.texture,a,this.numTextures),this.positionColorRenderTarget.dispose(),this.positionColorRenderTarget=a,this.material.uniforms.positionColorTexture.value=this.positionColorRenderTarget.texture;const e=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,A,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,depthBuffer:!1,resolveDepthBuffer:!1});e.texture.type=f.UnsignedIntType,e.texture.internalFormat="RGBA32UI",e.texture.format=f.RGBAIntegerFormat,this.renderer.initRenderTarget(e),this.copyTex3D(this.covarianceRenderTarget.texture,e,this.numTextures),this.covarianceRenderTarget.dispose(),this.covarianceRenderTarget=e,this.material.uniforms.covarianceTexture.value=this.covarianceRenderTarget.texture,this.numTextures=A,this.material.uniforms.numSlices.value=this.numTextures}}function WI(){return`
|
|
55
67
|
precision highp float;
|
|
56
68
|
precision highp int;
|
|
57
69
|
precision highp usampler3D;
|
|
@@ -68,15 +80,12 @@ out vec2 vUv;
|
|
|
68
80
|
out vec3 splatPositionWorld;
|
|
69
81
|
out vec3 splatPositionModel;
|
|
70
82
|
out float splatDepth;
|
|
71
|
-
//out float orthographicDepth;
|
|
72
83
|
out float stds;
|
|
84
|
+
out vec2 viewZW;
|
|
73
85
|
uniform highp usampler3D positionColorTexture;
|
|
74
86
|
uniform highp usampler3D covarianceTexture;
|
|
75
87
|
uniform mat3 zUpToYUpMatrix3x3;
|
|
76
88
|
uniform float logDepthBufFC;
|
|
77
|
-
//uniform float cameraNear;
|
|
78
|
-
//uniform float cameraFar;
|
|
79
|
-
//uniform bool computeLinearDepth;
|
|
80
89
|
uniform vec2 viewportPixelSize; // vec2(width , height)
|
|
81
90
|
uniform float k;
|
|
82
91
|
uniform float beta_k; // pow((4.0 * gamma(2.0/k)) /k, k/2)
|
|
@@ -84,21 +93,10 @@ uniform float minSplatPixelSize;
|
|
|
84
93
|
uniform float minOpacity;
|
|
85
94
|
uniform bool culling;
|
|
86
95
|
uniform float antialiasingFactor;
|
|
96
|
+
uniform float cropRadius;
|
|
87
97
|
|
|
88
98
|
|
|
89
99
|
void getVertexData(out vec3 position, out mat3 covariance) {
|
|
90
|
-
/* float index = float(order)+0.1; // add small offset to avoid floating point errors with modulo
|
|
91
|
-
float pixelsPerSlice = textureSize * textureSize;
|
|
92
|
-
float sliceIndex = floor(index / pixelsPerSlice);
|
|
93
|
-
float slicePixelIndex = mod(index,pixelsPerSlice);
|
|
94
|
-
|
|
95
|
-
float x = mod(slicePixelIndex,textureSize);
|
|
96
|
-
float y = floor(slicePixelIndex / textureSize);
|
|
97
|
-
|
|
98
|
-
ivec3 coord = ivec3(
|
|
99
|
-
int( (x + 0.5) ), // x pixel
|
|
100
|
-
int( (y + 0.5) ), // y pixel
|
|
101
|
-
int( sliceIndex + 0.5 ) ); // z slice */
|
|
102
100
|
|
|
103
101
|
|
|
104
102
|
highp uint uOrder = order; // Use a local uint copy
|
|
@@ -217,238 +215,8 @@ void main() {
|
|
|
217
215
|
splatPositionModel = vec3(0.0);
|
|
218
216
|
mat3 covariance = mat3(0.0);
|
|
219
217
|
getVertexData(splatPositionModel, covariance);
|
|
220
|
-
|
|
221
|
-
/* opacity ‑> stds */
|
|
222
|
-
float maxV = min(1.0,max(color.a, 0.0001));
|
|
223
|
-
float thresh = min(minOpacity, maxV);
|
|
224
|
-
if(thresh >= maxV) return;
|
|
225
|
-
float lnRatio = log(thresh/maxV);
|
|
226
|
-
stds = pow(-8.0 * lnRatio/beta_k, 1.0/k);//sqrt(2.0 * log(maxV / thresh));
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
splatPositionWorld = (modelMatrix * vec4(splatPositionModel, 1.0)).xyz;
|
|
230
|
-
vec4 splatPositionProjected = projectionMatrix * viewMatrix * vec4(splatPositionWorld, 1.0);
|
|
231
|
-
|
|
232
|
-
if(culling){
|
|
233
|
-
float clip = 1.2 * splatPositionProjected.w;
|
|
234
|
-
if (splatPositionProjected.z < -splatPositionProjected.w || splatPositionProjected.x < -clip || splatPositionProjected.x > clip || splatPositionProjected.y < -clip || splatPositionProjected.y > clip) {
|
|
235
|
-
gl_Position = vec4(0.0, 0.0, 2.0, 1.0);
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
vec3 offsetWorld = vec3(position)*sizeMultiplier*0.5*stds;
|
|
242
|
-
|
|
243
|
-
bool valid = modelTransform(splatPositionWorld, covariance, offsetWorld);
|
|
244
|
-
if(!valid) return;
|
|
245
|
-
|
|
246
|
-
vec4 outPosition = projectionMatrix * viewMatrix * vec4(offsetWorld+splatPositionWorld,1.0);
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
gl_Position = outPosition;
|
|
251
|
-
/* if(computeLinearDepth){
|
|
252
|
-
orthographicDepth = viewZToOrthographicDepth( -gl_Position.w, cameraNear, cameraFar );
|
|
253
|
-
} */
|
|
254
|
-
|
|
255
|
-
#if defined( USE_LOGDEPTHBUF )
|
|
256
|
-
float isPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
|
|
257
|
-
splatDepth = isPerspective == 0.0 ? splatPositionProjected.z : log2( 1.0 + splatPositionProjected.w ) * logDepthBufFC * 0.5;
|
|
258
|
-
#else
|
|
259
|
-
splatDepth = (splatPositionProjected.z / splatPositionProjected.w)* 0.5 + 0.5;
|
|
260
|
-
#endif
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
}
|
|
264
|
-
`}function Jn(){return`
|
|
265
|
-
precision highp float;
|
|
266
|
-
precision highp int;
|
|
267
|
-
|
|
268
|
-
in float stds;
|
|
269
|
-
in vec4 color;
|
|
270
|
-
in vec2 vUv;
|
|
271
|
-
in vec3 splatPositionModel;
|
|
272
|
-
in vec3 splatPositionWorld;
|
|
273
|
-
in float splatDepth;
|
|
274
|
-
|
|
275
|
-
layout(location = 0) out vec4 fragColor;
|
|
276
|
-
|
|
277
|
-
uniform float textureSize;
|
|
278
|
-
|
|
279
|
-
uniform float k;
|
|
280
|
-
uniform float beta_k; // pow((4.0 * gamma(2.0/k)) /k, k/2)
|
|
281
|
-
|
|
282
|
-
void main() {
|
|
283
|
-
float l = dot(vUv, vUv);
|
|
284
|
-
if (l > 0.25) discard; // early out unchanged
|
|
285
|
-
vec2 p = vUv * stds;
|
|
286
|
-
float r2 = dot(p, p); // r²
|
|
287
|
-
float rk = pow(r2, 0.5 * k); // r^{k}
|
|
288
|
-
float alpha = color.w * exp(-beta_k * rk);
|
|
289
|
-
|
|
290
|
-
fragColor = vec4(pow(color.xyz,vec3(1.0/2.2)), alpha);
|
|
291
|
-
|
|
292
|
-
//gl_FragDepth = splatDepth;
|
|
293
|
-
|
|
294
|
-
}`}function Vn(){return`
|
|
295
|
-
|
|
296
|
-
precision highp float;
|
|
297
|
-
precision highp int;
|
|
298
|
-
|
|
299
|
-
out vec2 vUv;
|
|
300
|
-
|
|
301
|
-
void main() {
|
|
302
|
-
vUv = uv;
|
|
303
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
304
|
-
}`}const kt=new f.Vector3,Fc=new f.Vector3,Hn=new f.Matrix3;Hn.set(1,0,0,0,0,1,0,-1,0);const Qc=new f.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);class kc extends f.Mesh{constructor(e,a,t){const n=Math.min(Math.ceil(4)*1024,Math.pow(1024,2));let o=1*Math.pow(1024,2);o=Math.floor(o/n)*n;const s=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.HalfFloatType,format:f.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});s.texture.type=f.HalfFloatType,s.texture.format=f.RGBAFormat,s.texture.internalFormat="RGBA16F",e.initRenderTarget(s);const c=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedByteType,format:f.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});c.texture.type=f.UnsignedByteType,c.texture.format=f.RGBAFormat,c.texture.internalFormat="RGBA8",e.initRenderTarget(c);const u=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.HalfFloatType,format:f.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});u.texture.type=f.HalfFloatType,u.texture.format=f.RGBAFormat,u.texture.internalFormat="RGBA16F",e.initRenderTarget(u);const A=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.HalfFloatType,format:f.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});A.texture.type=f.HalfFloatType,A.texture.format=f.RGBAFormat,A.texture.internalFormat="RGBA16F",e.initRenderTarget(A);const d=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{textureSize:{value:1024},numSlices:{value:1},covarianceTexture1:{value:u.texture},covarianceTexture2:{value:A.texture},positionTexture:{value:s.texture},colorTexture:{value:c.texture},zUpToYUpMatrix3x3:{value:Hn},sizeMultiplier:{value:1},cropRadius:{value:Number.MAX_VALUE},cameraNear:{value:.01},cameraFar:{value:10},computeLinearDepth:{value:!0},viewportPixelSize:{value:new f.Vector2},k:{value:2},beta_k:{value:2},minSplatPixelSize:{value:0},minOpacity:{value:.01},culling:{value:!0},antialiasingFactor:{value:2}},vertexShader:`
|
|
305
|
-
precision highp float;
|
|
306
|
-
precision highp int;
|
|
307
|
-
precision highp sampler3D;
|
|
308
|
-
|
|
309
|
-
#include <common>
|
|
310
|
-
|
|
311
|
-
uniform float textureSize;
|
|
312
|
-
uniform float numSlices;
|
|
313
|
-
uniform float sizeMultiplier;
|
|
314
|
-
in highp uint order;
|
|
315
|
-
out vec4 color;
|
|
316
|
-
out vec2 vUv;
|
|
317
|
-
out vec3 splatPositionWorld;
|
|
318
|
-
out vec3 splatPositionModel;
|
|
319
|
-
out float splatDepth;
|
|
320
|
-
//out float orthographicDepth;
|
|
321
|
-
out float stds;
|
|
322
|
-
uniform highp sampler3D positionTexture; //changed
|
|
323
|
-
uniform highp sampler3D colorTexture; //changed
|
|
324
|
-
uniform highp sampler3D covarianceTexture1; //changed
|
|
325
|
-
uniform highp sampler3D covarianceTexture2; //changed
|
|
326
|
-
uniform mat3 zUpToYUpMatrix3x3;
|
|
327
|
-
uniform float logDepthBufFC;
|
|
328
|
-
//uniform float cameraNear;
|
|
329
|
-
//uniform float cameraFar;
|
|
330
|
-
//uniform bool computeLinearDepth;
|
|
331
|
-
uniform vec2 viewportPixelSize; // vec2(width , height)
|
|
332
|
-
uniform float k;
|
|
333
|
-
uniform float beta_k; // pow((4.0 * gamma(2.0/k)) /k, k/2)
|
|
334
|
-
uniform float minSplatPixelSize;
|
|
335
|
-
uniform float minOpacity;
|
|
336
|
-
uniform bool culling;
|
|
337
|
-
uniform float antialiasingFactor;
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
void getVertexData(out vec3 position, out mat3 covariance) {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
highp uint uOrder = order; // Use a local uint copy
|
|
344
|
-
|
|
345
|
-
// It's good practice to ensure textureSize is treated as uint for these calcs
|
|
346
|
-
uint uTextureSize = uint(textureSize); // textureSize uniform is float
|
|
347
|
-
uint uPixelsPerSlice = uTextureSize * uTextureSize;
|
|
348
|
-
|
|
349
|
-
uint sliceIndexVal = uOrder / uPixelsPerSlice;
|
|
350
|
-
uint slicePixelIndex = uOrder % uPixelsPerSlice; // umod(uOrder, uPixelsPerSlice) also works
|
|
351
|
-
|
|
352
|
-
uint xVal = slicePixelIndex % uTextureSize; // umod(slicePixelIndex, uTextureSize)
|
|
353
|
-
uint yVal = slicePixelIndex / uTextureSize;
|
|
354
|
-
|
|
355
|
-
// texelFetch takes ivec3 for coordinates, no +0.5 needed as these are direct integer indices
|
|
356
|
-
ivec3 coord = ivec3(xVal, yVal, sliceIndexVal);
|
|
357
|
-
|
|
358
|
-
// Position
|
|
359
|
-
position = texelFetch(positionTexture, coord, 0).rgb; //changed
|
|
360
|
-
|
|
361
|
-
// Color
|
|
362
|
-
color = texelFetch(colorTexture, coord, 0); //changed
|
|
363
|
-
|
|
364
|
-
// Covariance
|
|
365
|
-
vec3 cov_comp_012 = texelFetch(covarianceTexture1, coord, 0).rgb; //changed
|
|
366
|
-
vec3 cov_comp_345 = texelFetch(covarianceTexture2, coord, 0).rgb; //changed
|
|
367
|
-
|
|
368
|
-
covariance = mat3(cov_comp_012.x, cov_comp_012.y, cov_comp_012.z, // c00, c01, c02 //changed
|
|
369
|
-
cov_comp_012.y, cov_comp_345.x, cov_comp_345.y, // c01, c11, c12 //changed
|
|
370
|
-
cov_comp_012.z, cov_comp_345.y, cov_comp_345.z); // c02, c12, c22 //changed
|
|
371
|
-
|
|
372
|
-
mat3 modelRotation = zUpToYUpMatrix3x3*transpose(mat3(modelMatrix));
|
|
373
|
-
covariance = transpose(zUpToYUpMatrix3x3) * covariance * zUpToYUpMatrix3x3;
|
|
374
|
-
covariance = transpose(modelRotation) * covariance * (modelRotation);
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
bool modelTransform(in vec3 splatWorld, in mat3 covariance, inout vec3 vertexPosition) {
|
|
378
|
-
|
|
379
|
-
/* camera‑space Jacobian rows ----------------------------------------- */
|
|
380
|
-
vec3 posCam = (viewMatrix * vec4(splatWorld, 1.0)).xyz;
|
|
381
|
-
float invZ = 1.0 / posCam.z;
|
|
382
|
-
float invZ2 = invZ * invZ;
|
|
383
|
-
float fx = projectionMatrix[0][0];
|
|
384
|
-
float fy = projectionMatrix[1][1];
|
|
385
|
-
|
|
386
|
-
vec3 j0 = vec3(fx * invZ, 0.0, -fx * posCam.x * invZ2);
|
|
387
|
-
vec3 j1 = vec3(0.0, fy * invZ, -fy * posCam.y * invZ2);
|
|
388
|
-
|
|
389
|
-
mat3 viewRotT = transpose(mat3(viewMatrix));
|
|
390
|
-
vec3 j0W = viewRotT * j0;
|
|
391
|
-
vec3 j1W = viewRotT * j1;
|
|
392
|
-
|
|
393
|
-
vec3 tmp0 = covariance * j0W;
|
|
394
|
-
vec3 tmp1 = covariance * j1W;
|
|
395
|
-
float a = dot(j0W, tmp0);
|
|
396
|
-
float b = dot(j0W, tmp1);
|
|
397
|
-
float c = dot(j1W, tmp1);
|
|
398
|
-
float sigmaNDC = (antialiasingFactor / viewportPixelSize.x) * 2.0;
|
|
399
|
-
float k2 = sigmaNDC * sigmaNDC;
|
|
400
|
-
float detOrig = a * c - b * b;
|
|
401
|
-
a += k2;
|
|
402
|
-
c += k2;
|
|
403
|
-
float detBlur = a * c - b * b;
|
|
404
|
-
color.a *= sqrt(clamp(detOrig / detBlur, 0.0, 1.0-1.0e-6));
|
|
405
|
-
if(color.a < 0.01) return false;
|
|
406
|
-
//color.a = 1.0;
|
|
407
|
-
float halfTrace = 0.5 * (a + c);
|
|
408
|
-
float rootTerm = sqrt(max(halfTrace * halfTrace - (a * c - b * b), 0.0));
|
|
409
|
-
float lambda1 = halfTrace + rootTerm;
|
|
410
|
-
float lambda2 = halfTrace - rootTerm;
|
|
411
218
|
|
|
412
|
-
if(
|
|
413
|
-
return false;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
vec2 eig1 = (abs(b) < 1e-7)
|
|
419
|
-
? ((a >= c) ? vec2(1.0, 0.0) : vec2(0.0, 1.0))
|
|
420
|
-
: normalize(vec2(b, lambda1 - a));
|
|
421
|
-
vec2 eig2 = vec2(-eig1.y, eig1.x);
|
|
422
|
-
|
|
423
|
-
eig1 *= sqrt(lambda1) * 2.0;
|
|
424
|
-
eig2 *= sqrt(lambda2) * 2.0;
|
|
425
|
-
|
|
426
|
-
float alpha = dot(j0, j0);
|
|
427
|
-
float beta = dot(j0, j1);
|
|
428
|
-
float gamma = dot(j1, j1);
|
|
429
|
-
float invDet = 1.0 / (alpha * gamma - beta * beta);
|
|
430
|
-
|
|
431
|
-
vec3 deltaCam1 = ( gamma * eig1.x - beta * eig1.y) * j0 +
|
|
432
|
-
(-beta * eig1.x + alpha * eig1.y) * j1;
|
|
433
|
-
vec3 deltaCam2 = ( gamma * eig2.x - beta * eig2.y) * j0 +
|
|
434
|
-
(-beta * eig2.x + alpha * eig2.y) * j1;
|
|
435
|
-
deltaCam1 *= invDet*0.5;
|
|
436
|
-
deltaCam2 *= invDet*0.5;
|
|
437
|
-
|
|
438
|
-
vec3 axisW1 = viewRotT * deltaCam1;
|
|
439
|
-
vec3 axisW2 = viewRotT * deltaCam2;
|
|
440
|
-
|
|
441
|
-
vertexPosition = vertexPosition.x * axisW1 + vertexPosition.y * axisW2;
|
|
442
|
-
return true;
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
void main() {
|
|
447
|
-
vUv = vec2(position);
|
|
448
|
-
|
|
449
|
-
splatPositionModel = vec3(0.0);
|
|
450
|
-
mat3 covariance = mat3(0.0);
|
|
451
|
-
getVertexData(splatPositionModel, covariance);
|
|
219
|
+
if(length(splatPositionModel) > cropRadius) return;
|
|
452
220
|
|
|
453
221
|
/* opacity ‑> stds */
|
|
454
222
|
float maxV = min(1.0,max(color.a, 0.0001));
|
|
@@ -480,6 +248,7 @@ void main() {
|
|
|
480
248
|
|
|
481
249
|
|
|
482
250
|
gl_Position = outPosition;
|
|
251
|
+
viewZW = outPosition.zw;
|
|
483
252
|
/* if(computeLinearDepth){
|
|
484
253
|
orthographicDepth = viewZToOrthographicDepth( -gl_Position.w, cameraNear, cameraFar );
|
|
485
254
|
} */
|
|
@@ -493,7 +262,7 @@ void main() {
|
|
|
493
262
|
|
|
494
263
|
|
|
495
264
|
}
|
|
496
|
-
|
|
265
|
+
`}function VI(){return`
|
|
497
266
|
precision highp float;
|
|
498
267
|
precision highp int;
|
|
499
268
|
|
|
@@ -521,32 +290,9 @@ void main() {
|
|
|
521
290
|
|
|
522
291
|
fragColor = vec4(pow(color.xyz,vec3(1.0/2.2)), alpha);
|
|
523
292
|
|
|
524
|
-
|
|
293
|
+
gl_FragDepth = splatDepth;
|
|
525
294
|
|
|
526
|
-
}
|
|
527
|
-
precision highp float;
|
|
528
|
-
precision highp int;
|
|
529
|
-
|
|
530
|
-
layout(location = 0) out highp vec4 fragColor;
|
|
531
|
-
uniform highp sampler2D sourceTexture;
|
|
532
|
-
|
|
533
|
-
in vec2 vUv;
|
|
534
|
-
|
|
535
|
-
void main() {
|
|
536
|
-
fragColor = texture( sourceTexture, vUv );
|
|
537
|
-
}`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyMaterial3D=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{sourceTexture:{},w:{value:0}},vertexShader:Wn(),fragmentShader:`
|
|
538
|
-
precision highp float;
|
|
539
|
-
precision highp int;
|
|
540
|
-
|
|
541
|
-
layout(location = 0) out highp vec4 fragColor;
|
|
542
|
-
uniform highp sampler3D sourceTexture;
|
|
543
|
-
uniform float w;
|
|
544
|
-
|
|
545
|
-
in vec2 vUv;
|
|
546
|
-
|
|
547
|
-
void main() {
|
|
548
|
-
fragColor = texture( sourceTexture, vec3(vUv, w) );
|
|
549
|
-
}`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyCamera=new f.OrthographicCamera(-.5,.5,.5,-.5,.1,10),this.copyCamera.position.z=1,this.copyScene=new f.Scene;const m=new f.PlaneGeometry(1,1);this.copyQuad=new f.Mesh(m,this.copyMaterial2D),this.copyScene.add(this.copyQuad),this.copyScene.matrixAutoUpdate=!1,this.copyQuad.matrixAutoUpdate=!1}setQuality(e){const a=2+2*(e=Math.max(0,Math.min(1,1-e)));this.material.uniforms.k.value=a,this.material.uniforms.beta_k.value=Math.pow(4*Pn(2/a)/a,a/2),this.material.uniforms.minSplatPixelSize.value=5*e,this.material.uniforms.minOpacity.value=.01}setSplatsCPUCulling(e){this.splatsCPUCuling=e,this.material.uniforms.culling.value=!e}updateShaderParams(e){e.projectionMatrix.elements,this.renderer.getSize(this.material.uniforms.viewportPixelSize.value);const a=this.renderer.getPixelRatio();this.material.uniforms.viewportPixelSize.value.multiplyScalar(a),this.material.uniforms.antialiasingFactor.value=2}dispose(){this.material.dispose(),this.copyMaterial2D.dispose(),this.copyMaterial3D.dispose(),this.positionRenderTarget.dispose(),this.colorRenderTarget.dispose(),this.covarianceRenderTarget1.dispose(),this.covarianceRenderTarget2.dispose(),this.worker.terminate(),this.worker=null,this.orderAttribute.array=void 0,this.geometry.dispose()}copyTex2D(e,a,t,i){this.copyMaterial2D.uniforms.sourceTexture.value=e;const n=this.renderer.autoClear,o=this.renderer.getRenderTarget();this.renderer.autoClear=!1;const s=t[2]-t[0],c=t[3]-t[1];a.viewport.set(t[0],t[1],s,c),this.renderer.setRenderTarget(a,i),this.renderer.render(this.copyScene,this.copyCamera),this.renderer.setRenderTarget(o),this.renderer.autoClear=n}copyTex3D(e,a,t){this.copyMaterial3D.uniforms.sourceTexture.value=e;const i=this.renderer.autoClear,n=this.renderer.getRenderTarget();this.renderer.autoClear=!1,this.copyQuad.material=this.copyMaterial3D;for(let o=0;o<t;o++)this.renderer.setRenderTarget(a,o),this.copyMaterial3D.uniforms.w.value=(o+.5)/t,this.renderer.render(this.copyScene,this.copyCamera);this.copyQuad.material=this.copyMaterial2D,this.renderer.setRenderTarget(n),this.renderer.autoClear=i}setSplatsSizeMultiplier(e){this.material.uniforms.sizeMultiplier.value=e}setSplatsCropRadius(e){this.material.uniforms.cropRadius.value=e}sort(e,a){this.worker&&(e?this.cameraPosition&&e.equals(this.cameraPosition)||(this.cameraPosition.copy(e),a?(this.viewProjModel||(this.viewProjModel=new f.Matrix4),this.viewProjModel.copy(a),this.viewProjModel.multiply(Qc)):this.viewProjModel=void 0,this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++})):this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++}))}raycast(e,a){}addSplatsTile(e,a,t,i){if(!this.worker)return;const n=this,o=e.data?e.data.array:e.array,s=e.data&&e.data.isInterleavedBuffer?e.data.stride:3,c=e.data&&e.data.isInterleavedBuffer?e.offset:0,u=Math.ceil(o.length/(this.batchSize*s)),A=[],d=[];let b=()=>{};const h=new Float32Array(o.length/s*3);for(let g=0;g<o.length/3;g++)h[3*g]=o[g*s+c],h[3*g+1]=o[g*s+c+1],h[3*g+2]=o[g*s+c+2];b=(g,m,E)=>{const p=E*E;for(let C=0;C<h.length;C+=3){kt.set(h[C],-h[C+2],h[C+1]);const I=Fc.copy(kt).sub(g.origin).dot(g.direction);I>0&&g.distanceSqToPoint(kt)<p&&m.push({distance:I,point:kt.clone(),type:"splat"})}},u>this.freeAddresses.size&&this.growTextures();for(let g=0;g<u;g++){const m=this.freeAddresses.poll();isNaN(m)&&console.log("insuficient texture size to store splats info"),A.push(m),d.push(3*m);const E=g*this.batchSize;this.addSplatsBatch(E,m,h,a,t,i)}n.worker.postMessage({method:"addBatches",insertionIndexes:d,positions:o.buffer,offset:c,stride:s,batchSize:n.batchSize},[o.buffer]);let l=!1;return{hide:()=>{l==1&&n.worker&&(n.numVisibleBatches--,l=!1,n.worker.postMessage({method:"hideBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++}))},show:g=>{if(l==0&&n.worker){n.numVisibleBatches--,l=!0;const m=n.sortID,E=p=>p>=m&&(g(),!0);n.sortListeners.push(E),n.worker.postMessage({method:"showBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++})}},remove:()=>{n.worker&&(b=void 0,n.worker.postMessage({method:"removeBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++}),A.forEach(g=>n.freeAddresses.add(g)))},sort:this.sort,raycast:b,isSplatsBatch:!0}}addSplatsBatch(e,a,t,i,n,o){const s=new Uint16Array(3*this.batchSize),c=new Uint8Array(4*this.batchSize),u=new Uint16Array(3*this.batchSize),A=new Uint16Array(3*this.batchSize);for(let p=a;p<a+this.batchSize;p++){const C=p-a,I=3*C,x=4*C,y=e+C,w=3*(e+C);if(y>=t.length/3)break;s[I]=f.DataUtils.toHalfFloat(t[w]),s[I+1]=f.DataUtils.toHalfFloat(t[w+1]),s[I+2]=f.DataUtils.toHalfFloat(t[w+2]);const D=0|Math.floor(255*i.getX(y)+.5),F=0|Math.floor(255*i.getY(y)+.5),j=0|Math.floor(255*i.getZ(y)+.5),M=0|Math.floor(255*i.getW(y)+.5);c[x]=D,c[x+1]=F,c[x+2]=j,c[x+3]=M,u[I]=f.DataUtils.toHalfFloat(n.getX(y)),u[I+1]=f.DataUtils.toHalfFloat(n.getY(y)),u[I+2]=f.DataUtils.toHalfFloat(n.getZ(y)),A[I]=f.DataUtils.toHalfFloat(o.getX(y)),A[I+1]=f.DataUtils.toHalfFloat(o.getY(y)),A[I+2]=f.DataUtils.toHalfFloat(o.getZ(y))}const d=Math.floor(a/Math.pow(this.textureSize,2)),b=Math.ceil(this.batchSize/this.textureSize),h=[0,a/this.textureSize-d*this.textureSize,this.textureSize];h.push(h[1]+b);const l=new f.DataTexture(s,this.textureSize,b,f.RGBFormat,f.HalfFloatType);l.internalFormat="RGB16F",l.generateMipmaps=!1,l.magFilter=f.NearestFilter,l.minFilter=f.NearestFilter,l.anisotropy=0,l.needsUpdate=!0,this.renderer.initTexture(l),this.copyTex2D(l,this.positionRenderTarget,h,d),l.dispose();const g=new f.DataTexture(c,this.textureSize,b,f.RGBAFormat,f.UnsignedByteType);g.internalFormat="RGBA8",g.generateMipmaps=!1,g.magFilter=f.NearestFilter,g.minFilter=f.NearestFilter,g.anisotropy=0,g.needsUpdate=!0,this.renderer.initTexture(g),this.copyTex2D(g,this.colorRenderTarget,h,d),g.dispose();const m=new f.DataTexture(u,this.textureSize,b,f.RGBFormat,f.HalfFloatType);m.internalFormat="RGB16F",m.generateMipmaps=!1,m.magFilter=f.NearestFilter,m.minFilter=f.NearestFilter,m.anisotropy=0,m.needsUpdate=!0,this.renderer.initTexture(m),this.copyTex2D(m,this.covarianceRenderTarget1,h,d),m.dispose();const E=new f.DataTexture(A,this.textureSize,b,f.RGBFormat,f.HalfFloatType);E.internalFormat="RGB16F",E.generateMipmaps=!1,E.magFilter=f.NearestFilter,E.minFilter=f.NearestFilter,E.anisotropy=0,E.needsUpdate=!0,this.renderer.initTexture(E),this.copyTex2D(E,this.covarianceRenderTarget2,h,d),E.dispose()}growTextures(){for(let o=this.maxSplats;o<this.maxSplats+this.textureSize*this.textureSize;o+=this.batchSize)this.freeAddresses.add(o);this.maxSplats+=this.textureSize*this.textureSize;const e=this.numTextures+1,a=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.HalfFloatType,format:f.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});a.texture.type=f.HalfFloatType,a.texture.format=f.RGBAFormat,a.texture.internalFormat="RGBA16F",this.renderer.initRenderTarget(a),this.copyTex3D(this.positionRenderTarget.texture,a,this.numTextures),this.positionRenderTarget.dispose(),this.positionRenderTarget=a,this.material.uniforms.positionTexture.value=this.positionRenderTarget.texture;const t=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedByteType,format:f.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});t.texture.type=f.UnsignedByteType,t.texture.format=f.RGBAFormat,t.texture.internalFormat="RGBA8",this.renderer.initRenderTarget(t),this.copyTex3D(this.colorRenderTarget.texture,t,this.numTextures),this.colorRenderTarget.dispose(),this.colorRenderTarget=t,this.material.uniforms.colorTexture.value=this.colorRenderTarget.texture;const i=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.HalfFloatType,format:f.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});i.texture.type=f.HalfFloatType,i.texture.format=f.RGBAFormat,i.texture.internalFormat="RGBA16F",this.renderer.initRenderTarget(i),this.copyTex3D(this.covarianceRenderTarget1.texture,i,this.numTextures),this.covarianceRenderTarget1.dispose(),this.covarianceRenderTarget1=i,this.material.uniforms.covarianceTexture1.value=this.covarianceRenderTarget1.texture;const n=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.HalfFloatType,format:f.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});n.texture.type=f.HalfFloatType,n.texture.format=f.RGBAFormat,n.texture.internalFormat="RGBA16F",this.renderer.initRenderTarget(n),this.copyTex3D(this.covarianceRenderTarget2.texture,n,this.numTextures),this.covarianceRenderTarget2.dispose(),this.covarianceRenderTarget2=n,this.material.uniforms.covarianceTexture2.value=this.covarianceRenderTarget2.texture,this.numTextures=e,this.material.uniforms.numSlices.value=this.numTextures}}function Wn(){return`
|
|
295
|
+
}`}function XI(){return`
|
|
550
296
|
|
|
551
297
|
precision highp float;
|
|
552
298
|
precision highp int;
|
|
@@ -556,5 +302,5 @@ out vec2 vUv;
|
|
|
556
302
|
void main() {
|
|
557
303
|
vUv = uv;
|
|
558
304
|
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
559
|
-
}`}var oe;const aa=new G.Sphere(new G.Vector3(0,0,0),1),ba=new Ke([0,0,0,1,0,0,0,1,0,0,0,1]);new G.Box3;const ya=new G.Vector3(0,0,0),Ja=new G.Vector3(0,0,0),jc=new G.Vector3(0,1,0),jt=new G.Ray,Mt=new G.Matrix4;new G.Matrix4,new G.Frustum;const Rt=new G.Vector3,St=[],Xn=new G.Quaternion,sa={};function Yn(){var r=[];for(let e in sa)sa.hasOwnProperty(e)&&sa[e]>0&&r.push(e);return r}class Fr extends G.Object3D{constructor(e){super();const a=this;if(a.splatsMesh=e.splatsMesh,a.iosCompatibility=e.iosCompatibility,a.splatsQuality=e.splatsQuality!=null?e.splatsQuality:.75,a.splatsCPUCulling=e.splatsCPUCulling!=null&&e.splatsCPUCulling,this.contentURL=[],e.domWidth&&e.domHeight?this.rendererSize=new G.Vector2(e.domWidth,e.domHeight):this.rendererSize=new G.Vector2(1e3,1e3),this.setClipShape(e.clipShape),this.loadingStrategy=e.loadingStrategy?e.loadingStrategy.toUpperCase():"INCREMENTAL",this.distanceBias=Math.max(1e-4,e.distanceBias?e.distanceBias:1),this.proxy=e.proxy,this.drawBoundingVolume=!!e.drawBoundingVolume&&e.drawBoundingVolume,this.displayErrors=e.displayErrors,this.displayCopyright=e.displayCopyright,e.queryParams&&(this.queryParams={...e.queryParams}),this.uuid=Kr(),e.tileLoader)this.tileLoader=e.tileLoader;else{const n={};n.meshCallback=e.meshCallback?e.meshCallback:(s,c)=>{s.material.wireframe=!1,s.material.side=G.DoubleSide},n.pointsCallback=e.pointsCallback?e.pointsCallback:(s,c)=>{s.material.size=Math.pow(c,.33),s.material.sizeAttenuation=!0},n.proxy=this.proxy,n.renderer=e.renderer,n.dracoLoader=e.dracoLoader,n.ktx2Loader=e.ktx2Loader,a.tileLoader=new Bi(n);const o=this.update;this.update=s=>{o.call(a,s),a.tileLoader.update()}}if(this.displayCopyright=!!e.displayCopyright,this.geometricErrorMultiplier=e.geometricErrorMultiplier?e.geometricErrorMultiplier:1,this.splatsCropRadius=Number.MAX_VALUE,this.splatsSizeMultiplier=1,this.renderer=e.renderer,this.meshCallback=e.meshCallback,this.loadOutsideView=e.loadOutsideView,this.cameraOnLoad=e.cameraOnLoad,this.parentTile=e.parentTile,this.occlusionCullingService=e.occlusionCullingService,this.static=e.static,this.occlusionCullingService&&(this.color=new G.Color,this.color.setHex(16777215*Math.random()),this.colorID=G.MathUtils.clamp(255*a.color.r,0,255)<<16^G.MathUtils.clamp(255*a.color.g,0,255)<<8^G.MathUtils.clamp(255*a.color.b,0,255)),this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.childrenTiles=[],this.meshContent=[],this.tileContent,this.refine,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.level=e.level?e.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=e.centerModel,this.abortController=new AbortController,this.onLoadCallback=e.onLoadCallback,e.json)a._setup(e);else if(e.url){var t=e.url;if(a.queryParams){var i="";for(let n in a.queryParams)a.queryParams.hasOwnProperty(n)&&(i+="&"+n+"="+a.queryParams[n]);t.includes("?")?t+=i:t+="?"+i.substring(1)}(a.proxy?()=>fetch(a.proxy,{method:"POST",body:t,signal:a.abortController.signal}):()=>fetch(t,{signal:a.abortController.signal}))().then(n=>{if(!n.ok)throw new Error(`couldn't load "${e.url}". Request failed with status ${n.status} : ${n.statusText}`);n.json().then(o=>er(o,t)).then(o=>{a._setup({rootPath:pa.dirname(e.url),json:o})})}).catch(n=>{a.displayErrors&&Zn(n)})}}setClipShape(e){if(e instanceof Ke||e instanceof G.Sphere)this.clipShape=e;else if(e instanceof G.Box3){const a=new G.Vector3,t=new G.Vector3;e.getCenter(a),e.getSize(t).multiplyScalar(.5),this.clipShape=new Ke([a.x,a.y,a.z,t.x,0,0,0,t.y,0,0,0,t.z])}else e=void 0;this.childrenTiles&&this.childrenTiles.forEach(a=>{a._setClipShape(this.clipShape)})}_setClipShape(e){this.clipShape=e,this.childrenTiles&&this.childrenTiles.forEach(a=>{a._setClipShape(this.clipShape)})}setSplatsSizeMultiplier(e){this.splatsSizeMultiplier=e,this.splatsMesh&&this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier)}setSplatsCropRadius(e){this.splatsCropRadius=e,this.splatsMesh&&this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius)}setSplatsCPUCulling(e){this.splatsCPUCulling=e,this.splatsMesh&&this.splatsMesh.setSplatsCPUCulling(e)}setSplatsQuality(e){this.splatsQuality=e,this.splatsMesh&&this.splatsMesh.setQuality(e)}updateMatrices(){this.updateMatrix(),this.splatsMesh&&this.splatsMesh.updateMatrix(),this.static&&(this.traverse(e=>{e.isObject3D&&(e.matrixWorldAutoUpdate=!0)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!0)),this.updateMatrixWorld(!0),this.static&&(this.traverse(e=>{e.isObject3D&&(e.matrixWorldAutoUpdate=!1)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!1))}setCanvasSize(e,a){this.rendererSize.set(e,a)}async _setup(e){const a=this;if(e.json.extensionsRequired&&(e.json.extensionsRequired.includes("JDULTRA_gaussian_splats")||e.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2"))&&(a.splatsMesh=a.iosCompatibility?new kc(a.tileLoader.renderer):new vc(a.tileLoader.renderer),a.splatsMesh.setQuality(a.splatsQuality),a.splatsMesh.setSplatsCPUCulling(a.splatsCPUCulling),a.splatsMesh.setSplatsCropRadius(a.splatsCropRadius),a.splatsMesh.setSplatsSizeMultiplier(a.splatsSizeMultiplier),a.static&&(a.splatsMesh.matrixWorldAutoUpdate=!1),a.add(a.splatsMesh),a.updateMatrices()),e.json.root?(a.json=e.json.root,a.json.refine||(a.json.refine=e.json.refine),a.json.geometricError||(a.json.geometricError=e.json.geometricError),a.json.transform||(a.json.transform=e.json.transform),a.json.boundingVolume||(a.json.boundingVolume=e.json.boundingVolume)):a.json=e.json,a.json.children||(a.json.getChildren?a.json.children=await a.json.getChildren():a.json.children=[]),a.rootPath=e.json.rootPath?e.json.rootPath:e.rootPath,a.json.refine?a.refine=a.json.refine:a.refine=e.parentRefine,a.json.geometricError?a.geometricError=a.json.geometricError:a.geometricError=e.parentGeometricError,a.json.transform){let i=new G.Matrix4;i.elements=a.json.transform,a.applyMatrix4(i)}if(a.json.boundingVolume)if(a.json.boundingVolume.box)a.boundingVolume=new Ke(a.json.boundingVolume.box);else if(a.json.boundingVolume.region){const i=a.json.boundingVolume.region;a._transformWGS84ToCartesian(i[0],i[1],i[4],ya),a._transformWGS84ToCartesian(i[2],i[3],i[5],Ja),ya.lerp(Ja,.5),a.boundingVolume=new G.Sphere(new G.Vector3(ya.x,ya.y,ya.z),ya.distanceTo(Ja))}else if(a.json.boundingVolume.sphere){const i=a.json.boundingVolume.sphere;a.boundingVolume=new G.Sphere(new G.Vector3(i[0],i[1],i[2]),i[3])}else a.boundingVolume=e.parentBoundingVolume;else a.boundingVolume=e.parentBoundingVolume;function t(i){i.uri&&i.uri.includes("json")||i.url&&i.url.includes("json")?a.hasUnloadedJSONContent++:a.hasMeshContent++}if(a.json.content?(t(a.json.content),a.hasMeshContent==0&&(a.level=Math.max(0,a.parentTile?a.parentTile.level+.01:0)),a._load()):a.json.contents&&(a.json.contents.forEach(i=>t(i)),a.hasMeshContent==0&&(a.level=Math.max(0,a.parentTile?a.parentTile.level+.01:0))),a.centerModel&&(Ja.copy(a.boundingVolume.center),this.json.boundingVolume.region&&(this._transformWGS84ToCartesian(.5*(this.json.boundingVolume.region[0]+this.json.boundingVolume.region[2]),.5*(this.json.boundingVolume.region[1]+this.json.boundingVolume.region[3]),.5*(this.json.boundingVolume.region[4]+this.json.boundingVolume.region[5]),ya),Xn.setFromUnitVectors(ya.normalize(),jc.normalize()),a.applyQuaternion(Xn)),Ja.applyMatrix4(a.matrix),a.position.sub(Ja),a.updateMatrices()),a.onLoadCallback&&a.onLoadCallback(a),a.isSetup=!0,a.level>0&&a.drawBoundingVolume)if(a.bbox&&console.log("double setup"),this.boundingVolume.aabb){let i=this.boundingVolume.aabb.clone();i.applyMatrix4(this.matrixWorld),a.bbox=new G.Box3Helper(i,new G.Color(Math.random(),Math.random(),Math.random())),a.add(a.bbox),a.bbox.material.visible=!1}else a.boundingVolume instanceof Ke&&(a.bbox=a.boundingVolume.helper(),a.add(a.bbox),a.bbox.material.visible=!1)}_assembleURL(e,a){e.endsWith("/")||(e+="/");const t=new URL(e);let i=t.pathname.split("/").filter(o=>o!==""),n=a.split("/").filter(o=>o!=="");for(let o=1;o<=i.length&&!(o>=n.length);o++)if(i.slice(i.length-o,i.length).join("/")===n.slice(0,o).join("/")){for(let s=0;s<o;s++)i.pop();break}for(;n.length>0&&n[0]==="..";)i.pop(),n.shift();return`${t.protocol}//${t.host}/${[...i,...n].join("/")}`}_extractQueryParams(e,a){const t=new URL(e);for(let[i,n]of t.searchParams)a[i]=n;return t.search="",t.toString()}async _load(e=!0,a=!0){var t=this;if(!t.deleted){if(t.json.content)await i(t.json.content,null,e,a);else if(t.json.contents){let n=t.json.contents.map((o,s)=>i(o,s,e,a));Promise.all(n)}}async function i(n,o,s,c){let u;n.uri?u=n.uri:n.url&&(u=n.url);const A=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(A.test(t.rootPath)?A.test(u)||(u=t._assembleURL(t.rootPath,u)):pa.isAbsolute(t.rootPath)&&(u=t.rootPath+pa.sep+u),u=t._extractQueryParams(u,t.queryParams),t.queryParams){var d="";for(let b in t.queryParams)t.queryParams.hasOwnProperty(b)&&(d+="&"+b+"="+t.queryParams[b]);u.includes("?")?u+=d:u+="?"+d.substring(1)}if(u)if(t.contentURL.push(u),c&&(u.includes(".b3dm")||u.includes(".glb")||u.includes(".gltf")))try{t.tileLoader.get(t.abortController,t.uuid,u,b=>{t.deleted||(b.asset&&b.asset.copyright&&(b.asset.copyright.split(";").forEach(h=>{sa[h]?sa[h]++:sa[h]=1}),t.displayCopyright&&Qr()),t.meshContent.push(b),t.splatsMesh||(b.traverse(h=>{if((h.isMesh||h.isPoints)&&h.layers.disable(0),h.isMesh&&t.occlusionCullingService){const l=h.geometry.attributes.position,g=[];for(let m=0;m<l.count;m++)g.push(t.color.r,t.color.g,t.color.b);h.geometry.setAttribute("color",new G.Float32BufferAttribute(g,3))}}),t.add(b),t.updateMatrices()))},t.cameraOnLoad?()=>t.loadingStrategy=="IMMEDIATE"?t._calculateDistanceToCamera(t.cameraOnLoad):t.loadingStrategy=="INCREMENTAL"?t.parentTile?t.parentTile._calculateDistanceToCamera(t.cameraOnLoad)/Math.max(1,t.parentTile.level):t._calculateDistanceToCamera(t.cameraOnLoad)/Math.max(1,t.level):t.loadingStrategy=="PERLEVEL"?t.parentTile?t.level+t.parentTile._calculateDistanceToCamera(t.cameraOnLoad):t.level+t._calculateDistanceToCamera(t.cameraOnLoad):0:()=>0,()=>t._getSiblings(),t.level,t.loadingStrategy,!t.json.boundingVolume.region,!!t.json.boundingVolume.region,t.geometricError,t.splatsMesh)}catch(b){t.displayErrors&&Zn(b)}else s&&u.includes(".json")&&(t.jsonRequested=u,t.tileLoader.get(t.abortController,t.uuid,u,async b=>{t.jsonReceived=!0,t.deleted||(b.rootPath=pa.dirname(u),t.json.children.push(b),o==null?delete t.json.content:t.json.contents.splice(o,1),t.hasUnloadedJSONContent--)}))}}dispose(){const e=this;e.meshContent.forEach(a=>{a&&a.asset&&a.asset.copyright&&(a.asset.copyright.split(";").forEach(t=>{sa[t]&&sa[t]--}),e.displayCopyright&&Qr())}),e.childrenTiles.forEach(a=>a.dispose()),e.deleted=!0,e.splatsMesh&&(e.meshContent.forEach(a=>a.hide()),e.parentTile||(e.splatsMesh.dispose(),e.splatsMesh=void 0)),e.contentURL&&(e.contentURL.forEach(a=>{e.tileLoader.invalidate(a,e.uuid)}),e.contentURL=[]),e.abortController&&!e.jsonRequested&&e.abortController.abort("tile not needed"),this.parent=null,e.meshContent=[],e.bbox&&e.bbox.dispose(),this.dispatchEvent({type:"removed"})}_disposeMeshContent(){const e=this;if(!e.deleted){e.deleted=!0,e.abortController&&(e.abortController.abort("tile not needed"),e.abortController=new AbortController);for(let a=e.meshContent.length-1;a>=0;a--){const t=e.meshContent[a];t&&t.asset&&t.asset.copyright&&(t.asset.copyright.split(";").forEach(i=>{sa[i]&&sa[i]--}),e.displayCopyright&&Qr()),e.remove(t)}e.splatsMesh&&e.meshContent.forEach(a=>a.hide()),e.meshContent=[],e.contentURL.forEach(a=>{e.tileLoader.invalidate(a,e.uuid)}),e.contentURL=[]}}_disposeChildren(){var e=this;e.childrenTiles.forEach(a=>{a.dispose(),e.remove(a)}),e.childrenTiles=[]}raycast(e,a){if(this.splatsMesh){jt.copy(e.ray),Mt.copy(this.matrixWorld).invert(),jt.applyMatrix4(Mt);let t=!1;if(this.boundingVolume instanceof Ke)t=this.boundingVolume.intersectsRay(jt);else{if(!(this.boundingVolume instanceof G.Sphere))return!1;t=ray.intersectsSphere(this.boundingVolume)}return t&&this.materialVisibility&&this.splatsReady&&(St.length=0,this.meshContent.forEach(i=>{i.isSplatsBatch&&(i.raycast(jt,St,e.params.Points.threshold),St.forEach(n=>{n.point.applyMatrix4(this.matrixWorld)}),a.push(...St))})),t}return super.raycast(e,a)}update(e){this.splatsMesh&&this.splatsMesh.updateShaderParams(e,this.renderer);const a=new G.Frustum;a.setFromProjectionMatrix(new G.Matrix4().multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse));let t=[0],i=[0],n=[0],o=[0];if(this.refine=="REPLACE"?this.loadingStrategy==="IMMEDIATE"?(this._updateImmediate(e,a),this._statsImmediate(n,t,o,i)):(this._update(e,a),this._stats(n,t,o,i)):(this._update(e,a),this._stats(n,t,o,i)),t>0&&(o[0]/=t[0]),this.splatsMesh)if(Rt.copy(e.position),Mt.copy(this.matrixWorld).invert(),Rt.applyMatrix4(Mt),this.splatsCPUCulling){const s=new G.Matrix4().multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse).multiply(this.matrixWorld);this.splatsMesh.sort(Rt,s)}else this.splatsMesh.sort(Rt);return{numTilesLoaded:t[0],numTilesRendered:i[0],maxLOD:n[0],percentageLoaded:o[0]}}_updateImmediate(e,a){this._computeMetricRecursive(e,a),this._updateNodeVisibilityImmediate(),this._expandTreeImmediate(e),this.shouldBeVisible=this.metric>0||!!this.loadOutsideView,this._shouldBeVisibleUpdateImmediate(),this._trimTreeImmediate(),this._loadMeshImmediate()}_statsImmediate(e,a,t,i){e[0]=Math.max(e[0],this.level),(this.shouldBeVisible||this.materialVisibility)&&(a[0]++,this.materialVisibility&&t[0]++),this.materialVisibility&&i[0]++,this.childrenTiles.forEach(n=>{n._statsImmediate(e,a,t,i)})}_stats(e,a,t,i){e[0]=Math.max(e[0],this.level),this.hasMeshContent&&(a[0]++,this.meshContent.length==this.hasMeshContent&&t[0]++,this.materialVisibility&&i[0]++),this.childrenTiles.forEach(n=>{n._stats(e,a,t,i)})}_trimTreeImmediate(){if(this.metric!=null)if(this.hasMeshContent&&this.shouldBeVisible&&this.materialVisibility){if(self.splatsMesh&&!self.splatsReady)return;this._disposeChildren()}else this.childrenTiles.forEach(e=>{e._trimTreeImmediate()})}_updateNodeVisibilityImmediate(e=!1){const a=this;if(a.hasMeshContent)if(a.shouldBeVisible)a.meshContent.length==a.hasMeshContent?a.materialVisibility?a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(!0)}):(a._changeContentVisibility(!0),a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)})):a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)});else{if(!a.loadOutsideView&&a.metric<0)return a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),void a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(!0)});if(!a.materialVisibility||a.splatsMesh&&!a.splatsReady)a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)});else if(e)a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)});else{let t=!0;a.childrenTiles.every(i=>!!i._isReadyImmediate()||(t=!1,!1)),t&&a.childrenTiles.length>0?(a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),a.childrenTiles.forEach(i=>{i._updateNodeVisibilityImmediate(e)})):a.childrenTiles.forEach(i=>{i._updateNodeVisibilityImmediate(!a.splatsMesh||!!a.splatsReady)})}}else a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)})}_shouldBeVisibleUpdateImmediate(){const e=this;e.hasMeshContent?e.metric==null?e.shouldBeVisible=!1:e.metric<0?(e.shouldBeVisible=!!e.loadOutsideView,e.childrenTiles.forEach(a=>{a._setShouldNotBeVisibleRecursive()})):e.metric<e.geometricErrorMultiplier*e.geometricError?e.hasUnloadedJSONContent||(e.json&&e.json.children&&e.json.children.length>0?(e.shouldBeVisible=!1,e.childrenTiles.forEach(a=>{a.shouldBeVisible=!0,a._shouldBeVisibleUpdateImmediate()})):e.shouldBeVisible=!0):e.childrenTiles.forEach(a=>{a._setShouldNotBeVisibleRecursive()}):(e.childrenTiles.forEach(a=>{a.shouldBeVisible=!0,a._shouldBeVisibleUpdateImmediate()}),e.shouldBeVisible=!1)}_setShouldNotBeVisibleRecursive(){this.shouldBeVisible=!1,this.childrenTiles.forEach(e=>{e._setShouldNotBeVisibleRecursive()})}_loadMeshImmediate(){const e=this;e.hasMeshContent&&e.shouldBeVisible?e.meshContent.length<e.hasMeshContent&&e.contentURL.length==0&&(e.deleted=!1,e._load(!1,!0)):e.childrenTiles.forEach(a=>{a._loadMeshImmediate()})}_computeMetricRecursive(e,a){const t=this;t.metric=-1,t.isSetup&&(t.boundingVolume&&t.geometricError&&(t.metric=t._calculateUpdateMetric(e,a)),t.childrenTiles.forEach(i=>i._computeMetricRecursive(e,a)))}_expandTreeImmediate(e){const a=this;a.hasUnloadedJSONContent||(a.hasMeshContent?a.occlusionCullingService&&a.hasMeshContent&&!a.occlusionCullingService.hasID(a.colorID)||a.metric>=0&&a.metric<a.geometricErrorMultiplier*a.geometricError&&a.json&&a.json.children&&a.childrenTiles.length<a.json.children.length&&a._loadJsonChildren(e):a.json&&a.json.children&&a.childrenTiles.length<a.json.children.length&&a._loadJsonChildren(e)),a.childrenTiles.forEach(t=>t._expandTreeImmediate(e))}_update(e,a){const t=this;if(!t.isSetup)return;const i=t.materialVisibility;t.boundingVolume&&t.geometricError&&(t.metric=t._calculateUpdateMetric(e,a)),t.childrenTiles.forEach(n=>n._update(e,a)),function(n){if(n<0)return t.inFrustum=!1,void t._changeContentVisibility(!!t.loadOutsideView);if(t.inFrustum=!0,!!t.hasMeshContent&&!(t.meshContent.length<t.hasMeshContent)){if(t.childrenTiles.length==0)return void t._changeContentVisibility(!0);if(n>=t.geometricErrorMultiplier*t.geometricError)t._changeContentVisibility(!0);else if(n<t.geometricErrorMultiplier*t.geometricError&&t.refine=="REPLACE"){let o=!0;t.childrenTiles.every(s=>!!s._isReady()||(o=!1,!1)),o?t._changeContentVisibility(!1):t._changeContentVisibility(!0)}}}(t.metric),function(n){n<0&&t.hasMeshContent||t.occlusionCullingService&&t.hasMeshContent&&!t.occlusionCullingService.hasID(t.colorID)||(!t.hasMeshContent||n<=t.geometricErrorMultiplier*t.geometricError&&(t.meshContent.length>0||t.splatsMesh))&&t.json&&t.json.children&&t.childrenTiles.length!=t.json.children.length&&t._loadJsonChildren(e)}(t.metric),function(n,o){if(t.hasMeshContent){if(!t.inFrustum)return void t._disposeChildren();if(t.occlusionCullingService&&!o&&t.hasMeshContent&&t.meshContent.length>0&&t.materialVisibility&&t._areAllChildrenLoadedAndHidden())return t.splatsMesh&&this.materialVisibility&&!t.splatsReady?void 0:void t._disposeChildren();if(n>=t.geometricErrorMultiplier*t.geometricError){if(t.splatsMesh&&t.materialVisibility&&!t.splatsReady)return;t._disposeChildren()}}}(t.metric,i)}_loadJsonChildren(e){const a=this;for(let t=a.json.children.length-1;t>=0;t--)a.json.children[t].root||a.json.children[t].children||a.json.children[t].getChildren||a.json.children[t].content||a.json.children[t].contents||a.json.children.splice(t,1);a.json.children.forEach(t=>{let i=new Fr({parentTile:a,queryParams:a.queryParams,parentGeometricError:a.geometricError,parentBoundingVolume:a.boundingVolume,parentRefine:a.refine,json:t,rootPath:a.rootPath,geometricErrorMultiplier:a.geometricErrorMultiplier,loadOutsideView:a.loadOutsideView,level:Math.floor(a.level)+1,tileLoader:a.tileLoader,cameraOnLoad:e,occlusionCullingService:a.occlusionCullingService,renderer:a.renderer,static:a.static,centerModel:!1,displayErrors:a.displayErrors,displayCopyright:a.displayCopyright,distanceBias:a.distanceBias,loadingStrategy:a.loadingStrategy,drawBoundingVolume:a.drawBoundingVolume,splatsMesh:a.splatsMesh,clipShape:a.clipShape});a.childrenTiles.push(i),a.add(i)}),a.updateMatrices(!0)}_areAllChildrenLoadedAndHidden(){let e=!0;const a=this;return this.childrenTiles.every(t=>{if(t.hasMeshContent){if(t.childrenTiles.length>0)return e=!1,!1;if(!t.metric<0)return!0;if(t.materialVisibility&&(!a.splatsMesh||a.splatsReady)||a.occlusionCullingService.hasID(t.colorID))return e=!1,!1}else if(!t._areAllChildrenLoadedAndHidden())return e=!1,!1;return!0}),e}_isReady(){if(this.metric==null)return!1;if(this.metric<0)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent&&this.json.children.length==0&&!this.hasUnloadedJSONContent)return!0;if(!this.hasMeshContent||this.meshContent.length==0||!this.materialVisibility){if(this.children.length>0){var e=!0;return this.childrenTiles.every(a=>!!a._isReady()||(e=!1,!1)),e}return!1}return!this.hasMeshContent||!(this.meshContent.length<this.hasMeshContent)&&!!this.materialVisibility}_isReadyImmediate(){if(this.materialVisibility||!this.loadOutsideView&&this.metric<0)return!0;if(this.childrenTiles.length>0){var e=!0;return this.childrenTiles.every(a=>!!a._isReadyImmediate()||(e=!1,!1)),e}return!1}_changeContentVisibility(e){const a=this;if(a.bbox&&(a.bbox.material.visible=e),a.splatsMesh)e!=a.materialVisibility&&(a.meshContent.forEach(t=>{e&&t.isSplatsBatch?t.show(()=>{a.materialVisibility&&(a.splatsReady=!0)}):(t.hide(),a.splatsReady=!1)}),a.materialVisibility=e);else{if(a.hasMeshContent&&a.meshContent.length>0&&(e?a.meshContent.forEach(t=>{t.traverse(i=>{(i.isMesh||i.isPoints)&&i.layers.enable(0)})}):a.meshContent.forEach(t=>{t.traverse(i=>{(i.isMesh||i.isPoints)&&i.layers.disable(0)})})),a.materialVisibility==e)return;a.materialVisibility=e}}_calculateUpdateMetric(e,a){let t=0;if(this.boundingVolume instanceof Ke){if(ba.copy(this.boundingVolume),ba.applyMatrix4(this.matrixWorld),!ba.inFrustum(a))return-1;if(this.clipShape!=null&&(this.clipShape.isSphere&&!ba.intersectsSphere(this.clipShape)||this.clipShape.isOBB&&!ba.intersectsOBB(this.clipShape)))return Number.MAX_VALUE;t=Math.max(0,ba.distanceToPoint(e.position)-e.near)}else{if(!(this.boundingVolume instanceof G.Sphere))return console.error("unsupported shape"),-1;if(aa.copy(this.boundingVolume),aa.applyMatrix4(this.matrixWorld),this.clipShape!=null&&(this.clipShape.isOBB&&!this.clipShape.intersectsSphere(aa)||this.clipShape.isSphere&&!this.clipShape.intersectsSphere(aa)))return Number.MAX_VALUE;if(!a.intersectsSphere(aa))return-1;t=Math.max(0,e.position.distanceTo(aa.center)-aa.radius-e.near)}if(t=Math.pow(t,this.distanceBias),t==0)return 0;const i=this.matrixWorld.getMaxScaleOnAxis();this.renderer&&this.renderer.getDrawingBufferSize(this.rendererSize);let n=this.rendererSize.y,o=e.fov;return e.aspect<1&&(o*=e.aspect,n=this.rendererSize.x),16*(2*Math.tan(.5*o*.017453292519943295)*t)/(n*i)}_getSiblings(){const e=this,a=[];if(!e.parentTile)return a;let t=e.parentTile;for(;!t.hasMeshContent&&t.parentTile;)t=t.parentTile;return t.childrenTiles.forEach(i=>{if(i&&i!=e){for(;!i.hasMeshContent&&i.childrenTiles[0];)i=i.childrenTiles[0];a.push(i)}}),a}_calculateDistanceToCamera(e){return this.boundingVolume instanceof Ke?(ba.copy(this.boundingVolume),ba.applyMatrix4(this.matrixWorld),Math.max(0,ba.distanceToPoint(e.position))):this.boundingVolume instanceof G.Sphere?(aa.copy(this.boundingVolume),aa.applyMatrix4(this.matrixWorld),Math.max(0,e.position.distanceTo(aa.center)-aa.radius)):(console.error("unsupported shape"),-1)}setGeometricErrorMultiplier(e){this.geometricErrorMultiplier=e,this.childrenTiles.forEach(a=>a.setGeometricErrorMultiplier(e))}setDistanceBias(e){this.distanceBias=e,this.childrenTiles.forEach(a=>a.setDistanceBias(e))}_transformWGS84ToCartesian(e,a,t,i){const n=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(a),2)),o=Math.cos(a),s=Math.cos(e),c=Math.sin(a),u=n+t,A=u*o*s,d=u*o*Math.sin(e),b=(.993305615557957*n+t)*c;i.set(A,d,b)}hideCopyright(){(function(){oe||((oe=document.createElement("div")).style.position="fixed",oe.style.bottom="20px",oe.style.left="20px",oe.style.color="white",oe.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",oe.style.padding="10px",oe.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(oe)),oe.style.opacity=0})()}showCopyright(){(function(){oe||((oe=document.createElement("div")).style.position="fixed",oe.style.bottom="20px",oe.style.left="20px",oe.style.color="white",oe.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",oe.style.padding="10px",oe.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(oe)),oe.style.opacity=1})()}}function Zn(r){var e=document.createElement("div");e.textContent=r,e.style.position="fixed",e.style.top="10px",e.style.left="50%",e.style.transform="translateX(-50%)",e.style.padding="10px",e.style.backgroundColor="#ff8800",e.style.color="#ffffff",e.style.zIndex="9999",document.body.appendChild(e),setTimeout(function(){e.remove()},8e3)}function Qr(){oe||((oe=document.createElement("div")).style.position="fixed",oe.style.bottom="20px",oe.style.left="20px",oe.style.color="white",oe.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",oe.style.padding="10px",oe.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(oe));const r=Yn();let e="";r.forEach(a=>{e+=a+", "}),e=e.slice(0,-2),oe.textContent=e}const qe=new G.Sphere(new G.Vector3(0,0,0),1),wa=new G.Vector3(0,0,0),kr=new G.Vector3(0,0,0),Mc=new G.Vector3(0,1,0),jr=new G.Vector2,$n=new G.Quaternion,eo=new G.Matrix4;class Mr extends G.Object3D{constructor(e){super();const a=this;if(e.queryParams&&(this.queryParams={...e.queryParams}),this.uuid=Kr(),e.tileLoader?this.tileLoader=e.tileLoader:console.error("an instanced tileset must be provided an InstancedTilesetLoader"),this.master=e.master,this.loadOutsideView=e.loadOutsideView,this.cameraOnLoad=e.cameraOnLoad,this.parentTile=e.parentTile,this.distanceBias=Math.max(1e-4,e.distanceBias?e.distanceBias:1),this.childrenTiles=[],this.jsonChildren=[],this.meshContent=new Set,this.static=e.static,this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.tileContent,this.refinement,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.inFrustum=!0,this.level=e.level?e.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=e.centerModel,this.deleted=!1,this.abortController=new AbortController,e.json)this.rootPath=e.json.rootPath?e.json.rootPath:e.rootPath,e.json.children&&(this.jsonChildren=e.json.children),a.setup(e);else if(e.url){this.loadJson=(n,o)=>{const s=pa.dirname(o);a.setup({rootPath:s,json:n,onLoadCallback:e.onLoadCallback})};var t=e.url;if(a.queryParams){var i="";for(let n in a.queryParams)a.queryParams.hasOwnProperty(n)&&(i+="&"+n+"="+a.queryParams[n]);t.includes("?")?t+=i:t+="?"+i.substring(1)}a.tileLoader.get(a.abortController,t,a.uuid,a)}}async setup(e){const a=this;e.json.root?(a.json=e.json.root,!a.json.children&&a.json.getChildren&&(a.json.children=await a.json.getChildren()),a.jsonChildren=a.json.children,a.json.refinement||(a.json.refinement=e.json.refinement),a.json.geometricError||(a.json.geometricError=e.json.geometricError),a.json.transform||(a.json.transform=e.json.transform),a.json.boundingVolume||(a.json.boundingVolume=e.json.boundingVolume)):(a.json=e.json,!a.json.children&&a.json.getChildren&&(a.json.children=await a.json.getChildren(),a.jsonChildren=a.json.children)),a.rootPath=e.json.rootPath?e.json.rootPath:e.rootPath,a.json.refinement?a.refinement=a.json.refinement:a.refinement=e.parentRefinement,a.json.geometricError?a.geometricError=a.json.geometricError:a.geometricError=e.parentGeometricError;let t=new G.Matrix4;if(a.json.transform&&!a.centerModel&&(t.elements=a.json.transform),a.applyMatrix4(t),a.parentTile&&a.parentTile.matrix&&(a.matrix.premultiply(a.parentTile.matrix),a.matrix.decompose(a.position,a.quaternion,a.scale)),a.matrixWorldNeedsUpdate=!0,a.updateWorldMatrix(!0,!0),a.json.boundingVolume)if(a.json.boundingVolume.box)a.boundingVolume=new Ke(a.json.boundingVolume.box);else if(a.json.boundingVolume.region){const n=a.json.boundingVolume.region;a.transformWGS84ToCartesian(n[0],n[1],n[4],wa),a.transformWGS84ToCartesian(n[2],n[3],n[5],kr),wa.lerp(kr,.5),a.boundingVolume=new G.Sphere(new G.Vector3(wa.x,wa.y,wa.z),wa.distanceTo(kr))}else if(a.json.boundingVolume.sphere){const n=a.json.boundingVolume.sphere;a.boundingVolume=new G.Sphere(new G.Vector3(n[0],n[1],n[2]),n[3])}else a.boundingVolume=e.parentBoundingVolume;else a.boundingVolume=e.parentBoundingVolume;function i(n){n.uri&&n.uri.includes("json")||n.url&&n.url.includes("json")?a.hasUnloadedJSONContent++:a.hasMeshContent++}if(a.json.content?(i(a.json.content),a.load()):a.json.contents&&(a.json.contents.forEach(n=>i(n)),a.load()),a.centerModel){const n=new G.Sphere;a.boundingVolume instanceof Ke?n.copy(a.boundingVolume.sphere):a.boundingVolume instanceof G.Sphere&&n.copy(a.boundingVolume),this.json.boundingVolume.region&&(a.transformWGS84ToCartesian(.5*(a.json.boundingVolume.region[0]+a.json.boundingVolume.region[2]),.5*(a.json.boundingVolume.region[1]+a.json.boundingVolume.region[3]),.5*(a.json.boundingVolume.region[4]+a.json.boundingVolume.region[5]),wa),$n.setFromUnitVectors(wa.normalize(),Mc.normalize()),a.master.applyQuaternion($n),a.master.updateWorldMatrix(!1,!1)),eo.makeTranslation(-n.center.x*a.scale.x,-n.center.y*a.scale.y,-n.center.z*a.scale.z),a.master.matrix.multiply(eo),a.master.matrix.decompose(a.master.position,a.master.quaternion,a.master.scale)}a.isSetup=!0,e.onLoadCallback&&e.onLoadCallback(a)}isAbsolutePathOrURL(e){const a=/^(?:http|https|ftp|tcp|udp):\/\/\S+/.test(e),t=e.startsWith("/")&&!e.startsWith("//");return a||t}assembleURL(e,a){e.endsWith("/")||(e+="/");const t=new URL(e);let i=t.pathname.split("/").filter(o=>o!==""),n=a.split("/").filter(o=>o!=="");for(let o=1;o<=i.length&&!(o>=n.length);o++)if(i.slice(i.length-o,i.length).join("/")===n.slice(0,o).join("/")){for(let s=0;s<o;s++)i.pop();break}for(;n.length>0&&n[0]==="..";)i.pop(),n.shift();return`${t.protocol}//${t.host}/${[...i,...n].join("/")}`}extractQueryParams(e,a){const t=new URL(e);for(let[i,n]of t.searchParams)a[i]=n;return t.search="",t.toString()}load(){var e=this;function a(t){let i;t.uri?i=t.uri:t.url&&(i=t.url);const n=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(n.test(e.rootPath)?n.test(i)||(i=e.assembleURL(e.rootPath,i)):pa.isAbsolute(e.rootPath)&&(i=e.rootPath+pa.sep+i),i=e.extractQueryParams(i,e.queryParams),e.queryParams){var o="";for(let s in e.queryParams)e.queryParams.hasOwnProperty(s)&&(o+="&"+s+"="+e.queryParams[s]);i.includes("?")?i+=o:i+="?"+o.substring(1)}i&&(i.includes(".b3dm")||i.includes(".glb")||i.includes(".gltf")?(e.contentURL=i,e.tileLoader.get(e.abortController,i,e.uuid,e,e.cameraOnLoad?()=>e.calculateDistanceToCamera(e.cameraOnLoad):()=>0,()=>e.getSiblings(),e.level,!e.json.boundingVolume.region,!!e.json.boundingVolume.region,e.geometricError)):i.includes(".json")&&e.tileLoader.get(e.abortController,i,e.uuid,e))}e.deleted||(e.json.content?a(e.json.content):e.json.contents&&e.json.contents.forEach(t=>a(t)))}loadMesh(e){this.deleted||this.meshContent.add(e)}loadJson(e,a){this.deleted||(this.json.children&&(this.jsonChildren=this.json.children),e.rootPath=pa.dirname(a),this.jsonChildren.push(e),this.hasUnloadedJSONContent--)}dispose(){const e=this;e.childrenTiles.forEach(a=>a.dispose()),e.deleted=!0,e.abortController&&e.abortController.abort(),this.parent=null,this.parentTile=null,this.dispatchEvent({type:"removed"})}disposeChildren(){this.childrenTiles.forEach(e=>e.dispose()),this.childrenTiles=[]}_update(e,a){const t=this;function i(n){if(t.hasMeshContent&&!(t.meshContent.size<t.hasMeshContent)){if(n<0)return t.inFrustum=!1,void t.changeContentVisibility(!!t.loadOutsideView);if(t.inFrustum=!0,t.childrenTiles.length!=0){if(n>=t.master.geometricErrorMultiplier*t.geometricError)t.changeContentVisibility(!0);else if(n<t.master.geometricErrorMultiplier*t.geometricError){let o=!0;t.childrenTiles.every(s=>!!s.isReady()||(o=!1,!1)),o&&t.changeContentVisibility(!1)}}else t.changeContentVisibility(!0)}}t.isSetup&&(t.materialVisibility,t.boundingVolume&&t.geometricError&&(t.metric=t.calculateUpdateMetric(e,a)),t.childrenTiles.forEach(n=>n._update(e,a)),i(t.metric),function(n){n<0&&t.hasMeshContent||(!t.hasMeshContent&&t.rootPath||n<t.master.geometricErrorMultiplier*t.geometricError&&t.meshContent.size>0)&&t.json&&t.jsonChildren&&t.childrenTiles.length!=t.jsonChildren.length&&t.jsonChildren.forEach(o=>{if(!(o.root||o.children||o.getChildren||o.content||o.contents))return;let s=new Mr({parentTile:t,queryParams:t.queryParams,parentGeometricError:t.geometricError,parentBoundingVolume:t.boundingVolume,parentRefinement:t.refinement,json:o,rootPath:t.rootPath,loadOutsideView:t.loadOutsideView,level:t.level+1,tileLoader:t.tileLoader,cameraOnLoad:e,master:t.master,centerModel:!1});t.childrenTiles.push(s)})}(t.metric),function(n){if(t.hasMeshContent){if(!t.inFrustum)return t.disposeChildren(),void i(n);n>=t.master.geometricErrorMultiplier*t.geometricError&&(t.disposeChildren(),i(n))}}(t.metric))}areAllChildrenLoadedAndHidden(){let e=!0;return this.childrenTiles.every(a=>{if(a.hasMeshContent){if(a.childrenTiles.length>0)return e=!1,!1;if(!a.inFrustum)return!0;if(!a.materialVisibility||a.meshesToDisplay!=a.meshesDisplayed)return e=!1,!1}else if(!a.areAllChildrenLoadedAndHidden())return e=!1,!1;return!0}),e}isReady(){if(!this.inFrustum)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent||this.meshContent.size==0||!this.materialVisibility){if(this.childrenTiles.length>0){var e=!0;return this.childrenTiles.every(a=>!!a.isReady()||(e=!1,!1)),e}return!1}return!this.hasMeshContent||!(this.meshContent.size<this.hasMeshContent)&&!!this.materialVisibility}changeContentVisibility(e){this.materialVisibility=e}calculateUpdateMetric(e,a){if(this.boundingVolume instanceof Ke){if(qe.copy(this.boundingVolume.sphere),qe.applyMatrix4(this.matrixWorld),!a.intersectsSphere(qe))return-1}else{if(!(this.boundingVolume instanceof G.Sphere))return console.error("unsupported shape"),-1;if(qe.copy(this.boundingVolume),qe.applyMatrix4(this.matrixWorld),!a.intersectsSphere(qe))return-1}let t=Math.max(0,e.position.distanceTo(qe.center)-qe.radius);if(t=Math.pow(t,this.distanceBias),t==0)return 0;const i=this.matrixWorld.getMaxScaleOnAxis();this.master._renderSize(jr);let n=jr.y,o=e.fov;e.aspect<1&&(o*=e.aspect,n=jr.x);let s=2*Math.tan(.5*o*.017453292519943295)*t;return 16*window.devicePixelRatio*s/(n*i)}getSiblings(){const e=this,a=[];if(!e.parentTile)return a;let t=e.parentTile;for(;!t.hasMeshContent&&t.parentTile;)t=t.parentTile;return t.childrenTiles.forEach(i=>{if(i&&i!=e){for(;!i.hasMeshContent&&i.childrenTiles[0];)i=i.childrenTiles[0];a.push(i)}}),a}calculateDistanceToCamera(e){return this.boundingVolume instanceof Ke?(qe.copy(this.boundingVolume.sphere),qe.applyMatrix4(this.matrixWorld)):this.boundingVolume instanceof G.Sphere?(qe.copy(this.boundingVolume),qe.applyMatrix4(this.matrixWorld)):console.error("unsupported shape"),Math.max(0,e.position.distanceTo(qe.center)-qe.radius)}getWorldMatrix(){return this.matrixWorld}transformWGS84ToCartesian(e,a,t,i){const n=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(a),2)),o=Math.cos(a),s=Math.cos(e),c=Math.sin(a),u=n+t,A=u*o*s,d=u*o*Math.sin(e),b=(.993305615557957*n+t)*c;i.set(A,d,b)}}class Rc extends G.Object3D{constructor(e){super(),e.master=this,e.domWidth&&e.domHeight?this.rendererSize=new G.Vector2(e.domWidth,e.domHeight):this.rendererSize=new G.Vector2(1e3,1e3),this.renderer=e.renderer,this.distanceBias=Math.max(1e-4,e.distanceBias?e.distanceBias:1),this.geometricErrorMultiplier=e.geometricErrorMultiplier?e.geometricErrorMultiplier:1,this.tileset=new Mr(e),e.static&&(this.matrixAutoUpdate=!1),this.tileLoader=e.tileLoader}_renderSize(e){this.renderer?this.renderer.getDrawingBufferSize(e):e.copy(this.rendererSize)}setCanvasSize(e,a){this.rendererSize.set(e,a)}update(e,a){if(a)this.tileset._update(e,a);else{const t=new G.Frustum;t.setFromProjectionMatrix(new G.Matrix4().multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse)),this.tileset._update(e,t)}}setGeometricErrorMultiplier(e){this.geometricErrorMultiplier=e||1}}class Sc{constructor(e){const a=this;a.scene=e,a.instancedTiles=[],a.instancedMesh,a.reuseableMatrix=new G.Matrix4}addInstance(e){const a=this;e.added=!0,e.listOMesh=a.instancedTiles,a.instancedTiles.push(e),a.instancedMesh&&e.loadMesh(a.instancedMesh)}addToScene(){const e=this;e.instancedMesh.setMatrixAt(0,new G.Matrix4),e.instancedMesh.instanceMatrix.needsUpdate=!0,e.instancedMesh.count=1,e.scene.add(e.instancedMesh),e.instancedMesh.onAfterRender=()=>{delete e.instancedMesh.onAfterRender,e.instancedMesh.displayedOnce=!0}}setObject(e){const a=this;a.instancedMesh=e,a.instancedMesh.matrixAutoUpdate=!1,a.instancedMesh.matrixWorldAutoUpdate=!1,a.scene.children.includes(e)||this.addToScene();for(let t=0;t<a.instancedTiles.length;t++)a.instancedTiles[t].loadMesh(a.instancedMesh)}update(){const e=this;for(let a=e.instancedTiles.length-1;a>=0;a--)e.instancedTiles[a].deleted&&e.instancedTiles.splice(a,1);if(e.instancedMesh){e.instancedMesh.count=0,e.instancedMesh.instancedTiles=[];for(let a=0;a<e.instancedTiles.length;a++)e.instancedTiles[a].meshContent.add(e.instancedMesh),e.instancedTiles[a].materialVisibility&&(e.instancedMesh.count++,e.reuseableMatrix.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),e.reuseableMatrix.multiply(e.instancedTiles[a].matrixWorld),e.reuseableMatrix.multiply(e.instancedMesh.baseMatrix),e.instancedMesh.setMatrixAt(e.instancedMesh.count-1,e.reuseableMatrix),e.instancedMesh.instancedTiles.push(e.instancedTiles[a]));e.instancedMesh.instanceMatrix.needsUpdate=!0,e.instancedMesh.needsUpdate=!0,e.instancedMesh.computeBoundingSphere()}}getCount(){return this.instancedTiles.length}dispose(){const e=this;return!(e.instancedTiles.length>0)&&!!e.instancedMesh&&(e.scene.remove(e.instancedMesh),e.instancedMesh.traverse(a=>{if(a.dispose&&a.dispose(),a.material)if(a.material.length)for(let t=0;t<a.material.length;++t)a.material[t].dispose();else a.material.dispose();a.geometry&&a.geometry.dispose()}),e.instancedMesh.dispose(),!0)}}class Tc{constructor(){const e=this;e.count=0,e.json,e.instancedTiles=[]}addInstance(e){this.instancedTiles.push(e),this.json&&e.loadJson(this.json,this.url)}setObject(e,a){const t=this;t.json=e,t.url=a;for(let i=0;i<t.instancedTiles.length;i++)t.instancedTiles[i].loadJson(t.json,t.url)}getCount(){return this.instancedTiles.length}update(){const e=this;for(let a=e.instancedTiles.length-1;a>=0;a--)e.instancedTiles[a].deleted&&e.instancedTiles.splice(a,1)}dispose(){return!(!this.json||this.instancedTiles.length!=0)}}let Ma=0;async function Nc(r){return new Promise(e=>{const a=setInterval(()=>{r.hasDracoLoader&&!r.dracoLoader||r.hasKTX2Loader&&!r.ktx2Loader||(clearInterval(a),e())},10)})}_e.InstancedOGC3DTile=Rc,_e.InstancedTileLoader=class{constructor(r,e){if(this.zUpToYUpMatrix=new G.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.maxInstances=1,this.proxy=e.proxy,e&&(this.meshCallback=e.meshCallback,this.pointsCallback=e.pointsCallback,e.maxCachedItems&&(this.maxCachedItems=e.maxCachedItems),e.maxInstances&&(this.maxInstances=e.maxInstances)),this.gltfLoader=new Or,e&&e.dracoLoader)this.gltfLoader.setDRACOLoader(e.dracoLoader),this.hasDracoLoader=!0;else{const a=new Yr;a.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),this.gltfLoader.setDRACOLoader(a),this.gltfLoader.hasDracoLoader=!0}if(e&&e.ktx2Loader)this.gltfLoader.setKTX2Loader(e.ktx2Loader),this.hasKTX2Loader=!0;else if(e&&e.renderer){const a=new Oe;a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(e.renderer),this.gltfLoader.setKTX2Loader(a),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(Ii),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new Pr(this.gltfLoader),this.cache=new Lr,this.scene=r,this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const r=this;r._checkSize(),r.cache._data.forEach(e=>{e.update()}),Ma<8&&r._download(),r._loadBatch()}_download(){const r=this;if(r.nextDownloads.length!=0||(r._getNextDownloads(),r.nextDownloads.length!=0))for(;r.nextDownloads.length>0;){const a=r.nextDownloads.shift();if(a){if(a.path.includes(".b3dm")&&(e=r.proxy?()=>fetch(r.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),Ma++,e().then(t=>{if(!t.ok)throw console.error("could not load tile with path : "+a.path),new Error(`couldn't load "${a.path}". Request failed with status ${t.status} : ${t.statusText}`);return t.arrayBuffer()}).then(t=>this.b3dmDecoder.parseB3DMInstanced(t,i=>{r.meshCallback(i,a.geometricError)},r.maxInstances,a.sceneZupToYup,a.meshZupToYup)).then(t=>{t.frustumCulled=!1,a.tile.setObject(t),r.ready.unshift(a)}).catch(t=>console.error(t)).finally(()=>{Ma--})),a.path.includes(".glb")||a.path.includes(".gltf"))e=r.proxy?()=>fetch(r.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),Ma++,e().then(t=>{if(!t.ok)throw new Error("missing content");return t.arrayBuffer()}).then(async t=>{await Nc(this.gltfLoader),this.gltfLoader.parse(t,null,i=>{let n;i.scene.asset=i.asset,a.sceneZupToYup&&i.scene.applyMatrix4(this.zUpToYUpMatrix),i.scene.traverse(o=>{o.geometricError=a.geometricError,o.isMesh&&(a.meshZupToYup&&o.applyMatrix4(this.zUpToYUpMatrix),r.meshCallback&&r.meshCallback(o,o.geometricError)),o.isPoints&&console.error("instanced point cloud is not supported")}),i.scene.updateWorldMatrix(!1,!0),i.scene.traverse(o=>{o.isMesh&&(n=new G.InstancedMesh(o.geometry,o.material,r.maxInstances),n.baseMatrix=o.matrixWorld)}),r.ready.unshift(a),n?(n.frustumCulled=!1,a.tile.setObject(n)):i.scene.traverse(o=>{o.dispose&&o.dispose(),o.material&&o.material.dispose()})})},t=>{console.error("could not load tile : "+a.path)}).finally(()=>{Ma--});else if(a.path.includes(".json")){var e;e=r.proxy?()=>fetch(r.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),Ma++,e().then(t=>{if(!t.ok)throw console.error("could not load tile with path : "+a.path),new Error(`couldn't load "${a.path}". Request failed with status ${t.status} : ${t.statusText}`);return t.json()}).then(t=>er(t,a.path)).then(t=>{a.tile.setObject(t,a.path),r.ready.unshift(a)}).catch(t=>console.error(t)).finally(()=>{Ma--})}}}}_loadBatch(){return this.nextReady.length==0&&(this._getNextReady(),this.nextReady.length==0)?0:this.nextReady.shift()?1:0}_getNextReady(){let r=Number.MAX_VALUE,e=-1;for(let a=this.ready.length-1;a>=0;a--)this.ready[a].distanceFunction||this.nextReady.push(this.ready.splice(a,1)[0]);if(!(this.nextReady.length>0)){for(let a=this.ready.length-1;a>=0;a--){const t=this.ready[a].distanceFunction()*this.ready[a].level;t<r&&(r=t,e=a)}if(e>=0){const a=this.ready.splice(e,1).pop();this.nextReady.push(a);const t=a.getSiblings();for(let i=this.ready.length-1;i>=0;i--)t.includes(this.ready[i].uuid)&&this.nextready.push(this.ready.splice(i,1).pop())}}}get(r,e,a,t,i,n,o,s,c,u){const A=this,d=function(h){for(var l=h.split("/"),g=[],m=0,E=0;E<l.length;E++){var p=l[E];p!=="."&&p!==""&&p!==".."?g[m++]=p:p===".."&&m>0&&m--}if(m===0)return"/";var C="";for(E=0;E<m;E++)C+="/"+g[E];return C}(e);if(!(e.includes(".b3dm")||e.includes(".json")||e.includes(".glb")||e.includes(".gltf")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");const b=A.cache.get(d);if(b)b.addInstance(t);else if(e.includes(".b3dm")||e.includes(".glb")||e.includes(".gltf")){const h=new Sc(A.scene);h.addInstance(t),A.cache.put(d,h);const l=new AbortController;r.signal.addEventListener("abort",()=>{h.getCount()==0&&l.abort()}),this.downloads.push({abortController:l,tile:h,key:d,path:e,distanceFunction:i,getSiblings:n,level:o,uuid:a,sceneZupToYup:s,meshZupToYup:c,geometricError:u,shouldDoDownload:()=>!0})}else if(e.includes(".json")){const h=new Tc;h.addInstance(t),A.cache.put(d,h);const l=new AbortController;r.signal.addEventListener("abort",()=>{h.getCount()==0&&l.abort()}),this.downloads.push({abortController:l,tile:h,key:d,path:e,distanceFunction:i,getSiblings:n,level:o,shouldDoDownload:()=>!0})}}_getNextDownloads(){let r=Number.MAX_VALUE,e=-1;for(let a=this.downloads.length-1;a>=0;a--){const t=this.downloads[a];t.shouldDoDownload()?t.distanceFunction||this.nextDownloads.push(this.downloads.splice(a,1)[0]):this.downloads.splice(a,1)}if(!(this.nextDownloads.length>0)){for(let a=this.downloads.length-1;a>=0;a--){const t=this.downloads[a],i=t.distanceFunction()*t.level;i<r&&(r=i,e=a)}if(e>=0){const a=this.downloads.splice(e,1).pop();this.nextDownloads.push(a);const t=a.getSiblings();for(let i=this.downloads.length-1;i>=0;i--)t.includes(this.downloads[i].uuid)&&this.nextDownloads.push(this.downloads.splice(i,1).pop())}}}_checkSize(){const r=this;let e=0;for(;r.cache.size()>r.maxCachedItems&&e<r.cache.size();){e++;const a=r.cache.head();r.cache.remove(a.key),a.value.dispose()||r.cache.put(a.key,a.value)}}},_e.OBB=Ke,_e.OGC3DTile=Fr,_e.OcclusionCullingService=class{constructor(){this.cullMap=[],this.cullMaterial=new G.MeshBasicMaterial({vertexColors:!0}),this.cullMaterial.side=G.FrontSide,this.cullTarget=this._createCullTarget(),this.cullPixels=new Uint8Array(4*this.cullTarget.width*this.cullTarget.height)}setSide(r){this.cullMaterial.side=r}_createCullTarget(){const r=new G.WebGLRenderTarget(Math.floor(.05*window.innerWidth),Math.floor(.05*window.innerHeight));return r.texture.format=G.RGBAFormat,r.texture.colorSpace=G.LinearSRGBColorSpace,r.texture.minFilter=G.NearestFilter,r.texture.magFilter=G.NearestFilter,r.texture.generateMipmaps=!1,r.stencilBuffer=!1,r.depthBuffer=!0,r.depthTexture=new G.DepthTexture,r.depthTexture.format=G.DepthFormat,r.depthTexture.type=G.UnsignedShortType,r}update(r,e,a){let t=e.getRenderTarget(),i=r.overrideMaterial;r.overrideMaterial=this.cullMaterial,e.setRenderTarget(this.cullTarget),e.render(r,a),r.overrideMaterial=i,e.setRenderTarget(t),e.readRenderTargetPixels(this.cullTarget,0,0,this.cullTarget.width,this.cullTarget.height,this.cullPixels),this.cullMap=[];for(let n=0;n<this.cullPixels.length;n+=4){const o=G.MathUtils.clamp(this.cullPixels[n],0,255)<<16^G.MathUtils.clamp(this.cullPixels[n+1],0,255)<<8^G.MathUtils.clamp(this.cullPixels[n+2],0,255);this.cullMap[o]=!0}}hasID(r){return this.cullMap[r]}},_e.TileLoader=Bi,_e.getOGC3DTilesCopyrightInfo=Yn,_e.splatsFragmentShader=Jn,_e.splatsVertexShader=On,Object.defineProperty(_e,Symbol.toStringTag,{value:"Module"})});
|
|
305
|
+
}`}function vB(t,A,a,e){const g=t.getX(a),i=t.getY(a),I=t.getZ(a),r=A.getX(a),o=A.getY(a),B=A.getZ(a);e.set(g,i,I,i,r,o,I,o,B)}function JB(t,A,a){const e=t.determinant();if(Math.abs(e)<1e-12)return void a.set(0,0,0);const g=1/e,i=new f.Matrix3().copy(t);i.elements[0]=A.x,i.elements[3]=A.y,i.elements[6]=A.z;const I=new f.Matrix3().copy(t);I.elements[1]=A.x,I.elements[4]=A.y,I.elements[7]=A.z;const r=new f.Matrix3().copy(t);r.elements[2]=A.x,r.elements[5]=A.y,r.elements[8]=A.z,a.set(i.determinant()*g,I.determinant()*g,r.determinant()*g)}new f.Vector3,new f.Vector3;var fA;new f.Matrix3().set(1,0,0,0,0,1,0,-1,0),new f.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);const pa=new P.Sphere(new P.Vector3(0,0,0),1),xa=new Ba([0,0,0,1,0,0,0,1,0,0,0,1]);new P.Box3;const Pa=new P.Vector3(0,0,0),me=new P.Vector3(0,0,0),HB=new P.Vector3(0,1,0),bt=new P.Ray,ut=new P.Matrix4;new P.Matrix4,new P.Frustum;const lt=new P.Vector3,ft=[],ZI=new P.Quaternion,Ma={};function _I(){var t=[];for(let A in Ma)Ma.hasOwnProperty(A)&&Ma[A]>0&&t.push(A);return t}class pg extends P.Object3D{constructor(A){super();const a=this;if(a.splatsMesh=A.splatsMesh,a.oldUltraMeshSplats=A.oldUltraMeshSplats,a.iosCompatibility=A.iosCompatibility,a.splatsQuality=A.splatsQuality!=null?A.splatsQuality:.75,a.splatsCPUCulling=A.splatsCPUCulling!=null&&A.splatsCPUCulling,this.contentURL=[],A.domWidth&&A.domHeight?this.rendererSize=new P.Vector2(A.domWidth,A.domHeight):this.rendererSize=new P.Vector2(1e3,1e3),this.setClipShape(A.clipShape),this.loadingStrategy=A.loadingStrategy?A.loadingStrategy.toUpperCase():"INCREMENTAL",this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.proxy=A.proxy,this.drawBoundingVolume=!!A.drawBoundingVolume&&A.drawBoundingVolume,this.displayErrors=A.displayErrors,this.displayCopyright=A.displayCopyright,A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=ki(),A.tileLoader)this.tileLoader=A.tileLoader;else{const i={};i.meshCallback=A.meshCallback?A.meshCallback:(r,o)=>{r.material.wireframe=!1,r.material.side=P.DoubleSide},i.pointsCallback=A.pointsCallback?A.pointsCallback:(r,o)=>{r.material.size=Math.pow(o,.33),r.material.sizeAttenuation=!0},i.proxy=this.proxy,i.renderer=A.renderer,i.dracoLoader=A.dracoLoader,i.ktx2Loader=A.ktx2Loader,a.tileLoader=new yi(i);const I=this.update;this.update=r=>{I.call(a,r),a.tileLoader.update()}}if(this.displayCopyright=!!A.displayCopyright,this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.splatsCropRadius=Number.MAX_VALUE,this.splatsSizeMultiplier=1,this.renderer=A.renderer,this.meshCallback=A.meshCallback,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.occlusionCullingService=A.occlusionCullingService,this.static=A.static,this.occlusionCullingService&&(this.color=new P.Color,this.color.setHex(16777215*Math.random()),this.colorID=P.MathUtils.clamp(255*a.color.r,0,255)<<16^P.MathUtils.clamp(255*a.color.g,0,255)<<8^P.MathUtils.clamp(255*a.color.b,0,255)),this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.childrenTiles=[],this.meshContent=[],this.tileContent,this.refine,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.abortController=new AbortController,this.onLoadCallback=A.onLoadCallback,A.json)a._setup(A);else if(A.url){var e=A.url;if(a.queryParams){var g="";for(let i in a.queryParams)a.queryParams.hasOwnProperty(i)&&(g+="&"+i+"="+a.queryParams[i]);e.includes("?")?e+=g:e+="?"+g.substring(1)}(a.proxy?()=>fetch(a.proxy,{method:"POST",body:e,signal:a.abortController.signal}):()=>fetch(e,{signal:a.abortController.signal}))().then(i=>{if(!i.ok)throw new Error(`couldn't load "${A.url}". Request failed with status ${i.status} : ${i.statusText}`);i.json().then(I=>Vt(I,e)).then(I=>{a._setup({rootPath:Ja.dirname(A.url),json:I})})}).catch(i=>{a.displayErrors&&$I(i)})}}setClipShape(A){if(A instanceof Ba||A instanceof P.Sphere)this.clipShape=A;else if(A instanceof P.Box3){const a=new P.Vector3,e=new P.Vector3;A.getCenter(a),A.getSize(e).multiplyScalar(.5),this.clipShape=new Ba([a.x,a.y,a.z,e.x,0,0,0,e.y,0,0,0,e.z])}else A=void 0;this.childrenTiles&&this.childrenTiles.forEach(a=>{a._setClipShape(this.clipShape)})}_setClipShape(A){this.clipShape=A,this.childrenTiles&&this.childrenTiles.forEach(a=>{a._setClipShape(this.clipShape)})}setSplatsSizeMultiplier(A){this.splatsSizeMultiplier=A,this.splatsMesh&&this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier)}setSplatsCropRadius(A){this.splatsCropRadius=A,this.splatsMesh&&this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius)}setSplatsCPUCulling(A){this.splatsCPUCulling=A,this.splatsMesh&&this.splatsMesh.setSplatsCPUCulling(A)}setSplatsQuality(A){this.splatsQuality=A,this.splatsMesh&&this.splatsMesh.setQuality(A)}updateMatrices(){this.updateMatrix(),this.splatsMesh&&this.splatsMesh.updateMatrix(),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!0)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!0)),this.updateMatrixWorld(!0),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!1)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!1))}setCanvasSize(A,a){this.rendererSize.set(A,a)}async _setup(A){const a=this;if(A.json.extensionsRequired&&(A.json.extensionsRequired.includes("JDULTRA_gaussian_splats")||A.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2"))&&(a.oldUltraMeshSplats=!0),A.json.root?(a.json=A.json.root,a.json.refine||(a.json.refine=A.json.refine),a.json.geometricError||(a.json.geometricError=A.json.geometricError),a.json.transform||(a.json.transform=A.json.transform),a.json.boundingVolume||(a.json.boundingVolume=A.json.boundingVolume)):a.json=A.json,a.json.children||(a.json.getChildren?a.json.children=await a.json.getChildren():a.json.children=[]),a.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,a.json.refine?a.refine=a.json.refine:a.refine=A.parentRefine,a.json.geometricError?a.geometricError=a.json.geometricError:a.geometricError=A.parentGeometricError,a.json.transform){let g=new P.Matrix4;g.elements=a.json.transform,a.applyMatrix4(g)}if(a.json.boundingVolume)if(a.json.boundingVolume.box)a.boundingVolume=new Ba(a.json.boundingVolume.box);else if(a.json.boundingVolume.region){const g=a.json.boundingVolume.region;a._transformWGS84ToCartesian(g[0],g[1],g[4],Pa),a._transformWGS84ToCartesian(g[2],g[3],g[5],me),Pa.lerp(me,.5),a.boundingVolume=new P.Sphere(new P.Vector3(Pa.x,Pa.y,Pa.z),Pa.distanceTo(me))}else if(a.json.boundingVolume.sphere){const g=a.json.boundingVolume.sphere;a.boundingVolume=new P.Sphere(new P.Vector3(g[0],g[1],g[2]),g[3])}else a.boundingVolume=A.parentBoundingVolume;else a.boundingVolume=A.parentBoundingVolume;function e(g){g.uri&&g.uri.includes("json")||g.url&&g.url.includes("json")?a.hasUnloadedJSONContent++:a.hasMeshContent++}if(a.json.content?(e(a.json.content),a.hasMeshContent==0&&(a.level=Math.max(0,a.parentTile?a.parentTile.level+.01:0)),a._load()):a.json.contents&&(a.json.contents.forEach(g=>e(g)),a.hasMeshContent==0&&(a.level=Math.max(0,a.parentTile?a.parentTile.level+.01:0))),a.centerModel&&(me.copy(a.boundingVolume.center),this.json.boundingVolume.region&&(this._transformWGS84ToCartesian(.5*(this.json.boundingVolume.region[0]+this.json.boundingVolume.region[2]),.5*(this.json.boundingVolume.region[1]+this.json.boundingVolume.region[3]),.5*(this.json.boundingVolume.region[4]+this.json.boundingVolume.region[5]),Pa),ZI.setFromUnitVectors(Pa.normalize(),HB.normalize()),a.applyQuaternion(ZI)),me.applyMatrix4(a.matrix),a.position.sub(me),a.updateMatrices()),a.onLoadCallback&&a.onLoadCallback(a),a.isSetup=!0,a.level>0&&a.drawBoundingVolume)if(a.bbox&&console.log("double setup"),this.boundingVolume.aabb){let g=this.boundingVolume.aabb.clone();g.applyMatrix4(this.matrixWorld),a.bbox=new P.Box3Helper(g,new P.Color(Math.random(),Math.random(),Math.random())),a.add(a.bbox),a.bbox.material.visible=!1}else a.boundingVolume instanceof Ba&&(a.bbox=a.boundingVolume.helper(),a.add(a.bbox),a.bbox.material.visible=!1)}_assembleURL(A,a){A.endsWith("/")||(A+="/");const e=new URL(A);let g=e.pathname.split("/").filter(I=>I!==""),i=a.split("/").filter(I=>I!=="");for(let I=1;I<=g.length&&!(I>=i.length);I++)if(g.slice(g.length-I,g.length).join("/")===i.slice(0,I).join("/")){for(let r=0;r<I;r++)g.pop();break}for(;i.length>0&&i[0]==="..";)g.pop(),i.shift();return`${e.protocol}//${e.host}/${[...g,...i].join("/")}`}_extractQueryParams(A,a){const e=new URL(A);for(let[g,i]of e.searchParams)a[g]=i;return e.search="",e.toString()}async _load(A=!0,a=!0){var e=this;if(!e.deleted){if(e.json.content)await g(e.json.content,null,A,a);else if(e.json.contents){let i=e.json.contents.map((I,r)=>g(I,r,A,a));Promise.all(i)}}async function g(i,I,r,o){let B;i.uri?B=i.uri:i.url&&(B=i.url);const n=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(n.test(e.rootPath)?n.test(B)||(B=e._assembleURL(e.rootPath,B)):Ja.isAbsolute(e.rootPath)&&(B=e.rootPath+Ja.sep+B),B=e._extractQueryParams(B,e.queryParams),e.queryParams){var s="";for(let E in e.queryParams)e.queryParams.hasOwnProperty(E)&&(s+="&"+E+"="+e.queryParams[E]);B.includes("?")?B+=s:B+="?"+s.substring(1)}if(B)if(e.contentURL.push(B),o&&(B.includes(".b3dm")||B.includes(".glb")||B.includes(".gltf")))try{e.tileLoader.get(e.abortController,e.uuid,B,E=>{if(!e.deleted)return E.asset&&E.asset.copyright&&(E.asset.copyright.split(";").forEach(C=>{Ma[C]?Ma[C]++:Ma[C]=1}),e.displayCopyright&&yg()),E.isSplatsData&&(e.splatsMesh||(e.splatsMesh=new zI(e.tileLoader.renderer),e.splatsMesh.setQuality(e.splatsQuality),e.splatsMesh.setSplatsCPUCulling(e.splatsCPUCulling),e.splatsMesh.setSplatsCropRadius(e.splatsCropRadius),e.splatsMesh.setSplatsSizeMultiplier(e.splatsSizeMultiplier),e.static&&(e.splatsMesh.matrixWorldAutoUpdate=!1),e.add(e.splatsMesh),e.updateMatrices()),E=e.splatsMesh.addSplatsTile(E.positions,E.colors,E.cov0,E.cov1)),E.isSplatsBatch||(E.traverse(C=>{if((C.isMesh||C.isPoints)&&C.layers.disable(0),C.isMesh&&e.occlusionCullingService){const Q=C.geometry.attributes.position,c=[];for(let d=0;d<Q.count;d++)c.push(e.color.r,e.color.g,e.color.b);C.geometry.setAttribute("color",new P.Float32BufferAttribute(c,3))}}),e.add(E),e.updateMatrices()),e.meshContent.push(E),E},e.cameraOnLoad?()=>e.loadingStrategy=="IMMEDIATE"?e._calculateDistanceToCamera(e.cameraOnLoad):e.loadingStrategy=="INCREMENTAL"?e.parentTile?e.parentTile._calculateDistanceToCamera(e.cameraOnLoad)/Math.max(1,e.parentTile.level):e._calculateDistanceToCamera(e.cameraOnLoad)/Math.max(1,e.level):e.loadingStrategy=="PERLEVEL"?e.parentTile?e.level+e.parentTile._calculateDistanceToCamera(e.cameraOnLoad):e.level+e._calculateDistanceToCamera(e.cameraOnLoad):0:()=>0,()=>e._getSiblings(),e.level,e.loadingStrategy,!e.json.boundingVolume.region,!!e.json.boundingVolume.region,e.geometricError,e.oldUltraMeshSplats)}catch(E){e.displayErrors&&$I(E)}else r&&B.includes(".json")&&(e.jsonRequested=B,e.tileLoader.get(e.abortController,e.uuid,B,async E=>{e.jsonReceived=!0,e.deleted||(E.rootPath=Ja.dirname(B),e.json.children.push(E),I==null?delete e.json.content:e.json.contents.splice(I,1),e.hasUnloadedJSONContent--)}))}}dispose(){const A=this;A.meshContent.forEach(a=>{a&&a.asset&&a.asset.copyright&&(a.asset.copyright.split(";").forEach(e=>{Ma[e]&&Ma[e]--}),A.displayCopyright&&yg())}),A.childrenTiles.forEach(a=>a.dispose()),A.deleted=!0,A.splatsMesh&&(A.meshContent.forEach(a=>a.hide()),A.parentTile||(A.splatsMesh.dispose(),A.splatsMesh=void 0)),A.contentURL&&(A.contentURL.forEach(a=>{A.tileLoader.invalidate(a,A.uuid)}),A.contentURL=[]),A.abortController&&!A.jsonRequested&&A.abortController.abort("tile not needed"),this.parent=null,A.meshContent=[],A.bbox&&A.bbox.dispose(),this.dispatchEvent({type:"removed"})}_disposeMeshContent(){const A=this;if(!A.deleted){A.deleted=!0,A.abortController&&(A.abortController.abort("tile not needed"),A.abortController=new AbortController);for(let a=A.meshContent.length-1;a>=0;a--){const e=A.meshContent[a];e&&e.asset&&e.asset.copyright&&(e.asset.copyright.split(";").forEach(g=>{Ma[g]&&Ma[g]--}),A.displayCopyright&&yg()),A.remove(e)}A.splatsMesh&&A.meshContent.forEach(a=>a.hide()),A.meshContent=[],A.contentURL.forEach(a=>{A.tileLoader.invalidate(a,A.uuid)}),A.contentURL=[]}}_disposeChildren(){var A=this;A.childrenTiles.forEach(a=>{a.dispose(),A.remove(a)}),A.childrenTiles=[]}raycast(A,a){if(this.splatsMesh){bt.copy(A.ray),ut.copy(this.matrixWorld).invert(),bt.applyMatrix4(ut);let e=!1;if(this.boundingVolume instanceof Ba)e=this.boundingVolume.intersectsRay(bt);else{if(!(this.boundingVolume instanceof P.Sphere))return!1;e=ray.intersectsSphere(this.boundingVolume)}return e&&this.materialVisibility&&this.splatsReady&&(ft.length=0,this.meshContent.forEach(g=>{g.isSplatsBatch&&(g.raycast(bt,ft,A.params.Points.threshold),ft.forEach(i=>{i.point.applyMatrix4(this.matrixWorld)}),a.push(...ft))})),e}return super.raycast(A,a)}update(A){this.splatsMesh&&this.splatsMesh.updateShaderParams(A,this.renderer);const a=new P.Frustum;a.setFromProjectionMatrix(new P.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse));let e=[0],g=[0],i=[0],I=[0];if(this.refine=="REPLACE"?this.loadingStrategy==="IMMEDIATE"?(this._updateImmediate(A,a),this._statsImmediate(i,e,I,g)):(this._update(A,a),this._stats(i,e,I,g)):(this._update(A,a),this._stats(i,e,I,g)),e>0&&(I[0]/=e[0]),this.splatsMesh)if(lt.copy(A.position),ut.copy(this.matrixWorld).invert(),lt.applyMatrix4(ut),this.splatsCPUCulling){const r=new P.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse).multiply(this.matrixWorld);this.splatsMesh.sort(lt,r)}else this.splatsMesh.sort(lt);return{numTilesLoaded:e[0],numTilesRendered:g[0],maxLOD:i[0],percentageLoaded:I[0]}}_updateImmediate(A,a){this._computeMetricRecursive(A,a),this._updateNodeVisibilityImmediate(),this._expandTreeImmediate(A),this.shouldBeVisible=this.metric>0||!!this.loadOutsideView,this._shouldBeVisibleUpdateImmediate(),this._trimTreeImmediate(),this._loadMeshImmediate()}_statsImmediate(A,a,e,g){A[0]=Math.max(A[0],this.level),(this.shouldBeVisible||this.materialVisibility)&&(a[0]++,this.materialVisibility&&e[0]++),this.materialVisibility&&g[0]++,this.childrenTiles.forEach(i=>{i._statsImmediate(A,a,e,g)})}_stats(A,a,e,g){A[0]=Math.max(A[0],this.level),this.hasMeshContent&&(a[0]++,this.meshContent.length==this.hasMeshContent&&e[0]++,this.materialVisibility&&g[0]++),this.childrenTiles.forEach(i=>{i._stats(A,a,e,g)})}_trimTreeImmediate(){if(this.metric!=null)if(this.hasMeshContent&&this.shouldBeVisible&&this.materialVisibility){if(self.splatsMesh&&!self.splatsReady)return;this._disposeChildren()}else this.childrenTiles.forEach(A=>{A._trimTreeImmediate()})}_updateNodeVisibilityImmediate(A=!1){const a=this;if(a.hasMeshContent)if(a.shouldBeVisible)a.meshContent.length==a.hasMeshContent?a.materialVisibility?a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(!0)}):(a._changeContentVisibility(!0),a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)})):a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)});else{if(!a.loadOutsideView&&a.metric<0)return a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),void a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(!0)});if(!a.materialVisibility||a.splatsMesh&&!a.splatsReady)a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)});else if(A)a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)});else{let e=!0;a.childrenTiles.every(g=>!!g._isReadyImmediate()||(e=!1,!1)),e&&a.childrenTiles.length>0?(a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),a.childrenTiles.forEach(g=>{g._updateNodeVisibilityImmediate(A)})):a.childrenTiles.forEach(g=>{g._updateNodeVisibilityImmediate(!a.splatsMesh||!!a.splatsReady)})}}else a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)})}_shouldBeVisibleUpdateImmediate(){const A=this;A.hasMeshContent?A.metric==null?A.shouldBeVisible=!1:A.metric<0?(A.shouldBeVisible=!!A.loadOutsideView,A.childrenTiles.forEach(a=>{a._setShouldNotBeVisibleRecursive()})):A.metric<A.geometricErrorMultiplier*A.geometricError?A.hasUnloadedJSONContent||(A.json&&A.json.children&&A.json.children.length>0?(A.shouldBeVisible=!1,A.childrenTiles.forEach(a=>{a.shouldBeVisible=!0,a._shouldBeVisibleUpdateImmediate()})):A.shouldBeVisible=!0):A.childrenTiles.forEach(a=>{a._setShouldNotBeVisibleRecursive()}):(A.childrenTiles.forEach(a=>{a.shouldBeVisible=!0,a._shouldBeVisibleUpdateImmediate()}),A.shouldBeVisible=!1)}_setShouldNotBeVisibleRecursive(){this.shouldBeVisible=!1,this.childrenTiles.forEach(A=>{A._setShouldNotBeVisibleRecursive()})}_loadMeshImmediate(){const A=this;A.hasMeshContent&&A.shouldBeVisible?A.meshContent.length<A.hasMeshContent&&A.contentURL.length==0&&(A.deleted=!1,A._load(!1,!0)):A.childrenTiles.forEach(a=>{a._loadMeshImmediate()})}_computeMetricRecursive(A,a){const e=this;e.metric=-1,e.isSetup&&(e.boundingVolume&&e.geometricError&&(e.metric=e._calculateUpdateMetric(A,a)),e.childrenTiles.forEach(g=>g._computeMetricRecursive(A,a)))}_expandTreeImmediate(A){const a=this;a.hasUnloadedJSONContent||(a.hasMeshContent?a.occlusionCullingService&&a.hasMeshContent&&!a.occlusionCullingService.hasID(a.colorID)||a.metric>=0&&a.metric<a.geometricErrorMultiplier*a.geometricError&&a.json&&a.json.children&&a.childrenTiles.length<a.json.children.length&&a._loadJsonChildren(A):a.json&&a.json.children&&a.childrenTiles.length<a.json.children.length&&a._loadJsonChildren(A)),a.childrenTiles.forEach(e=>e._expandTreeImmediate(A))}_update(A,a){const e=this;if(!e.isSetup)return;const g=e.materialVisibility;e.boundingVolume&&e.geometricError&&(e.metric=e._calculateUpdateMetric(A,a)),e.childrenTiles.forEach(i=>i._update(A,a)),function(i){if(i<0)return e.inFrustum=!1,void e._changeContentVisibility(!!e.loadOutsideView);if(e.inFrustum=!0,!!e.hasMeshContent&&!(e.meshContent.length<e.hasMeshContent)){if(e.childrenTiles.length==0)return void e._changeContentVisibility(!0);if(i>=e.geometricErrorMultiplier*e.geometricError)e._changeContentVisibility(!0);else if(i<e.geometricErrorMultiplier*e.geometricError&&e.refine=="REPLACE"){let I=!0;e.childrenTiles.every(r=>!!r._isReady()||(I=!1,!1)),I?e._changeContentVisibility(!1):e._changeContentVisibility(!0)}}}(e.metric),function(i){i<0&&e.hasMeshContent||e.occlusionCullingService&&e.hasMeshContent&&!e.occlusionCullingService.hasID(e.colorID)||(!e.hasMeshContent||i<=e.geometricErrorMultiplier*e.geometricError&&(e.meshContent.length>0||e.splatsMesh))&&e.json&&e.json.children&&e.childrenTiles.length!=e.json.children.length&&e._loadJsonChildren(A)}(e.metric),function(i,I){if(e.hasMeshContent){if(!e.inFrustum)return void e._disposeChildren();if(e.occlusionCullingService&&!I&&e.hasMeshContent&&e.meshContent.length>0&&e.materialVisibility&&e._areAllChildrenLoadedAndHidden())return e.splatsMesh&&this.materialVisibility&&!e.splatsReady?void 0:void e._disposeChildren();if(i>=e.geometricErrorMultiplier*e.geometricError){if(e.splatsMesh&&e.materialVisibility&&!e.splatsReady)return;e._disposeChildren()}}}(e.metric,g)}_loadJsonChildren(A){const a=this;for(let e=a.json.children.length-1;e>=0;e--)a.json.children[e].root||a.json.children[e].children||a.json.children[e].getChildren||a.json.children[e].content||a.json.children[e].contents||a.json.children.splice(e,1);a.json.children.forEach(e=>{let g=new pg({parentTile:a,queryParams:a.queryParams,parentGeometricError:a.geometricError,parentBoundingVolume:a.boundingVolume,parentRefine:a.refine,json:e,rootPath:a.rootPath,geometricErrorMultiplier:a.geometricErrorMultiplier,loadOutsideView:a.loadOutsideView,level:Math.floor(a.level)+1,tileLoader:a.tileLoader,cameraOnLoad:A,occlusionCullingService:a.occlusionCullingService,renderer:a.renderer,static:a.static,centerModel:!1,displayErrors:a.displayErrors,displayCopyright:a.displayCopyright,distanceBias:a.distanceBias,loadingStrategy:a.loadingStrategy,drawBoundingVolume:a.drawBoundingVolume,splatsMesh:a.splatsMesh,clipShape:a.clipShape,oldUltraMeshSplats:a.oldUltraMeshSplats});a.childrenTiles.push(g),a.add(g)}),a.updateMatrices(!0)}_areAllChildrenLoadedAndHidden(){let A=!0;const a=this;return this.childrenTiles.every(e=>{if(e.hasMeshContent){if(e.childrenTiles.length>0)return A=!1,!1;if(!e.metric<0)return!0;if(e.materialVisibility&&(!a.splatsMesh||a.splatsReady)||a.occlusionCullingService.hasID(e.colorID))return A=!1,!1}else if(!e._areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}_isReady(){if(this.metric==null)return!1;if(this.metric<0)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent&&this.json.children.length==0&&!this.hasUnloadedJSONContent)return!0;if(!this.hasMeshContent||this.meshContent.length==0||!this.materialVisibility){if(this.children.length>0){var A=!0;return this.childrenTiles.every(a=>!!a._isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.length<this.hasMeshContent)&&!!this.materialVisibility}_isReadyImmediate(){if(this.materialVisibility||!this.loadOutsideView&&this.metric<0)return!0;if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(a=>!!a._isReadyImmediate()||(A=!1,!1)),A}return!1}_changeContentVisibility(A){const a=this;if(a.bbox&&(a.bbox.material.visible=A),a.splatsMesh)A!=a.materialVisibility&&(a.meshContent.forEach(e=>{A&&e.isSplatsBatch?e.show(()=>{a.materialVisibility&&(a.splatsReady=!0)}):(e.hide(),a.splatsReady=!1)}),a.materialVisibility=A);else{if(a.hasMeshContent&&a.meshContent.length>0&&(A?a.meshContent.forEach(e=>{e.traverse(g=>{(g.isMesh||g.isPoints)&&g.layers.enable(0)})}):a.meshContent.forEach(e=>{e.traverse(g=>{(g.isMesh||g.isPoints)&&g.layers.disable(0)})})),a.materialVisibility==A)return;a.materialVisibility=A}}_calculateUpdateMetric(A,a){let e=0;if(this.boundingVolume instanceof Ba){if(xa.copy(this.boundingVolume),xa.applyMatrix4(this.matrixWorld),!xa.inFrustum(a))return-1;if(this.clipShape!=null&&(this.clipShape.isSphere&&!xa.intersectsSphere(this.clipShape)||this.clipShape.isOBB&&!xa.intersectsOBB(this.clipShape)))return Number.MAX_VALUE;e=Math.max(0,xa.distanceToPoint(A.position)-A.near)}else{if(!(this.boundingVolume instanceof P.Sphere))return console.error("unsupported shape"),-1;if(pa.copy(this.boundingVolume),pa.applyMatrix4(this.matrixWorld),this.clipShape!=null&&(this.clipShape.isOBB&&!this.clipShape.intersectsSphere(pa)||this.clipShape.isSphere&&!this.clipShape.intersectsSphere(pa)))return Number.MAX_VALUE;if(!a.intersectsSphere(pa))return-1;e=Math.max(0,A.position.distanceTo(pa.center)-pa.radius-A.near)}if(e=Math.pow(e,this.distanceBias),e==0)return 0;const g=this.matrixWorld.getMaxScaleOnAxis();this.renderer&&this.renderer.getDrawingBufferSize(this.rendererSize);let i=this.rendererSize.y,I=A.fov;return A.aspect<1&&(I*=A.aspect,i=this.rendererSize.x),16*(2*Math.tan(.5*I*.017453292519943295)*e)/(i*g)}_getSiblings(){const A=this,a=[];if(!A.parentTile)return a;let e=A.parentTile;for(;!e.hasMeshContent&&e.parentTile;)e=e.parentTile;return e.childrenTiles.forEach(g=>{if(g&&g!=A){for(;!g.hasMeshContent&&g.childrenTiles[0];)g=g.childrenTiles[0];a.push(g)}}),a}_calculateDistanceToCamera(A){return this.boundingVolume instanceof Ba?(xa.copy(this.boundingVolume),xa.applyMatrix4(this.matrixWorld),Math.max(0,xa.distanceToPoint(A.position))):this.boundingVolume instanceof P.Sphere?(pa.copy(this.boundingVolume),pa.applyMatrix4(this.matrixWorld),Math.max(0,A.position.distanceTo(pa.center)-pa.radius)):(console.error("unsupported shape"),-1)}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A,this.childrenTiles.forEach(a=>a.setGeometricErrorMultiplier(A))}setDistanceBias(A){this.distanceBias=A,this.childrenTiles.forEach(a=>a.setDistanceBias(A))}_transformWGS84ToCartesian(A,a,e,g){const i=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(a),2)),I=Math.cos(a),r=Math.cos(A),o=Math.sin(a),B=i+e,n=B*I*r,s=B*I*Math.sin(A),E=(.993305615557957*i+e)*o;g.set(n,s,E)}hideCopyright(){(function(){fA||((fA=document.createElement("div")).style.position="fixed",fA.style.bottom="20px",fA.style.left="20px",fA.style.color="white",fA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",fA.style.padding="10px",fA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(fA)),fA.style.opacity=0})()}showCopyright(){(function(){fA||((fA=document.createElement("div")).style.position="fixed",fA.style.bottom="20px",fA.style.left="20px",fA.style.color="white",fA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",fA.style.padding="10px",fA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(fA)),fA.style.opacity=1})()}}function $I(t){var A=document.createElement("div");A.textContent=t,A.style.position="fixed",A.style.top="10px",A.style.left="50%",A.style.transform="translateX(-50%)",A.style.padding="10px",A.style.backgroundColor="#ff8800",A.style.color="#ffffff",A.style.zIndex="9999",document.body.appendChild(A),setTimeout(function(){A.remove()},8e3)}function yg(){fA||((fA=document.createElement("div")).style.position="fixed",fA.style.bottom="20px",fA.style.left="20px",fA.style.color="white",fA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",fA.style.padding="10px",fA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(fA));const t=_I();let A="";t.forEach(a=>{A+=a+", "}),A=A.slice(0,-2),fA.textContent=A}const na=new P.Sphere(new P.Vector3(0,0,0),1),za=new P.Vector3(0,0,0),mg=new P.Vector3(0,0,0),YB=new P.Vector3(0,1,0),Fg=new P.Vector2,Ar=new P.Quaternion,ar=new P.Matrix4;class kg extends P.Object3D{constructor(A){super();const a=this;if(A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=ki(),A.tileLoader?this.tileLoader=A.tileLoader:console.error("an instanced tileset must be provided an InstancedTilesetLoader"),this.master=A.master,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.childrenTiles=[],this.jsonChildren=[],this.meshContent=new Set,this.static=A.static,this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.tileContent,this.refinement,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.inFrustum=!0,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.deleted=!1,this.abortController=new AbortController,A.json)this.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,A.json.children&&(this.jsonChildren=A.json.children),a.setup(A);else if(A.url){this.loadJson=(i,I)=>{const r=Ja.dirname(I);a.setup({rootPath:r,json:i,onLoadCallback:A.onLoadCallback})};var e=A.url;if(a.queryParams){var g="";for(let i in a.queryParams)a.queryParams.hasOwnProperty(i)&&(g+="&"+i+"="+a.queryParams[i]);e.includes("?")?e+=g:e+="?"+g.substring(1)}a.tileLoader.get(a.abortController,e,a.uuid,a)}}async setup(A){const a=this;A.json.root?(a.json=A.json.root,!a.json.children&&a.json.getChildren&&(a.json.children=await a.json.getChildren()),a.jsonChildren=a.json.children,a.json.refinement||(a.json.refinement=A.json.refinement),a.json.geometricError||(a.json.geometricError=A.json.geometricError),a.json.transform||(a.json.transform=A.json.transform),a.json.boundingVolume||(a.json.boundingVolume=A.json.boundingVolume)):(a.json=A.json,!a.json.children&&a.json.getChildren&&(a.json.children=await a.json.getChildren(),a.jsonChildren=a.json.children)),a.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,a.json.refinement?a.refinement=a.json.refinement:a.refinement=A.parentRefinement,a.json.geometricError?a.geometricError=a.json.geometricError:a.geometricError=A.parentGeometricError;let e=new P.Matrix4;if(a.json.transform&&!a.centerModel&&(e.elements=a.json.transform),a.applyMatrix4(e),a.parentTile&&a.parentTile.matrix&&(a.matrix.premultiply(a.parentTile.matrix),a.matrix.decompose(a.position,a.quaternion,a.scale)),a.matrixWorldNeedsUpdate=!0,a.updateWorldMatrix(!0,!0),a.json.boundingVolume)if(a.json.boundingVolume.box)a.boundingVolume=new Ba(a.json.boundingVolume.box);else if(a.json.boundingVolume.region){const i=a.json.boundingVolume.region;a.transformWGS84ToCartesian(i[0],i[1],i[4],za),a.transformWGS84ToCartesian(i[2],i[3],i[5],mg),za.lerp(mg,.5),a.boundingVolume=new P.Sphere(new P.Vector3(za.x,za.y,za.z),za.distanceTo(mg))}else if(a.json.boundingVolume.sphere){const i=a.json.boundingVolume.sphere;a.boundingVolume=new P.Sphere(new P.Vector3(i[0],i[1],i[2]),i[3])}else a.boundingVolume=A.parentBoundingVolume;else a.boundingVolume=A.parentBoundingVolume;function g(i){i.uri&&i.uri.includes("json")||i.url&&i.url.includes("json")?a.hasUnloadedJSONContent++:a.hasMeshContent++}if(a.json.content?(g(a.json.content),a.load()):a.json.contents&&(a.json.contents.forEach(i=>g(i)),a.load()),a.centerModel){const i=new P.Sphere;a.boundingVolume instanceof Ba?i.copy(a.boundingVolume.sphere):a.boundingVolume instanceof P.Sphere&&i.copy(a.boundingVolume),this.json.boundingVolume.region&&(a.transformWGS84ToCartesian(.5*(a.json.boundingVolume.region[0]+a.json.boundingVolume.region[2]),.5*(a.json.boundingVolume.region[1]+a.json.boundingVolume.region[3]),.5*(a.json.boundingVolume.region[4]+a.json.boundingVolume.region[5]),za),Ar.setFromUnitVectors(za.normalize(),YB.normalize()),a.master.applyQuaternion(Ar),a.master.updateWorldMatrix(!1,!1)),ar.makeTranslation(-i.center.x*a.scale.x,-i.center.y*a.scale.y,-i.center.z*a.scale.z),a.master.matrix.multiply(ar),a.master.matrix.decompose(a.master.position,a.master.quaternion,a.master.scale)}a.isSetup=!0,A.onLoadCallback&&A.onLoadCallback(a)}isAbsolutePathOrURL(A){const a=/^(?:http|https|ftp|tcp|udp):\/\/\S+/.test(A),e=A.startsWith("/")&&!A.startsWith("//");return a||e}assembleURL(A,a){A.endsWith("/")||(A+="/");const e=new URL(A);let g=e.pathname.split("/").filter(I=>I!==""),i=a.split("/").filter(I=>I!=="");for(let I=1;I<=g.length&&!(I>=i.length);I++)if(g.slice(g.length-I,g.length).join("/")===i.slice(0,I).join("/")){for(let r=0;r<I;r++)g.pop();break}for(;i.length>0&&i[0]==="..";)g.pop(),i.shift();return`${e.protocol}//${e.host}/${[...g,...i].join("/")}`}extractQueryParams(A,a){const e=new URL(A);for(let[g,i]of e.searchParams)a[g]=i;return e.search="",e.toString()}load(){var A=this;function a(e){let g;e.uri?g=e.uri:e.url&&(g=e.url);const i=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(i.test(A.rootPath)?i.test(g)||(g=A.assembleURL(A.rootPath,g)):Ja.isAbsolute(A.rootPath)&&(g=A.rootPath+Ja.sep+g),g=A.extractQueryParams(g,A.queryParams),A.queryParams){var I="";for(let r in A.queryParams)A.queryParams.hasOwnProperty(r)&&(I+="&"+r+"="+A.queryParams[r]);g.includes("?")?g+=I:g+="?"+I.substring(1)}g&&(g.includes(".b3dm")||g.includes(".glb")||g.includes(".gltf")?(A.contentURL=g,A.tileLoader.get(A.abortController,g,A.uuid,A,A.cameraOnLoad?()=>A.calculateDistanceToCamera(A.cameraOnLoad):()=>0,()=>A.getSiblings(),A.level,!A.json.boundingVolume.region,!!A.json.boundingVolume.region,A.geometricError)):g.includes(".json")&&A.tileLoader.get(A.abortController,g,A.uuid,A))}A.deleted||(A.json.content?a(A.json.content):A.json.contents&&A.json.contents.forEach(e=>a(e)))}loadMesh(A){this.deleted||this.meshContent.add(A)}loadJson(A,a){this.deleted||(this.json.children&&(this.jsonChildren=this.json.children),A.rootPath=Ja.dirname(a),this.jsonChildren.push(A),this.hasUnloadedJSONContent--)}dispose(){const A=this;A.childrenTiles.forEach(a=>a.dispose()),A.deleted=!0,A.abortController&&A.abortController.abort(),this.parent=null,this.parentTile=null,this.dispatchEvent({type:"removed"})}disposeChildren(){this.childrenTiles.forEach(A=>A.dispose()),this.childrenTiles=[]}_update(A,a){const e=this;function g(i){if(e.hasMeshContent&&!(e.meshContent.size<e.hasMeshContent)){if(i<0)return e.inFrustum=!1,void e.changeContentVisibility(!!e.loadOutsideView);if(e.inFrustum=!0,e.childrenTiles.length!=0){if(i>=e.master.geometricErrorMultiplier*e.geometricError)e.changeContentVisibility(!0);else if(i<e.master.geometricErrorMultiplier*e.geometricError){let I=!0;e.childrenTiles.every(r=>!!r.isReady()||(I=!1,!1)),I&&e.changeContentVisibility(!1)}}else e.changeContentVisibility(!0)}}e.isSetup&&(e.materialVisibility,e.boundingVolume&&e.geometricError&&(e.metric=e.calculateUpdateMetric(A,a)),e.childrenTiles.forEach(i=>i._update(A,a)),g(e.metric),function(i){i<0&&e.hasMeshContent||(!e.hasMeshContent&&e.rootPath||i<e.master.geometricErrorMultiplier*e.geometricError&&e.meshContent.size>0)&&e.json&&e.jsonChildren&&e.childrenTiles.length!=e.jsonChildren.length&&e.jsonChildren.forEach(I=>{if(!(I.root||I.children||I.getChildren||I.content||I.contents))return;let r=new kg({parentTile:e,queryParams:e.queryParams,parentGeometricError:e.geometricError,parentBoundingVolume:e.boundingVolume,parentRefinement:e.refinement,json:I,rootPath:e.rootPath,loadOutsideView:e.loadOutsideView,level:e.level+1,tileLoader:e.tileLoader,cameraOnLoad:A,master:e.master,centerModel:!1});e.childrenTiles.push(r)})}(e.metric),function(i){if(e.hasMeshContent){if(!e.inFrustum)return e.disposeChildren(),void g(i);i>=e.master.geometricErrorMultiplier*e.geometricError&&(e.disposeChildren(),g(i))}}(e.metric))}areAllChildrenLoadedAndHidden(){let A=!0;return this.childrenTiles.every(a=>{if(a.hasMeshContent){if(a.childrenTiles.length>0)return A=!1,!1;if(!a.inFrustum)return!0;if(!a.materialVisibility||a.meshesToDisplay!=a.meshesDisplayed)return A=!1,!1}else if(!a.areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}isReady(){if(!this.inFrustum)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent||this.meshContent.size==0||!this.materialVisibility){if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(a=>!!a.isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.size<this.hasMeshContent)&&!!this.materialVisibility}changeContentVisibility(A){this.materialVisibility=A}calculateUpdateMetric(A,a){if(this.boundingVolume instanceof Ba){if(na.copy(this.boundingVolume.sphere),na.applyMatrix4(this.matrixWorld),!a.intersectsSphere(na))return-1}else{if(!(this.boundingVolume instanceof P.Sphere))return console.error("unsupported shape"),-1;if(na.copy(this.boundingVolume),na.applyMatrix4(this.matrixWorld),!a.intersectsSphere(na))return-1}let e=Math.max(0,A.position.distanceTo(na.center)-na.radius);if(e=Math.pow(e,this.distanceBias),e==0)return 0;const g=this.matrixWorld.getMaxScaleOnAxis();this.master._renderSize(Fg);let i=Fg.y,I=A.fov;A.aspect<1&&(I*=A.aspect,i=Fg.x);let r=2*Math.tan(.5*I*.017453292519943295)*e;return 16*window.devicePixelRatio*r/(i*g)}getSiblings(){const A=this,a=[];if(!A.parentTile)return a;let e=A.parentTile;for(;!e.hasMeshContent&&e.parentTile;)e=e.parentTile;return e.childrenTiles.forEach(g=>{if(g&&g!=A){for(;!g.hasMeshContent&&g.childrenTiles[0];)g=g.childrenTiles[0];a.push(g)}}),a}calculateDistanceToCamera(A){return this.boundingVolume instanceof Ba?(na.copy(this.boundingVolume.sphere),na.applyMatrix4(this.matrixWorld)):this.boundingVolume instanceof P.Sphere?(na.copy(this.boundingVolume),na.applyMatrix4(this.matrixWorld)):console.error("unsupported shape"),Math.max(0,A.position.distanceTo(na.center)-na.radius)}getWorldMatrix(){return this.matrixWorld}transformWGS84ToCartesian(A,a,e,g){const i=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(a),2)),I=Math.cos(a),r=Math.cos(A),o=Math.sin(a),B=i+e,n=B*I*r,s=B*I*Math.sin(A),E=(.993305615557957*i+e)*o;g.set(n,s,E)}}class KB extends P.Object3D{constructor(A){super(),A.master=this,A.domWidth&&A.domHeight?this.rendererSize=new P.Vector2(A.domWidth,A.domHeight):this.rendererSize=new P.Vector2(1e3,1e3),this.renderer=A.renderer,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.tileset=new kg(A),A.static&&(this.matrixAutoUpdate=!1),this.tileLoader=A.tileLoader}_renderSize(A){this.renderer?this.renderer.getDrawingBufferSize(A):A.copy(this.rendererSize)}setCanvasSize(A,a){this.rendererSize.set(A,a)}update(A,a){if(a)this.tileset._update(A,a);else{const e=new P.Frustum;e.setFromProjectionMatrix(new P.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse)),this.tileset._update(A,e)}}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A||1}}class TB{constructor(A){const a=this;a.scene=A,a.instancedTiles=[],a.instancedMesh,a.reuseableMatrix=new P.Matrix4}addInstance(A){const a=this;A.added=!0,A.listOMesh=a.instancedTiles,a.instancedTiles.push(A),a.instancedMesh&&A.loadMesh(a.instancedMesh)}addToScene(){const A=this;A.instancedMesh.setMatrixAt(0,new P.Matrix4),A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.count=1,A.scene.add(A.instancedMesh),A.instancedMesh.onAfterRender=()=>{delete A.instancedMesh.onAfterRender,A.instancedMesh.displayedOnce=!0}}setObject(A){const a=this;a.instancedMesh=A,a.instancedMesh.matrixAutoUpdate=!1,a.instancedMesh.matrixWorldAutoUpdate=!1,a.scene.children.includes(A)||this.addToScene();for(let e=0;e<a.instancedTiles.length;e++)a.instancedTiles[e].loadMesh(a.instancedMesh)}update(){const A=this;for(let a=A.instancedTiles.length-1;a>=0;a--)A.instancedTiles[a].deleted&&A.instancedTiles.splice(a,1);if(A.instancedMesh){A.instancedMesh.count=0,A.instancedMesh.instancedTiles=[];for(let a=0;a<A.instancedTiles.length;a++)A.instancedTiles[a].meshContent.add(A.instancedMesh),A.instancedTiles[a].materialVisibility&&(A.instancedMesh.count++,A.reuseableMatrix.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),A.reuseableMatrix.multiply(A.instancedTiles[a].matrixWorld),A.reuseableMatrix.multiply(A.instancedMesh.baseMatrix),A.instancedMesh.setMatrixAt(A.instancedMesh.count-1,A.reuseableMatrix),A.instancedMesh.instancedTiles.push(A.instancedTiles[a]));A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.needsUpdate=!0,A.instancedMesh.computeBoundingSphere()}}getCount(){return this.instancedTiles.length}dispose(){const A=this;return!(A.instancedTiles.length>0)&&!!A.instancedMesh&&(A.scene.remove(A.instancedMesh),A.instancedMesh.traverse(a=>{if(a.dispose&&a.dispose(),a.material)if(a.material.length)for(let e=0;e<a.material.length;++e)a.material[e].dispose();else a.material.dispose();a.geometry&&a.geometry.dispose()}),A.instancedMesh.dispose(),!0)}}class qB{constructor(){const A=this;A.count=0,A.json,A.instancedTiles=[]}addInstance(A){this.instancedTiles.push(A),this.json&&A.loadJson(this.json,this.url)}setObject(A,a){const e=this;e.json=A,e.url=a;for(let g=0;g<e.instancedTiles.length;g++)e.instancedTiles[g].loadJson(e.json,e.url)}getCount(){return this.instancedTiles.length}update(){const A=this;for(let a=A.instancedTiles.length-1;a>=0;a--)A.instancedTiles[a].deleted&&A.instancedTiles.splice(a,1)}dispose(){return!(!this.json||this.instancedTiles.length!=0)}}let ne=0;async function OB(t){return new Promise(A=>{const a=setInterval(()=>{t.hasDracoLoader&&!t.dracoLoader||t.hasKTX2Loader&&!t.ktx2Loader||(clearInterval(a),A())},10)})}aa.InstancedOGC3DTile=KB,aa.InstancedTileLoader=class{constructor(t,A){if(this.zUpToYUpMatrix=new P.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.maxInstances=1,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems&&(this.maxCachedItems=A.maxCachedItems),A.maxInstances&&(this.maxInstances=A.maxInstances)),this.gltfLoader=new Wg,A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const a=new Ai;a.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),this.gltfLoader.setDRACOLoader(a),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const a=new sa;a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.gltfLoader.setKTX2Loader(a),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(pi),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new zg(this.gltfLoader),this.cache=new Tg,this.scene=t,this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const t=this;t._checkSize(),t.cache._data.forEach(A=>{A.update()}),ne<8&&t._download(),t._loadBatch()}_download(){const t=this;if(t.nextDownloads.length!=0||(t._getNextDownloads(),t.nextDownloads.length!=0))for(;t.nextDownloads.length>0;){const a=t.nextDownloads.shift();if(a){if(a.path.includes(".b3dm")&&(A=t.proxy?()=>fetch(t.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),ne++,A().then(e=>{if(!e.ok)throw console.error("could not load tile with path : "+a.path),new Error(`couldn't load "${a.path}". Request failed with status ${e.status} : ${e.statusText}`);return e.arrayBuffer()}).then(e=>this.b3dmDecoder.parseB3DMInstanced(e,g=>{t.meshCallback(g,a.geometricError)},t.maxInstances,a.sceneZupToYup,a.meshZupToYup)).then(e=>{e.frustumCulled=!1,a.tile.setObject(e),t.ready.unshift(a)}).catch(e=>console.error(e)).finally(()=>{ne--})),a.path.includes(".glb")||a.path.includes(".gltf"))A=t.proxy?()=>fetch(t.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),ne++,A().then(e=>{if(!e.ok)throw new Error("missing content");return e.arrayBuffer()}).then(async e=>{await OB(this.gltfLoader),this.gltfLoader.parse(e,null,g=>{let i;g.scene.asset=g.asset,a.sceneZupToYup&&g.scene.applyMatrix4(this.zUpToYUpMatrix),g.scene.traverse(I=>{I.geometricError=a.geometricError,I.isMesh&&(a.meshZupToYup&&I.applyMatrix4(this.zUpToYUpMatrix),t.meshCallback&&t.meshCallback(I,I.geometricError)),I.isPoints&&console.error("instanced point cloud is not supported")}),g.scene.updateWorldMatrix(!1,!0),g.scene.traverse(I=>{I.isMesh&&(i=new P.InstancedMesh(I.geometry,I.material,t.maxInstances),i.baseMatrix=I.matrixWorld)}),t.ready.unshift(a),i?(i.frustumCulled=!1,a.tile.setObject(i)):g.scene.traverse(I=>{I.dispose&&I.dispose(),I.material&&I.material.dispose()})})},e=>{console.error("could not load tile : "+a.path)}).finally(()=>{ne--});else if(a.path.includes(".json")){var A;A=t.proxy?()=>fetch(t.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),ne++,A().then(e=>{if(!e.ok)throw console.error("could not load tile with path : "+a.path),new Error(`couldn't load "${a.path}". Request failed with status ${e.status} : ${e.statusText}`);return e.json()}).then(e=>Vt(e,a.path)).then(e=>{a.tile.setObject(e,a.path),t.ready.unshift(a)}).catch(e=>console.error(e)).finally(()=>{ne--})}}}}_loadBatch(){return this.nextReady.length==0&&(this._getNextReady(),this.nextReady.length==0)?0:this.nextReady.shift()?1:0}_getNextReady(){let t=Number.MAX_VALUE,A=-1;for(let a=this.ready.length-1;a>=0;a--)this.ready[a].distanceFunction||this.nextReady.push(this.ready.splice(a,1)[0]);if(!(this.nextReady.length>0)){for(let a=this.ready.length-1;a>=0;a--){const e=this.ready[a].distanceFunction()*this.ready[a].level;e<t&&(t=e,A=a)}if(A>=0){const a=this.ready.splice(A,1).pop();this.nextReady.push(a);const e=a.getSiblings();for(let g=this.ready.length-1;g>=0;g--)e.includes(this.ready[g].uuid)&&this.nextready.push(this.ready.splice(g,1).pop())}}}get(t,A,a,e,g,i,I,r,o,B){const n=this,s=function(C){for(var Q=C.split("/"),c=[],d=0,b=0;b<Q.length;b++){var h=Q[b];h!=="."&&h!==""&&h!==".."?c[d++]=h:h===".."&&d>0&&d--}if(d===0)return"/";var l="";for(b=0;b<d;b++)l+="/"+c[b];return l}(A);if(!(A.includes(".b3dm")||A.includes(".json")||A.includes(".glb")||A.includes(".gltf")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");const E=n.cache.get(s);if(E)E.addInstance(e);else if(A.includes(".b3dm")||A.includes(".glb")||A.includes(".gltf")){const C=new TB(n.scene);C.addInstance(e),n.cache.put(s,C);const Q=new AbortController;t.signal.addEventListener("abort",()=>{C.getCount()==0&&Q.abort()}),this.downloads.push({abortController:Q,tile:C,key:s,path:A,distanceFunction:g,getSiblings:i,level:I,uuid:a,sceneZupToYup:r,meshZupToYup:o,geometricError:B,shouldDoDownload:()=>!0})}else if(A.includes(".json")){const C=new qB;C.addInstance(e),n.cache.put(s,C);const Q=new AbortController;t.signal.addEventListener("abort",()=>{C.getCount()==0&&Q.abort()}),this.downloads.push({abortController:Q,tile:C,key:s,path:A,distanceFunction:g,getSiblings:i,level:I,shouldDoDownload:()=>!0})}}_getNextDownloads(){let t=Number.MAX_VALUE,A=-1;for(let a=this.downloads.length-1;a>=0;a--){const e=this.downloads[a];e.shouldDoDownload()?e.distanceFunction||this.nextDownloads.push(this.downloads.splice(a,1)[0]):this.downloads.splice(a,1)}if(!(this.nextDownloads.length>0)){for(let a=this.downloads.length-1;a>=0;a--){const e=this.downloads[a],g=e.distanceFunction()*e.level;g<t&&(t=g,A=a)}if(A>=0){const a=this.downloads.splice(A,1).pop();this.nextDownloads.push(a);const e=a.getSiblings();for(let g=this.downloads.length-1;g>=0;g--)e.includes(this.downloads[g].uuid)&&this.nextDownloads.push(this.downloads.splice(g,1).pop())}}}_checkSize(){const t=this;let A=0;for(;t.cache.size()>t.maxCachedItems&&A<t.cache.size();){A++;const a=t.cache.head();t.cache.remove(a.key),a.value.dispose()||t.cache.put(a.key,a.value)}}},aa.OBB=Ba,aa.OGC3DTile=pg,aa.OcclusionCullingService=class{constructor(){this.cullMap=[],this.cullMaterial=new P.MeshBasicMaterial({vertexColors:!0}),this.cullMaterial.side=P.FrontSide,this.cullTarget=this._createCullTarget(),this.cullPixels=new Uint8Array(4*this.cullTarget.width*this.cullTarget.height)}setSide(t){this.cullMaterial.side=t}_createCullTarget(){const t=new P.WebGLRenderTarget(Math.floor(.05*window.innerWidth),Math.floor(.05*window.innerHeight));return t.texture.format=P.RGBAFormat,t.texture.colorSpace=P.LinearSRGBColorSpace,t.texture.minFilter=P.NearestFilter,t.texture.magFilter=P.NearestFilter,t.texture.generateMipmaps=!1,t.stencilBuffer=!1,t.depthBuffer=!0,t.depthTexture=new P.DepthTexture,t.depthTexture.format=P.DepthFormat,t.depthTexture.type=P.UnsignedShortType,t}update(t,A,a){let e=A.getRenderTarget(),g=t.overrideMaterial;t.overrideMaterial=this.cullMaterial,A.setRenderTarget(this.cullTarget),A.render(t,a),t.overrideMaterial=g,A.setRenderTarget(e),A.readRenderTargetPixels(this.cullTarget,0,0,this.cullTarget.width,this.cullTarget.height,this.cullPixels),this.cullMap=[];for(let i=0;i<this.cullPixels.length;i+=4){const I=P.MathUtils.clamp(this.cullPixels[i],0,255)<<16^P.MathUtils.clamp(this.cullPixels[i+1],0,255)<<8^P.MathUtils.clamp(this.cullPixels[i+2],0,255);this.cullMap[I]=!0}}hasID(t){return this.cullMap[t]}},aa.SplatsMesh=zI,aa.TileLoader=yi,aa.getOGC3DTilesCopyrightInfo=_I,aa.splatsFragmentShader=VI,aa.splatsVertexShader=WI,Object.defineProperty(aa,Symbol.toStringTag,{value:"Module"})});
|
|
560
306
|
//# sourceMappingURL=threedtiles.umd.js.map
|