PageSourceSearch

https://koto.com/_next/static/chunks/5674.b98cdb0d3fafafb3.js

js koto.com collected 2026-10-03 22:55:31 UTC 183,563 bytes, 114 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5674],{1975:(e,t)=>{t.ConcurrentRoot=1,t.ContinuousEventPriority=8,t.DefaultEventPriority=32,t.DiscreteEventPriority=2},8828:(e,t,r)=>{e.exports=r(83654)},14806:(e,t,r)=>{e.exports=r(30125)},14814:(e,t,r)=>{r.d(t,{r:()=>n});let n=parseInt(r(85339).sPf.replace(/\D+/g,""))},16750:(e,t,r)=>{r.d(t,{N:()=>B});var n=r(88945),i=r(84877),a=r(12115),o=r(85339),s=Object.defineProperty;class l{constructor(){((e,t,r)=>((e,t,r)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r))(this,"_listeners")}addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let r=this._listeners;void 0===r[e]&&(r[e]=[]),-1===r[e].indexOf(t)&&r[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let r=this._listeners;return void 0!==r[e]&&-1!==r[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let r=this._listeners[e];if(void 0!==r){let e=r.indexOf(t);-1!==e&&r.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let r=t.slice(0);for(let t=0,n=r.length;t<n;t++)r[t].call(this,e);e.target=null}}}var c=Object.defineProperty,u=(e,t,r)=>(((e,t,r)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),r);let d=new o.RlV,A=new o.Zcv,f=Math.cos(Math.PI/180*70),h=(e,t)=>(e%t+t)%t;class p extends l{constructor(e,t){super(),u(this,"object"),u(this,"domElement"),u(this,"enabled",!0),u(this,"target",new o.Pq0),u(this,"minDistance",0),u(this,"maxDistance",1/0),u(this,"minZoom",0),u(this,"maxZoom",1/0),u(this,"minPolarAngle",0),u(this,"maxPolarAngle",Math.PI),u(this,"minAzimuthAngle",-1/0),u(this,"maxAzimuthAngle",1/0),u(this,"enableDamping",!1),u(this,"dampingFactor",.05),u(this,"enableZoom",!0),u(this,"zoomSpeed",1),u(this,"enableRotate",!0),u(this,"rotateSpeed",1),u(this,"enablePan",!0),u(this,"panSpeed",1),u(this,"screenSpacePanning",!0),u(this,"keyPanSpeed",7),u(this,"zoomToCursor",!1),u(this,"autoRotate",!1),u(this,"autoRotateSpeed",2),u(this,"reverseOrbit",!1),u(this,"reverseHorizontalOrbit",!1),u(this,"reverseVerticalOrbit",!1),u(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),u(this,"mouseButtons",{LEFT:o.kBv.ROTATE,MIDDLE:o.kBv.DOLLY,RIGHT:o.kBv.PAN}),u(this,"touches",{ONE:o.wtR.ROTATE,TWO:o.wtR.DOLLY_PAN}),u(this,"target0"),u(this,"position0"),u(this,"zoom0"),u(this,"_domElementKeyEvents",null),u(this,"getPolarAngle"),u(this,"getAzimuthalAngle"),u(this,"setPolarAngle"),u(this,"setAzimuthalAngle"),u(this,"getDistance"),u(this,"getZoomScale"),u(this,"listenToKeyEvents"),u(this,"stopListenToKeyEvents"),u(this,"saveState"),u(this,"reset"),u(this,"update"),u(this,"connect"),u(this,"dispose"),u(this,"dollyIn"),u(this,"dollyOut"),u(this,"getScale"),u(this,"setScale"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>p.phi,this.getAzimuthalAngle=()=>p.theta,this.setPolarAngle=e=>{let t=h(e,2*Math.PI),n=p.phi;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-n);2*Math.PI-i<i&&(t<n?t+=2*Math.PI:n+=2*Math.PI),B.phi=t-n,r.update(
1)},this.setAzimuthalAngle=e=>{let t=h(e,2*Math.PI),n=p.theta;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-n);2*Math.PI-i<i&&(t<n?t+=2*Math.PI:n+=2*Math.PI),B.theta=t-n,r.update()},this.getDistance=()=>r.object.position.distanceTo(r.target),this.listenToKeyEvents=e=>{e.addEventListener("keydown",ee),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",ee),this._domElementKeyEvents=null},this.saveState=()=>{r.target0.copy(r.target),r.position0.copy(r.object.position),r.zoom0=r.object.zoom},this.reset=()=>{r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.zoom=r.zoom0,r.object.updateProjectionMatrix(),r.dispatchEvent(n),r.update(),l=s.NONE},this.update=(()=>{let t=new o.Pq0,i=new o.Pq0(0,1,0),a=new o.PTz().setFromUnitVectors(e.up,i),u=a.clone().invert(),h=new o.Pq0,g=new o.PTz,v=2*Math.PI;return function(){let b=r.object.position;a.setFromUnitVectors(e.up,i),u.copy(a).invert(),t.copy(b).sub(r.target),t.applyQuaternion(a),p.setFromVector3(t),r.autoRotate&&l===s.NONE&&P(2*Math.PI/60/60*r.autoRotateSpeed),r.enableDamping?(p.theta+=B.theta*r.dampingFactor,p.phi+=B.phi*r.dampingFactor):(p.theta+=B.theta,p.phi+=B.phi);let E=r.minAzimuthAngle,M=r.maxAzimuthAngle;isFinite(E)&&isFinite(M)&&(E<-Math.PI?E+=v:E>Math.PI&&(E-=v),M<-Math.PI?M+=v:M>Math.PI&&(M-=v),E<=M?p.theta=Math.max(E,Math.min(M,p.theta)):p.theta=p.theta>(E+M)/2?Math.max(E,p.theta):Math.min(M,p.theta)),p.phi=Math.max(r.minPolarAngle,Math.min(r.maxPolarAngle,p.phi)),p.makeSafe(),!0===r.enableDamping?r.target.addScaledVector(C,r.dampingFactor):r.target.add(C),r.zoomToCursor&&G||r.object.isOrthographicCamera?p.radius=k(p.radius):p.radius=k(p.radius*m),t.setFromSpherical(p),t.applyQuaternion(u),b.copy(r.target).add(t),r.object.matrixAutoUpdate||r.object.updateMatrix(),r.object.lookAt(r.target),!0===r.enableDamping?(B.theta*=1-r.dampingFactor,B.phi*=1-r.dampingFactor,C.multiplyScalar(1-r.dampingFactor)):(B.set(0,0,0),C.set(0,0,0));let y=!1;if(r.zoomToCursor&&G){let n=null;if(r.object instanceof o.ubm&&r.object.isPerspectiveCamera){let e=t.length();n=k(e*m);let i=e-n;r.object.position.addScaledVector(R,i),r.object.updateMatrixWorld()}else if(r.object.isOrthographicCamera){let e=new o.Pq0(T.x,T.y,0);e.unproject(r.object),r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/m)),r.object.updateProjectionMatrix(),y=!0;let i=new o.Pq0(T.x,T.y,0);i.unproject(r.object),r.object.position.sub(i).add(e),r.object.updateMatrixWorld(),n=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),r.zoomToCursor=!1;null!==n&&(r.screenSpacePanning?r.target.set(0,0,-1).transformDirection(r.object.matrix).multiplyScalar(n).add(r.object.position):(d.origin.copy(r.object.position),d.direction.set(0,0,-1).transformDirection(r.object.matrix),Math.abs(r.object.up.dot(d.direction))<f?e.lookAt(r.target):(A.setFromNormalAndCoplanarPoint(r.object.up,r.target),d.intersectPlane(A,r.target))))}else r.object instanceof o.qUd&&r.object.isOrthographicCamera&&(y=1!==m)&&(r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/m)),r.object.updateProjectionMatrix());return m=1,G=!1,!!(y||h.distanceToSquared(r.object.position)>c||8*(1-g.dot(r.object.quaternion))>c)&&(r.dispatchEvent(n),h.copy(r.object.position),g.copy(r.object.quaternion),y=!1,!0)}})(),this.connect=e=>{r.domElement=e,r.domElement.style.touchAction="none",r.domElement.addEventListener("contextmenu",et),r.domElement.addEventListener("pointerdown",z),r.domElement.addEventListener("pointercancel",q),r.domElement.addEventListener("wheel",$)},this.dispose=()=>{var e,t,n,i,a,o;r.domElement&&(r.domElement.style.touchAction="auto"),null==(e=r.domElement)||e.removeEventListener("contextmenu",et),null==(t=r.domElement)||t.removeEventListener("pointerdown",z),null==(n=r.domElement)||n.removeEventListener("pointercancel",q),null==(i=r.domElement)||i.removeEventListener("wheel",$),null==(a=r.domElement)||a.ownerDocument.removeEventListener("pointermove",V),null==(o=r.domElement)||o.ownerDocument.removeEventListener("pointerup",q),null!==r._domElementKeyEvents&&r._domElementKeyEvents.removeEventListener("keydown",ee)};let r=this,n={type:"change"},i={type:"start"},a={type:"end"},s={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6}
1,l=s.NONE,c=1e-6,p=new o.YHV,B=new o.YHV,m=1,C=new o.Pq0,g=new o.I9Y,v=new o.I9Y,b=new o.I9Y,E=new o.I9Y,M=new o.I9Y,y=new o.I9Y,w=new o.I9Y,I=new o.I9Y,F=new o.I9Y,R=new o.Pq0,T=new o.I9Y,G=!1,D=[],H={};function x(){return Math.pow(.95,r.zoomSpeed)}function P(e){r.reverseOrbit||r.reverseHorizontalOrbit?B.theta+=e:B.theta-=e}function S(e){r.reverseOrbit||r.reverseVerticalOrbit?B.phi+=e:B.phi-=e}let O=(()=>{let e=new o.Pq0;return function(t,r){e.setFromMatrixColumn(r,0),e.multiplyScalar(-t),C.add(e)}})(),L=(()=>{let e=new o.Pq0;return function(t,n){!0===r.screenSpacePanning?e.setFromMatrixColumn(n,1):(e.setFromMatrixColumn(n,0),e.crossVectors(r.object.up,e)),e.multiplyScalar(t),C.add(e)}})(),_=(()=>{let e=new o.Pq0;return function(t,n){let i=r.domElement;if(i&&r.object instanceof o.ubm&&r.object.isPerspectiveCamera){let a=r.object.position;e.copy(a).sub(r.target);let o=e.length();O(2*t*(o*=Math.tan(r.object.fov/2*Math.PI/180))/i.clientHeight,r.object.matrix),L(2*n*o/i.clientHeight,r.object.matrix)}else i&&r.object instanceof o.qUd&&r.object.isOrthographicCamera?(O(t*(r.object.right-r.object.left)/r.object.zoom/i.clientWidth,r.object.matrix),L(n*(r.object.top-r.object.bottom)/r.object.zoom/i.clientHeight,r.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),r.enablePan=!1)}})();function J(e){r.object instanceof o.ubm&&r.object.isPerspectiveCamera||r.object instanceof o.qUd&&r.object.isOrthographicCamera?m=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r.enableZoom=!1)}function U(e){if(!r.zoomToCursor||!r.domElement)return;G=!0;let t=r.domElement.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top,a=t.width,o=t.height;T.x=n/a*2-1,T.y=-(i/o*2)+1,R.set(T.x,T.y,1).unproject(r.object).sub(r.object.position).normalize()}function k(e){return Math.max(r.minDistance,Math.min(r.maxDistance,e))}function j(e){g.set(e.clientX,e.clientY)}function N(e){E.set(e.clientX,e.clientY)}function K(){if(1==D.length)g.set(D[0].pageX,D[0].pageY);else{let e=.5*(D[0].pageX+D[1].pageX),t=.5*(D[0].pageY+D[1].pageY);g.set(e,t)}}function Q(){if(1==D.length)E.set(D[0].pageX,D[0].pageY);else{let e=.5*(D[0].pageX+D[1].pageX),t=.5*(D[0].pageY+D[1].pageY);E.set(e,t)}}function X(){let e=D[0].pageX-D[1].pageX,t=D[0].pageY-D[1].pageY,r=Math.sqrt(e*e+t*t);w.set(0,r)}function Y(e){if(1==D.length)v.set(e.pageX,e.pageY);else{let t=en(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);v.set(r,n)}b.subVectors(v,g).multiplyScalar(r.rotateSpeed);let t=r.domElement;t&&(P(2*Math.PI*b.x/t.clientHeight),S(2*Math.PI*b.y/t.clientHeight)),g.copy(v)}function Z(e){if(1==D.length)M.set(e.pageX,e.pageY);else{let t=en(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);M.set(r,n)}y.subVectors(M,E).multiplyScalar(r.panSpeed),_(y.x,y.y),E.copy(M)}function W(e){var t;let n=en(e),i=e.pageX-n.x,a=e.pageY-n.y,o=Math.sqrt(i*i+a*a);I.set(0,o),F.set(0,Math.pow(I.y/w.y,r.zoomSpeed)),t=F.y,J(m/t),w.copy(I)}function z(e){var t,n,a;!1!==r.enabled&&(0===D.length&&(null==(t=r.domElement)||t.ownerDocument.addEventListener("pointermove",V),null==(n=r.domElement)||n.ownerDocument.addEventListener("pointerup",q)),a=e,D.push(a),"touch"===e.pointerType?function(e){switch(er(e),D.length){case 1:switch(r.touches.ONE){case o.wtR.ROTATE:if(!1===r.enableRotate)return;K(),l=s.TOUCH_ROTATE;break;case o.wtR.PAN:if(!1===r.enablePan)return;Q(),l=s.TOUCH_PAN;break;default:l=s.NONE}break;case 2:switch(r.touches.TWO){case o.wtR.DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;r.enableZoom&&X(),r.enablePan&&Q(),l=s.TOUCH_DOLLY_PAN;break;case o.wtR.DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;r.enableZoom&&X(),r.enableRotate&&K(),l=s.TOUCH_DOLLY_ROTATE;break;default:l=s.NONE}break;default:l=s.NONE}l!==s.NONE&&r.dispatchEvent(i)}(e):function(e){let t;switch(e.button){case 0:t=r.mouseButtons.LEFT;break;case 1:t=r.mouseButtons.MIDDLE;break;case 2:t=r.mouseButtons.RIGHT;break;default:t=-1}switch(t){case o.kBv.DOLLY:if(!1===r.enableZoom)return;U(e),w.set(e.clientX,e.clientY),l=s.DOLLY;break;case o.kBv.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enablePan)return;N(e),l=s.PAN}else{if(!1===r.enableRotate)return;j(e),l=s.ROTATE}break;case o.kBv.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enableRotate)return;j(e),l=s.ROTATE}else{if(!1===r.enablePan)return;N(e),l=s.PAN}break;default:l=s.NONE}l!==s.NONE&&r.dispatchEvent(i)}(e))}function V(e){!1!==r.enabled&&("touch"===e.pointerType?function(e){switch(er(e),l){case s.TOUCH_ROTATE:if(!1===r.enableRotate)return;
1Y(e),r.update();break;case s.TOUCH_PAN:if(!1===r.enablePan)return;Z(e),r.update();break;case s.TOUCH_DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;r.enableZoom&&W(e),r.enablePan&&Z(e),r.update();break;case s.TOUCH_DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;r.enableZoom&&W(e),r.enableRotate&&Y(e),r.update();break;default:l=s.NONE}}(e):function(e){if(!1!==r.enabled)switch(l){case s.ROTATE:if(!1===r.enableRotate)return;v.set(e.clientX,e.clientY),b.subVectors(v,g).multiplyScalar(r.rotateSpeed);let t=r.domElement;t&&(P(2*Math.PI*b.x/t.clientHeight),S(2*Math.PI*b.y/t.clientHeight)),g.copy(v),r.update();break;case s.DOLLY:var n,i;if(!1===r.enableZoom)return;(I.set(e.clientX,e.clientY),F.subVectors(I,w),F.y>0)?(n=x(),J(m/n)):F.y<0&&(i=x(),J(m*i)),w.copy(I),r.update();break;case s.PAN:if(!1===r.enablePan)return;M.set(e.clientX,e.clientY),y.subVectors(M,E).multiplyScalar(r.panSpeed),_(y.x,y.y),E.copy(M),r.update()}}(e))}function q(e){var t,n,i;(function(e){delete H[e.pointerId];for(let t=0;t<D.length;t++)if(D[t].pointerId==e.pointerId)return void D.splice(t,1)})(e),0===D.length&&(null==(t=r.domElement)||t.releasePointerCapture(e.pointerId),null==(n=r.domElement)||n.ownerDocument.removeEventListener("pointermove",V),null==(i=r.domElement)||i.ownerDocument.removeEventListener("pointerup",q)),r.dispatchEvent(a),l=s.NONE}function $(e){if(!1!==r.enabled&&!1!==r.enableZoom&&(l===s.NONE||l===s.ROTATE)){var t,n;e.preventDefault(),r.dispatchEvent(i),(U(e),e.deltaY<0)?(t=x(),J(m*t)):e.deltaY>0&&(n=x(),J(m/n)),r.update(),r.dispatchEvent(a)}}function ee(e){if(!1!==r.enabled&&!1!==r.enablePan){let t=!1;switch(e.code){case r.keys.UP:_(0,r.keyPanSpeed),t=!0;break;case r.keys.BOTTOM:_(0,-r.keyPanSpeed),t=!0;break;case r.keys.LEFT:_(r.keyPanSpeed,0),t=!0;break;case r.keys.RIGHT:_(-r.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),r.update())}}function et(e){!1!==r.enabled&&e.preventDefault()}function er(e){let t=H[e.pointerId];void 0===t&&(t=new o.I9Y,H[e.pointerId]=t),t.set(e.pageX,e.pageY)}function en(e){return H[(e.pointerId===D[0].pointerId?D[1]:D[0]).pointerId]}this.dollyIn=(e=x())=>{J(m*e),r.update()},this.dollyOut=(e=x())=>{J(m/e),r.update()},this.getScale=()=>m,this.setScale=e=>{J(e),r.update()},this.getZoomScale=()=>x(),void 0!==t&&this.connect(t),this.update()}}let B=a.forwardRef(({makeDefault:e,camera:t,regress:r,domElement:o,enableDamping:s=!0,keyEvents:l=!1,onChange:c,onStart:u,onEnd:d,...A},f)=>{let h=(0,i.C)(e=>e.invalidate),B=(0,i.C)(e=>e.camera),m=(0,i.C)(e=>e.gl),C=(0,i.C)(e=>e.events),g=(0,i.C)(e=>e.setEvents),v=(0,i.C)(e=>e.set),b=(0,i.C)(e=>e.get),E=(0,i.C)(e=>e.performance),M=t||B,y=o||C.connected||m.domElement,w=a.useMemo(()=>new p(M),[M]);return(0,i.D)(()=>{w.enabled&&w.update()},-1),a.useEffect(()=>(l&&w.connect(!0===l?y:l),w.connect(y),()=>void w.dispose()),[l,y,r,w,h]),a.useEffect(()=>{let e=e=>{h(),r&&E.regress(),c&&c(e)},t=e=>{u&&u(e)},n=e=>{d&&d(e)};return w.addEventListener("change",e),w.addEventListener("start",t),w.addEventListener("end",n),()=>{w.removeEventListener("start",t),w.removeEventListener("end",n),w.removeEventListener("change",e)}},[c,u,d,w,h,g]),a.useEffect(()=>{if(e){let e=b().controls;return v({controls:w}),()=>v({controls:e})}},[e,w]),a.createElement("primitive",(0,n.A)({ref:f,object:w,enableDamping:s},A))})},18807:(e,t,r)=>{e.exports=r(77719)},20979:(e,t)=>{function r(e,t){var r=e.length;for(e.push(t);0<r;){var n=r-1>>>1,i=e[n];if(0<a(i,t))e[n]=t,e[r]=i,r=n;else break}}function n(e){return 0===e.length?null:e[0]}function i(e){if(0===e.length)return null;var t=e[0],r=e.pop();if(r!==t){e[0]=r;for(var n=0,i=e.length,o=i>>>1;n<o;){var s=2*(n+1)-1,l=e[s],c=s+1,u=e[c];if(0>a(l,r))c<i&&0>a(u,l)?(e[n]=u,e[c]=r,n=c):(e[n]=l,e[s]=r,n=s);else if(c<i&&0>a(u,r))e[n]=u,e[c]=r,n=c;else break}}return t}function a(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o,s=performance;t.unstable_now=function(){return s.now()}}else{var l=Date,c=l.now();t.unstable_now=function(){return l.now()-c}}var u=[],d=[],A=1,f=null,h=3,p=!1,B=!1,m=!1,C="function"==typeof setTimeout?setTimeout:null,g="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function b(e){for(var t=n(d);null!==t;){if(null===t.callback)i(d);else if(t.startTime<=e)i(d),t.sortIndex=t.expirationTime,r(u,t);else break;t=n(d)}}
1function E(e){if(m=!1,b(e),!B)if(null!==n(u))B=!0,D();else{var t=n(d);null!==t&&H(E,t.startTime-e)}}var M=!1,y=-1,w=5,I=-1;function F(){return!(t.unstable_now()-I<w)}function R(){if(M){var e=t.unstable_now();I=e;var r=!0;try{e:{B=!1,m&&(m=!1,g(y),y=-1),p=!0;var a=h;try{t:{for(b(e),f=n(u);null!==f&&!(f.expirationTime>e&&F());){var s=f.callback;if("function"==typeof s){f.callback=null,h=f.priorityLevel;var l=s(f.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof l){f.callback=l,b(e),r=!0;break t}f===n(u)&&i(u),b(e)}else i(u);f=n(u)}if(null!==f)r=!0;else{var c=n(d);null!==c&&H(E,c.startTime-e),r=!1}}break e}finally{f=null,h=a,p=!1}}}finally{r?o():M=!1}}}if("function"==typeof v)o=function(){v(R)};else if("undefined"!=typeof MessageChannel){var T=new MessageChannel,G=T.port2;T.port1.onmessage=R,o=function(){G.postMessage(null)}}else o=function(){C(R,0)};function D(){M||(M=!0,o())}function H(e,r){y=C(function(){e(t.unstable_now())},r)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){B||p||(B=!0,D())},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):w=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_getFirstCallbackNode=function(){return n(u)},t.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var r=h;h=t;try{return e()}finally{h=r}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=h;h=e;try{return t()}finally{h=r}},t.unstable_scheduleCallback=function(e,i,a){var o=t.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?o+a:o,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,e={id:A++,callback:i,priorityLevel:e,startTime:a,expirationTime:s,sortIndex:-1},a>o?(e.sortIndex=a,r(d,e),null===n(u)&&e===n(d)&&(m?(g(y),y=-1):m=!0,H(E,a-o))):(e.sortIndex=s,r(u,e),B||p||(B=!0,D())),e},t.unstable_shouldYield=F,t.unstable_wrapCallback=function(e){var t=h;return function(){var r=h;h=t;try{return e.apply(this,arguments)}finally{h=r}}}},28870:(e,t,r)=>{e.exports=r(1975)},30125:(e,t,r)=>{var n=r(12115),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=n.useState,o=n.useEffect,s=n.useLayoutEffect,l=n.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!i(e,r)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=a({inst:{value:r,getSnapshot:t}}),i=n[0].inst,u=n[1];return s(function(){i.value=r,i.getSnapshot=t,c(i)&&u({inst:i})},[e,r,t]),o(function(){return c(i)&&u({inst:i}),e(function(){c(i)&&u({inst:i})})},[e]),l(r),r};t.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:u},30258:(e,t,r)=>{r.d(t,{Hl:()=>d});var n=r(84877),i=r(12115),a=r(87548);function o(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}let s=["x","y","top","bottom","left","right","width","height"];var l=r(54735),c=r(95155);function u({ref:e,children:t,fallback:r,resize:l,style:u,gl:d,events:A=n.f,eventSource:f,eventPrefix:h,shadows:p,linear:B,flat:m,legacy:C,orthographic:g,frameloop:v,dpr:b,performance:E,raycaster:M,camera:y,scene:w,onPointerMissed:I,onCreated:F,...R}){i.useMemo(()=>(0,n.e)(a),[]);let T=(0,n.u)(),[G,D]=function({debounce:e,scroll:t,polyfill:r,offsetSize:n}={debounce:0,scroll:!1,offsetSize:!1}){var a,l,c;let u=r||("undefined"==typeof window?class{}:window.ResizeObserver);if(!u)throw Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[d,A]=(0,i.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}
1),f=(0,i.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:d,orientationHandler:null}),h=e?"number"==typeof e?e:e.scroll:null,p=e?"number"==typeof e?e:e.resize:null,B=(0,i.useRef)(!1);(0,i.useEffect)(()=>(B.current=!0,()=>void(B.current=!1)));let[m,C,g]=(0,i.useMemo)(()=>{let e=()=>{let e,t;if(!f.current.element)return;let{left:r,top:i,width:a,height:o,bottom:l,right:c,x:u,y:d}=f.current.element.getBoundingClientRect(),h={left:r,top:i,width:a,height:o,bottom:l,right:c,x:u,y:d};f.current.element instanceof HTMLElement&&n&&(h.height=f.current.element.offsetHeight,h.width=f.current.element.offsetWidth),Object.freeze(h),B.current&&(e=f.current.lastBounds,t=h,!s.every(r=>e[r]===t[r]))&&A(f.current.lastBounds=h)};return[e,p?o(e,p):e,h?o(e,h):e]},[A,n,h,p]);function v(){f.current.scrollContainers&&(f.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",g,!0)),f.current.scrollContainers=null),f.current.resizeObserver&&(f.current.resizeObserver.disconnect(),f.current.resizeObserver=null),f.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",f.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",f.current.orientationHandler))}function b(){f.current.element&&(f.current.resizeObserver=new u(g),f.current.resizeObserver.observe(f.current.element),t&&f.current.scrollContainers&&f.current.scrollContainers.forEach(e=>e.addEventListener("scroll",g,{capture:!0,passive:!0})),f.current.orientationHandler=()=>{g()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",f.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",f.current.orientationHandler))}return a=g,l=!!t,(0,i.useEffect)(()=>{if(l)return window.addEventListener("scroll",a,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",a,!0)},[a,l]),c=C,(0,i.useEffect)(()=>(window.addEventListener("resize",c),()=>void window.removeEventListener("resize",c)),[c]),(0,i.useEffect)(()=>{v(),b()},[t,g,C]),(0,i.useEffect)(()=>v,[]),[e=>{e&&e!==f.current.element&&(v(),f.current.element=e,f.current.scrollContainers=function e(t){let r=[];if(!t||t===document.body)return r;let{overflow:n,overflowX:i,overflowY:a}=window.getComputedStyle(t);return[n,i,a].some(e=>"auto"===e||"scroll"===e)&&r.push(t),[...r,...e(t.parentElement)]}(e),b())},d,m]}({scroll:!0,debounce:{scroll:50,resize:0},...l}),H=i.useRef(null),x=i.useRef(null);i.useImperativeHandle(e,()=>H.current);let P=(0,n.a)(I),[S,O]=i.useState(!1),[L,_]=i.useState(!1);if(S)throw S;if(L)throw L;let J=i.useRef(null);(0,n.b)(()=>{let e=H.current;D.width>0&&D.height>0&&e&&(J.current||(J.current=(0,n.c)(e)),async function(){await J.current.configure({gl:d,scene:w,events:A,shadows:p,linear:B,flat:m,legacy:C,orthographic:g,frameloop:v,dpr:b,performance:E,raycaster:M,camera:y,size:D,onPointerMissed:(...e)=>null==P.current?void 0:P.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(f?(0,n.i)(f)?f.current:f:x.current),h&&e.setEvents({compute:(e,t)=>{let r=e[h+"X"],n=e[h+"Y"];t.pointer.set(r/t.size.width*2-1,-(2*(n/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==F||F(e)}}),J.current.render((0,c.jsx)(T,{children:(0,c.jsx)(n.E,{set:_,children:(0,c.jsx)(i.Suspense,{fallback:(0,c.jsx)(n.B,{set:O}),children:null!=t?t:null})})}))}())}),i.useEffect(()=>{let e=H.current;if(e)return()=>(0,n.d)(e)},[]);let U=f?"none":"auto";return(0,c.jsx)("div",{ref:x,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:U,...u},...R,children:(0,c.jsx)("div",{ref:G,style:{width:"100%",height:"100%"},children:(0,c.jsx)("canvas",{ref:H,style:{display:"block"},children:r})})})}function d(e){return(0,c.jsx)(l.Af,{children:(0,c.jsx)(u,{...e})})}r(28870),r(18807),r(84943)},46362:(e,t,r)=>{e.exports=r(20979)},53531:(e,t,r)=>{let n;r.d(t,{p:()=>ec}),r(12115);var i=r(85339);let a=new WeakMap;class o extends i.aHM{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,r,n){let a=new i.Y9S(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,e=>{let r={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};
1this.decodeGeometry(e,r).then(t).catch(n)},r,n)}decodeDracoFile(e,t,r,n){let i={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){let r;for(let e in t.attributeTypes){let r=t.attributeTypes[e];void 0!==r.BYTES_PER_ELEMENT&&(t.attributeTypes[e]=r.name)}let n=JSON.stringify(t);if(a.has(e)){let t=a.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i=this.workerNextTaskID++,o=e.byteLength,s=this._getWorker(i,o).then(n=>(r=n,new Promise((n,a)=>{r._callbacks[i]={resolve:n,reject:a},r.postMessage({type:"decode",id:i,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return s.catch(()=>!0).then(()=>{r&&i&&this._releaseTask(r,i)}),a.set(e,{key:n,promise:s}),s}_createGeometry(e){let t=new i.LoY;e.index&&t.setIndex(new i.THS(e.index.array,1));for(let r=0;r<e.attributes.length;r++){let n=e.attributes[r],a=n.name,o=n.array,s=n.itemSize;t.setAttribute(a,new i.THS(o,s))}return t}_loadLibrary(e,t){let r=new i.Y9S(this.manager);return r.setPath(this.decoderPath),r.setResponseType(t),r.setWithCredentials(this.withCredentials),new Promise((t,n)=>{r.load(e,t,void 0,n)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(t=>{let r=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let n=s.toString(),i=["/* draco decoder */",r,"\n/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){let e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",decoderConfig:this.decoderConfig}),e.onmessage=function(t){let r=t.data;switch(r.type){case"decode":e._callbacks[r.id].resolve(r);break;case"error":e._callbacks[r.id].reject(r);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+r.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});let r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this}}function s(){let e,t;onmessage=function(r){let n=r.data;switch(n.type){case"init":e=n.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case"decode":let i=n.buffer,a=n.taskConfig;t.then(e=>{let t=e.draco,r=new t.Decoder,o=new t.DecoderBuffer;o.Init(new Int8Array(i),i.byteLength);try{let e=function(e,t,r,n){let i,a,o=n.attributeIDs,s=n.attributeTypes,l=t.GetEncodedGeometryType(r);if(l===e.TRIANGULAR_MESH)i=new e.Mesh,a=t.DecodeBufferToMesh(r,i);else if(l===e.POINT_CLOUD)i=new e.PointCloud,a=t.DecodeBufferToPointCloud(r,i);else throw Error("THREE.DRACOLoader: Unexpected geometry type.");if(!a.ok()||0===i.ptr)throw Error("THREE.DRACOLoader: Decoding failed: "+a.error_msg());let c={index:null,attributes:[]};for(let r in o){let a,l,u=self[s[r]];if(n.useUniqueIDs)l=o[r],a=t.GetAttributeByUniqueId(i,l);else{if(-1===(l=t.GetAttributeId(i,e[o[r]])))continue;a=t.GetAttribute(i,l)}c.attributes.push(function(e,t,r,n,i,a){let o=a.num_components(),s=r.num_points()*o,l=s*i.BYTES_PER_ELEMENT,c=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,i),u=e._malloc(l);t.GetAttributeDataArrayForAllPoints(r,a,c,l,u);let d=new i(e.HEAPF32.buffer,u,s).slice();return e._free(u),{name:n,array:d,itemSize:o}}(e,t,i,r,u,a))}return l===e.TRIANGULAR_MESH&&(c.index=function(e,t,r){let n=3*r.num_faces(),i=4*n,a=e._malloc(i);t.GetTrianglesUInt32Array(r,i,a);let o=new Uint32Array(e.HEAPF32.buffer,a,n).slice();return e._free(a),{array:o,itemSize:1}}(e,t,i)),e.destroy(i),c}(t,r,o,a),i=e.attributes.map(e=>e.array.buffer);e.index&&i.push(e.index.array.buffer),self.postMessage({type:"decode",id:n.id,geometry:e},i)}catch(e){console.error(e),self.postMessage({type:"error",id:n.id,error:e.message})}finally{t.destroy(o),t.destroy(r)}})}}}function l(e,t){if(t===i.RJ4)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t!==i.rYR&&t!==i.O49)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e;{let r=e.getIndex();if(null===r){let t=[],n=e.getAttribute("position");if(void 0===n)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<n.count;e++)t.push(e);e.setIndex(t),r=e.getIndex()}let n=r.count-2,a=[];if(r)if(t===i.rYR)for(let e=1;e<=n;e++)a.push(r.getX(0)),a.push(r.getX(e)),a.push(r.getX(e+1));else for(let e=0;e<n;e++)e%2==0?(a.push(r.getX(e)),a.push(r.getX(e+1)),a.push(r.getX(e+2))):(a.push(r.getX(e+2)),a.push(r.getX(e+1)),a.push(r.getX(e)));a.length/3!==n&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");let o=e.clone();return o.setIndex(a),o.clearGroups(),o}}var c=r(14814);function u(e){if("undefined"!=typeof TextDecoder)return new TextDecoder().decode(e);let t="";for(let r=0,n=e.length;r<n;r++)t+=String.fromCharCode(e[r]);try{return decodeURIComponent(escape(t))}catch(e){return t}}let d="srgb",A="srgb-linear";class f extends i.aHM{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new g(e)}),this.register(function(e){return new v(e)}),this.register(function(e){return new T(e)}),this.register(function(e){return new G(e)}),this.register(function(e){return new D(e)}),this.register(function(e){return new E(e)}),this.register(function(e){return new M(e)}),this.register(function(e){return new y(e)}),this.register(function(e){return new w(e)}),this.register(function(e){return new C(e)}),this.register(function(e){return new I(e)}),this.register(function(e){return new b(e)}),this.register(function(e){return new R(e)}),this.register(function(e){return new F(e)}),this.register(function(e){return new B(e)}),this.register(function(e){return new H(e)}),this.register(function(e){return new x(e)})}load(e,t,r,n){let a,o=this;if(""!==this.resourcePath)a=this.resourcePath;else if(""!==this.path){let t=i.r6x.extractUrlBase(e);a=i.r6x.resolveURL(t,this.path)}else a=i.r6x.extractUrlBase(e);this.manager.itemStart(e);let s=function(t){n?n(t):console.error(t),o.manager.itemError(e),o.manager.itemEnd(e)},l=new i.Y9S(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(r){try{o.parse(r,a,function(r){t(r),o.manager.itemEnd(e)},s)}catch(e){s(e)}},r,s)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return -1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return -1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,r,n){let i,a={},o={};if("string"==typeof e)i=JSON.parse(e);else if(e instanceof ArrayBuffer)if(u(new Uint8Array(e.slice(0,4)))===P){try{a[p.KHR_BINARY_GLTF]=new O(e)}catch(e){n&&n(e);return}i=JSON.parse(a[p.KHR_BINARY_GLTF].content)}else i=JSON.parse(u(new Uint8Array(e)));else i=e;if(void 0===i.asset||i.asset.version[0]<2){n&&n(Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}let s=new en(i,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});s.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){let t=this.pluginCallbacks[e](s);t.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),o[t.name]=t,a[t.name]=!0}if(i.extensionsUsed)for(let e=0;e<i.extensionsUsed.length;++e){let t=i.extensionsUsed[e],r=i.extensionsRequired||[];
1switch(t){case p.KHR_MATERIALS_UNLIT:a[t]=new m;break;case p.KHR_DRACO_MESH_COMPRESSION:a[t]=new L(i,this.dracoLoader);break;case p.KHR_TEXTURE_TRANSFORM:a[t]=new _;break;case p.KHR_MESH_QUANTIZATION:a[t]=new J;break;default:r.indexOf(t)>=0&&void 0===o[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}s.setExtensions(a),s.setPlugins(o),s.parse(r,n)}parseAsync(e,t){let r=this;return new Promise(function(n,i){r.parse(e,t,n,i)})}}function h(){let e={};return{get:function(t){return e[t]},add:function(t,r){e[t]=r},remove:function(t){delete e[t]},removeAll:function(){e={}}}}let p={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class B{constructor(e){this.parser=e,this.name=p.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let r=0,n=t.length;r<n;r++){let n=t[r];n.extensions&&n.extensions[this.name]&&void 0!==n.extensions[this.name].light&&e._addNodeRef(this.cache,n.extensions[this.name].light)}}_loadLight(e){let t,r=this.parser,n="light:"+e,a=r.cache.get(n);if(a)return a;let o=r.json,s=((o.extensions&&o.extensions[this.name]||{}).lights||[])[e],l=new i.Q1f(0xffffff);void 0!==s.color&&l.setRGB(s.color[0],s.color[1],s.color[2],A);let c=void 0!==s.range?s.range:0;switch(s.type){case"directional":(t=new i.ZyN(l)).target.position.set(0,0,-1),t.add(t.target);break;case"point":(t=new i.HiM(l)).distance=c;break;case"spot":(t=new i.nCl(l)).distance=c,s.spot=s.spot||{},s.spot.innerConeAngle=void 0!==s.spot.innerConeAngle?s.spot.innerConeAngle:0,s.spot.outerConeAngle=void 0!==s.spot.outerConeAngle?s.spot.outerConeAngle:Math.PI/4,t.angle=s.spot.outerConeAngle,t.penumbra=1-s.spot.innerConeAngle/s.spot.outerConeAngle,t.target.position.set(0,0,-1),t.add(t.target);break;default:throw Error("THREE.GLTFLoader: Unexpected light type: "+s.type)}return t.position.set(0,0,0),t.decay=2,$(t,s),void 0!==s.intensity&&(t.intensity=s.intensity),t.name=r.createUniqueName(s.name||"light_"+e),a=Promise.resolve(t),r.cache.add(n,a),a}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){let t=this,r=this.parser,n=r.json.nodes[e],i=(n.extensions&&n.extensions[this.name]||{}).light;return void 0===i?null:this._loadLight(i).then(function(e){return r._getNodeRef(t.cache,i,e)})}}class m{constructor(){this.name=p.KHR_MATERIALS_UNLIT}getMaterialType(){return i.V9B}extendParams(e,t,r){let n=[];e.color=new i.Q1f(1,1,1),e.opacity=1;let a=t.pbrMetallicRoughness;if(a){if(Array.isArray(a.baseColorFactor)){let t=a.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],A),e.opacity=t[3]}void 0!==a.baseColorTexture&&n.push(r.assignTexture(e,"map",a.baseColorTexture,d))}return Promise.all(n)}}class C{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){let r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let n=r.extensions[this.name].emissiveStrength;return void 0!==n&&(t.emissiveIntensity=n),Promise.resolve()}}class g{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let a=[],o=n.extensions[this.name];if(void 0!==o.clearcoatFactor&&(t.clearcoat=o.clearcoatFactor),void 0!==o.clearcoatTexture&&a.push(r.assignTexture(t,"clearcoatMap",o.clearcoatTexture)),void 0!==o.clearcoatRoughnessFactor&&(t.clearcoatRoughness=o.clearcoatRoughnessFactor),void 0!==o.clearcoatRoughnessTexture&&a.push(r.assignTexture(t,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),void 0!==o.clearcoatNormalTexture&&(a.push(r.assignTexture(t,"clearcoatNormalMap",o.clearcoatNormalTexture)),void 0!==o.clearcoatNormalTexture.scale)){let e=o.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new i.I9Y(e,e)}return Promise.all(a)}}class v{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_DISPERSION}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let n=r.extensions[this.name];return t.dispersion=void 0!==n.dispersion?n.dispersion:0,Promise.resolve()}}class b{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let i=[],a=n.extensions[this.name];return void 0!==a.iridescenceFactor&&(t.iridescence=a.iridescenceFactor),void 0!==a.iridescenceTexture&&i.push(r.assignTexture(t,"iridescenceMap",a.iridescenceTexture)),void 0!==a.iridescenceIor&&(t.iridescenceIOR=a.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==a.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=a.iridescenceThicknessMinimum),void 0!==a.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=a.iridescenceThicknessMaximum),void 0!==a.iridescenceThicknessTexture&&i.push(r.assignTexture(t,"iridescenceThicknessMap",a.iridescenceThicknessTexture)),Promise.all(i)}}class E{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_SHEEN}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let a=[];t.sheenColor=new i.Q1f(0,0,0),t.sheenRoughness=0,t.sheen=1;let o=n.extensions[this.name];if(void 0!==o.sheenColorFactor){let e=o.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],A)}return void 0!==o.sheenRoughnessFactor&&(t.sheenRoughness=o.sheenRoughnessFactor),void 0!==o.sheenColorTexture&&a.push(r.assignTexture(t,"sheenColorMap",o.sheenColorTexture,d)),void 0!==o.sheenRoughnessTexture&&a.push(r.assignTexture(t,"sheenRoughnessMap",o.sheenRoughnessTexture)),Promise.all(a)}}class M{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let i=[],a=n.extensions[this.name];return void 0!==a.transmissionFactor&&(t.transmission=a.transmissionFactor),void 0!==a.transmissionTexture&&i.push(r.assignTexture(t,"transmissionMap",a.transmissionTexture)),Promise.all(i)}}class y{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_VOLUME}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let a=[],o=n.extensions[this.name];t.thickness=void 0!==o.thicknessFactor?o.thicknessFactor:0,void 0!==o.thicknessTexture&&a.push(r.assignTexture(t,"thicknessMap",o.thicknessTexture)),t.attenuationDistance=o.attenuationDistance||1/0;let s=o.attenuationColor||[1,1,1];return t.attenuationColor=new i.Q1f().setRGB(s[0],s[1],s[2],A),Promise.all(a)}}class w{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_IOR}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let n=r.extensions[this.name];return t.ior=void 0!==n.ior?n.ior:1.5,Promise.resolve()}}class I{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_SPECULAR}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let a=[],o=n.extensions[this.name];t.specularIntensity=void 0!==o.specularFactor?o.specularFactor:1,void 0!==o.specularTexture&&a.push(r.assignTexture(t,"specularIntensityMap",o.specularTexture));let s=o.specularColorFactor||[1,1,1];return t.specularColor=new i.Q1f().setRGB(s[0],s[1],s[2],A),void 0!==o.specularColorTexture&&a.push(r.assignTexture(t,"specularColorMap",o.specularColorTexture,d)),Promise.all(a)}}class F{constructor(e){this.parser=e,this.name=p.EXT_MATERIALS_BUMP}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let i=[],a=n.extensions[this.name];return t.bumpScale=void 0!==a.bumpFactor?a.bumpFactor:1,void 0!==a.bumpTexture&&i.push(r.assignTexture(t,"bumpMap",a.bumpTexture)),Promise.all(i)}}class R{constructor(e){this.parser=e,this.name=p.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){let t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?i.uSd:null}extendMaterialParams(e,t){let r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let i=[],a=n.extensions[this.name];return void 0!==a.anisotropyStrength&&(t.anisotropy=a.anisotropyStrength),void 0!==a.anisotropyRotation&&(t.anisotropyRotation=a.anisotropyRotation),void 0!==a.anisotropyTexture&&i.push(r.assignTexture(t,"anisotropyMap",a.anisotropyTexture)),Promise.all(i)}}class T{constructor(e){this.parser=e,this.name=p.KHR_TEXTURE_BASISU}loadTexture(e){let t=this.parser,r=t.json,n=r.textures[e];if(!n.extensions||!n.extensions[this.name])return null;let i=n.extensions[this.name],a=t.options.ktx2Loader;if(!a)if(!(r.extensionsRequired&&r.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return t.loadTextureImage(e,i.source,a)}}class G{constructor(e){this.parser=e,this.name=p.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,r=this.parser,n=r.json,i=n.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=n.images[a.source],s=r.textureLoader;if(o.uri){let e=r.options.manager.getHandler(o.uri);null!==e&&(s=e)}return this.detectSupport().then(function(i){if(i)return r.loadTextureImage(e,a.source,s);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class D{constructor(e){this.parser=e,this.name=p.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,r=this.parser,n=r.json,i=n.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=n.images[a.source],s=r.textureLoader;if(o.uri){let e=r.options.manager.getHandler(o.uri);null!==e&&(s=e)}return this.detectSupport().then(function(i){if(i)return r.loadTextureImage(e,a.source,s);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdj
1FDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class H{constructor(e){this.name=p.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,r=t.bufferViews[e];if(!r.extensions||!r.extensions[this.name])return null;{let e=r.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported)if(!(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return n.then(function(t){let r=e.byteOffset||0,n=e.byteLength||0,a=e.count,o=e.byteStride,s=new Uint8Array(t,r,n);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(a,o,s,e.mode,e.filter).then(function(e){return e.buffer}):i.ready.then(function(){let t=new ArrayBuffer(a*o);return i.decodeGltfBuffer(new Uint8Array(t),a,o,s,e.mode,e.filter),t})})}}}class x{constructor(e){this.name=p.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,r=t.nodes[e];if(!r.extensions||!r.extensions[this.name]||void 0===r.mesh)return null;for(let e of t.meshes[r.mesh].primitives)if(e.mode!==N.TRIANGLES&&e.mode!==N.TRIANGLE_STRIP&&e.mode!==N.TRIANGLE_FAN&&void 0!==e.mode)return null;let n=r.extensions[this.name].attributes,a=[],o={};for(let e in n)a.push(this.parser.getDependency("accessor",n[e]).then(t=>(o[e]=t,o[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{let t=e.pop(),r=t.isGroup?t.children:[t],n=e[0].count,a=[];for(let e of r){let t=new i.kn4,r=new i.Pq0,s=new i.PTz,l=new i.Pq0(1,1,1),c=new i.ZLX(e.geometry,e.material,n);for(let e=0;e<n;e++)o.TRANSLATION&&r.fromBufferAttribute(o.TRANSLATION,e),o.ROTATION&&s.fromBufferAttribute(o.ROTATION,e),o.SCALE&&l.fromBufferAttribute(o.SCALE,e),c.setMatrixAt(e,t.compose(r,s,l));for(let t in o)if("_COLOR_0"===t){let e=o[t];c.instanceColor=new i.uWO(e.array,e.itemSize,e.normalized)}else"TRANSLATION"!==t&&"ROTATION"!==t&&"SCALE"!==t&&e.geometry.setAttribute(t,o[t]);i.B69.prototype.copy.call(c,e),this.parser.assignFinalMaterial(c),a.push(c)}return t.isGroup?(t.clear(),t.add(...a),t):a[0]}))}}let P="glTF",S={JSON:0x4e4f534a,BIN:5130562};class O{constructor(e){this.name=p.KHR_BINARY_GLTF,this.content=null,this.body=null;let t=new DataView(e,0,12);if(this.header={magic:u(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==P)throw Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw Error("THREE.GLTFLoader: Legacy binary file detected.");let r=this.header.length-12,n=new DataView(e,12),i=0;for(;i<r;){let t=n.getUint32(i,!0);i+=4;let r=n.getUint32(i,!0);if(i+=4,r===S.JSON){let r=new Uint8Array(e,12+i,t);this.content=u(r)}else if(r===S.BIN){let r=12+i;this.body=e.slice(r,r+t)}i+=t}if(null===this.content)throw Error("THREE.GLTFLoader: JSON content not found.")}}class L{constructor(e,t){if(!t)throw Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=p.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){let r=this.json,n=this.dracoLoader,i=e.extensions[this.name].bufferView,a=e.extensions[this.name].attributes,o={},s={},l={};for(let e in a)o[Z[e]||e.toLowerCase()]=a[e];for(let t in e.attributes){let n=Z[t]||t.toLowerCase();if(void 0!==a[t]){let i=r.accessors[e.attributes[t]],a=K[i.componentType];l[n]=a.name,s[n]=!0===i.normalized}}return t.getDependency("bufferView",i).then(function(e){return new Promise(function(t,r){n.decodeDracoFile(e,function(e){for(let t in e.attributes){let r=e.attributes[t],n=s[t];void 0!==n&&(r.normalized=n)}t(e)},o,l,A,r)})})}}class _{constructor(){this.name=p.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return(void 0===t.texCoord||t.texCoord===e.channel)&&void 0===t.offset&&void 0===t.rotation&&void 0===t.scale||(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0),e}}
1class J{constructor(){this.name=p.KHR_MESH_QUANTIZATION}}class U extends i.lGw{constructor(e,t,r,n){super(e,t,r,n)}copySampleValue_(e){let t=this.resultBuffer,r=this.sampleValues,n=this.valueSize,i=e*n*3+n;for(let e=0;e!==n;e++)t[e]=r[i+e];return t}interpolate_(e,t,r,n){let i=this.resultBuffer,a=this.sampleValues,o=this.valueSize,s=2*o,l=3*o,c=n-t,u=(r-t)/c,d=u*u,A=d*u,f=e*l,h=f-l,p=-2*A+3*d,B=A-d,m=1-p,C=B-d+u;for(let e=0;e!==o;e++){let t=a[h+e+o],r=a[h+e+s]*c,n=a[f+e+o],l=a[f+e]*c;i[e]=m*t+C*r+p*n+B*l}return i}}let k=new i.PTz;class j extends U{interpolate_(e,t,r,n){let i=super.interpolate_(e,t,r,n);return k.fromArray(i).normalize().toArray(i),i}}let N={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},K={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Q={9728:i.hxR,9729:i.k6q,9984:i.pHI,9985:i.kRr,9986:i.Cfg,9987:i.$_I},X={33071:i.ghU,33648:i.kTW,10497:i.GJx},Y={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Z={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",...c.r>=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},W={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},z={CUBICSPLINE:void 0,LINEAR:i.PJ3,STEP:i.ljd},V={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function q(e,t,r){for(let n in r.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=r.extensions[n])}function $(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ee(e){let t="",r=Object.keys(e).sort();for(let n=0,i=r.length;n<i;n++)t+=r[n]+":"+e[r[n]]+";";return t}function et(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}let er=new i.kn4;class en{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new h,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,n=!1,a=-1;"undefined"!=typeof navigator&&void 0!==navigator.userAgent&&(r=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),a=(n=navigator.userAgent.indexOf("Firefox")>-1)?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||r||n&&a<98?this.textureLoader=new i.Tap(this.options.manager):this.textureLoader=new i.Kzg(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new i.Y9S(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let r=this,n=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(t){let a={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:r,userData:{}};return q(i,a,n),$(a,n),Promise.all(r._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(let e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],r=this.json.meshes||[];for(let r=0,n=t.length;r<n;r++){let n=t[r].joints;for(let t=0,r=n.length;t<r;t++)e[n[t]].isBone=!0}for(let t=0,n=e.length;t<n;t++){let n=e[t];void 0!==n.mesh&&(this._addNodeRef(this.meshCache,n.mesh),void 0!==n.skin&&(r[n.mesh].isSkinnedMesh=!0)),void 0!==n.camera&&this._addNodeRef(this.cameraCache,n.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,r){if(e.refs[t]<=1)return r;let n=r.clone(),i=(e,t)=>{let r=this.associations.get(e);for(let[n,a]of(null!=r&&this.associations.set(t,r),e.children.entries()))i(a,t.children[n])};return i(r,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let r=0;r<t.length;r++){let n=e(t[r]);if(n)return n}return null}_invokeAll(e){let t=Object.values(this.plugins);t.unshift(this);let r=[];for(let n=0;n<t.length;n++){let i=e(t[n]);i&&r.push(i)}return r}getDependency(e,t){let r=e+":"+t,n=this.cache.get(r);if(!n){switch(e){case"scene":n=this.loadScene(t);break;case"node":n=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":n=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":n=this.loadAccessor(t);break;case"bufferView":n=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":n=this.loadBuffer(t);break;case"material":n=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":n=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":n=this.loadSkin(t);break;case"animation":n=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":n=this.loadCamera(t);break;default:if(!(n=this._invokeOne(function(r){return r!=this&&r.getDependency&&r.getDependency(e,t)})))throw Error("Unknown type: "+e)}this.cache.add(r,n)}return n}getDependencies(e){let t=this.cache.get(e);if(!t){let r=this;t=Promise.all((this.json[e+("mesh"===e?"es":"s")]||[]).map(function(t,n){return r.getDependency(e,n)})),this.cache.add(e,t)}return t}loadBuffer(e){let t=this.json.buffers[e],r=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");
1if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[p.KHR_BINARY_GLTF].body);let n=this.options;return new Promise(function(e,a){r.load(i.r6x.resolveURL(t.uri,n.path),e,void 0,function(){a(Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){let t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){let r=t.byteLength||0,n=t.byteOffset||0;return e.slice(n,n+r)})}loadAccessor(e){let t=this,r=this.json,n=this.json.accessors[e];if(void 0===n.bufferView&&void 0===n.sparse){let e=Y[n.type],t=K[n.componentType],r=!0===n.normalized,a=new t(n.count*e);return Promise.resolve(new i.THS(a,e,r))}let a=[];return void 0!==n.bufferView?a.push(this.getDependency("bufferView",n.bufferView)):a.push(null),void 0!==n.sparse&&(a.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),a.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(a).then(function(e){let a,o,s=e[0],l=Y[n.type],c=K[n.componentType],u=c.BYTES_PER_ELEMENT,d=u*l,A=n.byteOffset||0,f=void 0!==n.bufferView?r.bufferViews[n.bufferView].byteStride:void 0,h=!0===n.normalized;if(f&&f!==d){let e=Math.floor(A/f),r="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+e+":"+n.count,d=t.cache.get(r);d||(a=new c(s,e*f,n.count*f/u),d=new i.eB$(a,f/u),t.cache.add(r,d)),o=new i.eHs(d,l,A%f/u,h)}else a=null===s?new c(n.count*l):new c(s,A,n.count*l),o=new i.THS(a,l,h);if(void 0!==n.sparse){let t=Y.SCALAR,r=K[n.sparse.indices.componentType],a=n.sparse.indices.byteOffset||0,u=n.sparse.values.byteOffset||0,d=new r(e[1],a,n.sparse.count*t),A=new c(e[2],u,n.sparse.count*l);null!==s&&(o=new i.THS(o.array.slice(),o.itemSize,o.normalized));for(let e=0,t=d.length;e<t;e++){let t=d[e];if(o.setX(t,A[e*l]),l>=2&&o.setY(t,A[e*l+1]),l>=3&&o.setZ(t,A[e*l+2]),l>=4&&o.setW(t,A[e*l+3]),l>=5)throw Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return o})}loadTexture(e){let t=this.json,r=this.options,n=t.textures[e].source,i=t.images[n],a=this.textureLoader;if(i.uri){let e=r.manager.getHandler(i.uri);null!==e&&(a=e)}return this.loadTextureImage(e,n,a)}loadTextureImage(e,t,r){let n=this,a=this.json,o=a.textures[e],s=a.images[t],l=(s.uri||s.bufferView)+":"+o.sampler;if(this.textureCache[l])return this.textureCache[l];let c=this.loadImageSource(t,r).then(function(t){t.flipY=!1,t.name=o.name||s.name||"",""===t.name&&"string"==typeof s.uri&&!1===s.uri.startsWith("data:image/")&&(t.name=s.uri);let r=(a.samplers||{})[o.sampler]||{};return t.magFilter=Q[r.magFilter]||i.k6q,t.minFilter=Q[r.minFilter]||i.$_I,t.wrapS=X[r.wrapS]||i.GJx,t.wrapT=X[r.wrapT]||i.GJx,n.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[l]=c,c}loadImageSource(e,t){let r=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());let a=r.images[e],o=self.URL||self.webkitURL,s=a.uri||"",l=!1;if(void 0!==a.bufferView)s=this.getDependency("bufferView",a.bufferView).then(function(e){l=!0;let t=new Blob([e],{type:a.mimeType});return s=o.createObjectURL(t)});else if(void 0===a.uri)throw Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let c=Promise.resolve(s).then(function(e){return new Promise(function(r,a){let o=r;!0===t.isImageBitmapLoader&&(o=function(e){let t=new i.gPd(e);t.needsUpdate=!0,r(t)}),t.load(i.r6x.resolveURL(e,n.path),o,void 0,a)})}).then(function(e){var t;return!0===l&&o.revokeObjectURL(s),$(e,a),e.userData.mimeType=a.mimeType||((t=a.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",s),e});return this.sourceCache[e]=c,c}assignTexture(e,t,r,n){let i=this;return this.getDependency("texture",r.index).then(function(a){if(!a)return null;if(void 0!==r.texCoord&&r.texCoord>0&&((a=a.clone()).channel=r.texCoord),i.extensions[p.KHR_TEXTURE_TRANSFORM]){let e=void 0!==r.extensions?r.extensions[p.KHR_TEXTURE_TRANSFORM]:void 0;if(e){let t=i.associations.get(a);a=i.extensions[p.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),i.associations.set(a,t)}}return void 0!==n&&("number"==typeof n&&(n=3001===n?d:A),"colorSpace"in a?a.colorSpace
1=n:a.encoding=n===d?3001:3e3),e[t]=a,a})}assignFinalMaterial(e){let t=e.geometry,r=e.material,n=void 0===t.attributes.tangent,a=void 0!==t.attributes.color,o=void 0===t.attributes.normal;if(e.isPoints){let e="PointsMaterial:"+r.uuid,t=this.cache.get(e);t||(t=new i.BH$,i.imn.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,t.sizeAttenuation=!1,this.cache.add(e,t)),r=t}else if(e.isLine){let e="LineBasicMaterial:"+r.uuid,t=this.cache.get(e);t||(t=new i.mrM,i.imn.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,this.cache.add(e,t)),r=t}if(n||a||o){let e="ClonedMaterial:"+r.uuid+":";n&&(e+="derivative-tangents:"),a&&(e+="vertex-colors:"),o&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=r.clone(),a&&(t.vertexColors=!0),o&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(r))),r=t}e.material=r}getMaterialType(){return i._4j}loadMaterial(e){let t,r=this,n=this.json,a=this.extensions,o=n.materials[e],s={},l=o.extensions||{},c=[];if(l[p.KHR_MATERIALS_UNLIT]){let e=a[p.KHR_MATERIALS_UNLIT];t=e.getMaterialType(),c.push(e.extendParams(s,o,r))}else{let n=o.pbrMetallicRoughness||{};if(s.color=new i.Q1f(1,1,1),s.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;s.color.setRGB(e[0],e[1],e[2],A),s.opacity=e[3]}void 0!==n.baseColorTexture&&c.push(r.assignTexture(s,"map",n.baseColorTexture,d)),s.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,s.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(c.push(r.assignTexture(s,"metalnessMap",n.metallicRoughnessTexture)),c.push(r.assignTexture(s,"roughnessMap",n.metallicRoughnessTexture))),t=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,s)})))}!0===o.doubleSided&&(s.side=i.$EB);let u=o.alphaMode||V.OPAQUE;if(u===V.BLEND?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,u===V.MASK&&(s.alphaTest=void 0!==o.alphaCutoff?o.alphaCutoff:.5)),void 0!==o.normalTexture&&t!==i.V9B&&(c.push(r.assignTexture(s,"normalMap",o.normalTexture)),s.normalScale=new i.I9Y(1,1),void 0!==o.normalTexture.scale)){let e=o.normalTexture.scale;s.normalScale.set(e,e)}if(void 0!==o.occlusionTexture&&t!==i.V9B&&(c.push(r.assignTexture(s,"aoMap",o.occlusionTexture)),void 0!==o.occlusionTexture.strength&&(s.aoMapIntensity=o.occlusionTexture.strength)),void 0!==o.emissiveFactor&&t!==i.V9B){let e=o.emissiveFactor;s.emissive=new i.Q1f().setRGB(e[0],e[1],e[2],A)}return void 0!==o.emissiveTexture&&t!==i.V9B&&c.push(r.assignTexture(s,"emissiveMap",o.emissiveTexture,d)),Promise.all(c).then(function(){let n=new t(s);return o.name&&(n.name=o.name),$(n,o),r.associations.set(n,{materials:e}),o.extensions&&q(a,n,o),n})}createUniqueName(e){let t=i.Nwf.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,r=this.extensions,n=this.primitiveCache,a=[];for(let o=0,s=e.length;o<s;o++){let s=e[o],l=function(e){let t,r=e.extensions&&e.extensions[p.KHR_DRACO_MESH_COMPRESSION];if(t=r?"draco:"+r.bufferView+":"+r.indices+":"+ee(r.attributes):e.indices+":"+ee(e.attributes)+":"+e.mode,void 0!==e.targets)for(let r=0,n=e.targets.length;r<n;r++)t+=":"+ee(e.targets[r]);return t}(s),c=n[l];if(c)a.push(c.promise);else{let e;e=s.extensions&&s.extensions[p.KHR_DRACO_MESH_COMPRESSION]?function(e){return r[p.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(r){return ei(r,e,t)})}(s):ei(new i.LoY,s,t),n[l]={primitive:s,promise:e},a.push(e)}}return Promise.all(a)}loadMesh(e){let t=this,r=this.json,n=this.extensions,a=r.meshes[e],o=a.primitives,s=[];for(let e=0,t=o.length;e<t;e++){var c;let t=void 0===o[e].material?(void 0===(c=this.cache).DefaultMaterial&&(c.DefaultMaterial=new i._4j({color:0xffffff,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:i.hB5})),c.DefaultMaterial):this.getDependency("material",o[e].material);s.push(t)}return s.push(t.loadGeometries(o)),Promise.all(s).then(function(r){let s=r.slice(0,r.length-1),c=r[r.length-1],u=[];for(let r=0,d=c.length;r<d;r++){let d,A=c[r],f=o[r],h=s[r];if(f.mode===N.TRIANGLES||f.mode===N.TRIANGLE_STRIP||f.mode===N.TRIANGLE_FAN||void 0===f.mode)!0===(d=!0===a.isSkinnedMesh?new i.I46(A,h):new i.eaF(A,h)).isSkinnedMesh&&d.normalizeSkinWeights(),f.mode===N.TRIANGLE_STRIP?d.geometry=l(d.geometry,i.O49):f.mode===N.TRIANGLE_FAN&&(d.geometry=l(d.geometry,i.rYR));else if(f.mode===N.LINES)d=new i.DXC(A,h);else if(f.mode===N.LINE_STRIP)d=new i.N1A(A,h);else if(f.mode===N.LINE_LOOP)d=new i.FCc(A,h);else if(f.mode===N.POINTS)d=new i.ONl(A,h);else throw Error("THREE.GLTFLoader: Primitive mode unsupported: "+f.mode);Object.keys(d.geometry.morphAttributes).length>0&&function(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let r=0,n=t.weights.length;r<n;r++)e.morphTargetInfluences[r]=t.weights[r];if(t.extras&&Array.isArray(t.extras.targetNames)){let r=t.extras.targetNames;if(e.morphTargetInfluences.length===r.length){e.morphTargetDictionary={};for(let t=0,n=r.length;t<n;t++)e.morphTargetDictionary[r[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}(d,a),d.name=t.createUniqueName(a.name||"mesh_"+e),$(d,a),f.extensions&&q(n,d,f),t.assignFinalMaterial(d),u.push(d)}for(let r=0,n=u.length;r<n;r++)t.associations.set(u[r],{meshes:e,primitives:r});if(1===u.length)return a.extensions&&q(n,u[0],a),u[0];let d=new i.YJl;a.extensions&&q(n,d,a),t.associations.set(d,{meshes:e});for(let e=0,t=u.length;e<t;e++)d.add(u[e]);return d})}loadCamera(e){let t,r=this.json.cameras[e],n=r[r.type];return n?("perspective"===r.type?t=new i.ubm(i.cj9.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):"orthographic"===r.type&&(t=new i.qUd(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),r.name&&(t.name=this.createUniqueName(r.name)),$(t,r),Promise.resolve(t)):void console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){let t=this.json.skins[e],r=[];for(let e=0,n=t.joints.length;e<n;e++)r.push(this._loadNodeShallow(t.joints[e]));return void 0!==t.inverseBindMatrices?r.push(this.getDependency("accessor",t.inverseBindMatrices)):r.push(null),Promise.all(r).then(function(e){let r=e.pop(),n=[],a=[];for(let o=0,s=e.length;o<s;o++){let s=e[o];if(s){n.push(s);let e=new i.kn4;null!==r&&e.fromArray(r.array,16*o),a.push(e)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[o])}return new i.EAD(n,a)})}loadAnimation(e){let t=this.json,r=this,n=t.animations[e],a=n.name?n.name:"animation_"+e,o=[],s=[],l=[],c=[],u=[];for(let e=0,t=n.channels.length;e<t;
1e++){let t=n.channels[e],r=n.samplers[t.sampler],i=t.target,a=i.node,d=void 0!==n.parameters?n.parameters[r.input]:r.input,A=void 0!==n.parameters?n.parameters[r.output]:r.output;void 0!==i.node&&(o.push(this.getDependency("node",a)),s.push(this.getDependency("accessor",d)),l.push(this.getDependency("accessor",A)),c.push(r),u.push(i))}return Promise.all([Promise.all(o),Promise.all(s),Promise.all(l),Promise.all(c),Promise.all(u)]).then(function(e){let t=e[0],n=e[1],o=e[2],s=e[3],l=e[4],c=[];for(let e=0,i=t.length;e<i;e++){let i=t[e],a=n[e],u=o[e],d=s[e],A=l[e];if(void 0===i)continue;i.updateMatrix&&i.updateMatrix();let f=r._createAnimationTracks(i,a,u,d,A);if(f)for(let e=0;e<f.length;e++)c.push(f[e])}return new i.tz3(a,void 0,c)})}createNodeMesh(e){let t=this.json,r=this,n=t.nodes[e];return void 0===n.mesh?null:r.getDependency("mesh",n.mesh).then(function(e){let t=r._getNodeRef(r.meshCache,n.mesh,e);return void 0!==n.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,r=n.weights.length;t<r;t++)e.morphTargetInfluences[t]=n.weights[t]}),t})}loadNode(e){let t=this.json.nodes[e],r=this._loadNodeShallow(e),n=[],i=t.children||[];for(let e=0,t=i.length;e<t;e++)n.push(this.getDependency("node",i[e]));let a=void 0===t.skin?Promise.resolve(null):this.getDependency("skin",t.skin);return Promise.all([r,Promise.all(n),a]).then(function(e){let t=e[0],r=e[1],n=e[2];null!==n&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(n,er)});for(let e=0,n=r.length;e<n;e++)t.add(r[e]);return t})}_loadNodeShallow(e){let t=this.json,r=this.extensions,n=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];let a=t.nodes[e],o=a.name?n.createUniqueName(a.name):"",s=[],l=n._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return l&&s.push(l),void 0!==a.camera&&s.push(n.getDependency("camera",a.camera).then(function(e){return n._getNodeRef(n.cameraCache,a.camera,e)})),n._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){s.push(e)}),this.nodeCache[e]=Promise.all(s).then(function(t){let s;if((s=!0===a.isBone?new i.$Kf:t.length>1?new i.YJl:1===t.length?t[0]:new i.B69)!==t[0])for(let e=0,r=t.length;e<r;e++)s.add(t[e]);if(a.name&&(s.userData.name=a.name,s.name=o),$(s,a),a.extensions&&q(r,s,a),void 0!==a.matrix){let e=new i.kn4;e.fromArray(a.matrix),s.applyMatrix4(e)}else void 0!==a.translation&&s.position.fromArray(a.translation),void 0!==a.rotation&&s.quaternion.fromArray(a.rotation),void 0!==a.scale&&s.scale.fromArray(a.scale);return n.associations.has(s)||n.associations.set(s,{}),n.associations.get(s).nodes=e,s}),this.nodeCache[e]}loadScene(e){let t=this.extensions,r=this.json.scenes[e],n=this,a=new i.YJl;r.name&&(a.name=n.createUniqueName(r.name)),$(a,r),r.extensions&&q(t,a,r);let o=r.nodes||[],s=[];for(let e=0,t=o.length;e<t;e++)s.push(n.getDependency("node",o[e]));return Promise.all(s).then(function(e){for(let t=0,r=e.length;t<r;t++)a.add(e[t]);return n.associations=(e=>{let t=new Map;for(let[e,r]of n.associations)(e instanceof i.imn||e instanceof i.gPd)&&t.set(e,r);return e.traverse(e=>{let r=n.associations.get(e);null!=r&&t.set(e,r)}),t})(a),a})}_createAnimationTracks(e,t,r,n,a){let o,s=[],l=e.name?e.name:e.uuid,c=[];switch(W[a.path]===W.weights?e.traverse(function(e){e.morphTargetInfluences&&c.push(e.name?e.name:e.uuid)}):c.push(l),W[a.path]){case W.weights:o=i.Hit;break;case W.rotation:o=i.MBL;break;case W.position:case W.scale:o=i.RiT;break;default:o=1===r.itemSize?i.Hit:i.RiT}let u=void 0!==n.interpolation?z[n.interpolation]:i.PJ3,d=this._getArrayFromAccessor(r);for(let e=0,r=c.length;e<r;e++){let r=new o(c[e]+"."+W[a.path],t.array,d,u);"CUBICSPLINE"===n.interpolation&&this._createCubicSplineTrackInterpolant(r),s.push(r)}return s}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){let e=et(t.constructor),r=new Float32Array(t.length);for(let n=0,i=t.length;n<i;n++)r[n]=t[n]*e;t=r}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof i.MBL?j:U)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function ei(e,t,r){let n=t.attributes,a=[];for(let t in n){let i=Z[t]||t.toLowerCase();i in e.attributes||a.push(function(t,n){return r.getDependency("accessor",t).then(function(t){e.setAttribute(n,t)})}(n[t],i))}if(void 0!==t.indices&&!e.index){let n=r.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});a.push(n)}return $(e,t),!function(e,t,r){let n=t.attributes,a=new i.NRn;if(void 0===n.POSITION)return;{let e=r.json.accessors[n.POSITION],t=e.min,o=e.max;if(void 0===t||void 0===o)return console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(a.set(new i.Pq0(t[0],t[1],t[2]),new i.Pq0(o[0],o[1],o[2])),e.normalized){let t=et(K[e.componentType]);a.min.multiplyScalar(t),a.max.multiplyScalar(t)}}let o=t.targets;if(void 0!==o){let e=new i.Pq0,t=new i.Pq0;for(let n=0,i=o.length;n<i;n++){let i=o[n];
1if(void 0!==i.POSITION){let n=r.json.accessors[i.POSITION],a=n.min,o=n.max;if(void 0!==a&&void 0!==o){if(t.setX(Math.max(Math.abs(a[0]),Math.abs(o[0]))),t.setY(Math.max(Math.abs(a[1]),Math.abs(o[1]))),t.setZ(Math.max(Math.abs(a[2]),Math.abs(o[2]))),n.normalized){let e=et(K[n.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}a.expandByVector(e)}e.boundingBox=a;let s=new i.iyt;a.getCenter(s.center),s.radius=a.min.distanceTo(a.max)/2,e.boundingSphere=s}(e,t,r),Promise.all(a).then(function(){return void 0!==t.targets?function(e,t,r){let n=!1,i=!1,a=!1;for(let e=0,r=t.length;e<r;e++){let r=t[e];if(void 0!==r.POSITION&&(n=!0),void 0!==r.NORMAL&&(i=!0),void 0!==r.COLOR_0&&(a=!0),n&&i&&a)break}if(!n&&!i&&!a)return Promise.resolve(e);let o=[],s=[],l=[];for(let c=0,u=t.length;c<u;c++){let u=t[c];if(n){let t=void 0!==u.POSITION?r.getDependency("accessor",u.POSITION):e.attributes.position;o.push(t)}if(i){let t=void 0!==u.NORMAL?r.getDependency("accessor",u.NORMAL):e.attributes.normal;s.push(t)}if(a){let t=void 0!==u.COLOR_0?r.getDependency("accessor",u.COLOR_0):e.attributes.color;l.push(t)}}return Promise.all([Promise.all(o),Promise.all(s),Promise.all(l)]).then(function(t){let r=t[0],o=t[1],s=t[2];return n&&(e.morphAttributes.position=r),i&&(e.morphAttributes.normal=o),a&&(e.morphAttributes.color=s),e.morphTargetsRelative=!0,e})}(e,t.targets,r):e})}var ea=r(84877);let eo=null,es="https://www.gstatic.com/draco/versioned/decoders/1.5.5/";function el(e=!0,t=!0,r){return i=>{r&&r(i),e&&(eo||(eo=new o),eo.setDecoderPath("string"==typeof e?e:es),i.setDRACOLoader(eo)),t&&i.setMeshoptDecoder((()=>{let e;if(n)return n;let t=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),r=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if("object"!=typeof WebAssembly)return{supported:!1};let i="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";
1WebAssembly.validate(t)&&(i="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");let a=WebAssembly.instantiate(function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r){let n=e.charCodeAt(r);t[r]=n>96?n-71:n>64?n-65:n>47?n+4:n>46?63:62}let n=0;for(let i=0;i<e.length;++i)t[n++]=t[i]<60?r[t[i]]:(t[i]-60)*64+t[++i];return t.buffer.slice(0,n)}(i),{}).then(t=>{(e=t.instance).exports.__wasm_call_ctors()});function o(t,r,n,i,a,o){let s=e.exports.sbrk,l=n+3&-4,c=s(l*i),u=s(a.length),d=new Uint8Array(e.exports.memory.buffer);d.set(a,u);let A=t(c,n,i,u,a.length);if(0===A&&o&&o(c,l,i),r.set(d.subarray(c,c+n*i)),s(c-s(0)),0!==A)throw Error(`Malformed buffer data: ${A}`)}let s={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return n={ready:a,supported:!0,decodeVertexBuffer(t,r,n,i,a){o(e.exports.meshopt_decodeVertexBuffer,t,r,n,i,e.exports[s[a]])},decodeIndexBuffer(t,r,n,i){o(e.exports.meshopt_decodeIndexBuffer,t,r,n,i)},decodeIndexSequence(t,r,n,i){o(e.exports.meshopt_decodeIndexSequence,t,r,n,i)},decodeGltfBuffer(t,r,n,i,a,c){o(e.exports[l[a]],t,r,n,i,e.exports[s[c]])}}})())}}let ec=(e,t,r,n)=>(0,ea.G)(f,e,el(t,r,n));ec.preload=(e,t,r,n)=>ea.G.preload(f,e,el(t,r,n)),ec.clear=e=>ea.G.clear(f,e),ec.setDecoderPath=e=>{es=e}},54735:(e,t,r)=>{r.d(t,{Af:()=>s,Nz:()=>i,u5:()=>l,y3:()=>d});var n=r(12115);function i(e,t,r){if(!e)return;if(!0===r(e))return e;let n=t?e.return:e.child;for(;n;){let e=i(n,t,r);if(e)return e;n=t?null:n.sibling}}function a(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}(()=>{var e,t;return"undefined"!=typeof window&&((null==(e=window.document)?void 0:e.createElement)||(null==(t=window.navigator)?void 0:t.product)==="ReactNative")}
1)()?n.useLayoutEffect:n.useEffect;let o=a(n.createContext(null));class s extends n.Component{render(){return n.createElement(o.Provider,{value:this._reactInternals},this.props.children)}}function l(){let e=n.useContext(o);if(null===e)throw Error("its-fine: useFiber must be called within a <FiberProvider />!");let t=n.useId();return n.useMemo(()=>{for(let r of[e,null==e?void 0:e.alternate]){if(!r)continue;let e=i(r,!1,e=>{let r=e.memoizedState;for(;r;){if(r.memoizedState===t)return!0;r=r.next}});if(e)return e}},[e,t])}let c=Symbol.for("react.context"),u=e=>null!==e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===c;function d(){let e=function(){let e=l(),[t]=n.useState(()=>new Map);t.clear();let r=e;for(;r;){let e=r.type;u(e)&&e!==o&&!t.has(e)&&t.set(e,n.use(a(e))),r=r.return}return t}();return n.useMemo(()=>Array.from(e.keys()).reduce((t,r)=>i=>n.createElement(t,null,n.createElement(r.Provider,{...i,value:e.get(r)})),e=>n.createElement(s,{...e})),[e])}},69336:(e,t,r)=>{r.d(t,{u:()=>s});var n=r(88945),i=r(12115
1),a=r(84877),o=r(85339);let s=i.forwardRef(({envMap:e,resolution:t=256,frames:r=1/0,makeDefault:s,children:l,...c},u)=>{let d=(0,a.C)(({set:e})=>e),A=(0,a.C)(({camera:e})=>e),f=(0,a.C)(({size:e})=>e),h=i.useRef(null);i.useImperativeHandle(u,()=>h.current,[]);let p=i.useRef(null),B=function(e,t,r){let n=(0,a.C)(e=>e.size),s=(0,a.C)(e=>e.viewport),l="number"==typeof e?e:n.width*s.dpr,c=n.height*s.dpr,u=("number"==typeof e?void 0:e)||{},{samples:d=0,depth:A,...f}=u,h=null!=A?A:u.depthBuffer,p=i.useMemo(()=>{let e=new o.nWS(l,c,{minFilter:o.k6q,magFilter:o.k6q,type:o.ix0,...f});return h&&(e.depthTexture=new o.VCu(l,c,o.RQf)),e.samples=d,e},[]);return i.useLayoutEffect(()=>{p.setSize(l,c),d&&(p.samples=d)},[d,p,l,c]),i.useEffect(()=>()=>p.dispose(),[]),p}(t);i.useLayoutEffect(()=>{c.manual||(h.current.aspect=f.width/f.height)},[f,c]),i.useLayoutEffect(()=>{h.current.updateProjectionMatrix()});let m=0,C=null,g="function"==typeof l;return(0,a.D)(t=>{g&&(r===1/0||m<r)&&(p.current.visible=!1,t.gl.setRenderTarget(B),C=t.scene.background,e&&(t.scene.background=e),t.gl.render(t.scene,h.current),t.scene.background=C,t.gl.setRenderTarget(null),p.current.visible=!0,m++)}),i.useLayoutEffect(()=>{if(s)return d(()=>({camera:h.current})),()=>d(()=>({camera:A}))},[h,s,d]),i.createElement(i.Fragment,null,i.createElement("perspectiveCamera",(0,n.A)({ref:h},c),!g&&l),i.createElement("group",{ref:p},g&&l(B.texture)))})},83060:(e,t,r)=>{let n;r.d(t,{OH:()=>eC});var i=r(88945),a=r(12115),o=r(84877),s=r(85339),l=r(14814);class c extends s.eaF{constructor(e,t){var r,n;let i=(e=>e&&e.isCubeTexture)(e),a=Math.floor(Math.log2((null!=(n=i?null==(r=e.image[0])?void 0:r.width:e.image.width)?n:1024)/4)),o=Math.pow(2,a),c=3*Math.max(o,112),u=`
2        varying vec3 vWorldPosition;
3        void main() 
4        {
5            vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) );
6            vWorldPosition = worldPosition.xyz;
7            
8            gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
9        }
10        `,d=[i?"#define ENVMAP_TYPE_CUBE":"",`#define CUBEUV_TEXEL_WIDTH ${1/c}`,`#define CUBEUV_TEXEL_HEIGHT ${1/(4*o)}`,`#define CUBEUV_MAX_MIP ${a}.0`].join("\n")+`
11        #define ENVMAP_TYPE_CUBE_UV
12        varying vec3 vWorldPosition;
13        uniform float radius;
14        uniform float height;
15        uniform float angle;
16        #ifdef ENVMAP_TYPE_CUBE
17            uniform samplerCube map;
18        #else
19            uniform sampler2D map;
20        #endif
21        // From: https://www.shadertoy.com/view/4tsBD7
22        float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) 
23        {
24            float d = dot ( rd, n );
25            
26            if( d > 0.0 ) { return 1e6; }
27            
28            vec3  o = ro - c;
29            float t = - dot( n, o ) / d;
30            vec3  q = o + rd * t;
31            
32            return ( dot( q, q ) < r * r ) ? t : 1e6;
33        }
34        // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm
35        float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) 
36        {
37            vec3 oc = ro - ce;
38            float b = dot( oc, rd );
39            float c = dot( oc, oc ) - ra * ra;
40            float h = b * b - c;
41            
42            if( h < 0.0 ) { return -1.0; }
43            
44            h = sqrt( h );
45            
46            return - b + h;
47        }
48        vec3 project() 
49        {
50            vec3 p = normalize( vWorldPosition );
51            vec3 camPos = cameraPosition;
52            camPos.y -= height;
53            float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius );
54            if( intersection > 0.0 ) {
55                
56                vec3 h = vec3( 0.0, - height, 0.0 );
57                float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius );
58                p = ( camPos + min( intersection, intersection2 ) * p ) / radius;
59            } else {
60                p = vec3( 0.0, 1.0, 0.0 );
61            }
62            return p;
63        }
64        #include <common>
65        #include <cube_uv_reflection_fragment>
66        void main() 
67        {
68            vec3 projectedWorldPosition = project();
69            
70            #ifdef ENVMAP_TYPE_CUBE
71                vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb;
72            #else
73                vec3 direction = normalize( projectedWorldPosition );
74                vec2 uv = equirectUv( direction );
75                vec3 outcolor = texture2D( map, uv ).rgb;
76            #endif
77            gl_FragColor = vec4( outcolor, 1.0 );
78            #include <tonemapping_fragment>
79            #include <${l.r>=154?"colorspace_fragment":"encodings_fragment"}>
80        }
81        `,A={map:{value:e},height:{value:(null==t?void 0:t.height)||15},radius:{value:(null==t?void 0:t.radius)||100}};super(new s.WBB(1,16),new s.BKk({uniforms:A,fragmentShader:d,vertexShader:u,side:s.$EB}))}set radius(e){this.material.uniforms.radius.value=e}get radius(){return this.material.uniforms.radius.value}set height(e){this.material.uniforms.height.value=e}get height(){return this.material.uniforms.height.value}}class u extends s.BRH{constructor(e){super(e),this.type=s.ix0}parse(e){let t,r,n,i=function(e,t){switch(e){case 1:throw Error("THREE.RGBELoader: Read Error: "+(t||""));case 2:throw Error("THREE.RGBELoader: Write Error: "+(t||""));case 3:throw Error("THREE.RGBELoader: Bad File Format: "+(t||""));default:throw Error("THREE.RGBELoader: Memory Error: "+(t||""))}},a=function(e,t,r){t=t||1024;let n=e.pos,i=-1,a=0,o="",s=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));for(;0>(i=s.indexOf("\n"))&&a<t&&n<e.byteLength;)o+=s,a+=s.length,n+=128,s+=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));return -1<i&&(!1!==r&&(e.pos+=a+i+1),o+s.slice(0,i))},o=new Uint8Array(e);o.pos=0;let l=function(e){let t,r,n=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,o=/^\s*EXPOSURE\s*=\s
81*(\d+(\.\d+)?)\s*$/,s=/^\s*FORMAT=(\S+)\s*$/,l=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,c={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};for(!(e.pos>=e.byteLength)&&(t=a(e))||i(1,"no header found"),(r=t.match(/^#\?(\S+)/))||i(3,"bad initial token"),c.valid|=1,c.programtype=r[1],c.string+=t+"\n";!1!==(t=a(e));){if(c.string+=t+"\n","#"===t.charAt(0)){c.comments+=t+"\n";continue}if((r=t.match(n))&&(c.gamma=parseFloat(r[1])),(r=t.match(o))&&(c.exposure=parseFloat(r[1])),(r=t.match(s))&&(c.valid|=2,c.format=r[1]),(r=t.match(l))&&(c.valid|=4,c.height=parseInt(r[1],10),c.width=parseInt(r[2],10)),2&c.valid&&4&c.valid)break}return 2&c.valid||i(3,"missing format specifier"),4&c.valid||i(3,"missing image size specifier"),c}(o),c=l.width,u=l.height,d=function(e,t,r){if(t<8||t>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);t!==(e[2]<<8|e[3])&&i(3,"wrong scanline width");let n=new Uint8Array(4*t*r);n.length||i(4,"unable to allocate buffer space");let a=0,o=0,s=4*t,l=new Uint8Array(4),c=new Uint8Array(s),u=r;for(;u>0&&o<e.byteLength;){o+4>e.byteLength&&i(1),l[0]=e[o++],l[1]=e[o++],l[2]=e[o++],l[3]=e[o++],(2!=l[0]||2!=l[1]||(l[2]<<8|l[3])!=t)&&i(3,"bad rgbe scanline format");let r=0,d;for(;r<s&&o<e.byteLength;){let t=(d=e[o++])>128;if(t&&(d-=128),(0===d||r+d>s)&&i(3,"bad scanline data"),t){let t=e[o++];for(let e=0;e<d;e++)c[r++]=t}else c.set(e.subarray(o,o+d),r),r+=d,o+=d}for(let e=0;e<t;e++){let r=0;n[a]=c[e+r],r+=t,n[a+1]=c[e+r],r+=t,n[a+2]=c[e+r],r+=t,n[a+3]=c[e+r],a+=4}u--}return n}(o.subarray(o.pos),c,u);switch(this.type){case s.RQf:let A=new Float32Array(4*(n=d.length/4));for(let e=0;e<n;e++)!function(e,t,r,n){let i=Math.pow(2,e[t+3]-128)/255;r[n+0]=e[t+0]*i,r[n+1]=e[t+1]*i,r[n+2]=e[t+2]*i,r[n+3]=1}(d,4*e,A,4*e);t=A,r=s.RQf;break;case s.ix0:let f=new Uint16Array(4*(n=d.length/4));for(let e=0;e<n;e++)!function(e,t,r,n){let i=Math.pow(2,e[t+3]-128)/255;r[n+0]=s.GxU.toHalfFloat(Math.min(e[t+0]*i,65504)),r[n+1]=s.GxU.toHalfFloat(Math.min(e[t+1]*i,65504)),r[n+2]=s.GxU.toHalfFloat(Math.min(e[t+2]*i,65504)),r[n+3]=s.GxU.toHalfFloat(1)}(d,4*e,f,4*e);t=f,r=s.ix0;break;default:throw Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:c,height:u,data:t,header:l.string,gamma:l.gamma,exposure:l.exposure,type:r}}setDataType(e){return this.type=e,this}load(e,t,r,n){return super.load(e,function(e,r){switch(e.type){case s.RQf:case s.ix0:"colorSpace"in e?e.colorSpace="srgb-linear":e.encoding=3e3,e.minFilter=s.k6q,e.magFilter=s.k6q,e.generateMipmaps=!1,e.flipY=!0}t&&t(e,r)},r,n)}}var d=Uint8Array,A=Uint16Array,f=Uint32Array,h=new d([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),p=new d([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),B=new d([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),m=function(e,t){for(var r=new A(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];for(var i=new f(r[30]),n=1;n<30;++n)for(var a=r[n];a<r[n+1];++a)i[a]=a-r[n]<<5|n;return[r,i]},C=m(h,2),g=C[0],v=C[1];g[28]=258,v[258]=28;var b=m(p,0),E=b[0];b[1];for(var M=new A(32768),y=0;y<32768;++y){var w=(43690&y)>>>1|(21845&y)<<1;w=(61680&(w=(52428&w)>>>2|(13107&w)<<2))>>>4|(3855&w)<<4,M[y]=((65280&w)>>>8|(255&w)<<8)>>>1}for(var I=function(e,t,r){for(var n,i=e.length,a=0,o=new A(t);a<i;++a)++o[e[a]-1];var s=new A(t);for(a=0;a<t;++a)s[a]=s[a-1]+o[a-1]<<1;if(r){n=new A(1<<t);var l=15-t;for(a=0;a<i;++a)if(e[a])for(var c=a<<4|e[a],u=t-e[a],d=s[e[a]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)n[M[d]>>>l]=c}else for(a=0,n=new A(i);a<i;++a)e[a]&&(n[a]=M[s[e[a]-1]++]>>>15-e[a]);return n},F=new d(288),y=0;y<144;++y)F[y]=8;for(var y=144;y<256;++y)F[y]=9;for(var y=256;y<280;++y)F[y]=7;for(var y=280;y<288;++y)F[y]=8;for(var R=new d(32),y=0;y<32;++y)R[y]=5;var T=I(F,9,1),G=I(R,5,1),D=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},H=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},x=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},P=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(e instanceof A?A:e instanceof f?f:d)(r-t);return n.set(e.subarray(t,r)),n},S=function(e,t,r){var n=e.length;if(!n||r&&!r.l&&n<5)return t||new d(0);var i=!t||r,a=!r||r.i;r||(r={}),t||(t=new d(3*n));var o=function(e){var r=t.length;if(e>r){var n=new d(Math.max(2*r,e));n.set(t),t=n}},s=r.f||0,l=r.p||0,c=r.b||0,u=r.l,A=r.d,f=r.m,m=r.n,C=8*n;do{if(!u){r.f=s=H(e,l,1);var v=H(e,l+1,3);if(l+=3,v)if(1==v)u=T,A=G,f=9,m=5;else if(2==v){var b=H(e,l,31)+257,M=H(e,l+10,15)+4,y=b+H(e,l+5,31)+1;l+=14;for(var w=new d(y),F=new d(19),R=0;R<M;++R)F[B[R]]=H(e,l+3*R,7);l+=3*M;for(var S=D(F),O=(1<<S)-1,L=I(F,S,1),R=0;R<y;){var _=L[H(e,l,O)];l+=15&_;var J=_>>>4;if(J<16)w[R++]=J;else{var U=0,k=0;for(16==J?(k=3+H(e,l,3),l+=2,U=w[R-1]):17==J?(k=3+H(e,l,7),l+=3):18==J&&(k=11+H(e,l,127),l+=7);k--;)w[R++]=U}}var j=w.subarray(0,b),N=w.subarray(b);
81f=D(j),m=D(N),u=I(j,f,1),A=I(N,m,1)}else throw"invalid block type";else{var K,J=((K=l)/8|0)+(7&K&&1)+4,Q=e[J-4]|e[J-3]<<8,X=J+Q;if(X>n){if(a)throw"unexpected EOF";break}i&&o(c+Q),t.set(e.subarray(J,X),c),r.b=c+=Q,r.p=l=8*X;continue}if(l>C){if(a)throw"unexpected EOF";break}}i&&o(c+131072);for(var Y=(1<<f)-1,Z=(1<<m)-1,W=l;;W=l){var U=u[x(e,l)&Y],z=U>>>4;if((l+=15&U)>C){if(a)throw"unexpected EOF";break}if(!U)throw"invalid length/literal";if(z<256)t[c++]=z;else if(256==z){W=l,u=null;break}else{var V=z-254;if(z>264){var R=z-257,q=h[R];V=H(e,l,(1<<q)-1)+g[R],l+=q}var $=A[x(e,l)&Z],ee=$>>>4;if(!$)throw"invalid distance";l+=15&$;var N=E[ee];if(ee>3){var q=p[ee];N+=x(e,l)&(1<<q)-1,l+=q}if(l>C){if(a)throw"unexpected EOF";break}i&&o(c+131072);for(var et=c+V;c<et;c+=4)t[c]=t[c-N],t[c+1]=t[c+1-N],t[c+2]=t[c+2-N],t[c+3]=t[c+3-N];c=et}}r.l=u,r.p=W,r.b=c,u&&(s=1,r.m=f,r.d=A,r.n=m)}while(!s);return c==t.length?t:P(t,0,c)},O=new d(0),L=function(e){if((15&e[0])!=8||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function _(e,t){return S((L(e),e.subarray(2,-4)),t)}var J="undefined"!=typeof TextDecoder&&new TextDecoder;try{J.decode(O,{stream:!0})}catch(e){}let U=l.r>=152;class k extends s.BRH{constructor(e){super(e),this.type=s.ix0}parse(e){let t={l:0,c:0,lc:0};function r(e,r,n,i,a){for(;n<e;)r=r<<8|I(i,a),n+=8;t.l=r>>(n-=e)&(1<<e)-1,t.c=r,t.lc=n}let n=Array(59),i={c:0,lc:0};function a(e,t,r,n){e=e<<8|I(r,n),t+=8,i.c=e,i.lc=t}let o={c:0,lc:0};function l(e,t,r,n,s,l,c,u,d,A){if(e==t){n<8&&(a(r,n,s,c),r=i.c,n=i.lc);var f=r>>(n-=8),f=new Uint8Array([f])[0];if(d.value+f>A)return!1;for(var h=u[d.value-1];f-- >0;)u[d.value++]=h}else{if(!(d.value<A))return!1;u[d.value++]=e}o.c=r,o.lc=n}function c(e){var t=65535&e;return t>32767?t-65536:t}let u={a:0,b:0};function d(e,t){var r=c(e),n=c(t),i=r+(1&n)+(n>>1),a=i-n;u.a=i,u.b=a}function A(e,t){var r=65535&t,n=(65535&e)-(r>>1)&65535;u.a=r+n-32768&65535,u.b=n}function f(e,s,c,u,d,A){var f=c.value,h=w(s,c),p=w(s,c);c.value+=4;var B=w(s,c);if(c.value+=4,h<0||h>=65537||p<0||p>=65537)throw"Something wrong with HUF_ENCSIZE";for(var m=Array(65537),C=Array(16384),g=0;g<16384;g++)C[g]={},C[g].len=0,C[g].lit=0,C[g].p=null;var v=u-(c.value-f);if(!function(e,i,a,o,s,l,c){for(var u=0,d=0;s<=l;s++){if(a.value-a.value>o)return!1;r(6,u,d,e,a);var A=t.l;if(u=t.c,d=t.lc,c[s]=A,63==A){if(a.value-a.value>o)throw"Something wrong with hufUnpackEncTable";r(8,u,d,e,a);var f=t.l+6;if(u=t.c,d=t.lc,s+f>l+1)throw"Something wrong with hufUnpackEncTable";for(;f--;)c[s++]=0;s--}else if(A>=59){var f=A-59+2;if(s+f>l+1)throw"Something wrong with hufUnpackEncTable";for(;f--;)c[s++]=0;s--}}!function(e){for(var t=0;t<=58;++t)n[t]=0;for(var t=0;t<65537;++t)n[e[t]]+=1;for(var r=0,t=58;t>0;--t){var i=r+n[t]>>1;n[t]=r,r=i}for(var t=0;t<65537;++t){var a=e[t];a>0&&(e[t]=a|n[a]++<<6)}}(c)}(e,0,c,v,h,p,m),B>8*(u-(c.value-f)))throw"Something wrong with hufUncompress";!function(e,t,r,n){for(;t<=r;t++){var i=e[t]>>6,a=63&e[t];if(i>>a)throw"Invalid table entry";if(a>14){var o=n[i>>a-14];if(o.len)throw"Invalid table entry";if(o.lit++,o.p){var s=o.p;o.p=Array(o.lit);for(var l=0;l<o.lit-1;++l)o.p[l]=s[l]}else o.p=[,];o.p[o.lit-1]=t}else if(a)for(var c=0,l=1<<14-a;l>0;l--){var o=n[(i<<14-a)+c];if(o.len||o.p)throw"Invalid table entry";o.len=a,o.lit=t,c++}}}(m,h,p,C),function(e,t,r,n,s,c,u,d,A,f){for(var h=0,p=0,B=Math.trunc(s.value+(c+7)/8);s.value<B;)for(a(h,p,r,s),h=i.c,p=i.lc;p>=14;){var m=t[h>>p-14&16383];if(m.len)p-=m.len,l(m.lit,u,h,p,r,n,s,A,f,d),h=o.c,p=o.lc;else{if(!m.p)throw"hufDecode issues";for(C=0;C<m.lit;C++){for(var C,g=63&e[m.p[C]];p<g&&s.value<B;)a(h,p,r,s),h=i.c,p=i.lc;if(p>=g&&e[m.p[C]]>>6==(h>>p-g&(1<<g)-1)){p-=g,l(m.p[C],u,h,p,r,n,s,A,f,d),h=o.c,p=o.lc;break}}if(C==m.lit)throw"hufDecode issues"}}var v=8-c&7;for(h>>=v,p-=v;p>0;){var m=t[h<<14-p&16383];if(m.len)p-=m.len,l(m.lit,u,h,p,r,n,s,A,f,d),h=o.c,p=o.lc;else throw"hufDecode issues"}}(m,C,e,s,c,B,p,A,d,{value:0})}function h(e){for(var t=1;t<e.length;t++){var r=e[t-1]+e[t]-128;e[t]=r}}function p(e,t){for(var r=0,n=Math.floor((e.length+1)/2),i=0,a=e.length-1;!(i>a)&&(t[i++]=e[r++],!(i>a));){;t[i++]=e[n++]}}function B(e){for(var t=e.byteLength,r=[],n=0,i=new DataView(e);t>0;){var a=i.getInt8(n++);if(a<0){var o=-a;t-=o+1;for(var s=0;s<o;s++)r.push(i.getUint8(n++))}else{var o=a;t-=2;for(var l=i.getUint8(n++),s=0;s<o+1;s++)r.push(l)}}return r}function m(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function C(e){var t=new Uint8Array(B(e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size))),r=new 
81Uint8Array(t.length);return h(t),p(t,r),new DataView(r.buffer)}function g(e){var t=_(e.array.slice(e.offset.value,e.offset.value+e.size)),r=new Uint8Array(t.length);return h(t),p(t,r),new DataView(r.buffer)}function v(e){for(var t=e.viewer,r={value:e.offset.value},n=new Uint16Array(e.width*e.scanlineBlockSize*(e.channels*e.type)),i=new Uint8Array(8192),a=0,o=Array(e.channels),s=0;s<e.channels;s++)o[s]={},o[s].start=a,o[s].end=o[s].start,o[s].nx=e.width,o[s].ny=e.lines,o[s].size=e.type,a+=o[s].nx*o[s].ny*o[s].size;var l=H(t,r),c=H(t,r);if(c>=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(l<=c)for(var s=0;s<c-l+1;s++)i[s+l]=F(t,r);var h=new Uint16Array(65536),p=function(e,t){for(var r=0,n=0;n<65536;++n)(0==n||e[n>>3]&1<<(7&n))&&(t[r++]=n);for(var i=r-1;r<65536;)t[r++]=0;return i}(i,h),B=w(t,r);f(e.array,t,r,B,n,a);for(var s=0;s<e.channels;++s)for(var m=o[s],C=0;C<o[s].size;++C)!function(e,t,r,n,i,a,o){for(var s=o<16384,l=r>i?i:r,c=1;c<=l;)c<<=1;for(c>>=1,f=c,c>>=1;c>=1;){for(var f,h,p,B,m,C=0,g=0+a*(i-f),v=a*c,b=a*f,E=n*c,M=n*f;C<=g;C+=b){for(var y=C,w=C+n*(r-f);y<=w;y+=M){var I=y+E,F=y+v,R=F+E;s?(d(e[y+t],e[F+t]),h=u.a,B=u.b,d(e[I+t],e[R+t]),p=u.a,m=u.b,d(h,p),e[y+t]=u.a,e[I+t]=u.b,d(B,m)):(A(e[y+t],e[F+t]),h=u.a,B=u.b,A(e[I+t],e[R+t]),p=u.a,m=u.b,A(h,p),e[y+t]=u.a,e[I+t]=u.b,A(B,m)),e[F+t]=u.a,e[R+t]=u.b}if(r&c){var F=y+v;s?d(e[y+t],e[F+t]):A(e[y+t],e[F+t]),h=u.a,e[F+t]=u.b,e[y+t]=h}}if(i&c)for(var y=C,w=C+n*(r-f);y<=w;y+=M){var I=y+E;s?d(e[y+t],e[I+t]):A(e[y+t],e[I+t]),h=u.a,e[I+t]=u.b,e[y+t]=h}f=c,c>>=1}}(n,m.start+C,m.nx,m.size,m.ny,m.nx*m.size,p);for(var g=a,v=0;v<g;++v)n[v]=h[n[v]];for(var b=0,E=new Uint8Array(n.buffer.byteLength),M=0;M<e.lines;M++)for(var y=0;y<e.channels;y++){var m=o[y],I=m.nx*m.size,R=new Uint8Array(n.buffer,2*m.end,2*I);E.set(R,b),b+=2*I,m.end+=I}return new DataView(E.buffer)}function b(e){var t=_(e.array.slice(e.offset.value,e.offset.value+e.size));let r=e.lines*e.channels*e.width,n=1==e.type?new Uint16Array(r):new Uint32Array(r),i=0,a=0,o=[,,,,];for(let r=0;r<e.lines;r++)for(let r=0;r<e.channels;r++){let r=0;switch(e.type){case 1:o[0]=i,o[1]=o[0]+e.width,i=o[1]+e.width;for(let i=0;i<e.width;++i)r+=t[o[0]++]<<8|t[o[1]++],n[a]=r,a++;break;case 2:o[0]=i,o[1]=o[0]+e.width,o[2]=o[1]+e.width,i=o[2]+e.width;for(let i=0;i<e.width;++i)r+=t[o[0]++]<<24|t[o[1]++]<<16|t[o[2]++]<<8,n[a]=r,a++}}return new DataView(n.buffer)}function E(e){var t=e.viewer,r={value:e.offset.value},n=new Uint8Array(e.width*e.lines*(e.channels*e.type*2)),i={version:R(t,r),unknownUncompressedSize:R(t,r),unknownCompressedSize:R(t,r),acCompressedSize:R(t,r),dcCompressedSize:R(t,r),rleCompressedSize:R(t,r),rleUncompressedSize:R(t,r),rleRawSize:R(t,r),totalAcUncompressedCount:R(t,r),totalDcUncompressedCount:R(t,r),acCompression:R(t,r)};if(i.version<2)throw"EXRLoader.parse: "+L.compression+" version "+i.version+" is unsupported";for(var a=[],o=H(t,r)-2;o>0;){var l=M(t.buffer,r),c=F(t,r),u=c>>2&3,d=new Int8Array([(c>>4)-1])[0],A=F(t,r);a.push({name:l,index:d,type:A,compression:u}),o-=l.length+3}for(var h=L.channels,p=Array(e.channels),m=0;m<e.channels;++m){var C=p[m]={},v=h[m];C.name=v.name,C.compression=0,C.decoded=!1,C.type=v.pixelType,C.pLinear=v.pLinear,C.width=e.width,C.height=e.lines}for(var b={idx:[,,,]},E=0;E<e.channels;++E)for(var C=p[E],m=0;m<a.length;++m){var y=a[m];C.name==y.name&&(C.compression=y.compression,y.index>=0&&(b.idx[y.index]=E),C.offset=E)}if(i.acCompressedSize>0)switch(i.acCompression){case 0:var w=new Uint16Array(i.totalAcUncompressedCount);f(e.array,t,r,i.acCompressedSize,w,i.totalAcUncompressedCount);break;case 1:var I=e.array.slice(r.value,r.value+i.totalAcUncompressedCount),T=_(I),w=new Uint16Array(T.buffer);r.value+=i.totalAcUncompressedCount}if(i.dcCompressedSize>0){var G=new Uint16Array(g({array:e.array,offset:r,size:i.dcCompressedSize}).buffer);r.value+=i.dcCompressedSize}if(i.rleRawSize>0){var I=e.array.slice(r.value,r.value+i.rleCompressedSize),T=_(I),x=B(T.buffer);r.value+=i.rleCompressedSize}for(var P=0,S=Array(p.length),m=0;m<S.length;++m)S[m]=[];for(var O=0;O<e.lines;++O)for(var J=0;J<p.length;++J)S[J].push(P),P+=p[J].width*e.type*2;!function(e,t,r,n,i,a){var o=new DataView(a.buffer),l=r[e.idx[0]].width,c=r[e.idx[0]].height,u=Math.floor(l/8),d=Math.ceil(l/8),A=Math.ceil(c/8),f=l-(d-1)*8,h=c-(A-1)*8,p={value:0},B=[,,,],m=[,,,],C=[,,,],g=[,,,],v=[,,,];for(let r=0;r<3;++r)v[r]=t[e.idx[r]],B[r]=r<1?0:B[r-1]+d*A,m[r]=new Float32Array(64),C[r]=new Uint16Array(64),g[r]=new Uint16Array(64*d);for(let t=0;t<A;++t){var b,E,M=8;t==A-1&&(M=h);var y=8;for(let e=0;e<d;++e){e==d-1&&(y=f);for(let e=0;e<3;++e){C[e].fill(0),C[e][0]=i[B[e]++],function(e,t,r){for(var n,i=1;i<64;)65280==(n=t[e.value])?i=64:n>>8==255?i+=255&n:(r[i]=n,i++),e.value++}(p,n,C[e]),b=C[e],(E=m[e])[0]=D(b[0]),E[1]=D(b[1]),E[2]=D(b[5]),E[3]=D(b[6]),E[4]=D(b[14]),E[5]=D(b[15]),E[6]=D(b[27]),E[7]=D(b[28]),E[8]=D(b[2]),E[9]=D(b[4]),E[10]=D(b[7]),E[11]=D(b[13]),E[12]=D(b[16]),E[13]=D(b[26]),E[14]=D(b[29]),E[15]=D(b[42]),E[16]=D(b[3]),E[17]=D(b[8]),E[18]=D(b[12]),E[19]=D(b[17]),E[20]=D(b[25]),E[21]=D(b[30]),E[22]=D(b[41]),E[23]=D(b[43]),E[24]=D(b[9]),E[25]=D(b[11]),E[26]=D(b[18]),E[27]=D(b[24]),E[28]=D(b[31]),E[29]=D(b[40]),E[30]=D(b[44]),E[31]=D(b[53]),E[32]=D(b[10]),E[33]=D(b[19]),E[34]=D(b[23]),E[35]=D(b[32]),E[36]=D(b[39]),E[37]=D(b[45]),E[38]=D(b[52]),E[39]=D(b[54]),E[40]=D(b[20]),E[41]=D(b[22]),E[42]=D(b[33]),E[43]=D(b[38]),E[44]=D(b[46]),E[45]=D(b[51]),E[46]=D(b[55]),E[47]=D(b[60]),E[48]=D(b[21]),E[49]=D(b[34]),E[50]=D(b[37]),E[51]=D(b[47]),E[52]=D(b[50]),E[53]=D(b[56]),E[54]=D(b[59]),E[55]=D(b[61]),E[56]=D(b[35]),E[57]=D(b[36]),E[58]=D(b[48]),E[59]=D(b[49]),E[60]=D(b[57]),E[61]=D(b[58]),E[62]=D(b[62]),E[63]=D(b[63]),function(e){let t=.5*Math.cos(3.14159/16),r=.5*Math.cos(3.14159/8),n=.5*Math.cos(3*3.14159/16),i=.5*Math.cos(3*3.14159/8);for(var a=[,,,,],o=[,,,,],s=[,,,,],l=[,,,,],c=0;c<8;++c){var u=8*c;a[0]=r*e[u+2],a[1]=i*e[u+2],a[2]=r*e[u+6],a[3]=i*e[u+6],o[0]=t*e[u+1]+n*e[u+3]+.2777854612564676*e[u+5]+.09754573032714427*e[u+7],o[1]=n*e[u+1]-.09754573032714427*e[u+3]-t*e[u+5]-.2777854612564676*e[u+7],o[2]=.2777854612564676*e[u+1]-t*e[u+3]+.09754573032714427*e[u+5]+n*e[u+7],o[3]=.09754573032714427*e[u+1]-.2777854612564676*e[u+3]+n*e[u+5]-t*e[u+7],s[0]=.35355362513961314*(e[u+0]+e[u+4]),s[3]=.35355362513961314*(e[u+0]-e[u+4]),s[1]=a[0]+a[3],s[2]=a[1]-a[2],l[0]=s[0]+s[1],l[1]=s[3]+s[2],l[2]=s[3]-s[2],l[3]=s[0]-s[1],e[u+0]=l[0]+o[0],e[u+1]=l[1]+o[1],e[u+2]=l[2]+o[2],e[u+3]=l[3]+o[3],e[u+4]=l[3]-o[3],e[u+5]=l[2]-o[2],e[u+6]=l[1]-o[1],e[u+7]=l[0]-o[0]}for(var d=0;d<8;++d)a[0]=r*e[16+d],a[1]=i*e[16+d],a[2]=r*e[48+d],a[3]=i*e[48+d],o[0]=t*e[8+d]+n*e[24+d]+.2777854612564676*e[40+d]+.09754573032714427*e[56+d],o[1]=n*e[8+d]-.09754573032714427*e[24+d]-t*e[40+d]-.2777854612564676*e[56+d],o[2]=.2777854612564676*e[8+d]-t*e[24+d]+.09754573032714427*e[40+d]+n*e[56+d],o[3]=.09754573032714427*e[8+d]-.2777854612564676*e[24+d]+n*e[40+d]-t*e[56+d],s[0]=.35355362513961314*(e[d]+e[32+d]),s[3]=.35355362513961314*(e[d]-e[32+d]),s[1]=a[0]+a[3],s[2]=a[1]-a[2],l[0]=s[0]+s[1],l[1]=s[3]+s[2],l[2]=s[3]-s[2],l[3]=s[0]-s[1],e[0+d]=l[0]+o[0],e[8+d]=l[1]+o[1],e[16+d]=l[2]+o[2],e[24+d]=l[3]+o[3],e[32+d]=l[3]-o[3],e[40+d]=l[2]-o[2],e[48+d]=l[1]-o[1],e[56+d]=l[0]-o[0]}(m[e])}for(var w=m,I=0;I<64;++I){var F=w[0][I],R=w[1][I],T=w[2][I];w[0][I]=F+1.5747*T,w[1][I]=F-.1873*R-.4682*T,w[2][I]=F+1.8556*R}for(let t=0;t<3;++t)!function(e,t,r){for(var n,i=0;i<64;
81++i){t[r+i]=s.GxU.toHalfFloat((n=e[i])<=1?Math.sign(n)*Math.pow(Math.abs(n),2.2):Math.sign(n)*Math.pow(9.025013291561939,Math.abs(n)-1))}}(m[t],g[t],64*e)}let a=0;for(let n=0;n<3;++n){let i=r[e.idx[n]].type;for(let e=8*t;e<8*t+M;++e){a=v[n][e];for(let t=0;t<u;++t){let r=64*t+(7&e)*8;o.setUint16(a+0*i,g[n][r+0],!0),o.setUint16(a+2*i,g[n][r+1],!0),o.setUint16(a+4*i,g[n][r+2],!0),o.setUint16(a+6*i,g[n][r+3],!0),o.setUint16(a+8*i,g[n][r+4],!0),o.setUint16(a+10*i,g[n][r+5],!0),o.setUint16(a+12*i,g[n][r+6],!0),o.setUint16(a+14*i,g[n][r+7],!0),a+=16*i}}if(u!=d)for(let e=8*t;e<8*t+M;++e){let t=v[n][e]+8*u*2*i,r=64*u+(7&e)*8;for(let e=0;e<y;++e)o.setUint16(t+2*e*i,g[n][r+e],!0)}}}for(var G=new Uint16Array(l),o=new DataView(a.buffer),H=0;H<3;++H){r[e.idx[H]].decoded=!0;var x=r[e.idx[H]].type;if(2==r[H].type)for(var P=0;P<c;++P){let e=v[H][P];for(var S=0;S<l;++S)G[S]=o.getUint16(e+2*S*x,!0);for(var S=0;S<l;++S)o.setFloat32(e+2*S*x,D(G[S]),!0)}}}(b,S,p,w,G,n);for(var m=0;m<p.length;++m){var C=p[m];if(!C.decoded)if(2===C.compression)for(var U=0,k=0,O=0;O<e.lines;++O){for(var j=S[m][U],N=0;N<C.width;++N){for(var K=0;K<2*C.type;++K)n[j++]=x[k+K*C.width*C.height];k++}U++}else throw"EXRLoader.parse: unsupported channel compression"}return new DataView(n.buffer)}function M(e,t){for(var r=new Uint8Array(e),n=0;0!=r[t.value+n];)n+=1;var i=new TextDecoder().decode(r.slice(t.value,t.value+n));return t.value=t.value+n+1,i}function y(e,t){var r=e.getInt32(t.value,!0);return t.value=t.value+4,r}function w(e,t){var r=e.getUint32(t.value,!0);return t.value=t.value+4,r}function I(e,t){var r=e[t.value];return t.value=t.value+1,r}function F(e,t){var r=e.getUint8(t.value);return t.value=t.value+1,r}let R=function(e,t){let r;return r="getBigInt64"in DataView.prototype?Number(e.getBigInt64(t.value,!0)):e.getUint32(t.value+4,!0)+Number(e.getUint32(t.value,!0)<<32),t.value+=8,r};function T(e,t){var r=e.getFloat32(t.value,!0);return t.value+=4,r}function G(e,t){return s.GxU.toHalfFloat(T(e,t))}function D(e){var t=(31744&e)>>10,r=1023&e;return(e>>15?-1:1)*(t?31===t?r?NaN:1/0:Math.pow(2,t-15)*(1+r/1024):r/1024*6103515625e-14)}function H(e,t){var r=e.getUint16(t.value,!0);return t.value+=2,r}function x(e,t){return D(H(e,t))}let P=new DataView(e),S=new Uint8Array(e),O={value:0},L=function(e,t,r){let n={};if(0x1312f76!=e.getUint32(0,!0))throw"THREE.EXRLoader: provided file doesn't appear to be in OpenEXR format.";n.version=e.getUint8(4);let i=e.getUint8(5);n.spec={singleTile:!!(2&i),longName:!!(4&i),deepFormat:!!(8&i),multiPart:!!(16&i)},r.value=8;for(var a=!0;a;){var o=M(t,r);if(0==o)a=!1;else{var s=M(t,r),l=w(e,r),c=function(e,t,r,n,i){var a,o,s,l,c,u,d;if("string"===n||"stringvector"===n||"iccProfile"===n)return a=new TextDecoder().decode(new Uint8Array(t).slice(r.value,r.value+i)),r.value=r.value+i,a;if("chlist"===n)return function(e,t,r,n){for(var i=r.value,a=[];r.value<i+n-1;){var o=M(t,r),s=y(e,r),l=F(e,r);r.value+=3;var c=y(e,r),u=y(e,r);a.push({name:o,pixelType:s,pLinear:l,xSampling:c,ySampling:u})}return r.value+=1,a}(e,t,r,i);if("chromaticities"===n)return o=T(e,r),s=T(e,r),l=T(e,r),c=T(e,r),u=T(e,r),{redX:o,redY:s,greenX:l,greenY:c,blueX:u,blueY:T(e,r),whiteX:T(e,r),whiteY:T(e,r)};if("compression"===n)return["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"][F(e,r)];if("box2i"===n)return d=w(e,r),{xMin:d,yMin:w(e,r),xMax:w(e,r),yMax:w(e,r)};else if("lineOrder"===n)return["INCREASING_Y"][F(e,r)];else if("float"===n)return T(e,r);else if("v2f"===n)return[T(e,r),T(e,r)];else if("v3f"===n)return[T(e,r),T(e,r),T(e,r)];else if("int"===n)return y(e,r);else if("rational"===n)return[y(e,r),w(e,r)];else if("timecode"===n)return[w(e,r),w(e,r)];else return"preview"===n?(r.value+=i,"skipped"):(r.value+=i,void 0)}(e,t,r,s,l);void 0===c?console.warn(`EXRLoader.parse: skipped unknown header attribute type '${s}'.`):n[o]=c}}if((-5&i)!=0)throw console.error("EXRHeader:",n),"THREE.EXRLoader: provided file is currently unsupported.";return n}(P,e,O),J=function(e,t,r,n,i){let a={size:0,viewer:t,array:r,offset:n,width:e.dataWindow.xMax-e.dataWindow.xMin+1,height:e.dataWindow.yMax-e.dataWindow.yMin+1,channels:e.channels.length,bytesPer
81Line:null,lines:null,inputSize:null,type:e.channels[0].pixelType,uncompress:null,getter:null,format:null,[U?"colorSpace":"encoding"]:null};switch(e.compression){case"NO_COMPRESSION":a.lines=1,a.uncompress=m;break;case"RLE_COMPRESSION":a.lines=1,a.uncompress=C;break;case"ZIPS_COMPRESSION":a.lines=1,a.uncompress=g;break;case"ZIP_COMPRESSION":a.lines=16,a.uncompress=g;break;case"PIZ_COMPRESSION":a.lines=32,a.uncompress=v;break;case"PXR24_COMPRESSION":a.lines=16,a.uncompress=b;break;case"DWAA_COMPRESSION":a.lines=32,a.uncompress=E;break;case"DWAB_COMPRESSION":a.lines=256,a.uncompress=E;break;default:throw"EXRLoader.parse: "+e.compression+" is unsupported"}if(a.scanlineBlockSize=a.lines,1==a.type)switch(i){case s.RQf:a.getter=x,a.inputSize=2;break;case s.ix0:a.getter=H,a.inputSize=2}else if(2==a.type)switch(i){case s.RQf:a.getter=T,a.inputSize=4;break;case s.ix0:a.getter=G,a.inputSize=4}else throw"EXRLoader.parse: unsupported pixelType "+a.type+" for "+e.compression+".";a.blockCount=(e.dataWindow.yMax+1)/a.scanlineBlockSize;for(var o=0;o<a.blockCount;o++)R(t,n);a.outputChannels=3==a.channels?4:a.channels;let l=a.width*a.height*a.outputChannels;switch(i){case s.RQf:a.byteArray=new Float32Array(l),a.channels<a.outputChannels&&a.byteArray.fill(1,0,l);break;case s.ix0:a.byteArray=new Uint16Array(l),a.channels<a.outputChannels&&a.byteArray.fill(15360,0,l);break;default:console.error("THREE.EXRLoader: unsupported type: ",i)}return a.bytesPerLine=a.width*a.inputSize*a.channels,4==a.outputChannels?a.format=s.GWd:a.format=s.VT0,U?a.colorSpace="srgb-linear":a.encoding=3e3,a}(L,P,S,O,this.type),k={value:0},j={R:0,G:1,B:2,A:3,Y:0};for(let e=0;e<J.height/J.scanlineBlockSize;e++){let t=w(P,O);J.size=w(P,O),J.lines=t+J.scanlineBlockSize>J.height?J.height-t:J.scanlineBlockSize;let r=J.size<J.lines*J.bytesPerLine?J.uncompress(J):m(J);O.value+=J.size;for(let t=0;t<J.scanlineBlockSize;t++){let n=t+e*J.scanlineBlockSize;if(n>=J.height)break;for(let e=0;e<J.channels;e++){let i=j[L.channels[e].name];for(let a=0;a<J.width;a++){k.value=(t*(J.channels*J.width)+e*J.width+a)*J.inputSize;let o=(J.height-1-n)*(J.width*J.outputChannels)+a*J.outputChannels+i;J.byteArray[o]=J.getter(r,k)}}}}return{header:L,width:J.width,height:J.height,data:J.byteArray,format:J.format,[U?"colorSpace":"encoding"]:J[U?"colorSpace":"encoding"],type:this.t
81ype}}setDataType(e){return this.type=e,this}load(e,t,r,n){return super.load(e,function(e,r){U?e.colorSpace=r.colorSpace:e.encoding=r.encoding,e.minFilter=s.k6q,e.magFilter=s.k6q,e.generateMipmaps=!1,e.flipY=!1,t&&t(e,r)},r,n)}}var j=r(87548);let N=(e,t,r)=>{let n;switch(e){case s.OUM:n=new Uint8ClampedArray(t*r*4);break;case s.ix0:n=new Uint16Array(t*r*4);break;case s.bkx:n=new Uint32Array(t*r*4);break;case s.tJf:n=new Int8Array(t*r*4);break;case s.fBL:n=new Int16Array(t*r*4);break;case s.Yuy:n=new Int32Array(t*r*4);break;case s.RQf:n=new Float32Array(t*r*4);break;default:throw Error("Unsupported data type")}return n};class K{constructor(e){var t,r,i,a,o,l,c,u,d,A,f,h,p,B,m,C;this._rendererIsDisposable=!1,this._supportsReadPixels=!0,this.render=()=>{this._renderer.setRenderTarget(this._renderTarget);try{this._renderer.render(this._scene,this._camera)}catch(e){throw this._renderer.setRenderTarget(null),e}this._renderer.setRenderTarget(null)},this._width=e.width,this._height=e.height,this._type=e.type,this._colorSpace=e.colorSpace;let g={format:s.GWd,depthBuffer:!1,stencilBuffer:!1,type:this._type,colorSpace:this._colorSpace,anisotropy:(null==(t=e.renderTargetOptions)?void 0:t.anisotropy)!==void 0?null==(r=e.renderTargetOptions)?void 0:r.anisotropy:1,generateMipmaps:(null==(i=e.renderTargetOptions)?void 0:i.generateMipmaps)!==void 0&&(null==(a=e.renderTargetOptions)?void 0:a.generateMipmaps),magFilter:(null==(o=e.renderTargetOptions)?void 0:o.magFilter)!==void 0?null==(l=e.renderTargetOptions)?void 0:l.magFilter:s.k6q,minFilter:(null==(c=e.renderTargetOptions)?void 0:c.minFilter)!==void 0?null==(u=e.renderTargetOptions)?void 0:u.minFilter:s.k6q,samples:(null==(d=e.renderTargetOptions)?void 0:d.samples)!==void 0?null==(A=e.renderTargetOptions)?void 0:A.samples:void 0,wrapS:(null==(f=e.renderTargetOptions)?void 0:f.wrapS)!==void 0?null==(h=e.renderTargetOptions)?void 0:h.wrapS:s.ghU,wrapT:(null==(p=e.renderTargetOptions)?void 0:p.wrapT)!==void 0?null==(B=e.renderTargetOptions)?void 0:B.wrapT:s.ghU};if(this._material=e.material,e.renderer?this._renderer=e.renderer:(this._renderer=K.instantiateRenderer(),this._rendererIsDisposable=!0),this._scene=new s.Z58,this._camera=new s.qUd,this._camera.position.set(0,0,10),this._camera.left=-.5,this._camera.right=.5,this._camera.top=.5,this._camera.bottom=-.5,this._camera.updateProjectionMatrix(),!((e,t,r,i)=>{if(void 0!==n)return n;let a=new s.nWS(1,1,i);t.setRenderTarget(a);let o=new s.eaF(new s.bdM,new s.V9B({color:0xffffff}));t.render(o,r),t.setRenderTarget(null);let l=N(e,a.width,a.height);return t.readRenderTargetPixels(a,0,0,a.width,a.height,l),a.dispose(),o.geometry.dispose(),o.material.dispose(),n=0!==l[0]})(this._type,this._renderer,this._camera,g)){let e;this._type===s.ix0&&(e=this._renderer.extensions.has("EXT_color_buffer_float")?s.RQf:void 0),void 0!==e?(console.warn(`This browser does not support reading pixels from ${this._type} RenderTargets, switching to ${s.RQf}`),this._type=e):(this._supportsReadPixels=!1,console.warn("This browser dos not support toArray or toDataTexture, calls to those methods will result in an error thrown"))}this._quad=new s.eaF(new s.bdM,this._material),this._quad.geometry.computeBoundingBox(),this._scene.add(this._quad),this._renderTarget=new s.nWS(this.width,this.height,g),this._renderTarget.texture.mapping=(null==(m=e.renderTargetOptions)?void 0:m.mapping)!==void 0?null==(C=e.renderTargetOptions)?void 0:C.mapping:s.UTZ}static instantiateRenderer(){let e=new j.WebGLRenderer;return e.setSize(128,128),e}toArray(){if(!this._supportsReadPixels)throw Error("Can't read pixels in this browser");let e=N(this._type,this._width,this._height);return this._renderer.readRenderTargetPixels(this._renderTarget,0,0,this._width,this._height,e),e}toDataTexture(e){let t=new s.GYF(this.toArray(),this.width,this.height,s.GWd,this._type,(null==e?void 0:e.mapping)||s.UTZ,(null==e?void 0:e.wrapS)||s.ghU,(null==e?void 0:e.wrapT)||s.ghU,(null==e?void 0:e.magFilter)||s.k6q,(null==e?void 0:e.minFilter)||s.k6q,(null==e?void 0:e.anisotropy)||1,s.Zr2);return t.generateMipmaps=(null==e?void 0:e.generateMipmaps)!==void 0&&(null==e?void 0:e.generateMipmaps),t}disposeOnDemandRenderer(){this._renderer.setRenderTarget(null),this._rendererIsDisposable&&(this._renderer.dispose(),this._renderer.forceContextLoss())}dispose(e){this.disposeOnDemandRenderer(),e&&this.renderTarget.dispose(),this.material instanceof s.BKk&&Object.values(this.material.uniforms).forEac
81h(e=>{e.value instanceof s.gPd&&e.value.dispose()}),Object.values(this.material).forEach(e=>{e instanceof s.gPd&&e.dispose()}),this.material.dispose(),this._quad.geometry.dispose()}get width(){return this._width}set width(e){this._width=e,this._renderTarget.setSize(this._width,this._height)}get height(){return this._height}set height(e){this._height=e,this._renderTarget.setSize(this._width,this._height)}get renderer(){return this._renderer}get renderTarget(){return this._renderTarget}set renderTarget(e){this._renderTarget=e,this._width=e.width,this._height=e.height}get material(){return this._material}get type(){return this._type}get colorSpace(){return this._colorSpace}}let Q=`
82varying vec2 vUv;
83
84void main() {
85  vUv = uv;
86  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
87}
88`,X=`
89// min half float value
90#define HALF_FLOAT_MIN vec3( -65504, -65504, -65504 )
91// max half float value
92#define HALF_FLOAT_MAX vec3( 65504, 65504, 65504 )
93
94uniform sampler2D sdr;
95uniform sampler2D gainMap;
96uniform vec3 gamma;
97uniform vec3 offsetHdr;
98uniform vec3 offsetSdr;
99uniform vec3 gainMapMin;
100uniform vec3 gainMapMax;
101uniform float weightFactor;
102
103varying vec2 vUv;
104
105void main() {
106  vec3 rgb = texture2D( sdr, vUv ).rgb;
107  vec3 recovery = texture2D( gainMap, vUv ).rgb;
108  vec3 logRecovery = pow( recovery, gamma );
109  vec3 logBoost = gainMapMin * ( 1.0 - logRecovery ) + gainMapMax * logRecovery;
110  vec3 hdrColor = (rgb + offsetSdr) * exp2( logBoost * weightFactor ) - offsetHdr;
111  vec3 clampedHdrColor = max( HALF_FLOAT_MIN, min( HALF_FLOAT_MAX, hdrColor ));
112  gl_FragColor = vec4( clampedHdrColor , 1.0 );
113}
114`;class Y extends s.BKk{constructor({gamma:e,offsetHdr:t,offsetSdr:r,gainMapMin:n,gainMapMax:i,maxDisplayBoost:a,hdrCapacityMin:o,hdrCapacityMax:l,sdr:c,gainMap:u}){super({name:"GainMapDecoderMaterial",vertexShader:Q,fragmentShader:X,uniforms:{sdr:{value:c},gainMap:{value:u},gamma:{value:new s.Pq0(1/e[0],1/e[1],1/e[2])},offsetHdr:{value:new s.Pq0().fromArray(t)},offsetSdr:{value:new s.Pq0().fromArray(r)},gainMapMin:{value:new s.Pq0().fromArray(n)},gainMapMax:{value:new s.Pq0().fromArray(i)},weightFactor:{value:(Math.log2(a)-o)/(l-o)}},blending:s.XIg,depthTest:!1,depthWrite:!1}),this._maxDisplayBoost=a,this._hdrCapacityMin=o,this._hdrCapacityMax=l,this.needsUpdate=!0,this.uniformsNeedUpdate=!0}get sdr(){return this.uniforms.sdr.value}set sdr(e){this.uniforms.sdr.value=e}get gainMap(){return this.uniforms.gainMap.value}set gainMap(e){this.uniforms.gainMap.value=e}get offsetHdr(){return this.uniforms.offsetHdr.value.toArray()}set offsetHdr(e){this.uniforms.offsetHdr.value.fromArray(e)}get offsetSdr(){return this.uniforms.offsetSdr.value.toArray()}set offsetSdr(e){this.uniforms.offsetSdr.value.fromArray(e)}get gainMapMin(){return this.uniforms.gainMapMin.value.toArray()}set gainMapMin(e){this.uniforms.gainMapMin.value.fromArray(e)}get gainMapMax(){return this.uniforms.gainMapMax.value.toArray()}set gainMapMax(e){this.uniforms.gainMapMax.value.fromArray(e)}get gamma(){let e=this.uniforms.gamma.value;return[1/e.x,1/e.y,1/e.z]}set gamma(e){let t=this.uniforms.gamma.value;t.x=1/e[0],t.y=1/e[1],t.z=1/e[2]}get hdrCapacityMin(){return this._hdrCapacityMin}set hdrCapacityMin(e){this._hdrCapacityMin=e,this.calculateWeight()}get hdrCapacityMax(){return this._hdrCapacityMax}set hdrCapacityMax(e){this._hdrCapacityMax=e,this.calculateWeight()}get maxDisplayBoost(){return this._maxDisplayBoost}set maxDisplayBoost(e){this._maxDisplayBoost=Math.max(1,Math.min(65504,e)),this.calculateWeight()}calculateWeight(){let e=(Math.log2(this._maxDisplayBoost)-this._hdrCapacityMin)/(this._hdrCapacityMax-this._hdrCapacityMin);this.uniforms.weightFactor.value=Math.max(0,Math.min(1,e))}}
114class Z extends Error{}class W extends Error{}let z=(e,t,r)=>{let n=RegExp(`${t}="([^"]*)"`,"i").exec(e);if(n)return n[1];let i=RegExp(`<${t}[^>]*>([\\s\\S]*?)</${t}>`,"i").exec(e);if(i){let e=i[1].match(/<rdf:li>([^<]*)<\/rdf:li>/g);return e&&3===e.length?e.map(e=>e.replace(/<\/?rdf:li>/g,"")):i[1].trim()}if(void 0!==r)return r;throw Error(`Can't find ${t} in gainmap metadata`)};class V{constructor(e){this.options={debug:!!e&&void 0!==e.debug&&e.debug,extractFII:!e||void 0===e.extractFII||e.extractFII,extractNonFII:!e||void 0===e.extractNonFII||e.extractNonFII}}extract(e){return new Promise((t,r)=>{let n,i=this.options.debug,a=new DataView(e.buffer);if(65496!==a.getUint16(0))return void r(Error("Not a valid jpeg"));let o=a.byteLength,s=2,l=0;for(;s<o;){if(++l>250)return void r(Error(`Found no marker after ${l} loops 😵`));if(255!==a.getUint8(s))return void r(Error(`Not a valid marker at offset 0x${s.toString(16)}, found: 0x${a.getUint8(s).toString(16)}`));if(n=a.getUint8(s+1),i&&console.log(`Marker: ${n.toString(16)}`),226===n){i&&console.log("Found APP2 marker (0xffe2)");let e=s+4;if(0x4d504600===a.getUint32(e)){let n,i=e+4;if(18761===a.getUint16(i))n=!1;else{if(19789!==a.getUint16(i))return void r(Error("No valid endianness marker found in TIFF header"));n=!0}if(42!==a.getUint16(i+2,!n))return void r(Error("Not valid TIFF data! (no 0x002A marker)"));let o=a.getUint32(i+4,!n);if(o<8)return void r(Error("Not valid TIFF data! (First offset less than 8)"));let s=i+o,l=a.getUint16(s,!n),c=s+2,u=0;for(let e=c;e<c+12*l;e+=12)45057===a.getUint16(e,!n)&&(u=a.getUint32(e+8,!n));let d=s+2+12*l+4,A=[];for(let e=d;e<d+16*u;e+=16){let t={MPType:a.getUint32(e,!n),size:a.getUint32(e+4,!n),dataOffset:a.getUint32(e+8,!n),dependantImages:a.getUint32(e+12,!n),start:-1,end:-1,isFII:!1};t.dataOffset?(t.start=i+t.dataOffset,t.isFII=!1):(t.start=0,t.isFII=!0),t.end=t.start+t.size,A.push(t)}if(this.options.extractNonFII&&A.length){let e=new Blob([a]),r=[];for(let t of A){if(t.isFII&&!this.options.extractFII)continue;let n=e.slice(t.start,t.end+1,"image/jpeg");r.push(n)}t(r)}}}s+=2+a.getUint16(s+2)}})}}let q=async e=>{let t=(e=>{let t,r=(t="undefined"!=typeof TextDecoder?new TextDecoder().decode(e):e.toString()).indexOf("<x:xmpmeta");for(;-1!==r;){let e=t.indexOf("x:xmpmeta>",r),n=t.slice(r,e+10);try{let e=z(n,"hdrgm:GainMapMin","0"),t=z(n,"hdrgm:GainMapMax"),r=z(n,"hdrgm:Gamma","1"),i=z(n,"hdrgm:OffsetSDR","0.015625"),a=z(n,"hdrgm:OffsetHDR","0.015625"),o=/hdrgm:HDRCapacityMin="([^"]*)"/.exec(n),s=o?o[1]:"0",l=/hdrgm:HDRCapacityMax="([^"]*)"/.exec(n);if(!l)throw Error("Incomplete gainmap metadata");let c=l[1];return{gainMapMin:Array.isArray(e)?e.map(e=>parseFloat(e)):[parseFloat(e),parseFloat(e),parseFloat(e)],gainMapMax:Array.isArray(t)?t.map(e=>parseFloat(e)):[parseFloat(t),parseFloat(t),parseFloat(t)],gamma:Array.isArray(r)?r.map(e=>parseFloat(e)):[parseFloat(r),parseFloat(r),parseFloat(r)],offsetSdr:Array.isArray(i)?i.map(e=>parseFloat(e)):[parseFloat(i),parseFloat(i),parseFloat(i)],offsetHdr:Array.isArray(a)?a.map(e=>parseFloat(e)):[parseFloat(a),parseFloat(a),parseFloat(a)],hdrCapacityMin:parseFloat(s),hdrCapacityMax:parseFloat(c)}}catch(e){}r=t.indexOf("<x:xmpmeta",e)}})(e);if(!t)throw new W("Gain map XMP metadata not found");let r=new V({extractFII:!0,extractNonFII:!0}),n=await r.extract(e);if(2!==n.length)throw new Z("Gain map recovery image not found");return{sdr:new Uint8Array(await n[0].arrayBuffer()),gainMap:new Uint8Array(await n[1].arrayBuffer()),metadata:t}},$=e=>new Promise((t,r)=>{let n=document.createElement("img");n.onload=()=>{t(n)},n.onerror=e=>{r(e)},n.src=URL.createObjectURL(e)});class ee extends s.aHM{constructor(e,t){super(t),e&&(this._renderer=e),this._internalLoadingManager=new s.KPJ}setRenderer(e){return this._renderer=e,this}setRenderTargetOptions(e){return this._renderTargetOptions=e,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: An existing WebGL Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");let e=new Y({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new s.gPd,sdr:new s.gPd});return new K({width:16,height:16,type:s.ix0,colorSpace:s.Zr2,material:e,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async render(e,t,r,n){let i,a,o=n?new Blob([n],{type:"image/jpeg"}):void 0,l=new Blob([r],{type:"image/jpeg"}),c=!1;if("undefined"==typeof createImageBitmap){let e=await Promise.all([o?$(o):Promise.resolve(void 0),$(l)]);a=e[0],i=e[1],c=!0}else{let e=await Promise.all([o?createImageBitmap(o,{imageOrientation:"flipY"}):Promise.resolve(void 0),createImageBitmap(l,{imageOrientation:"flipY"})]);a=e[0],i=e[1]}let u=new s.gPd(a||new ImageData(2,2),s.UTZ,s.ghU,s.ghU,s.k6q,s.NZq,s.GWd,s.OUM,1,s.Zr2);u.flipY=c,u.needsUpdate=!0;let d=new s.gPd(i,s.UTZ,s.ghU,s.ghU,s.k6q,s.NZq,s.GWd,s.OUM,1,s.er$);d.flipY=c,d.needsUpdate=!0,e.width=i.width,e.height=i.height,e.material.gainMap=u,e.material.sdr=d,e.material.gainMapMin=t.gainMapMin,e.material.gainMapMax=t.gainMapMax,e.material.offsetHdr=t.offsetHdr,e.material.offsetSdr=t.offsetSdr,e.material.gamma=t.gamma,e.material.hdrCapacityMin=t.hdrCapacityMin,e.material.hdrCapacityMax=t.hdrCapacityMax,e.material.maxDisplayBoost=Math.pow(2,t.hdrCapacityMax),e.material.needsUpdate=!0,e.render()}}class et extends ee{load([e,t,r],n,i,a){let o,l,c,u=this.prepareQuadRenderer(),d=async()=>
114{if(o&&l&&c){try{await this.render(u,c,o,l)}catch(n){this.manager.itemError(e),this.manager.itemError(t),this.manager.itemError(r),"function"==typeof a&&a(n),u.disposeOnDemandRenderer();return}"function"==typeof n&&n(u),this.manager.itemEnd(e),this.manager.itemEnd(t),this.manager.itemEnd(r),u.disposeOnDemandRenderer()}},A=!0,f=0,h=0,p=!0,B=0,m=0,C=!0,g=0,v=0,b=()=>{"function"==typeof i&&i(new ProgressEvent("progress",{lengthComputable:A&&p&&C,loaded:h+m+v,total:f+B+g}))};this.manager.itemStart(e),this.manager.itemStart(t),this.manager.itemStart(r);let E=new s.Y9S(this._internalLoadingManager);E.setResponseType("arraybuffer"),E.setRequestHeader(this.requestHeader),E.setPath(this.path),E.setWithCredentials(this.withCredentials),E.load(e,async e=>{if("string"==typeof e)throw Error("Invalid sdr buffer");o=e,await d()},e=>{A=e.lengthComputable,h=e.loaded,f=e.total,b()},t=>{this.manager.itemError(e),"function"==typeof a&&a(t)});let M=new s.Y9S(this._internalLoadingManager);M.setResponseType("arraybuffer"),M.setRequestHeader(this.requestHeader),M.setPath(this.path),M.setWithCredentials(this.withCredentials),M.load(t,async e=>{if("string"==typeof e)throw Error("Invalid gainmap buffer");l=e,await d()},e=>{p=e.lengthComputable,m=e.loaded,B=e.total,b()},e=>{this.manager.itemError(t),"function"==typeof a&&a(e)});let y=new s.Y9S(this._internalLoadingManager);return y.setRequestHeader(this.requestHeader),y.setPath(this.path),y.setWithCredentials(this.withCredentials),y.load(r,async e=>{if("string"!=typeof e)throw Error("Invalid metadata string");c=JSON.parse(e),await d()},e=>{C=e.lengthComputable,v=e.loaded,g=e.total,b()},e=>{this.manager.itemError(r),"function"==typeof a&&a(e)}),u}}class er extends ee{load(e,t,r,n){let i=this.prepareQuadRenderer(),a=new s.Y9S(this._internalLoadingManager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(this.withCredentials),this.manager.itemStart(e),a.load(e,async r=>{let a,o,s;if("string"==typeof r)throw Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");let l=new Uint8Array(r);try{let e=await q(l);a=e.sdr,o=e.gainMap,s=e.metadata}catch(t){if(t instanceof W||t instanceof Z)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),s={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},a=l;else throw t}try{await this.render(i,s,a,o)}catch(t){this.manager.itemError(e),"function"==typeof n&&n(t),i.disposeOnDemandRenderer();return}"function"==typeof t&&t(i),this.manager.itemEnd(e),i.disposeOnDemandRenderer()},r,t=>{this.manager.itemError(e),"function"==typeof n&&n(t)}),i}}let en={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},ei="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",ea=e=>Array.isArray(e),eo=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"];function es({files:e=eo,path:t="",preset:r,colorSpace:n,extensions:i}={}){r&&(eu(r),e=en[r],t=ei);let l=ea(e),{extension:c,isCubemap:u}=ed(e),d=eA(c);if(!d)throw Error("useEnvironment: Unrecognized file extension: "+e);let A=(0,o.C)(e=>e.gl);(0,a.useLayoutEffect)(()=>{("webp"===c||"jpg"===c||"jpeg"===c)&&A.domElement.addEventListener("webglcontextlost",function(){o.G.clear(d,l?[e]:e)},{once:!0})},[e,A.domElement]);let f=(0,o.G)(d,l?[e]:e,e=>{("webp"===c||"jpg"===c||"jpeg"===c)&&e.setRenderer(A),null==e.setPath||e.setPath(t),i&&i(e)}),h=l?f[0]:f;if("jpg"===c||"jpeg"===c||"webp"===c){var p;h=null==(p=h.renderTarget)?void 0:p.texture}return h.mapping=u?s.hy7:s.wfO,h.colorSpace=null!=n?n:u?"srgb":"srgb-linear",h}let el={files:eo,path:"",preset:void 0,extensions:void 0};es.preload=e=>{let t={...el,...e},{files:r,path:n=""}=t,{preset:i,extensions:a}=t;i&&(eu(i),r=en[i],n=ei);let{extension:s}=ed(r);if("webp"===s||"jpg"===s||"jpeg"===s)throw Error("useEnvironment: Preloading gainmaps is not supported");let l=eA(s);if(!l)throw Error("useEnvironment: Unrecognized file extension: "+r);o.G.preload(l,ea(r)?[r]:r,e=>{null==e.setPath||e.setPath(n),a&&a(e)})};
114let ec={files:eo,preset:void 0};function eu(e){if(!(e in en))throw Error("Preset must be one of: "+Object.keys(en).join(", "))}function ed(e){var t;let r=ea(e)&&6===e.length,n=ea(e)&&3===e.length&&e.some(e=>e.endsWith("json")),i=ea(e)?e[0]:e;return{extension:r?"cube":n?"webp":i.startsWith("data:application/exr")?"exr":i.startsWith("data:application/hdr")?"hdr":i.startsWith("data:image/jpeg")?"jpg":null==(t=i.split(".").pop())||null==(t=t.split("?"))||null==(t=t.shift())?void 0:t.toLowerCase(),isCubemap:r,isGainmap:n}}function eA(e){return"cube"===e?s.ScU:"hdr"===e?u:"exr"===e?k:"jpg"===e||"jpeg"===e?er:"webp"===e?et:null}function ef(e,t,r,n,i={}){var a,s,l,c;let u,d;i={backgroundBlurriness:0,backgroundIntensity:1,backgroundRotation:[0,0,0],environmentIntensity:1,environmentRotation:[0,0,0],...i};let A=(d=u=t||r).current&&d.current.isScene?u.current:u,f=A.background,h=A.environment,p={backgroundBlurriness:A.backgroundBlurriness,backgroundIntensity:A.backgroundIntensity,backgroundRotation:null!=(a=null==(s=A.backgroundRotation)||null==s.clone?void 0:s.clone())?a:[0,0,0],environmentIntensity:A.environmentIntensity,environmentRotation:null!=(l=null==(c=A.environmentRotation)||null==c.clone?void 0:c.clone())?l:[0,0,0]};return"only"!==e&&(A.environment=n),e&&(A.background=n),(0,o.s)(A,i),()=>{"only"!==e&&(A.environment=h),e&&(A.background=f),(0,o.s)(A,p)}}function eh({scene:e,background:t=!1,map:r,...n}){let i=(0,o.C)(e=>e.scene);return a.useLayoutEffect(()=>{if(r)return ef(t,e,i,r,n)}),null}function ep({background:e=!1,scene:t,blur:r,backgroundBlurriness:n,backgroundIntensity:i,backgroundRotation:s,environmentIntensity:l,environmentRotation:c,...u}){let d=es(u),A=(0,o.C)(e=>e.scene);return a.useLayoutEffect(()=>ef(e,t,A,d,{backgroundBlurriness:null!=r?r:n,backgroundIntensity:i,backgroundRotation:s,environmentIntensity:l,environmentRotation:c})),a.useEffect(()=>()=>{d.dispose()},[d]),null}function eB({children:e,near:t=.1,far:r=1e3,resolution:n=256,frames:i=1,map:l,background:c=!1,blur:u,backgroundBlurriness:d,backgroundIntensity:A,backgroundRotation:f,environmentIntensity:h,environmentRotation:p,scene:B,files:m,path:C,preset:g,extensions:v}){let b=(0,o.C)(e=>e.gl),E=(0,o.C)(e=>e.scene),M=a.useRef(null),[y]=a.useState(()=>new s.Z58),w=a.useMemo(()=>{let e=new s.o6l(n);return e.texture.type=s.ix0,e},[n]);a.useEffect(()=>()=>{w.dispose()},[w]),a.useLayoutEffect(()=>{if(1===i){let e=b.autoClear;b.autoClear=!0,M.current.update(b,y),b.autoClear=e}return ef(c,B,E,w.texture,{backgroundBlurriness:null!=u?u:d,backgroundIntensity:A,backgroundRotation:f,environmentIntensity:h,environmentRotation:p})},[e,y,w.texture,B,E,c,i,b]);let I=1;return(0,o.D)(()=>{if(i===1/0||I<i){let e=b.autoClear;b.autoClear=!0,M.current.update(b,y),b.autoClear=e,I++}}),a.createElement(a.Fragment,null,(0,o.o)(a.createElement(a.Fragment,null,e,a.createElement("cubeCamera",{ref:M,args:[t,r,w]}),m||g?a.createElement(ep,{background:!0,files:m,preset:g,path:C,extensions:v}):l?a.createElement(eh,{background:!0,map:l,extensions:v}):null),y))}function em(e){var t,r,n,s;let l=es(e),u=e.map||l;a.useMemo(()=>(0,o.e)({GroundProjectedEnvImpl:c}),[]),a.useEffect(()=>()=>{l.dispose()},[l]);let d=a.useMemo(()=>[u],[u]),A=null==(t=e.ground)?void 0:t.height,f=null==(r=e.ground)?void 0:r.radius,h=null!=(n=null==(s=e.ground)?void 0:s.scale)?n:1e3;return a.createElement(a.Fragment,null,a.createElement(eh,(0,i.A)({},e,{map:u})),a.createElement("groundProjectedEnvImpl",{args:d,scale:h,height:A,radius:f}))}function eC(e){return e.ground?a.createElement(em,e):e.map?a.createElement(eh,e):e.children?a.createElement(eB,e):a.createElement(ep,e)}es.clear=e=>{let t={...ec,...e},{files:r}=t,{preset:n}=t;n&&(eu(n),r=en[n]);let{extension:i}=ed(r),a=eA(i);if(!a)throw Error("useEnvironment: Unrecognized file extension: "+r);o.G.clear(a,ea(r)?[r]:r)}},83654:(e,t,r)=>{var n=r(12115),i=r(14806),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=i.useSyncExternalStore,s=n.useRef,l=n.useEffect,c=n.useMemo,u=n.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,r,n,i){var d=s(null);if(null===d.current){var A={hasValue:!1,value:null};d.current=A}else A=d.current;var f=o(e,(d=c(function(){function e(e){if(!l){if(l=!0,o=e,e=n(e),void 0!==i&&A.hasValue){var t=A.value;if(i(t,e))return s=t}return s=e}if(t=s,a(o,e))return t;var r=n(e);return void 0!==i&&i(t,r)?(o=e,t):(o=e,s=r)}
114var o,s,l=!1,c=void 0===r?null:r;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,r,n,i]))[0],d[1]);return l(function(){A.hasValue=!0,A.value=f},[f]),u(f),f}},84004:(e,t)=>{function r(e,t){var r=e.length;for(e.push(t);0<r;){var n=r-1>>>1,i=e[n];if(0<a(i,t))e[n]=t,e[r]=i,r=n;else break}}function n(e){return 0===e.length?null:e[0]}function i(e){if(0===e.length)return null;var t=e[0],r=e.pop();if(r!==t){e[0]=r;for(var n=0,i=e.length,o=i>>>1;n<o;){var s=2*(n+1)-1,l=e[s],c=s+1,u=e[c];if(0>a(l,r))c<i&&0>a(u,l)?(e[n]=u,e[c]=r,n=c):(e[n]=l,e[s]=r,n=s);else if(c<i&&0>a(u,r))e[n]=u,e[c]=r,n=c;else break}}return t}function a(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o,s=performance;t.unstable_now=function(){return s.now()}}else{var l=Date,c=l.now();t.unstable_now=function(){return l.now()-c}}var u=[],d=[],A=1,f=null,h=3,p=!1,B=!1,m=!1,C="function"==typeof setTimeout?setTimeout:null,g="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function b(e){for(var t=n(d);null!==t;){if(null===t.callback)i(d);else if(t.startTime<=e)i(d),t.sortIndex=t.expirationTime,r(u,t);else break;t=n(d)}}function E(e){if(m=!1,b(e),!B)if(null!==n(u))B=!0,D();else{var t=n(d);null!==t&&H(E,t.startTime-e)}}var M=!1,y=-1,w=5,I=-1;function F(){return!(t.unstable_now()-I<w)}function R(){if(M){var e=t.unstable_now();I=e;var r=!0;try{e:{B=!1,m&&(m=!1,g(y),y=-1),p=!0;var a=h;try{t:{for(b(e),f=n(u);null!==f&&!(f.expirationTime>e&&F());){var s=f.callback;if("function"==typeof s){f.callback=null,h=f.priorityLevel;var l=s(f.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof l){f.callback=l,b(e),r=!0;break t}f===n(u)&&i(u),b(e)}else i(u);f=n(u)}if(null!==f)r=!0;else{var c=n(d);null!==c&&H(E,c.startTime-e),r=!1}}break e}finally{f=null,h=a,p=!1}
114}}finally{r?o():M=!1}}}if("function"==typeof v)o=function(){v(R)};else if("undefined"!=typeof MessageChannel){var T=new MessageChannel,G=T.port2;T.port1.onmessage=R,o=function(){G.postMessage(null)}}else o=function(){C(R,0)};function D(){M||(M=!0,o())}function H(e,r){y=C(function(){e(t.unstable_now())},r)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){B||p||(B=!0,D())},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):w=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_getFirstCallbackNode=function(){return n(u)},t.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var r=h;h=t;try{return e()}finally{h=r}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=h;h=e;try{return t()}finally{h=r}},t.unstable_scheduleCallback=function(e,i,a){var o=t.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?o+a:o,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,e={id:A++,callback:i,priorityLevel:e,startTime:a,expirationTime:s,sortIndex:-1},a>o?(e.sortIndex=a,r(d,e),null===n(u)&&e===n(d)&&(m?(g(y),y=-1):m=!0,H(E,a-o))):(e.sortIndex=s,r(u,e),B||p||(B=!0,D())),e},t.unstable_shouldYield=F,t.unstable_wrapCallback=function(e){var t=h;return function(){var r=h;h=t;try{return e.apply(this,arguments)}finally{h=r}}}},84877:(e,t,r)=>{let n,i,a,o,s;r.d(t,{B:()=>H,C:()=>er,D:()=>en,E:()=>x,G:()=>eo,a:()=>G,b:()=>T,c:()=>eI,d:()=>eR,e:()=>ed,f:()=>eN,i:()=>F,o:()=>eT,s:()=>Y,u:()=>D});var l=r(12115),c=r.t(l,2),u=r(28870),d=r(85339),A=r(87548),f=r(8828);let h=e=>{let t,r=new Set,n=(e,n)=>{let i="function"==typeof e?e(t):e;if(!Object.is(i,t)){let e=t;t=(null!=n?n:"object"!=typeof i||null===i)?i:Object.assign({},t,i),r.forEach(r=>r(t,e))}},i=()=>t,a={setState:n,getState:i,getInitialState:()=>o,subscribe:e=>(r.add(e),()=>r.delete(e))},o=t=e(n,i,a);return a},{useSyncExternalStoreWithSelector:p}=f,B=(e,t)=>{let r=(e=>e?h(e):h)(e),n=(e,n=t)=>(function(e,t=e=>e,r){let n=p(e.subscribe,e.getState,e.getInitialState,t,r);return l.useDebugValue(n),n})(r,e,n);return Object.assign(n,r),n},m=(e,t)=>e?B(e,t):B,C=[];function g(e,t,r=(e,t)=>e===t){if(e===t)return!0;if(!e||!t)return!1;let n=e.length;if(t.length!==n)return!1;for(let i=0;i<n;i++)if(!r(e[i],t[i]))return!1;return!0}function v(e,t=null,r=!1,n={}){for(let i of(null===t&&(t=[e]),C))if(g(t,i.keys,i.equal)){if(r)return;if(Object.prototype.hasOwnProperty.call(i,"error"))throw i.error;if(Object.prototype.hasOwnProperty.call(i,"response"))return n.lifespan&&n.lifespan>0&&(i.timeout&&clearTimeout(i.timeout),i.timeout=setTimeout(i.remove,n.lifespan)),i.response;if(!r)throw i.promise}let i={keys:t,equal:n.equal,remove:()=>{let e=C.indexOf(i);-1!==e&&C.splice(e,1)},promise:("object"==typeof e&&"function"==typeof e.then?e:e(...t)).then(e=>{i.response=e,n.lifespan&&n.lifespan>0&&(i.timeout=setTimeout(i.remove,n.lifespan))}).catch(e=>i.error=e)};if(C.push(i),!r)throw i.promise}var b=r(18807),E=r.n(b),M=r(84943),y=r(95155),w=r(54735);function I(e){let t=e.root;for(;t.getState().previousRoot;)t=t.getState().previousRoot;return t}r(87358),c.act;let F=e=>e&&e.hasOwnProperty("current"),R=e=>null!=e&&("string"==typeof e||"number"==typeof e||e.isColor),T=((e,t)=>"undefined"!=typeof window&&((null==(e=window.document)?void 0:e.createElement)||(null==(t=window.navigator)?void 0:t.product)==="ReactNative"))()?l.useLayoutEffect:l.useEffect;function G(e){let t=l.useRef(e);return T(()=>void(t.current=e),[e]),t}function D(){let e=(0,w.u5)(),t=(0,w.y3)();return l.useMemo(()=>({children:r})=>{let n=(0,w.Nz)(e,!0,e=>e.type===l.StrictMode)?l.StrictMode:l.Fragment;return(0,y.jsx)(n,{children:(0,y.jsx)(t,{children:r})})},[e,t])}function H({set:e}){return T(()=>(e(new Promise(()=>null)),()=>e(!1)),[e]),null}let x=(e=>((e=class extends l.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}).getDerivedStateFromError=()=>({error:!0}),e))();function P(e){var t;let r="undefined"!=typeof window?null!=(t=window.devicePixelRatio)?t:2:1;return Array.isArray(e)?Math.min(Math.max(e[0],r),e[1]):e}function S(e){var t;return null==(t=e.__r3f)?void 0:t.root.getState()}let O={obj:e=>e===Object(e)&&!O.arr(e)&&"function"!=typeof e,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,boo:e=>"boolean"==typeof e,und:e=>void 0===e,nul:e=>null===e,arr:e=>Array.isArray(e),equ(e,t,{arrays:r="shallow",objects:n="reference",strict:i=!0}={}){let a;if(typeof e!=typeof t||!!e!=!!t)return!1;if(O.str(e)||O.num(e)||O.boo(e))return e===t;let o=O.obj(e);if(o&&"reference"===n)return e===t;let s=O.arr(e);if(s&&"reference"===r)return e===t;if((s||o)&&e===t)return!0;for(a in e)if(!(a in t))return!1;if(o&&"shallow"===r&&"shallow"===n){for(a in i?t:e)if(!O.equ(e[a],t[a],{strict:i,objects:"reference"}))return!1}else for(a in i?t:e)if(e[a]!==t[a])return!1;if(O.und(a)){if(s&&0===e.length&&0===t.length||o&&0===Object.keys(e).length&&0===Object.keys(t).length)return!0;
114if(e!==t)return!1}return!0}},L=["children","key","ref"];function _(e,t,r,n){let i=null==e?void 0:e.__r3f;return!i&&(i={root:t,type:r,parent:null,children:[],props:function(e){let t={};for(let r in e)L.includes(r)||(t[r]=e[r]);return t}(n),object:e,eventCount:0,handlers:{},isHidden:!1},e&&(e.__r3f=i)),i}function J(e,t){let r=e[t];if(!t.includes("-"))return{root:e,key:t,target:r};for(let i of(r=e,t.split("-"))){var n;t=i,e=r,r=null==(n=r)?void 0:n[t]}return{root:e,key:t,target:r}}let U=/-\d+$/;function k(e,t){if(O.str(t.props.attach)){if(U.test(t.props.attach)){let r=t.props.attach.replace(U,""),{root:n,key:i}=J(e.object,r);Array.isArray(n[i])||(n[i]=[])}let{root:r,key:n}=J(e.object,t.props.attach);t.previousAttach=r[n],r[n]=t.object}else O.fun(t.props.attach)&&(t.previousAttach=t.props.attach(e.object,t.object))}function j(e,t){if(O.str(t.props.attach)){let{root:r,key:n}=J(e.object,t.props.attach),i=t.previousAttach;void 0===i?delete r[n]:r[n]=i}else null==t.previousAttach||t.previousAttach(e.object,t.object);delete t.previousAttach}let N=[...L,"args","dispose","attach","object","onUpdate","dispose"],K=new Map,Q=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],X=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function Y(e,t){var r,n;let i=e.__r3f,a=i&&I(i).getState(),o=null==i?void 0:i.eventCount;for(let r in t){let o=t[r];if(N.includes(r))continue;if(i&&X.test(r)){"function"==typeof o?i.handlers[r]=o:delete i.handlers[r],i.eventCount=Object.keys(i.handlers).length;continue}if(void 0===o)continue;let{root:s,key:l,target:c}=J(e,r);c instanceof d.zgK&&o instanceof d.zgK?c.mask=o.mask:c instanceof d.Q1f&&R(o)?c.set(o):null!==c&&"object"==typeof c&&"function"==typeof c.set&&"function"==typeof c.copy&&null!=o&&o.constructor&&c.constructor===o.constructor?c.copy(o):null!==c&&"object"==typeof c&&"function"==typeof c.set&&Array.isArray(o)?"function"==typeof c.fromArray?c.fromArray(o):c.set(...o):null!==c&&"object"==typeof c&&"function"==typeof c.set&&"number"==typeof o?"function"==typeof c.setScalar?c.setScalar(o):c.set(o):(s[l]=o,a&&!a.linear&&Q.includes(l)&&null!=(n=s[l])&&n.isTexture&&s[l].format===d.GWd&&s[l].type===d.OUM&&(s[l].colorSpace=d.er$))}if(null!=i&&i.parent&&null!=a&&a.internal&&null!=(r=i.object)&&r.isObject3D&&o!==i.eventCount){let e=i.object,t=a.internal.interaction.indexOf(e);t>-1&&a.internal.interaction.splice(t,1),i.eventCount&&null!==e.raycast&&a.internal.interaction.push(e)}return i&&void 0===i.props.attach&&(i.object.isBufferGeometry?i.props.attach="geometry":i.object.isMaterial&&(i.props.attach="material")),i&&Z(i),e}function Z(e){var t;if(!e.parent)return;null==e.props.onUpdate||e.props.onUpdate(e.object);let r=null==(t=e.root)||null==t.getState?void 0:t.getState();r&&0===r.internal.frames&&r.invalidate()}function W(e,t){!e.manual&&(e&&e.isOrthographicCamera?(e.left=-(t.width/2),e.right=t.width/2,e.top=t.height/2,e.bottom=-(t.height/2)):e.aspect=t.width/t.height,e.updateProjectionMatrix())}let z=e=>null==e?void 0:e.isObject3D;function V(e){return(e.eventObject||e.object).uuid+"/"+e.index+e.instanceId}function q(e,t,r,n){let i=r.get(t);i&&(r.delete(t),0===r.size&&(e.delete(n),i.target.releasePointerCapture(n)))}let $=e=>!!(null!=e&&e.render),ee=l.createContext(null);function et(){let e=l.useContext(ee);if(!e)throw Error("R3F: Hooks can only be used within the Canvas component!");return e}function er(e=e=>e,t){return et()(e,t)}function en(e,t=0){let r=et(),n=r.getState().internal.subscribe,i=G(e);return T(()=>n(i,t,r),[t,n,r]),null}let ei=new WeakMap;function ea(e,t){return function(r,...n){var i;let a;return"function"==typeof r&&(null==r||null==(i=r.prototype)?void 0:i.constructor)===r?(a=ei.get(r))||(a=new r,ei.set(r,a)):a=r,e&&e(a),Promise.all(n.map(e=>new Promise((r,n)=>a.load(e,e=>{z(null==e?void 0:e.scene)&&Object.assign(e,function(e){let t={nodes:{},materials:{},meshes:{}};return e&&e.traverse(e=>{e.name&&(t.nodes[e.name]=e),e.material&&!t.materials[e.material.name]&&(t.materials[e.material.name]=e.material),e.isMesh&&!t.meshes[e.name]&&(t.meshes[e.name]=e)}),t}(e.scene)),r(e)},t,t=>n(Error(`Could not load ${e}: ${null==t?void 0:t.message}`))))))}}function eo(e,t,r,n){let i=Array.isArray(t)?t:[t],a=v(ea(r,n),[e,...i],!1,{equal:O.equ});return Array.isArray(t)?a:a[0]}eo.preload=function(e,t,r){let n,i=Array.isArray(t)?t:[t];v(ea(r),[e,...i],!0,n)},eo.clear=function(e,t){var r=[e,...Array.isArray(t)?t:[t]];if(void 0===r||0===r.length)C.splice(0,C.length);else{let e=C.find(e=>g(r,e.keys,e.equal));e&&e.remove()}};let es={},el=/^three(?=[A-Z])/,ec=e=>`${e[0].toUpperCase()}${e.slice(1)}`,eu=0;function ed(e){if("function"==typeof e){let t=`${eu++}`;return es[t]=e,t}Object.assign(es,e)}function eA(e,t){let r=ec(e),n=es[r];if("primitive"!==e&&!n)throw Error(`R3F: ${r} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if("primitive"===e&&!t.object)throw Error("R3F: Primitives without 'object' are invalid!");if(void 0!==t.args&&!Array.isArray(t.args))throw Error("R3F: The args prop must be an array!")}function ef(e){if(e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?k(e.parent,e):z(e.object)&&!1!==e.props.visible&&(e.object.visible=!0),e.isHidden=!1,Z(e)}}function eh(e,t,r){let n=t.root.getState();if(e.parent||e.object===n.scene){if(!t.object){var i,a;let e=es[ec(t.type)];t.object=null!=(i=t.props.object)?i:new e(...null!=(a=t.props.args
114)?a:[]),t.object.__r3f=t}if(Y(t.object,t.props),t.props.attach)k(e,t);else if(z(t.object)&&z(e.object)){let n=e.object.children.indexOf(null==r?void 0:r.object);if(r&&-1!==n){let r=e.object.children.indexOf(t.object);-1!==r?(e.object.children.splice(r,1),e.object.children.splice(r<n?n-1:n,0,t.object)):(t.object.parent=e.object,e.object.children.splice(n,0,t.object),t.object.dispatchEvent({type:"added"}),e.object.dispatchEvent({type:"childadded",child:t.object}))}else e.object.add(t.object)}for(let e of t.children)eh(t,e);Z(t)}}function ep(e,t){t&&(t.parent=e,e.children.push(t),eh(e,t))}function eB(e,t,r){if(!t||!r)return;t.parent=e;let n=e.children.indexOf(r);-1!==n?e.children.splice(n,0,t):e.children.push(t),eh(e,t,r)}function em(e){if("function"==typeof e.dispose){let t=()=>{try{e.dispose()}catch{}};"undefined"!=typeof IS_REACT_ACT_ENVIRONMENT?t():(0,M.unstable_scheduleCallback)(M.unstable_IdlePriority,t)}}function eC(e,t,r){if(!t)return;t.parent=null;let n=e.children.indexOf(t);-1!==n&&e.children.splice(n,1),t.props.attach?j(e,t):z(t.object)&&z(e.object)&&(e.object.remove(t.object),function(e,t){let{internal:r}=e.getState();r.interaction=r.interaction.filter(e=>e!==t),r.initialHits=r.initialHits.filter(e=>e!==t),r.hovered.forEach((e,n)=>{(e.eventObject===t||e.object===t)&&r.hovered.delete(n)}),r.capturedMap.forEach((e,n)=>{q(r.capturedMap,t,e,n)})}(I(t),t.object));let i=null!==t.props.dispose&&!1!==r;for(let e=t.children.length-1;e>=0;e--){let r=t.children[e];eC(t,r,i)}t.children.length=0,delete t.object.__r3f,i&&"primitive"!==t.type&&"Scene"!==t.object.type&&em(t.object),void 0===r&&Z(t)}let eg=[],ev=()=>{},eb={},eE=0,eM=function(e){let t=E()(e);return t.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:l.version}),t}({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:function(e,t,r){var n;return eA(e=ec(e)in es?e:e.replace(el,""),t),"primitive"===e&&null!=(n=t.object)&&n.__r3f&&delete t.object.__r3f,_(t.object,r,e,t)},removeChild:eC,appendChild:ep,appendInitialChild:ep,insertBefore:eB,appendChildToContainer(e,t){let r=e.getState().scene.__r3f;t&&r&&ep(r,t)},removeChildFromContainer(e,t){let r=e.getState().scene.__r3f;t&&r&&eC(r,t)},insertInContainerBefore(e,t,r){let n=e.getState().scene.__r3f;t&&r&&n&&eB(n,t,r)},getRootHostContext:()=>eb,getChildHostContext:()=>eb,commitUpdate(e,t,r,n,i){var a,o,s;eA(t,n);let l=!1;if("primitive"===e.type&&r.object!==n.object||(null==(a=n.args)?void 0:a.length)!==(null==(o=r.args)?void 0:o.length)?l=!0:null!=(s=n.args)&&s.some((e,t)=>{var n;return e!==(null==(n=r.args)?void 0:n[t])})&&(l=!0),l)eg.push([e,{...n},i]);else{let t=function(e,t){let r={};for(let n in t)if(!N.includes(n)&&!O.equ(t[n],e.props[n]))for(let e in r[n]=t[n],t)e.startsWith(`${n}-`)&&(r[e]=t[e]);for(let n in e.props){if(N.includes(n)||t.hasOwnProperty(n))continue;let{root:i,key:a}=J(e.object,n);if(i.constructor&&0===i.constructor.length){let e=function(e){let t=K.get(e.constructor);try{t||(t=new e.constructor,K.set(e.constructor,t))}catch(e){}return t}(i);O.und(e)||(r[a]=e[a])}else r[a]=0}return r}(e,n);Object.keys(t).length&&(Object.assign(e.props,t),Y(e.object,t))}(null===i.sibling||(4&i.flags)==0)&&function(){for(let[e]of eg){let t=e.parent;if(t)for(let r of(e.props.attach?j(t,e):z(e.object)&&z(t.object)&&t.object.remove(e.object),e.children))r.props.attach?j(e,r):z(r.object)&&z(e.object)&&e.object.remove(r.object);e.isHidden&&ef(e),e.object.__r3f&&delete e.object.__r3f,"primitive"!==e.type&&em(e.object)}for(let[n,i,a]of eg){n.props=i;let o=n.parent;if(o){let i=es[ec(n.type)];n.object=null!=(e=n.props.object)?e:new i(...null!=(t=n.props.args)?t:[]),n.object.__r3f=n;var e,t,r=n.object;for(let e of[a,a.alternate])if(null!==e)if("function"==typeof e.ref){null==e.refCleanup||e.refCleanup();let t=e.ref(r);"function"==typeof t&&(e.refCleanup=t)}else e.ref&&(e.ref.current=r);for(let e of(Y(n.object,n.props),n.props.attach?k(o,n):z(n.object)&&z(o.object)&&o.object.add(n.object),n.children))e.props.attach?k(n,e):z(e.object)&&z(n.object)&&n.object.add(e.object);Z(n)}}eg.length=0}()},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:e=>null==e?void 0:e.object,prepareForCommit:()=>null,preparePortalMount:e=>_(e.getState().scene,e,"",{}),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:function(e){if(!e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?j(e.parent,e):z(e.object)&&(e.object.visible=!1),e.isHidden=!0,Z(e)}},unhideInstance:ef,createTextInstance:ev,hideTextInstance:ev,unhideTextInstance:ev,scheduleTimeout:"function"==typeof setTimeout?setTimeout:void 0,cancelTimeout:"function"==typeof clearTimeout?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){}
114,prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:l.createContext(null),setCurrentUpdatePriority(e){eE=e},getCurrentUpdatePriority:()=>eE,resolveUpdatePriority(){var e;if(0!==eE)return eE;switch("undefined"!=typeof window&&(null==(e=window.event)?void 0:e.type)){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return u.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return u.ContinuousEventPriority;default:return u.DefaultEventPriority}},resetFormInstance(){}}),ey=new Map,ew={objects:"shallow",strict:!1};function eI(e){let t,r,n=ey.get(e),i=null==n?void 0:n.fiber,a=null==n?void 0:n.store;n&&console.warn("R3F.createRoot should only be called once!");let o="function"==typeof reportError?reportError:console.error,s=a||((e,t)=>{let r=m((r,n)=>{let i,a=new d.Pq0,o=new d.Pq0,s=new d.Pq0;function c(e=n().camera,t=o,r=n().size){let{width:i,height:l,top:u,left:d}=r,A=i/l;t.isVector3?s.copy(t):s.set(...t);let f=e.getWorldPosition(a).distanceTo(s);if(e&&e.isOrthographicCamera)return{width:i/e.zoom,height:l/e.zoom,top:u,left:d,factor:1,distance:f,aspect:A};{let t=2*Math.tan(e.fov*Math.PI/180/2)*f,r=i/l*t;return{width:r,height:t,top:u,left:d,factor:i/r,distance:f,aspect:A}}}let u=e=>r(t=>({performance:{...t.performance,current:e}})),A=new d.I9Y;return{set:r,get:n,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(t=1)=>e(n(),t),advance:(e,r)=>t(e,r,n()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new d.zD7,pointer:A,mouse:A,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{let e=n();i&&clearTimeout(i),e.performance.current!==e.performance.min&&u(e.performance.min),i=setTimeout(()=>u(n().performance.max),e.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:c},setEvents:e=>r(t=>({...t,events:{...t.events,...e}})),setSize:(e,t,i=0,a=0)=>{let s=n().camera,l={width:e,height:t,top:i,left:a};r(e=>({size:l,viewport:{...e.viewport,...c(s,o,l)}}))},setDpr:e=>r(t=>{let r=P(e);return{viewport:{...t.viewport,dpr:r,initialDpr:t.viewport.initialDpr||r}}}),setFrameloop:(e="always")=>{let t=n().clock;t.stop(),t.elapsedTime=0,"never"!==e&&(t.start(),t.elapsedTime=0),r(()=>({frameloop:e}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:l.createRef(),active:!1,frames:0,priority:0,subscribe:(e,t,r)=>{let i=n().internal;return i.priority=i.priority+ +(t>0),i.subscribers.push({ref:e,priority:t,store:r}),i.subscribers=i.subscribers.sort((e,t)=>e.priority-t.priority),()=>{let r=n().internal;null!=r&&r.subscribers&&(r.priority=r.priority-(t>0),r.subscribers=r.subscribers.filter(t=>t.ref!==e))}}}}}),n=r.getState(),i=n.size,a=n.viewport.dpr,o=n.camera;return r.subscribe(()=>{let{camera:e,size:t,viewport:n,gl:s,set:l}=r.getState();if(t.width!==i.width||t.height!==i.height||n.dpr!==a){i=t,a=n.dpr,W(e,t),n.dpr>0&&s.setPixelRatio(n.dpr);let r="undefined"!=typeof HTMLCanvasElement&&s.domElement instanceof HTMLCanvasElement;s.setSize(t.width,t.height,r)}e!==o&&(o=e,l(t=>({viewport:{...t.viewport,...t.viewport.getCurrentViewport(e)}})))}),r.subscribe(t=>e(t)),r})(eU,ek),c=i||eM.createContainer(s,u.ConcurrentRoot,null,!1,null,"",o,o,o,null);n||ey.set(e,{fiber:c,store:s});let f=!1,h=null;return{async configure(n={}){var i,a;let o;h=new Promise(e=>o=e);let{gl:l,size:c,scene:u,events:p,onCreated:B,shadows:m=!1,linear:C=!1,flat:g=!1,legacy:v=!1,orthographic:b=!1,frameloop:E="always",dpr:M=[1,2],performance:y,raycaster:w,camera:I,onPointerMissed:F}
114=n,R=s.getState(),T=R.gl;if(!R.gl){let t={canvas:e,powerPreference:"high-performance",antialias:!0,alpha:!0},r="function"==typeof l?await l(t):l;T=$(r)?r:new A.WebGLRenderer({...t,...l}),R.set({gl:T})}let G=R.raycaster;G||R.set({raycaster:G=new d.tBo});let{params:D,...H}=w||{};if(O.equ(H,G,ew)||Y(G,{...H}),O.equ(D,G.params,ew)||Y(G,{params:{...G.params,...D}}),!R.camera||R.camera===r&&!O.equ(r,I,ew)){r=I;let e=null==I?void 0:I.isCamera,t=e?I:b?new d.qUd(0,0,0,0,.1,1e3):new d.ubm(75,0,.1,1e3);!e&&(t.position.z=5,I&&(Y(t,I),!t.manual&&("aspect"in I||"left"in I||"right"in I||"bottom"in I||"top"in I)&&(t.manual=!0,t.updateProjectionMatrix())),R.camera||null!=I&&I.rotation||t.lookAt(0,0,0)),R.set({camera:t}),G.camera=t}if(!R.scene){let e;null!=u&&u.isScene?_(e=u,s,"",{}):(_(e=new d.Z58,s,"",{}),u&&Y(e,u)),R.set({scene:e})}p&&!R.events.handlers&&R.set({events:p(s)});let x=function(e,t){if(!t&&"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&e.parentElement){let{width:t,height:r,top:n,left:i}=e.parentElement.getBoundingClientRect();return{width:t,height:r,top:n,left:i}}return!t&&"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas?{width:e.width,height:e.height,top:0,left:0}:{width:0,height:0,top:0,left:0,...t}}(e,c);if(O.equ(x,R.size,ew)||R.setSize(x.width,x.height,x.top,x.left),M&&R.viewport.dpr!==P(M)&&R.setDpr(M),R.frameloop!==E&&R.setFrameloop(E),R.onPointerMissed||R.set({onPointerMissed:F}),y&&!O.equ(y,R.performance,ew)&&R.set(e=>({performance:{...e.performance,...y}})),!R.xr){let e=(e,t)=>{let r=s.getState();"never"!==r.frameloop&&ek(e,!0,r,t)},t=()=>{let t=s.getState();t.gl.xr.enabled=t.gl.xr.isPresenting,t.gl.xr.setAnimationLoop(t.gl.xr.isPresenting?e:null),t.gl.xr.isPresenting||eU(t)},r={connect(){let e=s.getState().gl;e.xr.addEventListener("sessionstart",t),e.xr.addEventListener("sessionend",t)},disconnect(){let e=s.getState().gl;e.xr.removeEventListener("sessionstart",t),e.xr.removeEventListener("sessionend",t)}};"function"==typeof(null==(i=T.xr)?void 0:i.addEventListener)&&r.connect(),R.set({xr:r})}if(T.shadowMap){let e=T.shadowMap.enabled,t=T.shadowMap.type;if(T.shadowMap.enabled=!!m,O.boo(m))T.shadowMap.type=d.Wk7;else if(O.str(m)){let e={basic:d.bTm,percentage:d.QP0,soft:d.Wk7,variance:d.RyA};T.shadowMap.type=null!=(a=e[m])?a:d.Wk7}else O.obj(m)&&Object.assign(T.shadowMap,m);(e!==T.shadowMap.enabled||t!==T.shadowMap.type)&&(T.shadowMap.needsUpdate=!0)}return d.ppV.enabled=!v,f||(T.outputColorSpace=C?d.Zr2:d.er$,T.toneMapping=g?d.y_p:d.FV),R.legacy!==v&&R.set(()=>({legacy:v})),R.linear!==C&&R.set(()=>({linear:C})),R.flat!==g&&R.set(()=>({flat:g})),!l||O.fun(l)||$(l)||O.equ(l,T,ew)||Y(T,l),t=B,f=!0,o(),this},render(r){return f||h||this.configure(),h.then(()=>{eM.updateContainer((0,y.jsx)(eF,{store:s,children:r,onCreated:t,rootElement:e}),c,null,()=>void 0)}),s},unmount(){eR(e)}}}function eF({store:e,children:t,onCreated:r,rootElement:n}){return T(()=>{let t=e.getState();t.set(e=>({internal:{...e.internal,active:!0}})),r&&r(t),e.getState().events.connected||null==t.events.connect||t.events.connect(n)},[]),(0,y.jsx)(ee.Provider,{value:e,children:t})}function eR(e,t){let r=ey.get(e),n=null==r?void 0:r.fiber;if(n){let i=null==r?void 0:r.store.getState();i&&(i.internal.active=!1),eM.updateContainer(null,n,null,()=>{i&&setTimeout(()=>{try{null==i.events.disconnect||i.events.disconnect(),null==(r=i.gl)||null==(n=r.renderLists)||null==n.dispose||n.dispose(),null==(a=i.gl)||null==a.forceContextLoss||a.forceContextLoss(),null!=(o=i.gl)&&o.xr&&i.xr.disconnect();var r,n,a,o,s=i.scene;for(let e in"Scene"!==s.type&&(null==s.dispose||s.dispose()),s){let t=s[e];(null==t?void 0:t.type)!=="Scene"&&(null==t||null==t.dispose||t.dispose())}ey.delete(e),t&&t(e)}catch(e){}},500)})}}function eT(e,t,r){return(0,y.jsx)(eG,{children:e,container:t,state:r})}function eG({state:e={},children:t,container:r}){let{events:n,size:i,...a}=e,o=et(),[s]=l.useState(()=>new d.tBo),[c]=l.useState(()=>new d.I9Y),u=G((e,t)=>{let a;if(t.camera&&i){let r=t.camera;a=e.viewport.getCurrentViewport(r,new d.Pq0,i),r!==e.camera&&W(r,i)}return{...e,...t,scene:r,raycaster:s,pointer:c,mouse:c,previousRoot:o,events:{...e.events,...t.events,...n},size:{...e.size,...i},viewport:{...e.viewport,...a},setEvents:e=>t.set(t=>({...t,events:{...t.events,...e}}))}}),A=l.useMemo(()=>{let e=m((e,t)=>
114({...a,set:e,get:t})),t=t=>e.setState(e=>u.current(t,e));return t(o.getState()),o.subscribe(t),e},[o,r]);return(0,y.jsx)(y.Fragment,{children:eM.createPortal((0,y.jsx)(ee.Provider,{value:A,children:t}),A,null)})}let eD=new Set,eH=new Set,ex=new Set;function eP(e,t){if(e.size)for(let{callback:r}of e.values())r(t)}function eS(e,t){switch(e){case"before":return eP(eD,t);case"after":return eP(eH,t);case"tail":return eP(ex,t)}}function eO(e,t,r){let a=t.clock.getDelta();"never"===t.frameloop&&"number"==typeof e&&(a=e-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=e),n=t.internal.subscribers;for(let e=0;e<n.length;e++)(i=n[e]).ref.current(i.store.getState(),a,r);return!t.internal.priority&&t.gl.render&&t.gl.render(t.scene,t.camera),t.internal.frames=Math.max(0,t.internal.frames-1),"always"===t.frameloop?1:t.internal.frames}let eL=!1,e_=!1;function eJ(e){for(let r of(o=requestAnimationFrame(eJ),eL=!0,a=0,eS("before",e),e_=!0,ey.values())){var t;(s=r.store.getState()).internal.active&&("always"===s.frameloop||s.internal.frames>0)&&!(null!=(t=s.gl.xr)&&t.isPresenting)&&(a+=eO(e,s))}if(e_=!1,eS("after",e),0===a)return eS("tail",e),eL=!1,cancelAnimationFrame(o)}function eU(e,t=1){var r;
114if(!e)return ey.forEach(e=>eU(e.store.getState(),t));(null==(r=e.gl.xr)||!r.isPresenting)&&e.internal.active&&"never"!==e.frameloop&&(t>1?e.internal.frames=Math.min(60,e.internal.frames+t):e_?e.internal.frames=2:e.internal.frames=1,eL||(eL=!0,requestAnimationFrame(eJ)))}function ek(e,t=!0,r,n){if(t&&eS("before",e),r)eO(e,r,n);else for(let t of ey.values())eO(e,t.store.getState());t&&eS("after",e)}let ej={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function eN(e){let{handlePointer:t}=function(e){function t(e){return e.filter(e=>["Move","Over","Enter","Out","Leave"].some(t=>{var r;return null==(r=e.__r3f)?void 0:r.handlers["onPointer"+t]}))}function r(t){let{internal:r}=e.getState();for(let e of r.hovered.values())if(!t.length||!t.find(t=>t.object===e.object&&t.index===e.index&&t.instanceId===e.instanceId)){let n=e.eventObject.__r3f;if(r.hovered.delete(V(e)),null!=n&&n.eventCount){let r=n.handlers,i={...e,intersections:t};null==r.onPointerOut||r.onPointerOut(i),null==r.onPointerLeave||r.onPointerLeave(i)}}}function n(e,t){for(let r=0;r<t.length;r++){let n=t[r].__r3f;null==n||null==n.handlers.onPointerMissed||n.handlers.onPointerMissed(e)}}return{handlePointer:function(i){switch(i){case"onPointerLeave":case"onPointerCancel":return()=>r([]);case"onLostPointerCapture":return t=>{let{internal:n}=e.getState();"pointerId"in t&&n.capturedMap.has(t.pointerId)&&requestAnimationFrame(()=>{n.capturedMap.has(t.pointerId)&&(n.capturedMap.delete(t.pointerId),r([]))})}}return function(a){let{onPointerMissed:o,internal:s}=e.getState();s.lastEvent.current=a;let l="onPointerMove"===i,c="onClick"===i||"onContextMenu"===i||"onDoubleClick"===i,u=function(t,r){let n=e.getState(),i=new Set,a=[],o=r?r(n.internal.interaction):n.internal.interaction;for(let e=0;e<o.length;e++){let t=S(o[e]);t&&(t.raycaster.camera=void 0)}n.previousRoot||null==n.events.compute||n.events.compute(t,n);let s=o.flatMap(function(e){let r=S(e);if(!r||!r.events.enabled||null===r.raycaster.camera)return[];if(void 0===r.raycaster.camera){var n;null==r.events.compute||r.events.compute(t,r,null==(n=r.previousRoot)?void 0:n.getState()),void 0===r.raycaster.camera&&(r.raycaster.camera=null)}return r.raycaster.camera?r.raycaster.intersectObject(e,!0):[]}).sort((e,t)=>{let r=S(e.object),n=S(t.object);return r&&n&&n.events.priority-r.events.priority||e.distance-t.distance}).filter(e=>{let t=V(e);return!i.has(t)&&(i.add(t),!0)});for(let e of(n.events.filter&&(s=n.events.filter(s,n)),s)){let t=e.object;for(;t;){var l;null!=(l=t.__r3f)&&l.eventCount&&a.push({...e,eventObject:t}),t=t.parent}}if("pointerId"in t&&n.internal.capturedMap.has(t.pointerId))for(let e of n.internal.capturedMap.get(t.pointerId).values())i.has(V(e.intersection))||a.push(e.intersection);return a}(a,l?t:void 0),A=c?function(t){let{internal:r}=e.getState(),n=t.offsetX-r.initialClick[0],i=t.offsetY-r.initialClick[1];return Math.round(Math.sqrt(n*n+i*i))}(a):0;"onPointerDown"===i&&(s.initialClick=[a.offsetX,a.offsetY],s.initialHits=u.map(e=>e.eventObject)),c&&!u.length&&A<=2&&(n(a,s.interaction),o&&o(a)),l&&r(u),!function(e,t,n,i){if(e.length){let a={stopped:!1};for(let o of e){let s=S(o.object);if(s||o.object.traverseAncestors(e=>{let t=S(e);if(t)return s=t,!1}),s){let{raycaster:l,pointer:c,camera:u,internal:A}=s,f=new d.Pq0(c.x,c.y,0).unproject(u),h=e=>{var t,r;return null!=(t=null==(r=A.capturedMap.get(e))?void 0:r.has(o.eventObject))&&t},p=e=>{let r={intersection:o,target:t.target};A.capturedMap.has(e)?A.capturedMap.get(e).set(o.eventObject,r):A.capturedMap.set(e,new Map([[o.eventObject,r]])),t.target.setPointerCapture(e)},B=e=>{let t=A.capturedMap.get(e);t&&q(A.capturedMap,o.eventObject,t,e)},m={};for(let e in t){let r=t[e];"function"!=typeof r&&(m[e]=r)}let C={...o,...m,pointer:c,intersections:e,stopped:a.stopped,delta:n,unprojectedPoint:f,ray:l.ray,camera:u,stopPropagation(){let n="pointerId"in t&&A.capturedMap.get(t.pointerId);(!n||n.has(o.eventObject))&&(C.stopped=a.stopped=!0,A.hovered.size&&Array.from(A.hovered.values()).find(e=>e.eventObject===o.eventObject)&&r([...e.slice(0,e.indexOf(o)),o]))},target:{hasPointerCapture:h,setPointerCapture:p,releasePointerCapture:B},currentTarget:{hasPointerCapture:h,setPointerCapture:p,releasePointerCapture:B},nativeEvent:t};if(i(C),!0===a.stopped)break}}}}(u,a,A,function(e){let t=e.eventObject,r=t.__r3f;if(!(null!=r&&r.eventCount))return;let o=r.handlers;if(l){if(o.onPointerOver||o.onPointerEnter||o.onPointerOut||o.onPointerLeave){let t=V(e),r=s.hovered.get(t);r?r.stopped&&e.stopPropagation():(s.hovered.set(t,e),null==o.onPointerOver||o.onPointerOver(e),null==o.onPointerEnter||o.onPointerEnter(e))}null==o.onPointerMove||o.onPointerMove(e)}else{let r=o[i];r?(!c||s.initialHits.includes(t))&&(n(a,s.interaction.filter(e=>!s.initialHits.includes(e))),r(e)):c&&s.initialHits.includes(t)&&n(a,s.interaction.filter(e=>!s.initialHits.includes(e)))}})}}}}(e);return{priority:1,enabled:!0,compute(e,t,r){t.pointer.set(e.offsetX/t.size.width*2-1,-(2*(e.offsetY/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)},connected:void 0,handlers:Object.keys(ej).reduce((e,r)=>({...e,[r]:t(r)}),{}),update:()=>{var t;let{events:r,internal:n}=e.getState();null!=(t=n.lastEvent)&&t.current&&r.handlers&&r.handlers.onPointerMove(n.lastEvent.current)},connect:t=>
114{let{set:r,events:n}=e.getState();if(null==n.disconnect||n.disconnect(),r(e=>({events:{...e.events,connected:t}})),n.handlers)for(let e in n.handlers){let r=n.handlers[e],[i,a]=ej[e];t.addEventListener(i,r,{passive:a})}},disconnect:()=>{let{set:t,events:r}=e.getState();if(r.connected){if(r.handlers)for(let e in r.handlers){let t=r.handlers[e],[n]=ej[e];r.connected.removeEventListener(n,t)}t(e=>({events:{...e.events,connected:void 0}}))}}}}},84943:(e,t,r)=>{e.exports=r(84004)},88945:(e,t,r)=>{r.d(t,{A:()=>n});function n(){return(n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.