@needle-tools/engine 3.6.6 → 3.6.7

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.
@@ -3957,7 +3957,7 @@ irradiance += getLightProbeIrradiance( lightProbe, geometry.normal );
3957
3957
  transform: scale(1.1) !important;
3958
3958
  cursor: pointer !important;
3959
3959
  }
3960
- `,t}async function zZ(){try{let t=await(await fetch("https://urls.needle.tools/analytics-endpoint")).text();if(t){Ds&&console.log("Analytics backend url",t);const A=window.location.href;let e="api/v1/register/web-request";t.endsWith("/")||(e="/"+e);const g=`${t}${e}?license=${iQ}&url=${encodeURIComponent(A)}&hostname=${encodeURIComponent(window.location.hostname)}&pathname=${encodeURIComponent(window.location.pathname)}&search=${encodeURIComponent(window.location.search)}&hash=${encodeURIComponent(window.location.hash)}&version=${yk}}&generator=${Cv}`;Ds&&console.log("Sending non-commercial usage message to analytics backend",g),fetch(g,{mode:"no-cors"}).catch(i=>{Ds&&console.log("Failed to send non-commercial usage message to analytics backend",i)})}}catch(t){Ds&&console.log("Failed to send non-commercial usage message to analytics backend",t)}}const dr=aA("debugloading"),nc=aA("debugloadingrendering");class ZZ{constructor(){r(this,"className"),r(this,"additionalClasses")}}let rc=0,Tb;function eG(t){dr&&console.log(t.progress.loaded.toFixed(0)+"/"+t.progress.total.toFixed(0),t);const A=t.count,e=t.progress.total;e===0||e===void 0?(Tb!==t.name&&(rc=0),Tb=t.name,rc+=(1-rc)*.001,dr&&zI("Loading "+t.name+" did not report total size")):rc=t.progress.loaded/e;const g=t.index/A+rc/A;return $A.clamp01(g)}const tG=class{constructor(t,A){r(this,"loadingProgress",0),r(this,"_element"),r(this,"_progress",0),r(this,"_allowCustomLoadingElement",!0),r(this,"_loadingElement"),r(this,"_loadingTextContainer",null),r(this,"_loadingBar",null),r(this,"_messageContainer",null),r(this,"_loadingElementOptions"),r(this,"_progressLoop"),this._element=t,this._loadingElementOptions=A}onLoadingBegin(t){const A=this._element.shadowRoot||this._element;if(dr&&console.warn("Begin Loading"),!this._loadingElement){for(let e=0;e<A.children.length;e++){const g=A.children[e];if(g.classList.contains(tG.LoadingContainerClassName)){if(!this._allowCustomLoadingElement){dr&&console.warn("Remove custom loading container"),A.removeChild(g);continue}this._loadingElement=this.createLoadingElement(g)}}this._loadingElement||(this._loadingElement=this.createLoadingElement())}this._progress=0,this.loadingProgress=0,this._loadingElement.style.display="flex",A.appendChild(this._loadingElement),this.smoothProgressLoop(),this.setMessage(t??"")}onLoadingUpdate(t,A){var e;if(!((e=this._loadingElement)!=null&&e.parentElement))return;let g=0;typeof t=="number"?g=t:("index"in t&&(g=eG(t)),!A&&"name"in t&&this.setMessage("loading "+t.name)),this.loadingProgress=g,A&&this.setMessage(A),this.updateDisplay()}onLoadingFinished(){dr&&console.warn("Finished Loading"),nc||(this.loadingProgress=1,this.onDoneLoading())}setMessage(t){this._messageContainer&&(this._messageContainer.innerText=t)}smoothProgressLoop(){if(this._progressLoop)return;let t=1/12;nc&&(t=1/500,typeof nc=="number"&&(t*=nc)),this._progressLoop=setInterval(()=>{this.loadingProgress>=.95&&!nc&&(t=.9),this._progress=$A.lerp(this._progress,this.loadingProgress,t*this.loadingProgress),this.updateDisplay()},t)}onDoneLoading(){this._loadingElement&&(dr&&console.log("Hiding loading element"),this._loadingElement.style.display="none",this._loadingElement.remove()),this._progressLoop&&clearInterval(this._progressLoop),this._progressLoop=null}updateDisplay(){const t=this._progress,A=(t*100).toFixed(0)+"%";this._loadingBar&&(this._loadingBar.style.width=t*100+"%"),this._loadingTextContainer&&(this._loadingTextContainer.textContent=A)}createLoadingElement(t){var A,e;dr&&!t&&console.log("Creating loading element"),this._loadingElement=t||document.createElement("div");const g=this._element.getAttribute("loading-style"),i=IQ();if(!t&&(this._loadingElement.style.position="absolute",this._loadingElement.style.width="100%",this._loadingElement.style.height="100%",this._loadingElement.style.left="0",this._loadingElement.style.top="0",g==="light"?this._loadingElement.style.backgroundColor="#ddd":this._loadingElement.style.backgroundColor="#222",this._loadingElement.style.display="flex",this._loadingElement.style.alignItems="center",this._loadingElement.style.justifyContent="center",this._loadingElement.style.zIndex=Number.MAX_SAFE_INTEGER.toString(),this._loadingElement.style.flexDirection="column",this._loadingElement.style.pointerEvents="none",this._loadingElement.style.color="white",g==="light"?this._loadingElement.style.color="rgba(0,0,0,.8)":this._loadingElement.style.color="rgba(255,255,255,.5)",i&&this._element)){const Q=this._element.getAttribute("loading-background-color");Q&&(this._loadingElement.style.backgroundColor=Q);const E=this._element.getAttribute("loading-text-color");E&&(this._loadingElement.style.color=E)}const I=((A=this._loadingElementOptions)==null?void 0:A.className)??tG.LoadingContainerClassName;if(this._loadingElement.classList.add(I),(e=this._loadingElementOptions)!=null&&e.additionalClasses)for(const Q of this._loadingElementOptions.additionalClasses)this._loadingElement.classList.add(Q);const o=document.createElement("div"),C=30;o.style.display="flex",o.style.width=C+"%",o.style.height="2px",g==="light"?o.style.backgroundColor="rgba(0,0,0,.2)":o.style.backgroundColor="rgba(255,255,255,.2)";const s=document.createElement("img"),a=64;if(s.style.width=`${a}px`,s.style.height=`${a}px`,s.style.marginBottom="20px",s.addEventListener("click",()=>window.open("https://needle.tools","_blank")),s.style.cursor="pointer",s.style.userSelect="none",s.style.pointerEvents="all",s.style.objectFit="contain",s.src=bb,i&&this._element){const Q=this._element.getAttribute("loading-logo-src");Q&&(s.src=Q)}this._loadingElement.appendChild(s),this._loadingElement.appendChild(o),this._loadingBar=document.createElement("div"),o.appendChild(this._loadingBar);const n=function(Q){return $A.lerp(C*.5,100-C*.5,Q)+"%"};if(this._loadingBar.style.background=`linear-gradient(90deg, #02022B ${n(0)}, #0BA398 ${n(.4)}, #99CC33 ${n(.5)}, #D7DB0A ${n(1)})`,this._loadingBar.style.backgroundAttachment="fixed",this._loadingBar.style.width="0%",this._loadingBar.style.height="100%",i&&this._element){const Q=this._element.getAttribute("primary-color"),E=this._element.getAttribute("secondary-color");Q&&E?this._loadingBar.style.background=`linear-gradient(90deg, ${Q} ${n(0)}, ${E} ${n(1)})`:Q?this._loadingBar.style.background=Q:E&&(this._loadingBar.style.background=E)}this._loadingTextContainer=document.createElement("div"),this._loadingTextContainer.style.display="flex",this._loadingTextContainer.style.justifyContent="center",this._loadingTextContainer.style.marginTop="1.2em",this._loadingElement.appendChild(this._loadingTextContainer);const B=document.createElement("div");if(this._messageContainer=B,B.style.display="flex",B.style.fontSize=".8em",B.style.paddingTop=".5em",B.style.fontWeight="200",B.style.fontFamily="Roboto, sans-serif, Arial",B.style.justifyContent="center",this._loadingElement.appendChild(B),i&&this._element){const Q=this._element.getAttribute("loading-text-color");Q&&(B.style.color=Q)}if(!ac()){const Q=document.createElement("div");Q.style.paddingTop=".6em",Q.style.fontSize=".8em",Q.innerText="NON COMMERCIAL",this._loadingElement.appendChild(Q)}return this._loadingElement}};let gG=tG;r(gG,"LoadingContainerClassName","loading");const iG=new WeakMap;class IG extends ci{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,e,g,i){const I=new Ng(this.manager);I.setPath(this.path),I.setResponseType("arraybuffer"),I.setRequestHeader(this.requestHeader),I.setWithCredentials(this.withCredentials),I.load(A,o=>{this.decodeDracoFile(o,e).catch(i)},g,i)}decodeDracoFile(A,e,g,i){const I={attributeIDs:g||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!g};return this.decodeGeometry(A,I).then(e)}decodeGeometry(A,e){const g=JSON.stringify(e);if(iG.has(A)){const s=iG.get(A);if(s.key===g)return s.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 i;const I=this.workerNextTaskID++,o=A.byteLength,C=this._getWorker(I,o).then(s=>(i=s,new Promise((a,n)=>{i._callbacks[I]={resolve:a,reject:n},i.postMessage({type:"decode",id:I,taskConfig:e,buffer:A},[A])}))).then(s=>this._createGeometry(s.geometry));return C.catch(()=>!0).then(()=>{i&&I&&this._releaseTask(i,I)}),iG.set(A,{key:g,promise:C}),C}_createGeometry(A){const e=new de;A.index&&e.setIndex(new ge(A.index.array,1));for(let g=0;g<A.attributes.length;g++){const i=A.attributes[g],I=i.name,o=i.array,C=i.itemSize;e.setAttribute(I,new ge(o,C))}return e}_loadLibrary(A,e){const g=new Ng(this.manager);return g.setPath(this.decoderPath),g.setResponseType(e),g.setWithCredentials(this.withCredentials),new Promise((i,I)=>{g.load(A,i,void 0,I)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return A?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(g=>{const i=g[0];A||(this.decoderConfig.wasmBinary=g[1]);const I=XZ.toString(),o=["/* draco decoder */",i,"","/* worker */",I.substring(I.indexOf("{")+1,I.lastIndexOf("}"))].join(`
3960
+ `,t}async function zZ(){try{let t=await(await fetch("https://urls.needle.tools/analytics-endpoint-v2")).text();if(t){Ds&&console.log("Analytics backend url",t);const A=window.location.href;let e="api/v2/new/request";t.endsWith("/")||(e="/"+e);const g=`${t}${e}?license=${iQ}&url=${encodeURIComponent(A)}&hostname=${encodeURIComponent(window.location.hostname)}&pathname=${encodeURIComponent(window.location.pathname)}&search=${encodeURIComponent(window.location.search)}&hash=${encodeURIComponent(window.location.hash)}&version=${yk}&generator=${Cv}`;Ds&&console.log("Sending non-commercial usage message to analytics backend",g),fetch(g,{mode:"no-cors"}).catch(i=>{Ds&&console.log("Failed to send non-commercial usage message to analytics backend",i)})}}catch(t){Ds&&console.log("Failed to send non-commercial usage message to analytics backend",t)}}const dr=aA("debugloading"),nc=aA("debugloadingrendering");class ZZ{constructor(){r(this,"className"),r(this,"additionalClasses")}}let rc=0,Tb;function eG(t){dr&&console.log(t.progress.loaded.toFixed(0)+"/"+t.progress.total.toFixed(0),t);const A=t.count,e=t.progress.total;e===0||e===void 0?(Tb!==t.name&&(rc=0),Tb=t.name,rc+=(1-rc)*.001,dr&&zI("Loading "+t.name+" did not report total size")):rc=t.progress.loaded/e;const g=t.index/A+rc/A;return $A.clamp01(g)}const tG=class{constructor(t,A){r(this,"loadingProgress",0),r(this,"_element"),r(this,"_progress",0),r(this,"_allowCustomLoadingElement",!0),r(this,"_loadingElement"),r(this,"_loadingTextContainer",null),r(this,"_loadingBar",null),r(this,"_messageContainer",null),r(this,"_loadingElementOptions"),r(this,"_progressLoop"),this._element=t,this._loadingElementOptions=A}onLoadingBegin(t){const A=this._element.shadowRoot||this._element;if(dr&&console.warn("Begin Loading"),!this._loadingElement){for(let e=0;e<A.children.length;e++){const g=A.children[e];if(g.classList.contains(tG.LoadingContainerClassName)){if(!this._allowCustomLoadingElement){dr&&console.warn("Remove custom loading container"),A.removeChild(g);continue}this._loadingElement=this.createLoadingElement(g)}}this._loadingElement||(this._loadingElement=this.createLoadingElement())}this._progress=0,this.loadingProgress=0,this._loadingElement.style.display="flex",A.appendChild(this._loadingElement),this.smoothProgressLoop(),this.setMessage(t??"")}onLoadingUpdate(t,A){var e;if(!((e=this._loadingElement)!=null&&e.parentElement))return;let g=0;typeof t=="number"?g=t:("index"in t&&(g=eG(t)),!A&&"name"in t&&this.setMessage("loading "+t.name)),this.loadingProgress=g,A&&this.setMessage(A),this.updateDisplay()}onLoadingFinished(){dr&&console.warn("Finished Loading"),nc||(this.loadingProgress=1,this.onDoneLoading())}setMessage(t){this._messageContainer&&(this._messageContainer.innerText=t)}smoothProgressLoop(){if(this._progressLoop)return;let t=1/12;nc&&(t=1/500,typeof nc=="number"&&(t*=nc)),this._progressLoop=setInterval(()=>{this.loadingProgress>=.95&&!nc&&(t=.9),this._progress=$A.lerp(this._progress,this.loadingProgress,t*this.loadingProgress),this.updateDisplay()},t)}onDoneLoading(){this._loadingElement&&(dr&&console.log("Hiding loading element"),this._loadingElement.style.display="none",this._loadingElement.remove()),this._progressLoop&&clearInterval(this._progressLoop),this._progressLoop=null}updateDisplay(){const t=this._progress,A=(t*100).toFixed(0)+"%";this._loadingBar&&(this._loadingBar.style.width=t*100+"%"),this._loadingTextContainer&&(this._loadingTextContainer.textContent=A)}createLoadingElement(t){var A,e;dr&&!t&&console.log("Creating loading element"),this._loadingElement=t||document.createElement("div");const g=this._element.getAttribute("loading-style"),i=IQ();if(!t&&(this._loadingElement.style.position="absolute",this._loadingElement.style.width="100%",this._loadingElement.style.height="100%",this._loadingElement.style.left="0",this._loadingElement.style.top="0",g==="light"?this._loadingElement.style.backgroundColor="#ddd":this._loadingElement.style.backgroundColor="#222",this._loadingElement.style.display="flex",this._loadingElement.style.alignItems="center",this._loadingElement.style.justifyContent="center",this._loadingElement.style.zIndex=Number.MAX_SAFE_INTEGER.toString(),this._loadingElement.style.flexDirection="column",this._loadingElement.style.pointerEvents="none",this._loadingElement.style.color="white",g==="light"?this._loadingElement.style.color="rgba(0,0,0,.8)":this._loadingElement.style.color="rgba(255,255,255,.5)",i&&this._element)){const Q=this._element.getAttribute("loading-background-color");Q&&(this._loadingElement.style.backgroundColor=Q);const E=this._element.getAttribute("loading-text-color");E&&(this._loadingElement.style.color=E)}const I=((A=this._loadingElementOptions)==null?void 0:A.className)??tG.LoadingContainerClassName;if(this._loadingElement.classList.add(I),(e=this._loadingElementOptions)!=null&&e.additionalClasses)for(const Q of this._loadingElementOptions.additionalClasses)this._loadingElement.classList.add(Q);const o=document.createElement("div"),C=30;o.style.display="flex",o.style.width=C+"%",o.style.height="2px",g==="light"?o.style.backgroundColor="rgba(0,0,0,.2)":o.style.backgroundColor="rgba(255,255,255,.2)";const s=document.createElement("img"),a=64;if(s.style.width=`${a}px`,s.style.height=`${a}px`,s.style.marginBottom="20px",s.addEventListener("click",()=>window.open("https://needle.tools","_blank")),s.style.cursor="pointer",s.style.userSelect="none",s.style.pointerEvents="all",s.style.objectFit="contain",s.src=bb,i&&this._element){const Q=this._element.getAttribute("loading-logo-src");Q&&(s.src=Q)}this._loadingElement.appendChild(s),this._loadingElement.appendChild(o),this._loadingBar=document.createElement("div"),o.appendChild(this._loadingBar);const n=function(Q){return $A.lerp(C*.5,100-C*.5,Q)+"%"};if(this._loadingBar.style.background=`linear-gradient(90deg, #02022B ${n(0)}, #0BA398 ${n(.4)}, #99CC33 ${n(.5)}, #D7DB0A ${n(1)})`,this._loadingBar.style.backgroundAttachment="fixed",this._loadingBar.style.width="0%",this._loadingBar.style.height="100%",i&&this._element){const Q=this._element.getAttribute("primary-color"),E=this._element.getAttribute("secondary-color");Q&&E?this._loadingBar.style.background=`linear-gradient(90deg, ${Q} ${n(0)}, ${E} ${n(1)})`:Q?this._loadingBar.style.background=Q:E&&(this._loadingBar.style.background=E)}this._loadingTextContainer=document.createElement("div"),this._loadingTextContainer.style.display="flex",this._loadingTextContainer.style.justifyContent="center",this._loadingTextContainer.style.marginTop="1.2em",this._loadingElement.appendChild(this._loadingTextContainer);const B=document.createElement("div");if(this._messageContainer=B,B.style.display="flex",B.style.fontSize=".8em",B.style.paddingTop=".5em",B.style.fontWeight="200",B.style.fontFamily="Roboto, sans-serif, Arial",B.style.justifyContent="center",this._loadingElement.appendChild(B),i&&this._element){const Q=this._element.getAttribute("loading-text-color");Q&&(B.style.color=Q)}if(!ac()){const Q=document.createElement("div");Q.style.paddingTop=".6em",Q.style.fontSize=".8em",Q.innerText="NON COMMERCIAL",this._loadingElement.appendChild(Q)}return this._loadingElement}};let gG=tG;r(gG,"LoadingContainerClassName","loading");const iG=new WeakMap;class IG extends ci{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,e,g,i){const I=new Ng(this.manager);I.setPath(this.path),I.setResponseType("arraybuffer"),I.setRequestHeader(this.requestHeader),I.setWithCredentials(this.withCredentials),I.load(A,o=>{this.decodeDracoFile(o,e).catch(i)},g,i)}decodeDracoFile(A,e,g,i){const I={attributeIDs:g||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!g};return this.decodeGeometry(A,I).then(e)}decodeGeometry(A,e){const g=JSON.stringify(e);if(iG.has(A)){const s=iG.get(A);if(s.key===g)return s.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 i;const I=this.workerNextTaskID++,o=A.byteLength,C=this._getWorker(I,o).then(s=>(i=s,new Promise((a,n)=>{i._callbacks[I]={resolve:a,reject:n},i.postMessage({type:"decode",id:I,taskConfig:e,buffer:A},[A])}))).then(s=>this._createGeometry(s.geometry));return C.catch(()=>!0).then(()=>{i&&I&&this._releaseTask(i,I)}),iG.set(A,{key:g,promise:C}),C}_createGeometry(A){const e=new de;A.index&&e.setIndex(new ge(A.index.array,1));for(let g=0;g<A.attributes.length;g++){const i=A.attributes[g],I=i.name,o=i.array,C=i.itemSize;e.setAttribute(I,new ge(o,C))}return e}_loadLibrary(A,e){const g=new Ng(this.manager);return g.setPath(this.decoderPath),g.setResponseType(e),g.setWithCredentials(this.withCredentials),new Promise((i,I)=>{g.load(A,i,void 0,I)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return A?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(g=>{const i=g[0];A||(this.decoderConfig.wasmBinary=g[1]);const I=XZ.toString(),o=["/* draco decoder */",i,"","/* worker */",I.substring(I.indexOf("{")+1,I.lastIndexOf("}"))].join(`
3961
3961
  `);this.workerSourceURL=URL.createObjectURL(new Blob([o]))}),this.decoderPending}_getWorker(A,e){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(I){const o=I.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,I){return i._taskLoad>I._taskLoad?-1:1});const g=this.workerPool[this.workerPool.length-1];return g._taskCosts[A]=e,g._taskLoad+=e,g})}_releaseTask(A,e){A._taskLoad-=A._taskCosts[e],delete A._callbacks[e],delete A._taskCosts[e]}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}}function XZ(){let t,A;onmessage=function(o){const C=o.data;switch(C.type){case"init":t=C.decoderConfig,A=new Promise(function(n){t.onModuleLoaded=function(B){n({draco:B})},DracoDecoderModule(t)});break;case"decode":const s=C.buffer,a=C.taskConfig;A.then(n=>{const B=n.draco,Q=new B.Decoder,E=new B.DecoderBuffer;E.Init(new Int8Array(s),s.byteLength);try{const h=e(B,Q,E,a),c=h.attributes.map(l=>l.array.buffer);h.index&&c.push(h.index.array.buffer),self.postMessage({type:"decode",id:C.id,geometry:h},c)}catch(h){console.error(h),self.postMessage({type:"error",id:C.id,error:h.message})}finally{B.destroy(E),B.destroy(Q)}});break}};function e(o,C,s,a){const n=a.attributeIDs,B=a.attributeTypes;let Q,E;const h=C.GetEncodedGeometryType(s);if(h===o.TRIANGULAR_MESH)Q=new o.Mesh,E=C.DecodeBufferToMesh(s,Q);else if(h===o.POINT_CLOUD)Q=new o.PointCloud,E=C.DecodeBufferToPointCloud(s,Q);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!E.ok()||Q.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+E.error_msg());const c={index:null,attributes:[]};for(const l in n){const d=self[B[l]];let u,p;if(a.useUniqueIDs)p=n[l],u=C.GetAttributeByUniqueId(Q,p);else{if(p=C.GetAttributeId(Q,o[n[l]]),p===-1)continue;u=C.GetAttribute(Q,p)}c.attributes.push(i(o,C,Q,l,d,u))}return h===o.TRIANGULAR_MESH&&(c.index=g(o,C,Q)),o.destroy(Q),c}function g(o,C,s){const a=s.num_faces()*3,n=a*4,B=o._malloc(n);C.GetTrianglesUInt32Array(s,n,B);const Q=new Uint32Array(o.HEAPF32.buffer,B,a).slice();return o._free(B),{array:Q,itemSize:1}}function i(o,C,s,a,n,B){const Q=B.num_components(),E=s.num_points()*Q,h=E*n.BYTES_PER_ELEMENT,c=I(o,n),l=o._malloc(h);C.GetAttributeDataArrayForAllPoints(s,B,c,h,l);const d=new n(o.HEAPF32.buffer,l,E).slice();return o._free(l),{name:a,array:d,itemSize:Q}}function I(o,C){switch(C){case Float32Array:return o.DT_FLOAT32;case Int8Array:return o.DT_INT8;case Int16Array:return o.DT_INT16;case Int32Array:return o.DT_INT32;case Uint8Array:return o.DT_UINT8;case Uint16Array:return o.DT_UINT16;case Uint32Array:return o.DT_UINT32}}}class $Z{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(A){if(!this.workers[A]){const e=this.workerCreator();e.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=e}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,e){const g=this.workersResolve[A];if(g&&g(e),this.queue.length){const{resolve:i,msg:I,transfer:o}=this.queue.shift();this.workersResolve[A]=i,this.workers[A].postMessage(I,o)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,e){return new Promise(g=>{const i=this._getIdleWorker();i!==-1?(this._initWorker(i),this.workerStatus|=1<<i,this.workersResolve[i]=g,this.workers[i].postMessage(A,e)):this.queue.push({resolve:g,msg:A,transfer:e})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const A9=0,e9=2,t9=1,g9=2,i9=0,Ob=9,oG=15,_b=16,CG=22,Pb=37,sG=43,jb=76,Wb=83,Vb=97,zb=100,Zb=103,Xb=109;class I9{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 Bc{constructor(A,e,g,i){this._dataView=new DataView(A.buffer,A.byteOffset+e,g),this._littleEndian=i,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}_skip(A){return this._offset+=A,this}_scan(A,e=0){const g=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==e&&i<A;)i++,this._offset++;return i<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+g,i)}}const Li=[171,75,84,88,32,50,48,187,13,10,26,10];function $b(t){return typeof TextDecoder<"u"?new TextDecoder().decode(t):Buffer.from(t).toString("utf8")}function o9(t){const A=new Uint8Array(t.buffer,t.byteOffset,Li.length);if(A[0]!==Li[0]||A[1]!==Li[1]||A[2]!==Li[2]||A[3]!==Li[3]||A[4]!==Li[4]||A[5]!==Li[5]||A[6]!==Li[6]||A[7]!==Li[7]||A[8]!==Li[8]||A[9]!==Li[9]||A[10]!==Li[10]||A[11]!==Li[11])throw new Error("Missing KTX 2.0 identifier.");const e=new I9,g=17*Uint32Array.BYTES_PER_ELEMENT,i=new Bc(t,Li.length,g,!0);e.vkFormat=i._nextUint32(),e.typeSize=i._nextUint32(),e.pixelWidth=i._nextUint32(),e.pixelHeight=i._nextUint32(),e.pixelDepth=i._nextUint32(),e.layerCount=i._nextUint32(),e.faceCount=i._nextUint32();const I=i._nextUint32();e.supercompressionScheme=i._nextUint32();const o=i._nextUint32(),C=i._nextUint32(),s=i._nextUint32(),a=i._nextUint32(),n=i._nextUint64(),B=i._nextUint64(),Q=new Bc(t,Li.length+g,3*I*8,!0);for(let CA=0;CA<I;CA++)e.levels.push({levelData:new Uint8Array(t.buffer,t.byteOffset+Q._nextUint64(),Q._nextUint64()),uncompressedByteLength:Q._nextUint64()});const E=new Bc(t,o,C,!0),h={vendorId:E._skip(4)._nextUint16(),descriptorType:E._nextUint16(),versionNumber:E._nextUint16(),descriptorBlockSize:E._nextUint16(),colorModel:E._nextUint8(),colorPrimaries:E._nextUint8(),transferFunction:E._nextUint8(),flags:E._nextUint8(),texelBlockDimension:[E._nextUint8(),E._nextUint8(),E._nextUint8(),E._nextUint8()],bytesPlane:[E._nextUint8(),E._nextUint8(),E._nextUint8(),E._nextUint8(),E._nextUint8(),E._nextUint8(),E._nextUint8(),E._nextUint8()],samples:[]},c=(h.descriptorBlockSize/4-6)/4;for(let CA=0;CA<c;CA++){const AA={bitOffset:E._nextUint16(),bitLength:E._nextUint8(),channelType:E._nextUint8(),samplePosition:[E._nextUint8(),E._nextUint8(),E._nextUint8(),E._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&AA.channelType?(AA.sampleLower=E._nextInt32(),AA.sampleUpper=E._nextInt32()):(AA.sampleLower=E._nextUint32(),AA.sampleUpper=E._nextUint32()),h.samples[CA]=AA}e.dataFormatDescriptor.length=0,e.dataFormatDescriptor.push(h);const l=new Bc(t,s,a,!0);for(;l._offset<a;){const CA=l._nextUint32(),AA=l._scan(CA),dA=$b(AA),rA=l._scan(CA-AA.byteLength);e.keyValue[dA]=dA.match(/^ktx/i)?$b(rA):rA,l._offset%4&&l._skip(4-l._offset%4)}if(B<=0)return e;const d=new Bc(t,n,B,!0),u=d._nextUint16(),p=d._nextUint16(),D=d._nextUint32(),y=d._nextUint32(),k=d._nextUint32(),F=d._nextUint32(),S=[];for(let CA=0;CA<I;CA++)S.push({imageFlags:d._nextUint32(),rgbSliceByteOffset:d._nextUint32(),rgbSliceByteLength:d._nextUint32(),alphaSliceByteOffset:d._nextUint32(),alphaSliceByteLength:d._nextUint32()});const U=n+d._offset,M=U+D,Y=M+y,O=Y+k,x=new Uint8Array(t.buffer,t.byteOffset+U,D),b=new Uint8Array(t.buffer,t.byteOffset+M,y),z=new Uint8Array(t.buffer,t.byteOffset+Y,k),gA=new Uint8Array(t.buffer,t.byteOffset+O,F);return e.globalData={endpointCount:u,selectorCount:p,imageDescs:S,endpointsData:x,selectorsData:b,tablesData:z,extendedData:gA},e}let aG,ws,nG;const rG={env:{emscripten_notify_memory_growth:function(t){nG=new Uint8Array(ws.exports.memory.buffer)}}};let C9=class{init(){return aG||(aG=typeof fetch<"u"?fetch("data:application/wasm;base64,"+AL).then(t=>t.arrayBuffer()).then(t=>WebAssembly.instantiate(t,rG)).then(this._init):WebAssembly.instantiate(Buffer.from(AL,"base64"),rG).then(this._init),aG)}_init(t){ws=t.instance,rG.env.emscripten_notify_memory_growth(0)}decode(t,A=0){if(!ws)throw new Error("ZSTDDecoder: Await .init() before decoding.");const e=t.byteLength,g=ws.exports.malloc(e);nG.set(t,g),A=A||Number(ws.exports.ZSTD_findDecompressedSize(g,e));const i=ws.exports.malloc(A),I=ws.exports.ZSTD_decompress(i,A,g,e),o=nG.slice(i,i+I);return ws.exports.free(g),ws.exports.free(i),o}};const AL="AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",BG=new WeakMap;let QG=0,EG;class Xo extends ci{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new $Z,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}detectSupport(A){return this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),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")},A.capabilities.isWebGL2&&(this.workerConfig.etc1Supported=!1),this}init(){if(!this.transcoderPending){const A=new Ng(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const e=A.loadAsync("basis_transcoder.js"),g=new Ng(this.manager);g.setPath(this.transcoderPath),g.setResponseType("arraybuffer"),g.setWithCredentials(this.withCredentials);const i=g.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([e,i]).then(([I,o])=>{const C=Xo.BasisWorker.toString(),s=["/* constants */","let _EngineFormat = "+JSON.stringify(Xo.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(Xo.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Xo.BasisFormat),"/* basis_transcoder.js */",I,"/* worker */",C.substring(C.indexOf("{")+1,C.lastIndexOf("}"))].join(`
3962
3962
  `);this.workerSourceURL=URL.createObjectURL(new Blob([s])),this.transcoderBinary=o,this.workerPool.setWorkerCreator(()=>{const a=new Worker(this.workerSourceURL),n=this.transcoderBinary.slice(0);return a.postMessage({type:"init",config:this.workerConfig,transcoderBinary:n},[n]),a})}),QG>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),QG++}return this.transcoderPending}load(A,e,g,i){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const I=new Ng(this.manager);I.setResponseType("arraybuffer"),I.setWithCredentials(this.withCredentials),I.load(A,o=>{if(BG.has(o))return BG.get(o).promise.then(e).catch(i);this._createTexture(o).then(C=>e?e(C):null).catch(i)},g,i)}_createTextureFrom(A,e){const{mipmaps:g,width:i,height:I,format:o,type:C,error:s,dfdTransferFn:a,dfdFlags:n}=A;if(C==="error")return Promise.reject(s);const B=e.layerCount>1?new CK(g,i,I,e.layerCount,o,lt):new os(g,i,I,o,lt);return B.minFilter=g.length===1?Ke:So,B.magFilter=Ke,B.generateMipmaps=!1,B.needsUpdate=!0,B.encoding=a===g9?De:Xt,B.premultiplyAlpha=!!(n&t9),B}async _createTexture(A,e={}){const g=o9(new Uint8Array(A));if(g.vkFormat!==i9)return a9(g);const i=e,I=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:i},[A])).then(o=>this._createTextureFrom(o.data,g));return BG.set(A,{promise:I}),I}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),QG--,this}}Xo.BasisFormat={ETC1S:0,UASTC_4x4:1},Xo.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},Xo.EngineFormat={RGBAFormat:Mt,RGBA_ASTC_4x4_Format:Od,RGBA_BPTC_Format:_d,RGBA_ETC2_EAC_Format:Td,RGBA_PVRTC_4BPPV1_Format:Yd,RGBA_S3TC_DXT5_Format:th,RGB_ETC1_Format:XS,RGB_ETC2_Format:Hd,RGB_PVRTC_4BPPV1_Format:xd,RGB_S3TC_DXT1_Format:eh},Xo.BasisWorker=function(){let t,A,e;const g=_EngineFormat,i=_TranscoderFormat,I=_BasisFormat;self.addEventListener("message",function(h){const c=h.data;switch(c.type){case"init":t=c.config,o(c.transcoderBinary);break;case"transcode":A.then(()=>{try{const{width:l,height:d,hasAlpha:u,mipmaps:p,format:D,dfdTransferFn:y,dfdFlags:k}=C(c.buffer),F=[];for(let S=0;S<p.length;++S)F.push(p[S].data.buffer);self.postMessage({type:"transcode",id:c.id,width:l,height:d,hasAlpha:u,mipmaps:p,format:D,dfdTransferFn:y,dfdFlags:k},F)}catch(l){console.error(l),self.postMessage({type:"error",id:c.id,error:l.message})}});break}});function o(h){A=new Promise(c=>{e={wasmBinary:h,onRuntimeInitialized:c},BASIS(e)}).then(()=>{e.initializeBasis(),e.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")})}function C(h){const c=new e.KTX2File(new Uint8Array(h));function l(){c.close(),c.delete()}if(!c.isValid())throw l(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");const d=c.isUASTC()?I.UASTC_4x4:I.ETC1S,u=c.getWidth(),p=c.getHeight(),D=c.getLayers()||1,y=c.getLevels(),k=c.getHasAlpha(),F=c.getDFDTransferFunc(),S=c.getDFDFlags(),{transcoderFormat:U,engineFormat:M}=B(d,u,p,k);if(!u||!p||!y)throw l(),new Error("THREE.KTX2Loader: Invalid texture");if(!c.startTranscoding())throw l(),new Error("THREE.KTX2Loader: .startTranscoding failed");const Y=[];for(let O=0;O<y;O++){const x=[];let b,z;for(let gA=0;gA<D;gA++){const CA=c.getImageLevelInfo(O,gA,0);b=CA.origWidth,z=CA.origHeight;const AA=new Uint8Array(c.getImageTranscodedSizeInBytes(O,gA,0,U));if(!c.transcodeImage(AA,O,gA,0,U,0,-1,-1))throw l(),new Error("THREE.KTX2Loader: .transcodeImage failed.");x.push(AA)}Y.push({data:E(x),width:b,height:z})}return l(),{width:u,height:p,hasAlpha:k,mipmaps:Y,format:M,dfdTransferFn:F,dfdFlags:S}}const s=[{if:"astcSupported",basisFormat:[I.UASTC_4x4],transcoderFormat:[i.ASTC_4x4,i.ASTC_4x4],engineFormat:[g.RGBA_ASTC_4x4_Format,g.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[I.ETC1S,I.UASTC_4x4],transcoderFormat:[i.BC7_M5,i.BC7_M5],engineFormat:[g.RGBA_BPTC_Format,g.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[I.ETC1S,I.UASTC_4x4],transcoderFormat:[i.BC1,i.BC3],engineFormat:[g.RGB_S3TC_DXT1_Format,g.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[I.ETC1S,I.UASTC_4x4],transcoderFormat:[i.ETC1,i.ETC2],engineFormat:[g.RGB_ETC2_Format,g.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[I.ETC1S,I.UASTC_4x4],transcoderFormat:[i.ETC1],engineFormat:[g.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[I.ETC1S,I.UASTC_4x4],transcoderFormat:[i.PVRTC1_4_RGB,i.PVRTC1_4_RGBA],engineFormat:[g.RGB_PVRTC_4BPPV1_Format,g.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],a=s.sort(function(h,c){return h.priorityETC1S-c.priorityETC1S}),n=s.sort(function(h,c){return h.priorityUASTC-c.priorityUASTC});function B(h,c,l,d){let u,p;const D=h===I.ETC1S?a:n;for(let y=0;y<D.length;y++){const k=D[y];if(t[k.if]&&k.basisFormat.includes(h)&&!(d&&k.transcoderFormat.length<2)&&!(k.needsPowerOfTwo&&!(Q(c)&&Q(l))))return u=k.transcoderFormat[d?1:0],p=k.engineFormat[d?1:0],{transcoderFormat:u,engineFormat:p}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),u=i.RGBA32,p=g.RGBAFormat,{transcoderFormat:u,engineFormat:p}}function Q(h){return h<=2?!0:(h&h-1)===0&&h!==0}function E(h){let c=0;for(const u of h)c+=u.byteLength;const l=new Uint8Array(c);let d=0;for(const u of h)l.set(u,d),d+=u.byteLength;return l}};const eL={[Xb]:Mt,[Vb]:Mt,[Pb]:Mt,[sG]:Mt,[Zb]:bn,[Wb]:bn,[_b]:bn,[CG]:bn,[zb]:ca,[jb]:ca,[oG]:ca,[Ob]:ca},hG={[Xb]:rg,[Vb]:mg,[Pb]:lt,[sG]:lt,[Zb]:rg,[Wb]:mg,[_b]:lt,[CG]:lt,[zb]:rg,[jb]:mg,[oG]:lt,[Ob]:lt},s9={[sG]:De,[CG]:De,[oG]:De};async function a9(t){const{vkFormat:A,pixelWidth:e,pixelHeight:g,pixelDepth:i}=t;if(eL[A]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");const I=t.levels[0];let o,C;if(t.supercompressionScheme===A9)o=I.levelData;else if(t.supercompressionScheme===e9)EG||(EG=new Promise(async a=>{const n=new C9;await n.init(),a(n)})),o=(await EG).decode(I.levelData,I.uncompressedByteLength);else throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");hG[A]===rg?C=new Float32Array(o.buffer,o.byteOffset,o.byteLength/Float32Array.BYTES_PER_ELEMENT):hG[A]===mg?C=new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT):C=o;const s=i===0?new jI(C,e,g):new rh(C,e,g,i);return s.type=hG[A],s.format=eL[A],s.encoding=s9[A]||Xt,s.needsUpdate=!0,Promise.resolve(s)}var n9=function(){var t="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",A="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",e=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]),g=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 i=WebAssembly.validate(e)?A:t,I,o=WebAssembly.instantiate(C(i),{}).then(function(d){I=d.instance,I.exports.__wasm_call_ctors()});function C(d){for(var u=new Uint8Array(d.length),p=0;p<d.length;++p){var D=d.charCodeAt(p);u[p]=D>96?D-97:D>64?D-39:D+4}for(var y=0,p=0;p<d.length;++p)u[y++]=u[p]<60?g[u[p]]:(u[p]-60)*64+u[++p];return u.buffer.slice(0,y)}function s(d,u,p,D,y,k){var F=I.exports.sbrk,S=p+3&-4,U=F(S*D),M=F(y.length),Y=new Uint8Array(I.exports.memory.buffer);Y.set(y,M);var O=d(U,p,D,M,y.length);if(O==0&&k&&k(U,S,D),u.set(Y.subarray(U,U+p*D)),F(U-F(0)),O!=0)throw new Error("Malformed buffer data: "+O)}var a={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},n={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},B=[],Q=0;function E(d){var u={object:new Worker(d),pending:0,requests:{}};return u.object.onmessage=function(p){var D=p.data;u.pending-=D.count,u.requests[D.id][D.action](D.value),delete u.requests[D.id]},u}function h(d){for(var u="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(C(i))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+s.toString()+l.toString(),p=new Blob([u],{type:"text/javascript"}),D=URL.createObjectURL(p),y=0;y<d;++y)B[y]=E(D);URL.revokeObjectURL(D)}function c(d,u,p,D,y){for(var k=B[0],F=1;F<B.length;++F)B[F].pending<k.pending&&(k=B[F]);return new Promise(function(S,U){var M=new Uint8Array(p),Y=Q++;k.pending+=d,k.requests[Y]={resolve:S,reject:U},k.object.postMessage({id:Y,count:d,size:u,source:M,mode:D,filter:y},[M.buffer])})}function l(d){o.then(function(){var u=d.data;try{var p=new Uint8Array(u.count*u.size);s(I.exports[u.mode],p,u.count,u.size,u.source,I.exports[u.filter]),self.postMessage({id:u.id,count:u.count,action:"resolve",value:p},[p.buffer])}catch(D){self.postMessage({id:u.id,count:u.count,action:"reject",value:D})}})}return{ready:o,supported:!0,useWorkers:function(d){h(d)},decodeVertexBuffer:function(d,u,p,D,y){s(I.exports.meshopt_decodeVertexBuffer,d,u,p,D,I.exports[a[y]])},decodeIndexBuffer:function(d,u,p,D){s(I.exports.meshopt_decodeIndexBuffer,d,u,p,D)},decodeIndexSequence:function(d,u,p,D){s(I.exports.meshopt_decodeIndexSequence,d,u,p,D)},decodeGltfBuffer:function(d,u,p,D,y,k){s(I.exports[n[y]],d,u,p,D,I.exports[a[k]])},decodeGltfBufferAsync:function(d,u,p,D,y){return B.length>0?c(d,u,p,n[D],a[y]):o.then(function(){var k=new Uint8Array(d*u);return s(I.exports[n[D]],k,d,u,p,I.exports[a[y]]),k})}}}();const oQ=aA("debugdecoders"),tL="https://www.gstatic.com/draco/versioned/decoders/1.4.1/",gL="https://www.gstatic.com/basis-universal/versioned/2021-04-15-ba1c3e4/";let qo,cG,La;function iL(t){t!==void 0&&typeof t=="string"&&(qo||(qo=new IG),oQ&&console.log("Setting draco decoder path to",t),qo.setDecoderPath(t))}function IL(t){t!==void 0&&typeof t=="string"&&(qo||(qo=new IG),oQ&&console.log("Setting draco decoder type to",t),qo.setDecoderConfig({type:t}))}function oL(t){t!==void 0&&typeof t=="string"&&(La||(La=new Xo),oQ&&console.log("Setting ktx2 transcoder path to",t),La.setTranscoderPath(t))}function Qc(t,A){qo||(qo=new IG,qo.setDecoderPath(tL),qo.setDecoderConfig({type:"js"}),oQ&&console.log("Setting draco decoder path to",tL)),La||(La=new Xo,La.setTranscoderPath(gL),oQ&&console.log("Setting ktx2 transcoder path to",gL),A.renderer&&La.detectSupport(A.renderer)),cG||(cG=n9,oQ&&console.log("Using the default meshopt decoder")),t.setDRACOLoader(qo),t.setKTX2Loader(La),t.setMeshoptDecoder(cG)}class CQ extends ci{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.animationPointerResolver=null,this.pluginCallbacks=[],this.register(function(e){return new h9(e)}),this.register(function(e){return new y9(e)}),this.register(function(e){return new S9(e)}),this.register(function(e){return new d9(e)}),this.register(function(e){return new p9(e)}),this.register(function(e){return new u9(e)}),this.register(function(e){return new D9(e)}),this.register(function(e){return new E9(e)}),this.register(function(e){return new w9(e)}),this.register(function(e){return new l9(e)}),this.register(function(e){return new B9(e)}),this.register(function(e){return new f9(e)}),this.register(function(e){return new k9(e)}),this.register(function(e){return new c9(e)})}load(A,e,g,i){const I=this;let o;this.resourcePath!==""?o=this.resourcePath:this.path!==""?o=this.path:o=tC.extractUrlBase(A),this.manager.itemStart(A);const C=function(a){i?i(a):console.error(a),I.manager.itemError(A),I.manager.itemEnd(A)},s=new Ng(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(A,function(a){try{I.parse(a,o,function(n){e(n),I.manager.itemEnd(A)},C)}catch(n){C(n)}},g,C)}setDRACOLoader(A){return this.dracoLoader=A,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}setAnimationPointerResolver(A){return this.animationPointerResolver=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,e,g,i){let I;const o={},C={};if(typeof A=="string")I=JSON.parse(A);else if(A instanceof ArrayBuffer)if(tC.decodeText(new Uint8Array(A,0,4))===sL){try{o[Ye.KHR_BINARY_GLTF]=new G9(A)}catch(a){i&&i(a);return}I=JSON.parse(o[Ye.KHR_BINARY_GLTF].content)}else I=JSON.parse(tC.decodeText(new Uint8Array(A)));else I=A;if(I.asset===void 0||I.asset.version[0]<2){i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const s=new b9(I,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder,animationPointerResolver:this.animationPointerResolver});s.fileLoader.setRequestHeader(this.requestHeader);for(let a=0;a<this.pluginCallbacks.length;a++){const n=this.pluginCallbacks[a](s);C[n.name]=n,o[n.name]=!0}if(I.extensionsUsed)for(let a=0;a<I.extensionsUsed.length;++a){const n=I.extensionsUsed[a],B=I.extensionsRequired||[];switch(n){case Ye.KHR_MATERIALS_UNLIT:o[n]=new Q9;break;case Ye.KHR_DRACO_MESH_COMPRESSION:o[n]=new m9(I,this.dracoLoader);break;case Ye.KHR_TEXTURE_TRANSFORM:o[n]=new M9;break;case Ye.KHR_MESH_QUANTIZATION:o[n]=new R9;break;default:B.indexOf(n)>=0&&C[n]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+n+'".')}}s.setExtensions(o),s.setPlugins(C),s.parse(g,i)}parseAsync(A,e){const g=this;return new Promise(function(i,I){g.parse(A,e,i,I)})}}function r9(){let t={};return{get:function(A){return t[A]},add:function(A,e){t[A]=e},remove:function(A){delete t[A]},removeAll:function(){t={}}}}const Ye={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_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_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",KHR_ANIMATION_POINTER:"KHR_animation_pointer",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class B9{constructor(A){this.parser=A,this.name=Ye.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,e=this.parser.json.nodes||[];for(let g=0,i=e.length;g<i;g++){const I=e[g];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 e=this.parser,g="light:"+A;let i=e.cache.get(g);if(i)return i;const I=e.json,o=((I.extensions&&I.extensions[this.name]||{}).lights||[])[A];let C;const s=new SA(16777215);o.color!==void 0&&s.fromArray(o.color);const a=o.range!==void 0?o.range:0;switch(o.type){case"directional":C=new jp(s),C.target.position.set(0,0,-1),C.add(C.target);break;case"point":C=new Pp(s),C.distance=a;break;case"spot":C=new _p(s),C.distance=a,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,C.angle=o.spot.outerConeAngle,C.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,C.target.position.set(0,0,-1),C.add(C.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return C.position.set(0,0,0),C.decay=2,Ya(C,o),o.intensity!==void 0&&(C.intensity=o.intensity),C.name=e.createUniqueName(o.name||"light_"+A),i=Promise.resolve(C),e.cache.add(g,i),i}getDependency(A,e){if(A==="light")return this._loadLight(e)}createNodeAttachment(A){const e=this,g=this.parser,i=g.json.nodes[A],I=(i.extensions&&i.extensions[this.name]||{}).light;return I===void 0?null:this._loadLight(I).then(function(o){return g._getNodeRef(e.cache,I,o)})}}let Q9=class{constructor(){this.name=Ye.KHR_MATERIALS_UNLIT}getMaterialType(){return dt}extendParams(t,A,e){const g=[];t.color=new SA(1,1,1),t.opacity=1;const i=A.pbrMetallicRoughness;if(i){if(Array.isArray(i.baseColorFactor)){const I=i.baseColorFactor;t.color.fromArray(I),t.opacity=I[3]}i.baseColorTexture!==void 0&&g.push(e.assignTexture(t,"map",i.baseColorTexture,De))}return Promise.all(g)}};class E9{constructor(A){this.parser=A,this.name=Ye.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,e){const g=this.parser.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=g.extensions[this.name].emissiveStrength;return i!==void 0&&(e.emissiveIntensity=i),Promise.resolve()}}let h9=class{constructor(t){this.parser=t,this.name=Ye.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){const A=this.parser.json.materials[t];return!A.extensions||!A.extensions[this.name]?null:AC}extendMaterialParams(t,A){const e=this.parser,g=e.json.materials[t];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 o=I.clearcoatNormalTexture.scale;A.clearcoatNormalScale=new W(o,o)}return Promise.all(i)}};const CL=Oe.findNode;class c9{constructor(A){r(this,"ANIMATION_TARGET_TYPE",{node:"node",material:"material",camera:"camera",light:"light"}),r(this,"_havePatchedPropertyBindings",!1),this.parser=A,this.name=Ye.KHR_ANIMATION_POINTER}_patchPropertyBindingFindNode(){this._havePatchedPropertyBindings||(this._havePatchedPropertyBindings=!0,Oe.findNode=function(A,e){if(e.startsWith(".materials.")){const g=e.substring(11).substring(e.indexOf(".")),i=g.indexOf("."),I=i<0?g:g.substring(0,i);let o=null;return A.traverse(C=>{var s,a;o!==null||C.type!=="Mesh"||(((s=C.material)==null?void 0:s.uuid)===I||((a=C.material)==null?void 0:a.name)===I)&&(o=C.material,o!==null&&(g.endsWith(".map")?o=o.map:g.endsWith(".emissiveMap")&&(o=o.emissiveMap)))}),o}else if(e.startsWith(".nodes.")||e.startsWith(".lights.")||e.startsWith(".cameras.")){const g=e.split(".");let i;for(let I=1;I<g.length;I++){const o=g[I];if(o.length==36)i=A.getObjectByProperty("uuid",o);else if(i&&i[o]){const C=Number.parseInt(o);let s=o;C>=0&&(s=C),i=i[s]}else{const C=A.getObjectByName(o);C&&(i=C)}}if(!i){const I=CL(A,g[2]);return I||console.warn(Ye.KHR_ANIMATION_POINTER+": Property binding not found",e,A,A.name,g),I}return i}return CL(A,e)})}loadAnimationTargetFromChannel(A){this._havePatchedPropertyBindings||this._patchPropertyBindingFindNode();const e=A.target,g=e.extensions&&e.extensions[Ye.KHR_ANIMATION_POINTER]&&e.path&&e.path==="pointer";if(!g)return null;let i,I=this.ANIMATION_TARGET_TYPE.node,o;if(g){const s=e.extensions[Ye.KHR_ANIMATION_POINTER];let a=s.pointer;if(this._animationPointerDebug&&console.log("Original path: "+a,e),!a){console.warn("Invalid path",s,e);return}if(a.startsWith("/materials/")?I=this.ANIMATION_TARGET_TYPE.material:a.startsWith("/extensions/KHR_lights_punctual/lights/")?I=this.ANIMATION_TARGET_TYPE.light:a.startsWith("/cameras/")&&(I=this.ANIMATION_TARGET_TYPE.camera),o=this._tryResolveTargetId(a,I),o===null||isNaN(o)){console.warn("Failed resolving animation node id: "+o,a);return}else this._animationPointerDebug&&console.log("Resolved node ID for "+I,o);switch(I){case this.ANIMATION_TARGET_TYPE.material:const B=("/materials/"+o.toString()+"/").length,Q=a.substring(0,B);switch(i=a.substring(B),i){case"pbrMetallicRoughness/baseColorFactor":i="color";break;case"pbrMetallicRoughness/roughnessFactor":i="roughness";break;case"pbrMetallicRoughness/metallicFactor":i="metalness";break;case"emissiveFactor":i="emissive";break;case"alphaCutoff":i="alphaTest";break;case"occlusionTexture/strength":i="aoMapIntensity";break;case"normalTexture/scale":i="normalScale";break;case"pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/scale":i="map/repeat";break;case"pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/offset":i="map/offset";break;case"emissiveTexture/extensions/KHR_texture_transform/scale":i="emissiveMap/repeat";break;case"emissiveTexture/extensions/KHR_texture_transform/offset":i="emissiveMap/offset";break;case"extensions/KHR_materials_emissive_strength/emissiveStrength":i="emissiveIntensity";break;case"extensions/KHR_materials_transmission/transmissionFactor":i="transmission";break;case"extensions/KHR_materials_ior/ior":i="ior";break;case"extensions/KHR_materials_volume/thicknessFactor":i="thickness";break;case"extensions/KHR_materials_volume/attenuationColor":i="attenuationColor";break;case"extensions/KHR_materials_volume/attenuationDistance":i="attenuationDistance";break;case"extensions/KHR_materials_iridescence/iridescenceFactor":i="iridescence";break;case"extensions/KHR_materials_iridescence/iridescenceIor":i="iridescenceIOR";break;case"extensions/KHR_materials_iridescence/iridescenceThicknessMinimum":i="iridescenceThicknessRange[0]";break;case"extensions/KHR_materials_iridescence/iridescenceThicknessMaximum":i="iridescenceThicknessRange[1]";break;case"extensions/KHR_materials_clearcoat/clearcoatFactor":i="clearcoat";break;case"extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor":i="clearcoatRoughness";break;case"extensions/KHR_materials_sheen/sheenColorFactor":i="sheenColor";break;case"extensions/KHR_materials_sheen/sheenRoughnessFactor":i="sheenRoughness";break;case"extensions/KHR_materials_specular/specularFactor":i="specularIntensity";break;case"extensions/KHR_materials_specular/specularColorFactor":i="specularColor";break}a=Q+i,this._animationPointerDebug&&console.log("PROPERTY PATH",Q,i,a);break;case this.ANIMATION_TARGET_TYPE.node:const E=("/nodes/"+o.toString()+"/").length,h=a.substring(0,E);switch(i=a.substring(E),i){case"translation":i="position";break;case"rotation":i="quaternion";break;case"scale":i="scale";break;case"weights":i="morphTargetInfluences";break}a=h+i;break;case this.ANIMATION_TARGET_TYPE.light:const c=("/extensions/KHR_lights_punctual/lights/"+o.toString()+"/").length;switch(i=a.substring(c),i){case"color":break;case"intensity":break;case"spot/innerConeAngle":i="penumbra";break;case"spot/outerConeAngle":i="angle";break;case"range":i="distance";break}a="/lights/"+o.toString()+"/"+i;break;case this.ANIMATION_TARGET_TYPE.camera:const l=("/cameras/"+o.toString()+"/").length,d=a.substring(0,l);switch(i=a.substring(l),i){case"perspective/yfov":i="fov";break;case"perspective/znear":case"orthographic/znear":i="near";break;case"perspective/zfar":case"orthographic/zfar":i="far";break;case"perspective/aspect":i="aspect";break;case"orthographic/xmag":i="zoom";break;case"orthographic/ymag":i="zoom";break}a=d+i;break}const n=this.parser.options.animationPointerResolver;n&&n.resolvePath&&(a=n.resolvePath(a)),e.extensions[Ye.KHR_ANIMATION_POINTER].pointer=a}if(o===null||isNaN(o)){console.warn("Failed resolving animation node id: "+o,e);return}let C;return I===this.ANIMATION_TARGET_TYPE.node?C=this.parser.getDependency("node",o):I===this.ANIMATION_TARGET_TYPE.material?C=this.parser.getDependency("material",o):I===this.ANIMATION_TARGET_TYPE.light?C=this.parser.getDependency("light",o):I===this.ANIMATION_TARGET_TYPE.camera?C=this.parser.getDependency("camera",o):console.error("Unhandled type",I),C}createAnimationTracks(A,e,g,i,I){if(!(I.extensions&&I.extensions[Ye.KHR_ANIMATION_POINTER]&&I.path&&I.path==="pointer"))return null;let o=I.extensions[Ye.KHR_ANIMATION_POINTER].pointer;if(!o)return null;const C=[];o=o.replaceAll("/",".");const s=o.split(".");s[2]=A.name??A.uuid,o=s.join("."),this._animationPointerDebug&&console.log(A,e,g,I,o);let a;switch(g.itemSize){case 1:a=fa;break;case 2:case 3:a=ka;break;case 4:o.endsWith(".quaternion")?a=eC:a=Rh;break}const n=i.interpolation!==void 0?QL[i.interpolation]:ZC;let B=hL(g);o.endsWith(".fov")&&(B=B.map(E=>E/Math.PI*180));const Q=new a(o,e.array,B,n);if(n==="CUBICSPLINE"&&DG(Q),C.push(Q),o&&g.itemSize===4&&o.startsWith(".materials.")&&o.endsWith(".color")){const E=new Float32Array(B.length/4);for(let c=0,l=B.length/4;c<l;c+=1)E[c]=B[c*4+3];const h=new a(o.replace(".color",".opacity"),e.array,E,n);n==="CUBICSPLINE"&&DG(Q),C.push(h)}return C}_tryResolveTargetId(A,e){let g="";return e==="node"?g=A.substring(7):e==="material"?g=A.substring(11):e==="light"?g=A.substring(39):e==="camera"&&(g=A.substring(9)),g=g.substring(0,g.indexOf("/")),Number.parseInt(g)}}let l9=class{constructor(t){this.parser=t,this.name=Ye.KHR_MATERIALS_IRIDESCENCE}getMaterialType(t){const A=this.parser.json.materials[t];return!A.extensions||!A.extensions[this.name]?null:AC}extendMaterialParams(t,A){const e=this.parser,g=e.json.materials[t];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 d9{constructor(A){this.parser=A,this.name=Ye.KHR_MATERIALS_SHEEN}getMaterialType(A){const e=this.parser.json.materials[A];return!e.extensions||!e.extensions[this.name]?null:AC}extendMaterialParams(A,e){const g=this.parser,i=g.json.materials[A];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const I=[];e.sheenColor=new SA(0,0,0),e.sheenRoughness=0,e.sheen=1;const o=i.extensions[this.name];return o.sheenColorFactor!==void 0&&e.sheenColor.fromArray(o.sheenColorFactor),o.sheenRoughnessFactor!==void 0&&(e.sheenRoughness=o.sheenRoughnessFactor),o.sheenColorTexture!==void 0&&I.push(g.assignTexture(e,"sheenColorMap",o.sheenColorTexture,De)),o.sheenRoughnessTexture!==void 0&&I.push(g.assignTexture(e,"sheenRoughnessMap",o.sheenRoughnessTexture)),Promise.all(I)}}let p9=class{constructor(t){this.parser=t,this.name=Ye.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){const A=this.parser.json.materials[t];return!A.extensions||!A.extensions[this.name]?null:AC}extendMaterialParams(t,A){const e=this.parser,g=e.json.materials[t];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)}},u9=class{constructor(t){this.parser=t,this.name=Ye.KHR_MATERIALS_VOLUME}getMaterialType(t){const A=this.parser.json.materials[t];return!A.extensions||!A.extensions[this.name]?null:AC}extendMaterialParams(t,A){const e=this.parser,g=e.json.materials[t];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 o=I.attenuationColor||[1,1,1];return A.attenuationColor=new SA(o[0],o[1],o[2]),Promise.all(i)}};class D9{constructor(A){this.parser=A,this.name=Ye.KHR_MATERIALS_IOR}getMaterialType(A){const e=this.parser.json.materials[A];return!e.extensions||!e.extensions[this.name]?null:AC}extendMaterialParams(A,e){const g=this.parser.json.materials[A];if(!g.extensions||!g.extensions[this.name])return Promise.resolve();const i=g.extensions[this.name];return e.ior=i.ior!==void 0?i.ior:1.5,Promise.resolve()}}class w9{constructor(A){this.parser=A,this.name=Ye.KHR_MATERIALS_SPECULAR}getMaterialType(A){const e=this.parser.json.materials[A];return!e.extensions||!e.extensions[this.name]?null:AC}extendMaterialParams(A,e){const g=this.parser,i=g.json.materials[A];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const I=[],o=i.extensions[this.name];e.specularIntensity=o.specularFactor!==void 0?o.specularFactor:1,o.specularTexture!==void 0&&I.push(g.assignTexture(e,"specularIntensityMap",o.specularTexture));const C=o.specularColorFactor||[1,1,1];return e.specularColor=new SA(C[0],C[1],C[2]),o.specularColorTexture!==void 0&&I.push(g.assignTexture(e,"specularColorMap",o.specularColorTexture,De)),Promise.all(I)}}class y9{constructor(A){this.parser=A,this.name=Ye.KHR_TEXTURE_BASISU}loadTexture(A){const e=this.parser,g=e.json,i=g.textures[A];if(!i.extensions||!i.extensions[this.name])return null;const I=i.extensions[this.name],o=e.options.ktx2Loader;if(!o){if(g.extensionsRequired&&g.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(A,I.source,o)}}class S9{constructor(A){this.parser=A,this.name=Ye.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(A){const e=this.name,g=this.parser,i=g.json,I=i.textures[A];if(!I.extensions||!I.extensions[e])return null;const o=I.extensions[e],C=i.images[o.source];let s=g.textureLoader;if(C.uri){const a=g.options.manager.getHandler(C.uri);a!==null&&(s=a)}return this.detectSupport().then(function(a){if(a)return g.loadTextureImage(A,o.source,s);if(i.extensionsRequired&&i.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return g.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){A(e.height===1)}})),this.isSupported}}class f9{constructor(A){this.name=Ye.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const e=this.parser.json,g=e.bufferViews[A];if(g.extensions&&g.extensions[this.name]){const i=g.extensions[this.name],I=this.parser.getDependency("buffer",i.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return I.then(function(C){const s=i.byteOffset||0,a=i.byteLength||0,n=i.count,B=i.byteStride,Q=new Uint8Array(C,s,a);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(n,B,Q,i.mode,i.filter).then(function(E){return E.buffer}):o.ready.then(function(){const E=new ArrayBuffer(n*B);return o.decodeGltfBuffer(new Uint8Array(E),n,B,Q,i.mode,i.filter),E})})}else return null}}class k9{constructor(A){this.name=Ye.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const e=this.parser.json,g=e.nodes[A];if(!g.extensions||!g.extensions[this.name]||g.mesh===void 0)return null;const i=e.meshes[g.mesh];for(const s of i.primitives)if(s.mode!==$I.TRIANGLES&&s.mode!==$I.TRIANGLE_STRIP&&s.mode!==$I.TRIANGLE_FAN&&s.mode!==void 0)return null;const I=g.extensions[this.name].attributes,o=[],C={};for(const s in I)o.push(this.parser.getDependency("accessor",I[s]).then(a=>(C[s]=a,C[s])));return o.length<1?null:(o.push(this.parser.createNodeMesh(A)),Promise.all(o).then(s=>{const a=s.pop(),n=a.isGroup?a.children:[a],B=s[0].count,Q=[];for(const E of n){const h=new KA,c=new f,l=new mA,d=new f(1,1,1),u=new Mp(E.geometry,E.material,B);for(let p=0;p<B;p++)C.TRANSLATION&&c.fromBufferAttribute(C.TRANSLATION,p),C.ROTATION&&l.fromBufferAttribute(C.ROTATION,p),C.SCALE&&d.fromBufferAttribute(C.SCALE,p),u.setMatrixAt(p,h.compose(c,l,d));for(const p in C)p!=="TRANSLATION"&&p!=="ROTATION"&&p!=="SCALE"&&E.geometry.setAttribute(p,C[p]);UA.prototype.copy.call(u,E),u.frustumCulled=!1,this.parser.assignFinalMaterial(u),Q.push(u)}return a.isGroup?(a.clear(),a.add(...Q),a):Q[0]}))}}const sL="glTF",Ec=12,aL={JSON:1313821514,BIN:5130562};class G9{constructor(A){this.name=Ye.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(A,0,Ec);if(this.header={magic:tC.decodeText(new Uint8Array(A.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==sL)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-Ec,i=new DataView(A,Ec);let I=0;for(;I<g;){const o=i.getUint32(I,!0);I+=4;const C=i.getUint32(I,!0);if(I+=4,C===aL.JSON){const s=new Uint8Array(A,Ec+I,o);this.content=tC.decodeText(s)}else if(C===aL.BIN){const s=Ec+I;this.body=A.slice(s,s+o)}I+=o}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class m9{constructor(A,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=Ye.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(A,e){const g=this.json,i=this.dracoLoader,I=A.extensions[this.name].bufferView,o=A.extensions[this.name].attributes,C={},s={},a={};for(const n in o){const B=dG[n]||n.toLowerCase();C[B]=o[n]}for(const n in A.attributes){const B=dG[n]||n.toLowerCase();if(o[n]!==void 0){const Q=g.accessors[A.attributes[n]],E=sQ[Q.componentType];a[B]=E.name,s[B]=Q.normalized===!0}}return e.getDependency("bufferView",I).then(function(n){return new Promise(function(B){i.decodeDracoFile(n,function(Q){for(const E in Q.attributes){const h=Q.attributes[E],c=s[E];c!==void 0&&(h.normalized=c)}B(Q)},C,a)})})}}class M9{constructor(){this.name=Ye.KHR_TEXTURE_TRANSFORM}extendTexture(A,e){return e.texCoord!==void 0&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),e.offset===void 0&&e.rotation===void 0&&e.scale===void 0||(A=A.clone(),e.offset!==void 0&&A.offset.fromArray(e.offset),e.rotation!==void 0&&(A.rotation=e.rotation),e.scale!==void 0&&A.repeat.fromArray(e.scale),A.needsUpdate=!0),A}}class R9{constructor(){this.name=Ye.KHR_MESH_QUANTIZATION}}class nL extends HB{constructor(A,e,g,i){super(A,e,g,i)}copySampleValue_(A){const e=this.resultBuffer,g=this.sampleValues,i=this.valueSize,I=A*i*3+i;for(let o=0;o!==i;o++)e[o]=g[I+o];return e}interpolate_(A,e,g,i){const I=this.resultBuffer,o=this.sampleValues,C=this.valueSize,s=C*2,a=C*3,n=i-e,B=(g-e)/n,Q=B*B,E=Q*B,h=A*a,c=h-a,l=-2*E+3*Q,d=E-Q,u=1-l,p=d-Q+B;for(let D=0;D!==C;D++){const y=o[c+D+C],k=o[c+D+s]*n,F=o[h+D+C],S=o[h+D]*n;I[D]=u*y+p*k+l*F+d*S}return I}}const U9=new mA;class F9 extends nL{interpolate_(A,e,g,i){const I=super.interpolate_(A,e,g,i);return U9.fromArray(I).normalize().toArray(I),I}}const $I={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},sQ={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},rL={9728:Ve,9729:Ke,9984:EB,9985:Ah,9986:hB,9987:So},BL={33071:Yg,33648:VC,10497:eI},lG={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},dG={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},xa={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},QL={CUBICSPLINE:void 0,LINEAR:ZC,STEP:Ln},pG={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function N9(t){return t.DefaultMaterial===void 0&&(t.DefaultMaterial=new Cs({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:Fi})),t.DefaultMaterial}function hc(t,A,e){for(const g in e.extensions)t[g]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[g]=e.extensions[g])}function Ya(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 K9(t,A,e){let g=!1,i=!1,I=!1;for(let a=0,n=A.length;a<n;a++){const B=A[a];if(B.POSITION!==void 0&&(g=!0),B.NORMAL!==void 0&&(i=!0),B.COLOR_0!==void 0&&(I=!0),g&&i&&I)break}if(!g&&!i&&!I)return Promise.resolve(t);const o=[],C=[],s=[];for(let a=0,n=A.length;a<n;a++){const B=A[a];if(g){const Q=B.POSITION!==void 0?e.getDependency("accessor",B.POSITION):t.attributes.position;o.push(Q)}if(i){const Q=B.NORMAL!==void 0?e.getDependency("accessor",B.NORMAL):t.attributes.normal;C.push(Q)}if(I){const Q=B.COLOR_0!==void 0?e.getDependency("accessor",B.COLOR_0):t.attributes.color;s.push(Q)}}return Promise.all([Promise.all(o),Promise.all(C),Promise.all(s)]).then(function(a){const n=a[0],B=a[1],Q=a[2];return g&&(t.morphAttributes.position=n),i&&(t.morphAttributes.normal=B),I&&(t.morphAttributes.color=Q),t.morphTargetsRelative=!0,t})}function J9(t,A){if(t.updateMorphTargets(),A.weights!==void 0)for(let e=0,g=A.weights.length;e<g;e++)t.morphTargetInfluences[e]=A.weights[e];if(A.extras&&Array.isArray(A.extras.targetNames)){const e=A.extras.targetNames;if(t.morphTargetInfluences.length===e.length){t.morphTargetDictionary={};for(let g=0,i=e.length;g<i;g++)t.morphTargetDictionary[e[g]]=g}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function q9(t){const A=t.extensions&&t.extensions[Ye.KHR_DRACO_MESH_COMPRESSION];let e;return A?e="draco:"+A.bufferView+":"+A.indices+":"+EL(A.attributes):e=t.indices+":"+EL(t.attributes)+":"+t.mode,e}function EL(t){let A="";const e=Object.keys(t).sort();for(let g=0,i=e.length;g<i;g++)A+=e[g]+":"+t[e[g]]+";";return A}function uG(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.")}}function hL(t){let A=t.array;if(t.normalized){const e=uG(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}function DG(t){t.createInterpolant=function(A){const e=this instanceof eC?F9:nL;return new e(this.times,this.values,this.getValueSize()/3,A)},t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}function v9(t){return t.search(/\.jpe?g($|\?)/i)>0||t.search(/^data\:image\/jpeg/)===0?"image/jpeg":t.search(/\.webp($|\?)/i)>0||t.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}class b9{constructor(A={},e={}){this.json=A,this.extensions={},this.plugins={},this.options=e,this.cache=new r9,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let g=!1,i=!1,I=-1;typeof navigator<"u"&&(g=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,i=navigator.userAgent.indexOf("Firefox")>-1,I=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||g||i&&I<98?this.textureLoader=new Ga(this.options.manager):this.textureLoader=new YK(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Ng(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,e){const g=this,i=this.json,I=this.extensions;this.cache.removeAll(),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([g.getDependencies("scene"),g.getDependencies("animation"),g.getDependencies("camera")])}).then(function(o){const C={scene:o[0][i.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:i.asset,parser:g,userData:{}};hc(I,C,i),Ya(C,i),Promise.all(g._invokeAll(function(s){return s.afterRoot&&s.afterRoot(C)})).then(function(){A(C)})}).catch(e)}_markDefs(){const A=this.json.nodes||[],e=this.json.skins||[],g=this.json.meshes||[];for(let i=0,I=e.length;i<I;i++){const o=e[i].joints;for(let C=0,s=o.length;C<s;C++)A[o[C]].isBone=!0}for(let i=0,I=A.length;i<I;i++){const o=A[i];o.mesh!==void 0&&(this._addNodeRef(this.meshCache,o.mesh),o.skin!==void 0&&(g[o.mesh].isSkinnedMesh=!0)),o.camera!==void 0&&this._addNodeRef(this.cameraCache,o.camera)}}_addNodeRef(A,e){e!==void 0&&(A.refs[e]===void 0&&(A.refs[e]=A.uses[e]=0),A.refs[e]++)}_getNodeRef(A,e,g){if(A.refs[e]<=1)return g;const i=g.clone(),I=(o,C)=>{const s=this.associations.get(o);s!=null&&this.associations.set(C,s);for(const[a,n]of o.children.entries())I(n,C.children[a])};return I(g,i),i.name+="_instance_"+A.uses[e]++,i}_invokeOne(A){const e=Object.values(this.plugins);e.push(this);for(let g=0;g<e.length;g++){const i=A(e[g]);if(i)return i}return null}_invokeAll(A){const e=Object.values(this.plugins);e.unshift(this);const g=[];for(let i=0;i<e.length;i++){const I=A(e[i]);I&&g.push(I)}return g}getDependency(A,e){const g=A+":"+e;let i=this.cache.get(g);if(!i){switch(A){case"scene":i=this.loadScene(e);break;case"node":i=this.loadNode(e);break;case"mesh":i=this._invokeOne(function(I){return I.loadMesh&&I.loadMesh(e)});break;case"accessor":i=this.loadAccessor(e);break;case"bufferView":i=this._invokeOne(function(I){return I.loadBufferView&&I.loadBufferView(e)});break;case"buffer":i=this.loadBuffer(e);break;case"material":i=this._invokeOne(function(I){return I.loadMaterial&&I.loadMaterial(e)});break;case"texture":i=this._invokeOne(function(I){return I.loadTexture&&I.loadTexture(e)});break;case"skin":i=this.loadSkin(e);break;case"animation":i=this._invokeOne(function(I){return I.loadAnimation&&I.loadAnimation(e)});break;case"camera":i=this.loadCamera(e);break;case"light":i=this._invokeOne(function(I){return I._loadLight&&I._loadLight(e)});break;default:if(i=this._invokeOne(function(I){return I!=this&&I.getDependency&&I.getDependency(A,e)}),!i)throw new Error("Unknown type: "+A);break}this.cache.add(g,i)}return i}getDependencies(A){let e=this.cache.get(A);if(!e){const g=this,i=this.json[A+(A==="mesh"?"es":"s")]||[];e=Promise.all(i.map(function(I,o){return g.getDependency(A,o)})),this.cache.add(A,e)}return e}loadBuffer(A){const e=this.json.buffers[A],g=this.fileLoader;if(e.type&&e.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(e.uri===void 0&&A===0)return Promise.resolve(this.extensions[Ye.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(I,o){g.load(tC.resolveURL(e.uri,i.path),I,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(A){const e=this.json.bufferViews[A];return this.getDependency("buffer",e.buffer).then(function(g){const i=e.byteLength||0,I=e.byteOffset||0;return g.slice(I,I+i)})}loadAccessor(A){const e=this,g=this.json,i=this.json.accessors[A];if(i.bufferView===void 0&&i.sparse===void 0){const o=lG[i.type],C=sQ[i.componentType],s=i.normalized===!0,a=new C(i.count*o);return Promise.resolve(new ge(a,o,s))}const I=[];return i.bufferView!==void 0?I.push(this.getDependency("bufferView",i.bufferView)):I.push(null),i.sparse!==void 0&&(I.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),I.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(I).then(function(o){const C=o[0],s=lG[i.type],a=sQ[i.componentType],n=a.BYTES_PER_ELEMENT,B=n*s,Q=i.byteOffset||0,E=i.bufferView!==void 0?g.bufferViews[i.bufferView].byteStride:void 0,h=i.normalized===!0;let c,l;if(E&&E!==B){const d=Math.floor(Q/E),u="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+d+":"+i.count;let p=e.cache.get(u);p||(c=new a(C,d*E,i.count*E/n),p=new dh(c,E/n),e.cache.add(u,p)),l=new Aa(p,s,Q%E/n,h)}else C===null?c=new a(i.count*s):c=new a(C,Q,i.count*s),l=new ge(c,s,h);if(i.sparse!==void 0){const d=lG.SCALAR,u=sQ[i.sparse.indices.componentType],p=i.sparse.indices.byteOffset||0,D=i.sparse.values.byteOffset||0,y=new u(o[1],p,i.sparse.count*d),k=new a(o[2],D,i.sparse.count*s);C!==null&&(l=new ge(l.array.slice(),l.itemSize,l.normalized));for(let F=0,S=y.length;F<S;F++){const U=y[F];if(l.setX(U,k[F*s]),s>=2&&l.setY(U,k[F*s+1]),s>=3&&l.setZ(U,k[F*s+2]),s>=4&&l.setW(U,k[F*s+3]),s>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return l})}loadTexture(A){const e=this.json,g=this.options,i=e.textures[A].source,I=e.images[i];let o=this.textureLoader;if(I.uri){const C=g.manager.getHandler(I.uri);C!==null&&(o=C)}return this.loadTextureImage(A,i,o)}loadTextureImage(A,e,g){const i=this,I=this.json,o=I.textures[A],C=I.images[e],s=(C.uri||C.bufferView)+":"+o.sampler;if(this.textureCache[s])return this.textureCache[s];const a=this.loadImageSource(e,g).then(function(n){n.flipY=!1,n.name=o.name||C.name||"";const B=(I.samplers||{})[o.sampler]||{};return n.magFilter=rL[B.magFilter]||Ke,n.minFilter=rL[B.minFilter]||So,n.wrapS=BL[B.wrapS]||eI,n.wrapT=BL[B.wrapT]||eI,n.anisotropy=4,i.associations.set(n,{textures:A}),n}).catch(function(){return null});return this.textureCache[s]=a,a}loadImageSource(A,e){const g=this,i=this.json,I=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(B=>B.clone());const o=i.images[A],C=self.URL||self.webkitURL;let s=o.uri||"",a=!1;if(o.bufferView!==void 0)s=g.getDependency("bufferView",o.bufferView).then(function(B){a=!0;const Q=new Blob([B],{type:o.mimeType});return s=C.createObjectURL(Q),s});else if(o.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const n=Promise.resolve(s).then(function(B){return new Promise(function(Q,E){let h=Q;e.isImageBitmapLoader===!0&&(h=function(c){const l=new Le(c);l.needsUpdate=!0,Q(l)}),e.load(tC.resolveURL(B,I.path),h,void 0,E)})}).then(function(B){return a===!0&&C.revokeObjectURL(s),B.userData.mimeType=o.mimeType||v9(o.uri),B}).catch(function(B){throw console.error("THREE.GLTFLoader: Couldn't load texture",s),B});return this.sourceCache[A]=n,n}assignTexture(A,e,g,i){const I=this;return this.getDependency("texture",g.index).then(function(o){if(g.texCoord!==void 0&&g.texCoord!=0&&!(e==="aoMap"&&g.texCoord==1)&&console.warn("THREE.GLTFLoader: Custom UV set "+g.texCoord+" for texture "+e+" not yet supported."),I.extensions[Ye.KHR_TEXTURE_TRANSFORM]){const C=g.extensions!==void 0?g.extensions[Ye.KHR_TEXTURE_TRANSFORM]:void 0;if(C){const s=I.associations.get(o);o=I.extensions[Ye.KHR_TEXTURE_TRANSFORM].extendTexture(o,C),I.associations.set(o,s)}}return i!==void 0&&o&&(o.encoding=i),A[e]=o,o})}assignFinalMaterial(A){const e=A.geometry;let g=A.material;const i=e.attributes.tangent===void 0,I=e.attributes.color!==void 0,o=e.attributes.normal===void 0;if(A.isPoints){const C="PointsMaterial:"+g.uuid;let s=this.cache.get(C);s||(s=new Up,Fe.prototype.copy.call(s,g),s.color.copy(g.color),s.map=g.map,s.sizeAttenuation=!1,this.cache.add(C,s)),g=s}else if(A.isLine){const C="LineBasicMaterial:"+g.uuid;let s=this.cache.get(C);s||(s=new Ag,Fe.prototype.copy.call(s,g),s.color.copy(g.color),this.cache.add(C,s)),g=s}if(i||I||o){let C="ClonedMaterial:"+g.uuid+":";i&&(C+="derivative-tangents:"),I&&(C+="vertex-colors:"),o&&(C+="flat-shading:");let s=this.cache.get(C);s||(s=g.clone(),I&&(s.vertexColors=!0),o&&(s.flatShading=!0),i&&(s.normalScale&&(s.normalScale.y*=-1),s.clearcoatNormalScale&&(s.clearcoatNormalScale.y*=-1)),this.cache.add(C,s),this.associations.set(s,this.associations.get(g))),g=s}g.aoMap&&e.attributes.uv2===void 0&&e.attributes.uv!==void 0&&e.setAttribute("uv2",e.attributes.uv),A.material=g}getMaterialType(){return Cs}loadMaterial(A){const e=this,g=this.json,i=this.extensions,I=g.materials[A];let o;const C={},s=I.extensions||{},a=[];if(s[Ye.KHR_MATERIALS_UNLIT]){const B=i[Ye.KHR_MATERIALS_UNLIT];o=B.getMaterialType(),a.push(B.extendParams(C,I,e))}else{const B=I.pbrMetallicRoughness||{};if(C.color=new SA(1,1,1),C.opacity=1,Array.isArray(B.baseColorFactor)){const Q=B.baseColorFactor;C.color.fromArray(Q),C.opacity=Q[3]}B.baseColorTexture!==void 0&&a.push(e.assignTexture(C,"map",B.baseColorTexture,De)),C.metalness=B.metallicFactor!==void 0?B.metallicFactor:1,C.roughness=B.roughnessFactor!==void 0?B.roughnessFactor:1,B.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(C,"metalnessMap",B.metallicRoughnessTexture)),a.push(e.assignTexture(C,"roughnessMap",B.metallicRoughnessTexture))),o=this._invokeOne(function(Q){return Q.getMaterialType&&Q.getMaterialType(A)}),a.push(Promise.all(this._invokeAll(function(Q){return Q.extendMaterialParams&&Q.extendMaterialParams(A,C)})))}I.doubleSided===!0&&(C.side=ft);const n=I.alphaMode||pG.OPAQUE;if(n===pG.BLEND?(C.transparent=!0,C.depthWrite=!1):(C.transparent=!1,n===pG.MASK&&(C.alphaTest=I.alphaCutoff!==void 0?I.alphaCutoff:.5)),I.normalTexture!==void 0&&o!==dt&&(a.push(e.assignTexture(C,"normalMap",I.normalTexture)),C.normalScale=new W(1,1),I.normalTexture.scale!==void 0)){const B=I.normalTexture.scale;C.normalScale.set(B,B)}return I.occlusionTexture!==void 0&&o!==dt&&(a.push(e.assignTexture(C,"aoMap",I.occlusionTexture)),I.occlusionTexture.strength!==void 0&&(C.aoMapIntensity=I.occlusionTexture.strength)),I.emissiveFactor!==void 0&&o!==dt&&(C.emissive=new SA().fromArray(I.emissiveFactor)),I.emissiveTexture!==void 0&&o!==dt&&a.push(e.assignTexture(C,"emissiveMap",I.emissiveTexture,De)),Promise.all(a).then(function(){const B=new o(C);return I.name&&(B.name=I.name),Ya(B,I),e.associations.set(B,{materials:A}),I.extensions&&hc(i,B,I),B})}createUniqueName(A){const e=Oe.sanitizeNodeName(A||"");let g=e;for(let i=1;this.nodeNamesUsed[g];++i)g=e+"_"+i;return this.nodeNamesUsed[g]=!0,g}loadGeometries(A){const e=this,g=this.extensions,i=this.primitiveCache;function I(C){return g[Ye.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(C,e).then(function(s){return lL(s,C,e)})}const o=[];for(let C=0,s=A.length;C<s;C++){const a=A[C],n=q9(a),B=i[n];if(B)o.push(B.promise);else{let Q;a.extensions&&a.extensions[Ye.KHR_DRACO_MESH_COMPRESSION]?Q=I(a):Q=lL(new de,a,e),i[n]={primitive:a,promise:Q},o.push(Q)}}return Promise.all(o)}loadMesh(A){const e=this,g=this.json,i=this.extensions,I=g.meshes[A],o=I.primitives,C=[];for(let s=0,a=o.length;s<a;s++){const n=o[s].material===void 0?N9(this.cache):this.getDependency("material",o[s].material);C.push(n)}return C.push(e.loadGeometries(o)),Promise.all(C).then(function(s){const a=s.slice(0,s.length-1),n=s[s.length-1],B=[];for(let E=0,h=n.length;E<h;E++){const c=n[E],l=o[E];let d;const u=a[E];if(l.mode===$I.TRIANGLES||l.mode===$I.TRIANGLE_STRIP||l.mode===$I.TRIANGLE_FAN||l.mode===void 0)d=I.isSkinnedMesh===!0?new xB(c,u):new DA(c,u),d.isSkinnedMesh===!0&&!d.geometry.attributes.skinWeight.normalized&&d.normalizeSkinWeights(),l.mode===$I.TRIANGLE_STRIP?d.geometry=dL(d.geometry,NF):l.mode===$I.TRIANGLE_FAN&&(d.geometry=dL(d.geometry,E0));else if(l.mode===$I.LINES)d=new fI(c,u);else if(l.mode===$I.LINE_STRIP)d=new eg(c,u);else if(l.mode===$I.LINE_LOOP)d=new of(c,u);else if(l.mode===$I.POINTS)d=new sf(c,u);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+l.mode);Object.keys(d.geometry.morphAttributes).length>0&&J9(d,I),d.name=e.createUniqueName(I.name||"mesh_"+A),Ya(d,I),l.extensions&&hc(i,d,l),e.assignFinalMaterial(d),B.push(d)}for(let E=0,h=B.length;E<h;E++)e.associations.set(B[E],{meshes:A,primitives:E});if(B.length===1)return B[0];const Q=new PI;e.associations.set(Q,{meshes:A});for(let E=0,h=B.length;E<h;E++)Q.add(B[E]);return Q})}loadCamera(A){let e;const g=this.json.cameras[A],i=g[g.type];if(!i){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return g.type==="perspective"?e=new $e(Ki.radToDeg(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):g.type==="orthographic"&&(e=new Wn(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),g.name&&(e.name=this.createUniqueName(g.name)),Ya(e,g),Promise.resolve(e)}loadSkin(A){const e=this.json.skins[A],g={joints:e.joints};return e.inverseBindMatrices===void 0?Promise.resolve(g):this.getDependency("accessor",e.inverseBindMatrices).then(function(i){return g.inverseBindMatrices=i,g})}loadAnimation(A){const e=this.json,g=this,i=e.animations[A],I=[],o=[],C=[],s=[],a=[];let n=0,B=i.channels.length;for(n=0,B=i.channels.length;n<B;n++){const Q=i.channels[n],E=i.samplers[Q.sampler],h=Q.target,c=i.parameters!==void 0?i.parameters[E.input]:E.input,l=i.parameters!==void 0?i.parameters[E.output]:E.output,d=g._invokeOne(function(u){return u.loadAnimationTargetFromChannel&&u.loadAnimationTargetFromChannel(Q)});I.push(d),o.push(this.getDependency("accessor",c)),C.push(this.getDependency("accessor",l)),s.push(E),a.push(h)}return Promise.all([Promise.all(I),Promise.all(o),Promise.all(C),Promise.all(s),Promise.all(a)]).then(function(Q){const E=Q[0],h=Q[1],c=Q[2],l=Q[3],d=Q[4],u=[];for(n=0,B=E.length;n<B;n++){const D=E[n],y=h[n],k=c[n],F=l[n],S=d[n];if(D===void 0)continue;D.updateMatrix&&(D.updateMatrix(),D.matrixAutoUpdate=!0);const U=g._invokeOne(function(M){return M.createAnimationTracks&&M.createAnimationTracks(D,y,k,F,S)});if(U)for(let M=0;M<U.length;M++)u.push(U[M])}const p=i.name?i.name:"animation_"+A;return new VI(p,void 0,u)})}createNodeMesh(A){const e=this.json,g=this,i=e.nodes[A];return i.mesh===void 0?null:g.getDependency("mesh",i.mesh).then(function(I){const o=g._getNodeRef(g.meshCache,i.mesh,I);return i.weights!==void 0&&o.traverse(function(C){if(C.isMesh)for(let s=0,a=i.weights.length;s<a;s++)C.morphTargetInfluences[s]=i.weights[s]}),o})}loadNode(A){const e=this.json,g=this.extensions,i=this,I=e.nodes[A],o=I.name?i.createUniqueName(I.name):"";return function(){const C=[],s=i._invokeOne(function(a){return a.createNodeMesh&&a.createNodeMesh(A)});return s&&C.push(s),I.camera!==void 0&&C.push(i.getDependency("camera",I.camera).then(function(a){return i._getNodeRef(i.cameraCache,I.camera,a)})),i._invokeAll(function(a){return a.createNodeAttachment&&a.createNodeAttachment(A)}).forEach(function(a){C.push(a)}),Promise.all(C)}().then(function(C){let s;if(I.isBone===!0?s=new wh:C.length>1?s=new PI:C.length===1?s=C[0]:s=new UA,s!==C[0])for(let a=0,n=C.length;a<n;a++)s.add(C[a]);if(I.name&&(s.userData.name=I.name,s.name=o),Ya(s,I),I.extensions&&hc(g,s,I),I.matrix!==void 0){const a=new KA;a.fromArray(I.matrix),s.applyMatrix4(a)}else I.translation!==void 0&&s.position.fromArray(I.translation),I.rotation!==void 0&&s.quaternion.fromArray(I.rotation),I.scale!==void 0&&s.scale.fromArray(I.scale);return i.associations.has(s)||i.associations.set(s,{}),i.associations.get(s).nodes=A,s})}loadScene(A){const e=this.json,g=this.extensions,i=this.json.scenes[A],I=this,o=new PI;i.name&&(o.name=I.createUniqueName(i.name)),Ya(o,i),i.extensions&&hc(g,o,i);const C=i.nodes||[],s=[];for(let a=0,n=C.length;a<n;a++)s.push(cL(C[a],o,e,I));return Promise.all(s).then(function(){const a=n=>{const B=new Map;for(const[Q,E]of I.associations)(Q instanceof Fe||Q instanceof Le)&&B.set(Q,E);return n.traverse(Q=>{const E=I.associations.get(Q);E!=null&&B.set(Q,E)}),B};return I.associations=a(o),o})}loadAnimationTargetFromChannel(A){const e=A.target,g=e.node!==void 0?e.node:e.id;return this.getDependency("node",g)}createAnimationTracks(A,e,g,i,I){const o=[],C=A.name?A.name:A.uuid,s=[];xa[I.path]===xa.weights?A.traverse(function(Q){Q.morphTargetInfluences&&s.push(Q.name?Q.name:Q.uuid)}):s.push(C);let a;switch(xa[I.path]){case xa.weights:a=fa;break;case xa.rotation:a=eC;break;case xa.position:case xa.scale:default:switch(g.itemSize){case 1:a=fa;break;case 2:case 3:a=ka;break;case 4:a=Rh;break}break}const n=i.interpolation!==void 0?QL[i.interpolation]:ZC,B=hL(g);for(let Q=0,E=s.length;Q<E;Q++){const h=new a(s[Q]+"."+xa[I.path],e.array,B,n);n==="CUBICSPLINE"&&DG(h),o.push(h)}return o}}function cL(t,A,e,g){const i=e.nodes[t];return g.getDependency("node",t).then(function(I){if(i.skin===void 0)return I;let o;return g.getDependency("skin",i.skin).then(function(C){o=C;const s=[];for(let a=0,n=o.joints.length;a<n;a++)s.push(g.getDependency("node",o.joints[a]));return Promise.all(s)}).then(function(C){return I.traverse(function(s){if(!s.isMesh)return;const a=[],n=[];for(let B=0,Q=C.length;B<Q;B++){const E=C[B];if(E){a.push(E);const h=new KA;o.inverseBindMatrices!==void 0&&h.fromArray(o.inverseBindMatrices.array,B*16),n.push(h)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',o.joints[B])}s.bind(new FE(a,n),s.matrixWorld)}),I})}).then(function(I){A.add(I);const o=[];if(i.children){const C=i.children;for(let s=0,a=C.length;s<a;s++){const n=C[s];o.push(cL(n,I,e,g))}}return Promise.all(o)})}function L9(t,A,e){const g=A.attributes,i=new hi;if(g.POSITION!==void 0){const C=e.json.accessors[g.POSITION],s=C.min,a=C.max;if(s!==void 0&&a!==void 0){if(i.set(new f(s[0],s[1],s[2]),new f(a[0],a[1],a[2])),C.normalized){const n=uG(sQ[C.componentType]);i.min.multiplyScalar(n),i.max.multiplyScalar(n)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const I=A.targets;if(I!==void 0){const C=new f,s=new f;for(let a=0,n=I.length;a<n;a++){const B=I[a];if(B.POSITION!==void 0){const Q=e.json.accessors[B.POSITION],E=Q.min,h=Q.max;if(E!==void 0&&h!==void 0){if(s.setX(Math.max(Math.abs(E[0]),Math.abs(h[0]))),s.setY(Math.max(Math.abs(E[1]),Math.abs(h[1]))),s.setZ(Math.max(Math.abs(E[2]),Math.abs(h[2]))),Q.normalized){const c=uG(sQ[Q.componentType]);s.multiplyScalar(c)}C.max(s)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}i.expandByVector(C)}t.boundingBox=i;const o=new Go;i.getCenter(o.center),o.radius=i.min.distanceTo(i.max)/2,t.boundingSphere=o}function lL(t,A,e){const g=A.attributes,i=[];function I(o,C){return e.getDependency("accessor",o).then(function(s){t.setAttribute(C,s)})}for(const o in g){const C=dG[o]||o.toLowerCase();C in t.attributes||i.push(I(g[o],C))}if(A.indices!==void 0&&!t.index){const o=e.getDependency("accessor",A.indices).then(function(C){t.setIndex(C)});i.push(o)}return Ya(t,A),L9(t,A,e),Promise.all(i).then(function(){return A.targets!==void 0?K9(t,A.targets,e):t})}function dL(t,A){let e=t.getIndex();if(e===null){const o=[],C=t.getAttribute("position");if(C!==void 0){for(let s=0;s<C.count;s++)o.push(s);t.setIndex(o),e=t.getIndex()}else return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t}const g=e.count-2,i=[];if(A===E0)for(let o=1;o<=g;o++)i.push(e.getX(0)),i.push(e.getX(o)),i.push(e.getX(o+1));else for(let o=0;o<g;o++)o%2===0?(i.push(e.getX(o)),i.push(e.getX(o+1)),i.push(e.getX(o+2))):(i.push(e.getX(o+2)),i.push(e.getX(o+1)),i.push(e.getX(o)));i.length/3!==g&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const I=t.clone();return I.setIndex(i),I}var pL=(t=>(t[t.INT=5124]="INT",t[t.FLOAT=5126]="FLOAT",t[t.FLOAT_VEC2=35664]="FLOAT_VEC2",t[t.FLOAT_VEC3=35665]="FLOAT_VEC3",t[t.FLOAT_VEC4=35666]="FLOAT_VEC4",t[t.INT_VEC2=35667]="INT_VEC2",t[t.INT_VEC3=35668]="INT_VEC3",t[t.INT_VEC4=35669]="INT_VEC4",t[t.BOOL=35670]="BOOL",t[t.BOOL_VEC2=35671]="BOOL_VEC2",t[t.BOOL_VEC3=35672]="BOOL_VEC3",t[t.BOOL_VEC4=35673]="BOOL_VEC4",t[t.FLOAT_MAT2=35674]="FLOAT_MAT2",t[t.FLOAT_MAT3=35675]="FLOAT_MAT3",t[t.FLOAT_MAT4=35676]="FLOAT_MAT4",t[t.SAMPLER_2D=35678]="SAMPLER_2D",t[t.SAMPLER_3D=35680]="SAMPLER_3D",t[t.SAMPLER_CUBE=35681]="SAMPLER_CUBE",t[t.UNKNOWN=0]="UNKNOWN",t))(pL||{});const ys=aA("debugcustomshader"),aQ="NEEDLE_techniques_webgl";class x9{constructor(){r(this,"objectToWorldMatrix",new KA),r(this,"worldToObjectMatrix",new KA),r(this,"objectToWorld",new Array),r(this,"worldToObject",new Array)}updateFrom(A){this.objectToWorldMatrix.copy(A.matrixWorld),gD(this.objectToWorldMatrix,this.objectToWorld),this.worldToObjectMatrix.copy(A.matrixWorld).invert(),gD(this.worldToObjectMatrix,this.worldToObject)}}const Tt=class extends Tp{constructor(t,...A){super(...A),r(this,"identifier"),r(this,"onBeforeRenderSceneCallback",this.onBeforeRenderScene.bind(this)),r(this,"_sphericalHarmonicsName","unity_SpecCube0"),r(this,"_objToWorldName","hlslcc_mtx4x4unity_ObjectToWorld"),r(this,"_worldToObjectName","hlslcc_mtx4x4unity_WorldToObject"),r(this,"_viewProjectionName","hlslcc_mtx4x4unity_MatrixVP"),r(this,"_viewMatrixName","hlslcc_mtx4x4unity_MatrixV"),r(this,"_rendererData",new x9),this.identifier=t,ys&&console.log(this),this.type="NEEDLE_CUSTOM_SHADER",this.uniforms[this._objToWorldName]||(this.uniforms[this._objToWorldName]={value:[]}),this.uniforms[this._worldToObjectName]||(this.uniforms[this._worldToObjectName]={value:[]}),this.uniforms[this._viewProjectionName]||(this.uniforms[this._viewProjectionName]={value:[]}),this.uniforms[this._sphericalHarmonicsName]&&this.waitForLighting(),(this.depthTextureUniform||this.opaqueTextureUniform)&&le.Current.pre_render_callbacks.push(this.onBeforeRenderSceneCallback)}clone(){const t=super.clone();return uL(t),t}dispose(){super.dispose();const t=le.Current.pre_render_callbacks.indexOf(this.onBeforeRenderSceneCallback);t>=0&&le.Current.pre_render_callbacks.splice(t,1)}async waitForLighting(){const t=le.Current;if(!t){console.error("Missing context");return}const A=await t.sceneLighting.internalGetSceneLightingData(this.identifier);if(!A||!A.array){console.warn("Missing lighting data for custom shader, getSceneLightingData did not return anything");return}ys&&console.log(A);const e=A.array,g=A.texture;this.uniforms.unity_SpecCube0={value:g},db(this.uniforms,e);const i=Math.sqrt(Math.PI*.5);this.uniforms.unity_SpecCube0_HDR={value:new Ie(i,i,i,i)},ys&&console.log("Set environment lighting",this.uniforms)}get depthTextureUniform(){if(this.uniforms)return this.uniforms._CameraDepthTexture}get opaqueTextureUniform(){if(this.uniforms)return this.uniforms._CameraOpaqueTexture}onBeforeRenderScene(){this.opaqueTextureUniform&&le.Current.setRequireColor(!0),this.depthTextureUniform&&le.Current.setRequireDepth(!0)}onBeforeRender(t,A,e,g,i,I){g.attributes.tangent||g.computeTangents(),this.onUpdateUniforms(e,i)}onUpdateUniforms(t,A){const e=le.Current;t&&(Tt.viewProjection&&this.uniforms[this._viewProjectionName]&&(Tt.viewProjection.copy(t.projectionMatrix).multiply(t.matrixWorldInverse),gD(Tt.viewProjection,Tt._viewProjectionValues)),Tt.viewMatrix&&this.uniforms[this._viewMatrixName]&&(Tt.viewMatrix.copy(t.matrixWorldInverse),gD(Tt.viewMatrix,Tt._viewMatrixValues)),this.uniforms[Tt._worldSpaceCameraPosName]&&Tt._worldSpaceCameraPos.setFromMatrixPosition(t.matrixWorld)),this.uniforms._TimeParameters?this.uniforms._TimeParameters.value=e.sceneLighting.timeVec4:this.uniforms._Time&&(this.uniforms._Time.value=e.sceneLighting.timeVec4);const g=e.mainLight;if(g){const o=ye(g.gameObject,Tt._mainLightPosition);this.uniforms._MainLightPosition={value:o.normalize()},Tt._mainLightColor.set(g.color.r,g.color.g,g.color.b,0),this.uniforms._MainLightColor={value:Tt._mainLightColor};const C=g.intensity;Tt._lightData.z=C,this.uniforms.unity_LightData={value:Tt._lightData}}if(t&&(Tt.viewProjection&&this.uniforms[this._viewProjectionName]&&(this.uniforms[this._viewProjectionName].value=Tt._viewProjectionValues),Tt.viewMatrix&&this.uniforms[this._viewMatrixName]&&(this.uniforms[this._viewMatrixName].value=Tt._viewMatrixValues),this.uniforms[Tt._worldSpaceCameraPosName]&&(this.uniforms[Tt._worldSpaceCameraPosName]={value:Tt._worldSpaceCameraPos}),e.mainCameraComponent)){if(this.uniforms._ProjectionParams){const o=this.uniforms._ProjectionParams.value;o.x=1,o.y=e.mainCameraComponent.nearClipPlane,o.z=e.mainCameraComponent.farClipPlane,o.w=1/o.z,this.uniforms._ProjectionParams.value=o}if(this.uniforms._ZBufferParams){const o=this.uniforms._ZBufferParams.value,C=e.mainCameraComponent;o.x=1-C.farClipPlane/C.nearClipPlane,o.y=C.farClipPlane/C.nearClipPlane,o.z=o.x/C.farClipPlane,o.w=o.y/C.farClipPlane,this.uniforms._ZBufferParams.value=o}if(this.uniforms._ScreenParams){const o=this.uniforms._ScreenParams.value;o.x=e.domWidth,o.y=e.domHeight,o.z=1+1/o.x,o.w=1+1/o.y,this.uniforms._ScreenParams.value=o}}const i=this.depthTextureUniform;i&&(i.value=e.depthTexture);const I=this.opaqueTextureUniform;if(I&&(I.value=e.opaqueColorTexture),A){const o=this._rendererData;o.updateFrom(A),this.uniforms[this._worldToObjectName].value=o.worldToObject,this.uniforms[this._objToWorldName].value=o.objectToWorld}this.uniformsNeedUpdate=!0}};let vo=Tt;r(vo,"viewProjection",new KA),r(vo,"_viewProjectionValues",[]),r(vo,"viewMatrix",new KA),r(vo,"_viewMatrixValues",[]),r(vo,"_worldSpaceCameraPosName","_WorldSpaceCameraPos"),r(vo,"_worldSpaceCameraPos",new f),r(vo,"_mainLightColor",new Ie),r(vo,"_mainLightPosition",new f),r(vo,"_lightData",new Ie);class Y9{constructor(A,e){r(this,"parser"),r(this,"identifier"),this.parser=A,this.identifier=e}get name(){return aQ}loadMaterial(A){const e=this.parser.json.materials[A];if(!e)return ys&&console.log(A,this.parser.json.materials),null;if(!e.extensions||!e.extensions[aQ])return ys&&console.log("material "+A+" does not use NEEDLE_techniques_webgl"),null;const g=e.extensions[aQ].technique;if(g<0)return null;const i=this.parser.json.extensions[aQ];if(!i)return null;ys&&console.log(i);const I=i.techniques[g];return I?new Promise(async(o,C)=>{var s,a,n;const B=await pZ(i,I.program),Q=B?.fragmentShader,E=B?.vertexShader;if(!Q||!E)return C();ys&&console.log("loadMaterial",e,B);const h={},c=I.uniforms;E.includes("_Time")&&(h._Time={value:new Ie(0,0,0,0)});for(const u in c){const p=u;switch(p){case"_TimeParameters":const D=new Ie;h[p]={value:D};break;case"hlslcc_mtx4x4unity_MatrixV":case"hlslcc_mtx4x4unity_MatrixVP":h[p]={value:[]};break;case"_MainLightPosition":case"_MainLightColor":case"_WorldSpaceCameraPos":h[p]={value:[0,0,0,1]};break;case"unity_OrthoParams":break;case"unity_SpecCube0":h[p]={value:null};break;default:case"_ScreenParams":case"_ZBufferParams":case"_ProjectionParams":h[p]={value:[0,0,0,0]};break;case"_CameraOpaqueTexture":case"_CameraDepthTexture":h[p]={value:null};break}}let l=!1;if(e.extensions&&e.extensions[aQ]){const u=e.extensions[aQ];if(u.technique===g){ys&&console.log(e.name,"Material Properties",u);for(const p in u.values){const D=u.values[p];if(typeof D=="string"){if(D.startsWith("/textures/")){const y=D.substring(10),k=Number.parseInt(y);if(k>=0){const F=await this.parser.getDependency("texture",k);F&&(F.encoding=Xt,F.needsUpdate=!0),h[p]={value:F};continue}}switch(p){case"alphaMode":D==="BLEND"&&(l=!0);continue}}if(Array.isArray(D)&&D.length===4){h[p]={value:new Ie(D[0],D[1],D[2],D[3])};continue}h[p]={value:D}}}}const d=new vo(this.identifier,{name:e.name??"",uniforms:h,vertexShader:E,fragmentShader:Q,lights:!1});switch((s=h._Cull)==null?void 0:s.value){case 0:d.side=ft;break;case 1:d.side=Gg;break;case 2:d.side=Fi;break;default:d.side=Fi;break}switch((a=h._ZTest)==null?void 0:a.value){case 3:d.depthTest=!0,d.depthFunc=rB;break;case 6:d.depthTest=!0,d.depthFunc=ZE;break;case 2:d.depthTest=!0,d.depthFunc=zE;break;case 4:d.depthTest=!0,d.depthFunc=nB;break;case 5:d.depthTest=!0,d.depthFunc=Jd;break;case 7:d.depthTest=!0,d.depthFunc=Kd;break;case 8:d.depthTest=!1,d.depthFunc=Nd;break}d.transparent=l,l&&(d.depthWrite=!1),db(h),d.onUpdateUniforms();for(const u in c){const p=u,D=c[u].type;if(((n=h[p])==null?void 0:n.value)===void 0)switch(D){case pL.SAMPLER_2D:h[p]={value:cZ},console.warn("Missing/unassigned texture, fallback to white: "+p);break;default:p==="unity_OrthoParams"||console.warn("TODO: EXPECTED UNIFORM / fallback NOT SET: "+p,c[u]);break}}ys&&console.log(d.uuid,h),uL(d),o(d)}):null}}function uL(t){if(t.uniforms)for(const A in t.uniforms)Object.getOwnPropertyDescriptor(t,A)||Object.defineProperty(t,A,{get:()=>t.uniforms[A].value,set:e=>{t.uniforms[A].value=e,t.needsUpdate=!0}})}const Ha=di,nD="$___Export_Components",H9="NEEDLE_components";var DL;class T9{constructor(){r(this,DL)}}DL=Qr;class O9{constructor(A,e,g){r(this,"node"),r(this,"nodeIndex"),r(this,"nodeDef"),this.node=A,this.nodeIndex=e,this.nodeDef=g}}class wL{constructor(){r(this,"parser"),r(this,"nodeToObjectMap",{}),r(this,"exportContext"),r(this,"objectToNodeMap",{}),r(this,"context"),r(this,"writer")}get name(){return H9}registerExport(A){A.register(e=>{if("serializeUserData"in e){const g=e.serializeUserData.bind(e);this.writer=e,e.serializeUserData=(i,I)=>{try{this.serializeUserData(i,I),g(i,I)}finally{this.afterSerializeUserData(i,I)}}}return this})}beforeParse(){this.exportContext={},this.objectToNodeMap={}}serializeUserData(A,e){var g;const i=(g=A.userData)==null?void 0:g.components;!i||i.length<=0||(delete A.userData.components,A[nD]=i)}afterSerializeUserData(A,e){if(A.type==="Scene"&&Ha&&console.log("DONE",JSON.stringify(e)),A[nD]===void 0)return;const g=A[nD];delete A[nD],g!==null&&(A.userData.components=g)}writeNode(A,e){let g=this.writer.json.nodes.length;console.log(A.name,g,A.uuid);const i=new O9(A,g,e);this.exportContext[g]=i,this.objectToNodeMap[A.uuid]=g}afterParse(A){var e;Ha&&console.log("AFTER",A);for(const g in this.exportContext){const i=this.exportContext[g],I=i.node,o=i.nodeDef,C=i.nodeIndex,s=(e=I.userData)==null?void 0:e.components;if(!s||s.length<=0)continue;const a=new T9;o.extensions=o.extensions||{},o.extensions[this.name]=a,this.context.object=I,this.context.nodeId=C,this.context.objectToNode=this.objectToNodeMap;const n=[];for(const B of s){this.context.target=B;const Q=Jo().writeBuiltinComponentData(B,this.context);Q!==null&&n.push(Q)}n.length>0&&(a[Qr]=n,Ha&&console.log("DID WRITE",I,"nodeIndex",C,n))}}beforeRoot(){return Ha&&console.log("BEGIN LOAD"),this.nodeToObjectMap={},null}async afterRoot(A){const e=A.parser,g=e?.extensions;if(!g)return;const i=g[this.name];Ha&&console.log("After root",A,this.parser,g);const I=[];if(i===!0){const o=e.json.nodes;for(let C=0;C<o.length;C++){const s=await e.getDependency("node",C);this.nodeToObjectMap[C]=s}for(let C=0;C<o.length;C++){const s=o[C],a=C,n=s.extensions;if(!n)continue;const B=n[this.name];if(!B)continue;Ha&&console.log("NODE",s);const Q=this.nodeToObjectMap[a];if(!Q){console.error("Could not find object for node index: "+a,s,e);continue}Hu(Q),I.push(this.createComponents(Q,B))}}await Promise.all(I)}async createComponents(A,e){if(!e)return;const g=e[Qr];if(g){const i=new Array;Ha&&console.log(A.name,g);for(const I in g){const o=g[I];Ha&&console.log("Serialized data",JSON.parse(JSON.stringify(o))),o&&this.parser&&i.push(Vf(this.parser,o).catch(C=>console.error(`Error while resolving references (see console for details)
3963
3963
  `,C,A,o))),A.userData=A.userData||{},A.userData[Qr]=A.userData[Qr]||[],A.userData[Qr].push(o)}await Promise.all(i).catch(I=>{console.error("Error while loading components",I)})}}}/*!