@react-three/drei 7.20.0 → 7.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("react-dom"),n=require("three"),o=require("@react-three/fiber"),a=require("zustand"),s=require("react-merge-refs"),i=require("three-stdlib"),u=require("troika-three-text"),c=require("use-asset"),l=require("lodash.omit"),A=require("lodash.pick"),f=require("three/examples/js/libs/stats.min"),C=require("detect-gpu"),m=require("three-mesh-bvh"),p=require("react-composer");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function v(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var B=d(e),D=v(t),E=v(r),h=v(n),_=d(a),x=d(s),g=d(l),F=d(A),w=d(f),y=d(p);const P=new n.Vector3,b=new n.Vector3,z=new n.Vector3;function M(e,t,r){const n=P.setFromMatrixPosition(e.matrixWorld);n.project(t);const o=r.width/2,a=r.height/2;return[n.x*o+o,-n.y*a+a]}const L=e=>Math.abs(e)<1e-10?0:e;function S(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=L(t[r]*e.elements[r])+(15!==r?",":")");return r+n}const H=(T=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>S(e,T));var T;const O=(e,t)=>{return S(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r},j=D.forwardRef((({children:e,eps:t=.001,style:r,className:a,prepend:s,center:i,fullscreen:u,portal:c,distanceFactor:l,sprite:A=!1,transform:f=!1,occlude:C,onOcclude:m,zIndexRange:p=[16777271,0],calculatePosition:d=M,as:v="div",pointerEvents:h="auto",..._},x)=>{var g;const F=o.useThree((({gl:e})=>e)),w=o.useThree((({camera:e})=>e)),y=o.useThree((({scene:e})=>e)),S=o.useThree((({size:e})=>e)),T=o.useThree((({raycaster:e})=>e)),[j]=D.useState((()=>document.createElement(v))),X=D.useRef(null),Q=D.useRef(0),V=D.useRef([0,0]),k=D.useRef(null),N=D.useRef(null),I=null!==(g=null==c?void 0:c.current)&&void 0!==g?g:F.domElement.parentNode;D.useEffect((()=>{if(X.current){if(y.updateMatrixWorld(),f)j.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=d(X.current,w,S);j.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return I&&(s?I.prepend(j):I.appendChild(j)),()=>{I&&I.removeChild(j),E.unmountComponentAtNode(j)}}}),[I,f]);const U=D.useMemo((()=>f?{position:"absolute",top:0,left:0,width:S.width,height:S.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:i?"translate3d(-50%,-50%,0)":"none",...u&&{top:-S.height/2,left:-S.width/2,width:S.width,height:S.height},...r}),[r,i,u,S,f]),G=D.useMemo((()=>({position:"absolute",pointerEvents:h})),[h]);D.useLayoutEffect((()=>{f?E.render(D.createElement("div",{ref:k,style:U},D.createElement("div",{ref:N,style:G},D.createElement("div",{ref:x,className:a,style:r,children:e}))),j):E.render(D.createElement("div",{ref:x,style:U,className:a,children:e}),j)}));const R=D.useRef(!0);return o.useFrame((()=>{if(X.current){w.updateMatrixWorld(),X.current.updateWorldMatrix(!0,!1);const e=f?V.current:d(X.current,w,S);if(f||Math.abs(Q.current-w.zoom)>t||Math.abs(V.current[0]-e[0])>t||Math.abs(V.current[1]-e[1])>t){const t=function(e,t){const r=P.setFromMatrixPosition(e.matrixWorld),n=b.setFromMatrixPosition(t.matrixWorld),o=r.sub(n),a=t.getWorldDirection(z);return o.angleTo(a)>Math.PI/2}(X.current,w);let r=!1;"boolean"==typeof C?!0===C&&(r=[y]):Array.isArray(C)&&(r=C.map((e=>e.current)));const o=R.current;if(r){const e=function(e,t,r,n){const o=P.setFromMatrixPosition(e.matrixWorld),a=o.clone();a.project(t),r.setFromCamera(a,t);const s=r.intersectObjects(n,!0);if(s.length){const e=s[0].distance;return o.distanceTo(r.ray.origin)<e}return!0}(X.current,w,T,r);R.current=e&&!t}else R.current=!t;if(o!==R.current&&(m?m(!R.current):j.style.display=R.current?"block":"none"),j.style.zIndex=`${function(e,t,r){if(t instanceof n.PerspectiveCamera||t instanceof n.OrthographicCamera){const n=P.setFromMatrixPosition(e.matrixWorld),o=b.setFromMatrixPosition(t.matrixWorld),a=n.distanceTo(o),s=(r[1]-r[0])/(t.far-t.near),i=r[1]-s*t.far;return Math.round(s*a+i)}}(X.current,w,p)}`,f){const[e,t]=[S.width/2,S.height/2],r=w.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:o,left:a,bottom:s,right:i}=w,u=H(w.matrixWorldInverse),c=n?`scale(${r})translate(${L(-(i+a)/2)}px,${L((o+s)/2)}px)`:`translateZ(${r}px)`;let f=X.current.matrixWorld;A&&(f=w.matrixWorldInverse.clone().transpose().copyPosition(f).scale(X.current.scale),f.elements[3]=f.elements[7]=f.elements[11]=0,f.elements[15]=1),j.style.width=S.width+"px",j.style.height=S.height+"px",j.style.perspective=n?"":`${r}px`,k.current&&N.current&&(k.current.style.transform=`${c}${u}translate(${e}px,${t}px)`,N.current.style.transform=O(f,1/((l||10)/400)))}else{const t=void 0===l?1:function(e,t){if(t instanceof n.OrthographicCamera)return t.zoom;if(t instanceof n.PerspectiveCamera){const r=P.setFromMatrixPosition(e.matrixWorld),n=b.setFromMatrixPosition(t.matrixWorld),o=t.fov*Math.PI/180,a=r.distanceTo(n);return 1/(2*Math.tan(o/2)*a)}return 1}(X.current,w)*l;j.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}V.current=e,Q.current=w.zoom}}})),D.createElement("group",B.default({},_,{ref:X}))}));let X=0;const Q=_.default((e=>(n.DefaultLoadingManager.onStart=(t,r,n)=>{e({active:!0,item:t,loaded:r,total:n,progress:(r-X)/(n-X)*100})},n.DefaultLoadingManager.onLoad=()=>{e({active:!1})},n.DefaultLoadingManager.onError=t=>e((e=>({errors:[...e.errors,t]}))),n.DefaultLoadingManager.onProgress=(t,r,n)=>{r===n&&(X=n),e({active:!0,item:t,loaded:r,total:n,progress:(r-X)/(n-X)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0}))),V=e=>`Loading ${e.toFixed(2)}%`;const k={container:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity 300ms ease",zIndex:1e3},inner:{width:100,height:3,background:"#272727",textAlign:"center"},bar:{height:3,width:"100%",background:"white",transition:"transform 200ms",transformOrigin:"left center"},data:{display:"inline-block",position:"relative",fontVariantNumeric:"tabular-nums",marginTop:"0.8em",color:"#f0f0f0",fontSize:"0.6em",fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, Roboto, Ubuntu, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',whiteSpace:"nowrap"}},N=D.createContext(null);function I(){return D.useContext(N)}const U=D.forwardRef((({children:e},t)=>{const r=D.useRef(null),n=I(),{width:a,height:s}=o.useThree((e=>e.viewport));return o.useFrame((()=>{r.current.position.x=n.horizontal?-a*(n.pages-1)*n.offset:0,r.current.position.y=n.horizontal?0:s*(n.pages-1)*n.offset})),D.createElement("group",{ref:x.default([t,r])},e)})),G=D.forwardRef((({children:e,style:t,...r},n)=>{const a=I(),s=D.useRef(null),{width:i,height:u}=o.useThree((e=>e.size)),c=D.useContext(o.context);return o.useFrame((()=>{a.delta>a.eps&&(s.current.style.transform=`translate3d(${a.horizontal?-i*(a.pages-1)*a.offset:0}px,${a.horizontal?0:u*(a.pages-1)*-a.offset}px,0)`)})),E.render(D.createElement("div",B.default({ref:x.default([n,s]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},r),D.createElement(N.Provider,{value:a},D.createElement(o.context.Provider,{value:c},e))),a.fixed),null})),R=D.forwardRef((({html:e,...t},r)=>{const n=e?G:U;return D.createElement(n,B.default({ref:r},t))})),q=D.forwardRef((function({follow:e=!0,lockX:t=!1,lockY:r=!1,lockZ:n=!1,...a},s){const i=D.useRef();return o.useFrame((({camera:o})=>{if(!e||!i.current)return;const a=i.current.rotation.clone();i.current.quaternion.copy(o.quaternion),t&&(i.current.rotation.x=a.x),r&&(i.current.rotation.y=a.y),n&&(i.current.rotation.z=a.z)})),D.createElement("group",B.default({ref:x.default([i,s])},a))})),W=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function Y(e){const r=o.useThree((e=>e.gl)),a=o.useLoader(n.TextureLoader,W(e)?Object.values(e):e);if(t.useEffect((()=>{(Array.isArray(a)?a:[a]).forEach(r.initTexture)}),[r,a]),W(e)){const t=Object.keys(e),r={};return t.forEach((e=>Object.assign(r,{[e]:a[t.indexOf(e)]}))),r}return a}Y.preload=e=>o.useLoader.preload(n.TextureLoader,e),Y.clear=e=>o.useLoader.clear(n.TextureLoader,e);const K=D.forwardRef((function({points:e,color:t="black",vertexColors:r,lineWidth:o,dashed:a,...s},u){const[c]=D.useState((()=>new i.Line2)),[l]=D.useState((()=>new i.LineMaterial)),[A]=D.useState((()=>new n.Vector2(512,512))),f=D.useMemo((()=>{const t=new i.LineGeometry,o=e.map((e=>e instanceof n.Vector3?e.toArray():e));if(t.setPositions(o.flat()),r){const e=r.map((e=>e instanceof n.Color?e.toArray():e));t.setColors(e.flat())}return t}),[e,r]);return D.useLayoutEffect((()=>{c.computeLineDistances()}),[e,c]),D.useLayoutEffect((()=>{a?l.defines.USE_DASH="":delete l.defines.USE_DASH,l.needsUpdate=!0}),[a,l]),D.useEffect((()=>()=>f.dispose()),[f]),D.createElement("primitive",B.default({object:c,ref:u},s),D.createElement("primitive",{object:f,attach:"geometry"}),D.createElement("primitive",B.default({object:l,attach:"material",color:t,vertexColors:Boolean(r),resolution:A,linewidth:o,dashed:a},s)))})),Z=D.forwardRef((function({start:e,end:t,mid:r,segments:o=20,...a},s){const i=D.useMemo((()=>{const a=e instanceof n.Vector3?e:new n.Vector3(...e),s=t instanceof n.Vector3?t:new n.Vector3(...t),i=r||a.clone().add(s.clone().sub(a)).add(new n.Vector3(0,a.y-s.y,0)),u=i instanceof n.Vector3?i:new n.Vector3(...i);return new n.QuadraticBezierCurve3(a,u,s).getPoints(o)}),[e,t,r,o]);return D.createElement(K,B.default({ref:s,points:i},a))})),J=D.forwardRef((function({start:e,end:t,midA:r,midB:o,segments:a=20,...s},i){const u=D.useMemo((()=>{const s=e instanceof n.Vector3?e:new n.Vector3(...e),i=t instanceof n.Vector3?t:new n.Vector3(...t),u=r instanceof n.Vector3?r:new n.Vector3(...r),c=o instanceof n.Vector3?o:new n.Vector3(...o);return new n.CubicBezierCurve3(s,u,c,i).getPoints(a)}),[e,t,r,o,a]);return D.createElement(K,B.default({ref:i,points:u},s))})),$=D.forwardRef((({url:e,distance:t=1,loop:r=!0,autoplay:a,...s},i)=>{const u=D.useRef(),c=o.useThree((({camera:e})=>e)),[l]=D.useState((()=>new n.AudioListener)),A=o.useLoader(n.AudioLoader,e);return D.useEffect((()=>{const e=u.current;e&&(e.setBuffer(A),e.setRefDistance(t),e.setLoop(r),a&&!e.isPlaying&&e.play())}),[A,c,t,r]),D.useEffect((()=>{const e=u.current;return c.add(l),()=>{c.remove(l),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),D.createElement("positionalAudio",B.default({ref:x.default([u,i]),args:[l]},s))})),ee=D.forwardRef((({anchorX:e="center",anchorY:t="middle",children:r,onSync:n,...a},s)=>{const i=o.useThree((({invalidate:e})=>e)),[c]=D.useState((()=>new u.Text)),[l,A]=D.useMemo((()=>{const e=[];let t="";return D.Children.forEach(r,(r=>{"string"==typeof r||"number"==typeof r?t+=r:e.push(r)})),[e,t]}),[r]);return D.useLayoutEffect((()=>{c.sync((()=>{i(),n&&n(c)}))})),D.useEffect((()=>()=>c.dispose()),[c]),D.createElement("primitive",B.default({object:c,ref:s,text:A,anchorX:e,anchorY:t},a),l)})),te={sunset:"venice_sunset_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",night:"dikhololo_night_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr",forest:"forest_slope_1k.hdr",apartment:"lebombo_1k.hdr",studio:"studio_small_03_1k.hdr",city:"potsdamer_platz_1k.hdr",park:"rooitou_park_1k.hdr",lobby:"st_fagans_interior_1k.hdr"};function re({background:e=!1,files:t=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:r="",preset:a,scene:s,extensions:u}){if(a){if(!(a in te))throw new Error("Preset must be one of: "+Object.keys(te).join(", "));t=te[a],r="https://rawcdn.githack.com/pmndrs/drei-assets/aa3600359ba664d546d05821bcbca42013587df2/hdri/"}const l=o.useThree((({scene:e})=>e)),A=o.useThree((({gl:e})=>e)),f=Array.isArray(t),C=f?n.CubeTextureLoader:i.RGBELoader,m=o.useLoader(C,f?[t]:t,(e=>{e.setPath(r),u&&u(e)})),p=f?m[0]:m,d=c.useAsset((()=>new Promise((e=>{const t=new n.PMREMGenerator(A),r=function(e,t,r){return r?(t.compileEquirectangularShader(),t.fromCubemap(e).texture):t.fromEquirectangular(e).texture}(p,t,f);t.dispose(),e(r)}))),p);return D.useLayoutEffect((()=>{const t=s?s.background:l.background,r=s?s.environment:l.environment;return s?(s.environment=d,e&&(s.background=d)):(l.environment=d,e&&(l.background=d)),()=>{s?(s.environment=r,s.background=t):(l.environment=r,l.background=t),c.useAsset.clear(p),d.dispose()}}),[d,e,s]),null}o.extend({EffectComposer:i.EffectComposer,RenderPass:i.RenderPass,ShaderPass:i.ShaderPass});const ne=()=>{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}},oe=D.forwardRef((({children:e,multisamping:t=8,renderIndex:r=1,disableGamma:a=!1,disableRenderPass:s=!1,...u},c)=>{const l=D.useRef(),A=o.useThree((({scene:e})=>e)),f=o.useThree((({camera:e})=>e)),C=o.useThree((({gl:e})=>e)),m=o.useThree((({size:e})=>e)),[p]=D.useState((()=>{if(ne()&&t>0){const e=new n.WebGLMultisampleRenderTarget(m.width,m.height,{format:n.RGBAFormat,encoding:n.sRGBEncoding});return e.samples=8,e}}));return D.useEffect((()=>{var e,t;null==(e=l.current)||e.setSize(m.width,m.height),null==(t=l.current)||t.setPixelRatio(C.getPixelRatio())}),[C,m]),o.useFrame((()=>{var e;return null==(e=l.current)?void 0:e.render()}),r),D.createElement("effectComposer",B.default({ref:x.default([c,l]),args:[C,p]},u),!s&&D.createElement("renderPass",{attachArray:"passes",args:[A,f]}),!a&&D.createElement("shaderPass",{attachArray:"passes",args:[i.GammaCorrectionShader]}),e)}));function ae(e,t,r,n){return class extends h.ShaderMaterial{constructor(){const o=Object.entries(e);super({uniforms:o.reduce(((e,[t,r])=>({...e,...h.UniformsUtils.clone({[t]:{value:r}})})),{}),vertexShader:t,fragmentShader:r}),o.forEach((([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t}))),n&&n(this)}}}const se=ae({color:new h.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);\n }\n"),ie=D.forwardRef((({children:e,color:t,segments:r=1,scale:n=1,zoom:a=1,grayscale:s=0,url:i,...u},c)=>{o.extend({ImageMaterial:se});const l=Y(i),A=Array.isArray(n)?[n[0],n[1]]:[n,n],f=[l.image.width,l.image.height];return D.createElement("mesh",B.default({ref:c,scale:n},u),D.createElement("planeGeometry",{args:[1,1,r,r]}),D.createElement("imageMaterial",{color:t,map:l,zoom:a,grayscale:s,scale:A,imageBounds:f}),e)})),ue=D.forwardRef((({makeDefault:e,manual:t,...r},n)=>{const a=o.useThree((({set:e})=>e)),s=o.useThree((({camera:e})=>e)),i=o.useThree((({size:e})=>e)),u=D.useRef();return D.useLayoutEffect((()=>{u.current&&!t&&u.current.updateProjectionMatrix()}),[i,r]),D.useLayoutEffect((()=>{if(e&&u.current){const e=s;return a((()=>({camera:u.current}))),()=>a((()=>({camera:e})))}}),[s,u,e,a]),D.createElement("orthographicCamera",B.default({left:i.width/-2,right:i.width/2,top:i.height/2,bottom:i.height/-2,ref:x.default([u,n])},r))})),ce=D.forwardRef((({makeDefault:e,manual:t,...r},n)=>{const a=o.useThree((({set:e})=>e)),s=o.useThree((({camera:e})=>e)),i=o.useThree((({size:e})=>e)),u=D.useRef();return D.useLayoutEffect((()=>{const{current:e}=u;e&&!t&&(e.aspect=i.width/i.height,e.updateProjectionMatrix())}),[i,r]),D.useLayoutEffect((()=>{if(e&&u.current){const e=s;return a((()=>({camera:u.current}))),()=>a((()=>({camera:e})))}}),[s,u,e,a]),D.createElement("perspectiveCamera",B.default({ref:x.default([u,n])},r))})),le=D.forwardRef((({intensity:e=1,decay:t,decayRate:r=.65,maxYaw:n=.1,maxPitch:a=.1,maxRoll:s=.1,yawFrequency:u=1,pitchFrequency:c=1,rollFrequency:l=1,controls:A},f)=>{const C=o.useThree((e=>e.camera)),m=o.useThree((e=>e.controls)),p=D.useRef(e),d=D.useRef(C.rotation.clone()),[v]=D.useState((()=>new i.SimplexNoise)),[B]=D.useState((()=>new i.SimplexNoise)),[E]=D.useState((()=>new i.SimplexNoise)),h=()=>{(p.current<0||p.current>1)&&(p.current=p.current<0?0:1)};return D.useImperativeHandle(f,(()=>({getIntensity:()=>p.current,setIntensity:e=>{p.current=e,h()}})),[]),D.useEffect((()=>{const e=m||(null==A?void 0:A.current),t=()=>{d.current=C.rotation.clone()};return null==e||e.addEventListener("change",t),()=>{null==e||e.removeEventListener("change",t)}}),[A,m]),o.useFrame((({clock:e},o)=>{const i=Math.pow(p.current,2),A=n*i*v.noise(e.elapsedTime*u,1),f=a*i*B.noise(e.elapsedTime*c,1),m=s*i*E.noise(e.elapsedTime*l,1);C.rotation.set(d.current.x+f,d.current.y+A,d.current.z+m),t&&p.current>0&&(p.current-=r*o,h())})),null}));const Ae=D.forwardRef(((e,t)=>{const{camera:r,onChange:n,...a}=e,s=o.useThree((({camera:e})=>e)),u=o.useThree((({invalidate:e})=>e)),c=r||s,[l]=D.useState((()=>new i.DeviceOrientationControls(c)));return D.useEffect((()=>{const e=e=>{u(),n&&n(e)};return null==l||null==l.addEventListener||l.addEventListener("change",e),()=>null==l||null==l.removeEventListener?void 0:l.removeEventListener("change",e)}),[n,l,u]),o.useFrame((()=>null==l?void 0:l.update())),D.useEffect((()=>{const e=l;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[l]),l?D.createElement("primitive",B.default({ref:t,dispose:void 0,object:l},a)):null})),fe=D.forwardRef(((e,t)=>{const{onChange:r,...n}=e,a=o.useThree((({invalidate:e})=>e)),s=o.useThree((({camera:e})=>e)),u=o.useThree((({gl:e})=>e)),[c]=D.useState((()=>new i.FlyControls(s,u.domElement)));return D.useEffect((()=>{const e=e=>{a(),r&&r(e)};return null==c||null==c.addEventListener||c.addEventListener("change",e),()=>null==c||null==c.removeEventListener?void 0:c.removeEventListener("change",e)}),[r,c,a]),o.useFrame(((e,t)=>null==c?void 0:c.update(t))),c?D.createElement("primitive",B.default({ref:t,dispose:void 0,object:c},n)):null})),Ce=D.forwardRef(((e={enableDamping:!0},t)=>{const{camera:r,onChange:n,onStart:a,onEnd:s,...u}=e,c=o.useThree((({invalidate:e})=>e)),l=o.useThree((({camera:e})=>e)),A=o.useThree((({gl:e})=>e.domElement)),f=r||l,C=D.useMemo((()=>new i.MapControls(f)),[f]);return D.useEffect((()=>{C.connect(A);const e=e=>{c(),n&&n(e)};return C.addEventListener("change",e),a&&C.addEventListener("start",a),s&&C.addEventListener("end",s),()=>{C.dispose(),C.removeEventListener("change",e),a&&C.removeEventListener("start",a),s&&C.removeEventListener("end",s)}}),[n,a,s,C,c,A]),o.useFrame((()=>C.update())),D.createElement("primitive",B.default({ref:t,dispose:void 0,object:C,enableDamping:!0},u))})),me=D.forwardRef((({makeDefault:e,camera:t,regress:r,domElement:n,enableDamping:a=!0,onChange:s,onStart:u,onEnd:c,...l},A)=>{const f=o.useThree((({invalidate:e})=>e)),C=o.useThree((({camera:e})=>e)),m=o.useThree((({gl:e})=>e)),p=o.useThree((({events:e})=>e)),d=o.useThree((({set:e})=>e)),v=o.useThree((({get:e})=>e)),E=o.useThree((({performance:e})=>e)),h=t||C,_=n||("boolean"!=typeof p.connected?p.connected:m.domElement),x=D.useMemo((()=>new i.OrbitControls(h)),[h]);return o.useFrame((()=>{x.enabled&&x.update()})),D.useEffect((()=>{const e=e=>{f(),r&&E.regress(),s&&s(e)};return x.connect(_),x.addEventListener("change",e),u&&x.addEventListener("start",u),c&&x.addEventListener("end",c),()=>{x.removeEventListener("change",e),u&&x.removeEventListener("start",u),c&&x.removeEventListener("end",c),x.dispose()}}),[_,s,u,c,r,x,f]),D.useEffect((()=>{if(e){const e=v().controls;return d({controls:x}),()=>d({controls:e})}}),[e,x]),D.createElement("primitive",B.default({ref:A,object:x,enableDamping:a},l))})),pe=D.forwardRef((({makeDefault:e,camera:t,domElement:r,regress:n,onChange:a,onStart:s,onEnd:u,...c},l)=>{const{invalidate:A,camera:f,gl:C,events:m,set:p,get:d,performance:v,viewport:E}=o.useThree(),h=t||f,_=r||("boolean"!=typeof m.connected?m.connected:C.domElement),x=D.useMemo((()=>new i.TrackballControls(h)),[h]);return o.useFrame((()=>{x.enabled&&x.update()})),D.useEffect((()=>{const e=e=>{A(),n&&v.regress(),a&&a(e)};return x.connect(_),x.addEventListener("change",e),s&&x.addEventListener("start",s),u&&x.addEventListener("end",u),()=>{x.removeEventListener("change",e),s&&x.removeEventListener("start",s),u&&x.removeEventListener("end",u),x.dispose()}}),[_,a,s,u,n,x,A]),D.useEffect((()=>{x.handleResize()}),[E]),D.useEffect((()=>{if(e){const e=d().controls;return p({controls:x}),()=>p({controls:e})}}),[e,x]),D.createElement("primitive",B.default({ref:l,object:x},c))})),de=D.forwardRef((({makeDefault:e,camera:t,regress:r,domElement:n,onChange:a,onStart:s,onEnd:u,...c},l)=>{const A=o.useThree((({invalidate:e})=>e)),f=o.useThree((({camera:e})=>e)),C=o.useThree((({gl:e})=>e)),m=o.useThree((({events:e})=>e)),p=o.useThree((({set:e})=>e)),d=o.useThree((({get:e})=>e)),v=o.useThree((({performance:e})=>e)),E=t||f,h=n||("boolean"!=typeof m.connected?m.connected:C.domElement),_=D.useMemo((()=>new i.ArcballControls(E)),[E]);return o.useFrame((()=>{_.enabled&&_.update()})),D.useEffect((()=>{const e=e=>{A(),r&&v.regress(),a&&a(e)};return _.connect(h),_.addEventListener("change",e),s&&_.addEventListener("start",s),u&&_.addEventListener("end",u),()=>{_.removeEventListener("change",e),s&&_.removeEventListener("start",s),u&&_.removeEventListener("end",u),_.dispose()}}),[h,a,s,u,r,_,A]),D.useEffect((()=>{if(e){const e=d().controls;return p({controls:_}),()=>p({controls:e})}}),[e,_]),D.createElement("primitive",B.default({ref:l,object:_},c))})),ve=D.forwardRef((({children:e,onChange:t,onMouseDown:r,onMouseUp:n,onObjectChange:a,object:s,...u},c)=>{const l=["enabled","axis","mode","translationSnap","rotationSnap","scaleSnap","space","size","showX","showY","showZ"],{camera:A,...f}=u,C=F.default(f,l),m=g.default(f,l),p=o.useThree((e=>e.controls)),d=o.useThree((({gl:e})=>e)),v=o.useThree((({camera:e})=>e)),E=o.useThree((({invalidate:e})=>e)),_=A||v,[x]=D.useState((()=>new i.TransformControls(_,d.domElement))),w=D.useRef();return D.useLayoutEffect((()=>{s?null==x||x.attach(s instanceof h.Object3D?s:s.current):null==x||x.attach(w.current)}),[s,e,x]),D.useEffect((()=>{if(p){const e=e=>p.enabled=!e.value;return x.addEventListener("dragging-changed",e),()=>x.removeEventListener("dragging-changed",e)}}),[x,p]),D.useEffect((()=>{const e=e=>{E(),t&&t(e)};return null==x||null==x.addEventListener||x.addEventListener("change",e),r&&(null==x||null==x.addEventListener||x.addEventListener("mouseDown",r)),n&&(null==x||null==x.addEventListener||x.addEventListener("mouseUp",n)),a&&(null==x||null==x.addEventListener||x.addEventListener("objectChange",a)),()=>{null==x||null==x.removeEventListener||x.removeEventListener("change",e),r&&(null==x||null==x.removeEventListener||x.removeEventListener("mouseDown",r)),n&&(null==x||null==x.removeEventListener||x.removeEventListener("mouseUp",n)),a&&(null==x||null==x.removeEventListener||x.removeEventListener("objectChange",a))}}),[t,r,n,a,x,E]),x?D.createElement(D.Fragment,null,D.createElement("primitive",B.default({ref:c,dispose:void 0,object:x},C)),D.createElement("group",B.default({ref:w},m),e)):null})),Be=D.forwardRef((({selector:e,onChange:t,onLock:r,onUnlock:n,...a},s)=>{const{camera:u,...c}=a,l=o.useThree((({gl:e})=>e)),A=o.useThree((({camera:e})=>e)),f=o.useThree((({invalidate:e})=>e)),C=u||A,[m]=D.useState((()=>new i.PointerLockControls(C,l.domElement)));return D.useEffect((()=>{const e=e=>{f(),t&&t(e)};return null==m||null==m.addEventListener||m.addEventListener("change",e),r&&(null==m||null==m.addEventListener||m.addEventListener("lock",r)),n&&(null==m||null==m.addEventListener||m.addEventListener("unlock",n)),()=>{null==m||null==m.removeEventListener||m.removeEventListener("change",e),r&&(null==m||null==m.addEventListener||m.addEventListener("lock",r)),n&&(null==m||null==m.addEventListener||m.addEventListener("unlock",n))}}),[t,r,n,m,f]),D.useEffect((()=>{const t=()=>null==m?void 0:m.lock(),r=e?Array.from(document.querySelectorAll(e)):[document];return r.forEach((e=>e&&e.addEventListener("click",t))),()=>{r.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[m,e]),m?D.createElement("primitive",B.default({ref:s,dispose:void 0,object:m},c)):null})),De=D.forwardRef(((e,t)=>{const r=o.useThree((({camera:e})=>e)),n=o.useThree((({gl:e})=>e)),[a]=D.useState((()=>new i.FirstPersonControls(r,n.domElement)));return o.useFrame(((e,t)=>{a.update(t)})),a?D.createElement("primitive",B.default({ref:t,object:a},e)):null}));function Ee(e,t){const r=o.useThree((e=>e.mouse)),[a]=D.useState((()=>{const a=new n.Raycaster;return t&&o.applyProps(a,t,{}),function(t,o){a.setFromCamera(r,e instanceof n.Camera?e:e.current);const s=this.constructor.prototype.raycast.bind(this);s&&s(a,o)}}));return a}const he=D.createContext({}),_e=()=>D.useContext(he),xe=2*Math.PI,ge=new n.Object3D,Fe=new n.Matrix4,[we,ye]=[new n.Quaternion,new n.Quaternion],Pe=new n.Vector3,be=new n.Vector3,ze="#f0f0f0",Me="#999",Le="black",Se="black",He=["Right","Left","Top","Bottom","Front","Back"],Te=e=>new n.Vector3(...e).multiplyScalar(.38),Oe=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(Te),je=[.25,.25,.25],Xe=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(Te),Qe=Xe.map((e=>e.toArray().map((e=>0==e?.5:.25)))),Ve=({hover:e,index:t,font:r="20px Inter var, Arial, sans-serif",faces:o=He,color:a=ze,hoverColor:s=Me,textColor:i=Le,strokeColor:u=Se,opacity:c=1})=>{const l=D.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const s=e.getContext("2d");return s.fillStyle=a,s.fillRect(0,0,e.width,e.height),s.strokeStyle=u,s.strokeRect(0,0,e.width,e.height),s.font=r,s.textAlign="center",s.fillStyle=i,s.fillText(o[t].toUpperCase(),64,76),new n.CanvasTexture(e)}),[t,r,a,i,u]);return D.createElement("meshLambertMaterial",{map:l,attachArray:"material",color:e?s:"white",transparent:!0,opacity:c})},ke=e=>{const{tweenCamera:t,raycast:r}=_e(),[n,o]=D.useState(null);return D.createElement("mesh",{raycast:r,onPointerOut:e=>{e.stopPropagation(),o(null)},onPointerMove:e=>{e.stopPropagation(),o(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,r)=>D.createElement(Ve,B.default({key:r,index:r,hover:n===r},e)))),D.createElement("boxGeometry",null))},Ne=({onClick:e,dimensions:t,position:r,hoverColor:n=Me})=>{const{tweenCamera:o,raycast:a}=_e(),[s,i]=D.useState(!1);return D.createElement("mesh",{scale:1.01,position:r,raycast:a,onPointerOver:e=>{e.stopPropagation(),i(!0)},onPointerOut:e=>{e.stopPropagation(),i(!1)},onClick:e||(e=>{e.stopPropagation(),o(r)})},D.createElement("meshBasicMaterial",{color:s?n:"white",transparent:!0,opacity:.6,visible:s}),D.createElement("boxGeometry",{args:t}))};function Ie({color:e,rotation:t}){return D.createElement("group",{rotation:t},D.createElement("mesh",{position:[.4,0,0]},D.createElement("boxGeometry",{args:[.8,.05,.05]}),D.createElement("meshBasicMaterial",{color:e,toneMapped:!1})))}function Ue({onClick:e,font:t,disabled:r,arcStyle:o,label:a,labelColor:s,...i}){const u=D.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const r=e.getContext("2d");return r.beginPath(),r.arc(32,32,16,0,2*Math.PI),r.closePath(),r.fillStyle=o,r.fill(),a&&(r.font=t,r.textAlign="center",r.fillStyle=s,r.fillText(a,32,41)),new n.CanvasTexture(e)}),[o,a,s,t]),[c,l]=D.useState(!1),A=(a?1:.75)*(c?1.2:1);return D.createElement("sprite",B.default({scale:A,onPointerOver:r?void 0:e=>{e.stopPropagation(),l(!0)},onPointerOut:r?void 0:e||(e=>{e.stopPropagation(),l(!1)})},i),D.createElement("spriteMaterial",{map:u,alphaTest:.3,opacity:a?1:.75,toneMapped:!1}))}function Ge(e,{path:t}){const[r]=o.useLoader(n.CubeTextureLoader,[e],(e=>e.setPath(t)));return r}function Re(e){return o.useLoader(i.FBXLoader,e)}function qe(e,t,r){return n=>{if(r&&r(n),e){const t=new i.DRACOLoader;t.setDecoderPath("string"==typeof e?e:"https://www.gstatic.com/draco/versioned/decoders/1.4.0/"),n.setDRACOLoader(t)}t&&n.setMeshoptDecoder("function"==typeof i.MeshoptDecoder?i.MeshoptDecoder():i.MeshoptDecoder)}}function We(e,t=!0,r=!0,n){return o.useLoader(i.GLTFLoader,e,qe(t,r,n))}Ge.preload=(e,{path:t})=>o.useLoader.preload(n.CubeTextureLoader,[e],(e=>e.setPath(t))),Re.preload=e=>o.useLoader.preload(i.FBXLoader,e),Re.clear=e=>o.useLoader.clear(i.FBXLoader,e),We.preload=(e,t=!0,r=!0,n)=>o.useLoader.preload(i.GLTFLoader,e,qe(t,r,n)),We.clear=e=>o.useLoader.clear(i.GLTFLoader,e);class Ye extends n.MeshStandardMaterial{constructor(e={}){super(e),this._debug={value:0},this._tDepth={value:null},this._distortionMap={value:null},this._tDiffuse={value:null},this._u_mipmap_0={value:null},this._u_mipmap_1={value:null},this._u_mipmap_2={value:null},this._u_mipmap_3={value:null},this._u_mipmap_4={value:null},this._u_mipmap_5={value:null},this._u_mipmap_6={value:null},this._u_mipmap_7={value:null},this._u_mipmap_res_0={value:null},this._u_mipmap_res_1={value:null},this._u_mipmap_res_2={value:null},this._u_mipmap_res_3={value:null},this._u_mipmap_res_4={value:null},this._u_mipmap_res_5={value:null},this._u_mipmap_res_6={value:null},this._u_mipmap_res_7={value:null},this._textureMatrix={value:null},this._mirror={value:0},this._mixBlur={value:0},this._blurStrength={value:.5},this._minDepthThreshold={value:.9},this._maxDepthThreshold={value:1},this._depthScale={value:0},this._depthToBlurRatioBias={value:.25},this._distortion={value:1},this.setValues(e)}onBeforeCompile(e){var t;null!=(t=e.defines)&&t.USE_UV||(e.defines.USE_UV=""),e.uniforms.debug=this._debug,e.uniforms.tDiffuse=this._tDiffuse,e.uniforms.tDepth=this._tDepth,e.uniforms.distortionMap=this._distortionMap,e.uniforms.u_mipmap_0=this._u_mipmap_0,e.uniforms.u_mipmap_1=this._u_mipmap_1,e.uniforms.u_mipmap_2=this._u_mipmap_2,e.uniforms.u_mipmap_3=this._u_mipmap_3,e.uniforms.u_mipmap_4=this._u_mipmap_4,e.uniforms.u_mipmap_5=this._u_mipmap_5,e.uniforms.u_mipmap_6=this._u_mipmap_6,e.uniforms.u_mipmap_7=this._u_mipmap_7,e.uniforms.u_mipmap_res_0=this._u_mipmap_res_0,e.uniforms.u_mipmap_res_1=this._u_mipmap_res_1,e.uniforms.u_mipmap_res_2=this._u_mipmap_res_2,e.uniforms.u_mipmap_res_3=this._u_mipmap_res_3,e.uniforms.u_mipmap_res_4=this._u_mipmap_res_4,e.uniforms.u_mipmap_res_5=this._u_mipmap_res_5,e.uniforms.u_mipmap_res_6=this._u_mipmap_res_6,e.uniforms.u_mipmap_res_7=this._u_mipmap_res_7,e.uniforms.textureMatrix=this._textureMatrix,e.uniforms.mirror=this._mirror,e.uniforms.mixBlur=this._mixBlur,e.uniforms.mixStrength=this._blurStrength,e.uniforms.minDepthThreshold=this._minDepthThreshold,e.uniforms.maxDepthThreshold=this._maxDepthThreshold,e.uniforms.depthScale=this._depthScale,e.uniforms.depthToBlurRatioBias=this._depthToBlurRatioBias,e.uniforms.distortion=this._distortion,e.vertexShader=`\n uniform mat4 textureMatrix;\n varying vec4 my_vUv; \n ${e.vertexShader}`,e.vertexShader=e.vertexShader.replace("#include <project_vertex>","#include <project_vertex>\n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform int debug;\n uniform sampler2D tDiffuse;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform sampler2D u_mipmap_0;\n uniform sampler2D u_mipmap_1;\n uniform sampler2D u_mipmap_2;\n uniform sampler2D u_mipmap_3;\n uniform sampler2D u_mipmap_4;\n uniform sampler2D u_mipmap_5;\n uniform sampler2D u_mipmap_6;\n uniform sampler2D u_mipmap_7;\n uniform vec2 u_mipmap_res_0;\n uniform vec2 u_mipmap_res_1;\n uniform vec2 u_mipmap_res_2;\n uniform vec2 u_mipmap_res_3;\n uniform vec2 u_mipmap_res_4;\n uniform vec2 u_mipmap_res_5;\n uniform vec2 u_mipmap_res_6;\n uniform vec2 u_mipmap_res_7;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv; \n \n // from http://www.java-gaming.org/index.php?topic=35123.0\n vec4 cubic( float v ) {\n vec4 n = vec4( 1.0, 2.0, 3.0, 4.0 ) - v;\n vec4 s = n * n * n;\n float x = s.x;\n float y = s.y - 4.0 * s.x;\n float z = s.z - 4.0 * s.y + 6.0 * s.x;\n float w = 6.0 - x - y - z;\n return vec4( x, y, z, w ) * ( 1.0 / 6.0 );\n }\n \n vec4 textureBicubic( sampler2D sampler, vec2 texCoords, vec2 texSize ) {\n vec2 invTexSize = 1.0 / texSize;\n texCoords = texCoords * texSize - 0.5;\n vec2 fxy = fract( texCoords );\n texCoords -= fxy;\n\n vec4 xcubic = cubic( fxy.x );\n vec4 ycubic = cubic( fxy.y );\n vec4 c = texCoords.xxyy + vec2 ( - 0.5, + 1.5 ).xyxy;\n vec4 s = vec4( xcubic.xz + xcubic.yw, ycubic.xz + ycubic.yw );\n\n vec4 offset = c + vec4( xcubic.yw, ycubic.yw ) / s;\n offset *= invTexSize.xxyy;\n \n vec4 sample0 = texture2D( sampler, offset.xz);\n vec4 sample1 = texture2D( sampler, offset.yz);\n vec4 sample2 = texture2D( sampler, offset.xw);\n vec4 sample3 = texture2D( sampler, offset.yw);\n \n float sx = s.x / ( s.x + s.y );\n float sy = s.z / ( s.z + s.w );\n\n return mix(\n mix(\n sample3,\n sample2,\n sx\n ),\n mix(\n sample1,\n sample0,\n sx\n ),\n sy\n );\n }\n\n\n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include <emissivemap_fragment>","#include <emissivemap_fragment>\n \n float depthFactor = 1.0;\n float distortionFactor = 0.0;\n vec3 my_normal = vec3(0.0);\n float reflectorRoughnessFactor = roughness;\n vec3 coord = my_vUv.xyz / my_vUv.w;\n\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n #ifdef USE_NORMALMAP\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b , normalColor.g * 2.0 - 1.0 ) );\n #endif\n\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n\n vec2 proj_vUv = coord.xy + coord.z * my_normal.xz * 0.01;\n proj_vUv.x += distortionFactor;\n proj_vUv.y += distortionFactor;\n \n float lod = 1.0 - min(1.0, mixBlur * reflectorRoughnessFactor);\n\n #ifdef USE_DEPTH\n vec4 depth = texture2D(tDepth, proj_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor + depthToBlurRatioBias));\n #endif\n\n vec4 baseColor = texture2D(tDiffuse, proj_vUv);\n vec4 mixedColor;\n\n float _lod = (1.0 - pow(1.0 - lod, 4.0)) * 8.0;\n if (_lod < 1.) {\n vec4 one = textureBicubic(u_mipmap_7, proj_vUv, u_mipmap_res_7);\n vec4 two = textureBicubic(u_mipmap_6, proj_vUv, u_mipmap_res_6);\n mixedColor = mix(one, two, _lod);\n } else if (_lod < 2.) {\n vec4 one = textureBicubic(u_mipmap_6, proj_vUv, u_mipmap_res_6);\n vec4 two = textureBicubic(u_mipmap_5, proj_vUv, u_mipmap_res_5);\n mixedColor = mix(one, two, _lod - 1.0);\n } else if (_lod < 3.) {\n vec4 one = textureBicubic(u_mipmap_5, proj_vUv, u_mipmap_res_5);\n vec4 two = textureBicubic(u_mipmap_4, proj_vUv, u_mipmap_res_4);\n mixedColor = mix(one, two, _lod - 2.0);\n } else if (_lod < 4.) {\n vec4 one = textureBicubic(u_mipmap_4, proj_vUv, u_mipmap_res_4);\n vec4 two = textureBicubic(u_mipmap_3, proj_vUv, u_mipmap_res_3);\n mixedColor = mix(one, two, _lod - 3.0);\n } else if (_lod < 5.) {\n vec4 one = textureBicubic(u_mipmap_3, proj_vUv, u_mipmap_res_3);\n vec4 two = textureBicubic(u_mipmap_2, proj_vUv, u_mipmap_res_2);\n mixedColor = mix(one, two, _lod - 4.0);\n } else if (_lod < 6.) {\n vec4 one = textureBicubic(u_mipmap_2, proj_vUv, u_mipmap_res_2);\n vec4 two = textureBicubic(u_mipmap_1, proj_vUv, u_mipmap_res_1);\n mixedColor = mix(one, two, _lod - 5.0);\n } else if (_lod < 7.) {\n vec4 one = textureBicubic(u_mipmap_1, proj_vUv, u_mipmap_res_1);\n vec4 two = textureBicubic(u_mipmap_0, proj_vUv, u_mipmap_res_0);\n mixedColor = mix(one, two, _lod - 6.0);\n } else {\n vec4 one = textureBicubic(u_mipmap_0, proj_vUv, u_mipmap_res_0);\n mixedColor = mix(one, baseColor, _lod - 7.0);\n }\n\n mixedColor.rgb *= depthFactor;\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + mixedColor.rgb * mixStrength); \n diffuseColor = sRGBToLinear(diffuseColor);\n\n if (debug == 1) {\n diffuseColor = sRGBToLinear(vec4(vec3(depthFactor), 1.0));\n }\n if (debug == 2) {\n diffuseColor = sRGBToLinear(texture2D(tDiffuse, proj_vUv));\n }\n if (debug == 3) {\n diffuseColor = sRGBToLinear(texture2D(distortionMap, vUv));\n }\n if (debug == 4) {\n diffuseColor = sRGBToLinear(vec4(vec3(lod), 1.0));\n }\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get u_mipmap_0(){return this._u_mipmap_0.value}set u_mipmap_0(e){this._u_mipmap_0.value=e}get u_mipmap_1(){return this._u_mipmap_1.value}set u_mipmap_1(e){this._u_mipmap_1.value=e}get u_mipmap_2(){return this._u_mipmap_2.value}set u_mipmap_2(e){this._u_mipmap_2.value=e}get u_mipmap_3(){return this._u_mipmap_3.value}set u_mipmap_3(e){this._u_mipmap_3.value=e}get u_mipmap_4(){return this._u_mipmap_4.value}set u_mipmap_4(e){this._u_mipmap_4.value=e}get u_mipmap_5(){return this._u_mipmap_5.value}set u_mipmap_5(e){this._u_mipmap_5.value=e}get u_mipmap_6(){return this._u_mipmap_6.value}set u_mipmap_6(e){this._u_mipmap_6.value=e}get u_mipmap_7(){return this._u_mipmap_7.value}set u_mipmap_7(e){this._u_mipmap_7.value=e}get u_mipmap_res_0(){return this._u_mipmap_res_0.value}set u_mipmap_res_0(e){this._u_mipmap_res_0.value=e}get u_mipmap_res_1(){return this._u_mipmap_res_1.value}set u_mipmap_res_1(e){this._u_mipmap_res_1.value=e}get u_mipmap_res_2(){return this._u_mipmap_res_2.value}set u_mipmap_res_2(e){this._u_mipmap_res_2.value=e}get u_mipmap_res_3(){return this._u_mipmap_res_3.value}set u_mipmap_res_3(e){this._u_mipmap_res_3.value=e}get u_mipmap_res_4(){return this._u_mipmap_res_4.value}set u_mipmap_res_4(e){this._u_mipmap_res_4.value=e}get u_mipmap_res_5(){return this._u_mipmap_res_5.value}set u_mipmap_res_5(e){this._u_mipmap_res_5.value=e}get u_mipmap_res_6(){return this._u_mipmap_res_6.value}set u_mipmap_res_6(e){this._u_mipmap_res_6.value=e}get u_mipmap_res_7(){return this._u_mipmap_res_7.value}set u_mipmap_res_7(e){this._u_mipmap_res_7.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get debug(){return this._debug.value}set debug(e){this._debug.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}}o.extend({MeshReflectorMaterial:Ye});const Ke=D.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:r=256,args:a=[1,1],minDepthThreshold:s=.9,maxDepthThreshold:i=1,depthScale:u=0,depthToBlurRatioBias:c=.25,mirror:l,children:A,debug:f=0,distortion:C=1,distortionMap:m,...p},d)=>{const v=o.useThree((({gl:e})=>e)),E=o.useThree((({camera:e})=>e)),h=o.useThree((({scene:e})=>e)),_=D.useRef(null),[g]=D.useState((()=>new n.Plane)),[F]=D.useState((()=>new n.Vector3)),[w]=D.useState((()=>new n.Vector3)),[y]=D.useState((()=>new n.Vector3)),[P]=D.useState((()=>new n.Matrix4)),[b]=D.useState((()=>new n.Vector3(0,0,-1))),[z]=D.useState((()=>new n.Vector4)),[M]=D.useState((()=>new n.Vector3)),[L]=D.useState((()=>new n.Vector3)),[S]=D.useState((()=>new n.Vector4)),[H]=D.useState((()=>new n.Matrix4)),[T]=D.useState((()=>new n.PerspectiveCamera)),[O]=D.useState((()=>{const e=[],t={minFilter:n.LinearFilter,magFilter:n.LinearFilter,format:n.RGBFormat,encoding:v.outputEncoding};for(let o=0;o<8;o++){const a=Math.max(8,Math.round(r/Math.pow(2,o))),s=new n.WebGLRenderTarget(a,a,t);s.texture.generateMipmaps=!1,e.push(s)}return e})),j=D.useCallback((()=>{if(w.setFromMatrixPosition(_.current.matrixWorld),y.setFromMatrixPosition(E.matrixWorld),P.extractRotation(_.current.matrixWorld),F.set(0,0,1),F.applyMatrix4(P),M.subVectors(w,y),M.dot(F)>0)return;M.reflect(F).negate(),M.add(w),P.extractRotation(E.matrixWorld),b.set(0,0,-1),b.applyMatrix4(P),b.add(y),L.subVectors(w,b),L.reflect(F).negate(),L.add(w),T.position.copy(M),T.up.set(0,1,0),T.up.applyMatrix4(P),T.up.reflect(F),T.lookAt(L),T.far=E.far,T.updateMatrixWorld(),T.projectionMatrix.copy(E.projectionMatrix),H.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),H.multiply(T.projectionMatrix),H.multiply(T.matrixWorldInverse),H.multiply(_.current.matrixWorld),g.setFromNormalAndCoplanarPoint(F,w),g.applyMatrix4(T.matrixWorldInverse),z.set(g.normal.x,g.normal.y,g.normal.z,g.constant);const e=T.projectionMatrix;S.x=(Math.sign(z.x)+e.elements[8])/e.elements[0],S.y=(Math.sign(z.y)+e.elements[9])/e.elements[5],S.z=-1,S.w=(1+e.elements[10])/e.elements[14],z.multiplyScalar(2/z.dot(S)),e.elements[2]=z.x,e.elements[6]=z.y,e.elements[10]=z.z+1,e.elements[14]=z.w}),[E.far,E.matrixWorld,E.projectionMatrix,y,z,b,F,S,g,w,P,L,H,M,T]),[X,Q]=D.useMemo((()=>{const o={minFilter:n.LinearFilter,magFilter:n.LinearFilter,format:n.RGBFormat,encoding:v.outputEncoding},a=new n.WebGLRenderTarget(r,r,o);u>0&&(a.depthBuffer=!0,a.depthTexture=new n.DepthTexture(r,r),a.depthTexture.format=n.DepthFormat,a.depthTexture.type=n.UnsignedShortType);const A=O.reduce(((e,t,r)=>(e[`u_mipmap_${r}`]=t.texture,e[`u_mipmap_res_${r}`]=new n.Vector2(t.width,t.height),e)),{});return[a,{mirror:l,textureMatrix:H,mixBlur:e,tDiffuse:a.texture,tDepth:a.depthTexture,mixStrength:t,minDepthThreshold:s,maxDepthThreshold:i,depthScale:u,depthToBlurRatioBias:c,debug:f,distortion:C,distortionMap:m,"defines-USE_DEPTH":u>0?"":void 0,"defines-USE_DISTORTION":m?"":void 0,...A}]}),[v,H,r,l,e,t,s,i,u,c,f,C,m,O]);return o.useFrame((()=>{if(null==_||!_.current)return;_.current.visible=!1;const t=v.xr.enabled,r=v.shadowMap.autoUpdate;j(),v.xr.enabled=!1,v.shadowMap.autoUpdate=!1,v.setRenderTarget(X),v.state.buffers.depth.setMask(!0),v.autoClear||v.clear(),v.render(h,T),0!==e&&O.forEach((e=>{v.setRenderTarget(e),v.state.buffers.depth.setMask(!0),v.render(h,T)})),v.xr.enabled=t,v.shadowMap.autoUpdate=r,_.current.visible=!0,v.setRenderTarget(null)})),D.createElement("mesh",B.default({ref:x.default([_,d])},p),D.createElement("planeBufferGeometry",{args:a}),A?A("meshReflectorMaterial",Q):D.createElement("meshReflectorMaterial",Q))})),Ze=D.forwardRef((({fog:e=!1,colorStop:t=0,color:r="black",opacity:o=.5,...a},s)=>{const i=D.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const o=e.getContext("2d"),a=o.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);return a.addColorStop(t,new n.Color(r).getStyle()),a.addColorStop(1,"rgba(0,0,0,0)"),o.fillStyle=a,o.fillRect(0,0,e.width,e.height),e}),[r,t]);return D.createElement("mesh",B.default({ref:s},a),D.createElement("planeBufferGeometry",{attach:"geometry",args:[1,1]}),D.createElement("meshBasicMaterial",{attach:"material",transparent:!0,opacity:o,fog:e},D.createElement("canvasTexture",{attach:"map",args:[i]})))}));function Je(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}const $e=D.forwardRef((function({children:e,alignTop:t,...r},o){const a=D.useRef(null),s=D.useRef(null);return D.useLayoutEffect((()=>{a.current.position.set(0,0,0),a.current.updateWorldMatrix(!0,!0);const e=(new n.Box3).setFromObject(s.current),r=new n.Vector3,o=new n.Sphere,i=e.max.y-e.min.y;e.getCenter(r),e.getBoundingSphere(o),a.current.position.set(-r.x,-r.y+(t?i/2:0),-r.z)}),[e]),D.createElement("group",B.default({ref:o},r),D.createElement("group",{ref:a},D.createElement("group",{ref:s},e)))})),et=e=>e&&e.isOrthographicCamera,tt=D.createContext(null);function rt(e,r,n){const a=o.useThree((({gl:e})=>e)),s=o.useThree((({size:e})=>e)),i=t.useMemo((()=>a.getPixelRatio()),[a]),u="number"==typeof e?e:s.width*i,c="number"==typeof r?r:s.height*i,l=("number"==typeof e?n:e)||{},A=t.useMemo((()=>{const{multisample:e,samples:t,...r}=l;let n;return e&&a.capabilities.isWebGL2?(n=new h.WebGLMultisampleRenderTarget(u,c,r),t&&(n.samples=t)):n=new h.WebGLRenderTarget(u,c,r),n}),[]);return t.useEffect((()=>{A.setSize(u,c)}),[A,u,c]),t.useEffect((()=>()=>A.dispose()),[]),A}const nt=D.forwardRef((({size:e=256},t)=>{const r=o.useThree((e=>e.viewport.dpr)),{width:a,height:s}=o.useThree((e=>e.size)),i=e||a*r,u=e||s*r,c=D.useMemo((()=>{const e=new n.DepthTexture(i,u);return e.format=n.DepthFormat,e.type=n.UnsignedShortType,{depthTexture:e}}),[i,u]),l=rt(i,u,c);return D.useImperativeHandle(t,(()=>null==l?void 0:l.depthTexture)),o.useFrame((e=>{e.gl.setRenderTarget(l),e.gl.render(e.scene,e.camera),e.gl.setRenderTarget(null)}))}));const ot=D.forwardRef((({children:e,curve:t},r)=>{const[n,o]=D.useState(),a=D.useRef(),s=D.useRef();return D.useImperativeHandle(r,(()=>({moveAlongCurve:e=>{var t;null==(t=s.current)||t.moveAlongCurve(e)}}))),D.useEffect((()=>{!s.current&&a.current&&r&&(s.current=new i.Flow(a.current),o(s.current.object3D))}),[e,r]),D.useEffect((()=>{var e;a.current&&t&&(null==(e=s.current)||e.updateCurve(0,t))}),[t]),n?D.createElement("primitive",{object:n}):D.cloneElement(D.Children.only(e),{ref:a})}));class at extends n.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n #define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const st=D.forwardRef((({speed:e=1,...t},r)=>{const[n]=D.useState((()=>new at));return o.useFrame((t=>n&&(n.time=t.clock.getElapsedTime()*e))),D.createElement("primitive",B.default({dispose:void 0,object:n,ref:r,attach:"material"},t))}));class it extends n.MeshStandardMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=`\n uniform float time;\n uniform float factor;\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;")}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}}const ut=D.forwardRef((({speed:e=1,...t},r)=>{const[n]=D.useState((()=>new it));return o.useFrame((t=>n&&(n.time=t.clock.getElapsedTime()*e))),D.createElement("primitive",B.default({dispose:void 0,object:n,ref:r,attach:"material"},t))}));class ct extends h.ShaderMaterial{constructor(){super({transparent:!0,uniforms:{size:{value:1}},vertexShader:h.ShaderLib.points.vertexShader,fragmentShader:"\n varying vec3 vColor;\n void main() {\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r);\n vec3 color = vColor;\n #ifdef TONE_MAPPING\n color = toneMapping(color);\n #endif\n gl_FragColor = linearToOutputTexel(vec4(color, 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r)));\n }",vertexColors:!0})}get scale(){return this.uniforms.size.value}set scale(e){this.uniforms.size.value=e}}const lt=D.forwardRef(((e,t)=>{const[r]=D.useState((()=>new ct));return D.createElement("primitive",B.default({object:r,ref:t,attach:"material"},e))}));function At(e,t,r=new n.Vector3){const o=Math.PI*(e-.5),a=2*Math.PI*(t-.5);return r.x=Math.cos(a),r.y=Math.sin(o),r.z=Math.sin(a),r}const ft=D.forwardRef((({inclination:e=0,azimuth:t=.25,distance:r=100,mieCoefficient:o=.005,mieDirectionalG:a=.8,rayleigh:s=1,turbidity:u=2,sunPosition:c=At(e,t),...l},A)=>{const f=D.useMemo((()=>(new n.Vector3).setScalar(r)),[r]),[C]=D.useState((()=>new i.Sky));return D.createElement("primitive",B.default({dispose:void 0,object:C,ref:A,"material-uniforms-mieCoefficient-value":o,"material-uniforms-mieDirectionalG-value":a,"material-uniforms-rayleigh-value":s,"material-uniforms-sunPosition-value":c,"material-uniforms-turbidity-value":u,scale:f},l))}));let Ct=!1;class mt extends n.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(mvPosition.x + 2.0 * time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:"\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n }"})}}const pt=e=>(new n.Vector3).setFromSpherical(new n.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),dt=D.forwardRef((({radius:e=100,depth:t=50,count:r=5e3,saturation:a=0,factor:s=4,fade:i=!1},u)=>{const c=D.useRef(),[l,A,f]=D.useMemo((()=>{const o=[],i=[],u=Array.from({length:r},(()=>(.5+.5*Math.random())*s)),c=new n.Color;let l=e+t;const A=t/r;for(let e=0;e<r;e++)l-=A*Math.random(),o.push(...pt(l).toArray()),c.setHSL(e/r,a,.9),i.push(c.r,c.g,c.b);return[new Float32Array(o),new Float32Array(i),new Float32Array(u)]}),[r,t,s,e,a]);o.useFrame((e=>c.current&&(c.current.uniforms.time.value=e.clock.getElapsedTime())));const[C]=D.useState((()=>new mt));return D.createElement("points",{ref:u},D.createElement("bufferGeometry",{attach:"geometry"},D.createElement("bufferAttribute",{attachObject:["attributes","position"],args:[l,3]}),D.createElement("bufferAttribute",{attachObject:["attributes","color"],args:[A,3]}),D.createElement("bufferAttribute",{attachObject:["attributes","size"],args:[f,1]})),D.createElement("primitive",{dispose:void 0,ref:c,object:C,attach:"material",blending:n.AdditiveBlending,"uniforms-fade-value":i,transparent:!0,vertexColors:!0}))})),vt=D.forwardRef((({frames:e=1/0,opacity:t=1,width:r=1,height:n=1,blur:a=1,far:s=10,resolution:u=256,...c},l)=>{const A=o.useThree((({scene:e})=>e)),f=o.useThree((({gl:e})=>e)),C=D.useRef(),[m,p,d,v,E,_,x]=D.useMemo((()=>{const e=new h.WebGLRenderTarget(u,u),t=new h.WebGLRenderTarget(u,u);t.texture.generateMipmaps=e.texture.generateMipmaps=!1;const o=new h.PlaneBufferGeometry(r,n).rotateX(Math.PI/2),a=new h.Mesh(o),s=new h.MeshDepthMaterial;s.depthTest=s.depthWrite=!1,s.onBeforeCompile=e=>e.fragmentShader=e.fragmentShader.replace("1.0 - fragCoordZ ), opacity );","0.0 ), ( 1.0 - fragCoordZ ) * 1.0 );");const c=new h.ShaderMaterial(i.HorizontalBlurShader),l=new h.ShaderMaterial(i.VerticalBlurShader);return l.depthTest=c.depthTest=!1,[e,o,s,a,c,l,t]}),[u,r,n]);let g=0;return o.useFrame((()=>{if(C.current&&(e===1/0||g<e)){const e=A.background;A.background=null,A.overrideMaterial=d,f.setRenderTarget(m),f.render(A,C.current),A.overrideMaterial=null,v.material=E,v.material.uniforms.tDiffuse.value=m.texture,E.uniforms.h.value=a/256,f.setRenderTarget(x),f.render(v,C.current),v.material=_,v.material.uniforms.tDiffuse.value=x.texture,_.uniforms.v.value=a/256,f.setRenderTarget(m),f.render(v,C.current),f.setRenderTarget(null),A.background=e,g++}})),D.createElement("group",B.default({},c,{ref:l}),D.createElement("mesh",{geometry:p,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},D.createElement("meshBasicMaterial",{map:m.texture,transparent:!0,opacity:t})),D.createElement("orthographicCamera",{ref:C,args:[-r/2,r/2,n/2,-n/2,0,s]}))}));class Bt extends n.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new n.Vector3(0,0,0)},lightColor:{value:new n.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new n.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation;\n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include <packing>\n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity);\n }"})}}const Dt=new n.Vector3,Et=D.forwardRef((({depthBuffer:e,color:t="white",distance:r=5,angle:a=.15,attenuation:s=5,anglePower:i=5,...u},c)=>{const l=D.useRef(null),A=o.useThree((e=>e.size)),f=o.useThree((e=>e.camera)),C=o.useThree((e=>e.viewport.dpr)),[m]=D.useState((()=>new Bt));o.useFrame((()=>{m.uniforms.spotPosition.value.copy(l.current.getWorldPosition(Dt)),l.current.lookAt(l.current.parent.target.position)}));const p=D.useMemo((()=>{const e=new n.CylinderGeometry(.1,7*a,r,128,64,!0);return e.applyMatrix4((new n.Matrix4).makeTranslation(0,-r/2,0)),e.applyMatrix4((new n.Matrix4).makeRotationX(-Math.PI/2)),e}),[a,r]);return D.createElement("spotLight",B.default({ref:c,angle:a,color:t,distance:r},u),D.createElement("mesh",{ref:l,geometry:p},D.createElement("primitive",{object:m,attach:"material","uniforms-lightColor-value":t,"uniforms-attenuation-value":s,"uniforms-anglePower-value":i,"uniforms-depth-value":e,"uniforms-cameraNear-value":f.near,"uniforms-cameraFar-value":f.far,"uniforms-resolution-value":e?[A.width*C,A.height*C]:[0,0]})))}));function ht(e){const t=e+"BufferGeometry";return D.forwardRef((({args:e,children:r,...n},o)=>D.createElement("mesh",B.default({ref:o},n),D.createElement(t,{attach:"geometry",args:e}),r)))}const _t=ht("box"),xt=ht("circle"),gt=ht("cone"),Ft=ht("cylinder"),wt=ht("sphere"),yt=ht("plane"),Pt=ht("tube"),bt=ht("torus"),zt=ht("torusKnot"),Mt=ht("tetrahedron"),Lt=ht("ring"),St=ht("polyhedron"),Ht=ht("icosahedron"),Tt=ht("octahedron"),Ot=ht("dodecahedron"),jt=ht("extrude"),Xt=ht("lathe"),Qt=ht("parametric"),Vt=1e-5;const kt=D.forwardRef((function({args:[e=1,t=1,r=1]=[],radius:o=.05,smoothness:a=4,children:s,...i},u){const c=D.useMemo((()=>function(e,t,r){const o=new n.Shape,a=r-Vt;return o.absarc(Vt,Vt,Vt,-Math.PI/2,-Math.PI,!0),o.absarc(Vt,t-2*a,Vt,Math.PI,Math.PI/2,!0),o.absarc(e-2*a,t-2*a,Vt,Math.PI/2,0,!0),o.absarc(e-2*a,Vt,Vt,0,-Math.PI/2,!0),o}(e,t,o)),[e,t,o]),l=D.useMemo((()=>({depth:r-2*o,bevelEnabled:!0,bevelSegments:2*a,steps:1,bevelSize:o-Vt,bevelThickness:o,curveSegments:a})),[r,o,a]),A=D.useRef();return D.useLayoutEffect((()=>{A.current&&A.current.center()}),[c,l]),D.createElement("mesh",B.default({ref:u},i),D.createElement("extrudeBufferGeometry",{attach:"geometry",ref:A,args:[c,l]}),s)}));function Nt(){const e=new h.BufferGeometry,t=new Float32Array([-1,-1,3,-1,-1,3]);return e.setAttribute("position",new h.BufferAttribute(t,2)),e}const It=D.forwardRef((function({children:e,...t},r){const n=D.useMemo(Nt,[]);return D.createElement("mesh",B.default({ref:r,geometry:n,frustumCulled:!1},t),e)})),Ut={0:"0404E8_0404B5_0404CB_3333FC",1:"045C5C_0DBDBD_049393_04A4A4",2:"046363_0CC3C3_049B9B_04ACAC",3:"0489C5_0DDDF9_04C3EE_04AFE1",4:"04989A_0CE3E4_04D2D5_04C7C8",5:"04C455_0EFABC_04F097_04E17A",6:"04CC77_0CF7CA_04E9A7_04AB54",7:"04E804_04B504_04CB04_33FC33",8:"04E8E8_04B5B5_04CCCC_33FCFC",9:"050505_747474_4C4C4C_333333",10:"070B0C_B2C7CE_728FA3_5B748B",11:"090909_9C9C9C_555555_7C7C7C",12:"0A0A0A_A9A9A9_525252_747474",13:"0C0CC3_04049F_040483_04045C",14:"0C430C_257D25_439A43_3C683C",15:"0D0DBD_040497_04047B_040455",16:"0D0DE3_040486_0404AF_0404CF",17:"0DBD0D_049704_047B04_045504",18:"0F0F0F_4B4B4B_1C1C1C_2C2C2C",19:"0F990F_047B04_044604_046704",20:"15100F_241D1B_292424_2C2C27",21:"161B1F_C7E0EC_90A5B3_7B8C9B",22:"167E76_36D6D2_23B2AC_27C1BE",23:"17395A_7EBCC7_4D8B9F_65A1B5",24:"181F1F_475057_616566_525C62",25:"191514_6D5145_4E3324_3B564D",26:"1A2461_3D70DB_2C3C8F_2C6CAC",27:"1B1B1B_515151_7E7E7E_6C6C6C",28:"1B1B1B_999999_575757_747474",29:"1B1C19_5F615D_4B4E4C_3F403D",30:"1C1810_352F23_2B2C1C_2B2C24",31:"1C70C6_09294C_0F3F73_52B3F6",32:"1D2424_565F66_4E555A_646C6E",33:"1D2A21_43443B_655B54_545C54",34:"1D3FCC_051B5F_81A0F2_5579E9",35:"221917_928380_5F504D_7C746C",36:"232014_908B78_5E5743_747460",37:"242733_333A4D_3E4554_3C3B43",38:"245642_3D8168_3D6858_417364",39:"253C3C_528181_406C6C_385F5F",40:"254FB0_99AFF0_6587D8_1D3279",41:"27222B_677491_484F6A_5D657A",42:"281813_604233_4B3426_442B22",43:"28292A_D3DAE5_A3ACB8_818183",44:"291912_473531_3C2C25_3A2424",45:"293534_B2BFC5_738289_8A9AA7",46:"293D21_ABC692_73B255_667C5C",47:"2A2A2A_B3B3B3_6D6D6D_848C8C",48:"2A2A2A_DBDBDB_6A6A6A_949494",49:"2A2D21_555742_898974_6C745B",50:"2A4BA7_1B2D44_1F3768_233C81",51:"2A6276_041218_739BA6_042941",52:"2B2828_7B796F_534F4A_616464",53:"2B2B22_3C3C30_464538_121210",54:"2D2D2A_74716E_8F8C8C_92958E",55:"2D2D2F_C6C2C5_727176_94949B",56:"2D8753_5CD6A5_45BB82_4CC494",57:"2E2E2D_7D7C76_A3A39F_949C94",58:"2E763A_78A0B7_B3D1CF_14F209",59:"2EAC9E_61EBE3_4DDDD1_43D1C6",60:"2F2FAA_1E1E87_10104E_1C1C70",61:"2F3747_6A7C9E_54637F_62748B",62:"300706_888576_822821_876E79",63:"302721_CAC1BB_7A706A_91959B",64:"304FB1_69A1EF_5081DF_5C8CE6",65:"312C34_A2AAB3_61656A_808494",66:"312D20_80675C_8B8C8B_85848C",67:"313131_BBBBBB_878787_A3A4A4",68:"320455_720DBE_560496_47047B",69:"32201D_613C3C_563533_8C655F",70:"32302B_4C4842_121211_1C1C14",71:"323C4D_B79039_7C6A44_605C48",72:"326666_66CBC9_C0B8AE_52B3B4",73:"331A0B_B17038_7D4E28_5B351A",74:"336EB3_152578_A4C5E2_74AED9",75:"34352A_718184_50605E_6E6761",76:"346088_6ABED7_56A0C5_4E91B8",77:"34A09C_6EE5E3_5CD7D3_4EC9C6",78:"34AB94_36DFC1_19F9EB_6C6E62",79:"353535_CFCFCF_828282_A4A4A4",80:"36220C_C6C391_8C844A_8B7B4C",81:"36312E_726461_59504D_645C5C",82:"365123_C6E5A3_A8D18D_8EB16C",83:"36C8FA_176ACB_24A7EF_1D93EC",84:"37C337_279F27_186018_248824",85:"385264_A1D3E2_86ADC1_6E94A8",86:"385862_6D8B8D_647B80_1A2E2F",87:"386169_A9CFDB_153C23_7CA3AC",88:"38925D_142B23_1D4835_2A6449",89:"392307_B3AE7D_6D5618_847C42",90:"39433A_65866E_86BF8B_BFF8D8",91:"394641_B1A67E_75BEBE_7D7256",92:"3A2412_A78B5F_705434_836C47",93:"3A3329_C9B090_928069_A9957A",94:"3A3D37_7E7F75_BCBFB6_9C9C94",95:"3B3B3B_C7C7C7_878787_A4A4A4",96:"3B3C3F_DAD9D5_929290_ABACA8",97:"3B4235_7B9395_5B716C_70847B",98:"3B6E10_E3F2C3_88AC2E_99CE51",99:"3D1F12_653821_070404_22130B",100:"3E2335_D36A1B_8E4A2E_2842A5",101:"3E3D39_D6CEAF_91BAC1_897966",102:"3E3E36_72726D_63645D_0E0F0C",103:"3E3E3E_AEAEAE_848484_777777",104:"3E95CC_65D9F1_A2E2F6_679BD4",105:"3F3A2F_91D0A5_7D876A_94977B",106:"3F3D52_CCCED9_AFB0C6_8D8CAC",107:"3F4441_D1D7D6_888F87_A2ADA1",108:"403A34_B0936E_7F979C_7E6956",109:"415325_83A24E_678239_748C3C",110:"416BA7_A5B8D0_0D2549_65ABEB",111:"422509_C89536_824512_0A0604",112:"422A1E_716767_685D59_5E4F4A",113:"424244_BDBBBE_8A898E_A3A4A9",114:"425F84_1C2939_2A3F57_24344C",115:"430404_BD9295_7E1E21_94544C",116:"432322_5E3839_170C0B_543433",117:"433D3F_A58D7D_786760_8C7C6D",118:"434240_D3D3CF_898784_A4A49F",119:"434343_9E9E9E_8C8C8C_848484",120:"434C32_62704C_546244_2F3220",121:"442C27_A79E90_847066_8D837C",122:"447072_8ACACB_65A4A5_74B3B3",123:"45432C_808361_B8C8BC_A5A27A",124:"454447_908E9A_181716_7C7C7B",125:"456A73_779B9E_173A46_154C5D",126:"463F37_ACCFBB_818B78_91A494",127:"464445_D2D0CB_919196_A8ADB0",128:"464543_D1CFC1_8E8C83_A4AC9C",129:"46804D_CBE9AC_90B57C_95D38F",130:"468126_C1DDB5_8AC460_A1D07C",131:"47392E_997E69_7C6553_8B745F",132:"474444_7B7575_9E9899_8C8C8B",133:"474643_696F7D_A9ABB8_8B8C93",134:"474843_CECEC4_898883_A3A3A4",135:"48270F_C4723B_9B5728_7B431B",136:"482908_894E0D_FBDB52_CA7420",137:"487FC9_A8E7F8_88CCF2_70AFDE",138:"489B7A_A0E7D9_6DC5AC_87DAC7",139:"48C381_226640_369F64_3CAC74",140:"49200B_C6926C_9C642B_A45C26",141:"495CA6_CCD2E6_A5B1D8_1E2852",142:"495E48_0D100D_9D9C87_9ECC9C",143:"496DBA_94C9F2_72A7E2_84B4EC",144:"4A6442_D0AB75_81CD94_181B12",145:"4B362C_715A4F_211913_644C44",146:"4B4A3A_94A3A4_68766F_988475",147:"4B5455_BBBFC4_97A0A6_838C90",148:"4C240E_A5613B_895134_734C44",149:"4C342A_7B584B_271912_6B4C44",150:"4C462E_6D876C_9AAC8F_9AABA6",151:"4C4C4C_D2D2D2_8F8F8F_ACACAC",152:"4D595E_858D87_596F84_748480",153:"4E4C42_B8C4C5_898E89_A3ACA4",154:"4E4D40_979786_AEAEA1_878678",155:"4E5150_9FA3A3_848C8A_82848C",156:"4F251B_381710_43241B_602F23",157:"4F439F_A28BE5_8570D6_7765C9",158:"4F4742_B7B1AA_847E79_969294",159:"4F4C45_A7AEAA_7A8575_9D97A2",160:"4F4F4F_9C9C9C_121212_7C7C7C",161:"4F4F4F_A1A1A1_8C8C8C_848484",162:"4F5246_8C8D84_7B7C74_131611",163:"4FE34F_2BB02B_3CD03C_1C861C",164:"50332C_D98D79_955F52_AA7C6C",165:"503522_C38254_9F6B45_845838",166:"504D3C_979C9D_81837D_9C998A",167:"513A11_CDBEB5_C8811C_9A733F",168:"51462B_DFCA7E_948050_A49874",169:"515151_DCDCDC_B7B7B7_9B9B9B",170:"515341_9A9C86_16180D_838474",171:"517919_659623_34460C_3E5813",172:"519C8D_83DAC7_9DEDE0_2B5B4C",173:"522221_91343B_7F6F6B_744960",174:"522A1A_94543A_C3896F_AB7D66",175:"525050_D4D3D3_959393_ACACAC",176:"533B33_AF9998_866965_9C7E7B",177:"535A2F_CDCA91_91915B_A4AC6F",178:"535F6B_A6BDC8_8FA3B4_7F91A2",179:"537387_75BBB9_152E5B_0E85E8",180:"54584E_B1BAC5_818B91_A7ACA3",181:"545B4D_D8DDC8_A0A792_B2C1A3",182:"54C104_BBFA0F_97EF04_7AE104",183:"55382F_78554E_271A16_6C4C44",184:"555555_C8C8C8_8B8B8B_A4A4A4",185:"556F42_112817_81927F_223E24",186:"55C404_BCFA0E_97F004_7AE104",187:"562D2A_2E1615_7E4945_703C3C",188:"56352F_1E110F_311C19_3C231C",189:"57553F_C6C3AF_8C8768_868C8C",190:"57583E_969788_292920_848474",191:"579241_B5D25D_0E1D2D_97C284",192:"582410_83381A_1F0C04_30140A",193:"583629_2E1810_765648_3C1C14",194:"584F3A_BEC3BD_C5A57D_A39073",195:"586A51_CCD5AA_8C9675_8DBBB7",196:"593E2C_E5D8A9_BC9F79_9F8A68",197:"595356_CDBFC6_AA9DA3_BBB3BC",198:"59554F_171716_847C74_2C2C24",199:"596773_B3C6CE_98AFB9_879AA8",200:"597C3F_254319_6C9668_7C9B53",201:"5A492B_DEC583_987D4D_AC9C74",202:"5A643B_454D2C_393F25_202315",203:"5B4CBC_B59AF2_9B84EB_8F78E4",204:"5B5428_C5A052_A28B46_ADA752",205:"5B574E_586967_807C6F_6A746C",206:"5C045C_BD0DBD_930493_A404A4",207:"5C2E0C_C36924_9F4F14_834114",208:"5C4E41_CCCDD6_9B979B_B1AFB0",209:"5C5743_262418_393727_342C20",210:"5C5C04_BDBD0D_939304_A4A404",211:"5C5C5C_A2A2A2_8C8C8C_848484",212:"5D5854_1A1714_373330_2C2424",213:"5D5D5D_CDCDCD_232323_ACACAC",214:"5D5E5A_A1A29B_2A2927_8B948C",215:"5E423A_8C6E69_382416_745D64",216:"5E5049_CDC2BE_9C8E88_B7ACA4",217:"5E5855_C6C4CD_C89B67_8F8E98",218:"5E5F62_A7B2BE_211C17_939CA3",219:"5ECBA4_BCFAE7_92EED0_A1F4DC",220:"5F1827_9B4A60_1F0404_340406",221:"5F4C4B_A07C7D_A8AFBF_868185",222:"5F4F50_A18E8E_8C7C7B_211A1A",223:"5F5F5F_BDBDBD_A4A4A4_9C9C9C",224:"604A30_DC9065_212C14_AC9C92",225:"60534A_211813_9B948E_8E837D",226:"605352_E9CCC5_C7A8A3_A89291",227:"606857_9BA894_8C9C83_8C9483",228:"613F04_D68C04_A45F04_1F0F04",229:"61583E_252314_928972_342C1C",230:"617586_23304C_1B1E30_4988CF",231:"622F19_885934_9A7748_94603A",232:"623622_A1756F_986353_89645B",233:"624541_FCD0C6_E4A19A_FCBCB4",234:"626262_9E9E9E_848484_262626",235:"626262_A8A8A8_949494_1F1F1F",236:"626A57_3B3F33_7D8973_444C3C",237:"626D5C_B8C2BB_1B230F_A4ACA3",238:"627D72_A6CAAA_202C28_B4D4B4",239:"630463_C30CC3_9B049B_AC04AC",240:"63533B_AA9472_1C1108_9B8C68",241:"63584B_E6E0D6_A8A092_BFB6A8",242:"635D52_A9BCC0_B1AEA0_819598",243:"636363_AAAAAA_949494_252525",244:"636D6C_D4E7ED_ABBCC4_9BA4A8",245:"637598_B7C4D3_22293A_9BACBF",246:"64554D_D1C9C1_ABADA0_0E0C0A",247:"64686F_BDC0C4_161718_A4A7AB",248:"647171_1F3349_2A475C_87A5AD",249:"647686_23292E_333C44_404B55",250:"656662_9B9B99_393B31_8B8C8C",251:"657274_2A2F30_A0A7B0_363C44",252:"65A0BA_C3E4F1_A7D5E6_97CADF",253:"65A0C7_C3E4F8_A7D5EF_97CAE9",254:"660505_F2B090_DD4D37_AA1914",255:"66605E_939198_2E261F_3C332A",256:"666864_B3B4AB_2F2F2C_9CA49B",257:"673B2A_99735C_99593A_3A160E",258:"677E93_36444D_99A9BA_435464",259:"678E67_C4D9C4_ACC8AC_98B898",260:"68049F_C90DE6_A404CF_B304DC",261:"683F2D_9F736D_431D06_966152",262:"68493E_B2AAA9_978C8C_130907",263:"684C40_776E69_9B7765_758D96",264:"685B57_BEB1B1_9B99A4_1E1D1D",265:"686464_CCCAC7_A4A19F_BCB4B4",266:"686B73_2A2B2D_D5D9DD_B0B3BC",267:"686E55_353C2F_869B7F_444434",268:"696347_98B0A2_28261E_362B22",269:"696969_A0A0A0_949494_8C8C8C",270:"6A3C15_EFC898_D59D59_B38346",271:"6A5338_1C120B_C5975F_96886C",272:"6A8287_405153_839EBE_424C5C",273:"6B3822_A65D48_824E48_401E0C",274:"6BBD6B_C8F3C8_A3E2A3_B4ECB4",275:"6C52AA_C9A6EA_A681D6_B494E2",276:"6C5DC3_352D66_5C4CAB_544CA5",277:"6C6F76_CBD1D7_B2BDC7_A6B0BF",278:"6C8996_14223F_B9DEDD_2E445C",279:"6D1616_E6CDBA_DE2B24_230F0F",280:"6D3B1C_895638_502A0D_844C31",281:"6D6050_C8C2B9_A2998E_B4AA9F",282:"6D6D6D_3E3E3E_C0C0C0_949494",283:"6E2E36_D3A1A0_BD7175_C78C8B",284:"6E5137_E8CA90_271912_B99C74",285:"6E524D_8496C5_AF6624_100B11",286:"6E6D69_D0ECE9_AAC7C6_200C0C",287:"6E7181_D1CFDF_ABAFC7_B4BCCE",288:"6E8C48_B8CDA7_344018_A8BC94",289:"6EC66E_C9F8C9_A3E8A3_B4F1B4",290:"6F503E_D59A70_221812_B0A899",291:"705B4B_312821_AF927B_44342C",292:"706962_24211E_BCB6AF_ACA494",293:"713A28_A87661_3A160D_9B6454",294:"714C30_EAD7C5_CC9265_E2B48F",295:"716049_D1C8B9_3F160C_BAA6A9",296:"71623B_ECDE8C_30250A_ABA69A",297:"72625B_F0DFD0_D9BAA5_C3A595",298:"726F5B_A09C88_8B8C7B_94907C",299:"727167_2F2F2B_A3A6A2_44443C",300:"728473_534C40_7BCEC8_7BB9B6",301:"736655_D9D8D5_2F281F_B1AEAB",302:"745359_BFAEA8_9B8384_AC9392",303:"746761_291C19_AB9385_3C2B27",304:"747A6F_292E2A_ACA79F_45453B",305:"74A192_041B0D_194C33_235B4C",306:"75322B_96463F_51201A_3D1814",307:"75723E_C0C3A0_2A1E0E_AFAE77",308:"75746F_333330_A2A1A9_444444",309:"758391_BAC2CA_435263_A1ACBC",310:"763B28_D0BDB8_ADA39E_1E1D1D",311:"763C39_431510_210504_55241C",312:"764739_D0917B_2A1611_B37C68",313:"765938_1F1009_A59C7C_C9A382",314:"766554_C1BEBB_2A1A0E_B4ABAC",315:"76787C_2F3031_A5A9B8_444446",316:"767989_323437_B6C4EE_343C44",317:"771A1F_D2939E_B6595D_9D4B54",318:"773012_AE5124_4D1908_340F04",319:"776045_D2CCC3_281910_BBB5AA",320:"776A5C_BA9A89_302C26_443C34",321:"776C62_292622_474039_3C342C",322:"777C61_333727_BABFA1_A5AC8C",323:"777D7D_BDCAD2_3E3C2E_B1B8B6",324:"787165_DAD9CD_9DC0CE_36302A",325:"7877EE_D87FC5_75D9C7_1C78C0",326:"794E40_361612_4C2A21_441B1B",327:"795038_C2856B_533320_AC7C61",328:"796D6B_DED3CB_C6BAB1_ADA09B",329:"796F52_36413A_C9B48C_B6A77F",330:"797367_302E29_ABA3A0_443C35",331:"7A6959_2D271D_C1B5A9_B4A393",332:"7A736F_463F33_575046_4B463D",333:"7A7A7A_D0D0D0_BCBCBC_B4B4B4",334:"7A7A7A_D9D9D9_BCBCBC_B4B4B4",335:"7A7C63_625531_665B3F_5B4B29",336:"7A9196_485C64_425459_C1E4E7",337:"7B5254_E9DCC7_B19986_C8AC91",338:"7B6857_383028_BCA38F_4C3C34",339:"7B6E5B_C5CACC_B1B2AE_322415",340:"7B7E82_343536_A0B1C8_44444C",341:"7C584C_27140D_B3765C_3D2318",342:"7C7C71_353630_ADAFAF_444444",343:"7D6651_F8E3BF_CEA987_E7C29C",344:"7D7673_353230_AEA7B0_4C4444",345:"7DA1BA_A4CCE8_5D7A8B_5E7C94",346:"7E5344_22120E_CCAB9C_8D919D",347:"7E5E57_AD9794_612D1D_C9997D",348:"7E8174_39444D_CECAA7_B3B49B",349:"7F5134_22120A_452110_9F7D5F",350:"7F8896_3B3936_BBCFE9_4B4B4D",351:"803537_310F10_C35A5D_D89093",352:"807068_C3B0AB_443E3B_AC9C94",353:"80726C_DCDBD7_9AA6C2_B7BFCA",354:"808A5B_E0E1D4_2C4304_C5C7B0",355:"80A6B4_D5E9EF_B2D0D9_C1DCE4",356:"80CA23_B7EE37_D5FA4C_A3E434",357:"812828_521818_C94141_AB3737",358:"812E39_551C24_381117_9E3C49",359:"815C41_F6C99A_D39F77_BB9474",360:"815F54_DECBC6_301813_C5A8A0",361:"8194AB_D6DFEB_C0CEDE_B0BFD1",362:"81ADB3_D6ECEE_BFDEE1_AFD1D7",363:"81BABA_D5F3F3_BBE4E4_ABDCDC",364:"825C4D_A08175_97746C_613B2F",365:"826A59_E0C9B9_CBAD99_3D2615",366:"827C87_4F3937_605457_534C4E",367:"834741_4C281D_BE8F8C_AE6A65",368:"835984_39273A_4C334C_593D5A",369:"837667_DCD4C8_C5BAAC_3C2E22",370:"846556_503E33_61493D_5C4434",371:"848679_363630_AABBB7_4B4B44",372:"855D08_DAC31B_BF9B0C_AF860C",373:"85694C_D1A67A_3C2F22_EBBF8F",374:"857B61_ACE5D4_593D28_5B4334",375:"858362_9F9F80_9C9673_70714B",376:"85B9D3_C9EAF9_417277_528789",377:"866C5B_544237_B29B8C_AC8F7C",378:"872F2D_AB403E_682421_581F1C",379:"877B70_34302B_CBB3A4_524C44",380:"877C72_B6ACBB_36322D_4C443B",381:"878787_4C4C4C_646464_5C5C5C",382:"887153_E5C188_433729_C1A484",383:"888D8F_515454_646A6C_6C6C6D",384:"89204B_17080D_DA4377_F780B5",385:"8955D0_744CC4_EA4AEF_954DA4",386:"8A3B3D_DA5F62_461F20_BC7F81",387:"8A3DA1_D77CE4_C263D4_B75AC9",388:"8A5B34_F3BD7C_DA9758_BE7E45",389:"8A6565_2E214D_D48A5F_ADA59C",390:"8A7666_3C332C_C6AEA2_54443C",391:"8A7968_3C342D_C6B3A5_54443B",392:"8B7469_443E39_C7A797_544443",393:"8B795F_291504_EFE5D4_4A3518",394:"8B892C_D4E856_475E2D_47360A",395:"8C5945_D4C0B6_C3A49C_430504",396:"8CAEBC_3A4443_506463_DAEFEF",397:"8D553D_3C2419_5D3727_AA766C",398:"8D8D8D_DDDDDD_CCCCCC_B7B7B7",399:"8E6767_D9C4C4_C8ACAC_B89898",400:"8E7C67_E2C6A5_3B332A_C3AB94",401:"8E907C_B1B5A7_D7DBD0_CCCFBA",402:"8F4277_361530_BF538E_52274C",403:"8F4E20_E8B06B_391A08_CC8944",404:"8F5D3C_5B3B26_382416_70482E",405:"8F7B61_D6B892_4E4436_C3AC86",406:"8F894E_DAD79B_C9C384_C4BE7B",407:"903B2A_EC9888_D96747_58190D",408:"906867_C7B6BC_5D2E26_BEA4A3",409:"908887_3C3229_C7C6D0_554A45",410:"908E8E_292828_454444_595757",411:"909473_555D4B_C2CCA2_645B3C",412:"910E5A_E127C3_CF1CA3_C1158F",413:"926B48_4C2D0D_5F3913_AA8874",414:"927253_EECEA7_D8B792_C7A883",415:"935555_F6DAD9_D39393_593333",416:"936451_C29A8F_5F3A2B_361D14",417:"938C8D_403731_CECED8_554C4C",418:"942967_D292B5_C76E9E_551A4C",419:"945D43_E5AAA0_351F14_CC8B78",420:"94615B_DACED1_C3B9A4_CCABAA",421:"94624F_573529_24110C_733424",422:"9650CA_46236A_7239A6_633492",423:"965146_2B191D_DF7A5C_BFD6E1",424:"96785D_B8A398_63452C_6C5435",425:"975337_EEBE98_4B211C_D88659",426:"977970_E1D9D8_DAC8C1_C4B2AD",427:"98332E_4A100D_691A16_A85A5B",428:"989784_665542_BFECE5_6D644C",429:"9A5A55_31110D_582A24_703C34",430:"9A7467_D2C2BF_662D22_CCB2A5",431:"9AA8B6_313133_4E5055_D7EBF8",432:"9B4816_E8A138_CC7421_DC8827",433:"9B9994_E1E0DB_474643_544C4C",434:"9B9B9B_1E1E1E_5C5C5C_444444",435:"9C5B3B_49200A_E9C8AB_DDAB7D",436:"9CC338_4E671A_799F27_8CAC2C",437:"9D282A_38191D_DFC6CD_D6495A",438:"9D4343_E38989_D37474_CE6C6C",439:"9D602E_E4C363_D5A64F_C38A44",440:"9D7F6E_C6DAD4_6D4C4B_C6BBBC",441:"9D8F84_5D4544_D9D3C9_62555A",442:"9D9D9D_4E4E4E_646464_6C6C6C",443:"9E7C7E_DDCBD0_351D20_683B38",444:"9E9C77_6E6F4E_7C7C54_C7BF96",445:"9F1A27_F1AF7F_CD5845_D08441",446:"9F4738_CE958D_4F0C0A_C0837C",447:"9F7D30_B69F75_B9B7BE_CB9C4D",448:"9F886D_362F25_E8C9A4_5C4C3C",449:"9F9F9F_E4E4E4_D4D4D4_CCCCCC",450:"A05F31_D5C2BC_D9996F_42230E",451:"A0A8B0_424336_E7E9EF_545C5C",452:"A1824F_4A2A06_F7E29F_B3A598",453:"A27216_E9D036_D0AB24_DCB927",454:"A28766_E4D6C3_D6C4AA_CAB598",455:"A3B2A4_3B3E3D_676F6A_535C57",456:"A48DA4_E8DDE8_C9B7C9_D4C2D4",457:"A49994_695244_C4C2CF_76645C",458:"A67362_36150C_5E2E1E_F6C3BF",459:"A84337_611D18_3F110F_7C2A22",460:"A88C77_DAD2C7_623532_956229",461:"A95E4D_57261A_6E3223_773C24",462:"A971A9_E8CBE8_D4A8D4_DCB3DC",463:"A98D6A_F2D3AB_FBE6BE_695332",464:"A9A2A0_2F211C_544440_6D5E5A",465:"AA526C_EAA6C9_DC88AF_D17BA0",466:"AB2C2C_EBB4B3_561212_DE8484",467:"AB2D08_C35E5A_C75522_C56C70",468:"AB54A8_EBAAE9_DF8FDD_D37ED0",469:"AC171C_FA8593_E84854_D3464E",470:"AC725C_2E1610_663E31_E78F6B",471:"AC7F84_78463A_C4AABB_885454",472:"AC8942_432D19_6E4D27_5F3B1C",473:"AC8961_EBDAC3_D1B791_DCC2A0",474:"AD9E81_F1E5CE_6B5C3E_5A492A",475:"ADC2CD_DFF7FA_C9E6F5_C1DBEC",476:"AE9D99_29303B_585F70_875C33",477:"AF986F_CDB489_9C7C5B_7E6C4D",478:"AF987A_2F2416_523F27_6B5331",479:"AF9A72_504718_74652B_E2C2A2",480:"B06932_451B09_7B3E16_150804",481:"B09273_7A573D_C7AF97_84644C",482:"B0A2A8_866A63_E8E9F2_614C4F",483:"B0B0B0_6E6E6E_848484_8C8C8C",484:"B1A395_EFE6E1_635A47_786D5D",485:"B2674B_552913_7C442F_733919",486:"B26F52_4B2E2B_79493A_663B32",487:"B27744_5A2804_F6C488_EBB27D",488:"B38B76_40251D_745042_5F3A30",489:"B3AA93_F4EFD7_E1DDC2_DCD3BB",490:"B47A5B_301E14_704A31_633C23",491:"B4B29D_442D0D_604E2A_736542",492:"B5987E_F8E4DC_6F5939_E9CCBA",493:"B5BBB5_3B4026_6E745D_5C6147",494:"B62D33_E4868B_7E2D34_DD6469",495:"B66D59_F0C9B2_E5B49C_DAA084",496:"B67F6B_4B2E2A_6C3A34_F3DBC6",497:"B6B8B1_994A24_315C81_927963",498:"B76E5E_7F3A2F_EE938C_F8A5A1",499:"B7A763_E6E1CC_554A1E_6C6428",500:"B86137_FBCA6F_6F3C37_040404",501:"B9896A_5B341B_F4CAA3_6C4C2D",502:"B98A6D_7B4F38_D1A68F_8C5B43",503:"B9B37A_F1EED0_E5E4BA_DAD6A8",504:"B9CDD2_775339_958272_7F6A5E",505:"BA472D_CA6E67_C76150_CA6C59",506:"BA5DBA_F2BEF2_E69BE6_DC8CDC",507:"BA864A_5D381E_644422_FBE97A",508:"BA8979_DDCBCA_9A4726_892407",509:"BAADA8_ECE6E7_9A8378_E3DCD3",510:"BC5B43_95170B_EEAC92_DB8C7C",511:"BC928D_F9E2D6_654445_835A51",512:"BD0D0D_970404_7B0404_550404",513:"BD5345_460F11_732622_EDB7B1",514:"BDB466_F3EDC3_E3DD9F_ECE3AA",515:"BE5F5F_F4BDBD_ECA4A4_E29191",516:"BEE2E9_7E6A53_9AA09C_87837E",517:"BF7051_994C2D_E99A7B_DE8C74",518:"BF7745_F5D08E_E5AE6B_ECBC7C",519:"BF8E78_E5CCBF_753E32_4A261E",520:"BFAA83_F5EAD6_E1D0B1_EBDDC0",521:"BFB5A4_DEDCCB_D7D4CC_DCD3C2",522:"C05429_ED6129_94492A_834729",523:"C09E5C_DAD2B9_654429_81582D",524:"C1AA92_AD6E29_737889_CED1D7",525:"C1B3A1_F6EEE5_E1D7C7_ECE4D3",526:"C21338_920C24_E71C54_F34A7D",527:"C28E4E_845119_0B0805_713C0C",528:"C2A391_523728_785741_694836",529:"C2A584_363B41_71665B_8C7367",530:"C2AB7D_4A412E_7A6B4E_F9EDBE",531:"C30C0C_9F0404_830404_5C0404",532:"C33829_48171A_752523_942923",533:"C345EC_5F1DAA_9F31DB_872CCD",534:"C35C04_F9C30C_EE9F04_E08304",535:"C3CCD4_5F3B23_948A7B_A9A49A",536:"C47004_F9D00C_EDAF04_E09704",537:"C4A591_635448_F2D9D5_856D5B",538:"C4C6C6_4D5756_646463_7A8080",539:"C4DEDE_97B5B5_EAF9F9_ABC4C4",540:"C5A292_635247_F2D7D6_846A5B",541:"C5BBB6_F8F4F1_E2DAD6_ECE3DF",542:"C75F55_F8BDA9_EB9484_F4A494",543:"C7938D_E0DBE1_D1BBBC_D5CCCB",544:"C7B9A1_F8F1E4_EEE4D2_E4D8C4",545:"C7C0AC_2E181B_543B30_6B6270",546:"C7C7D7_4C4E5A_818393_6C6C74",547:"C87157_F8CBAE_E9A582_F2B394",548:"C88467_5B3333_875C5A_7A3822",549:"C8AF84_F9ECD7_EFDEBF_E6D1AF",550:"C8C8C8_3F3F3F_787878_5C5C5C",551:"C8D1DC_575B62_818892_6E747B",552:"C98D7F_3B0B0B_A97667_94433F",553:"C99A8B_491B0E_6E4136_8A4D28",554:"C9C7BE_55514B_888279_7B6E5F",555:"CA4FE1_6B2398_A337C7_9334BC",556:"CA8892_F9D7DC_EBB8C0_F3C4CC",557:"CAA094_875343_956255_EADEDC",558:"CAA78A_F9E7D7_EAD0B9_F3DCC3",559:"CAAC80_FAEBD5_F2DEBF_EAD1AF",560:"CAB094_F9ECDD_EFDEC8_E8D4BD",561:"CAB79D_F9F1E3_F1E5D1_E9DAC6",562:"CAE24E_6C9A23_A3C737_B3D43C",563:"CB4934_FB9971_F07554_F68464",564:"CB4E88_F99AD6_F384C3_ED75B9",565:"CB5E3B_FABC7A_EF965E_F4A46C",566:"CB7146_551D0F_7C270D_E5AB9C",567:"CB7846_753C22_AB5C32_B46C3C",568:"CB919B_F9DDE1_ECC0C8_F4CCD4",569:"CBCBCB_595959_8C8C8C_747474",570:"CC7C5F_A15436_B26346_AF5C3C",571:"CC9A7E_8A5249_C06A3E_DADADA",572:"CCC5C9_3B2B2B_67585B_7F7375",573:"CCF6FA_9DD9EB_82C5D9_ACD4E4",574:"CDC3B8_5A3F3C_67545A_8D7769",575:"CDCBC8_444342_696765_81807E",576:"CE8C15_EAC79B_DDAB57_F9C962",577:"CE8F3D_F0D2B0_F3C77D_E6B278",578:"CEB299_6B5C4C_887564_746355",579:"D04444_AF2F2F_8B2424_9B2C2C",580:"D07E3F_FBBD1F_8D2840_24120C",581:"D0CCCB_524D50_928891_727581",582:"D0D3BE_816854_998366_685146",583:"D1AC04_F8E50A_EDD004_B38D04",584:"D3CAAB_8C866E_C0B89A_AEA68A",585:"D4855F_92512D_AE6742_A75C2C",586:"D54C2B_5F1105_F39382_F08375",587:"D5B5B4_9E6C6F_F5E9EF_A57986",588:"D5D5D5_929292_ACACAC_B4B4B4",589:"D64480_E27497_EA9BB1_CD156F",590:"D7D7C3_AAAA92_F5F5EA_BCBCA4",591:"D7DFDB_AAB5AF_F5FAF7_BCC4C4",592:"D8388B_230A14_FCC8FC_FC71E1",593:"D8C949_F5F19E_6B7855_9A9858",594:"D8D8E5_9D9DAF_B4B4C4_B4B4CC",595:"DA5788_DE94BD_E078A3_DD83B4",596:"DBDBBB_F7F7E4_AFAF89_C4C49C",597:"DC3E04_B52604_FC7D20_F85F04",598:"DE9261_86361E_A85A37_944C2C",599:"DEDEC4_B5B597_F9F9EA_C4C4AB",600:"DEE3E8_A6AEB5_BCC4CC_BCC4C4",601:"DEE8DE_A6B5A6_BCCCBC_BCC4BC",602:"DEE8E8_A6B5B5_BCCCCC_BAC4C4",603:"DFD9C2_B5AE92_F9F7EA_C4C4A4",604:"DFDBB7_F9F8E3_B5AF86_BCBC8C",605:"DFDFCA_4D2D07_6B5224_857145",606:"DFDFD6_58544E_81766A_989288",607:"E1E1D4_777C7B_9FA19A_898F8D",608:"E1E1E0_363636_989897_747472",609:"E2D3BC_867255_B39E7F_96836C",610:"E2E2E7_AEAEB5_C4C4CC_C4C4C4",611:"E42E12_F35132_F86949_B71B0A",612:"E5DED7_AFA69D_C4BCB4_C3BAAB",613:"E6BF3C_5A4719_977726_FCFC82",614:"E6E3E3_B5AFAF_CCC4C4_C4C4C4",615:"E6E6E6_AAAAAA_C4C4C4_CCCCCC",616:"E7632F_FBA06B_BB2905_FB865E",617:"E7E2D8_B1AA9D_C9C2B3_BCB4AC",618:"E80404_B50404_CB0404_FC3333",619:"E804E8_B504B5_CC04CC_FC33FC",620:"E8DEE1_B5A6AA_CCBCC1_C4BBBC",621:"E8E5DE_B5AFA6_CCC5BC_C4C4BB",622:"E8E8DE_B5B5A6_CCCCBC_C4C4BA",623:"E9CCA1_A63106_DF8C3B_621304",624:"EA783E_6D4830_905837_FCDC6C",625:"EAD8D6_B59A97_CCB4B0_C9ABAB",626:"EAEAEA_B5B5B5_CCCCCC_D4D4D4",627:"EAEAEA_B6B6B6_CCCCCC_C4C4C4",628:"ED4630_791A0E_A42716_501009",629:"ED5087_FAC3D0_1C0B0C_FC84CC",630:"ED7F04_FCD60E_7E2D04_B73E04",631:"EDED06_B5B504_CCCC04_D4D404",632:"EE4128_FC8E82_9A0704_BF0F05",633:"EEECFB_BFB6D5_D0C8EB_CCC4DC",634:"F0D504_FBFAD3_B98609_CDA204",635:"F75F0B_461604_9A3004_FB9D2F",636:"F77777_FBE1E1_FAB2B2_FBC4C4",637:"F79686_FCCBD4_E76644_E76B56",638:"F9E6C7_FCF7DF_EDD3AA_F1D4B4",639:"FBB43F_FBE993_FB552E_FCDD65",640:"FBB82D_FBEDBF_FBDE7D_FB7E05"};const Gt=Ut[0];const Rt={0:"151_norm.JPG",1:"152_norm.JPG",2:"153_norm.JPG",3:"154_norm.JPG",4:"155_norm.JPG",5:"156_norm.JPG",6:"157_norm.JPG",7:"158_norm.JPG",8:"159_norm.JPG",9:"160_norm.JPG",10:"161_norm.JPG",11:"162_norm.JPG",12:"163_norm.JPG",13:"164_norm.JPG",14:"165_norm.JPG",15:"166_norm.JPG",16:"167_norm.JPG",17:"168_norm.JPG",18:"169_norm.JPG",19:"170_norm.JPG",20:"171_norm.JPG",21:"172_norm.JPG",22:"173_norm.JPG",23:"174_norm.jpg",24:"175_norm.JPG",25:"176_norm.JPG",26:"177_norm.JPG",27:"178_norm.JPG",28:"179_norm.JPG",29:"180_norm.JPG",30:"181_norm.JPG",31:"182_norm.JPG",32:"183_norm.JPG",33:"184_norm.JPG",34:"185_norm.JPG",35:"186_norm.JPG",36:"187_norm.JPG",37:"188_norm.JPG",38:"189_norm.JPG",39:"190_norm.JPG",40:"191_norm.JPG",41:"192_norm.JPG",42:"193_norm.JPG",43:"194_norm.JPG",44:"195_norm.JPG",45:"196_norm.JPG",46:"197_norm.JPG",47:"198_norm.JPG",48:"199_norm.JPG",49:"200_norm.JPG",50:"201_norm.jpg",51:"202_norm.jpg",52:"203_norm.jpg",53:"204_norm.jpg",54:"205_norm.jpg",55:"206_norm.jpg",56:"207_norm.jpg",57:"208_norm.jpg",58:"209_norm.jpg",59:"210_norm.jpg",60:"211_norm.jpg",61:"212_norm.jpg",62:"213_norm.jpg",63:"214_norm.jpg",64:"215_norm.jpg",65:"216_norm.jpg",66:"217_norm.jpg",67:"218_norm.jpg",68:"219_norm.jpg",69:"220_norm.jpg",70:"221_norm.jpg",71:"222_norm.jpg",72:"223_norm.jpg",73:"224_norm.jpg",74:"225_norm.jpg",75:"226_norm.jpg"},qt=Rt[0];const Wt={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};class Yt extends h.Group{constructor(){super(),this.color=new h.Color("white")}}let Kt,Zt;const Jt=D.createContext(null),$t=new h.Matrix4,er=new h.Vector3,tr=new h.Color,rr=D.forwardRef((({children:e,range:t,limit:r=1e3,...n},a)=>{const s=D.useRef(null),[i,u]=D.useState([]),[[c,l]]=D.useState((()=>[new Float32Array(3*r),new Float32Array([...new Array(3*r)].map((()=>1)))]));D.useLayoutEffect((()=>{s.current.geometry.drawRange.count=Math.min(r,void 0!==t?t:r,i.length)}),[i,t]),D.useEffect((()=>{s.current.geometry.attributes.position.needsUpdate=!0})),o.useFrame((()=>{for(s.current.updateMatrix(),s.current.updateMatrixWorld(),$t.copy(s.current.matrixWorld).invert(),Kt=0;Kt<i.length;Kt++)Zt=i[Kt].current,Zt.getWorldPosition(er).applyMatrix4($t),er.x===c[3*Kt]&&er.y===c[3*Kt+1]&&er.z===c[3*Kt+2]||(er.toArray(c,3*Kt),s.current.geometry.attributes.position.needsUpdate=!0,Zt.matrixWorldNeedsUpdate=!0),Zt.color.equals(tr.fromArray(l,3*Kt))||(Zt.color.toArray(l,3*Kt),s.current.geometry.attributes.color.needsUpdate=!0)}));const A=D.useMemo((()=>{const e={};for(Kt=0;Kt<i.length;Kt++){var t;Object.assign(e,null==(t=i[Kt].current)?void 0:t.__r3f.handlers)}return Object.keys(e).reduce(((e,t)=>({...e,[t]:e=>{var r,n,o;const a=null==(r=i[e.index])?void 0:r.current;return null==a||null==(n=a.__r3f)||null==(o=n.handlers)?void 0:o[t]({...e,object:a})}})),{})}),[e,i]),f=D.useMemo((()=>({subscribe:e=>(u((t=>[...t,e])),()=>u((t=>t.filter((t=>t.current!==e.current)))))})),[]);return D.createElement("points",B.default({matrixAutoUpdate:!1,ref:x.default([a,s])},A,n),D.createElement("bufferGeometry",null,D.createElement("bufferAttribute",{attachObject:["attributes","position"],count:c.length/3,array:c,itemSize:3,usage:h.DynamicDrawUsage}),D.createElement("bufferAttribute",{attachObject:["attributes","color"],count:l.length/3,array:l,itemSize:3,usage:h.DynamicDrawUsage})),D.createElement(Jt.Provider,{value:f},e))})),nr=D.forwardRef((({children:e,...t},r)=>{D.useMemo((()=>o.extend({Position:Yt})),[]);const n=D.useRef(),{subscribe:a}=D.useContext(Jt);return D.useLayoutEffect((()=>a(n)),[]),D.createElement("position",B.default({ref:x.default([r,n])},t),e)}));let or,ar;const sr=D.createContext(null),ir=new h.Matrix4,ur=new h.Matrix4,cr=new h.Matrix4,lr=new h.Color,Ar=new h.Vector3,fr=new h.Quaternion,Cr=new h.Vector3,mr=D.forwardRef((({context:e,children:t,...r},n)=>{D.useMemo((()=>o.extend({Position:Yt})),[]);const a=D.useRef(),{subscribe:s}=D.useContext(e||sr);return D.useLayoutEffect((()=>s(a)),[]),D.createElement("position",B.default({ref:x.default([n,a])},r),t)})),pr=D.forwardRef((({children:e,range:t,limit:r=1e3,frames:n=1/0,...a},s)=>{const[{context:i,instance:u}]=D.useState((()=>{const e=D.createContext(null);return{context:e,instance:D.forwardRef(((t,r)=>D.createElement(mr,B.default({context:e},t,{ref:r}))))}})),c=D.useRef(null),[l,A]=D.useState([]),[[f,C]]=D.useState((()=>{const e=new Float32Array(16*r);for(or=0;or<r;or++)cr.identity().toArray(e,16*or);return[e,new Float32Array([...new Array(3*r)].map((()=>1)))]}));D.useLayoutEffect((()=>{c.current.count=c.current.instanceMatrix.updateRange.count=c.current.instanceColor.updateRange.count=Math.min(r,void 0!==t?t:r,l.length)}),[l,t]),D.useEffect((()=>{c.current.instanceMatrix.needsUpdate=!0}));let m=0;o.useFrame((e=>{if(n===1/0||m<n){for(c.current.updateMatrix(),c.current.updateMatrixWorld(),ir.copy(c.current.matrixWorld).invert(),or=0;or<l.length;or++)ar=l[or].current,ar.matrixWorld.decompose(Ar,fr,Cr),ur.compose(Ar,fr,Cr).premultiply(ir),ur.equals(cr.fromArray(f,16*or))||(ur.toArray(f,16*or),c.current.instanceMatrix.needsUpdate=!0),ar.color.equals(lr.fromArray(C,3*or))||(ar.color.toArray(C,3*or),c.current.instanceColor.needsUpdate=!0);m++}}));const p=D.useMemo((()=>{const e={};for(or=0;or<l.length;or++){var t;Object.assign(e,null==(t=l[or].current)?void 0:t.__r3f.handlers)}return Object.keys(e).reduce(((e,t)=>({...e,[t]:e=>{var r,n,o;const a=null==(r=l[e.instanceId])?void 0:r.current;return null==a||null==(n=a.__r3f)||null==(o=n.handlers)?void 0:o[t]({...e,object:a})}})),{})}),[e,l]),d=D.useMemo((()=>({subscribe:e=>(A((t=>[...t,e])),()=>A((t=>t.filter((t=>t.current!==e.current)))))})),[]);return D.createElement("instancedMesh",B.default({matrixAutoUpdate:!1,ref:x.default([s,c]),args:[null,null,0]},p,a),D.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:f.length/16,array:f,itemSize:16,usage:h.DynamicDrawUsage}),D.createElement("instancedBufferAttribute",{attach:"instanceColor",count:C.length/3,array:C,itemSize:3,usage:h.DynamicDrawUsage}),"function"==typeof e?D.createElement(i.Provider,{value:d},e(u)):D.createElement(sr.Provider,{value:d},e))}));const dr=D.createContext(null),vr=e=>e instanceof h.Vector3?e.toArray():e,Br=D.forwardRef(((e,t)=>{const{limit:r=1e3,lineWidth:n=1,children:a,...s}=e,[u,c]=D.useState([]),[l]=D.useState((()=>new i.Line2)),[A]=D.useState((()=>new i.LineMaterial)),[f]=D.useState((()=>new i.LineSegmentsGeometry)),[C]=D.useState((()=>new h.Vector2(512,512))),[m]=D.useState((()=>Array(r).fill(0))),[p]=D.useState((()=>Array(r).fill(1))),d=D.useMemo((()=>({subscribe:e=>(c((t=>[...t,e])),()=>c((t=>t.filter((t=>t.current!==e.current)))))})),[]);return o.useFrame((()=>{m.length=6*u.length,p.length=6*u.length,u.forEach(((e,t)=>{const r=e.current;if(r){const e=vr(r.start),o=vr(r.end),a=(e=>e instanceof h.Color?e.toArray():e)(r.color);for(var n=0;n<3;n++)m[6*t+n]=e[n],m[6*t+n+3]=o[n],p[6*t+n]=a[n],p[6*t+n+3]=a[n]}})),f.setColors(p),f.setPositions(m),l.computeLineDistances()})),D.createElement("primitive",{object:l,ref:t},D.createElement("primitive",{object:f,attach:"geometry"}),D.createElement("primitive",B.default({object:A,attach:"material",vertexColors:!0,resolution:C,linewidth:n},s)),D.createElement(dr.Provider,{value:d},a))})),Dr=D.forwardRef(((e,t)=>{const{start:r,end:n,color:o}=e,a=D.useContext(dr);if(!a)throw"Segment must used inside Segments component.";const s=D.useRef({start:[0,0,0],end:[0,0,0],color:[1,1,1]});return D.useLayoutEffect((()=>a.subscribe(t||s)),[]),D.useLayoutEffect((()=>{var e=t||s;r&&Object.assign(e.current,{start:r}),n&&Object.assign(e.current,{end:n}),o&&Object.assign(e.current,{color:o})}),[r,n,o]),null})),Er=D.forwardRef((({children:e,distances:t,...r},n)=>{const a=D.useRef(null);return D.useLayoutEffect((()=>{const{current:e}=a;e.levels.length=0,e.children.forEach(((r,n)=>e.levels.push({object:r,distance:t[n]})))})),o.useFrame((e=>{var t;return null==(t=a.current)?void 0:t.update(e.camera)})),D.createElement("lOD",B.default({ref:x.default([a,n])},r),e)}));const hr=new n.Matrix4,_r=new n.Ray,xr=new n.Sphere,gr=new n.Vector3;exports.AdaptiveDpr=function({pixelated:e}){const t=o.useThree((e=>e.gl)),r=o.useThree((e=>e.internal.active)),n=o.useThree((e=>e.performance.current)),a=o.useThree((e=>e.viewport.initialDpr)),s=o.useThree((e=>e.setDpr));return D.useEffect((()=>{const n=t.domElement;return()=>{r&&s(a),e&&n&&(n.style.imageRendering="auto")}}),[]),D.useEffect((()=>{s(n*a),e&&t.domElement&&(t.domElement.style.imageRendering=1===n?"auto":"pixelated")}),[n]),null},exports.AdaptiveEvents=function(){const e=o.useThree((e=>e.get)),t=o.useThree((e=>e.performance.current));return D.useEffect((()=>{const t=e().raycaster.enabled;return()=>{e().raycaster.enabled=t}}),[]),D.useEffect((()=>{e().raycaster.enabled=1===t}),[t]),null},exports.ArcballControls=de,exports.BakeShadows=function(){const e=o.useThree((e=>e.gl));return D.useEffect((()=>(e.shadowMap.autoUpdate=!1,e.shadowMap.needsUpdate=!0,()=>{e.shadowMap.autoUpdate=e.shadowMap.needsUpdate=!0})),[]),null},exports.Billboard=q,exports.Bounds=function({children:e,damping:t=6,fit:r,clip:n,margin:a=1.2,eps:s=.01}){const i=D.useRef(null),u=o.useThree((e=>e.camera)),c=o.useThree((e=>e.controls)),l=o.useThree((e=>e.invalidate));function A(e,t){return Math.abs(e.x-t.x)<s&&Math.abs(e.y-t.y)<s&&Math.abs(e.z-t.z)<s}function f(e,t,r,n){e.x=h.MathUtils.damp(e.x,t.x,r,n),e.y=h.MathUtils.damp(e.y,t.y,r,n),e.z=h.MathUtils.damp(e.z,t.z,r,n)}const[C]=D.useState((()=>({animating:!1,focus:new h.Vector3,camera:new h.Vector3,zoom:1}))),[m]=D.useState((()=>({focus:new h.Vector3,camera:new h.Vector3,zoom:1}))),p=D.useMemo((()=>{const e=new h.Box3;function r(){const t=e.getSize(new h.Vector3),r=e.getCenter(new h.Vector3),n=Math.max(t.x,t.y,t.z),o=et(u)?4*n:n/(2*Math.atan(Math.PI*u.fov/360)),s=et(u)?4*n:o/u.aspect;return{size:t,center:r,distance:a*Math.max(o,s)}}return{getSize:r,refresh(t){return e.setFromObject(t||i.current),this},clip(){const{distance:e}=r();return c&&(c.maxDistance=10*e),u.near=e/100,u.far=100*e,u.updateProjectionMatrix(),c&&c.update(),this},fit(){C.camera.copy(u.position),c&&C.focus.copy(c.target);const{center:n,distance:o}=r(),s=n.clone().sub(u.position).normalize().multiplyScalar(o);if(m.camera.copy(n).sub(s),m.focus.copy(n),et(u)){C.zoom=u.zoom;let r=0,o=0;const s=[new h.Vector3(e.min.x,e.min.y,e.min.z),new h.Vector3(e.min.x,e.max.y,e.min.z),new h.Vector3(e.min.x,e.min.y,e.max.z),new h.Vector3(e.min.x,e.max.y,e.max.z),new h.Vector3(e.max.x,e.max.y,e.max.z),new h.Vector3(e.max.x,e.max.y,e.min.z),new h.Vector3(e.max.x,e.min.y,e.max.z),new h.Vector3(e.max.x,e.min.y,e.min.z)];n.applyMatrix4(u.matrixWorldInverse);for(const e of s)e.applyMatrix4(u.matrixWorldInverse),r=Math.max(r,Math.abs(e.y-n.y)),o=Math.max(o,Math.abs(e.x-n.x));r*=2,o*=2;const i=(u.top-u.bottom)/r,c=(u.right-u.left)/o;m.zoom=Math.min(i,c)/a,t||(u.zoom=m.zoom,u.updateProjectionMatrix())}return t?C.animating=!0:(u.position.copy(m.camera),u.lookAt(m.focus),c&&(c.target.copy(m.focus),c.update()),l()),this}}}),[u,c,a,t,l]);return D.useLayoutEffect((()=>{if(p.refresh(),r&&p.fit(),n&&p.clip(),c){const e=e=>C.animating=!1;return c.addEventListener("start",e),()=>c.removeEventListener("start",e)}}),[p,r,c]),o.useFrame(((e,r)=>{if(C.animating){if(f(C.focus,m.focus,t,r),f(C.camera,m.camera,t,r),C.zoom=h.MathUtils.damp(C.zoom,m.zoom,t,r),u.position.copy(C.camera),et(u)&&(u.zoom=C.zoom,u.updateProjectionMatrix()),c?(c.target.copy(C.focus),c.update()):u.lookAt(C.focus),l(),et(u)&&!(Math.abs(C.zoom-m.zoom)<s))return;if(!et(u)&&!A(C.camera,m.camera))return;if(c&&!A(C.focus,m.focus))return;C.animating=!1}})),D.createElement("group",{ref:i},D.createElement(tt.Provider,{value:p},e))},exports.Box=_t,exports.CameraShake=le,exports.Center=$e,exports.Circle=xt,exports.Cloud=function({opacity:e=.5,speed:t=.4,width:r=10,length:n=1.5,segments:a=20,dir:s=1,...i}){const u=D.useRef(),c=Y("data:image/png;base64,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"),l=D.useMemo((()=>[...new Array(a)].map(((e,n)=>({x:r/2-Math.random()*r,y:r/2-Math.random()*r,scale:.4+Math.sin((n+1)/a*Math.PI)*(10*(.2+Math.random())),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*t})))),[r,a,t]);return o.useFrame((e=>{var t;return null==(t=u.current)?void 0:t.children.forEach(((t,r)=>{t.rotation.z+=l[r].rotation*s,t.scale.setScalar(l[r].scale+(1+Math.sin(e.clock.getElapsedTime()/10))/2*r/10)}))})),D.createElement("group",i,D.createElement("group",{position:[0,0,a/2*n],ref:u},l.map((({x:t,y:r,scale:o,density:a},s)=>D.createElement(q,{key:s,scale:[o,o,o],position:[t,r,-s*n],lockZ:!0},D.createElement("meshStandardMaterial",{map:c,transparent:!0,opacity:o/6*a*e,depthTest:!1}))))))},exports.Cone=gt,exports.ContactShadows=vt,exports.CubeCamera=function({children:e,fog:t,frames:r=1/0,resolution:a=256,near:s=1,far:i=1e3,...u}){const c=D.useRef(),[l,A]=D.useState(),f=o.useThree((({scene:e})=>e)),C=o.useThree((({gl:e})=>e)),m=D.useMemo((()=>new n.WebGLCubeRenderTarget(a,{minFilter:n.LinearFilter,magFilter:n.LinearFilter,format:n.RGBFormat,encoding:C.outputEncoding})),[a]);let p=0;return o.useFrame((()=>{if(l&&c.current&&(r===1/0||p<r)){c.current.traverse((e=>e.visible=!1));const e=f.fog;f.fog=t||e,l.update(C,f),f.fog=e,c.current.traverse((e=>e.visible=!0)),p++}})),D.createElement("group",u,D.createElement("cubeCamera",{ref:A,args:[s,i,m]}),D.createElement("group",{ref:c},e(m.texture)))},exports.CubicBezierLine=J,exports.CurveModifier=ot,exports.CycleRaycast=function({onChanged:e,portal:t,preventDefault:r=!0,scroll:n=!0,keyCode:a=9}){const s=D.useRef(0),i=o.useThree((e=>e.raycaster)),u=o.useThree((e=>e.get)),c=o.useThree((e=>e.gl));return D.useEffect((()=>{var o;let l,A=[];const f=i.filter,C=null!==(o=null==t?void 0:t.current)&&void 0!==o?o:c.domElement.parentNode,m=()=>C&&e&&e(A,Math.round(s.current)%A.length);i.filter=(e,t)=>{let r=[...e];r.length===A.length&&A.every((e=>r.map((e=>e.object.uuid)).includes(e.object.uuid)))||(s.current=0,A=r,m()),f&&(r=f(r,t));for(let e=0;e<Math.round(s.current)%r.length;e++){const e=r.shift();r=[...r,e]}return r};const p=e=>{var t,r;s.current=e(s.current),null==(t=u().events.handlers)||t.onPointerCancel(void 0),null==(r=u().events.handlers)||r.onPointerMove(l),m()},d=e=>{(e.keyCode||e.which===a)&&(r&&e.preventDefault(),A.length>1&&p((e=>e+1)))},v=e=>{r&&e.preventDefault();let t=0;e||(e=window.event),e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),A.length>1&&p((e=>Math.abs(e-t)))},B=e=>l=e;return document.addEventListener("pointermove",B,{passive:!0}),n&&document.addEventListener("wheel",v),void 0!==a&&document.addEventListener("keydown",d),()=>{i.filter=f,void 0!==a&&document.removeEventListener("keydown",d),n&&document.removeEventListener("wheel",v),document.removeEventListener("pointermove",B)}}),[c,u,i,r,n,a]),null},exports.Cylinder=Ft,exports.DepthBuffer=nt,exports.Detailed=Er,exports.DeviceOrientationControls=Ae,exports.Dodecahedron=Ot,exports.Effects=oe,exports.Environment=re,exports.Extrude=jt,exports.FirstPersonControls=De,exports.FlyControls=fe,exports.GizmoHelper=({alignment:e="bottom-right",margin:t=[80,80],renderPriority:r=0,onUpdate:a,onTarget:s,children:i})=>{const u=o.useThree((({size:e})=>e)),c=o.useThree((({camera:e})=>e)),l=o.useThree((({controls:e})=>e)),A=o.useThree((({gl:e})=>e)),f=o.useThree((({scene:e})=>e)),C=o.useThree((({invalidate:e})=>e)),m=D.useRef(),p=D.useRef(),d=D.useRef(null),[v]=D.useState((()=>new n.Scene)),B=D.useRef(!1),E=D.useRef(0),h=D.useRef(new n.Vector3(0,0,0));D.useEffect((()=>(f.background&&(m.current=f.background,f.background=null,v.background=m.current),()=>{m.current&&(f.background=m.current)})),[]);o.useFrame(((e,t)=>{var r;d.current&&p.current&&((e=>{if(!B.current)return;if(we.angleTo(ye)<.01)return void(B.current=!1);const t=e*xe;we.rotateTowards(ye,t),c.position.set(0,0,1).applyQuaternion(we).multiplyScalar(E.current).add(h.current),c.up.set(0,1,0).applyQuaternion(we).normalize(),c.quaternion.copy(we),a?a():l&&l.update(),C()})(t),Fe.copy(c.matrix).invert(),null==(r=p.current)||r.quaternion.setFromRotationMatrix(Fe),A.autoClear=!1,A.clearDepth(),A.render(v,d.current))}),r);const _={tweenCamera:e=>{B.current=!0,(l||s)&&(h.current=(null==l?void 0:l.target)||(null==s?void 0:s())),E.current=c.position.distanceTo(Pe),we.copy(c.quaternion),be.copy(e).multiplyScalar(E.current).add(Pe),ge.lookAt(be),ye.copy(ge.quaternion),C()},raycast:Ee(d)},[x,g]=t,F=e.endsWith("-left")?-u.width/2+x:u.width/2-x,w=e.startsWith("top-")?u.height/2-g:-u.height/2+g;return o.createPortal(D.createElement(he.Provider,{value:_},D.createElement(ue,{ref:d,makeDefault:!1,position:[0,0,200]}),D.createElement("group",{ref:p,position:[F,w,0]},i)),v)},exports.GizmoViewcube=e=>D.createElement("group",{scale:[60,60,60]},D.createElement(ke,e),Xe.map(((t,r)=>D.createElement(Ne,B.default({key:r,position:t,dimensions:Qe[r]},e)))),Oe.map(((t,r)=>D.createElement(Ne,B.default({key:r,position:t,dimensions:je},e)))),D.createElement("ambientLight",{intensity:.5}),D.createElement("pointLight",{position:[10,10,10],intensity:.5})),exports.GizmoViewport=({hideNegativeAxes:e,disabled:t,font:r="18px Inter var, Arial, sans-serif",axisColors:n=["#ff3653","#0adb50","#2c8fdf"],labelColor:o="#000",onClick:a,...s})=>{const[i,u,c]=n,{tweenCamera:l,raycast:A}=_e(),f={font:r,disabled:t,labelColor:o,raycast:A,onClick:a,onPointerDown:t?void 0:e=>{l(e.object.position),e.stopPropagation()}};return D.createElement("group",B.default({scale:40},s),D.createElement(Ie,{color:i,rotation:[0,0,0]}),D.createElement(Ie,{color:u,rotation:[0,0,Math.PI/2]}),D.createElement(Ie,{color:c,rotation:[0,-Math.PI/2,0]}),D.createElement(Ue,B.default({arcStyle:i,position:[1,0,0],label:"X"},f)),D.createElement(Ue,B.default({arcStyle:u,position:[0,1,0],label:"Y"},f)),D.createElement(Ue,B.default({arcStyle:c,position:[0,0,1],label:"Z"},f)),!e&&D.createElement(D.Fragment,null,D.createElement(Ue,B.default({arcStyle:i,position:[-1,0,0]},f)),D.createElement(Ue,B.default({arcStyle:u,position:[0,-1,0]},f)),D.createElement(Ue,B.default({arcStyle:c,position:[0,0,-1]},f))),D.createElement("ambientLight",{intensity:.5}),D.createElement("pointLight",{position:[10,10,10],intensity:.5}))},exports.GradientTexture=function({stops:e,colors:t,size:r=2048,...n}){const o=D.useMemo((()=>{const n=document.createElement("canvas"),o=n.getContext("2d");n.width=16,n.height=r;const a=o.createLinearGradient(0,0,0,r);let s=e.length;for(;s--;)a.addColorStop(e[s],t[s]);o.fillStyle=a,o.fillRect(0,0,16,r);const i=new h.Texture(n);return i.needsUpdate=!0,i}),[e]);return D.useEffect((()=>()=>{o.dispose()}),[o]),D.createElement("primitive",B.default({object:o,attach:"map"},n))},exports.Html=j,exports.Icosahedron=Ht,exports.Image=ie,exports.Instance=mr,exports.Instances=pr,exports.IsObject=W,exports.Lathe=Xt,exports.Line=K,exports.Loader=function({containerStyles:e,innerStyles:t,barStyles:r,dataStyles:n,dataInterpolation:o=V,initialState:a=(e=>e)}){const{active:s,progress:i}=Q(),u=D.useRef(0),c=D.useRef(0),l=D.useRef(null),[A,f]=D.useState(a(s));D.useEffect((()=>{let e;return s!==A&&(e=setTimeout((()=>f(s)),300)),()=>clearTimeout(e)}),[A,s]);const C=D.useCallback((()=>{l.current&&(u.current+=(i-u.current)/2,(u.current>.95*i||100===i)&&(u.current=i),l.current.innerText=o(u.current),u.current<i&&(c.current=requestAnimationFrame(C)))}),[o,i]);return D.useEffect((()=>(C(),()=>cancelAnimationFrame(c.current))),[C]),A?D.createElement("div",{style:{...k.container,opacity:s?1:0,...e}},D.createElement("div",null,D.createElement("div",{style:{...k.inner,...t}},D.createElement("div",{style:{...k.bar,transform:`scaleX(${i/100})`,...r}}),D.createElement("span",{ref:l,style:{...k.data,...n}})))):null},exports.MapControls=Ce,exports.Merged=function({meshes:e,children:t,...r}){const n=Array.isArray(e);if(!n)for(let t of Object.keys(e))e[t].isMesh||delete e[t];return D.createElement(y.default,{components:(n?e:Object.values(e)).map((({geometry:e,material:t})=>D.createElement(pr,B.default({key:e.uuid,geometry:e,material:t},r))))},(r=>n?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{}))))},exports.MeshDistortMaterial=st,exports.MeshReflectorMaterial=Ye,exports.MeshWobbleMaterial=ut,exports.Octahedron=Tt,exports.OrbitControls=me,exports.OrthographicCamera=ue,exports.Parametric=Qt,exports.PerspectiveCamera=ce,exports.Plane=yt,exports.Point=nr,exports.PointMaterial=lt,exports.PointMaterialImpl=ct,exports.PointerLockControls=Be,exports.Points=rr,exports.Polyhedron=St,exports.PositionalAudio=$,exports.Preload=function({all:e,scene:t,camera:r}){const a=o.useThree((({gl:e})=>e)),s=o.useThree((({camera:e})=>e)),i=o.useThree((({scene:e})=>e));return D.useLayoutEffect((()=>{const o=[];e&&(t||i).traverse((e=>{!1===e.visible&&(o.push(e),e.visible=!0)})),a.compile(t||i,r||s);const u=new n.WebGLCubeRenderTarget(128);new n.CubeCamera(.01,1e5,u).update(a,t||i),u.dispose(),o.forEach((e=>e.visible=!1))}),[]),null},exports.QuadraticBezierLine=Z,exports.Reflector=Ke,exports.Ring=Lt,exports.RoundedBox=kt,exports.ScreenQuad=It,exports.Scroll=R,exports.ScrollControls=function({eps:e=1e-5,enabled:t=!0,infinite:r,horizontal:n,pages:a=1,distance:s=1,damping:i=4,children:u}){const{gl:c,size:l,invalidate:A,events:f,raycaster:C}=o.useThree(),[m]=D.useState((()=>document.createElement("div"))),[p]=D.useState((()=>document.createElement("div"))),[d]=D.useState((()=>document.createElement("div"))),v=c.domElement.parentNode,B=D.useRef(0),E=D.useMemo((()=>({el:m,eps:e,fill:p,fixed:d,horizontal:n,damping:i,offset:0,delta:0,scroll:B,pages:a,range(e,t,r=0){const n=e-r,o=n+t+2*r;return this.offset<n?0:this.offset>o?1:(this.offset-n)/(o-n)},curve(e,t,r=0){return Math.sin(this.range(e,t,r)*Math.PI)},visible(e,t,r=0){const n=e-r,o=n+t+2*r;return this.offset>=n&&this.offset<=o}})),[e,i,n,a]);D.useEffect((()=>{m.style.position="absolute",m.style.width="100%",m.style.height="100%",m.style[n?"overflowX":"overflowY"]="auto",m.style[n?"overflowY":"overflowX"]="hidden",m.style.top="0px",m.style.left="0px",d.style.position="sticky",d.style.top="0px",d.style.left="0px",d.style.width="100%",d.style.height="100%",d.style.overflow="hidden",m.appendChild(d),p.style.height=n?"100%":a*s*100+"%",p.style.width=n?a*s*100+"%":"100%",p.style.pointerEvents="none",m.appendChild(p),v.appendChild(m),m[n?"scrollLeft":"scrollTop"]=1;const e="boolean"!=typeof f.connected?f.connected:c.domElement;requestAnimationFrame((()=>null==f.connect?void 0:f.connect(m)));const t=C.computeOffsets;return C.computeOffsets=({clientX:e,clientY:t})=>({offsetX:e-v.offsetLeft,offsetY:t-v.offsetTop}),()=>{v.removeChild(m),C.computeOffsets=t,null==f.connect||f.connect(e)}}),[a,s,n,m,p,d,v]),D.useEffect((()=>{const e=l[n?"width":"height"],o=m[n?"scrollWidth":"scrollHeight"],a=o-e;let s=0,i=!0,u=!0;const c=e=>{if(t&&!u&&(A(),s=m[n?"scrollLeft":"scrollTop"],B.current=s/a,r)){if(!i)if(s>=a){const e=1-E.offset;m[n?"scrollLeft":"scrollTop"]=1,B.current=E.offset=-e,i=!0}else if(s<=0){const e=1+E.offset;m[n?"scrollLeft":"scrollTop"]=o,B.current=E.offset=e,i=!0}i&&setTimeout((()=>i=!1),40)}};m.addEventListener("scroll",c,{passive:!0}),requestAnimationFrame((()=>u=!1));const f=e=>m.scrollLeft+=e.deltaY/2;return n&&m.addEventListener("wheel",f,{passive:!0}),()=>{m.removeEventListener("scroll",c),n&&m.removeEventListener("wheel",f)}}),[m,l,r,E,A,n]);let _=0;return o.useFrame(((t,r)=>{E.offset=h.MathUtils.damp(_=E.offset,B.current,i,r),E.delta=h.MathUtils.damp(E.delta,Math.abs(_-E.offset),i,r),E.delta>e&&A()})),D.createElement(N.Provider,{value:E},u)},exports.Segment=Dr,exports.Segments=Br,exports.Shadow=Ze,exports.Sky=ft,exports.Sphere=wt,exports.SpotLight=Et,exports.Stage=function({children:e,controls:t,shadows:r=!0,adjustCamera:n=!0,environment:a="city",intensity:s=1,preset:i="rembrandt",shadowBias:u=0,contactShadow:c={blur:2,opacity:.5,position:[0,0,0]},...l}){const A=Wt[i],f=o.useThree((e=>e.camera)),C=o.useThree((e=>e.controls)),m=D.useRef(null),p=D.useRef(null),[{radius:d,width:v,height:E},_]=D.useState({radius:0,width:0,height:0});return D.useLayoutEffect((()=>{m.current.position.set(0,0,0),m.current.updateWorldMatrix(!0,!0);const e=(new h.Box3).setFromObject(p.current),t=new h.Vector3,r=new h.Sphere,n=e.max.y-e.min.y,o=e.max.x-e.min.x;e.getCenter(t),e.getBoundingSphere(r),_({radius:r.radius,width:o,height:n}),m.current.position.set(-t.x,-t.y+n/2,-t.z)}),[e]),D.useLayoutEffect((()=>{if(n){const e=d/(E>v?1.5:2.5);f.position.set(0,.5*d,2.5*d),f.near=.1,f.far=Math.max(5e3,4*d),f.lookAt(0,e,0);const r=C||(null==t?void 0:t.current);r&&(r.target.set(0,e,0),r.update())}}),[C,d,E,v,n]),D.createElement("group",l,D.createElement("group",{ref:m},D.createElement("group",{ref:p},e)),c&&D.createElement(vt,B.default({"rotation-x":Math.PI/2,width:2*d,height:2*d,far:d/2},c)),a&&D.createElement(re,{preset:a}),D.createElement("ambientLight",{intensity:s/3}),D.createElement("spotLight",{penumbra:1,position:[A.main[0]*d,A.main[1]*d,A.main[2]*d],intensity:2*s,castShadow:r,"shadow-bias":u}),D.createElement("pointLight",{position:[A.fill[0]*d,A.fill[1]*d,A.fill[2]*d],intensity:s}))},exports.Stars=dt,exports.Stats=function({showPanel:e=0,className:t,parent:r}){const n=function(e,t=[],r){const[n,o]=D.useState();return D.useLayoutEffect((()=>{const t=e();return o(t),Je(r,t),()=>Je(r,null)}),t),n}((()=>new w.default),[]);return D.useEffect((()=>{if(n){const a=r&&r.current||document.body;n.showPanel(e),null==a||a.appendChild(n.dom),t&&n.dom.classList.add(t);const s=o.addEffect((()=>n.begin())),i=o.addAfterEffect((()=>n.end()));return()=>{null==a||a.removeChild(n.dom),s(),i()}}}),[r,n,t,e]),null},exports.Tetrahedron=Mt,exports.Text=ee,exports.Torus=bt,exports.TorusKnot=zt,exports.TrackballControls=pe,exports.TransformControls=ve,exports.Tube=Pt,exports.calcPosFromAngles=At,exports.isWebGL2Available=ne,exports.meshBounds=function(e,t){const r=this.geometry,n=this.material,o=this.matrixWorld;void 0!==n&&(null===r.boundingSphere&&r.computeBoundingSphere(),xr.copy(r.boundingSphere),xr.applyMatrix4(o),!1!==e.ray.intersectsSphere(xr)&&(hr.copy(o).invert(),_r.copy(e.ray).applyMatrix4(hr),null!==r.boundingBox&&null===_r.intersectBox(r.boundingBox,gr)||t.push({distance:gr.distanceTo(e.ray.origin),point:gr.clone(),object:this})))},exports.shaderMaterial=ae,exports.softShadows=e=>{if(!Ct){Ct=!0;let t=h.ShaderChunk.shadowmap_pars_fragment;t=t.replace("#ifdef USE_SHADOWMAP","#ifdef USE_SHADOWMAP\n"+(({frustum:e=3.75,size:t=.005,near:r=9.5,samples:n=17,rings:o=11}={})=>`#define LIGHT_WORLD_SIZE ${t}\n#define LIGHT_FRUSTUM_WIDTH ${e}\n#define LIGHT_SIZE_UV (LIGHT_WORLD_SIZE / LIGHT_FRUSTUM_WIDTH)\n#define NEAR_PLANE ${r}\n\n#define NUM_SAMPLES ${n}\n#define NUM_RINGS ${o}\n#define BLOCKER_SEARCH_NUM_SAMPLES NUM_SAMPLES\n#define PCF_NUM_SAMPLES NUM_SAMPLES\n\nvec2 poissonDisk[NUM_SAMPLES];\n\nvoid initPoissonSamples(const in vec2 randomSeed) {\n float ANGLE_STEP = PI2 * float(NUM_RINGS) / float(NUM_SAMPLES);\n float INV_NUM_SAMPLES = 1.0 / float(NUM_SAMPLES);\n float angle = rand(randomSeed) * PI2;\n float radius = INV_NUM_SAMPLES;\n float radiusStep = radius;\n for (int i = 0; i < NUM_SAMPLES; i++) {\n poissonDisk[i] = vec2(cos(angle), sin(angle)) * pow(radius, 0.75);\n radius += radiusStep;\n angle += ANGLE_STEP;\n }\n}\n\nfloat penumbraSize(const in float zReceiver, const in float zBlocker) { // Parallel plane estimation\n return (zReceiver - zBlocker) / zBlocker;\n}\n\nfloat findBlocker(sampler2D shadowMap, const in vec2 uv, const in float zReceiver) {\n float searchRadius = LIGHT_SIZE_UV * (zReceiver - NEAR_PLANE) / zReceiver;\n float blockerDepthSum = 0.0;\n int numBlockers = 0;\n for (int i = 0; i < BLOCKER_SEARCH_NUM_SAMPLES; i++) {\n float shadowMapDepth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[i] * searchRadius));\n if (shadowMapDepth < zReceiver) {\n blockerDepthSum += shadowMapDepth;\n numBlockers++;\n }\n }\n if (numBlockers == 0) return -1.0;\n return blockerDepthSum / float(numBlockers);\n}\n\nfloat PCF_Filter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius) {\n float sum = 0.0;\n for (int i = 0; i < PCF_NUM_SAMPLES; i++) {\n float depth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[ i ] * filterRadius));\n if (zReceiver <= depth) sum += 1.0;\n }\n for (int i = 0; i < PCF_NUM_SAMPLES; i++) {\n float depth = unpackRGBAToDepth(texture2D(shadowMap, uv + -poissonDisk[ i ].yx * filterRadius));\n if (zReceiver <= depth) sum += 1.0;\n }\n return sum / (2.0 * float(PCF_NUM_SAMPLES));\n}\n\nfloat PCSS(sampler2D shadowMap, vec4 coords) {\n vec2 uv = coords.xy;\n float zReceiver = coords.z; // Assumed to be eye-space z in this code\n initPoissonSamples(uv);\n float avgBlockerDepth = findBlocker(shadowMap, uv, zReceiver);\n if (avgBlockerDepth == -1.0) return 1.0;\n float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth);\n float filterRadius = penumbraRatio * LIGHT_SIZE_UV * NEAR_PLANE / zReceiver;\n return PCF_Filter(shadowMap, uv, zReceiver, filterRadius);\n}`)({...e})),t=t.replace("#if defined( SHADOWMAP_TYPE_PCF )","\nreturn PCSS(shadowMap, shadowCoord);\n#if defined( SHADOWMAP_TYPE_PCF )"),h.ShaderChunk.shadowmap_pars_fragment=t}},exports.useAnimations=function(e,t){const r=D.useRef(),[a]=D.useState((()=>t?t instanceof n.Object3D?{current:t}:t:r)),[s]=D.useState((()=>new n.AnimationMixer(void 0))),i=D.useRef({}),[u]=D.useState((()=>{const t={};return e.forEach((e=>Object.defineProperty(t,e.name,{enumerable:!0,get(){if(a.current)return i.current[e.name]||(i.current[e.name]=s.clipAction(e,a.current))}}))),{ref:a,clips:e,actions:t,names:e.map((e=>e.name)),mixer:s}}));return o.useFrame(((e,t)=>s.update(t))),D.useEffect((()=>{const e=a.current;return()=>{i.current={},Object.values(u.actions).forEach((t=>{e&&s.uncacheAction(t,e)}))}}),[e]),u},exports.useAspect=function(e,t,r=1){const n=o.useThree((e=>e.viewport)),a=t*(n.aspect>e/t?n.width/e:n.height/t);return[e*(n.aspect>e/t?n.width/e:n.height/t)*r,a*r,1]},exports.useBVH=function(e,t){D.useEffect((()=>{if(e.current){e.current.raycast=m.acceleratedRaycast;const r=e.current.geometry;return r.computeBoundsTree=m.computeBoundsTree,r.disposeBoundsTree=m.disposeBoundsTree,r.computeBoundsTree(t),()=>{r.boundsTree&&r.disposeBoundsTree()}}}),[e,t])},exports.useBounds=function(){return D.useContext(tt)},exports.useCamera=Ee,exports.useContextBridge=function(...e){const t=D.useRef([]);return t.current=e.map((e=>D.useContext(e))),D.useMemo((()=>({children:r})=>e.reduceRight(((e,r,n)=>D.createElement(r.Provider,{value:t.current[n],children:e})),r)),[])},exports.useCubeTexture=Ge,exports.useCursor=function(e,t="pointer",r="auto"){D.useEffect((()=>{if(e)return document.body.style.cursor=t,()=>{document.body.style.cursor=r}}),[e])},exports.useDetectGPU=function(e){return D.useState(null),c.useAsset((()=>C.getGPUTier(e)),"useDetectGPU")},exports.useEdgeSplit=function(e,t=!0){const r=D.useRef(),n=D.useRef(),o=D.useRef();return D.useEffect((()=>{!n.current&&r.current&&(n.current=r.current.geometry.clone(),o.current=new i.EdgeSplitModifier)}),[]),D.useEffect((()=>{if(n.current&&r.current&&o.current){const a=o.current.modify(n.current,e,t);a.computeVertexNormals(),r.current.geometry=a}}),[e,t]),r},exports.useFBO=rt,exports.useFBX=Re,exports.useGLTF=We,exports.useGizmoContext=_e,exports.useHelper=function(e,t,...r){const n=D.useRef(),a=o.useThree((e=>e.scene));return D.useEffect((()=>(t&&e.current&&(n.current=new t(e.current,...r),n.current&&a.add(n.current)),()=>{n.current&&a.remove(n.current)})),[a,t,e,r]),o.useFrame((()=>{var e;null!=(e=n.current)&&e.update&&n.current.update()})),n},exports.useIntersect=function(e){const t=D.useRef(null),r=D.useRef(!1),n=D.useRef(!1);return D.useEffect((()=>{const a=t.current;if(a){const t=o.addEffect((()=>(r.current=!1,!0))),s=a.onBeforeRender;a.onBeforeRender=()=>r.current=!0;const i=o.addAfterEffect((()=>(r.current!==n.current&&e(n.current=r.current),!0)));return()=>{a.onBeforeRender=s,t(),i()}}}),[]),t},exports.useMatcapTexture=function(e=0,t=1024){const r=D.useMemo((()=>Object.keys(Ut).length),[]),n=`https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d/${t}/${`${D.useMemo((()=>"string"==typeof e?e:"number"==typeof e?Ut[e]:null),[e])||Gt}${function(e){switch(e){case 64:return"-64px";case 128:return"-128px";case 256:return"-256px";case 512:return"-512px";default:return""}}(t)}.png`}`;return[Y(n),n,r]},exports.useNormalTexture=function(e=0,t={}){const{repeat:r=[1,1],anisotropy:o=1,offset:a=[0,0]}=t,s=D.useMemo((()=>Object.keys(Rt).length),[]),i=`https://rawcdn.githack.com/emmelleppi/normal-maps/f24c810fc1d86b5b1e5dfea914b668f70b5f2923/normals/${Rt[e]||qt}`,u=Y(i);return D.useEffect((()=>{u&&(u.wrapS=u.wrapT=n.RepeatWrapping,u.repeat=new n.Vector2(r[0],r[1]),u.offset=new n.Vector2(a[0],a[1]),u.anisotropy=o)}),[u,o,r,a]),[u,i,s]},exports.useProgress=Q,exports.useScroll=I,exports.useSimplification=function(e){const t=D.useRef(),r=D.useRef(),n=D.useRef();return D.useEffect((()=>{r.current||(r.current=t.current.geometry.clone(),n.current=new i.SimplifyModifier)}),[]),D.useEffect((()=>{if(r.current&&t.current){const o=r.current,a=Math.floor(o.attributes.position.count*e);t.current.geometry=n.current.modify(o,a)}}),[e]),t},exports.useTessellation=function(e=3,t){const r=D.useRef(),n=D.useRef(),o=D.useRef();return D.useEffect((()=>{n.current||(n.current=r.current.geometry.clone(),o.current=new i.TessellateModifier(parseInt(t),e))}),[t,e]),D.useEffect((()=>{o.current.maxEdgeLength=t}),[t]),D.useEffect((()=>{if(n.current&&r.current){const e=o.current.modify(n.current);r.current.geometry=e}}),[t,e]),r},exports.useTexture=Y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("react-dom"),n=require("three"),o=require("@react-three/fiber"),a=require("zustand"),s=require("react-merge-refs"),i=require("three-stdlib"),u=require("troika-three-text"),c=require("use-asset"),l=require("lodash.omit"),A=require("lodash.pick"),f=require("three/examples/js/libs/stats.min"),C=require("detect-gpu"),m=require("three-mesh-bvh"),p=require("react-composer");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function v(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var B=d(e),D=v(t),E=v(r),h=v(n),_=d(a),x=d(s),g=d(l),F=d(A),w=d(f),y=d(p);const P=new n.Vector3,b=new n.Vector3,z=new n.Vector3;function M(e,t,r){const n=P.setFromMatrixPosition(e.matrixWorld);n.project(t);const o=r.width/2,a=r.height/2;return[n.x*o+o,-n.y*a+a]}const L=e=>Math.abs(e)<1e-10?0:e;function S(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=L(t[r]*e.elements[r])+(15!==r?",":")");return r+n}const H=(T=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>S(e,T));var T;const O=(e,t)=>{return S(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r},j=D.forwardRef((({children:e,eps:t=.001,style:r,className:a,prepend:s,center:i,fullscreen:u,portal:c,distanceFactor:l,sprite:A=!1,transform:f=!1,occlude:C,onOcclude:m,zIndexRange:p=[16777271,0],calculatePosition:d=M,as:v="div",pointerEvents:h="auto",..._},x)=>{var g;const F=o.useThree((({gl:e})=>e)),w=o.useThree((({camera:e})=>e)),y=o.useThree((({scene:e})=>e)),S=o.useThree((({size:e})=>e)),T=o.useThree((({raycaster:e})=>e)),[j]=D.useState((()=>document.createElement(v))),X=D.useRef(null),Q=D.useRef(0),V=D.useRef([0,0]),k=D.useRef(null),N=D.useRef(null),I=null!==(g=null==c?void 0:c.current)&&void 0!==g?g:F.domElement.parentNode;D.useEffect((()=>{if(X.current){if(y.updateMatrixWorld(),f)j.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=d(X.current,w,S);j.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return I&&(s?I.prepend(j):I.appendChild(j)),()=>{I&&I.removeChild(j),E.unmountComponentAtNode(j)}}}),[I,f]);const U=D.useMemo((()=>f?{position:"absolute",top:0,left:0,width:S.width,height:S.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:i?"translate3d(-50%,-50%,0)":"none",...u&&{top:-S.height/2,left:-S.width/2,width:S.width,height:S.height},...r}),[r,i,u,S,f]),G=D.useMemo((()=>({position:"absolute",pointerEvents:h})),[h]);D.useLayoutEffect((()=>{f?E.render(D.createElement("div",{ref:k,style:U},D.createElement("div",{ref:N,style:G},D.createElement("div",{ref:x,className:a,style:r,children:e}))),j):E.render(D.createElement("div",{ref:x,style:U,className:a,children:e}),j)}));const R=D.useRef(!0);return o.useFrame((()=>{if(X.current){w.updateMatrixWorld(),X.current.updateWorldMatrix(!0,!1);const e=f?V.current:d(X.current,w,S);if(f||Math.abs(Q.current-w.zoom)>t||Math.abs(V.current[0]-e[0])>t||Math.abs(V.current[1]-e[1])>t){const t=function(e,t){const r=P.setFromMatrixPosition(e.matrixWorld),n=b.setFromMatrixPosition(t.matrixWorld),o=r.sub(n),a=t.getWorldDirection(z);return o.angleTo(a)>Math.PI/2}(X.current,w);let r=!1;"boolean"==typeof C?!0===C&&(r=[y]):Array.isArray(C)&&(r=C.map((e=>e.current)));const o=R.current;if(r){const e=function(e,t,r,n){const o=P.setFromMatrixPosition(e.matrixWorld),a=o.clone();a.project(t),r.setFromCamera(a,t);const s=r.intersectObjects(n,!0);if(s.length){const e=s[0].distance;return o.distanceTo(r.ray.origin)<e}return!0}(X.current,w,T,r);R.current=e&&!t}else R.current=!t;if(o!==R.current&&(m?m(!R.current):j.style.display=R.current?"block":"none"),j.style.zIndex=`${function(e,t,r){if(t instanceof n.PerspectiveCamera||t instanceof n.OrthographicCamera){const n=P.setFromMatrixPosition(e.matrixWorld),o=b.setFromMatrixPosition(t.matrixWorld),a=n.distanceTo(o),s=(r[1]-r[0])/(t.far-t.near),i=r[1]-s*t.far;return Math.round(s*a+i)}}(X.current,w,p)}`,f){const[e,t]=[S.width/2,S.height/2],r=w.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:o,left:a,bottom:s,right:i}=w,u=H(w.matrixWorldInverse),c=n?`scale(${r})translate(${L(-(i+a)/2)}px,${L((o+s)/2)}px)`:`translateZ(${r}px)`;let f=X.current.matrixWorld;A&&(f=w.matrixWorldInverse.clone().transpose().copyPosition(f).scale(X.current.scale),f.elements[3]=f.elements[7]=f.elements[11]=0,f.elements[15]=1),j.style.width=S.width+"px",j.style.height=S.height+"px",j.style.perspective=n?"":`${r}px`,k.current&&N.current&&(k.current.style.transform=`${c}${u}translate(${e}px,${t}px)`,N.current.style.transform=O(f,1/((l||10)/400)))}else{const t=void 0===l?1:function(e,t){if(t instanceof n.OrthographicCamera)return t.zoom;if(t instanceof n.PerspectiveCamera){const r=P.setFromMatrixPosition(e.matrixWorld),n=b.setFromMatrixPosition(t.matrixWorld),o=t.fov*Math.PI/180,a=r.distanceTo(n);return 1/(2*Math.tan(o/2)*a)}return 1}(X.current,w)*l;j.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}V.current=e,Q.current=w.zoom}}})),D.createElement("group",B.default({},_,{ref:X}))}));let X=0;const Q=_.default((e=>(n.DefaultLoadingManager.onStart=(t,r,n)=>{e({active:!0,item:t,loaded:r,total:n,progress:(r-X)/(n-X)*100})},n.DefaultLoadingManager.onLoad=()=>{e({active:!1})},n.DefaultLoadingManager.onError=t=>e((e=>({errors:[...e.errors,t]}))),n.DefaultLoadingManager.onProgress=(t,r,n)=>{r===n&&(X=n),e({active:!0,item:t,loaded:r,total:n,progress:(r-X)/(n-X)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0}))),V=e=>`Loading ${e.toFixed(2)}%`;const k={container:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity 300ms ease",zIndex:1e3},inner:{width:100,height:3,background:"#272727",textAlign:"center"},bar:{height:3,width:"100%",background:"white",transition:"transform 200ms",transformOrigin:"left center"},data:{display:"inline-block",position:"relative",fontVariantNumeric:"tabular-nums",marginTop:"0.8em",color:"#f0f0f0",fontSize:"0.6em",fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, Roboto, Ubuntu, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',whiteSpace:"nowrap"}},N=D.createContext(null);function I(){return D.useContext(N)}const U=D.forwardRef((({children:e},t)=>{const r=D.useRef(null),n=I(),{width:a,height:s}=o.useThree((e=>e.viewport));return o.useFrame((()=>{r.current.position.x=n.horizontal?-a*(n.pages-1)*n.offset:0,r.current.position.y=n.horizontal?0:s*(n.pages-1)*n.offset})),D.createElement("group",{ref:x.default([t,r])},e)})),G=D.forwardRef((({children:e,style:t,...r},n)=>{const a=I(),s=D.useRef(null),{width:i,height:u}=o.useThree((e=>e.size)),c=D.useContext(o.context);return o.useFrame((()=>{a.delta>a.eps&&(s.current.style.transform=`translate3d(${a.horizontal?-i*(a.pages-1)*a.offset:0}px,${a.horizontal?0:u*(a.pages-1)*-a.offset}px,0)`)})),E.render(D.createElement("div",B.default({ref:x.default([n,s]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},r),D.createElement(N.Provider,{value:a},D.createElement(o.context.Provider,{value:c},e))),a.fixed),null})),R=D.forwardRef((({html:e,...t},r)=>{const n=e?G:U;return D.createElement(n,B.default({ref:r},t))})),q=D.forwardRef((function({follow:e=!0,lockX:t=!1,lockY:r=!1,lockZ:n=!1,...a},s){const i=D.useRef();return o.useFrame((({camera:o})=>{if(!e||!i.current)return;const a=i.current.rotation.clone();i.current.quaternion.copy(o.quaternion),t&&(i.current.rotation.x=a.x),r&&(i.current.rotation.y=a.y),n&&(i.current.rotation.z=a.z)})),D.createElement("group",B.default({ref:x.default([i,s])},a))})),W=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function Y(e){const r=o.useThree((e=>e.gl)),a=o.useLoader(n.TextureLoader,W(e)?Object.values(e):e);if(t.useEffect((()=>{(Array.isArray(a)?a:[a]).forEach(r.initTexture)}),[r,a]),W(e)){const t=Object.keys(e),r={};return t.forEach((e=>Object.assign(r,{[e]:a[t.indexOf(e)]}))),r}return a}Y.preload=e=>o.useLoader.preload(n.TextureLoader,e),Y.clear=e=>o.useLoader.clear(n.TextureLoader,e);const K=D.forwardRef((function({points:e,color:t="black",vertexColors:r,lineWidth:o,dashed:a,...s},u){const[c]=D.useState((()=>new i.Line2)),[l]=D.useState((()=>new i.LineMaterial)),[A]=D.useState((()=>new n.Vector2(512,512))),f=D.useMemo((()=>{const t=new i.LineGeometry,o=e.map((e=>e instanceof n.Vector3?e.toArray():e));if(t.setPositions(o.flat()),r){const e=r.map((e=>e instanceof n.Color?e.toArray():e));t.setColors(e.flat())}return t}),[e,r]);return D.useLayoutEffect((()=>{c.computeLineDistances()}),[e,c]),D.useLayoutEffect((()=>{a?l.defines.USE_DASH="":delete l.defines.USE_DASH,l.needsUpdate=!0}),[a,l]),D.useEffect((()=>()=>f.dispose()),[f]),D.createElement("primitive",B.default({object:c,ref:u},s),D.createElement("primitive",{object:f,attach:"geometry"}),D.createElement("primitive",B.default({object:l,attach:"material",color:t,vertexColors:Boolean(r),resolution:A,linewidth:o,dashed:a},s)))})),Z=D.forwardRef((function({start:e,end:t,mid:r,segments:o=20,...a},s){const i=D.useMemo((()=>{const a=e instanceof n.Vector3?e:new n.Vector3(...e),s=t instanceof n.Vector3?t:new n.Vector3(...t),i=r||a.clone().add(s.clone().sub(a)).add(new n.Vector3(0,a.y-s.y,0)),u=i instanceof n.Vector3?i:new n.Vector3(...i);return new n.QuadraticBezierCurve3(a,u,s).getPoints(o)}),[e,t,r,o]);return D.createElement(K,B.default({ref:s,points:i},a))})),J=D.forwardRef((function({start:e,end:t,midA:r,midB:o,segments:a=20,...s},i){const u=D.useMemo((()=>{const s=e instanceof n.Vector3?e:new n.Vector3(...e),i=t instanceof n.Vector3?t:new n.Vector3(...t),u=r instanceof n.Vector3?r:new n.Vector3(...r),c=o instanceof n.Vector3?o:new n.Vector3(...o);return new n.CubicBezierCurve3(s,u,c,i).getPoints(a)}),[e,t,r,o,a]);return D.createElement(K,B.default({ref:i,points:u},s))})),$=D.forwardRef((({url:e,distance:t=1,loop:r=!0,autoplay:a,...s},i)=>{const u=D.useRef(),c=o.useThree((({camera:e})=>e)),[l]=D.useState((()=>new n.AudioListener)),A=o.useLoader(n.AudioLoader,e);return D.useEffect((()=>{const e=u.current;e&&(e.setBuffer(A),e.setRefDistance(t),e.setLoop(r),a&&!e.isPlaying&&e.play())}),[A,c,t,r]),D.useEffect((()=>{const e=u.current;return c.add(l),()=>{c.remove(l),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),D.createElement("positionalAudio",B.default({ref:x.default([u,i]),args:[l]},s))})),ee=D.forwardRef((({anchorX:e="center",anchorY:t="middle",children:r,onSync:n,...a},s)=>{const i=o.useThree((({invalidate:e})=>e)),[c]=D.useState((()=>new u.Text)),[l,A]=D.useMemo((()=>{const e=[];let t="";return D.Children.forEach(r,(r=>{"string"==typeof r||"number"==typeof r?t+=r:e.push(r)})),[e,t]}),[r]);return D.useLayoutEffect((()=>{c.sync((()=>{i(),n&&n(c)}))})),D.useEffect((()=>()=>c.dispose()),[c]),D.createElement("primitive",B.default({object:c,ref:s,text:A,anchorX:e,anchorY:t},a),l)})),te={sunset:"venice_sunset_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",night:"dikhololo_night_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr",forest:"forest_slope_1k.hdr",apartment:"lebombo_1k.hdr",studio:"studio_small_03_1k.hdr",city:"potsdamer_platz_1k.hdr",park:"rooitou_park_1k.hdr",lobby:"st_fagans_interior_1k.hdr"};function re({background:e=!1,files:t=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:r="",preset:a,scene:s,extensions:u}){if(a){if(!(a in te))throw new Error("Preset must be one of: "+Object.keys(te).join(", "));t=te[a],r="https://rawcdn.githack.com/pmndrs/drei-assets/aa3600359ba664d546d05821bcbca42013587df2/hdri/"}const l=o.useThree((({scene:e})=>e)),A=o.useThree((({gl:e})=>e)),f=Array.isArray(t),C=f?n.CubeTextureLoader:i.RGBELoader,m=o.useLoader(C,f?[t]:t,(e=>{e.setPath(r),u&&u(e)})),p=f?m[0]:m,d=c.useAsset((()=>new Promise((e=>{const t=new n.PMREMGenerator(A),r=function(e,t,r){return r?(t.compileEquirectangularShader(),t.fromCubemap(e).texture):t.fromEquirectangular(e).texture}(p,t,f);t.dispose(),e(r)}))),p);return D.useLayoutEffect((()=>{const t=s?s.background:l.background,r=s?s.environment:l.environment;return s?(s.environment=d,e&&(s.background=d)):(l.environment=d,e&&(l.background=d)),()=>{s?(s.environment=r,s.background=t):(l.environment=r,l.background=t),c.useAsset.clear(p),d.dispose()}}),[d,e,s]),null}o.extend({EffectComposer:i.EffectComposer,RenderPass:i.RenderPass,ShaderPass:i.ShaderPass});const ne=()=>{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}},oe=D.forwardRef((({children:e,multisamping:t=8,renderIndex:r=1,disableGamma:a=!1,disableRenderPass:s=!1,...u},c)=>{const l=D.useRef(),A=o.useThree((({scene:e})=>e)),f=o.useThree((({camera:e})=>e)),C=o.useThree((({gl:e})=>e)),m=o.useThree((({size:e})=>e)),[p]=D.useState((()=>{if(ne()&&t>0){const e=new n.WebGLMultisampleRenderTarget(m.width,m.height,{format:n.RGBAFormat,encoding:n.sRGBEncoding});return e.samples=8,e}}));return D.useEffect((()=>{var e,t;null==(e=l.current)||e.setSize(m.width,m.height),null==(t=l.current)||t.setPixelRatio(C.getPixelRatio())}),[C,m]),o.useFrame((()=>{var e;return null==(e=l.current)?void 0:e.render()}),r),D.createElement("effectComposer",B.default({ref:x.default([c,l]),args:[C,p]},u),!s&&D.createElement("renderPass",{attachArray:"passes",args:[A,f]}),!a&&D.createElement("shaderPass",{attachArray:"passes",args:[i.GammaCorrectionShader]}),e)}));function ae(e,t,r,n){return class extends h.ShaderMaterial{constructor(){const o=Object.entries(e);super({uniforms:o.reduce(((e,[t,r])=>({...e,...h.UniformsUtils.clone({[t]:{value:r}})})),{}),vertexShader:t,fragmentShader:r}),o.forEach((([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t}))),n&&n(this)}}}const se=ae({color:new h.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);\n }\n"),ie=D.forwardRef((({children:e,color:t,segments:r=1,scale:n=1,zoom:a=1,grayscale:s=0,url:i,...u},c)=>{o.extend({ImageMaterial:se});const l=Y(i),A=Array.isArray(n)?[n[0],n[1]]:[n,n],f=[l.image.width,l.image.height];return D.createElement("mesh",B.default({ref:c,scale:n},u),D.createElement("planeGeometry",{args:[1,1,r,r]}),D.createElement("imageMaterial",{color:t,map:l,zoom:a,grayscale:s,scale:A,imageBounds:f}),e)})),ue=D.forwardRef((({makeDefault:e,manual:t,...r},n)=>{const a=o.useThree((({set:e})=>e)),s=o.useThree((({camera:e})=>e)),i=o.useThree((({size:e})=>e)),u=D.useRef();return D.useLayoutEffect((()=>{u.current&&!t&&u.current.updateProjectionMatrix()}),[i,r]),D.useLayoutEffect((()=>{if(e&&u.current){const e=s;return a((()=>({camera:u.current}))),()=>a((()=>({camera:e})))}}),[s,u,e,a]),D.createElement("orthographicCamera",B.default({left:i.width/-2,right:i.width/2,top:i.height/2,bottom:i.height/-2,ref:x.default([u,n])},r))})),ce=D.forwardRef((({makeDefault:e,manual:t,...r},n)=>{const a=o.useThree((({set:e})=>e)),s=o.useThree((({camera:e})=>e)),i=o.useThree((({size:e})=>e)),u=D.useRef();return D.useLayoutEffect((()=>{const{current:e}=u;e&&!t&&(e.aspect=i.width/i.height,e.updateProjectionMatrix())}),[i,r]),D.useLayoutEffect((()=>{if(e&&u.current){const e=s;return a((()=>({camera:u.current}))),()=>a((()=>({camera:e})))}}),[s,u,e,a]),D.createElement("perspectiveCamera",B.default({ref:x.default([u,n])},r))})),le=D.forwardRef((({intensity:e=1,decay:t,decayRate:r=.65,maxYaw:n=.1,maxPitch:a=.1,maxRoll:s=.1,yawFrequency:u=1,pitchFrequency:c=1,rollFrequency:l=1,controls:A},f)=>{const C=o.useThree((e=>e.camera)),m=o.useThree((e=>e.controls)),p=D.useRef(e),d=D.useRef(C.rotation.clone()),[v]=D.useState((()=>new i.SimplexNoise)),[B]=D.useState((()=>new i.SimplexNoise)),[E]=D.useState((()=>new i.SimplexNoise)),h=()=>{(p.current<0||p.current>1)&&(p.current=p.current<0?0:1)};return D.useImperativeHandle(f,(()=>({getIntensity:()=>p.current,setIntensity:e=>{p.current=e,h()}})),[]),D.useEffect((()=>{const e=m||(null==A?void 0:A.current),t=()=>{d.current=C.rotation.clone()};return null==e||e.addEventListener("change",t),()=>{null==e||e.removeEventListener("change",t)}}),[A,m]),o.useFrame((({clock:e},o)=>{const i=Math.pow(p.current,2),A=n*i*v.noise(e.elapsedTime*u,1),f=a*i*B.noise(e.elapsedTime*c,1),m=s*i*E.noise(e.elapsedTime*l,1);C.rotation.set(d.current.x+f,d.current.y+A,d.current.z+m),t&&p.current>0&&(p.current-=r*o,h())})),null}));const Ae=D.forwardRef(((e,t)=>{const{camera:r,onChange:n,...a}=e,s=o.useThree((({camera:e})=>e)),u=o.useThree((({invalidate:e})=>e)),c=r||s,[l]=D.useState((()=>new i.DeviceOrientationControls(c)));return D.useEffect((()=>{const e=e=>{u(),n&&n(e)};return null==l||null==l.addEventListener||l.addEventListener("change",e),()=>null==l||null==l.removeEventListener?void 0:l.removeEventListener("change",e)}),[n,l,u]),o.useFrame((()=>null==l?void 0:l.update())),D.useEffect((()=>{const e=l;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[l]),l?D.createElement("primitive",B.default({ref:t,dispose:void 0,object:l},a)):null})),fe=D.forwardRef(((e,t)=>{const{onChange:r,...n}=e,a=o.useThree((({invalidate:e})=>e)),s=o.useThree((({camera:e})=>e)),u=o.useThree((({gl:e})=>e)),[c]=D.useState((()=>new i.FlyControls(s,u.domElement)));return D.useEffect((()=>{const e=e=>{a(),r&&r(e)};return null==c||null==c.addEventListener||c.addEventListener("change",e),()=>null==c||null==c.removeEventListener?void 0:c.removeEventListener("change",e)}),[r,c,a]),o.useFrame(((e,t)=>null==c?void 0:c.update(t))),c?D.createElement("primitive",B.default({ref:t,dispose:void 0,object:c},n)):null})),Ce=D.forwardRef(((e={enableDamping:!0},t)=>{const{camera:r,onChange:n,onStart:a,onEnd:s,...u}=e,c=o.useThree((({invalidate:e})=>e)),l=o.useThree((({camera:e})=>e)),A=o.useThree((({gl:e})=>e.domElement)),f=r||l,C=D.useMemo((()=>new i.MapControls(f)),[f]);return D.useEffect((()=>{C.connect(A);const e=e=>{c(),n&&n(e)};return C.addEventListener("change",e),a&&C.addEventListener("start",a),s&&C.addEventListener("end",s),()=>{C.dispose(),C.removeEventListener("change",e),a&&C.removeEventListener("start",a),s&&C.removeEventListener("end",s)}}),[n,a,s,C,c,A]),o.useFrame((()=>C.update())),D.createElement("primitive",B.default({ref:t,dispose:void 0,object:C,enableDamping:!0},u))})),me=D.forwardRef((({makeDefault:e,camera:t,regress:r,domElement:n,enableDamping:a=!0,onChange:s,onStart:u,onEnd:c,...l},A)=>{const f=o.useThree((({invalidate:e})=>e)),C=o.useThree((({camera:e})=>e)),m=o.useThree((({gl:e})=>e)),p=o.useThree((({events:e})=>e)),d=o.useThree((({set:e})=>e)),v=o.useThree((({get:e})=>e)),E=o.useThree((({performance:e})=>e)),h=t||C,_=n||("boolean"!=typeof p.connected?p.connected:m.domElement),x=D.useMemo((()=>new i.OrbitControls(h)),[h]);return o.useFrame((()=>{x.enabled&&x.update()})),D.useEffect((()=>{const e=e=>{f(),r&&E.regress(),s&&s(e)};return x.connect(_),x.addEventListener("change",e),u&&x.addEventListener("start",u),c&&x.addEventListener("end",c),()=>{x.removeEventListener("change",e),u&&x.removeEventListener("start",u),c&&x.removeEventListener("end",c),x.dispose()}}),[_,s,u,c,r,x,f]),D.useEffect((()=>{if(e){const e=v().controls;return d({controls:x}),()=>d({controls:e})}}),[e,x]),D.createElement("primitive",B.default({ref:A,object:x,enableDamping:a},l))})),pe=D.forwardRef((({makeDefault:e,camera:t,domElement:r,regress:n,onChange:a,onStart:s,onEnd:u,...c},l)=>{const{invalidate:A,camera:f,gl:C,events:m,set:p,get:d,performance:v,viewport:E}=o.useThree(),h=t||f,_=r||("boolean"!=typeof m.connected?m.connected:C.domElement),x=D.useMemo((()=>new i.TrackballControls(h)),[h]);return o.useFrame((()=>{x.enabled&&x.update()})),D.useEffect((()=>{const e=e=>{A(),n&&v.regress(),a&&a(e)};return x.connect(_),x.addEventListener("change",e),s&&x.addEventListener("start",s),u&&x.addEventListener("end",u),()=>{x.removeEventListener("change",e),s&&x.removeEventListener("start",s),u&&x.removeEventListener("end",u),x.dispose()}}),[_,a,s,u,n,x,A]),D.useEffect((()=>{x.handleResize()}),[E]),D.useEffect((()=>{if(e){const e=d().controls;return p({controls:x}),()=>p({controls:e})}}),[e,x]),D.createElement("primitive",B.default({ref:l,object:x},c))})),de=D.forwardRef((({makeDefault:e,camera:t,regress:r,domElement:n,onChange:a,onStart:s,onEnd:u,...c},l)=>{const A=o.useThree((({invalidate:e})=>e)),f=o.useThree((({camera:e})=>e)),C=o.useThree((({gl:e})=>e)),m=o.useThree((({events:e})=>e)),p=o.useThree((({set:e})=>e)),d=o.useThree((({get:e})=>e)),v=o.useThree((({performance:e})=>e)),E=t||f,h=n||("boolean"!=typeof m.connected?m.connected:C.domElement),_=D.useMemo((()=>new i.ArcballControls(E)),[E]);return o.useFrame((()=>{_.enabled&&_.update()})),D.useEffect((()=>{const e=e=>{A(),r&&v.regress(),a&&a(e)};return _.connect(h),_.addEventListener("change",e),s&&_.addEventListener("start",s),u&&_.addEventListener("end",u),()=>{_.removeEventListener("change",e),s&&_.removeEventListener("start",s),u&&_.removeEventListener("end",u),_.dispose()}}),[h,a,s,u,r,_,A]),D.useEffect((()=>{if(e){const e=d().controls;return p({controls:_}),()=>p({controls:e})}}),[e,_]),D.createElement("primitive",B.default({ref:l,object:_},c))})),ve=D.forwardRef((({children:e,onChange:t,onMouseDown:r,onMouseUp:n,onObjectChange:a,object:s,...u},c)=>{const l=["enabled","axis","mode","translationSnap","rotationSnap","scaleSnap","space","size","showX","showY","showZ"],{camera:A,...f}=u,C=F.default(f,l),m=g.default(f,l),p=o.useThree((e=>e.controls)),d=o.useThree((({gl:e})=>e)),v=o.useThree((({camera:e})=>e)),E=o.useThree((({invalidate:e})=>e)),_=A||v,[x]=D.useState((()=>new i.TransformControls(_,d.domElement))),w=D.useRef();return D.useLayoutEffect((()=>{s?null==x||x.attach(s instanceof h.Object3D?s:s.current):null==x||x.attach(w.current)}),[s,e,x]),D.useEffect((()=>{if(p){const e=e=>p.enabled=!e.value;return x.addEventListener("dragging-changed",e),()=>x.removeEventListener("dragging-changed",e)}}),[x,p]),D.useEffect((()=>{const e=e=>{E(),t&&t(e)};return null==x||null==x.addEventListener||x.addEventListener("change",e),r&&(null==x||null==x.addEventListener||x.addEventListener("mouseDown",r)),n&&(null==x||null==x.addEventListener||x.addEventListener("mouseUp",n)),a&&(null==x||null==x.addEventListener||x.addEventListener("objectChange",a)),()=>{null==x||null==x.removeEventListener||x.removeEventListener("change",e),r&&(null==x||null==x.removeEventListener||x.removeEventListener("mouseDown",r)),n&&(null==x||null==x.removeEventListener||x.removeEventListener("mouseUp",n)),a&&(null==x||null==x.removeEventListener||x.removeEventListener("objectChange",a))}}),[t,r,n,a,x,E]),x?D.createElement(D.Fragment,null,D.createElement("primitive",B.default({ref:c,dispose:void 0,object:x},C)),D.createElement("group",B.default({ref:w},m),e)):null})),Be=D.forwardRef((({selector:e,onChange:t,onLock:r,onUnlock:n,...a},s)=>{const{camera:u,...c}=a,l=o.useThree((({gl:e})=>e)),A=o.useThree((({camera:e})=>e)),f=o.useThree((({invalidate:e})=>e)),C=u||A,[m]=D.useState((()=>new i.PointerLockControls(C,l.domElement)));return D.useEffect((()=>{const e=e=>{f(),t&&t(e)};return null==m||null==m.addEventListener||m.addEventListener("change",e),r&&(null==m||null==m.addEventListener||m.addEventListener("lock",r)),n&&(null==m||null==m.addEventListener||m.addEventListener("unlock",n)),()=>{null==m||null==m.removeEventListener||m.removeEventListener("change",e),r&&(null==m||null==m.addEventListener||m.addEventListener("lock",r)),n&&(null==m||null==m.addEventListener||m.addEventListener("unlock",n))}}),[t,r,n,m,f]),D.useEffect((()=>{const t=()=>null==m?void 0:m.lock(),r=e?Array.from(document.querySelectorAll(e)):[document];return r.forEach((e=>e&&e.addEventListener("click",t))),()=>{r.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[m,e]),m?D.createElement("primitive",B.default({ref:s,dispose:void 0,object:m},c)):null})),De=D.forwardRef(((e,t)=>{const r=o.useThree((({camera:e})=>e)),n=o.useThree((({gl:e})=>e)),[a]=D.useState((()=>new i.FirstPersonControls(r,n.domElement)));return o.useFrame(((e,t)=>{a.update(t)})),a?D.createElement("primitive",B.default({ref:t,object:a},e)):null}));function Ee(e,t){const r=o.useThree((e=>e.mouse)),[a]=D.useState((()=>{const a=new n.Raycaster;return t&&o.applyProps(a,t,{}),function(t,o){a.setFromCamera(r,e instanceof n.Camera?e:e.current);const s=this.constructor.prototype.raycast.bind(this);s&&s(a,o)}}));return a}const he=D.createContext({}),_e=()=>D.useContext(he),xe=2*Math.PI,ge=new n.Object3D,Fe=new n.Matrix4,[we,ye]=[new n.Quaternion,new n.Quaternion],Pe=new n.Vector3,be=new n.Vector3,ze="#f0f0f0",Me="#999",Le="black",Se="black",He=["Right","Left","Top","Bottom","Front","Back"],Te=e=>new n.Vector3(...e).multiplyScalar(.38),Oe=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(Te),je=[.25,.25,.25],Xe=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(Te),Qe=Xe.map((e=>e.toArray().map((e=>0==e?.5:.25)))),Ve=({hover:e,index:t,font:r="20px Inter var, Arial, sans-serif",faces:o=He,color:a=ze,hoverColor:s=Me,textColor:i=Le,strokeColor:u=Se,opacity:c=1})=>{const l=D.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const s=e.getContext("2d");return s.fillStyle=a,s.fillRect(0,0,e.width,e.height),s.strokeStyle=u,s.strokeRect(0,0,e.width,e.height),s.font=r,s.textAlign="center",s.fillStyle=i,s.fillText(o[t].toUpperCase(),64,76),new n.CanvasTexture(e)}),[t,r,a,i,u]);return D.createElement("meshLambertMaterial",{map:l,attachArray:"material",color:e?s:"white",transparent:!0,opacity:c})},ke=e=>{const{tweenCamera:t,raycast:r}=_e(),[n,o]=D.useState(null);return D.createElement("mesh",{raycast:r,onPointerOut:e=>{e.stopPropagation(),o(null)},onPointerMove:e=>{e.stopPropagation(),o(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,r)=>D.createElement(Ve,B.default({key:r,index:r,hover:n===r},e)))),D.createElement("boxGeometry",null))},Ne=({onClick:e,dimensions:t,position:r,hoverColor:n=Me})=>{const{tweenCamera:o,raycast:a}=_e(),[s,i]=D.useState(!1);return D.createElement("mesh",{scale:1.01,position:r,raycast:a,onPointerOver:e=>{e.stopPropagation(),i(!0)},onPointerOut:e=>{e.stopPropagation(),i(!1)},onClick:e||(e=>{e.stopPropagation(),o(r)})},D.createElement("meshBasicMaterial",{color:s?n:"white",transparent:!0,opacity:.6,visible:s}),D.createElement("boxGeometry",{args:t}))};function Ie({color:e,rotation:t}){return D.createElement("group",{rotation:t},D.createElement("mesh",{position:[.4,0,0]},D.createElement("boxGeometry",{args:[.8,.05,.05]}),D.createElement("meshBasicMaterial",{color:e,toneMapped:!1})))}function Ue({onClick:e,font:t,disabled:r,arcStyle:o,label:a,labelColor:s,...i}){const u=D.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const r=e.getContext("2d");return r.beginPath(),r.arc(32,32,16,0,2*Math.PI),r.closePath(),r.fillStyle=o,r.fill(),a&&(r.font=t,r.textAlign="center",r.fillStyle=s,r.fillText(a,32,41)),new n.CanvasTexture(e)}),[o,a,s,t]),[c,l]=D.useState(!1),A=(a?1:.75)*(c?1.2:1);return D.createElement("sprite",B.default({scale:A,onPointerOver:r?void 0:e=>{e.stopPropagation(),l(!0)},onPointerOut:r?void 0:e||(e=>{e.stopPropagation(),l(!1)})},i),D.createElement("spriteMaterial",{map:u,alphaTest:.3,opacity:a?1:.75,toneMapped:!1}))}function Ge(e,{path:t}){const[r]=o.useLoader(n.CubeTextureLoader,[e],(e=>e.setPath(t)));return r}function Re(e){return o.useLoader(i.FBXLoader,e)}Ge.preload=(e,{path:t})=>o.useLoader.preload(n.CubeTextureLoader,[e],(e=>e.setPath(t))),Re.preload=e=>o.useLoader.preload(i.FBXLoader,e),Re.clear=e=>o.useLoader.clear(i.FBXLoader,e);let qe=null;function We(e,t,r){return n=>{r&&r(n),e&&(qe||(qe=new i.DRACOLoader),qe.setDecoderPath("string"==typeof e?e:"https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),n.setDRACOLoader(qe)),t&&n.setMeshoptDecoder("function"==typeof i.MeshoptDecoder?i.MeshoptDecoder():i.MeshoptDecoder)}}function Ye(e,t=!0,r=!0,n){return o.useLoader(i.GLTFLoader,e,We(t,r,n))}Ye.preload=(e,t=!0,r=!0,n)=>o.useLoader.preload(i.GLTFLoader,e,We(t,r,n)),Ye.clear=e=>o.useLoader.clear(i.GLTFLoader,e);class Ke extends n.MeshStandardMaterial{constructor(e={}){super(e),this._debug={value:0},this._tDepth={value:null},this._distortionMap={value:null},this._tDiffuse={value:null},this._u_mipmap_0={value:null},this._u_mipmap_1={value:null},this._u_mipmap_2={value:null},this._u_mipmap_3={value:null},this._u_mipmap_4={value:null},this._u_mipmap_5={value:null},this._u_mipmap_6={value:null},this._u_mipmap_7={value:null},this._u_mipmap_res_0={value:null},this._u_mipmap_res_1={value:null},this._u_mipmap_res_2={value:null},this._u_mipmap_res_3={value:null},this._u_mipmap_res_4={value:null},this._u_mipmap_res_5={value:null},this._u_mipmap_res_6={value:null},this._u_mipmap_res_7={value:null},this._textureMatrix={value:null},this._mirror={value:0},this._mixBlur={value:0},this._blurStrength={value:.5},this._minDepthThreshold={value:.9},this._maxDepthThreshold={value:1},this._depthScale={value:0},this._depthToBlurRatioBias={value:.25},this._distortion={value:1},this.setValues(e)}onBeforeCompile(e){var t;null!=(t=e.defines)&&t.USE_UV||(e.defines.USE_UV=""),e.uniforms.debug=this._debug,e.uniforms.tDiffuse=this._tDiffuse,e.uniforms.tDepth=this._tDepth,e.uniforms.distortionMap=this._distortionMap,e.uniforms.u_mipmap_0=this._u_mipmap_0,e.uniforms.u_mipmap_1=this._u_mipmap_1,e.uniforms.u_mipmap_2=this._u_mipmap_2,e.uniforms.u_mipmap_3=this._u_mipmap_3,e.uniforms.u_mipmap_4=this._u_mipmap_4,e.uniforms.u_mipmap_5=this._u_mipmap_5,e.uniforms.u_mipmap_6=this._u_mipmap_6,e.uniforms.u_mipmap_7=this._u_mipmap_7,e.uniforms.u_mipmap_res_0=this._u_mipmap_res_0,e.uniforms.u_mipmap_res_1=this._u_mipmap_res_1,e.uniforms.u_mipmap_res_2=this._u_mipmap_res_2,e.uniforms.u_mipmap_res_3=this._u_mipmap_res_3,e.uniforms.u_mipmap_res_4=this._u_mipmap_res_4,e.uniforms.u_mipmap_res_5=this._u_mipmap_res_5,e.uniforms.u_mipmap_res_6=this._u_mipmap_res_6,e.uniforms.u_mipmap_res_7=this._u_mipmap_res_7,e.uniforms.textureMatrix=this._textureMatrix,e.uniforms.mirror=this._mirror,e.uniforms.mixBlur=this._mixBlur,e.uniforms.mixStrength=this._blurStrength,e.uniforms.minDepthThreshold=this._minDepthThreshold,e.uniforms.maxDepthThreshold=this._maxDepthThreshold,e.uniforms.depthScale=this._depthScale,e.uniforms.depthToBlurRatioBias=this._depthToBlurRatioBias,e.uniforms.distortion=this._distortion,e.vertexShader=`\n uniform mat4 textureMatrix;\n varying vec4 my_vUv; \n ${e.vertexShader}`,e.vertexShader=e.vertexShader.replace("#include <project_vertex>","#include <project_vertex>\n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform int debug;\n uniform sampler2D tDiffuse;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform sampler2D u_mipmap_0;\n uniform sampler2D u_mipmap_1;\n uniform sampler2D u_mipmap_2;\n uniform sampler2D u_mipmap_3;\n uniform sampler2D u_mipmap_4;\n uniform sampler2D u_mipmap_5;\n uniform sampler2D u_mipmap_6;\n uniform sampler2D u_mipmap_7;\n uniform vec2 u_mipmap_res_0;\n uniform vec2 u_mipmap_res_1;\n uniform vec2 u_mipmap_res_2;\n uniform vec2 u_mipmap_res_3;\n uniform vec2 u_mipmap_res_4;\n uniform vec2 u_mipmap_res_5;\n uniform vec2 u_mipmap_res_6;\n uniform vec2 u_mipmap_res_7;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv; \n \n // from http://www.java-gaming.org/index.php?topic=35123.0\n vec4 cubic( float v ) {\n vec4 n = vec4( 1.0, 2.0, 3.0, 4.0 ) - v;\n vec4 s = n * n * n;\n float x = s.x;\n float y = s.y - 4.0 * s.x;\n float z = s.z - 4.0 * s.y + 6.0 * s.x;\n float w = 6.0 - x - y - z;\n return vec4( x, y, z, w ) * ( 1.0 / 6.0 );\n }\n \n vec4 textureBicubic( sampler2D sampler, vec2 texCoords, vec2 texSize ) {\n vec2 invTexSize = 1.0 / texSize;\n texCoords = texCoords * texSize - 0.5;\n vec2 fxy = fract( texCoords );\n texCoords -= fxy;\n\n vec4 xcubic = cubic( fxy.x );\n vec4 ycubic = cubic( fxy.y );\n vec4 c = texCoords.xxyy + vec2 ( - 0.5, + 1.5 ).xyxy;\n vec4 s = vec4( xcubic.xz + xcubic.yw, ycubic.xz + ycubic.yw );\n\n vec4 offset = c + vec4( xcubic.yw, ycubic.yw ) / s;\n offset *= invTexSize.xxyy;\n \n vec4 sample0 = texture2D( sampler, offset.xz);\n vec4 sample1 = texture2D( sampler, offset.yz);\n vec4 sample2 = texture2D( sampler, offset.xw);\n vec4 sample3 = texture2D( sampler, offset.yw);\n \n float sx = s.x / ( s.x + s.y );\n float sy = s.z / ( s.z + s.w );\n\n return mix(\n mix(\n sample3,\n sample2,\n sx\n ),\n mix(\n sample1,\n sample0,\n sx\n ),\n sy\n );\n }\n\n\n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include <emissivemap_fragment>","#include <emissivemap_fragment>\n \n float depthFactor = 1.0;\n float distortionFactor = 0.0;\n vec3 my_normal = vec3(0.0);\n float reflectorRoughnessFactor = roughness;\n vec3 coord = my_vUv.xyz / my_vUv.w;\n\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n #ifdef USE_NORMALMAP\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b , normalColor.g * 2.0 - 1.0 ) );\n #endif\n\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n\n vec2 proj_vUv = coord.xy + coord.z * my_normal.xz * 0.01;\n proj_vUv.x += distortionFactor;\n proj_vUv.y += distortionFactor;\n \n float lod = 1.0 - min(1.0, mixBlur * reflectorRoughnessFactor);\n\n #ifdef USE_DEPTH\n vec4 depth = texture2D(tDepth, proj_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor + depthToBlurRatioBias));\n #endif\n\n vec4 baseColor = texture2D(tDiffuse, proj_vUv);\n vec4 mixedColor;\n\n float _lod = (1.0 - pow(1.0 - lod, 4.0)) * 8.0;\n if (_lod < 1.) {\n vec4 one = textureBicubic(u_mipmap_7, proj_vUv, u_mipmap_res_7);\n vec4 two = textureBicubic(u_mipmap_6, proj_vUv, u_mipmap_res_6);\n mixedColor = mix(one, two, _lod);\n } else if (_lod < 2.) {\n vec4 one = textureBicubic(u_mipmap_6, proj_vUv, u_mipmap_res_6);\n vec4 two = textureBicubic(u_mipmap_5, proj_vUv, u_mipmap_res_5);\n mixedColor = mix(one, two, _lod - 1.0);\n } else if (_lod < 3.) {\n vec4 one = textureBicubic(u_mipmap_5, proj_vUv, u_mipmap_res_5);\n vec4 two = textureBicubic(u_mipmap_4, proj_vUv, u_mipmap_res_4);\n mixedColor = mix(one, two, _lod - 2.0);\n } else if (_lod < 4.) {\n vec4 one = textureBicubic(u_mipmap_4, proj_vUv, u_mipmap_res_4);\n vec4 two = textureBicubic(u_mipmap_3, proj_vUv, u_mipmap_res_3);\n mixedColor = mix(one, two, _lod - 3.0);\n } else if (_lod < 5.) {\n vec4 one = textureBicubic(u_mipmap_3, proj_vUv, u_mipmap_res_3);\n vec4 two = textureBicubic(u_mipmap_2, proj_vUv, u_mipmap_res_2);\n mixedColor = mix(one, two, _lod - 4.0);\n } else if (_lod < 6.) {\n vec4 one = textureBicubic(u_mipmap_2, proj_vUv, u_mipmap_res_2);\n vec4 two = textureBicubic(u_mipmap_1, proj_vUv, u_mipmap_res_1);\n mixedColor = mix(one, two, _lod - 5.0);\n } else if (_lod < 7.) {\n vec4 one = textureBicubic(u_mipmap_1, proj_vUv, u_mipmap_res_1);\n vec4 two = textureBicubic(u_mipmap_0, proj_vUv, u_mipmap_res_0);\n mixedColor = mix(one, two, _lod - 6.0);\n } else {\n vec4 one = textureBicubic(u_mipmap_0, proj_vUv, u_mipmap_res_0);\n mixedColor = mix(one, baseColor, _lod - 7.0);\n }\n\n mixedColor.rgb *= depthFactor;\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + mixedColor.rgb * mixStrength); \n diffuseColor = sRGBToLinear(diffuseColor);\n\n if (debug == 1) {\n diffuseColor = sRGBToLinear(vec4(vec3(depthFactor), 1.0));\n }\n if (debug == 2) {\n diffuseColor = sRGBToLinear(texture2D(tDiffuse, proj_vUv));\n }\n if (debug == 3) {\n diffuseColor = sRGBToLinear(texture2D(distortionMap, vUv));\n }\n if (debug == 4) {\n diffuseColor = sRGBToLinear(vec4(vec3(lod), 1.0));\n }\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get u_mipmap_0(){return this._u_mipmap_0.value}set u_mipmap_0(e){this._u_mipmap_0.value=e}get u_mipmap_1(){return this._u_mipmap_1.value}set u_mipmap_1(e){this._u_mipmap_1.value=e}get u_mipmap_2(){return this._u_mipmap_2.value}set u_mipmap_2(e){this._u_mipmap_2.value=e}get u_mipmap_3(){return this._u_mipmap_3.value}set u_mipmap_3(e){this._u_mipmap_3.value=e}get u_mipmap_4(){return this._u_mipmap_4.value}set u_mipmap_4(e){this._u_mipmap_4.value=e}get u_mipmap_5(){return this._u_mipmap_5.value}set u_mipmap_5(e){this._u_mipmap_5.value=e}get u_mipmap_6(){return this._u_mipmap_6.value}set u_mipmap_6(e){this._u_mipmap_6.value=e}get u_mipmap_7(){return this._u_mipmap_7.value}set u_mipmap_7(e){this._u_mipmap_7.value=e}get u_mipmap_res_0(){return this._u_mipmap_res_0.value}set u_mipmap_res_0(e){this._u_mipmap_res_0.value=e}get u_mipmap_res_1(){return this._u_mipmap_res_1.value}set u_mipmap_res_1(e){this._u_mipmap_res_1.value=e}get u_mipmap_res_2(){return this._u_mipmap_res_2.value}set u_mipmap_res_2(e){this._u_mipmap_res_2.value=e}get u_mipmap_res_3(){return this._u_mipmap_res_3.value}set u_mipmap_res_3(e){this._u_mipmap_res_3.value=e}get u_mipmap_res_4(){return this._u_mipmap_res_4.value}set u_mipmap_res_4(e){this._u_mipmap_res_4.value=e}get u_mipmap_res_5(){return this._u_mipmap_res_5.value}set u_mipmap_res_5(e){this._u_mipmap_res_5.value=e}get u_mipmap_res_6(){return this._u_mipmap_res_6.value}set u_mipmap_res_6(e){this._u_mipmap_res_6.value=e}get u_mipmap_res_7(){return this._u_mipmap_res_7.value}set u_mipmap_res_7(e){this._u_mipmap_res_7.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get debug(){return this._debug.value}set debug(e){this._debug.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}}o.extend({MeshReflectorMaterial:Ke});const Ze=D.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:r=256,args:a=[1,1],minDepthThreshold:s=.9,maxDepthThreshold:i=1,depthScale:u=0,depthToBlurRatioBias:c=.25,mirror:l,children:A,debug:f=0,distortion:C=1,distortionMap:m,...p},d)=>{const v=o.useThree((({gl:e})=>e)),E=o.useThree((({camera:e})=>e)),h=o.useThree((({scene:e})=>e)),_=D.useRef(null),[g]=D.useState((()=>new n.Plane)),[F]=D.useState((()=>new n.Vector3)),[w]=D.useState((()=>new n.Vector3)),[y]=D.useState((()=>new n.Vector3)),[P]=D.useState((()=>new n.Matrix4)),[b]=D.useState((()=>new n.Vector3(0,0,-1))),[z]=D.useState((()=>new n.Vector4)),[M]=D.useState((()=>new n.Vector3)),[L]=D.useState((()=>new n.Vector3)),[S]=D.useState((()=>new n.Vector4)),[H]=D.useState((()=>new n.Matrix4)),[T]=D.useState((()=>new n.PerspectiveCamera)),[O]=D.useState((()=>{const e=[],t={minFilter:n.LinearFilter,magFilter:n.LinearFilter,format:n.RGBFormat,encoding:v.outputEncoding};for(let o=0;o<8;o++){const a=Math.max(8,Math.round(r/Math.pow(2,o))),s=new n.WebGLRenderTarget(a,a,t);s.texture.generateMipmaps=!1,e.push(s)}return e})),j=D.useCallback((()=>{if(w.setFromMatrixPosition(_.current.matrixWorld),y.setFromMatrixPosition(E.matrixWorld),P.extractRotation(_.current.matrixWorld),F.set(0,0,1),F.applyMatrix4(P),M.subVectors(w,y),M.dot(F)>0)return;M.reflect(F).negate(),M.add(w),P.extractRotation(E.matrixWorld),b.set(0,0,-1),b.applyMatrix4(P),b.add(y),L.subVectors(w,b),L.reflect(F).negate(),L.add(w),T.position.copy(M),T.up.set(0,1,0),T.up.applyMatrix4(P),T.up.reflect(F),T.lookAt(L),T.far=E.far,T.updateMatrixWorld(),T.projectionMatrix.copy(E.projectionMatrix),H.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),H.multiply(T.projectionMatrix),H.multiply(T.matrixWorldInverse),H.multiply(_.current.matrixWorld),g.setFromNormalAndCoplanarPoint(F,w),g.applyMatrix4(T.matrixWorldInverse),z.set(g.normal.x,g.normal.y,g.normal.z,g.constant);const e=T.projectionMatrix;S.x=(Math.sign(z.x)+e.elements[8])/e.elements[0],S.y=(Math.sign(z.y)+e.elements[9])/e.elements[5],S.z=-1,S.w=(1+e.elements[10])/e.elements[14],z.multiplyScalar(2/z.dot(S)),e.elements[2]=z.x,e.elements[6]=z.y,e.elements[10]=z.z+1,e.elements[14]=z.w}),[E.far,E.matrixWorld,E.projectionMatrix,y,z,b,F,S,g,w,P,L,H,M,T]),[X,Q]=D.useMemo((()=>{const o={minFilter:n.LinearFilter,magFilter:n.LinearFilter,format:n.RGBFormat,encoding:v.outputEncoding},a=new n.WebGLRenderTarget(r,r,o);u>0&&(a.depthBuffer=!0,a.depthTexture=new n.DepthTexture(r,r),a.depthTexture.format=n.DepthFormat,a.depthTexture.type=n.UnsignedShortType);const A=O.reduce(((e,t,r)=>(e[`u_mipmap_${r}`]=t.texture,e[`u_mipmap_res_${r}`]=new n.Vector2(t.width,t.height),e)),{});return[a,{mirror:l,textureMatrix:H,mixBlur:e,tDiffuse:a.texture,tDepth:a.depthTexture,mixStrength:t,minDepthThreshold:s,maxDepthThreshold:i,depthScale:u,depthToBlurRatioBias:c,debug:f,distortion:C,distortionMap:m,"defines-USE_DEPTH":u>0?"":void 0,"defines-USE_DISTORTION":m?"":void 0,...A}]}),[v,H,r,l,e,t,s,i,u,c,f,C,m,O]);return o.useFrame((()=>{if(null==_||!_.current)return;_.current.visible=!1;const t=v.xr.enabled,r=v.shadowMap.autoUpdate;j(),v.xr.enabled=!1,v.shadowMap.autoUpdate=!1,v.setRenderTarget(X),v.state.buffers.depth.setMask(!0),v.autoClear||v.clear(),v.render(h,T),0!==e&&O.forEach((e=>{v.setRenderTarget(e),v.state.buffers.depth.setMask(!0),v.render(h,T)})),v.xr.enabled=t,v.shadowMap.autoUpdate=r,_.current.visible=!0,v.setRenderTarget(null)})),D.createElement("mesh",B.default({ref:x.default([_,d])},p),D.createElement("planeBufferGeometry",{args:a}),A?A("meshReflectorMaterial",Q):D.createElement("meshReflectorMaterial",Q))})),Je=D.forwardRef((({fog:e=!1,colorStop:t=0,color:r="black",opacity:o=.5,...a},s)=>{const i=D.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const o=e.getContext("2d"),a=o.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);return a.addColorStop(t,new n.Color(r).getStyle()),a.addColorStop(1,"rgba(0,0,0,0)"),o.fillStyle=a,o.fillRect(0,0,e.width,e.height),e}),[r,t]);return D.createElement("mesh",B.default({ref:s},a),D.createElement("planeBufferGeometry",{attach:"geometry",args:[1,1]}),D.createElement("meshBasicMaterial",{attach:"material",transparent:!0,opacity:o,fog:e},D.createElement("canvasTexture",{attach:"map",args:[i]})))}));function $e(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}const et=D.forwardRef((function({children:e,alignTop:t,...r},o){const a=D.useRef(null),s=D.useRef(null);return D.useLayoutEffect((()=>{a.current.position.set(0,0,0),a.current.updateWorldMatrix(!0,!0);const e=(new n.Box3).setFromObject(s.current),r=new n.Vector3,o=new n.Sphere,i=e.max.y-e.min.y;e.getCenter(r),e.getBoundingSphere(o),a.current.position.set(-r.x,-r.y+(t?i/2:0),-r.z)}),[e]),D.createElement("group",B.default({ref:o},r),D.createElement("group",{ref:a},D.createElement("group",{ref:s},e)))})),tt=e=>e&&e.isOrthographicCamera,rt=D.createContext(null);function nt(e,r,n){const a=o.useThree((({gl:e})=>e)),s=o.useThree((({size:e})=>e)),i=t.useMemo((()=>a.getPixelRatio()),[a]),u="number"==typeof e?e:s.width*i,c="number"==typeof r?r:s.height*i,l=("number"==typeof e?n:e)||{},A=t.useMemo((()=>{const{multisample:e,samples:t,...r}=l;let n;return e&&a.capabilities.isWebGL2?(n=new h.WebGLMultisampleRenderTarget(u,c,r),t&&(n.samples=t)):n=new h.WebGLRenderTarget(u,c,r),n}),[]);return t.useEffect((()=>{A.setSize(u,c)}),[A,u,c]),t.useEffect((()=>()=>A.dispose()),[]),A}const ot=D.forwardRef((({size:e=256},t)=>{const r=o.useThree((e=>e.viewport.dpr)),{width:a,height:s}=o.useThree((e=>e.size)),i=e||a*r,u=e||s*r,c=D.useMemo((()=>{const e=new n.DepthTexture(i,u);return e.format=n.DepthFormat,e.type=n.UnsignedShortType,{depthTexture:e}}),[i,u]),l=nt(i,u,c);return D.useImperativeHandle(t,(()=>null==l?void 0:l.depthTexture)),o.useFrame((e=>{e.gl.setRenderTarget(l),e.gl.render(e.scene,e.camera),e.gl.setRenderTarget(null)}))}));const at=D.forwardRef((({children:e,curve:t},r)=>{const[n,o]=D.useState(),a=D.useRef(),s=D.useRef();return D.useImperativeHandle(r,(()=>({moveAlongCurve:e=>{var t;null==(t=s.current)||t.moveAlongCurve(e)}}))),D.useEffect((()=>{!s.current&&a.current&&r&&(s.current=new i.Flow(a.current),o(s.current.object3D))}),[e,r]),D.useEffect((()=>{var e;a.current&&t&&(null==(e=s.current)||e.updateCurve(0,t))}),[t]),n?D.createElement("primitive",{object:n}):D.cloneElement(D.Children.only(e),{ref:a})}));class st extends n.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n #define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const it=D.forwardRef((({speed:e=1,...t},r)=>{const[n]=D.useState((()=>new st));return o.useFrame((t=>n&&(n.time=t.clock.getElapsedTime()*e))),D.createElement("primitive",B.default({dispose:void 0,object:n,ref:r,attach:"material"},t))}));class ut extends n.MeshStandardMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=`\n uniform float time;\n uniform float factor;\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;")}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}}const ct=D.forwardRef((({speed:e=1,...t},r)=>{const[n]=D.useState((()=>new ut));return o.useFrame((t=>n&&(n.time=t.clock.getElapsedTime()*e))),D.createElement("primitive",B.default({dispose:void 0,object:n,ref:r,attach:"material"},t))}));class lt extends h.ShaderMaterial{constructor(){super({transparent:!0,uniforms:{size:{value:1}},vertexShader:h.ShaderLib.points.vertexShader,fragmentShader:"\n varying vec3 vColor;\n void main() {\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r);\n vec3 color = vColor;\n #ifdef TONE_MAPPING\n color = toneMapping(color);\n #endif\n gl_FragColor = linearToOutputTexel(vec4(color, 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r)));\n }",vertexColors:!0})}get scale(){return this.uniforms.size.value}set scale(e){this.uniforms.size.value=e}}const At=D.forwardRef(((e,t)=>{const[r]=D.useState((()=>new lt));return D.createElement("primitive",B.default({object:r,ref:t,attach:"material"},e))}));function ft(e,t,r=new n.Vector3){const o=Math.PI*(e-.5),a=2*Math.PI*(t-.5);return r.x=Math.cos(a),r.y=Math.sin(o),r.z=Math.sin(a),r}const Ct=D.forwardRef((({inclination:e=0,azimuth:t=.25,distance:r=100,mieCoefficient:o=.005,mieDirectionalG:a=.8,rayleigh:s=1,turbidity:u=2,sunPosition:c=ft(e,t),...l},A)=>{const f=D.useMemo((()=>(new n.Vector3).setScalar(r)),[r]),[C]=D.useState((()=>new i.Sky));return D.createElement("primitive",B.default({dispose:void 0,object:C,ref:A,"material-uniforms-mieCoefficient-value":o,"material-uniforms-mieDirectionalG-value":a,"material-uniforms-rayleigh-value":s,"material-uniforms-sunPosition-value":c,"material-uniforms-turbidity-value":u,scale:f},l))}));let mt=!1;class pt extends n.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(mvPosition.x + 2.0 * time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:"\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n }"})}}const dt=e=>(new n.Vector3).setFromSpherical(new n.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),vt=D.forwardRef((({radius:e=100,depth:t=50,count:r=5e3,saturation:a=0,factor:s=4,fade:i=!1},u)=>{const c=D.useRef(),[l,A,f]=D.useMemo((()=>{const o=[],i=[],u=Array.from({length:r},(()=>(.5+.5*Math.random())*s)),c=new n.Color;let l=e+t;const A=t/r;for(let e=0;e<r;e++)l-=A*Math.random(),o.push(...dt(l).toArray()),c.setHSL(e/r,a,.9),i.push(c.r,c.g,c.b);return[new Float32Array(o),new Float32Array(i),new Float32Array(u)]}),[r,t,s,e,a]);o.useFrame((e=>c.current&&(c.current.uniforms.time.value=e.clock.getElapsedTime())));const[C]=D.useState((()=>new pt));return D.createElement("points",{ref:u},D.createElement("bufferGeometry",{attach:"geometry"},D.createElement("bufferAttribute",{attachObject:["attributes","position"],args:[l,3]}),D.createElement("bufferAttribute",{attachObject:["attributes","color"],args:[A,3]}),D.createElement("bufferAttribute",{attachObject:["attributes","size"],args:[f,1]})),D.createElement("primitive",{dispose:void 0,ref:c,object:C,attach:"material",blending:n.AdditiveBlending,"uniforms-fade-value":i,transparent:!0,vertexColors:!0}))})),Bt=D.forwardRef((({frames:e=1/0,opacity:t=1,width:r=1,height:n=1,blur:a=1,far:s=10,resolution:u=256,...c},l)=>{const A=o.useThree((({scene:e})=>e)),f=o.useThree((({gl:e})=>e)),C=D.useRef(),[m,p,d,v,E,_,x]=D.useMemo((()=>{const e=new h.WebGLRenderTarget(u,u),t=new h.WebGLRenderTarget(u,u);t.texture.generateMipmaps=e.texture.generateMipmaps=!1;const o=new h.PlaneBufferGeometry(r,n).rotateX(Math.PI/2),a=new h.Mesh(o),s=new h.MeshDepthMaterial;s.depthTest=s.depthWrite=!1,s.onBeforeCompile=e=>e.fragmentShader=e.fragmentShader.replace("1.0 - fragCoordZ ), opacity );","0.0 ), ( 1.0 - fragCoordZ ) * 1.0 );");const c=new h.ShaderMaterial(i.HorizontalBlurShader),l=new h.ShaderMaterial(i.VerticalBlurShader);return l.depthTest=c.depthTest=!1,[e,o,s,a,c,l,t]}),[u,r,n]);let g=0;return o.useFrame((()=>{if(C.current&&(e===1/0||g<e)){const e=A.background;A.background=null,A.overrideMaterial=d,f.setRenderTarget(m),f.render(A,C.current),A.overrideMaterial=null,v.material=E,v.material.uniforms.tDiffuse.value=m.texture,E.uniforms.h.value=a/256,f.setRenderTarget(x),f.render(v,C.current),v.material=_,v.material.uniforms.tDiffuse.value=x.texture,_.uniforms.v.value=a/256,f.setRenderTarget(m),f.render(v,C.current),f.setRenderTarget(null),A.background=e,g++}})),D.createElement("group",B.default({},c,{ref:l}),D.createElement("mesh",{geometry:p,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},D.createElement("meshBasicMaterial",{map:m.texture,transparent:!0,opacity:t})),D.createElement("orthographicCamera",{ref:C,args:[-r/2,r/2,n/2,-n/2,0,s]}))}));class Dt extends n.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new n.Vector3(0,0,0)},lightColor:{value:new n.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new n.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation;\n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include <packing>\n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity);\n }"})}}const Et=new n.Vector3,ht=D.forwardRef((({depthBuffer:e,color:t="white",distance:r=5,angle:a=.15,attenuation:s=5,anglePower:i=5,...u},c)=>{const l=D.useRef(null),A=o.useThree((e=>e.size)),f=o.useThree((e=>e.camera)),C=o.useThree((e=>e.viewport.dpr)),[m]=D.useState((()=>new Dt));o.useFrame((()=>{m.uniforms.spotPosition.value.copy(l.current.getWorldPosition(Et)),l.current.lookAt(l.current.parent.target.position)}));const p=D.useMemo((()=>{const e=new n.CylinderGeometry(.1,7*a,r,128,64,!0);return e.applyMatrix4((new n.Matrix4).makeTranslation(0,-r/2,0)),e.applyMatrix4((new n.Matrix4).makeRotationX(-Math.PI/2)),e}),[a,r]);return D.createElement("spotLight",B.default({ref:c,angle:a,color:t,distance:r},u),D.createElement("mesh",{ref:l,geometry:p},D.createElement("primitive",{object:m,attach:"material","uniforms-lightColor-value":t,"uniforms-attenuation-value":s,"uniforms-anglePower-value":i,"uniforms-depth-value":e,"uniforms-cameraNear-value":f.near,"uniforms-cameraFar-value":f.far,"uniforms-resolution-value":e?[A.width*C,A.height*C]:[0,0]})))}));function _t(e){const t=e+"BufferGeometry";return D.forwardRef((({args:e,children:r,...n},o)=>D.createElement("mesh",B.default({ref:o},n),D.createElement(t,{attach:"geometry",args:e}),r)))}const xt=_t("box"),gt=_t("circle"),Ft=_t("cone"),wt=_t("cylinder"),yt=_t("sphere"),Pt=_t("plane"),bt=_t("tube"),zt=_t("torus"),Mt=_t("torusKnot"),Lt=_t("tetrahedron"),St=_t("ring"),Ht=_t("polyhedron"),Tt=_t("icosahedron"),Ot=_t("octahedron"),jt=_t("dodecahedron"),Xt=_t("extrude"),Qt=_t("lathe"),Vt=_t("parametric"),kt=1e-5;const Nt=D.forwardRef((function({args:[e=1,t=1,r=1]=[],radius:o=.05,smoothness:a=4,children:s,...i},u){const c=D.useMemo((()=>function(e,t,r){const o=new n.Shape,a=r-kt;return o.absarc(kt,kt,kt,-Math.PI/2,-Math.PI,!0),o.absarc(kt,t-2*a,kt,Math.PI,Math.PI/2,!0),o.absarc(e-2*a,t-2*a,kt,Math.PI/2,0,!0),o.absarc(e-2*a,kt,kt,0,-Math.PI/2,!0),o}(e,t,o)),[e,t,o]),l=D.useMemo((()=>({depth:r-2*o,bevelEnabled:!0,bevelSegments:2*a,steps:1,bevelSize:o-kt,bevelThickness:o,curveSegments:a})),[r,o,a]),A=D.useRef();return D.useLayoutEffect((()=>{A.current&&A.current.center()}),[c,l]),D.createElement("mesh",B.default({ref:u},i),D.createElement("extrudeBufferGeometry",{attach:"geometry",ref:A,args:[c,l]}),s)}));function It(){const e=new h.BufferGeometry,t=new Float32Array([-1,-1,3,-1,-1,3]);return e.setAttribute("position",new h.BufferAttribute(t,2)),e}const Ut=D.forwardRef((function({children:e,...t},r){const n=D.useMemo(It,[]);return D.createElement("mesh",B.default({ref:r,geometry:n,frustumCulled:!1},t),e)})),Gt={0:"0404E8_0404B5_0404CB_3333FC",1:"045C5C_0DBDBD_049393_04A4A4",2:"046363_0CC3C3_049B9B_04ACAC",3:"0489C5_0DDDF9_04C3EE_04AFE1",4:"04989A_0CE3E4_04D2D5_04C7C8",5:"04C455_0EFABC_04F097_04E17A",6:"04CC77_0CF7CA_04E9A7_04AB54",7:"04E804_04B504_04CB04_33FC33",8:"04E8E8_04B5B5_04CCCC_33FCFC",9:"050505_747474_4C4C4C_333333",10:"070B0C_B2C7CE_728FA3_5B748B",11:"090909_9C9C9C_555555_7C7C7C",12:"0A0A0A_A9A9A9_525252_747474",13:"0C0CC3_04049F_040483_04045C",14:"0C430C_257D25_439A43_3C683C",15:"0D0DBD_040497_04047B_040455",16:"0D0DE3_040486_0404AF_0404CF",17:"0DBD0D_049704_047B04_045504",18:"0F0F0F_4B4B4B_1C1C1C_2C2C2C",19:"0F990F_047B04_044604_046704",20:"15100F_241D1B_292424_2C2C27",21:"161B1F_C7E0EC_90A5B3_7B8C9B",22:"167E76_36D6D2_23B2AC_27C1BE",23:"17395A_7EBCC7_4D8B9F_65A1B5",24:"181F1F_475057_616566_525C62",25:"191514_6D5145_4E3324_3B564D",26:"1A2461_3D70DB_2C3C8F_2C6CAC",27:"1B1B1B_515151_7E7E7E_6C6C6C",28:"1B1B1B_999999_575757_747474",29:"1B1C19_5F615D_4B4E4C_3F403D",30:"1C1810_352F23_2B2C1C_2B2C24",31:"1C70C6_09294C_0F3F73_52B3F6",32:"1D2424_565F66_4E555A_646C6E",33:"1D2A21_43443B_655B54_545C54",34:"1D3FCC_051B5F_81A0F2_5579E9",35:"221917_928380_5F504D_7C746C",36:"232014_908B78_5E5743_747460",37:"242733_333A4D_3E4554_3C3B43",38:"245642_3D8168_3D6858_417364",39:"253C3C_528181_406C6C_385F5F",40:"254FB0_99AFF0_6587D8_1D3279",41:"27222B_677491_484F6A_5D657A",42:"281813_604233_4B3426_442B22",43:"28292A_D3DAE5_A3ACB8_818183",44:"291912_473531_3C2C25_3A2424",45:"293534_B2BFC5_738289_8A9AA7",46:"293D21_ABC692_73B255_667C5C",47:"2A2A2A_B3B3B3_6D6D6D_848C8C",48:"2A2A2A_DBDBDB_6A6A6A_949494",49:"2A2D21_555742_898974_6C745B",50:"2A4BA7_1B2D44_1F3768_233C81",51:"2A6276_041218_739BA6_042941",52:"2B2828_7B796F_534F4A_616464",53:"2B2B22_3C3C30_464538_121210",54:"2D2D2A_74716E_8F8C8C_92958E",55:"2D2D2F_C6C2C5_727176_94949B",56:"2D8753_5CD6A5_45BB82_4CC494",57:"2E2E2D_7D7C76_A3A39F_949C94",58:"2E763A_78A0B7_B3D1CF_14F209",59:"2EAC9E_61EBE3_4DDDD1_43D1C6",60:"2F2FAA_1E1E87_10104E_1C1C70",61:"2F3747_6A7C9E_54637F_62748B",62:"300706_888576_822821_876E79",63:"302721_CAC1BB_7A706A_91959B",64:"304FB1_69A1EF_5081DF_5C8CE6",65:"312C34_A2AAB3_61656A_808494",66:"312D20_80675C_8B8C8B_85848C",67:"313131_BBBBBB_878787_A3A4A4",68:"320455_720DBE_560496_47047B",69:"32201D_613C3C_563533_8C655F",70:"32302B_4C4842_121211_1C1C14",71:"323C4D_B79039_7C6A44_605C48",72:"326666_66CBC9_C0B8AE_52B3B4",73:"331A0B_B17038_7D4E28_5B351A",74:"336EB3_152578_A4C5E2_74AED9",75:"34352A_718184_50605E_6E6761",76:"346088_6ABED7_56A0C5_4E91B8",77:"34A09C_6EE5E3_5CD7D3_4EC9C6",78:"34AB94_36DFC1_19F9EB_6C6E62",79:"353535_CFCFCF_828282_A4A4A4",80:"36220C_C6C391_8C844A_8B7B4C",81:"36312E_726461_59504D_645C5C",82:"365123_C6E5A3_A8D18D_8EB16C",83:"36C8FA_176ACB_24A7EF_1D93EC",84:"37C337_279F27_186018_248824",85:"385264_A1D3E2_86ADC1_6E94A8",86:"385862_6D8B8D_647B80_1A2E2F",87:"386169_A9CFDB_153C23_7CA3AC",88:"38925D_142B23_1D4835_2A6449",89:"392307_B3AE7D_6D5618_847C42",90:"39433A_65866E_86BF8B_BFF8D8",91:"394641_B1A67E_75BEBE_7D7256",92:"3A2412_A78B5F_705434_836C47",93:"3A3329_C9B090_928069_A9957A",94:"3A3D37_7E7F75_BCBFB6_9C9C94",95:"3B3B3B_C7C7C7_878787_A4A4A4",96:"3B3C3F_DAD9D5_929290_ABACA8",97:"3B4235_7B9395_5B716C_70847B",98:"3B6E10_E3F2C3_88AC2E_99CE51",99:"3D1F12_653821_070404_22130B",100:"3E2335_D36A1B_8E4A2E_2842A5",101:"3E3D39_D6CEAF_91BAC1_897966",102:"3E3E36_72726D_63645D_0E0F0C",103:"3E3E3E_AEAEAE_848484_777777",104:"3E95CC_65D9F1_A2E2F6_679BD4",105:"3F3A2F_91D0A5_7D876A_94977B",106:"3F3D52_CCCED9_AFB0C6_8D8CAC",107:"3F4441_D1D7D6_888F87_A2ADA1",108:"403A34_B0936E_7F979C_7E6956",109:"415325_83A24E_678239_748C3C",110:"416BA7_A5B8D0_0D2549_65ABEB",111:"422509_C89536_824512_0A0604",112:"422A1E_716767_685D59_5E4F4A",113:"424244_BDBBBE_8A898E_A3A4A9",114:"425F84_1C2939_2A3F57_24344C",115:"430404_BD9295_7E1E21_94544C",116:"432322_5E3839_170C0B_543433",117:"433D3F_A58D7D_786760_8C7C6D",118:"434240_D3D3CF_898784_A4A49F",119:"434343_9E9E9E_8C8C8C_848484",120:"434C32_62704C_546244_2F3220",121:"442C27_A79E90_847066_8D837C",122:"447072_8ACACB_65A4A5_74B3B3",123:"45432C_808361_B8C8BC_A5A27A",124:"454447_908E9A_181716_7C7C7B",125:"456A73_779B9E_173A46_154C5D",126:"463F37_ACCFBB_818B78_91A494",127:"464445_D2D0CB_919196_A8ADB0",128:"464543_D1CFC1_8E8C83_A4AC9C",129:"46804D_CBE9AC_90B57C_95D38F",130:"468126_C1DDB5_8AC460_A1D07C",131:"47392E_997E69_7C6553_8B745F",132:"474444_7B7575_9E9899_8C8C8B",133:"474643_696F7D_A9ABB8_8B8C93",134:"474843_CECEC4_898883_A3A3A4",135:"48270F_C4723B_9B5728_7B431B",136:"482908_894E0D_FBDB52_CA7420",137:"487FC9_A8E7F8_88CCF2_70AFDE",138:"489B7A_A0E7D9_6DC5AC_87DAC7",139:"48C381_226640_369F64_3CAC74",140:"49200B_C6926C_9C642B_A45C26",141:"495CA6_CCD2E6_A5B1D8_1E2852",142:"495E48_0D100D_9D9C87_9ECC9C",143:"496DBA_94C9F2_72A7E2_84B4EC",144:"4A6442_D0AB75_81CD94_181B12",145:"4B362C_715A4F_211913_644C44",146:"4B4A3A_94A3A4_68766F_988475",147:"4B5455_BBBFC4_97A0A6_838C90",148:"4C240E_A5613B_895134_734C44",149:"4C342A_7B584B_271912_6B4C44",150:"4C462E_6D876C_9AAC8F_9AABA6",151:"4C4C4C_D2D2D2_8F8F8F_ACACAC",152:"4D595E_858D87_596F84_748480",153:"4E4C42_B8C4C5_898E89_A3ACA4",154:"4E4D40_979786_AEAEA1_878678",155:"4E5150_9FA3A3_848C8A_82848C",156:"4F251B_381710_43241B_602F23",157:"4F439F_A28BE5_8570D6_7765C9",158:"4F4742_B7B1AA_847E79_969294",159:"4F4C45_A7AEAA_7A8575_9D97A2",160:"4F4F4F_9C9C9C_121212_7C7C7C",161:"4F4F4F_A1A1A1_8C8C8C_848484",162:"4F5246_8C8D84_7B7C74_131611",163:"4FE34F_2BB02B_3CD03C_1C861C",164:"50332C_D98D79_955F52_AA7C6C",165:"503522_C38254_9F6B45_845838",166:"504D3C_979C9D_81837D_9C998A",167:"513A11_CDBEB5_C8811C_9A733F",168:"51462B_DFCA7E_948050_A49874",169:"515151_DCDCDC_B7B7B7_9B9B9B",170:"515341_9A9C86_16180D_838474",171:"517919_659623_34460C_3E5813",172:"519C8D_83DAC7_9DEDE0_2B5B4C",173:"522221_91343B_7F6F6B_744960",174:"522A1A_94543A_C3896F_AB7D66",175:"525050_D4D3D3_959393_ACACAC",176:"533B33_AF9998_866965_9C7E7B",177:"535A2F_CDCA91_91915B_A4AC6F",178:"535F6B_A6BDC8_8FA3B4_7F91A2",179:"537387_75BBB9_152E5B_0E85E8",180:"54584E_B1BAC5_818B91_A7ACA3",181:"545B4D_D8DDC8_A0A792_B2C1A3",182:"54C104_BBFA0F_97EF04_7AE104",183:"55382F_78554E_271A16_6C4C44",184:"555555_C8C8C8_8B8B8B_A4A4A4",185:"556F42_112817_81927F_223E24",186:"55C404_BCFA0E_97F004_7AE104",187:"562D2A_2E1615_7E4945_703C3C",188:"56352F_1E110F_311C19_3C231C",189:"57553F_C6C3AF_8C8768_868C8C",190:"57583E_969788_292920_848474",191:"579241_B5D25D_0E1D2D_97C284",192:"582410_83381A_1F0C04_30140A",193:"583629_2E1810_765648_3C1C14",194:"584F3A_BEC3BD_C5A57D_A39073",195:"586A51_CCD5AA_8C9675_8DBBB7",196:"593E2C_E5D8A9_BC9F79_9F8A68",197:"595356_CDBFC6_AA9DA3_BBB3BC",198:"59554F_171716_847C74_2C2C24",199:"596773_B3C6CE_98AFB9_879AA8",200:"597C3F_254319_6C9668_7C9B53",201:"5A492B_DEC583_987D4D_AC9C74",202:"5A643B_454D2C_393F25_202315",203:"5B4CBC_B59AF2_9B84EB_8F78E4",204:"5B5428_C5A052_A28B46_ADA752",205:"5B574E_586967_807C6F_6A746C",206:"5C045C_BD0DBD_930493_A404A4",207:"5C2E0C_C36924_9F4F14_834114",208:"5C4E41_CCCDD6_9B979B_B1AFB0",209:"5C5743_262418_393727_342C20",210:"5C5C04_BDBD0D_939304_A4A404",211:"5C5C5C_A2A2A2_8C8C8C_848484",212:"5D5854_1A1714_373330_2C2424",213:"5D5D5D_CDCDCD_232323_ACACAC",214:"5D5E5A_A1A29B_2A2927_8B948C",215:"5E423A_8C6E69_382416_745D64",216:"5E5049_CDC2BE_9C8E88_B7ACA4",217:"5E5855_C6C4CD_C89B67_8F8E98",218:"5E5F62_A7B2BE_211C17_939CA3",219:"5ECBA4_BCFAE7_92EED0_A1F4DC",220:"5F1827_9B4A60_1F0404_340406",221:"5F4C4B_A07C7D_A8AFBF_868185",222:"5F4F50_A18E8E_8C7C7B_211A1A",223:"5F5F5F_BDBDBD_A4A4A4_9C9C9C",224:"604A30_DC9065_212C14_AC9C92",225:"60534A_211813_9B948E_8E837D",226:"605352_E9CCC5_C7A8A3_A89291",227:"606857_9BA894_8C9C83_8C9483",228:"613F04_D68C04_A45F04_1F0F04",229:"61583E_252314_928972_342C1C",230:"617586_23304C_1B1E30_4988CF",231:"622F19_885934_9A7748_94603A",232:"623622_A1756F_986353_89645B",233:"624541_FCD0C6_E4A19A_FCBCB4",234:"626262_9E9E9E_848484_262626",235:"626262_A8A8A8_949494_1F1F1F",236:"626A57_3B3F33_7D8973_444C3C",237:"626D5C_B8C2BB_1B230F_A4ACA3",238:"627D72_A6CAAA_202C28_B4D4B4",239:"630463_C30CC3_9B049B_AC04AC",240:"63533B_AA9472_1C1108_9B8C68",241:"63584B_E6E0D6_A8A092_BFB6A8",242:"635D52_A9BCC0_B1AEA0_819598",243:"636363_AAAAAA_949494_252525",244:"636D6C_D4E7ED_ABBCC4_9BA4A8",245:"637598_B7C4D3_22293A_9BACBF",246:"64554D_D1C9C1_ABADA0_0E0C0A",247:"64686F_BDC0C4_161718_A4A7AB",248:"647171_1F3349_2A475C_87A5AD",249:"647686_23292E_333C44_404B55",250:"656662_9B9B99_393B31_8B8C8C",251:"657274_2A2F30_A0A7B0_363C44",252:"65A0BA_C3E4F1_A7D5E6_97CADF",253:"65A0C7_C3E4F8_A7D5EF_97CAE9",254:"660505_F2B090_DD4D37_AA1914",255:"66605E_939198_2E261F_3C332A",256:"666864_B3B4AB_2F2F2C_9CA49B",257:"673B2A_99735C_99593A_3A160E",258:"677E93_36444D_99A9BA_435464",259:"678E67_C4D9C4_ACC8AC_98B898",260:"68049F_C90DE6_A404CF_B304DC",261:"683F2D_9F736D_431D06_966152",262:"68493E_B2AAA9_978C8C_130907",263:"684C40_776E69_9B7765_758D96",264:"685B57_BEB1B1_9B99A4_1E1D1D",265:"686464_CCCAC7_A4A19F_BCB4B4",266:"686B73_2A2B2D_D5D9DD_B0B3BC",267:"686E55_353C2F_869B7F_444434",268:"696347_98B0A2_28261E_362B22",269:"696969_A0A0A0_949494_8C8C8C",270:"6A3C15_EFC898_D59D59_B38346",271:"6A5338_1C120B_C5975F_96886C",272:"6A8287_405153_839EBE_424C5C",273:"6B3822_A65D48_824E48_401E0C",274:"6BBD6B_C8F3C8_A3E2A3_B4ECB4",275:"6C52AA_C9A6EA_A681D6_B494E2",276:"6C5DC3_352D66_5C4CAB_544CA5",277:"6C6F76_CBD1D7_B2BDC7_A6B0BF",278:"6C8996_14223F_B9DEDD_2E445C",279:"6D1616_E6CDBA_DE2B24_230F0F",280:"6D3B1C_895638_502A0D_844C31",281:"6D6050_C8C2B9_A2998E_B4AA9F",282:"6D6D6D_3E3E3E_C0C0C0_949494",283:"6E2E36_D3A1A0_BD7175_C78C8B",284:"6E5137_E8CA90_271912_B99C74",285:"6E524D_8496C5_AF6624_100B11",286:"6E6D69_D0ECE9_AAC7C6_200C0C",287:"6E7181_D1CFDF_ABAFC7_B4BCCE",288:"6E8C48_B8CDA7_344018_A8BC94",289:"6EC66E_C9F8C9_A3E8A3_B4F1B4",290:"6F503E_D59A70_221812_B0A899",291:"705B4B_312821_AF927B_44342C",292:"706962_24211E_BCB6AF_ACA494",293:"713A28_A87661_3A160D_9B6454",294:"714C30_EAD7C5_CC9265_E2B48F",295:"716049_D1C8B9_3F160C_BAA6A9",296:"71623B_ECDE8C_30250A_ABA69A",297:"72625B_F0DFD0_D9BAA5_C3A595",298:"726F5B_A09C88_8B8C7B_94907C",299:"727167_2F2F2B_A3A6A2_44443C",300:"728473_534C40_7BCEC8_7BB9B6",301:"736655_D9D8D5_2F281F_B1AEAB",302:"745359_BFAEA8_9B8384_AC9392",303:"746761_291C19_AB9385_3C2B27",304:"747A6F_292E2A_ACA79F_45453B",305:"74A192_041B0D_194C33_235B4C",306:"75322B_96463F_51201A_3D1814",307:"75723E_C0C3A0_2A1E0E_AFAE77",308:"75746F_333330_A2A1A9_444444",309:"758391_BAC2CA_435263_A1ACBC",310:"763B28_D0BDB8_ADA39E_1E1D1D",311:"763C39_431510_210504_55241C",312:"764739_D0917B_2A1611_B37C68",313:"765938_1F1009_A59C7C_C9A382",314:"766554_C1BEBB_2A1A0E_B4ABAC",315:"76787C_2F3031_A5A9B8_444446",316:"767989_323437_B6C4EE_343C44",317:"771A1F_D2939E_B6595D_9D4B54",318:"773012_AE5124_4D1908_340F04",319:"776045_D2CCC3_281910_BBB5AA",320:"776A5C_BA9A89_302C26_443C34",321:"776C62_292622_474039_3C342C",322:"777C61_333727_BABFA1_A5AC8C",323:"777D7D_BDCAD2_3E3C2E_B1B8B6",324:"787165_DAD9CD_9DC0CE_36302A",325:"7877EE_D87FC5_75D9C7_1C78C0",326:"794E40_361612_4C2A21_441B1B",327:"795038_C2856B_533320_AC7C61",328:"796D6B_DED3CB_C6BAB1_ADA09B",329:"796F52_36413A_C9B48C_B6A77F",330:"797367_302E29_ABA3A0_443C35",331:"7A6959_2D271D_C1B5A9_B4A393",332:"7A736F_463F33_575046_4B463D",333:"7A7A7A_D0D0D0_BCBCBC_B4B4B4",334:"7A7A7A_D9D9D9_BCBCBC_B4B4B4",335:"7A7C63_625531_665B3F_5B4B29",336:"7A9196_485C64_425459_C1E4E7",337:"7B5254_E9DCC7_B19986_C8AC91",338:"7B6857_383028_BCA38F_4C3C34",339:"7B6E5B_C5CACC_B1B2AE_322415",340:"7B7E82_343536_A0B1C8_44444C",341:"7C584C_27140D_B3765C_3D2318",342:"7C7C71_353630_ADAFAF_444444",343:"7D6651_F8E3BF_CEA987_E7C29C",344:"7D7673_353230_AEA7B0_4C4444",345:"7DA1BA_A4CCE8_5D7A8B_5E7C94",346:"7E5344_22120E_CCAB9C_8D919D",347:"7E5E57_AD9794_612D1D_C9997D",348:"7E8174_39444D_CECAA7_B3B49B",349:"7F5134_22120A_452110_9F7D5F",350:"7F8896_3B3936_BBCFE9_4B4B4D",351:"803537_310F10_C35A5D_D89093",352:"807068_C3B0AB_443E3B_AC9C94",353:"80726C_DCDBD7_9AA6C2_B7BFCA",354:"808A5B_E0E1D4_2C4304_C5C7B0",355:"80A6B4_D5E9EF_B2D0D9_C1DCE4",356:"80CA23_B7EE37_D5FA4C_A3E434",357:"812828_521818_C94141_AB3737",358:"812E39_551C24_381117_9E3C49",359:"815C41_F6C99A_D39F77_BB9474",360:"815F54_DECBC6_301813_C5A8A0",361:"8194AB_D6DFEB_C0CEDE_B0BFD1",362:"81ADB3_D6ECEE_BFDEE1_AFD1D7",363:"81BABA_D5F3F3_BBE4E4_ABDCDC",364:"825C4D_A08175_97746C_613B2F",365:"826A59_E0C9B9_CBAD99_3D2615",366:"827C87_4F3937_605457_534C4E",367:"834741_4C281D_BE8F8C_AE6A65",368:"835984_39273A_4C334C_593D5A",369:"837667_DCD4C8_C5BAAC_3C2E22",370:"846556_503E33_61493D_5C4434",371:"848679_363630_AABBB7_4B4B44",372:"855D08_DAC31B_BF9B0C_AF860C",373:"85694C_D1A67A_3C2F22_EBBF8F",374:"857B61_ACE5D4_593D28_5B4334",375:"858362_9F9F80_9C9673_70714B",376:"85B9D3_C9EAF9_417277_528789",377:"866C5B_544237_B29B8C_AC8F7C",378:"872F2D_AB403E_682421_581F1C",379:"877B70_34302B_CBB3A4_524C44",380:"877C72_B6ACBB_36322D_4C443B",381:"878787_4C4C4C_646464_5C5C5C",382:"887153_E5C188_433729_C1A484",383:"888D8F_515454_646A6C_6C6C6D",384:"89204B_17080D_DA4377_F780B5",385:"8955D0_744CC4_EA4AEF_954DA4",386:"8A3B3D_DA5F62_461F20_BC7F81",387:"8A3DA1_D77CE4_C263D4_B75AC9",388:"8A5B34_F3BD7C_DA9758_BE7E45",389:"8A6565_2E214D_D48A5F_ADA59C",390:"8A7666_3C332C_C6AEA2_54443C",391:"8A7968_3C342D_C6B3A5_54443B",392:"8B7469_443E39_C7A797_544443",393:"8B795F_291504_EFE5D4_4A3518",394:"8B892C_D4E856_475E2D_47360A",395:"8C5945_D4C0B6_C3A49C_430504",396:"8CAEBC_3A4443_506463_DAEFEF",397:"8D553D_3C2419_5D3727_AA766C",398:"8D8D8D_DDDDDD_CCCCCC_B7B7B7",399:"8E6767_D9C4C4_C8ACAC_B89898",400:"8E7C67_E2C6A5_3B332A_C3AB94",401:"8E907C_B1B5A7_D7DBD0_CCCFBA",402:"8F4277_361530_BF538E_52274C",403:"8F4E20_E8B06B_391A08_CC8944",404:"8F5D3C_5B3B26_382416_70482E",405:"8F7B61_D6B892_4E4436_C3AC86",406:"8F894E_DAD79B_C9C384_C4BE7B",407:"903B2A_EC9888_D96747_58190D",408:"906867_C7B6BC_5D2E26_BEA4A3",409:"908887_3C3229_C7C6D0_554A45",410:"908E8E_292828_454444_595757",411:"909473_555D4B_C2CCA2_645B3C",412:"910E5A_E127C3_CF1CA3_C1158F",413:"926B48_4C2D0D_5F3913_AA8874",414:"927253_EECEA7_D8B792_C7A883",415:"935555_F6DAD9_D39393_593333",416:"936451_C29A8F_5F3A2B_361D14",417:"938C8D_403731_CECED8_554C4C",418:"942967_D292B5_C76E9E_551A4C",419:"945D43_E5AAA0_351F14_CC8B78",420:"94615B_DACED1_C3B9A4_CCABAA",421:"94624F_573529_24110C_733424",422:"9650CA_46236A_7239A6_633492",423:"965146_2B191D_DF7A5C_BFD6E1",424:"96785D_B8A398_63452C_6C5435",425:"975337_EEBE98_4B211C_D88659",426:"977970_E1D9D8_DAC8C1_C4B2AD",427:"98332E_4A100D_691A16_A85A5B",428:"989784_665542_BFECE5_6D644C",429:"9A5A55_31110D_582A24_703C34",430:"9A7467_D2C2BF_662D22_CCB2A5",431:"9AA8B6_313133_4E5055_D7EBF8",432:"9B4816_E8A138_CC7421_DC8827",433:"9B9994_E1E0DB_474643_544C4C",434:"9B9B9B_1E1E1E_5C5C5C_444444",435:"9C5B3B_49200A_E9C8AB_DDAB7D",436:"9CC338_4E671A_799F27_8CAC2C",437:"9D282A_38191D_DFC6CD_D6495A",438:"9D4343_E38989_D37474_CE6C6C",439:"9D602E_E4C363_D5A64F_C38A44",440:"9D7F6E_C6DAD4_6D4C4B_C6BBBC",441:"9D8F84_5D4544_D9D3C9_62555A",442:"9D9D9D_4E4E4E_646464_6C6C6C",443:"9E7C7E_DDCBD0_351D20_683B38",444:"9E9C77_6E6F4E_7C7C54_C7BF96",445:"9F1A27_F1AF7F_CD5845_D08441",446:"9F4738_CE958D_4F0C0A_C0837C",447:"9F7D30_B69F75_B9B7BE_CB9C4D",448:"9F886D_362F25_E8C9A4_5C4C3C",449:"9F9F9F_E4E4E4_D4D4D4_CCCCCC",450:"A05F31_D5C2BC_D9996F_42230E",451:"A0A8B0_424336_E7E9EF_545C5C",452:"A1824F_4A2A06_F7E29F_B3A598",453:"A27216_E9D036_D0AB24_DCB927",454:"A28766_E4D6C3_D6C4AA_CAB598",455:"A3B2A4_3B3E3D_676F6A_535C57",456:"A48DA4_E8DDE8_C9B7C9_D4C2D4",457:"A49994_695244_C4C2CF_76645C",458:"A67362_36150C_5E2E1E_F6C3BF",459:"A84337_611D18_3F110F_7C2A22",460:"A88C77_DAD2C7_623532_956229",461:"A95E4D_57261A_6E3223_773C24",462:"A971A9_E8CBE8_D4A8D4_DCB3DC",463:"A98D6A_F2D3AB_FBE6BE_695332",464:"A9A2A0_2F211C_544440_6D5E5A",465:"AA526C_EAA6C9_DC88AF_D17BA0",466:"AB2C2C_EBB4B3_561212_DE8484",467:"AB2D08_C35E5A_C75522_C56C70",468:"AB54A8_EBAAE9_DF8FDD_D37ED0",469:"AC171C_FA8593_E84854_D3464E",470:"AC725C_2E1610_663E31_E78F6B",471:"AC7F84_78463A_C4AABB_885454",472:"AC8942_432D19_6E4D27_5F3B1C",473:"AC8961_EBDAC3_D1B791_DCC2A0",474:"AD9E81_F1E5CE_6B5C3E_5A492A",475:"ADC2CD_DFF7FA_C9E6F5_C1DBEC",476:"AE9D99_29303B_585F70_875C33",477:"AF986F_CDB489_9C7C5B_7E6C4D",478:"AF987A_2F2416_523F27_6B5331",479:"AF9A72_504718_74652B_E2C2A2",480:"B06932_451B09_7B3E16_150804",481:"B09273_7A573D_C7AF97_84644C",482:"B0A2A8_866A63_E8E9F2_614C4F",483:"B0B0B0_6E6E6E_848484_8C8C8C",484:"B1A395_EFE6E1_635A47_786D5D",485:"B2674B_552913_7C442F_733919",486:"B26F52_4B2E2B_79493A_663B32",487:"B27744_5A2804_F6C488_EBB27D",488:"B38B76_40251D_745042_5F3A30",489:"B3AA93_F4EFD7_E1DDC2_DCD3BB",490:"B47A5B_301E14_704A31_633C23",491:"B4B29D_442D0D_604E2A_736542",492:"B5987E_F8E4DC_6F5939_E9CCBA",493:"B5BBB5_3B4026_6E745D_5C6147",494:"B62D33_E4868B_7E2D34_DD6469",495:"B66D59_F0C9B2_E5B49C_DAA084",496:"B67F6B_4B2E2A_6C3A34_F3DBC6",497:"B6B8B1_994A24_315C81_927963",498:"B76E5E_7F3A2F_EE938C_F8A5A1",499:"B7A763_E6E1CC_554A1E_6C6428",500:"B86137_FBCA6F_6F3C37_040404",501:"B9896A_5B341B_F4CAA3_6C4C2D",502:"B98A6D_7B4F38_D1A68F_8C5B43",503:"B9B37A_F1EED0_E5E4BA_DAD6A8",504:"B9CDD2_775339_958272_7F6A5E",505:"BA472D_CA6E67_C76150_CA6C59",506:"BA5DBA_F2BEF2_E69BE6_DC8CDC",507:"BA864A_5D381E_644422_FBE97A",508:"BA8979_DDCBCA_9A4726_892407",509:"BAADA8_ECE6E7_9A8378_E3DCD3",510:"BC5B43_95170B_EEAC92_DB8C7C",511:"BC928D_F9E2D6_654445_835A51",512:"BD0D0D_970404_7B0404_550404",513:"BD5345_460F11_732622_EDB7B1",514:"BDB466_F3EDC3_E3DD9F_ECE3AA",515:"BE5F5F_F4BDBD_ECA4A4_E29191",516:"BEE2E9_7E6A53_9AA09C_87837E",517:"BF7051_994C2D_E99A7B_DE8C74",518:"BF7745_F5D08E_E5AE6B_ECBC7C",519:"BF8E78_E5CCBF_753E32_4A261E",520:"BFAA83_F5EAD6_E1D0B1_EBDDC0",521:"BFB5A4_DEDCCB_D7D4CC_DCD3C2",522:"C05429_ED6129_94492A_834729",523:"C09E5C_DAD2B9_654429_81582D",524:"C1AA92_AD6E29_737889_CED1D7",525:"C1B3A1_F6EEE5_E1D7C7_ECE4D3",526:"C21338_920C24_E71C54_F34A7D",527:"C28E4E_845119_0B0805_713C0C",528:"C2A391_523728_785741_694836",529:"C2A584_363B41_71665B_8C7367",530:"C2AB7D_4A412E_7A6B4E_F9EDBE",531:"C30C0C_9F0404_830404_5C0404",532:"C33829_48171A_752523_942923",533:"C345EC_5F1DAA_9F31DB_872CCD",534:"C35C04_F9C30C_EE9F04_E08304",535:"C3CCD4_5F3B23_948A7B_A9A49A",536:"C47004_F9D00C_EDAF04_E09704",537:"C4A591_635448_F2D9D5_856D5B",538:"C4C6C6_4D5756_646463_7A8080",539:"C4DEDE_97B5B5_EAF9F9_ABC4C4",540:"C5A292_635247_F2D7D6_846A5B",541:"C5BBB6_F8F4F1_E2DAD6_ECE3DF",542:"C75F55_F8BDA9_EB9484_F4A494",543:"C7938D_E0DBE1_D1BBBC_D5CCCB",544:"C7B9A1_F8F1E4_EEE4D2_E4D8C4",545:"C7C0AC_2E181B_543B30_6B6270",546:"C7C7D7_4C4E5A_818393_6C6C74",547:"C87157_F8CBAE_E9A582_F2B394",548:"C88467_5B3333_875C5A_7A3822",549:"C8AF84_F9ECD7_EFDEBF_E6D1AF",550:"C8C8C8_3F3F3F_787878_5C5C5C",551:"C8D1DC_575B62_818892_6E747B",552:"C98D7F_3B0B0B_A97667_94433F",553:"C99A8B_491B0E_6E4136_8A4D28",554:"C9C7BE_55514B_888279_7B6E5F",555:"CA4FE1_6B2398_A337C7_9334BC",556:"CA8892_F9D7DC_EBB8C0_F3C4CC",557:"CAA094_875343_956255_EADEDC",558:"CAA78A_F9E7D7_EAD0B9_F3DCC3",559:"CAAC80_FAEBD5_F2DEBF_EAD1AF",560:"CAB094_F9ECDD_EFDEC8_E8D4BD",561:"CAB79D_F9F1E3_F1E5D1_E9DAC6",562:"CAE24E_6C9A23_A3C737_B3D43C",563:"CB4934_FB9971_F07554_F68464",564:"CB4E88_F99AD6_F384C3_ED75B9",565:"CB5E3B_FABC7A_EF965E_F4A46C",566:"CB7146_551D0F_7C270D_E5AB9C",567:"CB7846_753C22_AB5C32_B46C3C",568:"CB919B_F9DDE1_ECC0C8_F4CCD4",569:"CBCBCB_595959_8C8C8C_747474",570:"CC7C5F_A15436_B26346_AF5C3C",571:"CC9A7E_8A5249_C06A3E_DADADA",572:"CCC5C9_3B2B2B_67585B_7F7375",573:"CCF6FA_9DD9EB_82C5D9_ACD4E4",574:"CDC3B8_5A3F3C_67545A_8D7769",575:"CDCBC8_444342_696765_81807E",576:"CE8C15_EAC79B_DDAB57_F9C962",577:"CE8F3D_F0D2B0_F3C77D_E6B278",578:"CEB299_6B5C4C_887564_746355",579:"D04444_AF2F2F_8B2424_9B2C2C",580:"D07E3F_FBBD1F_8D2840_24120C",581:"D0CCCB_524D50_928891_727581",582:"D0D3BE_816854_998366_685146",583:"D1AC04_F8E50A_EDD004_B38D04",584:"D3CAAB_8C866E_C0B89A_AEA68A",585:"D4855F_92512D_AE6742_A75C2C",586:"D54C2B_5F1105_F39382_F08375",587:"D5B5B4_9E6C6F_F5E9EF_A57986",588:"D5D5D5_929292_ACACAC_B4B4B4",589:"D64480_E27497_EA9BB1_CD156F",590:"D7D7C3_AAAA92_F5F5EA_BCBCA4",591:"D7DFDB_AAB5AF_F5FAF7_BCC4C4",592:"D8388B_230A14_FCC8FC_FC71E1",593:"D8C949_F5F19E_6B7855_9A9858",594:"D8D8E5_9D9DAF_B4B4C4_B4B4CC",595:"DA5788_DE94BD_E078A3_DD83B4",596:"DBDBBB_F7F7E4_AFAF89_C4C49C",597:"DC3E04_B52604_FC7D20_F85F04",598:"DE9261_86361E_A85A37_944C2C",599:"DEDEC4_B5B597_F9F9EA_C4C4AB",600:"DEE3E8_A6AEB5_BCC4CC_BCC4C4",601:"DEE8DE_A6B5A6_BCCCBC_BCC4BC",602:"DEE8E8_A6B5B5_BCCCCC_BAC4C4",603:"DFD9C2_B5AE92_F9F7EA_C4C4A4",604:"DFDBB7_F9F8E3_B5AF86_BCBC8C",605:"DFDFCA_4D2D07_6B5224_857145",606:"DFDFD6_58544E_81766A_989288",607:"E1E1D4_777C7B_9FA19A_898F8D",608:"E1E1E0_363636_989897_747472",609:"E2D3BC_867255_B39E7F_96836C",610:"E2E2E7_AEAEB5_C4C4CC_C4C4C4",611:"E42E12_F35132_F86949_B71B0A",612:"E5DED7_AFA69D_C4BCB4_C3BAAB",613:"E6BF3C_5A4719_977726_FCFC82",614:"E6E3E3_B5AFAF_CCC4C4_C4C4C4",615:"E6E6E6_AAAAAA_C4C4C4_CCCCCC",616:"E7632F_FBA06B_BB2905_FB865E",617:"E7E2D8_B1AA9D_C9C2B3_BCB4AC",618:"E80404_B50404_CB0404_FC3333",619:"E804E8_B504B5_CC04CC_FC33FC",620:"E8DEE1_B5A6AA_CCBCC1_C4BBBC",621:"E8E5DE_B5AFA6_CCC5BC_C4C4BB",622:"E8E8DE_B5B5A6_CCCCBC_C4C4BA",623:"E9CCA1_A63106_DF8C3B_621304",624:"EA783E_6D4830_905837_FCDC6C",625:"EAD8D6_B59A97_CCB4B0_C9ABAB",626:"EAEAEA_B5B5B5_CCCCCC_D4D4D4",627:"EAEAEA_B6B6B6_CCCCCC_C4C4C4",628:"ED4630_791A0E_A42716_501009",629:"ED5087_FAC3D0_1C0B0C_FC84CC",630:"ED7F04_FCD60E_7E2D04_B73E04",631:"EDED06_B5B504_CCCC04_D4D404",632:"EE4128_FC8E82_9A0704_BF0F05",633:"EEECFB_BFB6D5_D0C8EB_CCC4DC",634:"F0D504_FBFAD3_B98609_CDA204",635:"F75F0B_461604_9A3004_FB9D2F",636:"F77777_FBE1E1_FAB2B2_FBC4C4",637:"F79686_FCCBD4_E76644_E76B56",638:"F9E6C7_FCF7DF_EDD3AA_F1D4B4",639:"FBB43F_FBE993_FB552E_FCDD65",640:"FBB82D_FBEDBF_FBDE7D_FB7E05"};const Rt=Gt[0];const qt={0:"151_norm.JPG",1:"152_norm.JPG",2:"153_norm.JPG",3:"154_norm.JPG",4:"155_norm.JPG",5:"156_norm.JPG",6:"157_norm.JPG",7:"158_norm.JPG",8:"159_norm.JPG",9:"160_norm.JPG",10:"161_norm.JPG",11:"162_norm.JPG",12:"163_norm.JPG",13:"164_norm.JPG",14:"165_norm.JPG",15:"166_norm.JPG",16:"167_norm.JPG",17:"168_norm.JPG",18:"169_norm.JPG",19:"170_norm.JPG",20:"171_norm.JPG",21:"172_norm.JPG",22:"173_norm.JPG",23:"174_norm.jpg",24:"175_norm.JPG",25:"176_norm.JPG",26:"177_norm.JPG",27:"178_norm.JPG",28:"179_norm.JPG",29:"180_norm.JPG",30:"181_norm.JPG",31:"182_norm.JPG",32:"183_norm.JPG",33:"184_norm.JPG",34:"185_norm.JPG",35:"186_norm.JPG",36:"187_norm.JPG",37:"188_norm.JPG",38:"189_norm.JPG",39:"190_norm.JPG",40:"191_norm.JPG",41:"192_norm.JPG",42:"193_norm.JPG",43:"194_norm.JPG",44:"195_norm.JPG",45:"196_norm.JPG",46:"197_norm.JPG",47:"198_norm.JPG",48:"199_norm.JPG",49:"200_norm.JPG",50:"201_norm.jpg",51:"202_norm.jpg",52:"203_norm.jpg",53:"204_norm.jpg",54:"205_norm.jpg",55:"206_norm.jpg",56:"207_norm.jpg",57:"208_norm.jpg",58:"209_norm.jpg",59:"210_norm.jpg",60:"211_norm.jpg",61:"212_norm.jpg",62:"213_norm.jpg",63:"214_norm.jpg",64:"215_norm.jpg",65:"216_norm.jpg",66:"217_norm.jpg",67:"218_norm.jpg",68:"219_norm.jpg",69:"220_norm.jpg",70:"221_norm.jpg",71:"222_norm.jpg",72:"223_norm.jpg",73:"224_norm.jpg",74:"225_norm.jpg",75:"226_norm.jpg"},Wt=qt[0];const Yt={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};class Kt extends h.Group{constructor(){super(),this.color=new h.Color("white")}}let Zt,Jt;const $t=D.createContext(null),er=new h.Matrix4,tr=new h.Vector3,rr=new h.Color,nr=D.forwardRef((({children:e,range:t,limit:r=1e3,...n},a)=>{const s=D.useRef(null),[i,u]=D.useState([]),[[c,l]]=D.useState((()=>[new Float32Array(3*r),new Float32Array([...new Array(3*r)].map((()=>1)))]));D.useLayoutEffect((()=>{s.current.geometry.drawRange.count=Math.min(r,void 0!==t?t:r,i.length)}),[i,t]),D.useEffect((()=>{s.current.geometry.attributes.position.needsUpdate=!0})),o.useFrame((()=>{for(s.current.updateMatrix(),s.current.updateMatrixWorld(),er.copy(s.current.matrixWorld).invert(),Zt=0;Zt<i.length;Zt++)Jt=i[Zt].current,Jt.getWorldPosition(tr).applyMatrix4(er),tr.x===c[3*Zt]&&tr.y===c[3*Zt+1]&&tr.z===c[3*Zt+2]||(tr.toArray(c,3*Zt),s.current.geometry.attributes.position.needsUpdate=!0,Jt.matrixWorldNeedsUpdate=!0),Jt.color.equals(rr.fromArray(l,3*Zt))||(Jt.color.toArray(l,3*Zt),s.current.geometry.attributes.color.needsUpdate=!0)}));const A=D.useMemo((()=>{const e={};for(Zt=0;Zt<i.length;Zt++){var t;Object.assign(e,null==(t=i[Zt].current)?void 0:t.__r3f.handlers)}return Object.keys(e).reduce(((e,t)=>({...e,[t]:e=>{var r,n,o;const a=null==(r=i[e.index])?void 0:r.current;return null==a||null==(n=a.__r3f)||null==(o=n.handlers)?void 0:o[t]({...e,object:a})}})),{})}),[e,i]),f=D.useMemo((()=>({subscribe:e=>(u((t=>[...t,e])),()=>u((t=>t.filter((t=>t.current!==e.current)))))})),[]);return D.createElement("points",B.default({matrixAutoUpdate:!1,ref:x.default([a,s])},A,n),D.createElement("bufferGeometry",null,D.createElement("bufferAttribute",{attachObject:["attributes","position"],count:c.length/3,array:c,itemSize:3,usage:h.DynamicDrawUsage}),D.createElement("bufferAttribute",{attachObject:["attributes","color"],count:l.length/3,array:l,itemSize:3,usage:h.DynamicDrawUsage})),D.createElement($t.Provider,{value:f},e))})),or=D.forwardRef((({children:e,...t},r)=>{D.useMemo((()=>o.extend({Position:Kt})),[]);const n=D.useRef(),{subscribe:a}=D.useContext($t);return D.useLayoutEffect((()=>a(n)),[]),D.createElement("position",B.default({ref:x.default([r,n])},t),e)}));let ar,sr;const ir=D.createContext(null),ur=new h.Matrix4,cr=new h.Matrix4,lr=new h.Matrix4,Ar=new h.Color,fr=new h.Vector3,Cr=new h.Quaternion,mr=new h.Vector3,pr=D.forwardRef((({context:e,children:t,...r},n)=>{D.useMemo((()=>o.extend({Position:Kt})),[]);const a=D.useRef(),{subscribe:s}=D.useContext(e||ir);return D.useLayoutEffect((()=>s(a)),[]),D.createElement("position",B.default({ref:x.default([n,a])},r),t)})),dr=D.forwardRef((({children:e,range:t,limit:r=1e3,frames:n=1/0,...a},s)=>{const[{context:i,instance:u}]=D.useState((()=>{const e=D.createContext(null);return{context:e,instance:D.forwardRef(((t,r)=>D.createElement(pr,B.default({context:e},t,{ref:r}))))}})),c=D.useRef(null),[l,A]=D.useState([]),[[f,C]]=D.useState((()=>{const e=new Float32Array(16*r);for(ar=0;ar<r;ar++)lr.identity().toArray(e,16*ar);return[e,new Float32Array([...new Array(3*r)].map((()=>1)))]}));D.useLayoutEffect((()=>{c.current.count=c.current.instanceMatrix.updateRange.count=c.current.instanceColor.updateRange.count=Math.min(r,void 0!==t?t:r,l.length)}),[l,t]),D.useEffect((()=>{c.current.instanceMatrix.needsUpdate=!0}));let m=0;o.useFrame((e=>{if(n===1/0||m<n){for(c.current.updateMatrix(),c.current.updateMatrixWorld(),ur.copy(c.current.matrixWorld).invert(),ar=0;ar<l.length;ar++)sr=l[ar].current,sr.matrixWorld.decompose(fr,Cr,mr),cr.compose(fr,Cr,mr).premultiply(ur),cr.equals(lr.fromArray(f,16*ar))||(cr.toArray(f,16*ar),c.current.instanceMatrix.needsUpdate=!0),sr.color.equals(Ar.fromArray(C,3*ar))||(sr.color.toArray(C,3*ar),c.current.instanceColor.needsUpdate=!0);m++}}));const p=D.useMemo((()=>{const e={};for(ar=0;ar<l.length;ar++){var t;Object.assign(e,null==(t=l[ar].current)?void 0:t.__r3f.handlers)}return Object.keys(e).reduce(((e,t)=>({...e,[t]:e=>{var r,n,o;const a=null==(r=l[e.instanceId])?void 0:r.current;return null==a||null==(n=a.__r3f)||null==(o=n.handlers)?void 0:o[t]({...e,object:a})}})),{})}),[e,l]),d=D.useMemo((()=>({subscribe:e=>(A((t=>[...t,e])),()=>A((t=>t.filter((t=>t.current!==e.current)))))})),[]);return D.createElement("instancedMesh",B.default({matrixAutoUpdate:!1,ref:x.default([s,c]),args:[null,null,0]},p,a),D.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:f.length/16,array:f,itemSize:16,usage:h.DynamicDrawUsage}),D.createElement("instancedBufferAttribute",{attach:"instanceColor",count:C.length/3,array:C,itemSize:3,usage:h.DynamicDrawUsage}),"function"==typeof e?D.createElement(i.Provider,{value:d},e(u)):D.createElement(ir.Provider,{value:d},e))}));const vr=D.createContext(null),Br=e=>e instanceof h.Vector3?e.toArray():e,Dr=D.forwardRef(((e,t)=>{const{limit:r=1e3,lineWidth:n=1,children:a,...s}=e,[u,c]=D.useState([]),[l]=D.useState((()=>new i.Line2)),[A]=D.useState((()=>new i.LineMaterial)),[f]=D.useState((()=>new i.LineSegmentsGeometry)),[C]=D.useState((()=>new h.Vector2(512,512))),[m]=D.useState((()=>Array(r).fill(0))),[p]=D.useState((()=>Array(r).fill(1))),d=D.useMemo((()=>({subscribe:e=>(c((t=>[...t,e])),()=>c((t=>t.filter((t=>t.current!==e.current)))))})),[]);return o.useFrame((()=>{m.length=6*u.length,p.length=6*u.length,u.forEach(((e,t)=>{const r=e.current;if(r){const e=Br(r.start),o=Br(r.end),a=(e=>e instanceof h.Color?e.toArray():e)(r.color);for(var n=0;n<3;n++)m[6*t+n]=e[n],m[6*t+n+3]=o[n],p[6*t+n]=a[n],p[6*t+n+3]=a[n]}})),f.setColors(p),f.setPositions(m),l.computeLineDistances()})),D.createElement("primitive",{object:l,ref:t},D.createElement("primitive",{object:f,attach:"geometry"}),D.createElement("primitive",B.default({object:A,attach:"material",vertexColors:!0,resolution:C,linewidth:n},s)),D.createElement(vr.Provider,{value:d},a))})),Er=D.forwardRef(((e,t)=>{const{start:r,end:n,color:o}=e,a=D.useContext(vr);if(!a)throw"Segment must used inside Segments component.";const s=D.useRef({start:[0,0,0],end:[0,0,0],color:[1,1,1]});return D.useLayoutEffect((()=>a.subscribe(t||s)),[]),D.useLayoutEffect((()=>{var e=t||s;r&&Object.assign(e.current,{start:r}),n&&Object.assign(e.current,{end:n}),o&&Object.assign(e.current,{color:o})}),[r,n,o]),null})),hr=D.forwardRef((({children:e,distances:t,...r},n)=>{const a=D.useRef(null);return D.useLayoutEffect((()=>{const{current:e}=a;e.levels.length=0,e.children.forEach(((r,n)=>e.levels.push({object:r,distance:t[n]})))})),o.useFrame((e=>{var t;return null==(t=a.current)?void 0:t.update(e.camera)})),D.createElement("lOD",B.default({ref:x.default([a,n])},r),e)}));const _r=new n.Matrix4,xr=new n.Ray,gr=new n.Sphere,Fr=new n.Vector3;exports.AdaptiveDpr=function({pixelated:e}){const t=o.useThree((e=>e.gl)),r=o.useThree((e=>e.internal.active)),n=o.useThree((e=>e.performance.current)),a=o.useThree((e=>e.viewport.initialDpr)),s=o.useThree((e=>e.setDpr));return D.useEffect((()=>{const n=t.domElement;return()=>{r&&s(a),e&&n&&(n.style.imageRendering="auto")}}),[]),D.useEffect((()=>{s(n*a),e&&t.domElement&&(t.domElement.style.imageRendering=1===n?"auto":"pixelated")}),[n]),null},exports.AdaptiveEvents=function(){const e=o.useThree((e=>e.get)),t=o.useThree((e=>e.performance.current));return D.useEffect((()=>{const t=e().raycaster.enabled;return()=>{e().raycaster.enabled=t}}),[]),D.useEffect((()=>{e().raycaster.enabled=1===t}),[t]),null},exports.ArcballControls=de,exports.BakeShadows=function(){const e=o.useThree((e=>e.gl));return D.useEffect((()=>(e.shadowMap.autoUpdate=!1,e.shadowMap.needsUpdate=!0,()=>{e.shadowMap.autoUpdate=e.shadowMap.needsUpdate=!0})),[]),null},exports.Billboard=q,exports.Bounds=function({children:e,damping:t=6,fit:r,clip:n,margin:a=1.2,eps:s=.01}){const i=D.useRef(null),u=o.useThree((e=>e.camera)),c=o.useThree((e=>e.controls)),l=o.useThree((e=>e.invalidate));function A(e,t){return Math.abs(e.x-t.x)<s&&Math.abs(e.y-t.y)<s&&Math.abs(e.z-t.z)<s}function f(e,t,r,n){e.x=h.MathUtils.damp(e.x,t.x,r,n),e.y=h.MathUtils.damp(e.y,t.y,r,n),e.z=h.MathUtils.damp(e.z,t.z,r,n)}const[C]=D.useState((()=>({animating:!1,focus:new h.Vector3,camera:new h.Vector3,zoom:1}))),[m]=D.useState((()=>({focus:new h.Vector3,camera:new h.Vector3,zoom:1}))),p=D.useMemo((()=>{const e=new h.Box3;function r(){const t=e.getSize(new h.Vector3),r=e.getCenter(new h.Vector3),n=Math.max(t.x,t.y,t.z),o=tt(u)?4*n:n/(2*Math.atan(Math.PI*u.fov/360)),s=tt(u)?4*n:o/u.aspect;return{size:t,center:r,distance:a*Math.max(o,s)}}return{getSize:r,refresh(t){return e.setFromObject(t||i.current),this},clip(){const{distance:e}=r();return c&&(c.maxDistance=10*e),u.near=e/100,u.far=100*e,u.updateProjectionMatrix(),c&&c.update(),this},fit(){C.camera.copy(u.position),c&&C.focus.copy(c.target);const{center:n,distance:o}=r(),s=n.clone().sub(u.position).normalize().multiplyScalar(o);if(m.camera.copy(n).sub(s),m.focus.copy(n),tt(u)){C.zoom=u.zoom;let r=0,o=0;const s=[new h.Vector3(e.min.x,e.min.y,e.min.z),new h.Vector3(e.min.x,e.max.y,e.min.z),new h.Vector3(e.min.x,e.min.y,e.max.z),new h.Vector3(e.min.x,e.max.y,e.max.z),new h.Vector3(e.max.x,e.max.y,e.max.z),new h.Vector3(e.max.x,e.max.y,e.min.z),new h.Vector3(e.max.x,e.min.y,e.max.z),new h.Vector3(e.max.x,e.min.y,e.min.z)];n.applyMatrix4(u.matrixWorldInverse);for(const e of s)e.applyMatrix4(u.matrixWorldInverse),r=Math.max(r,Math.abs(e.y-n.y)),o=Math.max(o,Math.abs(e.x-n.x));r*=2,o*=2;const i=(u.top-u.bottom)/r,c=(u.right-u.left)/o;m.zoom=Math.min(i,c)/a,t||(u.zoom=m.zoom,u.updateProjectionMatrix())}return t?C.animating=!0:(u.position.copy(m.camera),u.lookAt(m.focus),c&&(c.target.copy(m.focus),c.update()),l()),this}}}),[u,c,a,t,l]);return D.useLayoutEffect((()=>{if(p.refresh(),r&&p.fit(),n&&p.clip(),c){const e=e=>C.animating=!1;return c.addEventListener("start",e),()=>c.removeEventListener("start",e)}}),[p,r,c]),o.useFrame(((e,r)=>{if(C.animating){if(f(C.focus,m.focus,t,r),f(C.camera,m.camera,t,r),C.zoom=h.MathUtils.damp(C.zoom,m.zoom,t,r),u.position.copy(C.camera),tt(u)&&(u.zoom=C.zoom,u.updateProjectionMatrix()),c?(c.target.copy(C.focus),c.update()):u.lookAt(C.focus),l(),tt(u)&&!(Math.abs(C.zoom-m.zoom)<s))return;if(!tt(u)&&!A(C.camera,m.camera))return;if(c&&!A(C.focus,m.focus))return;C.animating=!1}})),D.createElement("group",{ref:i},D.createElement(rt.Provider,{value:p},e))},exports.Box=xt,exports.CameraShake=le,exports.Center=et,exports.Circle=gt,exports.Cloud=function({opacity:e=.5,speed:t=.4,width:r=10,length:n=1.5,segments:a=20,dir:s=1,...i}){const u=D.useRef(),c=Y("data:image/png;base64,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"),l=D.useMemo((()=>[...new Array(a)].map(((e,n)=>({x:r/2-Math.random()*r,y:r/2-Math.random()*r,scale:.4+Math.sin((n+1)/a*Math.PI)*(10*(.2+Math.random())),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*t})))),[r,a,t]);return o.useFrame((e=>{var t;return null==(t=u.current)?void 0:t.children.forEach(((t,r)=>{t.rotation.z+=l[r].rotation*s,t.scale.setScalar(l[r].scale+(1+Math.sin(e.clock.getElapsedTime()/10))/2*r/10)}))})),D.createElement("group",i,D.createElement("group",{position:[0,0,a/2*n],ref:u},l.map((({x:t,y:r,scale:o,density:a},s)=>D.createElement(q,{key:s,scale:[o,o,o],position:[t,r,-s*n],lockZ:!0},D.createElement("meshStandardMaterial",{map:c,transparent:!0,opacity:o/6*a*e,depthTest:!1}))))))},exports.Cone=Ft,exports.ContactShadows=Bt,exports.CubeCamera=function({children:e,fog:t,frames:r=1/0,resolution:a=256,near:s=1,far:i=1e3,...u}){const c=D.useRef(),[l,A]=D.useState(),f=o.useThree((({scene:e})=>e)),C=o.useThree((({gl:e})=>e)),m=D.useMemo((()=>new n.WebGLCubeRenderTarget(a,{minFilter:n.LinearFilter,magFilter:n.LinearFilter,format:n.RGBFormat,encoding:C.outputEncoding})),[a]);let p=0;return o.useFrame((()=>{if(l&&c.current&&(r===1/0||p<r)){c.current.traverse((e=>e.visible=!1));const e=f.fog;f.fog=t||e,l.update(C,f),f.fog=e,c.current.traverse((e=>e.visible=!0)),p++}})),D.createElement("group",u,D.createElement("cubeCamera",{ref:A,args:[s,i,m]}),D.createElement("group",{ref:c},e(m.texture)))},exports.CubicBezierLine=J,exports.CurveModifier=at,exports.CycleRaycast=function({onChanged:e,portal:t,preventDefault:r=!0,scroll:n=!0,keyCode:a=9}){const s=D.useRef(0),i=o.useThree((e=>e.raycaster)),u=o.useThree((e=>e.get)),c=o.useThree((e=>e.gl));return D.useEffect((()=>{var o;let l,A=[];const f=i.filter,C=null!==(o=null==t?void 0:t.current)&&void 0!==o?o:c.domElement.parentNode,m=()=>C&&e&&e(A,Math.round(s.current)%A.length);i.filter=(e,t)=>{let r=[...e];r.length===A.length&&A.every((e=>r.map((e=>e.object.uuid)).includes(e.object.uuid)))||(s.current=0,A=r,m()),f&&(r=f(r,t));for(let e=0;e<Math.round(s.current)%r.length;e++){const e=r.shift();r=[...r,e]}return r};const p=e=>{var t,r;s.current=e(s.current),null==(t=u().events.handlers)||t.onPointerCancel(void 0),null==(r=u().events.handlers)||r.onPointerMove(l),m()},d=e=>{(e.keyCode||e.which===a)&&(r&&e.preventDefault(),A.length>1&&p((e=>e+1)))},v=e=>{r&&e.preventDefault();let t=0;e||(e=window.event),e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),A.length>1&&p((e=>Math.abs(e-t)))},B=e=>l=e;return document.addEventListener("pointermove",B,{passive:!0}),n&&document.addEventListener("wheel",v),void 0!==a&&document.addEventListener("keydown",d),()=>{i.filter=f,void 0!==a&&document.removeEventListener("keydown",d),n&&document.removeEventListener("wheel",v),document.removeEventListener("pointermove",B)}}),[c,u,i,r,n,a]),null},exports.Cylinder=wt,exports.DepthBuffer=ot,exports.Detailed=hr,exports.DeviceOrientationControls=Ae,exports.Dodecahedron=jt,exports.Effects=oe,exports.Environment=re,exports.Extrude=Xt,exports.FirstPersonControls=De,exports.FlyControls=fe,exports.GizmoHelper=({alignment:e="bottom-right",margin:t=[80,80],renderPriority:r=0,onUpdate:a,onTarget:s,children:i})=>{const u=o.useThree((({size:e})=>e)),c=o.useThree((({camera:e})=>e)),l=o.useThree((({controls:e})=>e)),A=o.useThree((({gl:e})=>e)),f=o.useThree((({scene:e})=>e)),C=o.useThree((({invalidate:e})=>e)),m=D.useRef(),p=D.useRef(),d=D.useRef(null),[v]=D.useState((()=>new n.Scene)),B=D.useRef(!1),E=D.useRef(0),h=D.useRef(new n.Vector3(0,0,0));D.useEffect((()=>(f.background&&(m.current=f.background,f.background=null,v.background=m.current),()=>{m.current&&(f.background=m.current)})),[]);o.useFrame(((e,t)=>{var r;d.current&&p.current&&((e=>{if(!B.current)return;if(we.angleTo(ye)<.01)return void(B.current=!1);const t=e*xe;we.rotateTowards(ye,t),c.position.set(0,0,1).applyQuaternion(we).multiplyScalar(E.current).add(h.current),c.up.set(0,1,0).applyQuaternion(we).normalize(),c.quaternion.copy(we),a?a():l&&l.update(),C()})(t),Fe.copy(c.matrix).invert(),null==(r=p.current)||r.quaternion.setFromRotationMatrix(Fe),A.autoClear=!1,A.clearDepth(),A.render(v,d.current))}),r);const _={tweenCamera:e=>{B.current=!0,(l||s)&&(h.current=(null==l?void 0:l.target)||(null==s?void 0:s())),E.current=c.position.distanceTo(Pe),we.copy(c.quaternion),be.copy(e).multiplyScalar(E.current).add(Pe),ge.lookAt(be),ye.copy(ge.quaternion),C()},raycast:Ee(d)},[x,g]=t,F=e.endsWith("-left")?-u.width/2+x:u.width/2-x,w=e.startsWith("top-")?u.height/2-g:-u.height/2+g;return o.createPortal(D.createElement(he.Provider,{value:_},D.createElement(ue,{ref:d,makeDefault:!1,position:[0,0,200]}),D.createElement("group",{ref:p,position:[F,w,0]},i)),v)},exports.GizmoViewcube=e=>D.createElement("group",{scale:[60,60,60]},D.createElement(ke,e),Xe.map(((t,r)=>D.createElement(Ne,B.default({key:r,position:t,dimensions:Qe[r]},e)))),Oe.map(((t,r)=>D.createElement(Ne,B.default({key:r,position:t,dimensions:je},e)))),D.createElement("ambientLight",{intensity:.5}),D.createElement("pointLight",{position:[10,10,10],intensity:.5})),exports.GizmoViewport=({hideNegativeAxes:e,disabled:t,font:r="18px Inter var, Arial, sans-serif",axisColors:n=["#ff3653","#0adb50","#2c8fdf"],labelColor:o="#000",onClick:a,...s})=>{const[i,u,c]=n,{tweenCamera:l,raycast:A}=_e(),f={font:r,disabled:t,labelColor:o,raycast:A,onClick:a,onPointerDown:t?void 0:e=>{l(e.object.position),e.stopPropagation()}};return D.createElement("group",B.default({scale:40},s),D.createElement(Ie,{color:i,rotation:[0,0,0]}),D.createElement(Ie,{color:u,rotation:[0,0,Math.PI/2]}),D.createElement(Ie,{color:c,rotation:[0,-Math.PI/2,0]}),D.createElement(Ue,B.default({arcStyle:i,position:[1,0,0],label:"X"},f)),D.createElement(Ue,B.default({arcStyle:u,position:[0,1,0],label:"Y"},f)),D.createElement(Ue,B.default({arcStyle:c,position:[0,0,1],label:"Z"},f)),!e&&D.createElement(D.Fragment,null,D.createElement(Ue,B.default({arcStyle:i,position:[-1,0,0]},f)),D.createElement(Ue,B.default({arcStyle:u,position:[0,-1,0]},f)),D.createElement(Ue,B.default({arcStyle:c,position:[0,0,-1]},f))),D.createElement("ambientLight",{intensity:.5}),D.createElement("pointLight",{position:[10,10,10],intensity:.5}))},exports.GradientTexture=function({stops:e,colors:t,size:r=2048,...n}){const o=D.useMemo((()=>{const n=document.createElement("canvas"),o=n.getContext("2d");n.width=16,n.height=r;const a=o.createLinearGradient(0,0,0,r);let s=e.length;for(;s--;)a.addColorStop(e[s],t[s]);o.fillStyle=a,o.fillRect(0,0,16,r);const i=new h.Texture(n);return i.needsUpdate=!0,i}),[e]);return D.useEffect((()=>()=>{o.dispose()}),[o]),D.createElement("primitive",B.default({object:o,attach:"map"},n))},exports.Html=j,exports.Icosahedron=Tt,exports.Image=ie,exports.Instance=pr,exports.Instances=dr,exports.IsObject=W,exports.Lathe=Qt,exports.Line=K,exports.Loader=function({containerStyles:e,innerStyles:t,barStyles:r,dataStyles:n,dataInterpolation:o=V,initialState:a=(e=>e)}){const{active:s,progress:i}=Q(),u=D.useRef(0),c=D.useRef(0),l=D.useRef(null),[A,f]=D.useState(a(s));D.useEffect((()=>{let e;return s!==A&&(e=setTimeout((()=>f(s)),300)),()=>clearTimeout(e)}),[A,s]);const C=D.useCallback((()=>{l.current&&(u.current+=(i-u.current)/2,(u.current>.95*i||100===i)&&(u.current=i),l.current.innerText=o(u.current),u.current<i&&(c.current=requestAnimationFrame(C)))}),[o,i]);return D.useEffect((()=>(C(),()=>cancelAnimationFrame(c.current))),[C]),A?D.createElement("div",{style:{...k.container,opacity:s?1:0,...e}},D.createElement("div",null,D.createElement("div",{style:{...k.inner,...t}},D.createElement("div",{style:{...k.bar,transform:`scaleX(${i/100})`,...r}}),D.createElement("span",{ref:l,style:{...k.data,...n}})))):null},exports.MapControls=Ce,exports.Merged=function({meshes:e,children:t,...r}){const n=Array.isArray(e);if(!n)for(let t of Object.keys(e))e[t].isMesh||delete e[t];return D.createElement(y.default,{components:(n?e:Object.values(e)).map((({geometry:e,material:t})=>D.createElement(dr,B.default({key:e.uuid,geometry:e,material:t},r))))},(r=>n?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{}))))},exports.MeshDistortMaterial=it,exports.MeshReflectorMaterial=Ke,exports.MeshWobbleMaterial=ct,exports.Octahedron=Ot,exports.OrbitControls=me,exports.OrthographicCamera=ue,exports.Parametric=Vt,exports.PerspectiveCamera=ce,exports.Plane=Pt,exports.Point=or,exports.PointMaterial=At,exports.PointMaterialImpl=lt,exports.PointerLockControls=Be,exports.Points=nr,exports.Polyhedron=Ht,exports.PositionalAudio=$,exports.Preload=function({all:e,scene:t,camera:r}){const a=o.useThree((({gl:e})=>e)),s=o.useThree((({camera:e})=>e)),i=o.useThree((({scene:e})=>e));return D.useLayoutEffect((()=>{const o=[];e&&(t||i).traverse((e=>{!1===e.visible&&(o.push(e),e.visible=!0)})),a.compile(t||i,r||s);const u=new n.WebGLCubeRenderTarget(128);new n.CubeCamera(.01,1e5,u).update(a,t||i),u.dispose(),o.forEach((e=>e.visible=!1))}),[]),null},exports.QuadraticBezierLine=Z,exports.Reflector=Ze,exports.Ring=St,exports.RoundedBox=Nt,exports.ScreenQuad=Ut,exports.Scroll=R,exports.ScrollControls=function({eps:e=1e-5,enabled:t=!0,infinite:r,horizontal:n,pages:a=1,distance:s=1,damping:i=4,children:u}){const{gl:c,size:l,invalidate:A,events:f,raycaster:C}=o.useThree(),[m]=D.useState((()=>document.createElement("div"))),[p]=D.useState((()=>document.createElement("div"))),[d]=D.useState((()=>document.createElement("div"))),v=c.domElement.parentNode,B=D.useRef(0),E=D.useMemo((()=>({el:m,eps:e,fill:p,fixed:d,horizontal:n,damping:i,offset:0,delta:0,scroll:B,pages:a,range(e,t,r=0){const n=e-r,o=n+t+2*r;return this.offset<n?0:this.offset>o?1:(this.offset-n)/(o-n)},curve(e,t,r=0){return Math.sin(this.range(e,t,r)*Math.PI)},visible(e,t,r=0){const n=e-r,o=n+t+2*r;return this.offset>=n&&this.offset<=o}})),[e,i,n,a]);D.useEffect((()=>{m.style.position="absolute",m.style.width="100%",m.style.height="100%",m.style[n?"overflowX":"overflowY"]="auto",m.style[n?"overflowY":"overflowX"]="hidden",m.style.top="0px",m.style.left="0px",d.style.position="sticky",d.style.top="0px",d.style.left="0px",d.style.width="100%",d.style.height="100%",d.style.overflow="hidden",m.appendChild(d),p.style.height=n?"100%":a*s*100+"%",p.style.width=n?a*s*100+"%":"100%",p.style.pointerEvents="none",m.appendChild(p),v.appendChild(m),m[n?"scrollLeft":"scrollTop"]=1;const e="boolean"!=typeof f.connected?f.connected:c.domElement;requestAnimationFrame((()=>null==f.connect?void 0:f.connect(m)));const t=C.computeOffsets;return C.computeOffsets=({clientX:e,clientY:t})=>({offsetX:e-v.offsetLeft,offsetY:t-v.offsetTop}),()=>{v.removeChild(m),C.computeOffsets=t,null==f.connect||f.connect(e)}}),[a,s,n,m,p,d,v]),D.useEffect((()=>{const e=l[n?"width":"height"],o=m[n?"scrollWidth":"scrollHeight"],a=o-e;let s=0,i=!0,u=!0;const c=e=>{if(t&&!u&&(A(),s=m[n?"scrollLeft":"scrollTop"],B.current=s/a,r)){if(!i)if(s>=a){const e=1-E.offset;m[n?"scrollLeft":"scrollTop"]=1,B.current=E.offset=-e,i=!0}else if(s<=0){const e=1+E.offset;m[n?"scrollLeft":"scrollTop"]=o,B.current=E.offset=e,i=!0}i&&setTimeout((()=>i=!1),40)}};m.addEventListener("scroll",c,{passive:!0}),requestAnimationFrame((()=>u=!1));const f=e=>m.scrollLeft+=e.deltaY/2;return n&&m.addEventListener("wheel",f,{passive:!0}),()=>{m.removeEventListener("scroll",c),n&&m.removeEventListener("wheel",f)}}),[m,l,r,E,A,n]);let _=0;return o.useFrame(((t,r)=>{E.offset=h.MathUtils.damp(_=E.offset,B.current,i,r),E.delta=h.MathUtils.damp(E.delta,Math.abs(_-E.offset),i,r),E.delta>e&&A()})),D.createElement(N.Provider,{value:E},u)},exports.Segment=Er,exports.Segments=Dr,exports.Shadow=Je,exports.Sky=Ct,exports.Sphere=yt,exports.SpotLight=ht,exports.Stage=function({children:e,controls:t,shadows:r=!0,adjustCamera:n=!0,environment:a="city",intensity:s=1,preset:i="rembrandt",shadowBias:u=0,contactShadow:c={blur:2,opacity:.5,position:[0,0,0]},...l}){const A=Yt[i],f=o.useThree((e=>e.camera)),C=o.useThree((e=>e.controls)),m=D.useRef(null),p=D.useRef(null),[{radius:d,width:v,height:E},_]=D.useState({radius:0,width:0,height:0});return D.useLayoutEffect((()=>{m.current.position.set(0,0,0),m.current.updateWorldMatrix(!0,!0);const e=(new h.Box3).setFromObject(p.current),t=new h.Vector3,r=new h.Sphere,n=e.max.y-e.min.y,o=e.max.x-e.min.x;e.getCenter(t),e.getBoundingSphere(r),_({radius:r.radius,width:o,height:n}),m.current.position.set(-t.x,-t.y+n/2,-t.z)}),[e]),D.useLayoutEffect((()=>{if(n){const e=d/(E>v?1.5:2.5);f.position.set(0,.5*d,2.5*d),f.near=.1,f.far=Math.max(5e3,4*d),f.lookAt(0,e,0);const r=C||(null==t?void 0:t.current);r&&(r.target.set(0,e,0),r.update())}}),[C,d,E,v,n]),D.createElement("group",l,D.createElement("group",{ref:m},D.createElement("group",{ref:p},e)),c&&D.createElement(Bt,B.default({"rotation-x":Math.PI/2,width:2*d,height:2*d,far:d/2},c)),a&&D.createElement(re,{preset:a}),D.createElement("ambientLight",{intensity:s/3}),D.createElement("spotLight",{penumbra:1,position:[A.main[0]*d,A.main[1]*d,A.main[2]*d],intensity:2*s,castShadow:r,"shadow-bias":u}),D.createElement("pointLight",{position:[A.fill[0]*d,A.fill[1]*d,A.fill[2]*d],intensity:s}))},exports.Stars=vt,exports.Stats=function({showPanel:e=0,className:t,parent:r}){const n=function(e,t=[],r){const[n,o]=D.useState();return D.useLayoutEffect((()=>{const t=e();return o(t),$e(r,t),()=>$e(r,null)}),t),n}((()=>new w.default),[]);return D.useEffect((()=>{if(n){const a=r&&r.current||document.body;n.showPanel(e),null==a||a.appendChild(n.dom),t&&n.dom.classList.add(t);const s=o.addEffect((()=>n.begin())),i=o.addAfterEffect((()=>n.end()));return()=>{null==a||a.removeChild(n.dom),s(),i()}}}),[r,n,t,e]),null},exports.Tetrahedron=Lt,exports.Text=ee,exports.Torus=zt,exports.TorusKnot=Mt,exports.TrackballControls=pe,exports.TransformControls=ve,exports.Tube=bt,exports.calcPosFromAngles=ft,exports.isWebGL2Available=ne,exports.meshBounds=function(e,t){const r=this.geometry,n=this.material,o=this.matrixWorld;void 0!==n&&(null===r.boundingSphere&&r.computeBoundingSphere(),gr.copy(r.boundingSphere),gr.applyMatrix4(o),!1!==e.ray.intersectsSphere(gr)&&(_r.copy(o).invert(),xr.copy(e.ray).applyMatrix4(_r),null!==r.boundingBox&&null===xr.intersectBox(r.boundingBox,Fr)||t.push({distance:Fr.distanceTo(e.ray.origin),point:Fr.clone(),object:this})))},exports.shaderMaterial=ae,exports.softShadows=e=>{if(!mt){mt=!0;let t=h.ShaderChunk.shadowmap_pars_fragment;t=t.replace("#ifdef USE_SHADOWMAP","#ifdef USE_SHADOWMAP\n"+(({frustum:e=3.75,size:t=.005,near:r=9.5,samples:n=17,rings:o=11}={})=>`#define LIGHT_WORLD_SIZE ${t}\n#define LIGHT_FRUSTUM_WIDTH ${e}\n#define LIGHT_SIZE_UV (LIGHT_WORLD_SIZE / LIGHT_FRUSTUM_WIDTH)\n#define NEAR_PLANE ${r}\n\n#define NUM_SAMPLES ${n}\n#define NUM_RINGS ${o}\n#define BLOCKER_SEARCH_NUM_SAMPLES NUM_SAMPLES\n#define PCF_NUM_SAMPLES NUM_SAMPLES\n\nvec2 poissonDisk[NUM_SAMPLES];\n\nvoid initPoissonSamples(const in vec2 randomSeed) {\n float ANGLE_STEP = PI2 * float(NUM_RINGS) / float(NUM_SAMPLES);\n float INV_NUM_SAMPLES = 1.0 / float(NUM_SAMPLES);\n float angle = rand(randomSeed) * PI2;\n float radius = INV_NUM_SAMPLES;\n float radiusStep = radius;\n for (int i = 0; i < NUM_SAMPLES; i++) {\n poissonDisk[i] = vec2(cos(angle), sin(angle)) * pow(radius, 0.75);\n radius += radiusStep;\n angle += ANGLE_STEP;\n }\n}\n\nfloat penumbraSize(const in float zReceiver, const in float zBlocker) { // Parallel plane estimation\n return (zReceiver - zBlocker) / zBlocker;\n}\n\nfloat findBlocker(sampler2D shadowMap, const in vec2 uv, const in float zReceiver) {\n float searchRadius = LIGHT_SIZE_UV * (zReceiver - NEAR_PLANE) / zReceiver;\n float blockerDepthSum = 0.0;\n int numBlockers = 0;\n for (int i = 0; i < BLOCKER_SEARCH_NUM_SAMPLES; i++) {\n float shadowMapDepth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[i] * searchRadius));\n if (shadowMapDepth < zReceiver) {\n blockerDepthSum += shadowMapDepth;\n numBlockers++;\n }\n }\n if (numBlockers == 0) return -1.0;\n return blockerDepthSum / float(numBlockers);\n}\n\nfloat PCF_Filter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius) {\n float sum = 0.0;\n for (int i = 0; i < PCF_NUM_SAMPLES; i++) {\n float depth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[ i ] * filterRadius));\n if (zReceiver <= depth) sum += 1.0;\n }\n for (int i = 0; i < PCF_NUM_SAMPLES; i++) {\n float depth = unpackRGBAToDepth(texture2D(shadowMap, uv + -poissonDisk[ i ].yx * filterRadius));\n if (zReceiver <= depth) sum += 1.0;\n }\n return sum / (2.0 * float(PCF_NUM_SAMPLES));\n}\n\nfloat PCSS(sampler2D shadowMap, vec4 coords) {\n vec2 uv = coords.xy;\n float zReceiver = coords.z; // Assumed to be eye-space z in this code\n initPoissonSamples(uv);\n float avgBlockerDepth = findBlocker(shadowMap, uv, zReceiver);\n if (avgBlockerDepth == -1.0) return 1.0;\n float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth);\n float filterRadius = penumbraRatio * LIGHT_SIZE_UV * NEAR_PLANE / zReceiver;\n return PCF_Filter(shadowMap, uv, zReceiver, filterRadius);\n}`)({...e})),t=t.replace("#if defined( SHADOWMAP_TYPE_PCF )","\nreturn PCSS(shadowMap, shadowCoord);\n#if defined( SHADOWMAP_TYPE_PCF )"),h.ShaderChunk.shadowmap_pars_fragment=t}},exports.useAnimations=function(e,t){const r=D.useRef(),[a]=D.useState((()=>t?t instanceof n.Object3D?{current:t}:t:r)),[s]=D.useState((()=>new n.AnimationMixer(void 0))),i=D.useRef({}),[u]=D.useState((()=>{const t={};return e.forEach((e=>Object.defineProperty(t,e.name,{enumerable:!0,get(){if(a.current)return i.current[e.name]||(i.current[e.name]=s.clipAction(e,a.current))}}))),{ref:a,clips:e,actions:t,names:e.map((e=>e.name)),mixer:s}}));return o.useFrame(((e,t)=>s.update(t))),D.useEffect((()=>{const e=a.current;return()=>{i.current={},Object.values(u.actions).forEach((t=>{e&&s.uncacheAction(t,e)}))}}),[e]),u},exports.useAspect=function(e,t,r=1){const n=o.useThree((e=>e.viewport)),a=t*(n.aspect>e/t?n.width/e:n.height/t);return[e*(n.aspect>e/t?n.width/e:n.height/t)*r,a*r,1]},exports.useBVH=function(e,t){D.useEffect((()=>{if(e.current){e.current.raycast=m.acceleratedRaycast;const r=e.current.geometry;return r.computeBoundsTree=m.computeBoundsTree,r.disposeBoundsTree=m.disposeBoundsTree,r.computeBoundsTree(t),()=>{r.boundsTree&&r.disposeBoundsTree()}}}),[e,t])},exports.useBounds=function(){return D.useContext(rt)},exports.useCamera=Ee,exports.useContextBridge=function(...e){const t=D.useRef([]);return t.current=e.map((e=>D.useContext(e))),D.useMemo((()=>({children:r})=>e.reduceRight(((e,r,n)=>D.createElement(r.Provider,{value:t.current[n],children:e})),r)),[])},exports.useCubeTexture=Ge,exports.useCursor=function(e,t="pointer",r="auto"){D.useEffect((()=>{if(e)return document.body.style.cursor=t,()=>{document.body.style.cursor=r}}),[e])},exports.useDetectGPU=function(e){return D.useState(null),c.useAsset((()=>C.getGPUTier(e)),"useDetectGPU")},exports.useEdgeSplit=function(e,t=!0){const r=D.useRef(),n=D.useRef(),o=D.useRef();return D.useEffect((()=>{!n.current&&r.current&&(n.current=r.current.geometry.clone(),o.current=new i.EdgeSplitModifier)}),[]),D.useEffect((()=>{if(n.current&&r.current&&o.current){const a=o.current.modify(n.current,e,t);a.computeVertexNormals(),r.current.geometry=a}}),[e,t]),r},exports.useFBO=nt,exports.useFBX=Re,exports.useGLTF=Ye,exports.useGizmoContext=_e,exports.useHelper=function(e,t,...r){const n=D.useRef(),a=o.useThree((e=>e.scene));return D.useEffect((()=>(t&&e.current&&(n.current=new t(e.current,...r),n.current&&a.add(n.current)),()=>{n.current&&a.remove(n.current)})),[a,t,e,r]),o.useFrame((()=>{var e;null!=(e=n.current)&&e.update&&n.current.update()})),n},exports.useIntersect=function(e){const t=D.useRef(null),r=D.useRef(!1),n=D.useRef(!1);return D.useEffect((()=>{const a=t.current;if(a){const t=o.addEffect((()=>(r.current=!1,!0))),s=a.onBeforeRender;a.onBeforeRender=()=>r.current=!0;const i=o.addAfterEffect((()=>(r.current!==n.current&&e(n.current=r.current),!0)));return()=>{a.onBeforeRender=s,t(),i()}}}),[]),t},exports.useMatcapTexture=function(e=0,t=1024){const r=D.useMemo((()=>Object.keys(Gt).length),[]),n=`https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d/${t}/${`${D.useMemo((()=>"string"==typeof e?e:"number"==typeof e?Gt[e]:null),[e])||Rt}${function(e){switch(e){case 64:return"-64px";case 128:return"-128px";case 256:return"-256px";case 512:return"-512px";default:return""}}(t)}.png`}`;return[Y(n),n,r]},exports.useNormalTexture=function(e=0,t={}){const{repeat:r=[1,1],anisotropy:o=1,offset:a=[0,0]}=t,s=D.useMemo((()=>Object.keys(qt).length),[]),i=`https://rawcdn.githack.com/emmelleppi/normal-maps/f24c810fc1d86b5b1e5dfea914b668f70b5f2923/normals/${qt[e]||Wt}`,u=Y(i);return D.useEffect((()=>{u&&(u.wrapS=u.wrapT=n.RepeatWrapping,u.repeat=new n.Vector2(r[0],r[1]),u.offset=new n.Vector2(a[0],a[1]),u.anisotropy=o)}),[u,o,r,a]),[u,i,s]},exports.useProgress=Q,exports.useScroll=I,exports.useSimplification=function(e){const t=D.useRef(),r=D.useRef(),n=D.useRef();return D.useEffect((()=>{r.current||(r.current=t.current.geometry.clone(),n.current=new i.SimplifyModifier)}),[]),D.useEffect((()=>{if(r.current&&t.current){const o=r.current,a=Math.floor(o.attributes.position.count*e);t.current.geometry=n.current.modify(o,a)}}),[e]),t},exports.useTessellation=function(e=3,t){const r=D.useRef(),n=D.useRef(),o=D.useRef();return D.useEffect((()=>{n.current||(n.current=r.current.geometry.clone(),o.current=new i.TessellateModifier(parseInt(t),e))}),[t,e]),D.useEffect((()=>{o.current.maxEdgeLength=t}),[t]),D.useEffect((()=>{if(n.current&&r.current){const e=o.current.modify(n.current);r.current.geometry=e}}),[t,e]),r},exports.useTexture=Y;